:root{--bg-primary:#1a1a1a;--text-primary:#e8e8e8;--text-secondary:#999;--border-color:#333;--code-bg:#2a2a2a;--pre-bg:#0d0d0d;--code-border:#444;--accent:#4dd71f;--accent-hover:#4dd71f;--external-link-color:#999;--blockquote-bg:#252525;--blockquote-text:#ccc;--syntax-keyword:#ff79c6;--syntax-string:#4dd71f;--syntax-comment:#6272a4;--syntax-number:#bd93f9;--syntax-operator:#ff79c6}@media(prefers-color-scheme:light){:root{--bg-primary:#fff;--text-primary:#222;--text-secondary:#666;--border-color:#eee;--code-bg:#f5f5f5;--pre-bg:#f8f9fa;--code-border:#eee;--accent:#008900;--accent-hover:#008900;--external-link-color:#666;--blockquote-bg:#f8f9fa;--blockquote-text:#444;--syntax-keyword:#d73585;--syntax-string:#00aa00;--syntax-comment:#999;--syntax-number:#0000dd;--syntax-operator:#d73585}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:ui-monospace,cascadia mono,segoe ui mono,liberation mono,Menlo,Monaco,Consolas,monospace;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);padding:16px}@media screen and (min-width:768px){body{padding:32px 48px;max-width:1e3px}}h1,h2{font-size:1.4em;margin:1.8em 0 1em;font-weight:600}h1:first-child{margin-top:0}h2{font-size:1.2em}p{margin-bottom:1.2em}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{color:var(--accent-hover)}a[href^=http]::after{content:"[ext]";font-size:.8em;margin-left:.3em;color:var(--external-link-color)}code{font-family:inherit;background:var(--code-bg);padding:.1em .3em;border-radius:3px;font-size:.95em}pre{background:var(--pre-bg);padding:16px;overflow-x:auto;margin:1.4em 0;border-radius:3px;border:1px solid var(--code-border)}pre code{padding:0;background:0 0}.highlight{background:var(--pre-bg)}.highlight .k,.highlight .kd{color:var(--syntax-keyword);font-weight:700}.highlight .nf,.highlight .nx{color:var(--accent)}.highlight .s,.highlight .s1,.highlight .s2{color:var(--syntax-string)}.highlight .c,.highlight .c1,.highlight .cm{color:var(--syntax-comment);font-style:italic}.highlight .mi,.highlight .mf{color:var(--syntax-number)}.highlight .o{color:var(--syntax-operator)}.highlight .nb{color:var(--accent)}.highlight .p{color:#444}header{margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}header h1{margin:0;font-size:1.4em}footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--border-color);font-size:.9em}footer nav{margin-bottom:16px}footer nav a{margin-right:16px}.footnotes{margin-top:32px;padding-top:16px;border-top:1px solid var(--border-color);font-size:.9em}.footnotes hr{display:none}.footnote-ref{text-decoration:none;padding:0 .2em}.footnote-backref{text-decoration:none;margin-left:.5em;font-size:.9em;color:var(--text-secondary)}.footnote-backref::before,.footnote-backref::after{content:none}.footnote-backref{font-size:0}.footnote-backref::after{content:"[return]";font-size:.9rem}.archive-separator{margin:2rem 0;border:none;border-top:2px solid var(--text-secondary)}.shard-list{list-style:none}.shard-item{margin-bottom:16px;display:flex;gap:16px;align-items:baseline}.shard-date{color:var(--text-secondary);font-size:.9em;min-width:6.5em}.year-divider{margin:32px 0 16px;font-weight:700;color:var(--text-secondary);font-size:.9em}.year-divider:first-of-type{margin-top:0}.article-date{color:var(--text-secondary);font-size:.9em;margin:16px 0 24px}article>*+*{margin-top:1.2em}article>*+h2{margin-top:1.8em}article ul,article ol{margin-left:1.5em;margin-bottom:1.2em}article li+li{margin-top:.5em}blockquote{margin:1.2em 0;padding:.8em 1em;border-left:3px solid var(--accent);background:var(--blockquote-bg);color:var(--blockquote-text);font-size:.95em}blockquote>:last-child{margin-bottom:0}table{margin:1.2em 0;border-collapse:collapse;width:100%}th,td{padding:8px;border:1px solid var(--border-color);text-align:left}