:root{color-scheme:dark;--bg: light-dark(#d8d3c7, #0a1a1d);--bg-hi: light-dark(#e4e0d6, #10262a);--surface: light-dark(#efece4, #152d32);--surface-hi: light-dark(#f3f1ea, #1a363c);--card: light-dark(#f6f4ee, #1b373d);--tint: light-dark(#e6e2d7, #183539);--tint-2: light-dark(#ddd8cb, #1d3d42);--ink: light-dark(#1f1e1b, #e8dfc9);--ink-dim: light-dark(#4e4b45, #b8bbad);--ink-faint: light-dark(#625e57, #97a49d);--accent: light-dark(#b03915, #ec8053);--accent-bright: var(--ink);--accent-warm: light-dark(#86600f, #c9981c);--teal: light-dark(#00775f, #2ab09d);--link: light-dark(#2f6a9e, #5aa0d8);--rule: light-dark(#1f1e1b55, #e8dfc955);--rule-soft: light-dark(#1f1e1b24, #e8dfc922);--hl: light-dark(#b0391514, #ec80531f);--elev-3: inset 0 1px 0 #ffffff12, 0 11px 23px -9px #00000080, 0 36px 68px -29px #000000a0;--elev-slide: inset 0 0 0 1px #ffffff0a, 0 24px 50px -28px #000000ee;--fs-xs: 12.96px;--fs-sm: 15.48px;--fs-md: 18px;--fs-lg: 21.6px;--fs-xl: 26.1px;--fs-x2: 34.2px;--fs-x3: 50.4px;--font-display: "Cormorant Garamond", Garamond, serif;--font-sc: "Cormorant SC", "Cormorant Garamond", serif;--font-text: "Newsreader", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--font-blackletter: "Pirata One", serif}:root[data-theme=paper]{color-scheme:light;--elev-3: 0 1px 2px #3a2c1414, 0 11px 23px -9px #3a2c143a, 0 36px 68px -29px #3a2c1458;--elev-slide: 0 1px 1px #3a2c1412, 0 22px 44px -28px #3a2c1475}:root:has(body>.text-page,#app>.text-page,#app>.ascii-view){color-scheme:light dark}@media (prefers-color-scheme: light){:root:has(body>.text-page,#app>.text-page,#app>.ascii-view){--elev-slide: 0 1px 1px #3a2c1412, 0 22px 44px -28px #3a2c1475}}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);overflow:hidden}body{font-family:var(--font-mono);color:var(--ink)}body[data-backdrop=void]{background:var(--bg)}body[data-backdrop=blueprint]{background:radial-gradient(ellipse 70% 60% at 50% 42%,var(--bg-hi) 0%,var(--bg) 100%) var(--bg)}body[data-backdrop=meadow]{background:linear-gradient(#8fc4e8,#bcd9ea 48%,#7ea856 48%,#5f8f42)}#app{position:fixed;top:0;right:0;bottom:0;left:0}#tower-host{position:absolute;top:0;right:0;bottom:0;left:0}#tower-host canvas{display:block}.text-page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;scroll-behavior:smooth;background:var(--bg);font-family:var(--font-text);font-size:var(--fs-md);line-height:1.6;color:var(--ink-dim)}@media (prefers-reduced-motion: reduce){.text-page{scroll-behavior:auto}}.text-page a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}.text-page a:hover{color:var(--ink)}.text-page .text-status{color:var(--ink-faint);font-size:var(--fs-sm)}.tp-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(200px,1fr);column-gap:clamp(40px,5vw,88px);align-items:start;max-width:1400px;padding:72px 32px 96px 12.5%}.tp-col{grid-column:1;grid-row:1;min-width:0}.tp-col section,.tp-hdr{scroll-margin-top:32px}.tp-toc{grid-column:2;grid-row:1;position:sticky;top:40px;padding-top:10px;font-size:var(--fs-sm);line-height:1.35}.tp-toc-home{display:inline-block;margin-bottom:28px;font:400 var(--fs-xs)/1.3 var(--font-mono);letter-spacing:.06em;color:var(--ink-faint)!important;text-decoration:none}.tp-toc-home:hover{color:var(--accent)!important}.tp-theme{display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;margin:-18px 0 26px;padding:4px 11px;border:1px solid var(--rule);border-radius:999px;background:none;font:400 var(--fs-xs)/1.4 var(--font-mono);letter-spacing:.04em;color:var(--ink-dim)}.tp-theme:hover{color:var(--ink);border-color:var(--accent)}.tp-theme[hidden]{display:none}:root[data-theme=paper]:has(.text-page){color-scheme:light!important}:root[data-theme=night]:has(.text-page){color-scheme:dark!important}.tp-toc-h{margin:0 0 12px;font:500 var(--fs-xs)/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.tp-toc ol{list-style:none;margin:0;padding:0}.tp-toc>ol>li{margin:0 0 10px}.tp-toc ol ol{margin:4px 0 0 22px}.tp-toc ol ol li{margin:2px 0}.tp-toc a{color:var(--ink-dim)!important;text-decoration:none}.tp-toc a:hover{color:var(--ink)!important}.tp-toc>ol>li>a{font:400 19px/1.25 var(--font-display);color:var(--ink)!important}.tp-toc>ol>li>a span{display:inline-block;width:22px;color:var(--accent);font-variant-numeric:lining-nums}.tp-toc ol ol a{font-style:italic}.tp-toc a[aria-current]{color:var(--accent)!important}.tp-toc-years{display:flex;flex-wrap:wrap;gap:2px 10px;margin:4px 0 0 22px;font:400 var(--fs-xs)/1.5 var(--font-mono);font-variant-numeric:tabular-nums}.tp-run{margin:0;font:500 var(--fs-xs)/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.tp-run b{color:var(--accent);font-weight:500}.tp-hdr h1{font:300 clamp(44px,5.5vw,68px)/1 var(--font-display);letter-spacing:-.015em;color:var(--ink);margin:22px 0 0}.tp-dek{margin:18px 0 0;font:italic 400 21px/1.45 var(--font-text);color:var(--ink-dim)}.tp-now{margin:14px 0 0;font-size:var(--fs-sm);color:var(--ink)}.tp-now b{font:500 var(--fs-xs)/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-right:10px}.tp-by{display:flex;flex-wrap:wrap;gap:6px 12px;margin:18px 0 0;font:400 12.5px/1.4 var(--font-mono);letter-spacing:.02em;color:var(--ink-faint)}.tp-col h2{display:flex;align-items:baseline;gap:14px;margin:64px 0 0;font:italic 400 34px/1.1 var(--font-display);color:var(--ink)}.tp-col h2 span{font:300 normal 34px/1 var(--font-display);color:var(--accent);font-variant-numeric:lining-nums}.tp-col h3{display:flex;align-items:baseline;gap:12px;margin:30px 0 4px;font:italic 400 23px/1.2 var(--font-display);color:var(--ink)}.tp-col h3 span{font:400 normal 23px/1 var(--font-display);color:var(--ink)}#publications h3{font:500 var(--fs-xs)/1.2 var(--font-mono);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.tp-col p{margin:14px 0 0}.tp-aside{font-style:italic;font-size:var(--fs-sm);color:var(--ink-faint)}.tp-cv,.tp-pubs{list-style:none;margin:0;padding:0}.tp-cv li{display:grid;grid-template-columns:9em 1fr;column-gap:18px;padding:10px 0;border-top:1px solid var(--rule-soft)}.tp-cv li:first-child{border-top:none}.tp-when{padding-top:4px;font:400 var(--fs-xs)/1.4 var(--font-mono);letter-spacing:.02em;color:var(--ink-faint);font-variant-numeric:tabular-nums}.tp-cv strong{display:block;font-weight:500;color:var(--ink);line-height:1.35}.tp-cv div>span{display:block;font-size:var(--fs-sm);line-height:1.45;margin-top:2px}.tp-cv .tp-note{font-style:italic;color:var(--ink-faint)}.tp-defs{position:absolute;width:0;height:0;overflow:hidden}.tp-pubs li{display:grid;grid-template-columns:30px 1fr;column-gap:14px;padding:14px 0;border-top:1px solid var(--rule-soft)}.tp-kind{width:22px;height:22px;margin-top:1px;fill:none;stroke:var(--ink-faint);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.tp-pubs li:hover .tp-kind{stroke:var(--accent)}.tp-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tp-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-flex;align-items:baseline;gap:4px;padding:3px 11px;border:1px solid var(--rule);border-radius:999px;background:none;font:400 var(--fs-xs)/1.4 var(--font-mono);letter-spacing:.04em;color:var(--ink-dim)!important;text-decoration:none!important;transition:color .14s ease,border-color .14s ease,background-color .14s ease}.tp-chip span{font-size:.85em;color:var(--ink-faint)}.tp-chip:hover{color:var(--ink)!important;border-color:var(--accent);background:var(--hl)}.tp-pubs li:first-child{border-top:none}.tp-pubs strong{display:block;font-weight:400;color:var(--ink);line-height:1.35}.tp-au{display:block;margin-top:4px;font-size:var(--fs-sm);line-height:1.45}.tp-me{color:var(--ink);font-weight:500}.tp-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:4px;font-size:var(--fs-sm)}.tp-meta b{font:500 var(--fs-xs)/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.tp-dl{display:grid;grid-template-columns:9em 1fr;gap:12px 18px;margin:18px 0 0}.tp-dl dt{padding-top:4px;font:500 var(--fs-xs)/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.tp-dl dd{margin:0;color:var(--ink);line-height:1.45}.tp-dl dd span{display:block;font-size:var(--fs-sm);font-style:italic;color:var(--ink-faint)}.tp-colophon p{font-size:var(--fs-sm);line-height:1.55}.tp-ft{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:64px;padding-top:16px;border-top:1px solid var(--rule);font:400 var(--fs-xs)/1 var(--font-mono);letter-spacing:.06em;flex-wrap:wrap;color:var(--ink-faint)}.tp-ft a{color:var(--ink-faint)!important;text-decoration:none}.tp-sig{font:400 var(--fs-xl)/1 var(--font-blackletter);letter-spacing:0;color:var(--accent)}@media (max-width: 860px){.tp-layout{display:flex;flex-direction:column;padding:40px 20px 64px}.tp-col{display:contents}.tp-hdr{order:0}.tp-toc{order:1;position:static;margin-top:32px;padding:18px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.tp-toc-home{margin-bottom:16px}.tp-col>section,.tp-ft{order:2}.tp-cv li,.tp-dl{grid-template-columns:1fr}.tp-cv li{row-gap:2px}.tp-dl dt{padding-top:0}.tp-dl dd{margin-bottom:6px}}.perf-offer{position:fixed;left:50%;bottom:74px;z-index:27;width:min(400px,calc(100vw - 32px));transform:translate(-50%,10px);opacity:0;padding:18px 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);border:1px solid var(--rule);border-radius:8px;transition:opacity .38s ease,transform .38s ease}.perf-offer.perf-offer-in{opacity:1;transform:translate(-50%)}.perf-offer .kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-warm);margin-bottom:8px}.perf-offer p{margin:0 0 14px;font-size:12.5px;line-height:1.6;color:var(--ink)}.perf-offer-actions{display:flex;flex-wrap:wrap;gap:8px}.perf-offer-stay{margin-left:auto;color:var(--ink-faint)}.mode-btn{font-family:var(--font-mono);font-size:13px;cursor:pointer;padding:9px 14px;border-radius:4px;background:transparent;border:1px solid var(--rule);color:var(--ink);transition:color .14s ease,border-color .14s ease}.mode-btn-primary{border-color:var(--accent);color:var(--accent-bright)}.mode-btn:hover{border-color:var(--accent-bright);color:var(--accent-bright)}.loading-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg);transition:opacity .7s ease}.loading-veil.loading-hidden{opacity:0;pointer-events:none}.loading-mark svg{width:40px;height:40px}.loading-mark circle{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:30 70;transform-origin:20px 20px;animation:loading-spin 1.3s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.loading-text{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.welcome-note{position:fixed;left:50%;bottom:48px;transform:translate(-50%,8px);z-index:15;max-width:420px;text-align:center;cursor:pointer;opacity:0;transition:opacity .5s ease,transform .5s ease;background:color-mix(in srgb,var(--bg) 72%,transparent);border:1px solid var(--rule);border-radius:8px;padding:14px 20px}.welcome-note.welcome-in{opacity:1;transform:translate(-50%)}.welcome-note .kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.welcome-note p{margin:0;font-family:var(--font-text);font-size:var(--fs-sm);line-height:1.5;color:var(--ink)}.welcome-note p.welcome-keys{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint)}.nav-rail{position:fixed;left:0;right:0;top:0;z-index:6;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;padding:14px 28px 0}body:has(.nav-rail) #tower-host:after{content:"";position:absolute;left:0;right:0;top:0;height:104px;pointer-events:none;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 90%,transparent),color-mix(in srgb,var(--bg) 55%,transparent) 55%,transparent)}.nav-whole{justify-self:start;display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--ink)}.nav-sig{font-family:var(--font-blackletter);font-size:25px;line-height:1;letter-spacing:.01em;color:var(--ink);transition:color .16s ease}.nav-role{font-family:var(--font-sc);font-weight:500;font-size:13.5px;line-height:1.2;letter-spacing:.05em;color:var(--ink-faint)}.nav-whole:hover .nav-sig,.nav-whole[aria-current] .nav-sig{color:var(--accent)}.nav-sections{display:flex;align-items:center;gap:4px}.nav-item{position:relative;display:block;padding:7px 12px 9px;text-decoration:none;white-space:nowrap;font-family:var(--font-sc);font-weight:500;font-size:17px;line-height:1;letter-spacing:.06em;color:var(--ink-dim);border-radius:999px;transition:color .16s ease,background-color .16s ease}.nav-item:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent)}.nav-item[aria-current=page]{color:var(--ink)}.nav-item[aria-current=page]:after{content:"";position:absolute;left:50%;bottom:2px;width:16px;height:2px;margin-left:-8px;background:var(--accent)}.nav-item-quiet{color:var(--ink-faint)}.nav-rule{width:1px;height:18px;margin:0 8px;background:var(--rule)}.nav-tools{justify-self:end;display:flex;align-items:center;gap:2px}.nav-views-wrap{position:relative}.nav-tool{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:grid;place-items:center;width:36px;height:36px;padding:0;background:none;border:none;border-radius:999px;color:var(--ink-dim);transition:color .14s ease,background-color .14s ease}.nav-tool svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.nav-tool:hover,.nav-tool[aria-pressed=true],.nav-tool[aria-expanded=true]{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}.nav-tool[aria-pressed=true]{color:var(--accent)}.nav-tip{position:absolute;top:calc(100% + 6px);right:50%;transform:translate(50%);padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--ink);background:var(--surface);box-shadow:var(--elev-3);opacity:0;transition:opacity .12s ease .25s}.nav-tool:hover .nav-tip,.nav-tool:focus-visible .nav-tip{opacity:1}.nav-tools .nav-tool:last-child .nav-tip{right:0;transform:none}.nav-views-open .nav-tip{opacity:0!important}.nav-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:8;min-width:240px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule-soft);border-radius:6px;padding:6px;box-shadow:var(--elev-3)}.nav-menu[hidden]{display:none}.nav-menu-item{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:4px;text-decoration:none;color:var(--ink);transition:background .14s ease,color .14s ease}.nav-menu-item strong{font-family:var(--font-text);font-weight:500;font-size:15px}.nav-menu-item span{font-size:12px;color:var(--ink-faint);line-height:1.45;font-family:var(--font-text);font-style:italic}.nav-menu-item:hover{background:var(--tint-2)}.nav-menu-item[aria-current=true] strong:before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;vertical-align:middle;background:var(--accent)}@media (min-width: 901px){.help-btn,.dest-btn,.gear-btn{display:none!important}.gear-panel{top:70px;bottom:auto;right:24px}}@media (max-width: 1180px){.nav-role{display:none}}@media (max-width: 1040px){.nav-item-quiet,.nav-rule{display:none}.nav-item{padding:8px 8px 9px}}.mbar,.msheet{display:none}@media (max-width: 900px){.mbar{position:fixed;left:12px;right:12px;z-index:30;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:52px 1fr 52px;align-items:stretch;height:58px;border-radius:16px;background:color-mix(in srgb,var(--surface) 96%,transparent);border:1px solid var(--rule-soft);box-shadow:var(--elev-3)}.mbar button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}.mbar-step{display:grid;place-items:center}.mbar-step svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.mbar-step:disabled{color:var(--ink-faint);opacity:.35}.mbar-step:active{background:var(--tint-2)}.mbar-title{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-content:center;column-gap:8px;padding:0 12px;text-align:left;min-width:0;border-left:1px solid var(--rule-soft)!important;border-right:1px solid var(--rule-soft)!important}.mbar-kicker{grid-column:1;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbar-name{grid-column:1;font-family:var(--font-display);font-size:22px;line-height:1.05;color:var(--ink)}.mbar-caret{grid-column:2;grid-row:1 / span 2;align-self:center;width:18px;height:18px;fill:none;stroke:var(--ink-faint);stroke-width:1.6;stroke-linecap:round}.msheet{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:color-mix(in srgb,var(--bg) 40%,transparent);opacity:0;transition:opacity .2s ease}.msheet[hidden]{display:none}.msheet.msheet-open{opacity:1}.msheet-card{position:absolute;left:0;right:0;bottom:0;max-height:86vh;overflow-y:auto;padding:8px 20px calc(20px + env(safe-area-inset-bottom));background:var(--surface);border-radius:18px 18px 0 0;box-shadow:var(--elev-3);transform:translateY(24px);transition:transform .22s ease}.msheet-open .msheet-card{transform:translateY(0)}.msheet-grip{width:38px;height:4px;margin:0 auto 10px;border-radius:2px;background:var(--rule)}.msheet-head{display:flex;align-items:center;justify-content:space-between;padding:4px 0 10px;border-bottom:1px solid var(--rule-soft)}.msheet-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;width:40px;height:40px;margin-right:-10px;font-size:26px;line-height:1;color:var(--ink-dim);cursor:pointer}.msheet-list{list-style:none;margin:6px 0 0;padding:0}.msheet-gap{margin-top:8px;padding-top:8px;border-top:1px solid var(--rule-soft)}.msheet-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 10px;margin:0 -10px;width:calc(100% + 20px);border:none;border-radius:10px;background:none;cursor:pointer;text-align:left;color:var(--ink)}.msheet-item:active{background:var(--tint-2)}.msheet-label{font-family:var(--font-display);font-size:23px;line-height:1.1}.msheet-room{font-family:var(--font-text);font-style:italic;font-size:14px;color:var(--ink-faint)}.msheet-item[aria-current] .msheet-label{color:var(--accent)}.msheet-item[aria-current] .msheet-label:before{content:"";display:inline-block;width:7px;height:7px;margin-right:10px;border-radius:50%;vertical-align:middle;background:var(--accent)}.msheet-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--rule-soft)}.msheet-tool{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:1px solid var(--rule-soft);border-radius:12px;background:var(--tint);color:var(--ink);cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em}.msheet-tool svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.msheet-tool:active{background:var(--tint-2)}.nav-rail,.help-btn,.dest-btn,.gear-btn{display:none!important}body:has(.nav-rail) #tower-host:after{display:none}}#hint{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:6;pointer-events:none;font-size:11.5px;letter-spacing:.06em;color:var(--ink);opacity:0;transition:opacity .16s}#hint[data-on="1"]{opacity:1}.callout{position:fixed;top:92px;z-index:5;width:clamp(380px,42vw,760px);max-height:calc(100vh - 120px);display:flex;flex-direction:column;font-family:var(--font-text);font-size:var(--fs-md);color:var(--ink-dim);opacity:0;transform:translateY(8px);transition:opacity .34s ease,transform .34s ease}.callout:before{content:"";position:absolute;z-index:-1;pointer-events:none;top:-92px;height:100vh;width:calc(100% + 4vw + 140px)}.callout-left:before{left:-4vw;background:linear-gradient(to right,color-mix(in srgb,var(--bg) 94%,transparent) 0%,color-mix(in srgb,var(--bg) 86%,transparent) 72%,transparent)}.callout-right:before{right:-4vw;background:linear-gradient(to left,color-mix(in srgb,var(--bg) 94%,transparent) 0%,color-mix(in srgb,var(--bg) 86%,transparent) 72%,transparent)}.callout.callout-visible{opacity:1;transform:translateY(0)}.callout[hidden]{display:none!important}.callout:not(.callout-visible){pointer-events:none}.callout-right{right:4vw}.callout-left{left:4vw}.leader-wrap{position:absolute;top:20px;width:200px;height:200px;color:var(--accent);pointer-events:none}.callout-right .leader-wrap{left:-212px}.callout-left .leader-wrap{right:-212px}.leader{width:100%;height:100%;display:block;overflow:visible}.leader path{fill:none;stroke:currentColor;stroke-width:1.1;opacity:.8}.leader circle{fill:var(--bg);stroke:currentColor;stroke-width:1.4}.callout-left .leader{transform:scaleX(-1)}.callout-inner{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.callout-head{padding:22px 8px 0 0}.callout-body{flex:1 1 auto;min-height:0;container-type:inline-size;overflow-y:auto;overflow-x:hidden;padding:4px 8px 28px 0;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 28px),transparent)}.kicker{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-xs);line-height:1.2;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px}.kicker-index{color:var(--accent)}.callout h1{font-family:var(--font-display);font-weight:400;font-size:var(--fs-x2);line-height:1.05;letter-spacing:0;margin:0 0 22px;color:var(--ink);font-variant-numeric:lining-nums}.callout h1:after{content:"";display:block;width:44px;height:2px;margin-top:14px;background:var(--accent)}.callout h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-xl);line-height:1.15;margin:0 0 12px;color:var(--ink)}.callout p{line-height:1.5;font-size:var(--fs-sm);color:var(--ink-dim);margin:0 0 14px}.callout-body>p:first-child{font-size:var(--fs-md);line-height:1.45;color:var(--ink)}.callout a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:3px}.callout a:hover{color:var(--ink)}.fig-caption{position:fixed;bottom:22px;z-index:4;transform:translate(-50%);max-width:min(520px,46vw);padding:6px 12px;text-align:center;pointer-events:none;font-family:var(--font-text);font-size:var(--fs-sm);line-height:1.35;color:var(--ink-dim);background:color-mix(in srgb,var(--bg) 78%,transparent);border-radius:3px;opacity:0;transition:opacity .34s ease}.fig-caption.fig-caption-visible{opacity:1}.fig-caption b{font-family:var(--font-mono);font-weight:500;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-right:8px}.fig-caption i{color:var(--ink-faint)}body[data-console=on] .fig-caption{display:none}.group-label{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-weight:500;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:26px 0 6px}.group-label:after{content:"";flex:1;height:1px;background:var(--rule)}.tl-list{list-style:none;margin:0;padding:0}.tl-list li{display:grid;grid-template-columns:6.2em 1fr;column-gap:14px;border-top:1px solid var(--rule-soft);padding:12px 0}.tl-list li:first-child{border-top:none}.tl-role{grid-column:2;font-size:var(--fs-md);line-height:1.3;color:var(--ink);font-weight:500}.tl-org{grid-column:2;font-size:var(--fs-sm);color:var(--ink-dim);line-height:1.4;margin-top:3px}.tl-year{grid-column:1;grid-row:1 / span 2;padding-top:4px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-faint);letter-spacing:.02em;font-variant-numeric:tabular-nums}.signature{font-family:var(--font-blackletter);font-weight:400;font-size:var(--fs-xl);line-height:1;color:var(--ink);margin:26px 0 4px;text-align:right}.panel-status{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--ink-faint);margin:6px 0 8px;min-height:1.4em}.search-box input{width:100%;font-family:var(--font-text);font-size:var(--fs-sm);color:var(--ink);background:none;border:none;border-bottom:1px solid var(--rule);padding:6px 2px 8px;margin-bottom:6px}.search-box input:focus{outline:none;border-color:var(--accent)}.search-box input::placeholder{color:var(--ink-faint);font-style:italic}.pub-filters{display:flex;gap:10px;margin-bottom:10px}.pub-filter-select{flex:1 1 auto;min-width:0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--ink);background:none;border:none;border-bottom:1px solid var(--rule);padding:6px 2px 8px}.pub-filter-select option{background:var(--bg);color:var(--ink)}.pub-filter-select:focus{outline:none;border-color:var(--accent)}.year-slider{margin:2px 0 14px}.year-slider-labels{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-faint);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-bottom:8px}.year-slider-track{position:relative;height:3px;background:var(--rule);border-radius:2px}.year-slider-range{position:absolute;top:0;bottom:0;background:var(--accent);border-radius:2px}.year-range{position:absolute;top:50%;left:0;width:100%;height:0;margin:0;transform:translateY(-50%);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;pointer-events:none}.year-range::-webkit-slider-runnable-track{background:transparent;height:0}.year-range::-moz-range-track{background:transparent;height:0;border:none}.year-range::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:13px;height:13px;border-radius:50%;background:var(--accent-bright);border:2px solid var(--bg);cursor:pointer;margin-top:-6.5px}.year-range::-moz-range-thumb{pointer-events:auto;width:11px;height:11px;border-radius:50%;background:var(--accent-bright);border:2px solid var(--bg);cursor:pointer}.pub-list,.proj-list,.contact-list{list-style:none;margin:0;padding:0}.pub-item{display:flex;flex-direction:column;gap:5px;width:calc(100% + 20px);text-align:left;margin:0 -10px;padding:12px 10px;font:inherit;color:var(--ink);background:none;border:none;border-top:1px solid var(--rule-soft);border-radius:3px;cursor:pointer;transition:background-color .14s ease,color .14s ease}.pub-list li:first-child .pub-item{border-top-color:transparent}.pub-item:hover,.pub-item:focus-visible{background:var(--tint-2);border-top-color:transparent}.pub-item:hover+*,.pub-list li:hover+li .pub-item{border-top-color:transparent}.pub-item:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.pub-item strong{font-weight:400;font-size:var(--fs-md);line-height:1.3}.pub-item span{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.45;color:var(--ink-faint);letter-spacing:.02em}.pub-item[aria-current=true] strong,.pub-item-danger strong{color:var(--accent)}.back-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;margin-bottom:18px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;display:block}.back-link:hover{color:var(--accent)}.callout .pub-meta,.pub-meta{color:var(--ink-dim);font-size:var(--fs-sm);line-height:1.45}.read-link{display:inline-block;margin-top:6px;margin-right:14px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em}.proj-list li{border-top:1px solid var(--rule-soft);padding:16px 0}.proj-list li:first-child{border-top:none;padding-top:6px}.callout-body>p,.callout-body>.pub-meta{max-width:68ch}@container (min-width: 640px){.proj-list{display:grid;grid-template-columns:1fr 1fr;column-gap:36px}.proj-list li:nth-child(2){border-top:none;padding-top:6px}}.proj-list h3{font-family:var(--font-display);font-weight:500;margin:0 0 6px;font-size:var(--fs-lg);line-height:1.2;color:var(--ink)}.callout .proj-list p{margin:0 0 6px;font-size:var(--fs-sm)}.status{font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint)}.status-current{color:var(--accent-warm)}.contact-list li{display:grid;grid-template-columns:6.2em 1fr;column-gap:14px;align-items:baseline;padding:12px 0;border-top:1px solid var(--rule-soft);font-size:var(--fs-sm);line-height:1.45;color:var(--ink)}.contact-list li:first-child{border-top:none}.contact-label{font-family:var(--font-mono);font-weight:500;color:var(--ink-faint);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase}.contact-list a{color:var(--link)}.contact-list a:hover{color:var(--ink)}.help-btn{position:fixed;right:22px;bottom:22px;z-index:20;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 72%,transparent);color:var(--ink-dim);font-family:var(--font-display);font-size:14px;cursor:pointer;transition:color .16s ease,border-color .16s ease}.help-btn:hover{color:var(--accent-bright);border-color:var(--accent)}.dest-btn{position:fixed;right:22px;bottom:64px;z-index:20;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 72%,transparent);color:var(--ink-dim);font-size:15px;cursor:pointer;transition:color .16s ease,border-color .16s ease}.dest-btn:hover{color:var(--accent-bright);border-color:var(--accent)}.gear-btn{position:fixed;right:22px;bottom:106px;z-index:20;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 72%,transparent);color:var(--ink-dim);cursor:pointer;transition:color .16s ease,border-color .16s ease}.gear-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.gear-btn:hover,.gear-btn-on{color:var(--accent-bright);border-color:var(--accent)}.gear-panel{position:fixed;right:22px;bottom:150px;z-index:26;width:min(330px,calc(100vw - 44px));padding:18px 18px 16px;font-family:var(--font-mono);background:linear-gradient(to top,color-mix(in srgb,var(--bg) 94%,transparent),color-mix(in srgb,var(--bg) 78%,transparent));border-radius:6px;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}.gear-panel[hidden]{display:none}.gear-panel.gear-panel-in{opacity:1;transform:translateY(0)}.gear-panel>.kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.gear-row{padding:11px 0;border-top:1px solid var(--rule)}.gear-row:first-of-type{border-top:none;padding-top:0}.gear-row-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}.gear-opts{display:flex;flex-wrap:wrap;gap:5px}.gear-opt{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:4px 9px;border-radius:3px;background:transparent;border:1px solid transparent;color:var(--ink-dim);font:inherit;font-size:11.5px;transition:color .14s ease,border-color .14s ease}.gear-opt:hover{color:var(--ink);border-color:var(--rule)}.gear-opt-on{color:var(--accent-bright);border-color:var(--accent)}.gear-hint{margin-top:7px;font-size:11px;line-height:1.5;color:var(--ink-faint)}.gear-status{margin-top:14px;padding-top:11px;border-top:1px solid var(--rule);font-size:10.5px;line-height:1.6;color:var(--ink-dim)}.gear-status-gpu{word-break:break-word;color:var(--ink-faint)}.gear-status-warn{margin-top:6px;color:var(--accent-warm)}.fps-meter{position:fixed;left:22px;bottom:22px;z-index:22;display:flex;gap:10px;align-items:baseline;padding:5px 9px;border-radius:4px;background:color-mix(in srgb,var(--bg) 66%,transparent);font-family:var(--font-mono);font-size:11px;line-height:1;color:var(--ink-dim);pointer-events:none;font-variant-numeric:tabular-nums}.fps-meter[hidden]{display:none}.fps-rate{font-size:13px;color:var(--ink)}.fps-meter[data-band=good] .fps-rate{color:#7fe0a8}.fps-meter[data-band=fair] .fps-rate{color:var(--accent-warm)}.fps-meter[data-band=poor] .fps-rate{color:#ec8f79}.fps-tier{letter-spacing:.1em;text-transform:uppercase;font-size:9.5px;color:var(--ink-faint)}.pub-item-danger strong{color:var(--accent-warm)}.pub-item-danger:hover strong{color:#ec8f79}.gear-row-off{opacity:.45}.gear-row-off .gear-opt{cursor:default}.quality-note{position:fixed;right:22px;bottom:150px;z-index:24;width:min(300px,calc(100vw - 44px));padding:14px 16px;background:color-mix(in srgb,var(--bg) 78%,transparent);border:1px solid var(--rule);border-radius:8px;cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}.quality-note.quality-note-in{opacity:1;transform:translateY(0)}body[data-gear=on] .quality-note{display:none}.quality-note .kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-warm);margin-bottom:6px}.quality-note p{margin:0;font-size:12px;line-height:1.55;color:var(--ink)}.quality-note strong{color:var(--accent-bright);font-weight:400}.quality-note-keys{margin-top:7px!important;font-size:11px!important;color:var(--ink-dim)!important}.quality-note kbd{font-family:var(--font-mono);font-size:10.5px;padding:1px 4px;border:1px solid var(--rule);border-radius:3px;color:var(--ink)}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg) 60%,transparent);opacity:0;transition:opacity .22s ease}.help-overlay[hidden]{display:none}.help-overlay.help-overlay-visible{opacity:1}.help-card{width:min(360px,86vw);font-family:var(--font-mono);background:var(--bg);border:1px solid var(--rule);border-radius:4px;padding:26px 28px;transform:translateY(6px);transition:transform .22s ease}.help-overlay-visible .help-card{transform:translateY(0)}.help-card h2{font-family:var(--font-display);font-weight:500;font-size:19px;margin:0 0 16px;color:var(--accent-bright)}.help-rows{margin:0 0 18px;display:grid;grid-template-columns:auto 1fr;gap:10px 16px}.help-rows dt{font-size:11px;letter-spacing:.04em;color:var(--accent);white-space:nowrap}.help-rows dd{margin:0;font-size:12.5px;color:var(--ink);line-height:1.5}.dest-card{width:min(360px,86vw)}.dest-list{list-style:none;margin:0 0 4px;padding:0;max-height:50vh;overflow-y:auto}.dest-item[aria-current=true]{color:var(--accent-bright)}.dest-item[aria-current=true] strong:before{content:"● ";color:var(--accent);font-size:9px}.pub-actions{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}.pub-actions-detail{margin-top:14px}.chip-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--ink-dim);background:none;border:1px solid var(--rule);border-radius:999px;padding:4px 12px;transition:color .14s ease,border-color .14s ease}.chip-btn:hover,.chip-btn.is-flashing{color:var(--accent-bright);border-color:var(--accent)}.colophon-block{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:4px 0 20px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.colophon-block dt{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;padding-top:2px}.colophon-block dd{margin:0;font-size:var(--fs-sm);line-height:1.45;color:var(--ink)}.colophon-note{display:block;font-size:var(--fs-sm);font-style:italic;color:var(--ink-dim)}.text-colophon{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0 0 18px}.text-colophon dt{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;padding-top:2px}.text-colophon dd{margin:0;font-size:13px;line-height:1.5;color:var(--ink)}.pub-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0}.console{position:fixed;right:5vw;top:15%;bottom:11%;z-index:25;width:clamp(400px,46vw,820px);display:flex;flex-direction:column;font-family:var(--font-mono);opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.console:before{content:"";position:absolute;z-index:-1;pointer-events:none;top:-15vh;height:100vh;right:-5vw;width:calc(100% + 5vw + 140px);background:linear-gradient(to left,color-mix(in srgb,var(--bg) 95%,transparent) 0%,color-mix(in srgb,var(--bg) 88%,transparent) 72%,transparent)}.console>*{pointer-events:auto}.console[hidden]{display:none}.console.console-visible{opacity:1;transform:translateY(0)}.console-log{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-bottom:10px;font-size:12.5px;line-height:1.65;color:var(--ink-dim)}.console-line{white-space:pre-wrap;word-break:break-word;min-height:.65em}.console-cmd,.ascii-cmd{padding-left:26ch;text-indent:-26ch}.console-hit,.ascii-hit{padding-left:14ch;text-indent:-14ch}.console-echo{color:var(--accent)}.console-dim{color:var(--ink-faint)}.console-err{color:var(--accent)}.console-ok{color:var(--teal)}.console-head{color:var(--ink);font-weight:500}.console-pre{color:var(--ink-dim);font-size:11.5px}.console-inputline{flex:0 0 auto;display:flex;align-items:baseline;gap:9px;border-top:1px solid var(--rule);padding:12px 0 4px}.console-prompt{color:var(--accent);font-size:14px;line-height:1}.console-input{flex:1 1 auto;min-width:0;background:none;border:none;outline:none;padding:0;font:inherit;font-size:13.5px;color:var(--accent-bright);caret-color:var(--accent)}.console-input::placeholder{color:var(--ink-faint)}.console-close{margin:12px 0 0}body[data-console=on] .callout{opacity:0!important;visibility:hidden;pointer-events:none}body[data-console=on] .help-btn,body[data-console=on] .gear-btn,body[data-console=on] .dest-btn{opacity:.25}.ascii-view{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100%;max-width:780px;margin:0 auto;padding:40px 24px max(16px,env(safe-area-inset-bottom));font-family:var(--font-mono);color:var(--ink)}.ascii-masthead{flex:0 0 auto}.ascii-name{font-family:var(--font-blackletter);font-weight:400;font-size:30px;letter-spacing:.01em;color:var(--ink);margin-bottom:4px}.ascii-role{font-family:var(--font-text);font-size:var(--fs-sm);font-style:italic;color:var(--ink-dim)}.ascii-modes{margin-top:10px;display:flex;gap:10px;align-items:baseline;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}.ascii-modes a{color:var(--ink-dim);text-decoration:none;transition:color .14s ease}.ascii-modes a:hover{color:var(--accent-bright)}.ascii-tower-toggle{display:none}.ascii-body{flex:1 1 auto;display:flex;gap:28px;min-height:0;margin-top:24px;padding-top:22px;border-top:1px solid var(--rule)}.ascii-tower{flex:0 0 auto;margin:0;padding:0;font-family:var(--font-mono);font-size:11.5px;line-height:1.3;color:var(--ink-dim);white-space:pre}.ascii-row{display:block}button.ascii-row{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;font:inherit;color:inherit;text-align:left;width:100%;cursor:pointer;transition:color .14s ease}button.ascii-row:hover{color:var(--accent)}.ascii-row-active{color:var(--accent-bright)}.ascii-log{flex:1 1 auto;min-width:0;overflow-y:auto;overscroll-behavior:contain;font-size:12.5px;line-height:1.65;scrollbar-width:thin;padding-bottom:8px}.ascii-line{white-space:pre-wrap;word-break:break-word;min-height:.65em}.ascii-echo{color:var(--accent)}.ascii-dim{color:var(--ink-faint)}.ascii-err{color:var(--accent)}.ascii-ok{color:var(--teal)}.ascii-line.ascii-head{color:var(--ink);font-weight:500}.ascii-pre{color:var(--ink-dim);font-size:11.5px}.ascii-inputline{flex:0 0 auto;display:flex;align-items:baseline;gap:10px;border-top:1px solid var(--rule);padding-top:14px;margin-top:4px}.ascii-prompt{color:var(--accent);font-size:15px;line-height:1}.ascii-input{flex:1 1 auto;min-width:0;background:none;border:none;outline:none;padding:0;font:inherit;font-size:16px;color:var(--accent-bright);caret-color:var(--accent)}.ascii-input::placeholder{color:var(--ink-dim);font-size:13px}.ascii-keys{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:8px;padding-top:14px}.ascii-key{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);background:none;border:1px solid var(--rule);border-radius:3px;padding:7px 11px;transition:color .14s ease,border-color .14s ease}.ascii-key:hover{color:var(--accent-bright);border-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.search-box input:focus-visible,.pub-filter-select:focus-visible{outline-offset:4px}.console-input:focus,.console-input:focus-visible,.ascii-input:focus,.ascii-input:focus-visible{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.welcome-keys{margin-top:8px!important;font-size:11px!important;color:var(--ink-dim)!important}.welcome-keys kbd{font-family:var(--font-mono);font-size:10px;border:1px solid var(--rule);border-radius:3px;padding:1px 4px;color:var(--accent)}.kicker-sub{margin-top:4px}body[data-gl-lost="1"] #tower-host:after{content:"The graphics context was lost — it should recover in a moment.";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--font-mono);font-size:12px;color:var(--ink-dim);text-align:center}@media (max-width: 900px){.gear-panel{right:0;left:0;bottom:0;width:auto;border-radius:18px 18px 0 0;z-index:41;padding:22px 20px calc(22px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:var(--elev-3)}.quality-note{right:16px;left:16px;width:auto;bottom:calc(84px + env(safe-area-inset-bottom))}.fps-meter{left:12px;bottom:auto;top:max(12px,env(safe-area-inset-top))}.callout{top:auto;bottom:0;width:auto;max-height:56vh;padding-bottom:calc(76px + env(safe-area-inset-bottom));background:var(--bg);box-shadow:0 -28px 28px -4px var(--bg)}.callout:before{top:0;left:20px;right:20px;width:auto;height:1px;background:var(--rule)}.fig-caption{display:none}.callout-head{padding:22px 20px 0}.callout-body{padding:0 20px 22px}.callout h1{font-size:var(--fs-xl);margin-bottom:14px}.callout h1:after{margin-top:10px;width:36px}.callout-right,.callout-left{right:0;left:0}.leader-wrap{display:none}.help-overlay{align-items:flex-end!important;padding:0!important;z-index:45!important}.help-rows dd{font-family:var(--font-text);font-size:15px!important}.help-card{width:100%!important;max-height:86vh;overflow-y:auto;border-radius:18px 18px 0 0!important;border:none!important;background:var(--surface)!important;padding:24px 22px calc(22px + env(safe-area-inset-bottom))!important}.help-rows{grid-template-columns:1fr!important;gap:2px 0!important}.help-rows dd{margin-bottom:10px!important}.help-keys{display:none!important}.help-card .kicker-sub{display:none}#hint,.welcome-note{bottom:auto;top:max(16px,calc(env(safe-area-inset-top) + 12px))}.console{right:0;left:0;top:auto;bottom:0;width:100%;padding:20px 20px calc(80px + env(safe-area-inset-bottom));max-height:70vh;background:linear-gradient(to top,var(--bg) 62%,transparent)}body[data-console=on] .callout,body[data-console=on] .help-btn,body[data-console=on] .gear-btn,body[data-console=on] .gear-panel,body[data-console=on] .dest-btn{display:none}.ascii-view{padding-top:28px}.ascii-name{font-size:24px}.ascii-masthead{position:relative}.ascii-tower-toggle{display:inline-flex;align-items:center;gap:5px;position:absolute;right:0;bottom:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:5px 7px;background:var(--bg);border:1px solid var(--rule);border-radius:3px;color:var(--ink-dim);font:inherit;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.ascii-tower-toggle:hover{color:var(--accent-bright);border-color:var(--accent)}.ascii-body{margin-top:18px;padding-top:16px}.ascii-tower{display:none}.ascii-tower.ascii-tower-open{display:block;position:absolute;z-index:1;top:112px;right:16px;left:16px;margin:0;padding:16px;overflow:hidden;border:1px solid var(--rule);border-radius:4px;background:var(--bg);color:var(--ink-dim);font-size:11px}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.view-pref-note{margin:0 0 20px;padding:10px 14px;border-left:2px solid var(--accent);font-size:12.5px;line-height:1.6;color:var(--ink-dim)}.view-pref-note a{color:var(--accent-bright)}.perf-offer-fine{margin:12px 0 0!important;font-size:11px!important;line-height:1.5!important;color:var(--ink-faint)!important}:root[data-world] .callout:before,:root[data-world] .console:before,:root[data-world] #tower-host:after{display:none}@media (min-width: 901px){:root[data-world] .callout{background:linear-gradient(to bottom,color-mix(in srgb,var(--ink) 9%,transparent),transparent 140px),color-mix(in srgb,var(--bg) 30%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4) brightness(.8);backdrop-filter:blur(14px) saturate(1.4) brightness(.8);border:1px solid color-mix(in srgb,var(--ink) 26%,transparent);border-radius:14px;box-shadow:inset 0 1px color-mix(in srgb,var(--ink) 22%,transparent),0 20px 50px -20px #000a;max-height:calc(100vh - 132px)}:root[data-world] .callout-head{padding:24px 28px 0}:root[data-world] .callout-body{padding:4px 28px 24px}:root[data-world] .console{padding:22px 26px 18px;background:color-mix(in srgb,var(--bg) 40%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4) brightness(.75);backdrop-filter:blur(14px) saturate(1.4) brightness(.75);border:1px solid color-mix(in srgb,var(--ink) 26%,transparent);border-radius:14px;box-shadow:0 20px 50px -20px #000a}:root[data-world] .nav-rail{padding:10px 28px;background:color-mix(in srgb,var(--bg) 34%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4) brightness(.8);backdrop-filter:blur(14px) saturate(1.4) brightness(.8);border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent)}}
