:root{--page:1180px;--gutter:clamp(20px, 4vw, 40px);--r-lg:11px;--band-y:clamp(60px, 8.5vw, 116px);--head:52px}body{color:var(--ink-soft);overflow-wrap:break-word;font-size:15px;line-height:1.6}.skip{z-index:100;border:1px solid var(--accent-line);border-radius:var(--r);background:var(--surface-2);color:var(--ink);padding:8px 14px;font-size:13px;text-decoration:none;position:absolute;top:-60px;left:8px}.skip:focus{top:8px}h1,h2,h3,h4{color:var(--ink);text-wrap:balance;margin:0;font-weight:600}.d1{letter-spacing:-.036em;font-size:clamp(2.5rem,6.4vw,4.15rem);line-height:1.02}.d2{letter-spacing:-.028em;font-size:clamp(1.7rem,3.5vw,2.45rem);line-height:1.08}.d3{letter-spacing:-.018em;font-size:clamp(1.15rem,1.9vw,1.35rem);line-height:1.22}.d4{letter-spacing:-.01em;font-size:1rem;line-height:1.32}.lit{font-family:var(--mono);letter-spacing:-.01em;color:var(--accent-bright);white-space:nowrap;font-size:.78em;font-weight:500}.lead{max-width:62ch;color:var(--ink-mute);letter-spacing:-.008em;text-wrap:pretty;margin:0;font-size:clamp(1.02rem,1.5vw,1.19rem);line-height:1.52}.note{color:var(--ink-faint);font-size:13px;line-height:1.5}a{color:var(--accent-bright);text-decoration-color:color-mix(in srgb, var(--accent-bright) 38%, transparent);text-underline-offset:3px;transition:.14s var(--ease)}a:hover{text-decoration-color:var(--accent-bright)}.wrap{width:100%;max-width:var(--page);padding-inline:var(--gutter);margin:0 auto}.band{padding-block:var(--band-y);border-bottom:1px solid var(--line-soft)}.band-tight{padding-block:clamp(40px,5.5vw,72px)}.band-hero{padding-block:clamp(44px,5.5vw,76px) clamp(52px,6.5vw,88px)}.band-head{flex-direction:column;gap:14px;max-width:68ch;margin-bottom:clamp(32px,4.5vw,56px);display:flex}.tag{border:1px solid var(--line);height:22px;font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:6px;padding:0 8px;font-size:10px;font-weight:500;text-decoration:none;display:inline-flex}a.tag:hover{border-color:var(--line-lift);color:var(--ink)}.tag .swatch{background:var(--hue,var(--accent))}.tags{flex-wrap:wrap;gap:6px;display:flex}.btn{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);height:40px;color:var(--ink);letter-spacing:-.006em;white-space:nowrap;transition:.16s var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--line-lift);background:var(--surface-3);color:var(--ink)}.btn-accent{background:var(--accent);color:#fff;border-color:#0000}.btn-accent:hover{background:color-mix(in srgb, #fff 12%, var(--accent));box-shadow:0 0 0 4px var(--accent-soft);border-color:#0000}.btn-quiet{color:var(--ink-mute);background:0 0;border-color:#0000;padding-inline:12px}.btn-quiet:hover{border-color:var(--line-soft);background:var(--surface-2)}.btn-sm{height:32px;padding:0 13px;font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mini{font-family:var(--mono);color:var(--ink);border:1px solid var(--line-soft);background:var(--n-0);border-radius:4px;padding:.1em .34em;font-size:.85em}.cta{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.head{z-index:40;height:var(--head);border-bottom:1px solid var(--line-soft);background:color-mix(in srgb, var(--n-1) 86%, transparent);backdrop-filter:blur(14px)saturate(1.3);position:sticky;top:0}.head-in{align-items:center;gap:10px;height:100%;display:flex}.head-mark{flex:none;align-items:center;margin-right:14px;display:flex}.head-mark img{width:auto;height:15px;display:block}.head-nav{scrollbar-width:none;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto}.head-nav::-webkit-scrollbar{display:none}.head-link{height:28px;color:var(--ink-mute);letter-spacing:-.006em;white-space:nowrap;transition:.14s var(--ease);border-radius:5px;align-items:center;padding:0 10px;font-size:13.5px;text-decoration:none;display:inline-flex}.head-link:hover{background:var(--surface-2);color:var(--ink)}.head-link[aria-current=page]{color:var(--ink);box-shadow:inset 0 -1px 0 var(--accent);border-radius:5px 5px 0 0}.head-end{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}@media (width<=720px){.head{height:auto}.head-in{flex-wrap:wrap;row-gap:4px;padding-block:9px}.head-nav{flex-wrap:wrap;order:3;width:100%;margin-left:-10px;overflow:visible}}.foot{background:var(--grain), var(--n-1);padding-block:clamp(40px,5vw,64px) 32px}.foot-grid{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(120px,1fr));gap:40px 32px;display:grid}.foot-col h2{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px;font-size:9.5px;font-weight:500}.foot-col ul{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.foot-col a{color:var(--ink-mute);font-size:13.5px;text-decoration:none}.foot-col a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.foot-mark img{width:auto;height:16px;margin-bottom:14px;display:block}.foot-bar{border-top:1px solid var(--line-soft);color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:44px;padding-top:20px;font-size:12.5px;display:flex}.foot-bar a{color:var(--ink-faint);text-decoration:none}.foot-bar a:hover{color:var(--ink-mute)}@media (width<=900px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.foot-mark{grid-column:1/-1}.foot-bar>:last-child{margin-left:0}}.seam{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--grain), var(--surface);grid-template-columns:minmax(0,43fr) 1px minmax(0,57fr);display:grid;overflow:hidden}.seam-line{background:var(--line-soft)}.seam-side{flex-direction:column;min-width:0;display:flex}.seam-bar{border-bottom:1px solid var(--line-soft);height:38px;font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);flex:none;align-items:center;gap:8px;padding:0 14px;font-size:10.5px;display:flex}.seam-bar-end{gap:10px;margin-left:auto;display:flex}.seam-body{flex-direction:column;flex:1;justify-content:center;min-width:0;padding:16px 14px 18px;display:flex}.seam-body-flush{padding:10px}@media (width<=880px){.seam{grid-template-columns:minmax(0,1fr)}.seam-line{height:1px}}.src{font-family:var(--mono);color:var(--ink-soft);white-space:pre;tab-size:2;margin:0;font-size:12px;line-height:1.72;overflow-x:auto}.src .k{color:var(--ink-mute)}.src .p{color:var(--n-6)}.src .w{color:var(--accent-bright)}.src .c{color:var(--ink-faint);font-style:italic}.src .t{color:var(--hue,var(--accent-bright))}.blk{box-decoration-break:clone;transition:background .16s var(--ease);cursor:default;background:0 0;border-radius:3px;margin:0 -6px;padding:1px 6px}.blk:hover,.blk:focus-visible,.blk[data-lit]{background:color-mix(in srgb, var(--hue,var(--accent)) 13%, transparent);outline:none}.fig{width:100%;height:auto;display:block;overflow:visible}.fig-eyebrow{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;font-size:9px;font-weight:500}.fig-title{font-family:var(--sans);letter-spacing:-.014em;fill:var(--ink);font-size:14px;font-weight:600}.fig-sub{font-family:var(--sans);fill:var(--ink-faint);font-size:11.5px}.fig-rel{font-family:var(--mono);letter-spacing:.03em;fill:var(--ink-mute);font-size:10px}.fig-node{transition:opacity .2s var(--ease), transform .2s var(--ease)}.fig-node .fig-card{transition:.2s var(--ease)}.fig-node[data-lit] .fig-card{stroke:var(--hue);stroke-width:1.4px}.fig-node[data-lit] .fig-halo{opacity:.5}.grid{background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--r-lg);gap:1px;display:grid;overflow:hidden}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cell{background:var(--grain), var(--surface);flex-direction:column;gap:10px;padding:clamp(20px,2.6vw,30px);display:flex}.cell-hue{box-shadow:inset 2px 0 0 -1px var(--hue)}.cell p{color:var(--ink-mute);margin:0;font-size:14.5px}.cell>.eyebrow{color:var(--hue,var(--ink-faint))}a.cell{transition:.16s var(--ease);text-decoration:none}a.cell:hover{background:var(--grain), var(--surface-2)}a.cell .d4,a.cell .d3{color:var(--ink)}@media (width<=900px){.grid-3{grid-template-columns:minmax(0,1fr)}}@media (width<=640px){.grid-2{grid-template-columns:minmax(0,1fr)}}.split{grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:start;gap:clamp(24px,4vw,64px);display:grid}.duo{grid-template-columns:minmax(0,1fr) minmax(0,300px);align-items:center;gap:clamp(28px,5vw,72px);display:grid}.figure-wide{max-width:940px}@media (width<=860px){.split,.duo{grid-template-columns:minmax(0,1fr);gap:24px}}.shot{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--n-0);box-shadow:var(--shadow-2);overflow:hidden}.shot-bar{border-bottom:1px solid var(--line-soft);background:var(--surface);height:34px;font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);align-items:center;gap:8px;padding:0 12px;font-size:10.5px;display:flex}.shot img{width:100%;height:auto;display:block}figure{margin:0}figcaption{color:var(--ink-faint);margin-top:12px;font-size:13px}.steps{counter-reset:step;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.steps>li{counter-increment:step;padding:0 0 26px 44px;position:relative}.steps>li:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);font-size:10px;position:absolute;top:1px;left:0}.steps>li:after{content:"";background:var(--line-soft);width:1px;position:absolute;top:20px;bottom:4px;left:10px}.steps>li:last-child{padding-bottom:0}.steps>li:last-child:after{display:none}.steps p{color:var(--ink-mute);margin:6px 0 0;font-size:14.5px}.rows{border-top:1px solid var(--line-soft)}.row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:8px 28px;padding:16px 0;display:grid}.row>dt{font-family:var(--mono);color:var(--ink);letter-spacing:-.005em;font-size:12px}.row>dd{color:var(--ink-mute);margin:0;font-size:14.5px}@media (width<=640px){.row{grid-template-columns:minmax(0,1fr)}}.prose{max-width:74ch;color:var(--ink-soft);font-size:15.5px;line-height:1.68}.prose>:first-child{margin-top:0}.prose h2{letter-spacing:-.022em;border-top:1px solid var(--line-soft);margin:2.4em 0 .7em;padding-top:1.1em;font-size:1.42rem;line-height:1.2}.prose h3{letter-spacing:-.014em;margin:2em 0 .55em;font-size:1.09rem;line-height:1.3}.prose h4{color:var(--ink-soft);margin:1.7em 0 .5em;font-size:.97rem}.prose p{margin:0 0 1.15em}.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.35em}.prose li{margin-bottom:.42em}.prose li::marker{color:var(--ink-faint)}.prose strong{color:var(--ink);font-weight:600}.prose code{font-family:var(--mono);border:1px solid var(--line-soft);background:var(--n-0);color:var(--ink);border-radius:4px;padding:.12em .36em;font-size:.855em}.prose pre{border:1px solid var(--line-soft);border-radius:var(--r);margin:0 0 1.4em;padding:15px 16px;font-size:12.5px;line-height:1.66;overflow-x:auto;background:var(--n-0)!important}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.prose blockquote{border-left:1px solid var(--accent-line);color:var(--ink-mute);margin:0 0 1.4em;padding:2px 0 2px 18px}.prose blockquote p:last-child{margin-bottom:0}.prose table{border-collapse:collapse;width:100%;margin:0 0 1.5em;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top;padding:9px 14px 9px 0}.prose th{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);font-size:9.5px;font-weight:500}.prose td code{white-space:nowrap}.prose hr{border:0;border-top:1px solid var(--line-soft);margin:2.4em 0}.prose img{border:1px solid var(--line-soft);border-radius:var(--r);max-width:100%;height:auto}.doc{grid-template-columns:minmax(0,216px) minmax(0,1fr) minmax(0,190px);align-items:start;gap:clamp(28px,4vw,56px);padding-block:clamp(36px,4.5vw,60px) clamp(60px,8vw,100px);display:grid}.doc-rail{top:calc(var(--head) + 24px);flex-direction:column;gap:22px;display:flex;position:sticky}.doc-rail h2{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 9px;font-size:9.5px;font-weight:500}.doc-rail ul{border-left:1px solid var(--line-soft);margin:0;padding:0;list-style:none}.doc-rail li a{color:var(--ink-mute);transition:.14s var(--ease);border-left:1px solid #0000;margin-left:-1px;padding:5px 0 5px 13px;font-size:13.5px;line-height:1.4;text-decoration:none;display:block}.doc-rail li a:hover{color:var(--ink);border-left-color:var(--line)}.doc-rail li a[aria-current=page]{color:var(--ink);border-left-color:var(--accent)}.doc-toc{top:calc(var(--head) + 24px);position:sticky}.doc-toc a{color:var(--ink-faint);font-size:12.5px}.doc-toc a:hover{color:var(--ink-mute)}@media (width<=1100px){.doc{grid-template-columns:minmax(0,200px) minmax(0,1fr)}.doc-toc{display:none}}@media (width<=820px){.doc{grid-template-columns:minmax(0,1fr)}.doc-rail{position:static}}@media (prefers-reduced-motion:no-preference){.rise{animation:rise .62s var(--ease) both;animation-delay:var(--d,0s)}.draw .fig-edge{stroke-dasharray:var(--len,400);stroke-dashoffset:var(--len,400);animation:draw .9s var(--ease) both;animation-delay:calc(.35s + var(--i,0) * 90ms)}.draw .fig-node,.draw .fig-label{animation:rise .5s var(--ease) both;animation-delay:calc(.12s + var(--i,0) * 70ms)}}@keyframes rise{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes draw{to{stroke-dashoffset:0}}
