:root{--sans: "Space Grotesk", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--measure: 38rem;--shell-max: 80rem;--shell-pad: 2.5rem;--shell-pad-sm: 1.25rem;--paper: #FAF9F5;--paper-deep: #F1EFE7;--paper-edge: #E8E4D7;--ink: #1C1B18;--ink-soft: rgba(28,27,24,0.62);--ink-muted: rgba(28,27,24,0.42);--ink-faint: rgba(28,27,24,0.18);--rule: rgba(28,27,24,0.10);--rule-soft: rgba(28,27,24,0.06);--amber: #B86936;--amber-soft: rgba(184,105,54,0.10);--code-bg: #F1EFE7;--callout: #F3EFE0;--selection: rgba(184,105,54,0.22)}:root[data-theme="dark"]{--paper: #1C1B18;--paper-deep: #25241F;--paper-edge: #2E2C26;--ink: #F2EFE6;--ink-soft: rgba(242,239,230,0.66);--ink-muted: rgba(242,239,230,0.42);--ink-faint: rgba(242,239,230,0.18);--rule: rgba(242,239,230,0.12);--rule-soft: rgba(242,239,230,0.07);--amber: #CC7944;--amber-soft: rgba(204,121,68,0.14);--code-bg: #13130F;--callout: #272520;--selection: rgba(204,121,68,0.25)}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--paper: #1C1B18;--paper-deep: #25241F;--paper-edge: #2E2C26;--ink: #F2EFE6;--ink-soft: rgba(242,239,230,0.66);--ink-muted: rgba(242,239,230,0.42);--ink-faint: rgba(242,239,230,0.18);--rule: rgba(242,239,230,0.12);--rule-soft: rgba(242,239,230,0.07);--amber: #CC7944;--amber-soft: rgba(204,121,68,0.14);--code-bg: #13130F;--callout: #272520;--selection: rgba(204,121,68,0.25)}}*,*::before,*::after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01"}::selection{background:var(--selection)}a{color:var(--ink);text-decoration:none;transition:color 120ms ease, border-color 120ms ease}a:hover{color:var(--amber)}img,svg,video{max-width:100%;height:auto;display:block}hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}h1,h2,h3,h4,h5{font-weight:500;letter-spacing:-0.02em;line-height:1.2;margin:0 0 0.5em;color:var(--ink);text-wrap:balance}h1{font-size:2.25rem}h2{font-size:1.4rem;letter-spacing:-0.015em}h3{font-size:1.15rem;letter-spacing:-0.01em}p,ul,ol{margin:0 0 1rem}p{line-height:1.7;text-wrap:pretty}ul,ol{padding-left:1.25rem;line-height:1.7}li+li{margin-top:0.25rem}code,kbd,samp{font-family:var(--mono);font-size:0.86em;background:var(--code-bg);padding:0.1em 0.35em;border-radius:3px}kbd{border:1px solid var(--rule);border-bottom-width:2px;padding:0.05em 0.35em}pre.highlight,pre{font-family:var(--mono);font-size:0.82rem;line-height:1.65;background:var(--code-bg);color:var(--ink);border:1px solid var(--rule);border-radius:4px;padding:1rem 1.1rem;overflow-x:auto;margin:1.5rem 0}pre code{background:none;padding:0;font-size:inherit;border-radius:0}blockquote{margin:1.5rem 0;padding:0.25rem 0 0.25rem 1rem;border-left:2px solid var(--amber);color:var(--ink-soft);font-size:1.05rem;line-height:1.6;font-style:normal}blockquote p:last-child{margin-bottom:0}table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:0.93rem}th,td{text-align:left;padding:0.6rem 0.75rem;border-bottom:1px solid var(--rule)}th{font-family:var(--mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}figure{margin:1.75rem 0;text-align:center}figure img{border-radius:4px;border:1px solid var(--rule)}figcaption{font-family:var(--mono);font-size:0.7rem;letter-spacing:0.04em;color:var(--ink-muted);margin-top:0.5rem}.footnotes{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:0.78rem;line-height:1.7;color:var(--ink-soft)}.footnotes ol{padding-left:1.5rem}.footnotes li+li{margin-top:0.4rem}.footnotes a.reversefootnote{color:var(--amber);margin-left:0.25rem;text-decoration:none}sup a.footnote{color:var(--amber);text-decoration:none;font-size:0.7em;margin-left:0.1em}.callout{background:var(--callout);border:1px solid var(--rule);border-radius:4px;padding:0.9rem 1.1rem;margin:1.5rem 0;display:grid;grid-template-columns:auto 1fr;gap:0 0.9rem;align-items:start}.callout::before{content:attr(data-label);font-family:var(--mono);font-size:0.65rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--amber);border-right:1px solid var(--rule);padding-right:0.9rem;padding-top:0.18rem;min-width:3.5rem}.callout>p{margin:0;font-size:0.94rem;line-height:1.6}.callout.warn::before{color:#B45339}.callout.tip::before{color:#6B8F62}.MathJax_Display,.katex-display{margin:1.5rem 0 !important}.shell{max-width:var(--shell-max);margin:0 auto;padding:0 var(--shell-pad) 2rem}@media (max-width: 640px){.shell{padding:0 var(--shell-pad-sm) 1.5rem}}.site-header{border-bottom:1px solid var(--rule);padding-bottom:1.1rem}.site-header__row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.6rem 0 0.9rem}.site-header__brand{display:flex;align-items:center;gap:1rem;color:var(--ink);text-decoration:none}.site-header__brand:hover{color:var(--ink)}.site-header__brand svg{width:36px;height:36px;flex:none}.site-header__title{font-size:1.2rem;font-weight:500;letter-spacing:-0.02em;line-height:1}.site-header__tag{font-family:var(--mono);font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.04em;margin-top:0.25rem}.site-nav{display:flex;align-items:center;gap:1.4rem}.site-nav__link{position:relative;font-family:var(--mono);font-size:0.82rem;font-weight:500;color:var(--ink-soft);text-decoration:none;padding:0.25rem 0;display:inline-flex;align-items:center;gap:0.25rem}.site-nav__link:hover{color:var(--ink)}.site-nav__link[aria-current="page"]{color:var(--ink)}.site-nav__link[aria-current="page"]::before{content:"";position:absolute;left:-0.6rem;top:50%;transform:translateY(-50%);width:4px;height:4px;background:var(--amber)}.site-nav__ext::after{content:"↗";font-family:var(--mono);font-size:0.7rem;margin-left:0.15rem;color:var(--ink-muted)}.theme-toggle{display:inline-flex;align-items:center;gap:0.4rem;padding:0.3rem 0.55rem;border:1px solid var(--rule);border-radius:3px;background:transparent;color:var(--ink);font-family:var(--mono);font-size:0.65rem;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer}.theme-toggle:hover{border-color:var(--ink)}.theme-toggle svg{width:14px;height:14px;stroke:currentColor;fill:none}.theme-toggle__sun{display:none}.theme-toggle__moon{display:inline-block}:root[data-theme="dark"] .theme-toggle__sun{display:inline-block}:root[data-theme="dark"] .theme-toggle__moon{display:none}.site-header__strip{display:flex;align-items:center;gap:0.7rem;padding-top:0.6rem;font-family:var(--mono);font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.08em;text-transform:uppercase}.site-header__live{width:6px;height:6px;background:var(--amber);border-radius:50%}.site-header__strip-rule{flex:1;border-top:1px solid var(--rule-soft);transform:translateY(-1px)}.site-header__strip .amber{color:var(--amber)}@media (max-width: 720px){.site-header__strip{display:none}.site-nav{gap:1rem}.site-nav__link:not(.theme-toggle):not([aria-current="page"]){display:none}}.site-footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--rule);display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:start;font-family:var(--mono);font-size:0.72rem;color:var(--ink-muted);line-height:1.6}.site-footer__brand{display:flex;align-items:center;gap:0.75rem}.site-footer__brand svg{width:20px;height:20px}.site-footer__links{display:flex;gap:1.25rem;align-items:center}.site-footer__links a{color:var(--ink-soft);text-decoration:none;display:inline-flex;align-items:center;gap:0.35rem}.site-footer__links a:hover{color:var(--ink)}@media (max-width: 640px){.site-footer{grid-template-columns:1fr;gap:1.25rem}}.home-hero{display:grid;grid-template-columns:12rem 1fr;gap:2rem;align-items:baseline;padding:2.75rem 0 1.75rem}.home-hero__label{font-family:var(--mono);font-size:0.7rem;color:var(--ink-muted);letter-spacing:0.1em;text-transform:uppercase}.home-hero__title{font-size:1.75rem;font-weight:500;letter-spacing:-0.02em;line-height:1.2;margin:0;max-width:45rem;text-wrap:pretty}.home-hero__meta{margin-top:1.1rem;font-family:var(--mono);font-size:0.7rem;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.home-hero__meta a{color:var(--amber);text-decoration:none;display:inline-flex;align-items:center;gap:0.3rem}@media (max-width: 640px){.home-hero{grid-template-columns:1fr;gap:0.6rem}}.post-list{margin:0;padding:0;list-style:none}.post-list__head{display:grid;grid-template-columns:5.75rem 1fr 12.5rem 3.75rem;gap:1.25rem;padding:0.65rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:0.6rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-muted)}.post-list__head>:last-child{text-align:right}.post-row{display:grid;grid-template-columns:5.75rem 1fr 12.5rem 3.75rem;gap:1.25rem;padding:0.85rem 0;align-items:center;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:var(--ink)}.post-row:hover{color:var(--ink);background:var(--paper-deep)}.post-row:hover .post-row__title{text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:3px}.post-row__date{font-family:var(--mono);font-size:0.75rem;color:var(--ink-muted);letter-spacing:0.02em}.post-row__title{font-size:0.97rem;font-weight:400;letter-spacing:-0.005em;line-height:1.35;text-wrap:pretty}.post-row__tags{display:flex;gap:0.35rem;flex-wrap:wrap}.post-row__read{font-family:var(--mono);font-size:0.72rem;color:var(--ink-muted);text-align:right;letter-spacing:0.02em}.tag-pill{font-family:var(--mono);font-size:0.65rem;color:var(--ink-soft);background:var(--paper-deep);padding:0.1rem 0.45rem;border-radius:2px;letter-spacing:0.02em}.end-of-feed{display:flex;align-items:center;gap:0.75rem;padding-top:1rem;font-family:var(--mono);font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.08em;text-transform:uppercase}.end-of-feed::before{content:"";width:6px;height:6px;background:var(--amber);display:inline-block}@media (max-width: 720px){.post-list__head{grid-template-columns:4.5rem 1fr 3rem}.post-list__head>:nth-child(3){display:none}.post-row{grid-template-columns:4.5rem 1fr 3rem;gap:0.75rem}.post-row__tags{display:none}}.post-meta-strip{display:grid;grid-template-columns:12rem 1fr;gap:2rem;align-items:baseline;padding:2.25rem 0 0.25rem}.post-meta-strip__label{font-family:var(--mono);font-size:0.7rem;color:var(--ink-muted);letter-spacing:0.1em;text-transform:uppercase}.post-meta-strip__title{font-size:2rem;font-weight:500;letter-spacing:-0.02em;line-height:1.12;margin:0;text-wrap:balance;max-width:47rem}.post-meta-strip__bar{margin-top:0.85rem;font-family:var(--mono);font-size:0.7rem;color:var(--ink-muted);letter-spacing:0.04em;display:flex;gap:0.85rem;flex-wrap:wrap;align-items:center}.post-meta-strip__bar .tag-pill{font-size:0.65rem;padding:0.15rem 0.45rem}.post-meta-strip__bar .tag-pill--amber{color:var(--amber);background:var(--amber-soft)}.post-grid{display:grid;grid-template-columns:12rem 1fr 13.75rem;gap:2rem;margin-top:1.75rem}@media (max-width: 1080px){.post-grid{grid-template-columns:1fr 13.75rem;gap:1.75rem}.post-grid__rail{display:none}}@media (max-width: 820px){.post-grid{grid-template-columns:1fr}.post-grid__toc{display:none}}.post-grid__rail{font-family:var(--mono);font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.08em;text-transform:uppercase;line-height:1.8;position:sticky;top:1.75rem;align-self:start}.post-grid__rail a{color:var(--ink-soft)}.post-content{max-width:var(--measure);font-size:1rem;color:var(--ink)}.post-content>p:first-of-type:not(.post-lede){font-size:1.05rem}.post-lede{font-size:1.08rem;color:var(--ink-soft);line-height:1.55;margin:0 0 1.5rem;padding-left:1rem;border-left:2px solid var(--amber);text-wrap:pretty}.post-content h2{margin:2.25rem 0 0.65rem;display:flex;align-items:baseline;gap:0.6rem}.post-content h2::before{content:"§";font-family:var(--mono);font-size:0.7rem;color:var(--amber);font-weight:400}.post-content h3{margin:1.75rem 0 0.5rem}.post-grid__toc{position:sticky;top:1.75rem;align-self:start;font-family:var(--mono)}.post-toc__label{font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:0.9rem;display:flex;align-items:center;gap:0.5rem}.post-toc__label::before{content:"";width:5px;height:5px;background:var(--amber)}.post-toc ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.1rem}.post-toc li a{display:block;font-size:0.74rem;line-height:1.5;color:var(--ink-soft);text-decoration:none;padding:0.3rem 0 0.3rem 0.75rem;border-left:1px solid var(--rule-soft)}.post-toc li a:hover{color:var(--ink)}.post-toc li a.is-active{color:var(--ink);border-left:2px solid var(--amber);padding-left:0.7rem;background:var(--amber-soft)}.post-nav{margin-top:2.5rem;padding-top:1.4rem;border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;gap:1rem}.post-nav a{text-decoration:none;color:var(--ink);padding:0.8rem 0.95rem;border:1px solid var(--rule);border-radius:3px;display:block;transition:border-color 120ms ease, background 120ms ease}.post-nav a:hover{border-color:var(--amber);background:var(--paper-deep);color:var(--ink)}.post-nav__label{font-family:var(--mono);font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:0.3rem}.post-nav__title{font-size:0.86rem;line-height:1.4}.post-nav__next{text-align:right}@media (max-width: 640px){.post-nav{grid-template-columns:1fr}.post-nav__next{text-align:left}}.page{max-width:var(--measure);margin:2.5rem 0}.page h1{font-size:2rem;margin-bottom:0.75rem}.page__lede{font-size:1.08rem;color:var(--ink-soft);line-height:1.55;margin:0 0 2rem}.tag-index{padding:1.5rem 0 0}.tag-index__group{margin-bottom:2.5rem}.tag-index__header{display:flex;align-items:baseline;gap:0.75rem;padding-bottom:0.4rem;border-bottom:1px solid var(--rule);margin-bottom:0.5rem}.tag-index__name{font-size:1rem;font-weight:500;letter-spacing:-0.01em}.tag-index__name::before{content:"#";color:var(--amber);margin-right:0.1em}.tag-index__count{font-family:var(--mono);font-size:0.65rem;color:var(--ink-muted);letter-spacing:0.08em}.highlight .c,.highlight .cm,.highlight .cp,.highlight .c1,.highlight .cs{color:var(--ink-muted);font-style:italic}.highlight .k,.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--amber)}.highlight .o,.highlight .ow{color:var(--ink-soft)}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx,.highlight .sr{color:#6B8F62}.highlight .m,.highlight .mi,.highlight .mf,.highlight .mh,.highlight .mo{color:#C28543}.highlight .n{color:var(--ink)}.highlight .na{color:var(--ink-soft)}.highlight .nb{color:var(--amber)}.highlight .nc{color:#4F7AAC}.highlight .nf{color:#4F7AAC}.highlight .nn{color:var(--ink-soft)}.highlight .nt{color:var(--amber)}.highlight .nv{color:var(--ink)}.highlight .err{color:#B45339;background:transparent}.highlight .p{color:var(--ink-soft)}:root[data-theme="dark"] .highlight .s,:root[data-theme="dark"] .highlight .s1,:root[data-theme="dark"] .highlight .s2,:root[data-theme="dark"] .highlight .sb,:root[data-theme="dark"] .highlight .sc,:root[data-theme="dark"] .highlight .sd,:root[data-theme="dark"] .highlight .se,:root[data-theme="dark"] .highlight .sh,:root[data-theme="dark"] .highlight .si,:root[data-theme="dark"] .highlight .sx,:root[data-theme="dark"] .highlight .sr{color:#8FAE82}:root[data-theme="dark"] .highlight .m,:root[data-theme="dark"] .highlight .mi,:root[data-theme="dark"] .highlight .mf,:root[data-theme="dark"] .highlight .mh,:root[data-theme="dark"] .highlight .mo{color:#D89760}:root[data-theme="dark"] .highlight .nc,:root[data-theme="dark"] .highlight .nf{color:#7BA1D0}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .highlight .s,:root:not([data-theme="light"]) .highlight .s1,:root:not([data-theme="light"]) .highlight .s2,:root:not([data-theme="light"]) .highlight .sb,:root:not([data-theme="light"]) .highlight .sc,:root:not([data-theme="light"]) .highlight .sd,:root:not([data-theme="light"]) .highlight .se,:root:not([data-theme="light"]) .highlight .sh,:root:not([data-theme="light"]) .highlight .si,:root:not([data-theme="light"]) .highlight .sx,:root:not([data-theme="light"]) .highlight .sr{color:#8FAE82}:root:not([data-theme="light"]) .highlight .m,:root:not([data-theme="light"]) .highlight .mi,:root:not([data-theme="light"]) .highlight .mf,:root:not([data-theme="light"]) .highlight .mh,:root:not([data-theme="light"]) .highlight .mo{color:#D89760}:root:not([data-theme="light"]) .highlight .nc,:root:not([data-theme="light"]) .highlight .nf{color:#7BA1D0}}
