:root{--color-paper-0: oklch(13% .015 256);--color-paper: oklch(16.5% .018 256);--color-paper-2: oklch(20.5% .02 256);--color-paper-3: oklch(25% .022 256);--color-ink: oklch(96% .006 250);--color-ink-2: oklch(80% .012 250);--color-ink-3: oklch(70% .014 252);--color-ink-faint: oklch(58% .016 255);--color-line: oklch(29% .02 256);--color-line-2: oklch(38% .022 256);--color-accent: oklch(82% .115 210);--color-accent-2: oklch(72% .13 214);--color-accent-soft: oklch(82% .115 210 / .12);--color-accent-line: oklch(82% .115 210 / .34);--color-on-accent: oklch(16% .03 244);--color-focus: oklch(86% .12 205);--color-danger: oklch(70% .17 25);--color-danger-text: oklch(80% .13 25);--color-danger-soft: oklch(70% .17 25 / .16);--color-danger-line: oklch(60% .13 25 / .55);--color-danger-bg: oklch(30% .07 25 / .45);--font-display: "Bricolage Grotesque", "Bricolage Fallback", system-ui, sans-serif;--font-body: "Geist", "Geist Fallback", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fw-body: 400;--fw-medium: 500;--fw-semibold: 600;--fw-display: 700;--fw-heavy: 800;--text-2xs: .6875rem;--text-xs: .78rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.1875rem;--text-3xl: 2.75rem;--text-4xl: 3.5rem;--text-display: clamp(2.6rem, 6vw + .4rem, 5rem);--text-display-s: clamp(2.1rem, 4vw + .5rem, 3.4rem);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4.5rem;--space-3xl: 7rem;--space-4xl: 10rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--dur-fast: .14s;--dur-mid: .26s;--dur-slow: .46s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--measure: 65ch;--container: 1180px;--container-narrow: 760px;--gutter: clamp(1.25rem, 5vw, 3.5rem)}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/bricolage-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/bricolage-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-mono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Fallback;src:local("Arial");size-adjust:100%;ascent-override:92%;descent-override:22.5%;line-gap-override:0%}@font-face{font-family:Bricolage Fallback;src:local("Arial");size-adjust:97%;ascent-override:92%;descent-override:24%;line-gap-override:0%}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-weight:var(--fw-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:oldstyle-nums;overflow-x:clip;text-rendering:optimizeLegibility}img,svg,video,canvas{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}::selection{background:var(--color-accent);color:var(--color-on-accent)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-display);font-style:normal;line-height:1.05;letter-spacing:-.03em;color:var(--color-ink);text-wrap:balance;overflow-wrap:anywhere}p{text-wrap:pretty}.link{color:var(--color-accent);font-weight:var(--fw-medium);box-shadow:inset 0 -.06em 0 var(--color-accent-line);transition:box-shadow var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.link:hover{box-shadow:inset 0 -.5em 0 var(--color-accent-soft)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:3px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;left:var(--space-sm);top:-100px;z-index:200;background:var(--color-accent);color:var(--color-on-accent);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-semibold);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);transition:top var(--dur-fast) var(--ease-out)}.skip-link:focus{top:var(--space-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--space-3xl)}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--fw-medium);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent)}.eyebrow--muted{color:var(--color-ink-3)}.section-head{max-width:40ch;margin-bottom:var(--space-xl)}.section-head .eyebrow{margin-bottom:var(--space-sm)}.section-head h2{font-size:var(--text-3xl)}.section-head p{margin-top:var(--space-sm);color:var(--color-ink-2);font-size:var(--text-md);max-width:var(--measure)}.btn{--_pad-y: .8rem;display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--_pad-y) 1.4rem;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--fw-semibold);letter-spacing:.01em;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:var(--color-accent-2);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-line-2)}.btn-ghost:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.6;cursor:not-allowed;transform:none}.mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-ink-3);font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2);padding:.28rem .62rem;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-paper-2)}.chip--accent{color:var(--color-accent);border-color:var(--color-accent-line);background:var(--color-accent-soft)}.rule{border:0;border-top:1px solid var(--color-line)}.reveal{transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}.js .reveal{opacity:0;transform:translateY(18px);will-change:opacity,transform}.js .reveal.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.15s!important}.js .reveal{transform:none;transition:opacity .15s linear}}
