@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-SemiBold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-SemiBoldItalic.woff2)format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:iA Writer Duo;src:url(/fonts/iAWriterDuoS-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:iA Writer Duo;src:url(/fonts/iAWriterDuoS-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);size-adjust:117.4%;ascent-override:87.3%;descent-override:23.4%;line-gap-override:0%}@font-face{font-family:iA Writer Duo Fallback;src:local(Courier New);size-adjust:103.7%;ascent-override:98.9%;descent-override:26.5%;line-gap-override:0%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--bg:#17191d;--fg:#eae6df;--fg-muted:#b3aea7;--accent:#8b7dff;--quote-fg:#d0cac2;--quote-border:#6f64e8;--border:#33363d;--code-bg:#20232a;--max-w:720px;--font-body:"IBM Plex Sans", "IBM Plex Sans Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"IBM Plex Sans", "IBM Plex Sans Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ui:"IBM Plex Sans", "IBM Plex Sans Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font:var(--font-body);--font-mono:"iA Writer Duo", "iA Writer Duo Fallback", "SF Mono", "Cascadia Code", "Fira Code", monospace}:root[data-theme=default]{--bg:#fff;--fg:#1a1a1a;--fg-muted:#6b7280;--accent:#512be0;--quote-fg:#4f5663;--quote-border:#512be0;--border:#e5e5e5;--code-bg:#f4f4f4}:root[data-theme=graphite]{--bg:#f4f5f7;--fg:#111827;--fg-muted:#4b5563;--accent:#0f4c81;--quote-fg:#374151;--quote-border:#0f4c81;--border:#d1d5db;--code-bg:#e5e7eb}:root[data-theme=forest]{--bg:#f5f8f3;--fg:#1a2c1b;--fg-muted:#4f6b52;--accent:#206a5d;--quote-fg:#3f5f42;--quote-border:#206a5d;--border:#d1e2cf;--code-bg:#e8f0e7}:root[data-theme=sunset]{--bg:#fff7f2;--fg:#3e2723;--fg-muted:#8d6e63;--accent:#d45d00;--quote-fg:#75564b;--quote-border:#d45d00;--border:#f0d9cd;--code-bg:#fbe9df}:root[data-theme=dark]{color-scheme:dark;--bg:#17191d;--fg:#eae6df;--fg-muted:#b3aea7;--accent:#8b7dff;--quote-fg:#d0cac2;--quote-border:#6f64e8;--border:#33363d;--code-bg:#20232a}html{font-family:var(--font);color:var(--fg);background-color:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}body{flex-direction:column;min-height:100vh;display:flex}main{flex:1}main.main-content{flex-direction:column;padding-top:.5rem;padding-bottom:3rem;display:flex}a{color:inherit;text-decoration:none}img,video{max-width:100%;height:auto;display:block}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}.site-header{font-family:var(--font-ui);background:var(--bg);padding:1.25rem 0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;display:flex}.site-name{letter-spacing:0;font-size:1rem;font-weight:700;transition:color .15s}.site-name:hover{color:var(--accent)}.nav-links{align-items:center;gap:1.25rem;display:flex}.nav-links a{color:var(--fg-muted);font-size:.875rem;transition:color .15s}.nav-links a:hover{color:var(--fg)}.site-footer{font-family:var(--font-ui);border-top:1px solid var(--border);margin-top:5rem;padding:2rem 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:1rem;display:flex}.footer-inner small{color:var(--fg-muted);font-size:.8rem}.footer-links{align-items:flex-start;gap:1.25rem;display:flex}.footer-col{flex-direction:column;gap:.35rem;display:flex}.footer-col-label{color:var(--fg-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.7rem;font-weight:600}.footer-links a{color:var(--fg-muted);align-items:center;gap:.3rem;font-size:.8rem;transition:color .15s;display:flex}.footer-links a:hover{color:var(--accent)}.pagination{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:1rem;padding:2rem 0 1rem;display:flex}.pagination a{color:var(--fg-muted);font-size:.875rem;transition:color .15s}.pagination a:hover{color:var(--accent)}.pagination-info{color:var(--fg-muted);font-size:.875rem}.pagination-spacer{width:5rem}.project-badge{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.65rem;font-weight:700;display:inline-block}.post-header .project-badge{margin-bottom:.75rem;display:block}.tag{font-family:var(--font-heading);letter-spacing:.05em;text-transform:uppercase;color:var(--fg-muted);border:1px solid var(--border);border-radius:3px;padding:.1em .55em;font-size:.7rem;font-weight:500;transition:color .1s,border-color .1s;display:inline-block}.tag:hover{color:var(--accent);border-color:var(--accent)}.post-list{max-width:600px;margin-top:0}.post-list-label{font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:.75rem;font-size:.7rem;font-weight:600}.post-card{border-bottom:1px solid var(--border);padding:1.5rem 0}.post-card-image-link{margin-bottom:1rem;display:block}.post-card-image{object-fit:cover;border-radius:8px;width:100%;height:220px;display:block}.post-card--full{padding:2rem 0}.post-card--full:first-child{padding-top:0}.post-card--full .post-title{margin-bottom:.75rem;font-size:1.4rem}.post-card--full .prose{margin-top:.5rem}.post-card:last-child{border-bottom:none}.post-date{font-family:var(--font-heading);color:var(--fg-muted);text-transform:uppercase;margin-bottom:.3rem;font-size:.78rem;display:block}.post-date--link{text-decoration:none;transition:color .15s}.post-date--link:hover{color:var(--accent)}.post-title{margin-bottom:.5rem;font-size:1.175rem;font-weight:600;line-height:1.35}.post-title a{transition:color .15s}.post-title a:hover{color:var(--accent)}.post-excerpt{color:var(--fg-muted);margin-bottom:.75rem;font-size:.9375rem;line-height:1.6}.post-tags{flex-wrap:wrap;gap:.35rem;display:flex}.post-badge{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;font-size:.65rem;font-weight:700;display:inline-block}.post-badge--featured{color:var(--accent)}.post-badge--linked{color:var(--fg-muted)}.post-card--featured .post-title{font-size:1.3rem}.external-icon{vertical-align:-.1em;opacity:.4;margin-left:.25em;transition:opacity .15s;display:inline-block}.post-title a:hover .external-icon{opacity:1}.feature-image{margin:2rem 0}.feature-image img{border-radius:8px;width:100%;height:auto;display:block}.post-header{border-bottom:1px solid var(--border);margin-bottom:2.75rem;padding:3.1rem 0 2.15rem}.post-meta{font-family:var(--font-heading);color:var(--fg-muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.1rem;font-size:.82rem;display:flex}.post-meta time{text-transform:uppercase;flex-shrink:0}.post-meta .post-tags{gap:.35rem}.post-title-full{letter-spacing:0;font-size:2rem;font-weight:700;line-height:1.2}.post-title-full a{color:inherit;text-decoration:none}.post-title-full a:hover{color:var(--accent)}.post-footer-tags{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-top:2.5rem;display:flex}.post-footer-tags-label{font-family:var(--font-heading);color:var(--fg-muted);font-size:.85rem;font-weight:600}.tag-pill{font-family:var(--font-heading);color:var(--fg);background:var(--code-bg);border-radius:9999px;align-items:center;gap:.3rem;padding:.3em .75em;font-size:.8rem;transition:background .1s,color .1s;display:inline-flex}.tag-pill:hover{color:var(--accent)}.tag-pill-count{color:var(--fg-muted);font-size:.7rem}.tag-post+.tag-post{border-top:1px solid var(--border);margin-top:3rem;padding-top:3rem}.prose{font-size:1rem;line-height:1.7}.prose h2{letter-spacing:0;margin:2.25rem 0 .75rem;font-size:1.35rem;font-weight:600}.prose h3{margin:1.75rem 0 .5rem;font-size:1.125rem;font-weight:600}.prose h4{margin:1.25rem 0 .4rem;font-size:1rem;font-weight:600}.prose p{margin-bottom:1.25rem}.prose ul,.prose ol{margin:1rem 0;padding-left:1.5rem}.prose li{margin-bottom:.4rem}.prose a{color:var(--accent);font-weight:550;text-decoration:none}.prose a:hover{font-weight:600}.prose .site-link-icon{vertical-align:-.18em;justify-content:center;align-items:center;width:1.05em;height:1.05em;margin-right:.25em;line-height:1;display:inline-flex;overflow:visible}.prose .site-link-icon-svg{opacity:.85;width:.9em;height:.9em;display:block;overflow:visible}.prose .site-link-icon path{fill:currentColor}.prose strong{font-weight:600}.prose em{font-style:italic}.prose blockquote{border-left:3px solid var(--quote-border);color:var(--quote-fg);margin:1.5rem 0;padding:.1rem 1rem;font-size:.96em;font-style:normal;line-height:1.68}.prose blockquote p:last-child{margin-bottom:0}.prose code{font-family:var(--font-mono);background:var(--code-bg);border-radius:4px;padding:.1em .34em;font-size:.875em}.prose>pre,.prose>.expressive-code{margin:1.5rem 0 2.25rem}.prose pre,.prose pre code,.prose figure.expressive-code pre{color:var(--fg);background:var(--code-bg)!important}.prose img{border-radius:8px;margin:2rem auto;display:block}.prose figure img{margin-bottom:0}.prose iframe,.prose video{max-width:100%;margin:2rem auto;display:block}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.project-posts{border-top:1px solid var(--border);margin-top:4rem;padding-top:2rem}.post-nav{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:2rem;display:flex}.post-nav a{color:var(--fg-muted);max-width:45%;font-size:.875rem;line-height:1.4;transition:color .15s}.post-nav a:hover{color:var(--accent)}.post-nav-next{text-align:right;margin-left:auto}.page-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding:3rem 0 2rem}.page-title{letter-spacing:0;margin-bottom:.35rem;font-size:1.75rem;font-weight:700}.page-desc{color:var(--fg-muted);font-size:.9rem}.tags-grid{flex-wrap:wrap;gap:.5rem;margin-top:2rem;display:flex}.tag-item{color:var(--fg);background:var(--code-bg);border-radius:6px;align-items:center;gap:.4rem;padding:.4em .85em;font-size:.875rem;transition:background .1s,color .1s;display:inline-flex}.tag-item:hover{color:var(--accent)}.tag-count{color:var(--fg-muted);font-size:.75rem}.about-content p{margin-bottom:1.25rem;font-size:1rem;line-height:1.75}.about-content h2{margin:2rem 0 .75rem;font-size:1.1rem;font-weight:600}.about-links{flex-direction:column;gap:.5rem;list-style:none;display:flex}.about-links a{color:var(--accent);font-size:.9375rem;text-decoration:none}.about-links a:hover{opacity:.8}.about-content .table-wrap a{color:var(--accent);font-weight:550;text-decoration:none}.about-content .table-wrap a:hover{font-weight:600}@media (width<=600px){.post-title-full{font-size:1.5rem}.page-title{font-size:1.4rem}.header-inner{gap:.5rem}.nav-links{gap:.75rem}.post-nav{flex-direction:column;gap:.75rem}.post-nav a{max-width:100%}.post-nav-next{text-align:left;margin-left:0}}.prose figure.kg-card{margin:2rem 0}.prose figure.kg-image-card img,.prose figure.kg-video-card video{border-radius:8px;max-width:100%;height:auto;display:block}.kg-video-hide{display:none!important}.kg-video-container{background:#000;border-radius:8px;position:relative;overflow:hidden}.kg-video-overlay{cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.kg-video-large-play-icon{cursor:pointer;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;padding:0;display:flex}.kg-video-large-play-icon svg{fill:#fff;width:18px;height:18px;margin-left:3px}.kg-video-player-container{background:linear-gradient(#0000,#0009);padding:.5rem .75rem;position:absolute;bottom:0;left:0;right:0}.kg-video-player{color:#fff;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.kg-video-player button{cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0;display:flex}.kg-video-player button svg{fill:#fff;width:14px;height:14px}.kg-video-current-time,.kg-video-time{white-space:nowrap;opacity:.9}.kg-video-playback-rate{color:#fff;border-radius:3px;flex-shrink:0;font-size:.75rem;background:#fff3!important;padding:1px 4px!important}.kg-video-seek-slider{cursor:pointer;accent-color:#fff;flex:1;min-width:0;height:3px}.kg-video-volume-slider{cursor:pointer;accent-color:#fff;width:56px;height:3px}.prose figure.kg-image-card.kg-width-wide,.prose figure.kg-embed-card.kg-width-wide{margin-left:-1.5rem;margin-right:-1.5rem}sup:has(>.fn-button){vertical-align:.25em;font-size:1em;line-height:0;display:inline-block}.fn-button{background:var(--accent);color:#fff;cursor:pointer;min-width:1.45em;height:1.2em;font-size:.68em;font-weight:700;line-height:1;font-family:var(--font-heading);border:none;border-radius:3px;justify-content:center;align-items:center;padding:0 .2em;transition:opacity .12s,transform .12s;display:inline-flex}.fn-button:hover{opacity:.8}.fn-button.fn-active{opacity:.85;transform:scale(.88)}.fn-popover{z-index:200;background:var(--bg);color:var(--fg);border:1px solid var(--border);pointer-events:none;opacity:0;border-radius:10px;padding:.85rem 1rem;font-size:.875rem;line-height:1.6;transition:opacity .18s,transform .18s;position:absolute;transform:translateY(-5px)scale(.97);box-shadow:0 8px 28px #0006,0 2px 8px #00000040}.fn-popover.fn-open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.fn-popover:before{content:"";top:-5px;left:var(--arrow-left,50%);background:var(--bg);border-top:1px solid var(--border);border-left:1px solid var(--border);width:10px;height:10px;margin-left:-5px;position:absolute;transform:rotate(45deg)}.fn-popover.fn-above{transform:translateY(5px)scale(.97)}.fn-popover.fn-above.fn-open{transform:translateY(0)scale(1)}.fn-popover.fn-above:before{top:auto;bottom:-5px;transform:rotate(225deg)}.fn-popover a{color:var(--accent);text-decoration:underline}.lightbox-trigger{display:none}.prose .table-wrap,.prose .wp-block-table,.about-content .table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:8px;max-width:100%;margin:2rem 0;overflow-x:auto}.prose .table-wrap table,.prose .wp-block-table table,.about-content .table-wrap table{border-collapse:collapse;border:none;width:100%;margin:0;font-size:.9rem}.prose th,.prose td,.about-content .table-wrap th,.about-content .table-wrap td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.65rem 1rem}.prose thead th,.about-content .table-wrap thead th{background:var(--code-bg);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted);border-bottom:2px solid var(--border);font-size:.8rem;font-weight:600}.prose tbody tr:last-child td,.prose tbody tr:last-child th,.about-content .table-wrap tbody tr:last-child td,.about-content .table-wrap tbody tr:last-child th{border-bottom:none}.prose tbody tr:hover,.about-content .table-wrap tbody tr:hover{background:var(--code-bg)}.prose .wp-block-table{margin:2rem 0;overflow-x:auto}figcaption{color:var(--fg-muted);text-align:center;margin-top:.25rem;margin-bottom:2rem;font-size:.825rem}.prose .kg-embed-card{position:relative}.prose .kg-embed-card iframe{aspect-ratio:16/9;border:none;border-radius:8px;width:100%;display:block}.prose .kg-callout-card{background:var(--code-bg);border-radius:8px;align-items:flex-start;gap:.75rem;margin:1.5rem 0;padding:1rem 1.25rem;display:flex}.prose .kg-callout-card-blue{border-left:3px solid #512be0}.prose .kg-callout-card-yellow{border-left:3px solid #f5c842}.prose .kg-callout-card-red{border-left:3px solid #e55353}.prose .kg-callout-card-green{border-left:3px solid #3eb98a}.prose .kg-callout-card-grey,.prose .kg-callout-card-white{border-left:3px solid var(--border)}.prose .kg-callout-emoji{flex-shrink:0;font-size:1.25rem;line-height:1.5}.prose .kg-callout-text{flex:1}.prose .kg-bookmark-card{border:1px solid var(--border);border-radius:8px;margin:1.5rem 0;overflow:hidden}.prose .kg-bookmark-container{color:inherit;text-decoration:none;display:flex}.prose .kg-bookmark-content{flex:1;padding:1rem}.prose .kg-bookmark-title{margin-bottom:.25rem;font-weight:600}.prose .kg-bookmark-description{color:var(--fg-muted);margin-bottom:.5rem;font-size:.875rem}.prose .kg-bookmark-metadata{color:var(--fg-muted);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.prose .kg-bookmark-thumbnail{flex-shrink:0;width:160px;overflow:hidden}.prose .kg-bookmark-thumbnail img{object-fit:cover;border-radius:0;width:100%;height:100%;margin:0}.prose .kg-toggle-card{border:1px solid var(--border);border-radius:8px;margin:1.5rem 0;padding:.75rem 1rem}.prose .kg-toggle-heading-text{font-weight:600}.prose .kg-code-card{margin:1.5rem 0}.prose .kg-header-card{text-align:center;background:var(--code-bg);border-radius:8px;margin:1.5rem 0;padding:2rem 1.5rem}.members-only-notice{border-left:3px solid var(--accent);background:var(--code-bg);color:var(--fg-muted);border-radius:0 6px 6px 0;margin:2rem 0;padding:.75rem 1.25rem;font-size:.9rem}.members-only-notice p{margin:0}.carbon-ad-container{order:1;padding-top:1.5rem;padding-bottom:.5rem}#carbon-responsive{font-family:var(--font-body)!important;font-size:12px!important}#carbon-responsive .carbon-responsive-wrap{border-radius:12px}#carbonads{text-align:center;flex-direction:column;align-items:center;max-width:330px;margin:0 auto;font-size:.8rem;line-height:1.5;display:flex}#carbonads .carbon-wrap{flex-direction:column;align-items:center;display:flex}#carbonads .carbon-img img{border-radius:6px;margin-bottom:.75rem;display:block}#carbonads .carbon-text{color:var(--fg-muted);margin-bottom:.5rem;text-decoration:none;transition:color .15s;display:block}#carbonads .carbon-text:hover{color:var(--fg)}#carbonads .carbon-poweredby{letter-spacing:.03em;text-transform:uppercase;color:var(--fg-muted);opacity:.6;font-size:.65rem;text-decoration:none;transition:opacity .15s}#carbonads .carbon-poweredby:hover{opacity:1}#carbon-responsive{--carbon-bg-primary:var(--code-bg)!important;--carbon-bg-secondary:var(--border)!important;--carbon-text-color:var(--fg-muted)!important}@media (width>=1100px){main.container{position:relative}.carbon-ad-container{order:unset;width:180px;padding:0;position:fixed;top:5rem;left:max(1rem,50vw - 540px - 2rem)}#carbonads{text-align:left;align-items:flex-start;max-width:none}#carbonads .carbon-wrap{align-items:flex-start}#carbonads .carbon-img img{max-width:100%;height:auto}main.container:has(>.h-entry) .carbon-ad-container{top:7.7rem}}.header-controls{align-items:center;gap:1rem;display:flex}@media (width<=700px){.header-inner{flex-wrap:wrap}.header-controls{justify-content:space-between;width:100%}}
