*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;overflow-y:scroll}body{background:var(--bg);color:var(--fg);font-family:var(--font-mono);font-size:15px;line-height:var(--step);font-feature-settings:"liga" 0;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background var(--dur) ease, color var(--dur) ease;margin:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}img{max-width:100%;height:auto}::selection{background:var(--accent-2);color:var(--bg)}:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--content-width);padding-inline:var(--pad);margin:0 auto}.eyebrow{color:var(--fg-dim);letter-spacing:.04em;font-size:12.5px}a{color:var(--fg);transition:color var(--dur) ease;text-decoration:none}a:hover{color:var(--link);text-decoration:underline;text-decoration-color:var(--accent-2);text-underline-offset:3px;text-decoration-thickness:1px}.topnav a:hover,.footer .flinks a:hover,.brand:hover,.backlink:hover{color:var(--link);text-decoration:none}.prose a:hover,.hero .lede a:hover,.article .lede a:hover{color:var(--link);text-underline-offset:3px;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:var(--accent-2)!important}a.ext:after{content:"↗";color:var(--fg-dim);transition:color var(--dur) ease, transform var(--dur) ease;margin-left:0;font-size:.85em;display:inline-block}.topnav a.ext:after,.footer .flinks a.ext:after{margin-left:var(--arrow-gap)}a.ext:hover:after{color:var(--accent-2);transform:translate(2px,-2px)scale(1.25)}a.email-copy{cursor:pointer;align-items:center;display:inline-flex}a.email-copy .copy-icon{color:var(--fg-dim);transition:color var(--dur) ease, transform var(--dur) ease;margin-right:.5em}a.email-copy:hover .copy-icon{color:var(--link);transform:translateY(-1px)}a.email-copy.copied .copy-icon{color:var(--accent-2)}a.email-copy .email-label{display:inline-grid;position:relative}a.email-copy .email-label>span{white-space:nowrap;grid-area:1/1;justify-self:start}a.email-copy .label-copied{visibility:hidden;font-style:normal}a.email-copy.copied .label-default{visibility:hidden}a.email-copy.copied .label-copied{visibility:visible}.copy-tooltip{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-raised);color:var(--accent-2);font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur) ease, transform var(--dur) ease;padding:3px 7px;font-size:12px;font-style:normal;position:absolute;bottom:calc(100% + 6px);left:20px;transform:translate(-20px)translateY(10px)}.copy-tooltip.show{opacity:1;transform:translate(10px)translateY(0)}.prose em,.hero .lede em,.article .lede em{color:var(--accent-2);font-style:italic}.prose strong,.hero .lede strong{color:var(--fg);font-weight:600}.prose strong em,.prose em strong{color:var(--accent-4);font-style:italic;font-weight:600}.accent{color:var(--accent)}.accent-2{color:var(--accent-2)}.accent-3{color:var(--accent-3)}.highlight{color:var(--accent-3);font-style:italic;font-weight:500}.underline,.underline-fg,.underline-accent{text-underline-offset:3px;text-decoration-line:underline;text-decoration-thickness:1px}.underline{text-decoration-color:var(--accent-2)}.underline-fg{text-decoration-color:currentColor}.underline-accent{text-decoration-color:var(--accent)}.prose mark,mark{background:var(--mark-bg);color:var(--fg);border-radius:var(--radius);padding:.02em .28em}.prose del{color:var(--fg-dim)}.prose ins{color:var(--accent);text-decoration:none}u{text-underline-offset:3px;transition:text-decoration-color var(--dur) ease;text-decoration-line:underline;text-decoration-color:currentColor;text-decoration-thickness:1px}u:hover{text-decoration-color:var(--accent-2)}.topbar{z-index:50;background:color-mix(in srgb, var(--bg) 86%, transparent);backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar .row{max-width:var(--content-width);padding:.7rem var(--pad);align-items:center;gap:1.25rem;margin:0 auto;display:flex}.brand{color:var(--fg-muted);letter-spacing:-.01em;font-weight:100}.topnav{align-items:center;gap:1.1rem;margin-left:auto;font-size:13.5px;display:flex}.topnav a{color:var(--fg-muted)}.toggle{display:inline-grid}.toggle .state{white-space:nowrap;grid-area:1/1;justify-self:start}button{font-family:var(--font-mono);background-color:var(--bg-button);color:var(--fg);cursor:pointer;border:2px solid #0000;border-radius:5px;margin:auto;padding:5px;text-align:center!important}html[data-theme=light] .toggle .state-dark,html:not([data-theme=light]) .toggle .state-light{visibility:hidden}.topnav a[aria-current=page]{color:var(--accent-2)}.hero{padding-top:clamp(3.5rem,7vh,6.5rem);padding-bottom:3.25rem}.pagehead{padding-top:clamp(3.5rem,7vh,6.5rem)}.pagehead h1{letter-spacing:-.02em;margin:.55rem 0 0;font-size:clamp(1.7rem,5vw,2.3rem);font-weight:600}.hero h1{letter-spacing:-.02em;margin:.55rem 0 0;font-size:clamp(2rem,6vw,2.9rem);font-weight:600;line-height:1.05}.hero .lede{color:var(--fg-muted);max-width:60ch;margin:1.15rem 0 0}.hero .lede a{color:var(--fg-muted)}.linkrow{flex-wrap:wrap;gap:.35rem 1.4rem;margin-top:1.6rem;font-size:14px;display:flex}.linkrow a{color:var(--fg)}.linkrow a:before{content:"→";color:var(--fg-dim);transition:transform var(--dur) ease, color var(--dur) ease;margin-right:.5em;display:inline-block}.linkrow a:hover:before{color:var(--link);transform:translate(2px)}.slabel{color:var(--fg-dim);letter-spacing:.08em;text-transform:uppercase;align-items:baseline;gap:.6rem;margin:3.25rem 0 1.1rem;font-size:12.5px;display:flex}.slabel:after{content:"";background:var(--border);flex:1;align-self:center;height:1px}.list{border-top:1px solid var(--border)}.contact-list{border-top:none;margin-top:2rem}.contact-list .item{grid-template-columns:7rem 1fr}.contact-list .date{text-transform:lowercase}.item{border-bottom:1px solid var(--border);transition:background var(--dur);grid-template-columns:5.5rem 1fr auto;align-items:baseline;gap:.25rem 1.1rem;padding:.95rem 0;display:grid}.item:hover{background:var(--surface-hover);text-decoration:underline;text-decoration-color:var(--accent-2);text-underline-offset:3px;text-decoration-thickness:1px}.item:hover .t{color:var(--link)}.item .date{color:var(--fg-dim);font-size:12.5px}.item .t{color:var(--fg)}.item .d{color:var(--fg-muted);grid-column:2/-1;font-size:13px}.item .arrow{color:var(--fg-dim);opacity:0;transition:opacity var(--dur), transform var(--dur);grid-area:1/3;transform:translate(-4px)}.item:hover .arrow{opacity:1;color:var(--link);transform:none}.item:hover .arrow.ext{color:var(--accent-2);transform:translate(2px,-2px)scale(1.1)}.article{padding-top:2rem;padding-bottom:1rem}.backlink{color:var(--fg-dim);font-size:13px}.article h1{letter-spacing:-.02em;margin:1rem 0 0;font-size:clamp(1.7rem,4.6vw,2.3rem);font-weight:600;line-height:1.1}.article .lede{color:var(--fg-muted);max-width:66ch;margin:1.1rem 0 0;font-size:16px}.prose{counter-reset:sec;margin-top:2.4rem}.prose>*{max-width:var(--measure)}.prose p{margin:0 0 1.05rem}.prose h2{counter-increment:sec;letter-spacing:-.01em;margin:2.6rem 0 .8rem;font-size:1.12rem;font-weight:600}.prose h2:before{content:"§" counter(sec) "  ";color:var(--accent-3);font-weight:600}.prose h3{color:var(--fg);margin:1.8rem 0 .6rem;font-size:1rem;font-weight:600}.prose ul,.prose ol{margin:0 0 1.05rem;padding-left:1.4rem}.prose li{margin:.3rem 0}.prose li::marker{color:var(--accent)}.prose hr{border:0;border-top:1px solid var(--border);margin:2.4rem 0}.prose blockquote{border-left:2px solid var(--accent);color:var(--fg-muted);margin:1.4rem 0;padding:.1rem 0 .1rem 1.1rem;font-style:italic}code{font-family:var(--font-mono);background:var(--bg-code);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:.08em .4em;font-size:.9em}.prose pre{border:1px solid var(--border);border-radius:var(--radius);margin:1.4rem 0;padding:.95rem 1.1rem;font-size:13.5px;line-height:1.6;overflow-x:auto;background:var(--bg-code)!important}.prose pre code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.prose figure{margin:1.8rem 0}.prose figure img{border:1px solid var(--border);border-radius:var(--radius);display:block}.prose figcaption{color:var(--fg-muted);margin-top:.7rem;font-size:12.5px;font-style:italic;line-height:1.55}.prose figcaption b{color:var(--fg);font-style:normal;font-weight:600}.prose .katex{color:var(--fg);font-size:1.05em}.prose .katex-display{margin:1.4rem 0;padding-bottom:.4rem;overflow:auto hidden}.footer{border-top:1px solid var(--border);margin-top:4.5rem}.footer .row{padding:1.6rem var(--pad) 2.6rem;max-width:var(--content-width);margin:0 auto}.footer .flinks{flex-wrap:wrap;gap:.4rem 1.4rem;font-size:13px;display:flex}.footer .flinks a{color:var(--fg-muted);transition:color var(--dur);align-items:center;display:inline-flex}.footer .flinks a:not(.ext):not(.top):before{content:"→";color:var(--fg-dim);transition:transform var(--dur) ease, color var(--dur) ease;margin-right:.5em;display:inline-block}.footer .flinks a:not(.ext):not(.top):hover:before{color:var(--link);transform:translate(2px)}.footer .flinks a.top .up{transition:transform var(--dur) ease, color var(--dur) ease;margin-left:.35em;display:inline-block}.footer .flinks a.top:hover .up{color:var(--accent-2);transform:translateY(-3px)scale(1.2)}.footer .copy{color:var(--fg-dim);margin-top:.9rem;font-size:12.5px}
