@font-face{font-family:inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter.woff2)format("woff2")}@font-face{font-family:inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/inter-italic.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/jetbrains-mono.woff2)format("woff2")}:root{color-scheme:light dark;--bg:#f5f7ff;--bg-subtle:#edf2ff;--surface:#ffffff;--surface-soft:#eef2ff;--surface-elevated:#e0e7ff;--text:#1d2536;--text-heading:#0f172a;--text-muted:#5d6882;--text-faint:#8d9bb5;--border:#d8e0f5;--border-strong:#c0cced;--dot-fill:#000000;--accent:#336bad;--accent-hover:#26548b;--accent-soft:rgba(51, 107, 173, 0.12);--accent-border:rgba(51, 107, 173, 0.3);--accent-contrast:#ffffff;--code-bg:#eef2ff;--code-fg:#1f2735;--kbd-color:#2f3644;--kbd-border:#b8bfd5;--kbd-bg:#eef2ff;--shadow-sm:0 1px 2px rgba(19, 30, 61, 0.05);--shadow-md:0 4px 6px -1px rgba(19, 30, 61, 0.07), 0 2px 4px -2px rgba(19, 30, 61, 0.05);--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-pill:9999px;--layout-width:1080px;--content-width:760px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1424;--bg-subtle:#12192d;--surface:#151c2f;--surface-soft:#1a233b;--surface-elevated:#202b48;--text:#edf2ff;--text-heading:#ffffff;--text-muted:#a4b0ce;--text-faint:#627297;--border:#2a3552;--border-strong:#3b496e;--dot-fill:rgba(255, 255, 255, 0.45);--accent:#6699ff;--accent-hover:#8ab0ff;--accent-soft:rgba(102, 153, 255, 0.15);--accent-border:rgba(102, 153, 255, 0.35);--accent-contrast:#0b1120;--code-bg:#101a2f;--code-fg:#cfd8f6;--kbd-color:#f1f4ff;--kbd-border:#314063;--kbd-bg:#1c2742;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.4);--shadow-md:0 8px 16px rgba(0, 0, 0, 0.4)}}[data-theme=dark]{color-scheme:dark;--bg:#0f1424;--bg-subtle:#12192d;--surface:#151c2f;--surface-soft:#1a233b;--surface-elevated:#202b48;--text:#edf2ff;--text-heading:#ffffff;--text-muted:#a4b0ce;--text-faint:#627297;--border:#2a3552;--border-strong:#3b496e;--dot-fill:rgba(255, 255, 255, 0.45);--accent:#6699ff;--accent-hover:#8ab0ff;--accent-soft:rgba(102, 153, 255, 0.15);--accent-border:rgba(102, 153, 255, 0.35);--accent-contrast:#0b1120;--code-bg:#101a2f;--code-fg:#cfd8f6;--kbd-color:#f1f4ff;--kbd-border:#314063;--kbd-bg:#1c2742;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.4);--shadow-md:0 8px 16px rgba(0, 0, 0, 0.4)}[data-theme=light]{color-scheme:light}*,*::before,*::after{box-sizing:border-box}html{margin:0;padding:0;background:var(--bg);scroll-behavior:smooth;font-size:16px}body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-feature-settings:"zero","tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size:15px;line-height:1.6;letter-spacing:-.006em}a{color:inherit;text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent)}.announcement-banner{background:var(--bg-subtle);padding:.45rem 1rem;font-size:13px;text-align:center}.announcement-inner{max-width:var(--layout-width);margin:0 auto}.announcement-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-muted);font-weight:500}.announcement-link:hover{color:var(--text-heading)}.announcement-link:hover .announcement-arrow{transform:translateX(3px)}.announcement-badge{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);padding:.05rem .4rem;border-radius:var(--radius-pill);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.announcement-arrow{display:inline-block;transition:transform .15s ease;color:var(--accent)}.site-header{position:sticky;top:0;z-index:50;background:var(--bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}[data-theme=dark] .site-header{background:rgba(15,20,36,.88)}[data-theme=light] .site-header{background:rgba(245,247,255,.9)}.site-header-inner{max-width:var(--layout-width);margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;justify-content:space-between}.site-header-brand{display:flex;align-items:center;gap:.5rem}.brand-link{display:flex;align-items:center;gap:.65rem;color:var(--text-heading);font-weight:600;font-size:15px}.brand-link:hover{color:var(--text-heading)}.brand-avatar{border-radius:50%;object-fit:cover;border:1px solid var(--border);width:26px;height:26px}.brand-name{letter-spacing:-.01em}.site-header-nav{display:flex;align-items:center;gap:.35rem}.nav-link{padding:.3rem .65rem;font-size:14px;font-weight:500;color:var(--text-muted);border-radius:var(--radius-sm);transition:all .15s ease}.nav-link:hover{color:var(--text-heading);background:var(--surface-soft)}.nav-link.active{color:var(--text-heading);background:var(--surface-soft);font-weight:600}.nav-divider{width:1px;height:14px;background:var(--border);margin:0 .35rem}.social-icon-btn,.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;border:0;cursor:pointer;transition:all .15s ease}.social-icon-btn svg,.theme-toggle svg{width:15px;height:15px}.social-icon-btn:hover,.theme-toggle:hover{color:var(--text-heading);background:var(--surface-soft)}.theme-icon-sun{display:none}.theme-icon-moon{display:inline-flex}[data-theme=dark] .theme-icon-sun{display:inline-flex}[data-theme=dark] .theme-icon-moon{display:none}.site-main{min-height:calc(100vh - 160px)}.site-container{max-width:var(--layout-width);margin:0 auto;padding:2.5rem 1.25rem 4rem}.blog-index{max-width:var(--content-width)}.blog-hero{margin-bottom:1.5rem}.blog-hero-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.blog-heading{margin:0;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:24px;font-weight:700;letter-spacing:-.015em;font-feature-settings:"zero","tnum";color:var(--text-heading);line-height:1.2}.rss-link-wrap{font-size:14px;color:var(--text-muted)}.rss-link-wrap .rss-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.rss-link-wrap .rss-link:hover{color:var(--accent-hover)}.blog-subheading{margin:0 0 1rem;font-size:15px;color:var(--text-muted);line-height:1.5}.category-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .45rem;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px;margin-top:.75rem;margin-bottom:1rem}.category-link{color:var(--accent);padding:.1rem .35rem;border-radius:var(--radius-sm);font-weight:500;transition:all .15s ease}.category-link:hover{background:var(--accent-soft);color:var(--accent-hover)}.category-link.active{background:var(--surface-soft);color:var(--text-heading);font-weight:600}.category-sep{color:var(--text-faint);user-select:none}hr,.dot-fill{position:relative;border:0;width:100%;height:16px;line-height:1rem;overflow:hidden;margin:1.5rem 0 1.25rem;color:var(--dot-fill,#000);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px}hr::before,.dot-fill::before{content:"........................................................................................................................................................................................................";position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;letter-spacing:2.5px;color:var(--dot-fill,#000);opacity:1}.posts-feed{display:flex;flex-direction:column}.post-item{margin-bottom:.5rem}.post-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-bottom:.35rem}.post-title{margin:0;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:19px;font-weight:600;line-height:1.35;letter-spacing:-.01em;font-feature-settings:"zero","tnum"}.post-title a{color:var(--text-heading);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:transparent;transition:all .15s ease}.post-title a:hover{text-decoration-color:initial;color:var(--text-heading);background-color:var(--surface-soft)}.post-tags-inline{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px;color:var(--text-muted);font-weight:500;white-space:nowrap}.post-tags-inline .tag-link{color:var(--accent)}.post-tags-inline .tag-link:hover{background:var(--accent-soft);text-decoration:none}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:14px;color:var(--text-muted);margin:0 0 .5rem}.meta-author{color:var(--text-heading);font-weight:600}.meta-handle{color:var(--text-muted);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:13px}.meta-handle:hover{color:var(--accent);background:var(--accent-soft)}.meta-sep{color:var(--text-faint);margin:0 .15rem}.post-summary{margin:0;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px;line-height:1.6;color:var(--text);letter-spacing:-.006em}.post-arrow-btn{display:inline-block;padding:0 .35rem;background:var(--accent-soft);color:var(--accent);border-radius:3px;font-weight:600;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px;margin-left:.35rem;transition:all .15s ease}.post-arrow-btn:hover{background:var(--accent);color:var(--accent-contrast)}.article-wrapper{max-width:1040px}.post-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:14px;color:var(--text-muted);margin-bottom:1.25rem}.breadcrumb-item{color:var(--text-muted)}.breadcrumb-item:hover{color:var(--text-heading)}.breadcrumb-sep{color:var(--text-faint)}.breadcrumb-tags{color:var(--accent);font-weight:500}.breadcrumb-tag{color:var(--accent)}.breadcrumb-tag:hover{text-decoration:underline}.breadcrumb-comma{color:var(--text-muted)}.article-header{margin-bottom:2rem;padding-bottom:0}.article-title{margin:0 0 .5rem;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:24px;font-weight:600;letter-spacing:-.015em;font-feature-settings:"zero","tnum";color:var(--text-heading);line-height:1.3}.article-tags-row{margin-bottom:.75rem}.article-tags-inline{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px;color:var(--text-muted);font-weight:500}.article-tags-inline .tag-link{color:var(--accent)}.article-tags-inline .tag-link:hover{background:var(--accent-soft)}.article-byline{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:14px;color:var(--text-muted)}.byline-author{font-weight:600;color:var(--text-heading)}.byline-handle{color:var(--text-muted);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:13px}.byline-handle:hover{color:var(--accent);background:var(--accent-soft)}.byline-sep{color:var(--text-faint)}.article-layout{display:grid;grid-template-columns:minmax(0,720px)240px;gap:3rem;align-items:start}@media(max-width:960px){.article-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.article-sidebar{order:-1}}.article-sidebar{position:sticky;top:4.5rem}.toc-box{background:0 0;border:0;border-radius:0;padding:0;box-shadow:none}.toc-title{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--text-heading);margin-bottom:.75rem;text-transform:none;font-feature-settings:"zero","tnum"}.toc-content{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:13px;line-height:1.5;letter-spacing:-.005em;font-feature-settings:"zero","tnum"}.toc-content nav>ul,.toc-content ul{list-style:none;margin:0;padding:0}.toc-content li{margin-bottom:.35rem;position:relative;padding-left:.85rem}.toc-content li::before{content:"*";position:absolute;left:0;color:var(--text-muted);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-weight:500;line-height:1.45;transition:color .15s ease}.toc-content li a{color:var(--text-muted);display:inline;line-height:1.45;text-decoration:underline;text-underline-offset:2px;text-decoration-color:transparent;transition:all .15s ease}.toc-content li a:hover{color:var(--accent);text-decoration-color:initial}.toc-content li a.active{color:var(--accent);font-weight:600;text-decoration-color:initial}.toc-content li.active::before{color:var(--accent);font-weight:700}.toc-content li.active>a{color:var(--accent);font-weight:600;text-decoration-color:initial}.toc-content li ul{margin-top:.35rem;margin-left:.75rem;padding:0}.content{color:var(--text);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:15px;line-height:1.65;letter-spacing:-.006em;font-feature-settings:"zero","tnum"}.content p{margin-top:0;margin-bottom:24px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;color:var(--text-heading);letter-spacing:-.015em;font-weight:700;line-height:1.3;font-feature-settings:"zero","tnum"}.content h1{font-size:22px;letter-spacing:-.017em;margin-top:40px;margin-bottom:10px}.content h2{font-size:18px;letter-spacing:-.014em;margin-top:32px;margin-bottom:8px}.content h3{font-size:16px;letter-spacing:-.01em;font-weight:600;margin-top:24px;margin-bottom:6px}.content h4{font-size:14px;font-weight:600;margin-top:20px;margin-bottom:6px}.content ul,.content ol{margin-top:0;margin-bottom:24px;padding-left:1.35rem}.content li{margin-bottom:.35rem}.content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;transition:all .15s ease}.content a:hover{color:var(--accent-hover);background:var(--accent-soft)}.content blockquote{margin:24px 0;border-left:3px solid var(--accent);background:var(--surface-soft);padding:.75rem 1rem .75rem 1.1rem;border-radius:0 var(--radius-sm)var(--radius-sm)0;color:var(--text-muted);font-size:15px;font-style:italic}.content blockquote p:last-child{margin-bottom:0}.content hr{position:relative;border:0;width:100%;height:16px;line-height:1rem;overflow:hidden;margin:2rem 0;color:var(--dot-fill,#000);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px}.content hr::before{content:"........................................................................................................................................................................................................";position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;letter-spacing:2.5px;color:var(--dot-fill,#000);opacity:1}.content img{display:block;max-width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--border);margin:1.5rem auto}.content table{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.content table th,.content table td{padding:.6rem .8rem;border:1px solid var(--border);text-align:left}.content table th{background:var(--surface-soft);font-weight:600;color:var(--text-heading)}.content table tr:hover{background:var(--surface-soft)}.content details{margin:1.2rem 0;padding:.8rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.content details summary{font-weight:600;cursor:pointer;color:var(--text-heading)}.content .footnotes{margin-top:2.5rem;padding-top:0;border-top:0;font-size:14px;color:var(--text-muted)}.content .footnotes hr{position:relative;border:0;width:100%;height:16px;line-height:1rem;overflow:hidden;margin:0 0 1.5rem;color:var(--dot-fill,#000);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:14px}.content .footnotes hr::before{content:"........................................................................................................................................................................................................";position:absolute;left:0;right:0;white-space:nowrap;overflow:hidden;letter-spacing:2.5px;color:var(--dot-fill,#000);opacity:1}.content .footnotes ol{padding-left:1.5rem;margin:0}.content .footnotes li{margin-bottom:.5rem;line-height:1.5}.content .footnotes li p{margin-bottom:.35rem}.content .footnotes li p:last-child{margin-bottom:0}.content .footnotes .footnote-backref{text-decoration:none;color:var(--accent);margin-left:.25rem}.content .footnotes .footnote-backref:hover{background:var(--accent-soft)}code,pre,samp,tt{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-feature-settings:"zero","tnum"}code{font-size:14px;background:var(--code-bg);color:var(--code-fg);padding:.12rem .35rem;border-radius:4px;border:1px solid var(--border)}.code-block{position:relative;margin:1.5rem 0}pre,.chroma{background-color:var(--code-bg)!important;color:var(--code-fg)}pre{border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1rem 1.1rem;font-size:14px;line-height:1.55;overflow-x:auto;margin:0}pre code{padding:0;border:0;background:0 0;font-size:inherit}.copy-btn{position:absolute;top:.5rem;right:.5rem;z-index:2;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--text-muted);padding:.2rem .5rem;font-size:12px;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-weight:500;cursor:pointer;user-select:none;opacity:.85;transition:all .15s ease}.copy-btn:hover{opacity:1;color:var(--text-heading);border-color:var(--border-strong);background:var(--surface-elevated)}.copy-btn.copied{color:var(--accent);border-color:var(--accent-border)}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt,.chroma .ln{white-space:pre;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#cf222e}.chroma .na,.chroma .nc,.chroma .nx,.chroma .p{color:#1f2328}.chroma .no,.chroma .nd,.chroma .nt,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo,.chroma .o,.chroma .ow,.chroma .or{color:#0550ae}.chroma .ni,.chroma .nb,.chroma .nf,.chroma .fm{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .bp{color:#6a737d}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:#953800}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}[data-theme=dark] .chroma .k,[data-theme=dark] .chroma .kd,[data-theme=dark] .chroma .kn,[data-theme=dark] .chroma .kp,[data-theme=dark] .chroma .kr{color:#ff7b72}[data-theme=dark] .chroma .kc,[data-theme=dark] .chroma .kt,[data-theme=dark] .chroma .nc,[data-theme=dark] .chroma .nb,[data-theme=dark] .chroma .bp{color:#ffa657}[data-theme=dark] .chroma .n,[data-theme=dark] .chroma .na,[data-theme=dark] .chroma .no,[data-theme=dark] .chroma .ni,[data-theme=dark] .chroma .ne,[data-theme=dark] .chroma .nl,[data-theme=dark] .chroma .nn,[data-theme=dark] .chroma .nx,[data-theme=dark] .chroma .py,[data-theme=dark] .chroma .nt,[data-theme=dark] .chroma .nv,[data-theme=dark] .chroma .vc,[data-theme=dark] .chroma .vg,[data-theme=dark] .chroma .vi,[data-theme=dark] .chroma .vm{color:#d2a8ff}[data-theme=dark] .chroma .nd{color:#79c0ff}[data-theme=dark] .chroma .nf{color:#d2a8ff;font-weight:600}[data-theme=dark] .chroma .fm{color:#79c0ff;font-weight:600}[data-theme=dark] .chroma .s,[data-theme=dark] .chroma .sa,[data-theme=dark] .chroma .sb,[data-theme=dark] .chroma .sc,[data-theme=dark] .chroma .dl,[data-theme=dark] .chroma .sd,[data-theme=dark] .chroma .s2,[data-theme=dark] .chroma .se,[data-theme=dark] .chroma .sh,[data-theme=dark] .chroma .si,[data-theme=dark] .chroma .sx,[data-theme=dark] .chroma .sr,[data-theme=dark] .chroma .s1,[data-theme=dark] .chroma .ss{color:#a5d6ff}[data-theme=dark] .chroma .m,[data-theme=dark] .chroma .mb,[data-theme=dark] .chroma .mf,[data-theme=dark] .chroma .mh,[data-theme=dark] .chroma .mi,[data-theme=dark] .chroma .il,[data-theme=dark] .chroma .mo{color:#79c0ff}[data-theme=dark] .chroma .o,[data-theme=dark] .chroma .ow,[data-theme=dark] .chroma .or{color:#ff7b72}[data-theme=dark] .chroma .p{color:#c9d1d9}[data-theme=dark] .chroma .c,[data-theme=dark] .chroma .ch,[data-theme=dark] .chroma .cm,[data-theme=dark] .chroma .c1,[data-theme=dark] .chroma .cs,[data-theme=dark] .chroma .cp,[data-theme=dark] .chroma .cpf{color:#8b949e}[data-theme=dark] .chroma .gd{color:#ffa198;background-color:#490202}[data-theme=dark] .chroma .gi{color:#7ee787;font-weight:600;background-color:#04260f}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .chroma .k,:root:not([data-theme=light]) .chroma .kd,:root:not([data-theme=light]) .chroma .kn,:root:not([data-theme=light]) .chroma .kp,:root:not([data-theme=light]) .chroma .kr{color:#ff7b72}:root:not([data-theme=light]) .chroma .kc,:root:not([data-theme=light]) .chroma .kt,:root:not([data-theme=light]) .chroma .nc,:root:not([data-theme=light]) .chroma .nb,:root:not([data-theme=light]) .chroma .bp{color:#ffa657}:root:not([data-theme=light]) .chroma .n,:root:not([data-theme=light]) .chroma .na,:root:not([data-theme=light]) .chroma .no,:root:not([data-theme=light]) .chroma .ni,:root:not([data-theme=light]) .chroma .ne,:root:not([data-theme=light]) .chroma .nl,:root:not([data-theme=light]) .chroma .nn,:root:not([data-theme=light]) .chroma .nx,:root:not([data-theme=light]) .chroma .py,:root:not([data-theme=light]) .chroma .nt,:root:not([data-theme=light]) .chroma .nv,:root:not([data-theme=light]) .chroma .vc,:root:not([data-theme=light]) .chroma .vg,:root:not([data-theme=light]) .chroma .vi,:root:not([data-theme=light]) .chroma .vm{color:#d2a8ff}:root:not([data-theme=light]) .chroma .nd{color:#79c0ff}:root:not([data-theme=light]) .chroma .nf{color:#d2a8ff;font-weight:600}:root:not([data-theme=light]) .chroma .fm{color:#79c0ff;font-weight:600}:root:not([data-theme=light]) .chroma .s,:root:not([data-theme=light]) .chroma .sa,:root:not([data-theme=light]) .chroma .sb,:root:not([data-theme=light]) .chroma .sc,:root:not([data-theme=light]) .chroma .dl,:root:not([data-theme=light]) .chroma .sd,:root:not([data-theme=light]) .chroma .s2,:root:not([data-theme=light]) .chroma .se,:root:not([data-theme=light]) .chroma .sh,:root:not([data-theme=light]) .chroma .si,:root:not([data-theme=light]) .chroma .sx,:root:not([data-theme=light]) .chroma .sr,:root:not([data-theme=light]) .chroma .s1,:root:not([data-theme=light]) .chroma .ss{color:#a5d6ff}:root:not([data-theme=light]) .chroma .m,:root:not([data-theme=light]) .chroma .mb,:root:not([data-theme=light]) .chroma .mf,:root:not([data-theme=light]) .chroma .mh,:root:not([data-theme=light]) .chroma .mi,:root:not([data-theme=light]) .chroma .il,:root:not([data-theme=light]) .chroma .mo{color:#79c0ff}:root:not([data-theme=light]) .chroma .o,:root:not([data-theme=light]) .chroma .ow,:root:not([data-theme=light]) .chroma .or{color:#ff7b72}:root:not([data-theme=light]) .chroma .p{color:#c9d1d9}:root:not([data-theme=light]) .chroma .c,:root:not([data-theme=light]) .chroma .ch,:root:not([data-theme=light]) .chroma .cm,:root:not([data-theme=light]) .chroma .c1,:root:not([data-theme=light]) .chroma .cs,:root:not([data-theme=light]) .chroma .cp,:root:not([data-theme=light]) .chroma .cpf{color:#8b949e}:root:not([data-theme=light]) .chroma .gd{color:#ffa198;background-color:#490202}:root:not([data-theme=light]) .chroma .gi{color:#7ee787;font-weight:600;background-color:#04260f}}.archive-page{max-width:var(--content-width)}.archive-header{margin-bottom:2rem;padding-bottom:0}.archive-heading{margin:0 0 .4rem;font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text-heading)}.archive-subheading{margin:0;font-size:14px;color:var(--text-muted)}.archive-timeline{display:flex;flex-direction:column;gap:2rem}.archive-year-badge{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:18px;font-weight:700;color:var(--accent);margin-bottom:.75rem;letter-spacing:.02em}.archive-year-posts{display:flex;flex-direction:column}.archive-post-row{display:flex;align-items:baseline;gap:1.25rem;padding:.5rem 0}.archive-post-date{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:13px;color:var(--text-muted);width:55px;flex-shrink:0}.archive-post-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.archive-post-link{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;color:var(--text-heading);font-weight:600;font-size:15px;letter-spacing:-.005em}.archive-post-link:hover{color:var(--accent)}.archive-post-tags{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:13px;color:var(--text-muted);font-weight:500}.archive-post-tags .tag-link{color:var(--accent)}.archive-post-tags .tag-link:hover{background:var(--accent-soft)}.tags-page,.term-page{max-width:var(--content-width)}.tags-header{margin-bottom:2rem;padding-bottom:0}.tags-heading{margin:0 0 .4rem;font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:24px;font-weight:700;letter-spacing:-.015em;font-feature-settings:"zero","tnum";color:var(--text-heading)}.tags-subheading{margin:0;font-size:14px;color:var(--text-muted)}.tags-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.tags-list-item{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:15px;line-height:1.5;display:flex;align-items:baseline;gap:.5rem;position:relative;padding-left:.9rem}.tags-list-item::before{content:"*";position:absolute;left:0;color:var(--text-muted);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-weight:500}.tag-item-link{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:transparent;transition:all .15s ease}.tag-item-link:hover{color:var(--accent-hover);text-decoration-color:initial;background:var(--accent-soft)}.tag-item-count{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:13px;color:var(--text-muted)}.not-found{text-align:center;padding:4rem 1rem;max-width:500px;margin:0 auto}.not-found-code{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,monospace;font-size:clamp(3.5rem,10vw,5rem);font-weight:800;color:var(--accent);line-height:1;margin-bottom:.75rem;letter-spacing:-.04em}.not-found-title{margin:0 0 .75rem;font-size:22px;font-weight:700;color:var(--text-heading)}.not-found-desc{margin:0;color:var(--text-muted);font-size:15px;line-height:1.6}.site-footer{padding:1.5rem 1.25rem 2.5rem;margin-top:2.5rem;background:var(--bg-subtle);font-size:13px;color:var(--text-muted)}.site-footer-inner{max-width:var(--layout-width);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.footer-right{display:flex;align-items:center;gap:1.25rem}.footer-right a{color:var(--text-muted)}.footer-right a:hover{color:var(--text-heading)}