@font-face{font-family:Literata;src:url(/fonts/literata-latin-var.woff2)format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:Literata;src:url(/fonts/literata-italic-latin-var.woff2)format("woff2");font-style:italic;font-weight:200 900;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/instrument-sans-latin-var.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-var.woff2)format("woff2");font-style:normal;font-weight:100 800;font-display:swap}@font-face{font-family:Literata-fallback;src:local(Georgia);font-style:normal;size-adjust:104.5%;ascent-override:86%;descent-override:24%;line-gap-override:0%}@font-face{font-family:InstrumentSans-fallback;src:local(Arial);size-adjust:98.5%;ascent-override:94%;descent-override:25%;line-gap-override:0%}@font-face{font-family:JetBrainsMono-fallback;src:local(Courier New);size-adjust:105%;ascent-override:97%;descent-override:27%;line-gap-override:0%}:root{--surface-0:#f2f6f6;--surface-1:#eaf1f1;--surface-2:#e2ebec;--panel:#ffffff8c;--panel-strong:#fffc;--ink-0:#0a1b23;--ink-1:#1c333c;--ink-2:#43606b;--ink-3:#5b737c;--hairline:#0a2b3626;--hairline-soft:#0a2b3614;--accent:#0aa2b8;--accent-ink:#056d83;--accent-bright:#0abbd4;--accent-glow:#0aa2b838;--control-accent:var(--accent-ink);--control-track:#6a8790;--control-border:#6a8790;--control-fill-opacity:1;--amber:#a35e00;--red:#c22e24;--focus:#056d83;--meter-lo:#0aa2b8;--meter-hi:#0790a6;--shadow-soft:0 20px 50px -28px #0a2b3659;--grain-opacity:.05;--atmo-glow:#ffffffbf;--atmo-top:var(--surface-1);--font-display:"Literata", "Literata-fallback", Georgia, "Times New Roman", serif;--font-body:"Instrument Sans", "InstrumentSans-fallback", -apple-system, "Segoe UI", Arial, sans-serif;--font-mono:"JetBrains Mono", "JetBrainsMono-fallback", ui-monospace, "SF Mono", Menlo, monospace;--dur-quick:.16s;--dur-slow:.42s;--ease-soft:cubic-bezier(.33, 1, .68, 1);--max-width:72rem;--gutter:clamp(1.25rem, 4vw, 2.75rem)}:root[data-theme=dark]{--surface-0:#03050a;--surface-1:#050913;--surface-2:#08101c;--panel:#ffffff0a;--panel-strong:#ffffff12;--ink-0:#edf6f9;--ink-1:#c5d5dc;--ink-2:#8aa0aa;--ink-3:#79909b;--hairline:#ffffff1c;--hairline-soft:#ffffff0f;--accent:#33def2;--accent-ink:#6ee8f5;--accent-bright:#8cf7ff;--accent-glow:#33def240;--control-accent:var(--accent);--control-track:var(--hairline);--control-border:var(--hairline);--control-fill-opacity:.7;--amber:#ffb254;--red:#ff6b61;--focus:#8cf7ff;--meter-lo:#73f2ff;--meter-hi:#00cceb;--shadow-soft:0 24px 60px -30px #000000d9;--grain-opacity:.07;--atmo-glow:#33def20f;--atmo-top:var(--surface-2)}@media (prefers-color-scheme:dark){:root:not([data-theme]){--surface-0:#03050a;--surface-1:#050913;--surface-2:#08101c;--panel:#ffffff0a;--panel-strong:#ffffff12;--ink-0:#edf6f9;--ink-1:#c5d5dc;--ink-2:#8aa0aa;--ink-3:#79909b;--hairline:#ffffff1c;--hairline-soft:#ffffff0f;--accent:#33def2;--accent-ink:#6ee8f5;--accent-bright:#8cf7ff;--accent-glow:#33def240;--control-accent:var(--accent);--control-track:var(--hairline);--control-border:var(--hairline);--control-fill-opacity:.7;--amber:#ffb254;--red:#ff6b61;--focus:#8cf7ff;--meter-lo:#73f2ff;--meter-hi:#00cceb;--shadow-soft:0 24px 60px -30px #000000d9;--grain-opacity:.07;--atmo-glow:#33def20f;--atmo-top:var(--surface-2);color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--surface-0);color:var(--ink-1);font-family:var(--font-body);letter-spacing:-.004em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;font-size:clamp(1rem,.97rem + .2vw,1.075rem);line-height:1.62;display:flex}main{flex:1}h1,h2,h3{font-family:var(--font-display);color:var(--ink-0);letter-spacing:-.015em;text-wrap:balance;font-variation-settings:"opsz" 72;margin:0;font-weight:420;line-height:1.1}p{text-wrap:pretty;margin:0}a{color:var(--accent-ink);text-decoration-color:color-mix(in oklab, var(--accent-ink) 40%, transparent);text-underline-offset:.18em;transition:color var(--dur-quick) var(--ease-soft)}a:hover{color:var(--ink-0)}button{font:inherit;color:inherit}html:not(.js) [data-demo-canvas],html:not(.js) [data-demo-controls],html:not(.js) .theme-toggle{display:none!important}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}::selection{background:var(--accent-glow);color:var(--ink-0)}.wrap{max-width:var(--max-width);padding-inline:var(--gutter);margin-inline:auto}.kicker{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);align-items:baseline;gap:.7rem;font-size:.72rem;font-weight:500;display:flex}.kicker:before{content:"";background:var(--accent);opacity:.7;align-self:center;width:1.6rem;height:1px}.kicker .n{color:var(--accent-ink)}.prose-serif{font-family:var(--font-display);font-variation-settings:"opsz" 28;color:var(--ink-1);font-size:clamp(1.15rem,1.05rem + .5vw,1.4rem);font-weight:340;line-height:1.55}.mono-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:.72rem}.atmosphere{pointer-events:none;z-index:-1;position:fixed;inset:0}.atmosphere:before{content:"";background:radial-gradient(120% 60% at 50% -8%, var(--atmo-glow), transparent 60%), linear-gradient(180deg, var(--atmo-top), var(--surface-0) 45%);position:absolute;inset:0}.atmosphere .grain{opacity:var(--grain-opacity);mix-blend-mode:overlay;position:absolute;inset:0}.site-nav{z-index:50;-webkit-backdrop-filter:blur(14px)saturate(1.4);background:color-mix(in oklab, var(--surface-0) 96%, transparent);border-bottom:1px solid var(--hairline-soft);position:sticky;top:0}.site-nav__inner{align-items:center;gap:1.4rem;padding-block:.7rem;display:flex}.skip-link{z-index:60;background:var(--ink-0);color:var(--surface-0);transition:top var(--dur-quick) var(--ease-soft);border-radius:8px;padding:.5rem 1rem;font-size:.9rem;text-decoration:none;position:absolute;top:-3rem;left:1rem}.skip-link:focus-visible{color:var(--surface-0);top:.6rem}.wordmark{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink-0);align-items:center;gap:.55rem;font-size:1.18rem;font-weight:480;text-decoration:none;display:inline-flex}.wordmark__icon{flex:none;width:1.75rem;height:1.75rem;display:block}.site-nav__links{align-items:center;gap:1.2rem;margin-left:auto;font-size:.92rem;display:flex}.site-nav__links a{color:var(--ink-2);text-decoration:none}.site-nav__links a:hover,.site-nav__links a[aria-current=page]{color:var(--ink-0)}@media (width<=640px){.site-nav__links .optional{display:none}}@media (width<=380px){.site-nav__inner{gap:.75rem}.site-nav__links{gap:.6rem}.site-nav__links .secondary{display:none}}.theme-toggle{appearance:none;border:1px solid var(--control-border);background:var(--panel);cursor:pointer;width:2.2rem;height:2.2rem;transition:border-color var(--dur-quick) var(--ease-soft), background var(--dur-quick) var(--ease-soft);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{border-color:var(--accent-ink)}.theme-toggle svg{display:block}.theme-toggle .wave-line{stroke:var(--ink-2)}.colophon{border-top:1px solid var(--hairline-soft);color:var(--ink-3);margin-top:clamp(4rem,10vw,8rem);padding-block:2.6rem 3rem;font-size:.9rem}.colophon__wave{width:100%;height:42px;margin-bottom:1.6rem;display:block}.colophon__grid{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1.2rem 2.5rem;display:flex}.colophon a{color:var(--ink-2)}.colophon a:hover{color:var(--ink-0)}.colophon__sig{font-family:var(--font-display);color:var(--ink-2);font-size:1rem;font-style:italic;font-weight:360}.colophon__meta{font-family:var(--font-mono);letter-spacing:.08em;font-size:.72rem}.reveal{opacity:1;transform:none}@media (prefers-reduced-motion:no-preference){html.js .reveal{opacity:0;transition:opacity .7s var(--ease-soft), transform .7s var(--ease-soft);transform:translateY(14px)}html.js .reveal.is-visible{opacity:1;transform:none}}
