@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2) format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2) format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-normal-DJ5YJwmz.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-normal-C1O10bxN.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-serif-4-latin-600-normal-DouSKlru.woff2) format("woff2"),url(/assets/source-serif-4-latin-600-normal-DeJomR3S.woff) format("woff")}@font-face{font-family:"Source Serif 4";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/source-serif-4-latin-400-italic-0j97Jm6B.woff2) format("woff2"),url(/assets/source-serif-4-latin-400-italic-DZulBB6l.woff) format("woff")}:root{--cols:12;--gutter:1.5rem;--bl:8px;--maxw:1200px;--margin:clamp(1rem,4vw,3rem);--f-text:"Source Serif 4",Georgia,serif;--f-brand:var(--f-display);--f-display:"Space Grotesk",sans-serif;--f-mono:"JetBrains Mono",monospace;--paper:#fff;--ink:#12131a;--ink-2:#2e3140;--ink-3:#5b5f70;--rule:#dfe2ec;--rule-2:#c2c7d5;--field:#f6f7fb;--brand:#3b5cf2;--brand-hover:#2f49d1;--brand-text:#2f49d1;--brand-ink:#fff;color-scheme:light}:root[data-theme=dark]{--paper:#0b0b0d;--ink:#f2f3f7;--ink-2:#d7d8de;--ink-3:#9a9dab;--rule:#1c1d22;--rule-2:#34363f;--field:#0e0e11;--brand:#4b6bff;--brand-hover:#6a84ff;--brand-text:#8da0ff;--brand-ink:#0b0b0d;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{margin:0;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:var(--f-text);font-size:1.125rem;line-height:1.65}img,svg{display:block}a{color:var(--brand-text);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.15em}.prose a,.note a,.faq details p a,.related-line a,.a-head .dek a,.feat .dek a,.ledger p a,.cta p a,.i-head .lead a{text-decoration:underline;text-underline-offset:.15em}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}h1,h2,h3{font-family:var(--f-display);color:var(--ink);text-wrap:balance;margin:0}.nx-sr,.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mono{font-family:var(--f-mono);font-size:.78rem;letter-spacing:.01em;color:var(--ink-3)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin)}.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gutter)}.hd{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--rule)}.hd-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem}.logo{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-brand);font-weight:700;font-size:1.05rem;color:var(--ink);margin:0}.logo .mark{color:var(--brand)}.hd-nav{display:flex;align-items:center;gap:1rem;font-family:var(--f-mono);font-size:.8rem}.hd-nav>a{color:var(--ink-2)}.hd-nav>a:hover{color:var(--ink);text-decoration:none}.hd-nav .btn,.hd-nav .btn:hover{color:var(--brand-ink)}.theme{display:inline-flex;align-items:center;gap:.4rem;min-height:2.5rem;padding:0 .7rem;border:1px solid var(--rule-2);background:transparent;color:var(--ink-2);font:inherit;cursor:pointer;border-radius:2px}.theme .ico-sun,.theme .t-light{display:none}:root[data-theme=dark] .theme .ico-sun,:root[data-theme=dark] .theme .t-light{display:inline-flex}:root[data-theme=dark] .theme .ico-moon,:root[data-theme=dark] .theme .t-dark{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:0 1.25rem;background:var(--brand);color:var(--brand-ink);border:1px solid var(--brand);border-radius:2px;font-family:var(--f-mono);font-size:.85rem;white-space:nowrap}.btn:hover{background:var(--brand-hover);border-color:var(--brand-hover);text-decoration:none}.btn-s{min-height:2.5rem;padding:0 .9rem;font-size:.78rem}@media (max-width:640px){.hide-s,.theme span{display:none}.theme .t-dark,.theme .t-light{display:none!important}}.ft{border-top:1px solid var(--rule);margin-top:calc(var(--bl)*8);padding:calc(var(--bl)*6) 0 calc(var(--bl)*5);font-family:var(--f-mono);font-size:.8rem;color:var(--ink-2)}.ft-in{display:grid;grid-template-columns:1fr auto;gap:calc(var(--bl)*3) calc(var(--bl)*6)}.ft address{font-style:normal;line-height:1.7;margin-top:.75rem}.ft-site{display:flex;flex-direction:column;gap:.35rem;text-align:right}.ft-explore{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;border-top:1px solid var(--rule);padding-top:1rem;font-size:.75rem}.ft-copy{grid-column:1/-1;margin:.5rem 0 0}.foot-note{font-size:.75rem}@media (max-width:640px){.ft-in{grid-template-columns:1fr}.ft-site{text-align:left}}.chk{list-style:none;margin:0;padding:0}.chk label{display:flex;gap:.9rem;align-items:flex-start;cursor:pointer}.chk input{position:absolute;opacity:0;width:1px;height:1px}.chk .box{flex:none;width:20px;height:20px;margin-top:.2em;border:1.5px solid var(--ink-3);border-radius:2px;display:grid;place-items:center;color:var(--brand-ink);background:transparent}.chk .box svg{opacity:0}.chk input:checked~.box{background:var(--brand);border-color:var(--brand)}.chk input:checked~.box svg{opacity:1}.chk input:focus-visible~.box{outline:2px solid var(--brand);outline-offset:2px}.chk input:checked~.tx{color:var(--ink-3)}.chk input:checked~.tx strong{text-decoration:line-through;text-decoration-thickness:1px;color:var(--ink-3)}.chk .tx strong{color:var(--ink)}@media (prefers-reduced-motion:no-preference){.chk .box,.chk .tx{transition:color .15s,background-color .15s}}details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}@media print{.hd,.ft,.theme,.btn,[data-progress]{display:none!important}}.a-head{padding-top:calc(var(--bl)*8);padding-bottom:calc(var(--bl)*5);border-bottom:1px solid var(--rule)}.a-head .crumbs{grid-column:1/-1;margin:0 0 calc(var(--bl)*4)}.a-head .crumbs a{color:var(--ink-3)}.a-head h1{grid-column:1/10;font-weight:700;font-size:clamp(2.25rem,4.6vw,3.75rem);line-height:1.08;letter-spacing:-.025em;max-width:20ch}.a-head .dek{grid-column:1/9;font-size:1.3rem;line-height:1.5;color:var(--ink-2);margin:calc(var(--bl)*3) 0 0;max-width:52ch}.a-head .meta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-top:calc(var(--bl)*4);align-items:baseline}.by{display:inline-flex;align-items:center;gap:.6rem}.by .ini{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border:1px solid var(--rule-2);border-radius:50%;font-family:var(--f-display);font-weight:600;font-size:.7rem;color:var(--ink)}.by .ini+.ini{margin-left:-.7rem;background:var(--paper)}.a-body{padding-top:calc(var(--bl)*6)}.rail{grid-column:1/4;position:sticky;top:5.5rem;align-self:start}.rail .lbl{margin:0 0 calc(var(--bl)*2)}.toc{list-style:none;margin:0;padding:0 0 0 1.1rem;position:relative;counter-reset:toc}.toc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--rule-2)}.toc .fill{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--brand);transform:scaleY(0);transform-origin:top}.toc li{margin:0 0 .55rem}.toc a{display:block;font-family:var(--f-mono);font-size:.78rem;line-height:1.45;color:var(--ink-3)}.toc a[data-n]:before{content:attr(data-n) "  ";color:var(--ink-3)}.toc a.is-on{color:var(--ink)}.toc a.is-on:before{color:var(--brand-text)}.toc a:hover{color:var(--ink);text-decoration:none}.prose{grid-column:4/11;max-width:66ch}.prose p{margin:0 0 calc(var(--bl)*3);color:var(--ink-2)}.prose p strong{color:var(--ink);font-weight:600}.note{font-style:italic;font-size:1rem;color:var(--ink-3);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:calc(var(--bl)*2) 0;margin:0 0 calc(var(--bl)*5)}.sec{padding:calc(var(--bl)*4) 0 calc(var(--bl)*2);scroll-margin-top:5.5rem}.sec h2{font-weight:600;font-size:1.75rem;line-height:1.2;letter-spacing:-.015em;margin:0 0 calc(var(--bl)*2);position:relative}.sec h2[data-n]:before{content:attr(data-n);font-family:var(--f-mono);font-weight:400;font-size:.8rem;color:var(--brand-text);position:absolute;right:100%;top:.55em;margin-right:1.25rem}.chk.list{margin:calc(var(--bl)*2) 0 calc(var(--bl)*4);border-top:1px solid var(--rule)}.chk.list li{border-bottom:1px solid var(--rule);padding:calc(var(--bl)*2) 0}.chk.list .tx{font-size:1.05rem;line-height:1.55}.chk.list .tx strong{display:block;font-weight:600;margin-bottom:.15rem}.chk.list .tx span{color:var(--ink-2)}.pull{grid-column:4/13;margin:calc(var(--bl)*4) 0 calc(var(--bl)*6);padding-top:calc(var(--bl)*2);border-top:1px solid var(--ink)}.pull p{font-family:var(--f-display);font-weight:600;font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.25;letter-spacing:-.015em;max-width:30ch;margin:0 0 .6rem;color:var(--ink)}.faq{grid-column:4/11;max-width:66ch;padding-top:calc(var(--bl)*2)}.faq h2{font-weight:600;font-size:1.75rem;margin:0 0 calc(var(--bl)*2)}.faq details{border-top:1px solid var(--rule)}.faq details:last-of-type{border-bottom:1px solid var(--rule)}.faq summary{display:flex;justify-content:space-between;gap:1rem;padding:calc(var(--bl)*2) 0;font-weight:600;font-size:1.1rem;color:var(--ink);font-family:var(--f-display)}.faq summary:after{content:"";flex:none;width:12px;height:12px;margin-top:.45rem;background:linear-gradient(var(--ink-3),var(--ink-3)) center/12px 1.5px no-repeat,linear-gradient(var(--ink-3),var(--ink-3)) center/1.5px 12px no-repeat}.faq details[open] summary:after{background:linear-gradient(var(--ink-3),var(--ink-3)) center/12px 1.5px no-repeat}.faq details p{margin:0 0 calc(var(--bl)*3);color:var(--ink-2)}.faq .wl-related,.related-line{color:var(--ink-3);font-size:1rem;margin-top:calc(var(--bl)*3)}.next{grid-column:4/13;margin-top:calc(var(--bl)*8);border-top:1px solid var(--ink);padding-top:calc(var(--bl)*2)}.next h2{font-size:1rem;font-weight:600;margin:0 0 calc(var(--bl)*2)}.next ol{list-style:none;margin:0;padding:0}.next li{display:grid;grid-template-columns:8rem 1fr auto;gap:1rem;align-items:baseline;border-bottom:1px solid var(--rule);padding:calc(var(--bl)*2) 0}.next li a{font-family:var(--f-display);font-weight:600;font-size:1.2rem;color:var(--ink);letter-spacing:-.01em}.cta{grid-column:4/11;max-width:66ch;margin-top:calc(var(--bl)*8);padding-top:calc(var(--bl)*5);border-top:1px solid var(--ink)}.cta h2{font-size:1.75rem;font-weight:600;margin:0 0 calc(var(--bl)*2)}.cta p{color:var(--ink-2);margin:0 0 calc(var(--bl)*3)}.cta .row{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center}.cta .btn{font-family:var(--f-display);font-weight:600;font-size:.95rem;padding:0 1.5rem;min-height:3rem}.m-toc,.m-bar{display:none}@media (max-width:1023px){.rail{display:none}.prose,.faq,.cta,.pull,.next,.a-head h1,.a-head .dek{grid-column:1/-1}.sec h2[data-n]:before{position:static;display:block;margin:0 0 .4rem}.m-toc{display:block;margin:0 0 calc(var(--bl)*4);border:1px solid var(--rule-2);border-radius:2px}.m-toc summary{padding:.8rem 1rem;font-family:var(--f-mono);font-size:.8rem;color:var(--ink)}.m-toc .toc{margin:0 1rem 1rem;padding-left:0}.m-toc .toc:before,.m-toc .toc .fill{display:none}.m-bar{display:block;position:fixed;left:0;top:0;height:3px;width:100%;background:var(--brand);transform:scaleX(0);transform-origin:left;z-index:11}.next li{grid-template-columns:1fr;gap:.25rem}}@media (min-width:1600px){:root{--maxw:1280px}}@media (min-width:1200px){.a-head h1{font-size:3.75rem}.i-head h1{font-size:4rem}}@media (prefers-reduced-motion:no-preference){.toc .fill,.m-bar{transition:transform .12s linear}}.i-head{padding:calc(var(--bl)*9) 0 calc(var(--bl)*5);border-bottom:1px solid var(--ink);align-items:end}.i-head h1{grid-column:1/7;font-size:clamp(2.5rem,5vw,4rem);font-weight:700;letter-spacing:-.03em;line-height:1}.i-head .lead{grid-column:7/13;margin:0;font-size:1.15rem;color:var(--ink-2);max-width:44ch}.i-tools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding:calc(var(--bl)*2) 0;border-bottom:1px solid var(--rule)}.i-tools a{color:var(--ink-3)}.i-tools a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:.3em}.i-tools .cats{display:flex;gap:1.25rem;flex-wrap:wrap}.i-tools .cats span{color:var(--ink-3)}.i-tools .lang{display:flex;gap:.9rem}.feat{padding:calc(var(--bl)*7) 0 calc(var(--bl)*6);border-bottom:1px solid var(--rule)}.feat .k{grid-column:1/9}.feat h2{font-size:clamp(1.9rem,3.6vw,3rem);font-weight:700;letter-spacing:-.025em;line-height:1.1;margin:.4rem 0 calc(var(--bl)*2);max-width:22ch}.feat h2 a{color:var(--ink)}.feat .dek{font-size:1.2rem;color:var(--ink-2);margin:0 0 calc(var(--bl)*3);max-width:56ch}.feat .go{font-family:var(--f-display);font-weight:600;font-size:1rem}.feat .side{grid-column:10/13;display:flex;flex-direction:column;gap:.85rem;border-left:1px solid var(--rule);padding-left:var(--gutter)}.feat .side div{display:flex;flex-direction:column;gap:.15rem}.feat .side b{font-family:var(--f-display);font-weight:600;font-size:1rem;color:var(--ink)}.ledger{list-style:none;margin:0;padding:0}.ledger li{display:grid;grid-template-columns:9rem 1fr 7rem;gap:var(--gutter);align-items:baseline;padding:calc(var(--bl)*3) 0;border-bottom:1px solid var(--rule)}.ledger h2{font-size:1.5rem;font-weight:600;letter-spacing:-.015em;line-height:1.2;margin:0 0 .5rem;max-width:30ch}.ledger h2 a{color:var(--ink)}.ledger p{margin:0;font-size:1.05rem;color:var(--ink-2);max-width:62ch}.ledger .r{text-align:right}.i-cta{margin-top:calc(var(--bl)*8);display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gutter);align-items:center}.i-cta h2{grid-column:1/8;font-size:1.75rem;font-weight:600;max-width:22ch}.i-cta .row{grid-column:8/13;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center}.i-cta .btn{font-family:var(--f-display);font-weight:600;font-size:.95rem;min-height:3rem;padding:0 1.5rem}@media (max-width:1023px){.i-head h1,.i-head .lead,.feat .k,.i-cta h2,.i-cta .row{grid-column:1/-1}.i-head .lead{margin-top:calc(var(--bl)*3)}.feat .side{grid-column:1/-1;border-left:0;padding-left:0;flex-direction:row;flex-wrap:wrap;gap:1.5rem;margin-top:calc(var(--bl)*2)}.ledger li{grid-template-columns:1fr;gap:.35rem}.ledger .r{text-align:left}.i-cta .row{margin-top:calc(var(--bl)*2)}}
