:root{--bg-0:#d9e8ef;--bg-1:#e8f1f5;--bg-2:#fff;--bg-3:#cfe3ec;--text-1:#0b2a3c;--text-2:#3d5a6b;--text-3:#45606f;--silver:#0b2a3c;--silver-hover:#176b87;--silver-text:linear-gradient(#0b2a3c, #0b2a3c);--silver-flat:#0b2a3c;--accent:#176b87;--accent-strong:#0f5169;--accent-soft:#176b871a;--water-1:#cfe3ec;--water-2:#7fb3c9;--water-3:#2e7e9c;--line:#0b2a3c1f;--line-strong:#0b2a3c3d;--ok:#2f7d55;--warn:#8a5d0c;--error:#b4432f;--color-canvas:var(--bg-1);--color-canvas-deep:var(--bg-0);--color-surface:var(--bg-2);--color-mist:var(--bg-3);--color-ink:var(--text-1);--color-ink-soft:var(--text-2);--color-muted:var(--text-3);--color-line:var(--line);--color-line-strong:var(--line-strong);--color-control-border:#6b8797;--color-accent:var(--accent);--color-accent-hover:var(--accent-strong);--color-accent-bright:#2e7e9c;--color-accent-light:var(--accent-strong);--color-accent-soft:var(--accent-soft);--color-success:var(--ok);--color-success-soft:#e3f2ea;--color-attention:var(--warn);--color-attention-soft:#fbf0da;--color-error:var(--error);--color-error-soft:#fbe7e3;--color-on-dark:#f3f4f6;--color-on-dark-muted:#c8cbd2;--color-dark-surface:#0b2a3c;--color-dark-line:#ffffff29;--color-focus:var(--accent);--color-button-ink:#fff;--chrome:var(--silver);--chrome-hover:var(--silver-hover);--chrome-edge:var(--silver-flat);--chrome-text:var(--silver-text);--font-sans:var(--font-geist), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-display:clamp(2.5rem, 1.4rem + 4.6vw, 5rem);--text-h1:clamp(2.25rem, 1.4rem + 3.6vw, 4.25rem);--text-h2:clamp(1.875rem, 1.3rem + 2.2vw, 3.25rem);--text-h3:clamp(1.25rem, 1.1rem + .6vw, 1.625rem);--text-lead:clamp(1.125rem, 1.05rem + .3vw, 1.25rem);--text-body:1.0625rem;--text-small:.9375rem;--text-label:.8125rem;--leading-tight:1.04;--leading-heading:1.12;--leading-body:1.6;--tracking-display:-.035em;--tracking-heading:-.025em;--measure:66ch;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--section-space:clamp(5rem, 3rem + 7vw, 9rem);--container:80rem;--gutter:1.25rem;--header-h:4.125rem;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:999px;--edge:inset 0 1px 0 #ffffffe6;--glow-silver:0 0 0 1px #0b2a3c14, 0 24px 60px -36px #0b2a3c59;--scrim:linear-gradient(to top, #081822e0, #08182200);--shadow-raised:0 1px 2px #0b2a3c0f, 0 8px 24px -12px #0b2a3c2e;--shadow-float:0 2px 6px #0b2a3c0f, 0 24px 48px -24px #0b2a3c47;--shadow-deep:0 4px 10px #0b2a3c14, 0 40px 80px -40px #0b2a3c66;--stroke-connector:1.5px;--dur-fast:.15s;--dur-base:.32s;--dur-slow:.7s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-instant:var(--dur-fast);--dur-state:var(--dur-fast);--dur-move:var(--dur-base);--dur-reveal:var(--dur-base);--dur-intro:var(--dur-slow);--dur-long:var(--dur-slow);--ease-drip:var(--ease-in-out);--stagger:60ms;--reveal-shift:16px}[data-tone]{--color-canvas:var(--bg-1);--color-canvas-deep:var(--bg-0);--color-surface:var(--bg-2);--color-mist:var(--bg-3);--color-ink:var(--text-1);--color-ink-soft:var(--text-2);--color-muted:var(--text-3);--color-line:var(--line);--color-line-strong:var(--line-strong);--color-accent:var(--accent);--color-accent-hover:var(--accent-strong);--color-accent-light:var(--accent-strong);--color-accent-soft:var(--accent-soft);--color-focus:var(--accent-strong);--color-on-dark:var(--text-1);--color-dark-surface:var(--bg-2);--color-dark-line:var(--line-strong);--chrome:var(--silver);--chrome-hover:var(--silver-hover);--chrome-edge:var(--silver-flat);--chrome-text:var(--silver-text);color:var(--text-1)}[data-tone=light]{--bg-0:#d9e8ef;--bg-1:#e8f1f5;--bg-2:#fff;--bg-3:#cfe3ec;--text-1:#0b2a3c;--text-2:#3d5a6b;--text-3:#45606f;--accent:#176b87;--accent-strong:#0f5169;--accent-soft:#176b871a;--line:#0b2a3c1f;--line-strong:#0b2a3c3d}[data-tone=silver]{--bg-0:#d5dbe1;--bg-1:#e4e8ec;--bg-2:#f4f6f8;--bg-3:#cbd3da;--text-1:#102a43;--text-2:#3e5566;--text-3:#3e5566;--accent:#14607a;--accent-strong:#0f5169;--accent-soft:#14607a24;--line:#102a4324;--line-strong:#102a4347}[data-tone=light],[data-tone=silver],[data-tone=graphite]{--silver:#0b2a3c;--silver-hover:#176b87;--silver-flat:#0b2a3c;--silver-text:linear-gradient(#0b2a3c, #0b2a3c);--edge:inset 0 1px 0 #ffffffe6;--color-button-ink:#fff;--color-on-dark-muted:var(--text-2)}[data-tone=light] ::selection,[data-tone=silver] ::selection,[data-tone=graphite] ::selection{background:var(--accent);color:#fff}[data-tone=graphite]{--bg-0:#cfe3ec;--bg-1:#d9e8ef;--bg-2:#e8f1f5;--bg-3:#c3dbe6;--text-1:#0b2a3c;--text-2:#3d5a6b;--text-3:#3d5a6b;--accent:#176b87;--accent-strong:#0f5169;--accent-soft:#176b871a;--line:#0b2a3c1f;--line-strong:#0b2a3c3d}[data-tone=dark]{--bg-0:#0e0f12;--bg-1:#15161a;--bg-2:#1c1d22;--bg-3:#25262c;--text-1:#f3f4f6;--text-2:#c8cbd2;--text-3:#9ea2ac;--accent:#a9cbef;--accent-strong:#cfe2f7;--accent-soft:#a9cbef24;--line:#ffffff14;--line-strong:#ffffff29;--silver:linear-gradient(180deg, #fbfcfd 0%, #e4e7ec 40%, #b4bac4 62%, #dee2e8 100%);--silver-hover:linear-gradient(180deg, #fff 0%, #eef1f4 40%, #c6cbd4 62%, #eaedf1 100%);--silver-text:linear-gradient(180deg, #fff 10%, #dde1e7 55%, #aeb5c0 100%);--silver-flat:#d9dde3;--edge:inset 0 1px 0 #ffffff0f;--color-button-ink:#15161a}@media (min-width:600px){:root{--gutter:2rem}}@media (min-width:900px){:root{--gutter:3rem}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--space-5))}html.menu-open{overflow:hidden}body{background:var(--color-canvas);min-height:100vh;color:var(--color-ink);font-family:var(--font-sans);font-size:1rem;line-height:var(--leading-body);font-feature-settings:"ss01" 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-x:clip}@media (min-width:768px){body{font-size:var(--text-body)}}img,svg,video{max-width:100%;display:block}svg{flex-shrink:0}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}h1,h2,h3,h4{font-weight:600;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);text-wrap:balance}p,li{text-wrap:pretty}ul[role=list],ol[role=list]{padding:0;list-style:none}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:2px}main:focus{outline:none}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-space)}.sr-only{clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{top:var(--space-3);left:var(--space-3);z-index:100;padding:var(--space-3) var(--space-4);background:var(--color-ink);color:var(--color-canvas);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{outline-color:var(--color-accent-light);transform:none}.h1{font-size:var(--text-h1);line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}.h2{font-size:var(--text-h2);letter-spacing:-.03em;line-height:1.1}.h3{font-size:var(--text-h3);letter-spacing:-.02em;line-height:1.2}.lead{font-size:var(--text-lead);color:var(--color-ink-soft);max-width:38em;line-height:1.55}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-4)}.muted{color:var(--color-muted)}.tag{align-items:center;gap:var(--space-2);border:1px solid var(--color-line-strong);border-radius:var(--radius-pill);min-height:1.75rem;font-family:var(--font-mono);font-size:var(--text-label);color:var(--color-ink-soft);background:var(--color-surface);white-space:nowrap;padding:.125rem .625rem;line-height:1.3;display:inline-flex}.tag--concept:before{content:"";border:1.5px solid var(--color-accent);width:.4375rem;height:.4375rem;transform:rotate(45deg)}.tag--beta{border-color:var(--accent);background:var(--accent-soft);min-height:1.5rem;color:var(--accent-strong)}.tag--beta:before{content:"";background:var(--accent);border-radius:0 50% 50%;width:.375rem;height:.375rem;rotate:45deg}.text-link{align-items:center;gap:var(--space-2);min-height:2.75rem;text-decoration:underline;-webkit-text-decoration-color:var(--color-line-strong);text-decoration-color:var(--color-line-strong);text-underline-offset:.3em;transition:text-decoration-color var(--dur-instant) var(--ease-out);font-weight:600;text-decoration-thickness:1.5px;display:inline-flex}.text-link:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.text-link svg{transition:transform var(--dur-instant) var(--ease-out)}.text-link:hover svg{transform:translate(3px)}.on-dark{--color-focus:var(--color-accent-light);background:var(--color-canvas-deep);color:var(--color-on-dark)}.on-dark .muted{color:var(--color-on-dark-muted)}.on-dark .lead{color:var(--color-on-dark)}.on-dark ::selection{background:var(--color-accent-bright);color:var(--color-ink)}[data-words]>span{display:inline-block}@keyframes words-in{0%{opacity:0;transform:translateY(.35em)}}@keyframes soft-in{0%{opacity:0;transform:translateY(.5em)}}@media screen and (prefers-reduced-motion:no-preference){[data-words=load]>span{animation:words-in .45s var(--ease-out) calc(var(--i,0) * var(--words-step,40ms)) both}[data-reveal=load]{animation:soft-in .45s var(--ease-out) .12s both}[data-reveal=load]~[data-reveal=load]{animation-delay:.18s}html.js .reveal-pending[data-words]>span,html.js .reveal-pending[data-reveal] [data-words]:not([data-words=load])>span{opacity:0;transform:translateY(.35em)}html.js .reveal-pending[data-reveal]:not(:has([data-words])){opacity:0;transform:translateY(var(--reveal-shift))}html.js .reveal-pending[data-reveal=soft]{opacity:0;transform:translateY(.5em)}html.js .reveal-pending[data-reveal]:has([data-words])>:has([data-words])~p{opacity:0;transform:translateY(.5em)}html.js .reveal-pending[data-reveal]:has([data-words]) [data-reveal-part]{opacity:0;transform:translateY(.5em)}html.js .revealing[data-words]>span,html.js .revealing[data-reveal] [data-words]>span{transition:opacity .55s var(--ease-out) calc(var(--reveal-delay,0s) + var(--i,0) * var(--words-step,40ms)), transform .55s var(--ease-out) calc(var(--reveal-delay,0s) + var(--i,0) * var(--words-step,40ms))}html.js .revealing[data-reveal]:not(:has([data-words])){transition:opacity .45s var(--ease-out) var(--reveal-delay,0s), transform .45s var(--ease-out) var(--reveal-delay,0s)}html.js .revealing[data-reveal]:has([data-words])>:has([data-words])~p{transition:opacity .45s var(--ease-out) calc(var(--reveal-delay,0s) + .12s), transform .45s var(--ease-out) calc(var(--reveal-delay,0s) + .12s)}html.js .revealing[data-reveal]:has([data-words]) [data-reveal-part]{transition:opacity .45s var(--ease-out) calc(var(--reveal-delay,0s) + .12s), transform .45s var(--ease-out) calc(var(--reveal-delay,0s) + .12s)}html.js .reveal-pending[data-reveal]:is(:focus-within,[data-reveal-immediate]),html.js .reveal-pending[data-reveal]:is(:focus-within,[data-reveal-immediate]) [data-words]>span,html.js .reveal-pending[data-reveal]:is(:focus-within,[data-reveal-immediate]) [data-reveal-part],html.js .reveal-pending[data-words][data-reveal-immediate]>span{opacity:1;transform:none}html.js .reveal-pending[data-reveal]:is(:focus-within,[data-reveal-immediate])>:has([data-words])~p{opacity:1;transform:none}html.js .revealing[data-reveal]:is(:focus-within,[data-reveal-immediate]),html.js .revealing[data-reveal]:is(:focus-within,[data-reveal-immediate]) [data-words]>span,html.js .revealing[data-reveal]:is(:focus-within,[data-reveal-immediate]) [data-reveal-part]{transition:none}html.js .revealing[data-reveal]:is(:focus-within,[data-reveal-immediate])>:has([data-words])~p{transition:none}}[data-stagger]>:nth-child(2){--n:1}[data-stagger]>:nth-child(3){--n:2}[data-stagger]>:nth-child(4){--n:3}[data-stagger]>:nth-child(5){--n:4}[data-stagger]>:nth-child(6){--n:5}[data-stagger]>:nth-child(n+7){--n:6}@media (prefers-reduced-motion:no-preference){main>:first-child .h1:not(:has([data-words])){animation:page-rise var(--dur-intro) var(--ease-out) both}main>:first-child .lead:not([data-reveal]){animation:page-rise var(--dur-intro) var(--ease-out) calc(var(--stagger) * 2) both}}@keyframes page-rise{0%{opacity:0;transform:translateY(var(--reveal-shift))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}body{isolation:isolate}main{padding-top:var(--header-h);position:relative}::selection{background:var(--color-accent);color:var(--color-button-ink)}[data-magnetic]{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out)}@media (prefers-reduced-motion:reduce){[data-magnetic]{translate:none!important}}html{scrollbar-color:var(--color-line-strong) var(--color-canvas);accent-color:var(--color-accent);caret-color:var(--color-accent)}[data-band]{isolation:isolate;position:relative}[data-band]:before{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.container[data-band]:before{inset:0 calc(50% - 50vw)}[data-band=black]:before{background:var(--bg-0)}[data-band=silver]:before{background:linear-gradient(180deg, var(--bg-2), var(--bg-1))}[data-band=glow]:before{background:radial-gradient(70% 55% at 50% 0,#2e7e9c14,#0000 70%)}.section-head{gap:var(--space-4);max-width:44rem;margin-bottom:clamp(2.5rem,1.8rem + 3vw,4rem);display:grid}.section-head p{font-size:var(--text-lead);color:var(--color-ink-soft);max-width:38em;line-height:1.55}.meta{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.01em;color:var(--color-muted)}.chrome-text,.chrome-text [data-words]>span{background:var(--chrome-text) 0 0 / 100% 1lh repeat-y;color:#0000;-webkit-background-clip:text;background-clip:text}@media (forced-colors:active){.chrome-text,.chrome-text [data-words]>span{color:canvastext;background:0 0}}.surface-under{margin-top:calc(-1*clamp(1.75rem,7vw,7.5rem));padding-top:clamp(1.75rem,7vw,7.5rem)}.closing-scene{isolation:isolate;position:relative}
