:root{color-scheme:light dark;--bg:light-dark(#f3f1eb,#11110f);--surface:light-dark(#faf9f5,#1a1a17);--surface-raised:light-dark(#efede6,#24231f);--fg:light-dark(#171714,#f4f1e9);--muted:light-dark(#66645e,#aaa69c);--rule:light-dark(#d1cec5,#3b3933);--accent:light-dark(#d9432f,#ff654d);--accent-soft:light-dark(#f2ddd6,#462720);--on-accent:#ffffff;--success:light-dark(#347448,#82bd8b);--warning:light-dark(#8b611f,#d4aa68);--bezel:#1c1b19;--font:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;--text-xs:0.75rem;--text-s:0.875rem;--text-m:1.0625rem;--text-l:1.375rem;--text-xl:2rem;--text-display:clamp(2.5rem,6vw,4.5rem);--leading:1.55;--measure:40rem;--wide:72rem;--gutter:clamp(1rem,4vw,2.5rem);--space-xs:0.25rem;--space-s:0.5rem;--space-m:1rem;--space-l:2rem;--space-xl:4rem;--space-section:clamp(4rem,10vw,7rem);--radius:0px;--duration:140ms;--ease:cubic-bezier(0.2,0,0,1)}@media (prefers-reduced-motion:reduce){:root{--duration:0ms}}*,*::before,*::after{box-sizing:border-box}html{font-family:var(--font);font-size:var(--text-m);line-height:var(--leading);color:var(--fg);background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0}h1,h2,h3{line-height:1.1;margin:0 0 var(--space-m);font-weight:600;letter-spacing:-0.02em;text-wrap:balance}h1{font-size:var(--text-display);letter-spacing:-0.03em}h2{font-size:var(--text-xl)}h3{font-size:var(--text-l);letter-spacing:-0.01em}p,ul,ol{margin:0 0 var(--space-m)}a{color:var(--accent);text-underline-offset:0.15em}a:hover{color:var(--fg)}img,svg,video{max-width:100%;height:auto}svg{vertical-align:-0.125em}button,a.button,input[type="submit"]{display:inline-block;padding:0.7em 1.1em;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font:inherit;font-size:var(--text-s);font-weight:500;line-height:1.2;letter-spacing:0.01em;text-decoration:none;cursor:pointer;transition:background-color var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease)}button:hover,a.button:hover,input[type="submit"]:hover{background:color-mix(in srgb,var(--accent) 80%,var(--fg));border-color:color-mix(in srgb,var(--accent) 80%,var(--fg));color:var(--on-accent)}button:disabled{opacity:0.5;cursor:default}input,textarea,select{font:inherit;color:inherit;padding:0.6em 0.8em;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);transition:border-color var(--duration) var(--ease)}input:hover,textarea:hover{border-color:var(--muted)}input:user-invalid{border-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}code,pre,kbd{font-family:var(--font-mono);font-size:var(--text-s)}pre{background:var(--surface);padding:var(--space-m);border:1px solid var(--rule);overflow-x:auto}hr{border:0;border-top:1px solid var(--rule);margin:var(--space-l) 0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-s) var(--space-m) var(--space-s) 0;border-bottom:1px solid var(--rule);vertical-align:top}th{font-weight:500;font-size:var(--text-s);color:var(--muted)}details{border-top:1px solid var(--rule)}summary{cursor:pointer;padding:var(--space-m) 0;font-weight:500}.mono,.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}.eyebrow{display:block;margin-bottom:var(--space-m)}.eyebrow::before{content:"//  ";color:var(--accent)}section{padding:var(--space-section) var(--gutter);border-top:1px solid var(--rule)}section>.inner{max-width:var(--wide);margin:0 auto}section:first-of-type{border-top:0}.lead{font-size:var(--text-l);color:var(--muted);max-width:var(--measure);text-wrap:pretty}.prose{max-width:var(--measure)}.prose h2{margin-top:var(--space-xl)}.prose h2:first-child{margin-top:0}button.ghost,a.button.ghost{background:transparent;color:var(--fg);border-color:var(--rule)}button.ghost:hover,a.button.ghost:hover{background:var(--surface-raised);border-color:var(--muted);color:var(--fg)}a.button.large,button.large{font-size:var(--text-m);padding:0.85em 1.4em}section.tinted{background:var(--surface)}