@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Variable.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-VariableItalic.woff2)format("woff2");font-weight:300 900;font-style:italic;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/PlexMono-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/PlexMono-500.woff2)format("woff2");font-weight:500;font-display:swap}:root{--ink:#0a0c10;--ink-2:#0f1217;--ink-3:#161a21;--ink-4:#1e232c;--on-ink:#f2f1ec;--on-ink-muted:#9ba1ac;--on-ink-faint:#666d79;--line-ink:#ffffff17;--line-ink-strong:#ffffff29;--paper:#f5f3ee;--paper-2:#ebe8e1;--paper-3:#e2ded5;--on-paper:#101318;--on-paper-muted:#545a65;--on-paper-faint:#858a93;--line-paper:#1013181a;--line-paper-strong:#1013182e;--cobalt:#1f5cff;--cobalt-deep:#1447d6;--cobalt-bright:#6b93ff;--cobalt-glow:#1f5cff59;--cobalt-wash:#1f5cff14;--signal:#2fd183;--signal-deep:#0f7a47;--font-sans:"Satoshi", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fs-display:clamp(3rem, 1.6rem + 6.2vw, 7.25rem);--fs-h1:clamp(2.6rem, 1.6rem + 4.4vw, 5.25rem);--fs-h2:clamp(2rem, 1.35rem + 2.8vw, 3.75rem);--fs-h3:clamp(1.35rem, 1.15rem + .8vw, 1.875rem);--fs-h4:1.1875rem;--fs-lead:clamp(1.125rem, 1.02rem + .45vw, 1.375rem);--fs-body:1.0625rem;--fs-small:.9375rem;--fs-label:.75rem;--gutter:clamp(1rem, .4rem + 2.6vw, 2.5rem);--max:1320px;--max-narrow:860px;--section-y:clamp(5rem, 3.4rem + 7vw, 10rem);--radius-s:10px;--radius:18px;--radius-l:28px;--pill:999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);color-scheme:light dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--on-paper);background:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"ss01", "ss02";font-weight:450;line-height:1.6;overflow-x:clip}img,picture,video,canvas,svg{max-width:100%;display:block}img{height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.035em;text-wrap:balance;font-weight:600;line-height:1.04}p{text-wrap:pretty}ul[role=list],ol[role=list]{padding:0;list-style:none}::selection{background:var(--cobalt);color:#fff}:focus-visible{outline:2px solid var(--cobalt-bright);outline-offset:3px;border-radius:4px}@view-transition{navigation:auto}::view-transition-old(root){animation:.28s var(--ease-in-out) both vt-out}::view-transition-new(root){animation:.52s var(--ease-out) both vt-in}@keyframes vt-out{to{opacity:0;filter:blur(4px);transform:translateY(-12px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(18px)}}.site-header{view-transition-name:site-header}::view-transition-old(site-header),::view-transition-new(site-header){animation:none}.ink{background:var(--ink);color:var(--on-ink)}.ink-2{background:var(--ink-2);color:var(--on-ink)}.paper{background:var(--paper);color:var(--on-paper)}.paper-2{background:var(--paper-2);color:var(--on-paper)}.ink .muted,.ink-2 .muted{color:var(--on-ink-muted)}.paper .muted,.paper-2 .muted{color:var(--on-paper-muted)}.grid-bg{isolation:isolate;position:relative}.grid-bg:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(var(--line-ink) 1px, transparent 1px), linear-gradient(90deg, var(--line-ink) 1px, transparent 1px);opacity:.55;background-size:72px 72px;position:absolute;inset:0;mask-image:radial-gradient(70% 60% at 50% 40%,#000 20%,#0000 75%)}.paper.grid-bg:before,.paper-2.grid-bg:before{background-image:linear-gradient(var(--line-paper) 1px, transparent 1px), linear-gradient(90deg, var(--line-paper) 1px, transparent 1px)}.wrap{width:min(100% - var(--gutter) * 2, var(--max));margin-inline:auto}.wrap-narrow{width:min(100% - var(--gutter) * 2, var(--max-narrow));margin-inline:auto}.section{padding-block:var(--section-y);position:relative}.section-tight{padding-block:calc(var(--section-y) * .6)}.stack>*+*{margin-top:var(--stack,1.25rem)}.cols-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:clamp(2rem,5vw,6rem);display:grid}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}@media (width<=960px){.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.cols-3{grid-template-columns:1fr}}.cols-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1.25rem;display:grid}.split{grid-template-columns:5fr 7fr;align-items:start;gap:clamp(2rem,6vw,7rem);display:grid}@media (width<=960px){.split{grid-template-columns:1fr}}.sticky-col{position:sticky;top:7.5rem}@media (width<=960px){.sticky-col{position:static}}.display{font-size:var(--fs-display);letter-spacing:-.045em;font-weight:600;line-height:.95}.h1{font-size:var(--fs-h1);letter-spacing:-.042em;line-height:1.02}.h2{font-size:var(--fs-h2);line-height:1.05}.h3{font-size:var(--fs-h3);letter-spacing:-.025em;line-height:1.12}.h4{font-size:var(--fs-h4);letter-spacing:-.015em;font-weight:600;line-height:1.25}.lead{font-size:var(--fs-lead);letter-spacing:-.01em;font-weight:450;line-height:1.5}.small{font-size:var(--fs-small)}.accent{color:var(--cobalt)}.ink .accent,.ink-2 .accent{color:var(--cobalt-bright)}.dim{color:var(--on-paper-faint)}.ink .dim,.ink-2 .dim{color:var(--on-ink-faint)}.measure{max-width:38rem}.measure-wide{max-width:48rem}.center{text-align:center;margin-inline:auto}.label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--on-paper-muted);align-items:center;gap:.75rem;font-weight:500;display:inline-flex}.ink .label,.ink-2 .label{color:var(--on-ink-muted)}.label:before{content:"";opacity:.6;background:currentColor;width:1.75rem;height:1px}.label.no-rule:before{display:none}.mono{font-family:var(--font-mono);letter-spacing:.02em}.num{font-variant-numeric:tabular-nums}.btn{--bg:var(--cobalt);--fg:#fff;--bd:transparent;border-radius:var(--pill);background:var(--bg);color:var(--fg);border:1px solid var(--bd);letter-spacing:-.01em;transition:background .35s var(--ease-out), color .35s var(--ease-out), border-color .35s var(--ease-out), box-shadow .35s var(--ease-out), transform .35s var(--ease-out);white-space:nowrap;isolation:isolate;align-items:center;gap:.75rem;padding:.95rem 1.4rem .95rem 1.5rem;font-size:1rem;font-weight:600;line-height:1;display:inline-flex;position:relative}.btn:hover{--bg:var(--cobalt-deep);box-shadow:0 10px 40px -10px var(--cobalt-glow)}.btn .arrow{width:1.6rem;height:1.6rem;transition:transform .4s var(--ease-out);background:#ffffff29;border-radius:50%;place-items:center;display:grid}.btn:hover .arrow{transform:translate(3px)}.btn .arrow svg{width:.85rem;height:.85rem}.btn-light{--bg:var(--on-ink);--fg:var(--ink)}.btn-light:hover{--bg:#fff;box-shadow:0 10px 40px -12px #ffffff59}.btn-light .arrow{background:#0a0c1014}.btn-dark{--bg:var(--ink);--fg:var(--on-ink)}.btn-dark:hover{--bg:var(--ink-4);box-shadow:0 10px 40px -12px #0a0c1073}.btn-ghost{--bg:transparent;--fg:currentColor;--bd:var(--line-paper-strong)}.ink .btn-ghost,.ink-2 .btn-ghost{--bd:var(--line-ink-strong)}.btn-ghost:hover{--bg:#7f7f7f14;box-shadow:none}.btn-ghost .arrow{background:#7f7f7f1f}.btn-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.text-link{transition:background-size .45s var(--ease-out);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;align-items:center;gap:.5rem;padding-bottom:2px;font-weight:600;display:inline-flex}.text-link:hover{background-size:100% 1px}.text-link svg{width:.9rem;height:.9rem;transition:transform .4s var(--ease-out)}.text-link:hover svg{transform:translate(3px)}.card{border-radius:var(--radius);border:1px solid var(--line-paper);transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .5s var(--ease-out);background:#fff;padding:clamp(1.5rem,2.4vw,2.25rem);position:relative}.paper-2 .card{background:var(--paper)}.card:hover{border-color:var(--line-paper-strong);transform:translateY(-4px);box-shadow:0 30px 60px -30px #10131840}.ink .card,.ink-2 .card,.card.dark{border-color:var(--line-ink);color:var(--on-ink);background:linear-gradient(#ffffff0b,#ffffff04)}.ink .card:hover,.ink-2 .card:hover,.card.dark:hover{border-color:var(--line-ink-strong);box-shadow:0 30px 80px -40px #1f5cff73}.card.static:hover{box-shadow:none;transform:none}.spotlight:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), #6b93ff24, transparent 45%);opacity:0;transition:opacity .4s var(--ease-out);position:absolute;inset:0}.spotlight:hover:after{opacity:1}.icon-tile{background:var(--cobalt-wash);width:3rem;height:3rem;color:var(--cobalt);border:1px solid #1f5cff2e;border-radius:12px;place-items:center;display:grid}.ink .icon-tile,.ink-2 .icon-tile,.card.dark .icon-tile{color:var(--cobalt-bright);background:#6b93ff1a;border-color:#6b93ff38}.icon-tile svg{width:1.35rem;height:1.35rem}.chip{border-radius:var(--pill);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-paper);color:var(--on-paper-muted);background:#ffffff80;align-items:center;gap:.5rem;padding:.4rem .8rem;font-size:.72rem;font-weight:500;display:inline-flex}.ink .chip,.ink-2 .chip{border-color:var(--line-ink);color:var(--on-ink-muted);background:#ffffff08}.dot{background:var(--signal);border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #2fd1832e}.dot.pulse{animation:pulse 2.4s var(--ease-in-out) infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px #2fd1830d}}.check-list{gap:.85rem;padding:0;list-style:none;display:grid}.check-list li{grid-template-columns:1.4rem 1fr;align-items:start;gap:.75rem;display:grid}.check-list li:before{content:"";background:var(--cobalt-wash) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231f5cff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 10.5l3 3 6-7'/%3E%3C/svg%3E") center / .8rem no-repeat;border:1px solid #1f5cff40;border-radius:50%;width:1.25rem;height:1.25rem;margin-top:.2rem}.ink .check-list li:before,.ink-2 .check-list li:before,.card.dark .check-list li:before{background-color:#6b93ff1a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%236b93ff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 10.5l3 3 6-7'/%3E%3C/svg%3E");border-color:#6b93ff4d}.rule{background:var(--line-paper);border:0;height:1px}.ink .rule,.ink-2 .rule{background:var(--line-ink)}.cite{font-family:var(--font-mono);letter-spacing:.02em;color:var(--on-paper-faint);font-size:.72rem}.ink .cite,.ink-2 .cite{color:var(--on-ink-faint)}.cite a{text-underline-offset:3px;text-decoration:underline #7f7f7f66}.cite a:hover{color:var(--cobalt)}.section-head{gap:1.25rem;margin-bottom:clamp(2.5rem,5vw,4.5rem);display:grid}.section-head.row{grid-template-columns:1fr auto;align-items:end;gap:2rem}@media (width<=760px){.section-head.row{grid-template-columns:1fr}}.js [data-reveal]{opacity:0;transform:translateY(28px)}.js [data-reveal].is-in{opacity:1;transition:opacity 1s var(--ease-out), transform 1.1s var(--ease-out);transition-delay:var(--d,0s);transform:none}@media (prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1!important;transform:none!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.scroll-progress{z-index:60;transform-origin:0;background:linear-gradient(90deg, var(--cobalt), var(--cobalt-bright));height:2px;position:fixed;inset:0 0 auto;transform:scaleX(0)}@supports (animation-timeline:scroll()){.scroll-progress{animation:linear both grow-x scroll(root)}@keyframes grow-x{to{transform:scaleX(1)}}}.skip{z-index:100;background:var(--on-ink);color:var(--ink);border-radius:8px;padding:.75rem 1rem;font-weight:600;position:absolute;top:-4rem;left:1rem}.skip:focus{top:1rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.prose{color:#22262d;font-size:1.125rem;line-height:1.75}.prose>*+*{margin-top:1.25em}.prose h2{color:var(--on-paper);margin-top:2.2em;font-size:clamp(1.6rem,1.3rem + 1.2vw,2.1rem);line-height:1.15}.prose h3{letter-spacing:-.02em;color:var(--on-paper);margin-top:1.8em;font-size:1.35rem;line-height:1.25}.prose h2+*,.prose h3+*{margin-top:.75em}.prose a{color:var(--cobalt);text-underline-offset:3px;text-decoration:underline 1px}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.5em}.prose li::marker{color:var(--cobalt)}.prose blockquote{border-left:2px solid var(--cobalt);color:var(--on-paper-muted);padding-left:1.25em;font-style:italic}.prose strong{color:var(--on-paper);font-weight:650}.prose hr{background:var(--line-paper);border:0;height:1px;margin-block:2.5em}.prose table{border-collapse:collapse;width:100%;font-size:.95rem}.prose th,.prose td{border-bottom:1px solid var(--line-paper);text-align:left;padding:.6em .5em}.split-line-mask{margin-top:-.04em;margin-bottom:-.16em;padding-top:.04em;padding-bottom:.16em}
