.deep{--sheet-max:1040px;--section-gap:40px;--cell:var(--sheet)}.deep h1{max-width:24ch}.deep a{text-underline-offset:2px;text-decoration-thickness:1px}.deep .thesis{grid-template-columns:minmax(0,1fr);align-items:end}.jump{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:0 18px;margin-top:4px;padding-top:2px;display:flex}.jump-k{font:500 var(--fs-label)/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.jump ul{flex-wrap:wrap;gap:0 4px;margin:0;padding:0;list-style:none;display:flex}.jump a{min-height:var(--tap);font:500 12.5px/1.2 var(--f-mono);color:var(--accent);align-items:center;padding:0 8px;text-decoration:none;display:inline-flex}.jump li:first-child a{margin-left:-8px}.jump a:hover{text-decoration:underline}@media screen and (min-width:900px){.deep .thesis{grid-template-columns:minmax(0,1fr) auto;column-gap:40px}.deep .thesis>:not(.jump){grid-column:1}.jump{border-top:0;border-left:1px solid var(--rule);grid-area:1/2/span 2;align-self:end;gap:2px;margin:0;padding:0 0 0 20px;display:grid}.jump ul{grid-template-columns:auto auto;gap:0 20px;display:grid}.jump a,.jump li:first-child a{margin:0;padding:0}}.call{background:var(--tint);color:var(--tint-ink);gap:6px;margin-top:-14px;padding:18px 22px 20px;display:grid}.call .k{color:var(--tint-ink);margin:0}.call .big{font:400 var(--fs-def)/1.35 var(--f-body);color:var(--ink);text-wrap:balance;max-width:46ch}.parts{border-top:1px solid var(--rule);gap:12px;margin-top:-12px;padding-top:14px;display:grid}.parts .k{margin:0}.defs{gap:6px;margin:0;display:grid}.defs>div{grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:0 12px;display:grid}.defs dt{font:600 15px/1.45 var(--f-display);color:var(--tint-ink)}.defs dd{font-size:var(--fs-sm);color:var(--ink);max-width:70ch;margin:0;line-height:1.45}@media screen{.defs{gap:18.5px}}@media screen and (pointer:coarse){.defs{gap:22.5px}}@media screen{.parts .defs>div.ag-cur{background:var(--tint);box-shadow:-8px 0 0 var(--tint), 8px 0 0 var(--tint), -10px 0 0 var(--accent)}}.sec{gap:16px;scroll-margin-top:16px;display:grid}.sec>*{min-width:0}.sec h2{font:700 var(--fs-cap)/1.15 var(--f-display);letter-spacing:-.012em;border-top:1px solid var(--ink);padding-top:14px}.sec h3{font:600 var(--fs-h3)/1.25 var(--f-display);margin-top:8px}.lead{font-size:var(--fs-lead);color:var(--ink-2);text-wrap:pretty;max-width:74ch;line-height:1.5}.sec p{text-wrap:pretty;max-width:78ch}.fine{font-size:var(--fs-note);color:var(--ink-2);line-height:1.45}.sec ul.plain{gap:4px;margin:0;padding-left:18px;display:grid}.nw{white-space:nowrap}.lp{border:1px solid var(--line);gap:12px;min-width:0;padding:12px 16px 14px;display:grid}.lp-in{border-color:var(--accent);background:var(--sheet)}.lp-k{font:500 var(--fs-label)/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.lp-k b{color:var(--ink);margin-right:6px;font-weight:500}.lp-in .lp-k b{color:var(--accent)}.lp-end{font-size:var(--fs-note);color:var(--ink-2);line-height:1.45}.lp-end b{color:var(--ink);font-weight:600}.flow{border-block:1px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.step{align-content:start;gap:4px;padding:12px 16px 14px 0;display:grid}.step+.step{border-left:1px solid var(--rule);padding-left:16px}.step b{font:600 17px/1.2 var(--f-display);color:var(--ink)}.step b:after{content:" →";content:" →" / "";color:var(--accent);font-weight:500}.step:has(+.again) b:after{content:""}.step span{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.4}.again{border-top:1px dashed var(--line);font:500 12px/1.4 var(--f-mono);color:var(--accent);grid-column:1/-1;padding:8px 0}.exits{border-bottom:1px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.exit{align-content:start;gap:2px;padding:10px 16px 12px 0;display:grid}.exit+.exit{border-left:1px solid var(--rule);padding-left:16px}.exit b{font:600 15px/1.3 var(--f-display);color:var(--ink);align-items:center;gap:8px;display:flex}.exit b:before{content:"";background:var(--accent);width:14px;height:14px;-webkit-mask:var(--mk) center / contain no-repeat;-webkit-mask:var(--mk) center / contain no-repeat;mask:var(--mk) center / contain no-repeat;flex:none}.exit.done{--mk:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7.6l3.3 3.3L12 3.6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.exit.stop{--mk:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 3l8 8M11 3l-8 8' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}.exit.stop b:before{background:var(--signal)}.exit.ask b:before{content:"?";content:"?" / "";color:var(--accent);font:500 15px/14px var(--f-mono);text-align:center;background:0 0;-webkit-mask:none;mask:none}.exit span{font-size:var(--fs-note);color:var(--ink-2);line-height:1.4}.out{font-size:var(--fs-sm);color:var(--ink);line-height:1.45}.scroll{-webkit-overflow-scrolling:touch;border-top:1px solid var(--ink);overflow-x:auto}.dt{border-collapse:collapse;width:100%;font-size:13.5px;line-height:1.38}.dt.wide{min-width:860px}.dt th,.dt td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:8px 12px 8px 0}.dt thead th{font:500 10.5px/1.25 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}.dt tbody th{font:600 14px/1.25 var(--f-display);color:var(--ink);min-width:104px}.dt tbody th small{font:400 11.5px/1.3 var(--f-mono);color:var(--ink-2);margin-top:2px;display:block}.dt td{color:var(--ink-2)}.dt code,.fine code,p code{font:400 .9em/1.2 var(--f-mono);color:var(--ink)}.dt code{white-space:nowrap}@media screen and (max-width:999px){.scroll{background:linear-gradient(to left, var(--cell) 40%, transparent) right center / 32px 100% no-repeat local, radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--ink) 16%, transparent), transparent) right center / 12px 100% no-repeat scroll}.dt thead th:first-child,.dt tbody th{z-index:1;background:var(--cell);box-shadow:inset -1px 0 0 var(--rule);position:sticky;left:0}.dt tbody th{min-width:96px}.dt thead th:first-child+th,.dt tbody th+td{padding-left:12px}}details.more{gap:12px;display:grid}details.more>summary,.links details>summary{cursor:pointer;min-height:var(--tap);font:600 14px/1.3 var(--f-display);color:var(--accent);align-items:center;gap:8px;list-style:none;display:flex}details.more>summary::-webkit-details-marker{display:none}.links details>summary::-webkit-details-marker{display:none}details.more>summary:before,.links details>summary:before{content:"+";content:"+" / "";width:14px;font:500 15px/1 var(--f-mono);text-align:center;flex:none}details[open].more>summary:before,.links details[open]>summary:before{content:"−";content:"−" / ""}details.more>summary:hover,.links details>summary:hover{text-decoration:underline}details.more[open]>summary{margin-bottom:4px}details.more ul.plain{margin-top:12px}.links{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr);gap:0;display:grid}.links>div,.links>details{border-top:1px solid var(--rule);align-content:start;gap:6px;min-width:0;display:grid}.links .open{padding:12px 0 14px}.links .open h3{margin:0}.links details[open]{padding-bottom:14px}.links ul{color:var(--ink-2);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px;padding:0;font-size:13.5px;line-height:1.36;list-style:none;display:grid}.links li{padding-left:15px;position:relative}.links li:before{content:"";border:1.5px solid var(--line);border-radius:50%;width:8px;height:8px;position:absolute;top:.42em;left:0}.links li.read:before{background:var(--accent);border-color:var(--accent)}.links li.lib:before{background:linear-gradient(90deg, var(--line) 50%, transparent 50%)}.links a{color:var(--ink)}.legend{font-size:var(--fs-note);color:var(--ink-2);flex-wrap:wrap;gap:4px 20px;padding:0;list-style:none;display:flex}.legend li{padding-left:15px;position:relative}.legend li:before{content:"";border:1.5px solid var(--line);border-radius:50%;width:8px;height:8px;position:absolute;top:.42em;left:0}.legend li.read:before{background:var(--accent);border-color:var(--accent)}.legend li.lib:before{background:linear-gradient(90deg, var(--line) 50%, transparent 50%)}@media screen and (max-width:760px){.deep{--sheet-pad:24px 18px 28px;--section-gap:32px;--cell:var(--paper)}.call{margin-top:-10px;padding:14px 16px 16px}.links ul,.flow,.exits{grid-template-columns:minmax(0,1fr)}.lp{padding:10px 12px 12px}.step,.step+.step{border-left:0;grid-template-columns:84px minmax(0,1fr);align-items:baseline;gap:0 10px;padding:10px 0;display:grid}.step+.step{border-top:1px solid var(--rule)}.step b{font-size:16px}.step b:after{content:" ↓";content:" ↓" / ""}.exit,.exit+.exit{border-left:0;grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:0 10px;padding:8px 0}.exit+.exit{border-top:1px solid var(--rule)}}@media screen and (max-width:599px){.jump{row-gap:0}.jump-k{flex-basis:100%;padding-top:10px}}@media print{body{padding:0}.deep{--section-gap:22px}.deep .sheet{border:0;max-width:none;padding:0}.jump{display:none}.call,.parts{margin-top:0}.call .big{max-width:none;font-size:17px}details::details-content{content-visibility:visible;display:block}details.more>summary:before,.links details>summary:before{content:none}.sec h2{break-after:avoid}.links>div,.lp-in,.exits,.call,.parts,.dt tr{break-inside:avoid}.scroll{overflow:visible}.dt.wide{min-width:0}.dt{font-size:11px}.dt code{white-space:normal}.links ul{font-size:11px}.deep a{text-decoration:none}}
.hero-mount.ag .hx-steps{grid-template-columns:repeat(5,minmax(0,1fr))}.hero-mount.ag .hx-ticker{font:500 15px/1.4 var(--f-display);color:var(--ink)}.hero-mount.ag .hx-tick{min-height:24px}.hero-mount.ag .hx-note{font-size:11px}.hero-mount.ag .hx[data-layout=tall] .hx-note{font-size:12px}.hero-mount.ag .hx-ctrl{flex-wrap:nowrap}.hero-mount.ag .hx-cg-zoom{flex:auto;min-width:0}.hero-mount.ag .ag-slider{flex:auto;width:auto;min-width:160px;max-width:320px}.hero-mount.ag .hx-keys{white-space:nowrap;flex:none}.hero-mount.ag .hx[data-layout=tall] .hx-stage{aspect-ratio:9/16}.hero-mount.ag .hx[data-layout=wide] .hx-stage{max-height:min(80vh,100svh - 162px)}@media (orientation:portrait){.hero-mount.ag .hx[data-layout=tall] .hx-stage{aspect-ratio:auto;width:100%;height:calc(1.77778*min(100cqw,max(43.875svh,320px),560px))}}@container (min-width:600px){.hero-mount.ag .hx-b-play{min-width:95px}@media (prefers-reduced-motion:reduce){.hero-mount.ag .hx-b-play{min-width:125px}}}@media (orientation:landscape) and (max-height:500px){.hero-mount.ag .hx-ctrl{background:var(--sheet);position:sticky;bottom:0}}@media (orientation:landscape) and (max-height:500px) and (max-width:760px){.hero-mount.ag .hx-ctrl{background:var(--paper)}}@container (max-width:789px){.hero-mount.ag .hx-keys{display:none}.hero-mount.ag .hx-tick{flex-wrap:wrap;min-height:45px}.hero-mount.ag .hx-ticker{flex:calc(100% - 20px)}.hero-mount.ag .hx-note{flex-basis:100%}}@container (max-width:599px){.hero-mount.ag .hx-steps{gap:0 8px}.hero-mount.ag .hx-tab-name{font-size:13.5px}.hero-mount.ag .hx-tick{row-gap:12px;min-height:72px}.hero-mount.ag .hx-ticker{min-height:2.8em;font-size:15px;line-height:1.4}.hero-mount.ag .ag-slider{flex:auto;width:auto}.hero-mount.ag .hx-cg-zoom{display:flex}}.hero-mount.ag{container-type:inline-size}.ag-reserve{padding-block:70.5px 92px;display:block}.ag-reserve i{aspect-ratio:16/10;background:var(--paper);border:1px solid var(--rule);width:100%;min-height:360px;max-height:min(80vh,100svh - 162px);display:block}@container (max-width:879px){.ag-reserve i{aspect-ratio:9/16;min-height:420px;max-height:78svh;margin-inline:auto}}@container (max-width:789px){.ag-reserve{padding-block:70.5px 113px}}@media (orientation:portrait){@container (max-width:879px){.ag-reserve i{aspect-ratio:auto;width:100%;height:calc(1.77778*min(100cqw,max(43.875svh,320px),560px));max-height:none}}}@media (orientation:landscape){@container (max-width:879px){.ag-reserve i{min-height:520px}}}@container (max-width:599px){.ag-reserve{padding-block:64.2px 196px}}.ag-stage{min-width:0;position:relative}.ag-alt{font-size:var(--fs-sm);color:var(--ink-2);opacity:0;margin:0;line-height:1.45;animation:1ms linear 1.5s forwards ag-late;position:absolute;inset:96px 24px auto}@keyframes ag-late{to{opacity:1}}.hero-mount.is-live+.ag-alt{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;opacity:1;border:0;width:1px;height:1px;margin:-1px;padding:0;animation:none;inset:auto;overflow:hidden}.ag-dt{font:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px;background:0 0;border:0;margin:0;padding:0}@media screen{.ag-dt{align-items:center;min-width:40px;margin-block:-9.25px;padding-block:9.25px;display:inline-flex}}@media screen and (pointer:coarse){.ag-dt{min-width:44px;margin-block:-11.25px;padding-block:11.25px}}.ag-dt:hover,.ag-dt:focus-visible{text-decoration-color:currentColor}.defs>div.ag-cur{background:var(--sheet);box-shadow:-8px 0 0 var(--sheet), 8px 0 0 var(--sheet), -10px 0 0 var(--accent)}.hero-mount .ag-svg .hx-rim{stroke-width:calc(var(--u) * 2.25)}.hero-mount .ag-svg .ag-node{fill:var(--sheet);stroke:var(--accent);stroke-width:2.25px}.hero-mount .ag-svg .ag-node-on{fill:var(--tint)}.hero-mount .ag-svg .ag-model{fill:var(--sheet);stroke:var(--ink);stroke-width:1.5px}.hero-mount .ag-svg .ag-flash{fill:var(--tint);pointer-events:none}.hero-mount .ag-svg .ag-pulse{fill:none;stroke:var(--accent);stroke-width:1.5px}.hero-mount .ag-svg .ag-rowbg{fill:var(--tint)}.hero-mount .ag-svg .ag-copyline{fill:none;stroke:var(--line);stroke-width:1.2px;stroke-linecap:round}.hero-mount .ag-svg .ag-wall{fill:none}.hero-mount .ag-svg .ag-owall{stroke:var(--ink);stroke-width:calc(var(--u) * 1.75)}.hero-mount .ag-svg .hx-prod,.hero-mount .ag-svg .ag-floor{stroke:none}.hero-mount .ag-svg .ag-typoline{fill:none;stroke:var(--signal);stroke-width:2px;stroke-dasharray:1}.hero-mount .ag-svg .ag-dot-bad{fill:var(--signal)}.hero-mount .ag-svg .ag-tail-bad{stroke:var(--signal)}.hero-mount .ag-svg .ag-tail-mask{fill:none;stroke:var(--sheet);stroke-width:calc(var(--u) * 3.25)}.hero-mount .ag-svg .ag-name{font:600 14px var(--f-display);fill:var(--ink)}.hero-mount .ag-svg .ag-ai{font:500 11px var(--f-mono);fill:var(--ink-2)}.hero-mount .ag-svg .ag-ai-on{fill:var(--accent)}.hero-mount .ag-svg .ag-tag{font:500 11px var(--f-mono);letter-spacing:.08em;fill:var(--ink)}.hero-mount .ag-svg .ag-tag-note{fill:var(--ink-2)}.hero-mount .ag-svg .ag-job{font:400 14.5px var(--f-body);fill:var(--ink)}.hero-mount .ag-svg .ag-job-s{font-size:13px}.hero-mount .ag-svg .ag-gl-s{font-size:12px}.hero-mount .ag-svg .ag-line{font:italic 400 14px var(--f-body);fill:var(--ink)}.hero-mount .ag-svg .ag-line-s{font:italic 400 12.5px var(--f-body);fill:var(--ink)}.hero-mount .ag-svg .ag-ghost{visibility:hidden}.hero-mount .ag-svg .ag-core-n{font-size:16px}.hero-mount .ag-svg .ag-round{font:400 12px var(--f-mono);fill:var(--tint-ink)}.hero-mount .ag-svg .ag-round-bad{fill:var(--signal);font-weight:500}.hero-mount .ag-svg .ag-res{font:400 13px var(--f-mono);fill:var(--ink-2)}.hero-mount .ag-svg .ag-st{font:500 13px var(--f-mono);fill:var(--ink-2)}.hero-mount .ag-svg .ag-lab{font:400 12px var(--f-mono);fill:var(--ink-2)}.hero-mount .ag-svg .ag-bad{fill:var(--signal);font-weight:500}.hero-mount .ag-svg .ag-ok{fill:var(--accent);font-weight:500}.hero-mount .ag-svg .ag-feat-on{fill:var(--tint-ink);font-weight:600}.hero-mount .ag-svg .ag-addr{font:500 26px var(--f-mono);fill:var(--ink)}.hero-mount .ag-svg .ag-addr-s{font-size:24px}.hero-mount .ag-svg .ag-typo{fill:var(--signal)}.hero-mount .ag-svg .ag-chip-t{font:500 11px var(--f-mono);fill:var(--ink)}.hero-mount .ag-svg .ag-noty-t{font:500 12px var(--f-mono);fill:var(--signal)}.hero-mount .ag-svg .ag-end-n{font:500 13px var(--f-mono);fill:var(--ink)}.hero-mount .ag-svg .ag-end-t{font:400 13px var(--f-body);fill:var(--ink-2)}.hero-mount .ag-svg .ag-q{font:500 14px var(--f-mono);fill:var(--accent)}.hero-mount .hx-tall.ag-svg .hx-r-path,.hero-mount .hx-tall.ag-svg .ag-tag,.hero-mount .hx-tall.ag-svg .ag-ai,.hero-mount .hx-tall.ag-svg .ag-res,.hero-mount .hx-tall.ag-svg .ag-end-n,.hero-mount .hx-tall.ag-svg .ag-end-t,.hero-mount .hx-tall.ag-svg .ag-q{font-size:12px}.hero-mount .hx-tall.ag-svg .ag-core-n{font-size:14px}@media print{.ag-reserve,.ag-alt{display:none}.defs>div.ag-cur{box-shadow:none;background:0 0}.ag-dt{text-decoration:none}}
