:root{color-scheme:dark;--c-bg: #0a0b0d;--c-bg-2: #0e1013;--c-surface: #13161a;--c-surface-2: #191d22;--c-line: rgb(236 237 239 / .1);--c-line-strong: rgb(236 237 239 / .22);--c-ink: #ecedef;--c-ink-2: #b6bbc2;--c-muted: #848b95;--c-paper: #efeeea;--c-paper-2: #e5e4df;--c-paper-ink: #0e0f11;--c-paper-ink-2: #3a3d42;--c-paper-muted: #5d6168;--c-paper-line: rgb(14 15 17 / .12);--c-arc: #f86a0a;--c-arc-2: #f8caaa;--c-geometry: #9fb7d6;--accent: var(--c-arc);--accent-2: var(--c-arc-2);--bg: var(--c-bg);--surface: var(--c-surface);--ink: var(--c-ink);--muted: var(--c-muted);--line: var(--c-line);--line-strong: var(--c-line-strong);--font-sans: "Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: var(--font-sans);--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-display: clamp(3rem, 1.2rem + 7.2vw, 8.5rem);--fs-h1: clamp(2.5rem, 1.5rem + 4vw, 5.5rem);--fs-h2: clamp(2rem, 1.35rem + 2.6vw, 3.75rem);--fs-h3: clamp(1.375rem, 1.2rem + .7vw, 1.875rem);--fs-h4: 1.1875rem;--fs-lead: clamp(1.125rem, 1.04rem + .38vw, 1.4375rem);--fs-body: 1.0625rem;--fs-small: .9375rem;--fs-xs: .8125rem;--fs-mono: .75rem;--lh-tight: .98;--lh-heading: 1.08;--lh-body: 1.6;--wdth-display: 118;--wdth-heading: 108;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4rem;--s-9: 6rem;--s-10: 8rem;--section-y: clamp(5rem, 3rem + 8vw, 11rem);--gutter: clamp(1rem, .4rem + 3vw, 3rem);--container: 1400px;--container-narrow: 860px;--radius-s: 4px;--radius-m: 10px;--radius-l: 18px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-1: .16s;--dur-2: .32s;--dur-3: .7s;--dur-4: 1.1s;--header-h: 64px;--subnav-h: 56px}@font-face{font-family:Archivo;src:url(/fonts/archivo-latin.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;src:url(/fonts/archivo-latin-ext.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:JetBrains Mono;src:url(/fonts/jetbrains-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--subnav-h) + 1rem)}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}ul[role=list],ol[role=list]{list-style:none;padding:0}img,svg,video,canvas,picture{display:block;max-width:100%}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}body{background:var(--c-bg);color:var(--c-ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-stretch:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}::selection{background:var(--accent);color:#0a0b0d}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{position:fixed;left:var(--gutter);top:-100px;z-index:1000;padding:var(--s-3) var(--s-4);background:var(--c-ink);color:var(--c-bg);font-weight:600;border-radius:var(--radius-s);text-decoration:none}.skip-link:focus{top:var(--s-3)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.t-display,.t-h1,.t-h2,.t-h3,h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:var(--lh-heading);text-wrap:balance}.t-display{font-size:var(--fs-display);font-stretch:calc(var(--wdth-display) * 1%);line-height:var(--lh-tight);letter-spacing:-.035em;font-weight:600}.t-h1{font-size:var(--fs-h1);font-stretch:calc(var(--wdth-heading) * 1%);letter-spacing:-.03em;line-height:1.02}.t-h2{font-size:var(--fs-h2);font-stretch:calc(var(--wdth-heading) * 1%);letter-spacing:-.025em}.t-h3{font-size:var(--fs-h3);letter-spacing:-.015em;line-height:1.2}.t-h4{font-size:var(--fs-h4);font-weight:600;letter-spacing:-.01em;line-height:1.3}.t-lead{font-size:var(--fs-lead);line-height:1.5;color:var(--c-ink-2);text-wrap:pretty;max-width:44ch}.t-body{color:var(--c-ink-2);text-wrap:pretty}.t-small{font-size:var(--fs-small)}.t-muted{color:var(--muted)}.t-mono,.eyebrow{font-family:var(--font-mono);font-size:var(--fs-mono);font-weight:500;letter-spacing:.1em;text-transform:uppercase;line-height:1.4}.eyebrow{display:inline-flex;align-items:center;gap:.75em;color:var(--muted)}.eyebrow:before{content:"";width:1.5em;height:1px;background:var(--accent)}.accent{color:var(--accent)}.prose{max-width:70ch;color:var(--c-ink-2);font-size:1.125rem;line-height:1.7}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--fs-h3);color:var(--c-ink);margin-top:2.2em}.prose h3{font-size:var(--fs-h4);color:var(--c-ink);margin-top:1.8em}.prose a{color:var(--c-ink);text-decoration-color:var(--accent)}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:.4em}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--c-surface-2);padding:.1em .35em;border-radius:3px}.prose pre{background:var(--c-surface);border:1px solid var(--c-line);padding:var(--s-5);border-radius:var(--radius-m);overflow-x:auto}.prose pre code{background:none;padding:0}.prose img{border-radius:var(--radius-m)}.prose table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.prose th,.prose td{text-align:left;padding:.6em .8em;border-bottom:1px solid var(--c-line)}.prose blockquote{border-left:2px solid var(--accent);padding-left:1.2em;color:var(--c-ink)}html.no-scroll{overflow:hidden}::view-transition-old(root),::view-transition-new(root){animation-duration:.38s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}sup{position:relative;top:-.85em;margin-left:.04em;font-size:max(.42em,8px);font-weight:400;letter-spacing:0;line-height:0;vertical-align:baseline}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}.container--narrow{max-width:calc(var(--container-narrow) + var(--gutter) * 2)}.section{position:relative;padding-block:var(--section-y)}.section--tight{padding-block:calc(var(--section-y) * .6)}.theme-light{--ink: var(--c-paper-ink);--muted: var(--c-paper-muted);--line: var(--c-paper-line);--line-strong: rgb(14 15 17 / .25);--c-ink: var(--c-paper-ink);--c-ink-2: var(--c-paper-ink-2);--c-line: var(--c-paper-line);--c-surface: var(--c-paper-2);--c-surface-2: #dcdbd5;--accent: color-mix(in oklab, var(--accent-raw, var(--c-arc)) 60%, #000);color-scheme:light;background:var(--c-paper);color:var(--c-paper-ink)}.section-head{display:grid;gap:var(--s-5);margin-bottom:clamp(3rem,2rem + 4vw,6rem);max-width:62rem}.section-head--split{max-width:none}@media(min-width:900px){.section-head--split{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:end;gap:var(--s-8)}}.grid{display:grid;gap:var(--s-5)}@media(min-width:900px){.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:600px){.grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:600px){.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.stack>*+*{margin-top:var(--stack, var(--s-5))}.page-hero{position:relative;padding-top:calc(var(--header-h) + clamp(4rem,2rem + 8vw,10rem));padding-bottom:clamp(3rem,2rem + 4vw,6rem);overflow:hidden}.page-hero .t-h1{max-width:18ch;margin-top:var(--s-5)}.page-hero .t-lead{margin-top:var(--s-6);max-width:52ch}.blueprint{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 30%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 70% 30%,#000 10%,transparent 75%);opacity:.55}.btn{--btn-bg: var(--ink);--btn-fg: var(--bg, #0a0b0d);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.75em;min-height:48px;padding:0 1.4em;border:1px solid transparent;border-radius:999px;background:var(--btn-bg);color:var(--btn-fg);font-weight:600;font-size:.9375rem;letter-spacing:.005em;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-out)}.btn .btn__icon{width:1em;height:1em;transition:transform var(--dur-2) var(--ease-out)}.btn:hover .btn__icon{transform:translate(3px)}.btn:active{transform:translateY(1px)}.btn--accent{--btn-bg: var(--accent);--btn-fg: #0a0b0d}.btn--accent:hover{--btn-bg: var(--accent-2)}.btn--ghost{--btn-bg: transparent;--btn-fg: var(--ink);border-color:var(--line-strong)}.btn--ghost:hover{border-color:var(--ink)}.btn--sm{min-height:38px;font-size:.875rem;padding:0 1.1em}.btn-row{display:flex;flex-wrap:wrap;gap:var(--s-3)}.link-arrow{display:inline-flex;align-items:center;gap:.5em;font-weight:600;text-decoration:none;color:var(--ink)}.link-arrow svg{width:1em;height:1em;transition:transform var(--dur-2) var(--ease-out)}.link-arrow:hover svg{transform:translate(4px)}.link-arrow:hover span{text-decoration:underline;text-decoration-color:var(--accent)}.tag{display:inline-flex;align-items:center;gap:.5em;padding:.45em .7em;border:1px solid var(--line-strong);border-radius:var(--radius-s);font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;white-space:nowrap;transition:color var(--dur-1),border-color var(--dur-1),background-color var(--dur-1)}a.tag:hover{color:var(--ink);border-color:var(--ink);background:#ffffff0a}.card{position:relative;padding:clamp(1.5rem,1rem + 1.5vw,2.25rem);border:1px solid var(--line);border-radius:var(--radius-l);background:color-mix(in srgb,var(--c-surface) 70%,transparent);transition:border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}a.card{display:block;text-decoration:none}a.card:hover{border-color:var(--line-strong);background:var(--c-surface)}.card__index{font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--accent);letter-spacing:.08em}.ruled{border-top:1px solid var(--line-strong);padding-top:var(--s-5);display:grid;gap:var(--s-3);align-content:start}.specs{display:grid;border-top:1px solid var(--line)}.specs div{display:grid;grid-template-columns:minmax(7rem,.4fr) 1fr;gap:var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--line)}.specs dt{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:.2em}.specs dd{color:var(--ink)}.ph-note{font-family:var(--font-mono);font-size:.625rem;letter-spacing:.04em;color:var(--muted);opacity:.85;word-break:break-all}.field{display:grid;gap:var(--s-2)}.field label,.field legend{font-size:var(--fs-small);font-weight:500;color:var(--ink)}.field .req{color:var(--accent)}.field input,.field select,.field textarea{width:100%;min-height:50px;padding:.75em 1em;background:var(--c-bg-2);border:1px solid var(--line-strong);border-radius:var(--radius-m);color:var(--ink);transition:border-color var(--dur-1) var(--ease-out)}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--muted)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#ff6b6b}.field textarea{min-height:160px;resize:vertical}.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2.5em}.field .hint{font-size:var(--fs-xs);color:var(--muted)}.field .error{font-size:var(--fs-xs);color:#ff8a8a}.check{display:flex;gap:var(--s-3);align-items:flex-start;font-size:var(--fs-small);color:var(--c-ink-2)}.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:none}.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.js [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity var(--dur-4) var(--ease-out),transform var(--dur-4) var(--ease-out);transition-delay:calc(var(--reveal-delay, 0) * 90ms);animation:reveal-failsafe 0s linear 2.5s forwards}.js [data-reveal].is-in{opacity:1;transform:none;animation:none}.js [data-reveal=fade]{transform:none}.js [data-reveal=line]{transform:scaleX(0);transform-origin:left center;opacity:1}.js [data-reveal=line].is-in{transform:scaleX(1)}@keyframes reveal-failsafe{to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.js [data-reveal]{opacity:1;transform:none}}[data-reveal-delay="1"]{--reveal-delay: 1}[data-reveal-delay="2"]{--reveal-delay: 2}[data-reveal-delay="3"]{--reveal-delay: 3}[data-reveal-delay="4"]{--reveal-delay: 4}[data-reveal-delay="5"]{--reveal-delay: 5}[data-reveal-delay="6"]{--reveal-delay: 6}[data-reveal-delay="7"]{--reveal-delay: 7}[data-reveal-delay="8"]{--reveal-delay: 8}.js [data-intro]{animation:intro-rise var(--dur-4) var(--ease-out) both}.js [data-intro="1"]{animation-delay:80ms}.js [data-intro="2"]{animation-delay:.16s}.js [data-intro="3"]{animation-delay:.24s}.js [data-intro="4"]{animation-delay:.32s}.js [data-intro="5"]{animation-delay:.4s}.js [data-intro="6"]{animation-delay:.48s}@keyframes intro-rise{0%{transform:translate3d(0,22px,0)}}
