:root{--brand-ink:#2a1930;--brand-primary:#3a1b42;--brand-surface:#f1e9dc;--brand-accent:#a9863e;--brand-active:#1f3f8f;--muted:#5e5563;--hairline:color-mix(in srgb, var(--brand-accent) 55%, transparent);--rule:color-mix(in srgb, var(--brand-ink) 14%, transparent);--tint:color-mix(in srgb, var(--brand-ink) 4%, var(--brand-surface));--paper:color-mix(in srgb, #fff 45%, var(--brand-surface));--font-sans:"IBM Plex Sans", "Plex Sans Fallback", system-ui, sans-serif;--font-serif:"IBM Plex Serif", "Plex Serif Fallback", Georgia, serif;--step--3:clamp(.5277rem, .6863rem + -.1761vw, .651rem);--step--2:clamp(.7035rem, .8035rem + -.1111vw, .7813rem);--step--1:clamp(.9375rem, .9374rem + .0003vw, .9377rem);--step-0:clamp(1.125rem, 1.0893rem + .1786vw, 1.25rem);--step-1:clamp(1.35rem, 1.2596rem + .4518vw, 1.6663rem);--step-2:clamp(1.62rem, 1.4483rem + .8587vw, 2.2211rem);--step-3:clamp(1.944rem, 1.6535rem + 1.4525vw, 2.9607rem);--step-4:clamp(2.3328rem, 1.8717rem + 2.3055vw, 3.9467rem);--step-5:clamp(2.7994rem, 2.0961rem + 3.5165vw, 5.2609rem);--step-6:clamp(3.3592rem, 2.3154rem + 5.2194vw, 7.0128rem);--space-2xs:clamp(.5rem, .4643rem + .1786vw, .625rem);--space-xs:clamp(.75rem, .7143rem + .1786vw, .875rem);--space-s:clamp(1rem, .9286rem + .3571vw, 1.25rem);--space-m:clamp(1.5rem, 1.3929rem + .5357vw, 1.875rem);--space-l:clamp(2rem, 1.8571rem + .7143vw, 2.5rem);--space-xl:clamp(3rem, 2.7857rem + 1.0714vw, 3.75rem);--space-2xl:clamp(4rem, 3.5714rem + 2.1429vw, 5.5rem);--space-3xl:clamp(5rem, 4.1429rem + 4.2857vw, 8rem);--gutter:clamp(1rem, .5714rem + 2.1429vw, 2.5rem);--wrap:72rem;--measure:65ch;--header-h:4.5rem;--radius:4px;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-spring:cubic-bezier(.3, 1.5, .5, 1);color-scheme:light;--c-bg:#120a16;--c-panel:#1b0f21;--c-panel-2:#26162e;--c-line:#3a2843;--c-grid:#c9a85e1a;--c-ink:#f1e9dc;--c-dim:#d3c9d6;--c-plum:#c79bd6;--c-brass:#c9a85e;--c-ok:#7cc29c;--c-watch:#f0b46a;--c-alert:#f0827a;--c-blue:#8fb3e0;--c-mono:"Plex Mono", ui-monospace, Menlo, Consolas, monospace;--c-faint:#b6abba;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--c-bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:4rem}body{background:var(--c-bg);min-height:100dvh;color:var(--c-ink);font:400 1.0625rem/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;flex-direction:column;margin:0;display:flex}main{flex:1}a{color:inherit}strong,b{font-weight:600}:focus-visible{outline:1px solid var(--c-brass);outline-offset:3px}::selection{background:var(--c-brass);color:var(--c-bg)}h1,h2,h3{color:var(--c-ink);text-wrap:balance}h1{font:600 clamp(2.4rem, 5.2vw, 4.1rem) / 1.06 var(--font-sans);letter-spacing:-.02em;margin:0 0 24px}h2{max-width:40rem;font:600 clamp(1.75rem, 3.2vw, 2.5rem) / 1.15 var(--font-sans);letter-spacing:-.01em;margin:0 0 20px}.wrap{max-width:72rem;margin:0 auto;padding:88px 16px}.lead{color:var(--c-dim);max-width:38rem;margin:0 0 32px;font-size:1.1875rem;line-height:1.55}.dim{color:var(--c-dim)}.code{font:600 .9375rem/1.3 var(--font-sans);color:var(--c-faint);margin:0 0 12px}.code.warn{color:var(--c-watch)}.code.dimcode{color:var(--c-dim)}.btn{min-height:48px;font:600 1rem/1 var(--font-sans);color:var(--c-bg);background:var(--c-brass);border:1px solid var(--c-brass);justify-content:center;align-items:center;padding:0 24px;text-decoration:none;display:inline-flex}.btn:hover{background:color-mix(in srgb, var(--c-brass) 85%, white)}.btn.small{min-height:40px;padding:0 16px;font-size:.875rem}.btn.ghost{color:var(--c-ink);border-color:var(--c-line);background:0 0}.btn.ghost:hover{border-color:var(--c-dim);background:var(--c-panel)}.top{z-index:5;border-bottom:1px solid var(--c-line);background:color-mix(in srgb, var(--c-bg) 90%, transparent);backdrop-filter:blur(6px);font:500 .75rem/1 var(--c-mono);letter-spacing:.1em;align-items:center;gap:24px;padding:12px 16px;display:flex;position:sticky;top:0}.top .btn{letter-spacing:normal}.brand{font:600 1.25rem/1 var(--font-sans);letter-spacing:-.02em;color:var(--c-ink);align-items:center;gap:10px;margin-right:auto;text-decoration:none;display:inline-flex}.brand svg{width:26px;height:26px}.brand circle{fill:none;stroke:var(--c-brass);stroke-width:4px}.brand circle.dot{fill:var(--c-ink);stroke:none}.links{gap:20px;display:flex}.links a{color:var(--c-dim);text-transform:uppercase;text-decoration:none}.links a:hover{color:var(--c-ink)}.lang{border:1px solid var(--c-line);display:flex}.lang a{color:var(--c-dim);padding:5px 9px;text-decoration:none}.lang a[aria-current]{background:var(--c-panel-2);color:var(--c-ink)}.foot{border-top:1px solid var(--c-line);font:400 .875rem/1 var(--font-sans);color:var(--c-dim);flex-wrap:wrap;justify-content:center;gap:24px;padding:24px 16px;display:flex}.foot a{color:var(--c-dim);text-decoration:none}.foot a:hover{color:var(--c-ink)}.legal{max-width:46rem;margin:0 auto;padding:64px 16px 88px}.legal h1{font-size:clamp(2rem,4vw,2.8rem)}.byline{font:400 .875rem/1.4 var(--font-sans);color:var(--c-dim);border-block:1px solid var(--c-line);margin-bottom:40px;padding-block:12px}.notice{border-left:1px solid var(--c-watch);color:var(--c-watch);padding:8px 16px}mark.todo{color:var(--c-watch);outline:1px dashed var(--c-watch);background:0 0;padding:0 .2em}.prose{color:color-mix(in srgb, var(--c-ink) 88%, var(--c-dim))}.prose h2{margin-top:48px;font-size:1.5rem}.prose h3{margin:32px 0 12px;font-size:1.15rem;font-weight:500}.prose strong{color:var(--c-ink);font-weight:500}.prose a{color:var(--c-plum);text-underline-offset:.18em}.prose code{font-family:var(--c-mono);background:var(--c-panel);padding:.1em .3em;font-size:.88em}.table{margin:24px 0;overflow-x:auto}.table table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.45}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--c-line);padding:.6em .75em}.table th{border-bottom-color:var(--c-brass);font-weight:500}@media (width<=900px){.links{display:none}.wrap{padding-block:64px}}@media (width<=600px){.top{gap:12px}.top .btn.small{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@property --scene-k{syntax:"<integer>";inherits:false;initial-value:0}@property --scene-r{syntax:"<integer>";inherits:false;initial-value:0}:root{--top-h:65px}@media (width<=600px){:root{--top-h:51px}}@counter-style scene-pad3{system:extends decimal;pad:3 "0"}
