.room-focus-bar{left:50%;bottom:max(6vh, calc(env(safe-area-inset-bottom) + 20px));z-index:20;color:#e6e4df;background:#16181bdd;border:1px solid #ffffff1f;border-radius:4px;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:8px;animation:.45s cubic-bezier(.22,.8,.2,1) both room-focus-in;display:flex;position:absolute;transform:translate(-50%)}.room-focus-back,.room-focus-action{min-height:40px;color:inherit;font:inherit;letter-spacing:.03em;white-space:nowrap;cursor:pointer;background:#22252a;border:1px solid #ffffff26;border-radius:3px;padding:8px 14px;font-size:15px}.room-focus-back:hover,.room-focus-action:hover{background:#30343a}.room-focus-back:focus-visible,.room-focus-action:focus-visible{outline-offset:3px;outline:2px solid #c5c0b3}.room-focus-note{color:#c9c6be;letter-spacing:.03em;margin:0;font-size:14px}@keyframes room-focus-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (prefers-reduced-motion:reduce){.room-focus-bar{animation-duration:1ms}}@media (max-width:600px){.room-focus-bar{flex-wrap:wrap;justify-content:center;gap:8px}.room-focus-note{text-align:center;order:-1;width:100%}}.discovery-toast{right:max(78px, calc(env(safe-area-inset-right) + 64px));bottom:max(78px, calc(env(safe-area-inset-bottom) + 64px));z-index:45;color:#b9e8c8;letter-spacing:.2em;text-transform:uppercase;opacity:0;pointer-events:none;background:#121418d9;border:1px solid #ffffff1a;border-radius:3px;padding:6px 10px;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;transition:opacity .26s,transform .26s;position:fixed;transform:translateY(6px)}.discovery-toast[data-shown]{opacity:1;transform:none}.discovery-toast:empty{border:0;padding:0}@media (prefers-reduced-motion:reduce){.discovery-toast{transition-duration:1ms}}.saber-bar{max-width:min(760px,100vw - 24px)}.saber-info{flex:1;min-width:0}.saber-name{letter-spacing:.16em;text-transform:uppercase;color:#f0ece4;margin:0;font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace}.saber-name span{color:#9aa3ab;letter-spacing:.12em;margin-left:12px}.saber-line{color:#d6d2c9;letter-spacing:.01em;margin:4px 0 0;font-size:14px;font-style:italic}.saber-actions{gap:6px;display:flex}@media (max-width:600px){.saber-bar{flex-wrap:wrap}.saber-info{flex-basis:100%;order:-1}.saber-name span{margin:2px 0 0;display:block}}
.ld{--cyan:#5ee0f0;--violet:#9b85ff;--amber:#ffb35c;--gold:#ffd476;--white:#e9f1ff;z-index:100;color:#e6e8f2;background:radial-gradient(50% 40% at 50% 56%,#14214a 0%,#0b1230 45%,#0000 75%),radial-gradient(42% 55% at 6% 28%,#3b2a9e30 0%,#0000 70%),radial-gradient(42% 55% at 95% 72%,#0f708c2b 0%,#0000 70%),repeating-linear-gradient(0deg,#7d8cff09 0 1px,#0000 1px 40px),repeating-linear-gradient(90deg,#7d8cff09 0 1px,#0000 1px 40px),radial-gradient(1px 1px at 11% 14%,#c9d4f080 99%,#0000),radial-gradient(1px 1px at 27% 82%,#c9d4f055 99%,#0000),radial-gradient(1px 1px at 46% 9%,#c9d4f066 99%,#0000),radial-gradient(1px 1px at 68% 88%,#c9d4f04d 99%,#0000),radial-gradient(1px 1px at 84% 12%,#c9d4f070 99%,#0000),radial-gradient(1.5px 1.5px at 93% 41%,#c9d4f059 99%,#0000),#05060a;place-items:center;transition:opacity .42s cubic-bezier(.4,0,.2,1);display:grid;position:fixed;inset:0;overflow:hidden}.ld[data-phase=leaving]{opacity:0;pointer-events:none}.ld-inner{text-align:center;justify-items:center;width:100%;padding:24px 16px;display:grid}.ld-name,.ld-sub,.ld-grid,.ld-ghost,.ld-plate,.ld-plate-front,.ld-bed{animation:.65s ease-out both ld-in}.ld-name{font-family:var(--font-display), "Helvetica Neue", Helvetica, Arial, sans-serif;letter-spacing:.04em;white-space:nowrap;color:var(--white);text-shadow:-1px 0 #9b85ff4d,1px 0 #5ee0f04d,0 0 24px #6f7bff2e;margin:0;font-size:clamp(24px,3.3vw,48px);font-weight:640;line-height:1.15}.ld-sub{letter-spacing:.05em;color:#b4b9d4;margin:10px 0 0;font-size:clamp(13px,1.05vw,16px)}.ld-sub span{color:var(--violet);margin:0 .35em}.ld-city{width:min(1000px,94vw);height:auto;max-height:54vh;margin:clamp(12px,3.5vh,36px) 0 clamp(6px,2vh,20px);overflow:visible}.ld-plate{fill:#0a1428;stroke:#23365c;stroke-width:1px}.ld-plate-front{fill:#070c1b;stroke:#1b2849;stroke-width:1px}.ld-grid{fill:none;stroke:#2c4673;stroke-width:.6px;opacity:.45}.ld-bed{fill:#0e1a34}.ld-ghost{fill:none;stroke:#4c72ad;stroke-width:.9px;stroke-dasharray:4 4;opacity:.5;transition:opacity .5s}.ld[data-built] .ld-ghost{opacity:.1}.ld-glow,.ld-core{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;transition:stroke-dashoffset .56s cubic-bezier(.35,.1,.25,1),opacity .22s}.ld-glow{stroke-width:7px}.ld-core{stroke-width:1.6px}.ld-perimeter path{stroke:url(#ld-rim)}.ld[data-power] .ld-perimeter path,.ld[data-network] .ld-route path{stroke-dashoffset:0}.ld[data-power] .ld-perimeter .ld-core{opacity:.9}.ld[data-power] .ld-perimeter .ld-glow{opacity:.15}.ld-route[data-tone=cyan] path{stroke:var(--cyan)}.ld-route[data-tone=violet] path{stroke:var(--violet)}.ld-route .ld-core{stroke-width:1.4px}.ld-route .ld-glow{stroke-width:6px}.ld[data-network] .ld-route .ld-core{opacity:.78}.ld[data-network] .ld-route .ld-glow{opacity:.12}.ld[data-ready] .ld-route .ld-core,.ld[data-ready] .ld-perimeter .ld-core{opacity:1}.ld[data-ready] .ld-route .ld-glow,.ld[data-ready] .ld-perimeter .ld-glow{opacity:.24}.ld-junction{fill:#5ee0f01a;stroke:var(--cyan);stroke-width:1.4px;opacity:0;transition:opacity .26s .42s}.ld[data-network] .ld-junction{opacity:.9}.ld-district{--accent:var(--cyan);opacity:0;transition:opacity .34s ease-out,transform .48s cubic-bezier(.2,.8,.2,1);transform:translateY(16px)}.ld-district[data-accent=violet],.ld-sign[data-accent=violet]{--accent:var(--violet)}.ld[data-built] .ld-district{opacity:1;transform:none}.ld-walls{fill:#11203f;stroke:#2d4675;stroke-width:.7px;stroke-linejoin:round}.ld-roof{fill:#1e3260;stroke:var(--accent);stroke-width:1.2px;stroke-linejoin:round;stroke-opacity:.3;transition:stroke-opacity .32s}.ld-band{fill:none;stroke:var(--cyan);stroke-width:1.6px;stroke-linecap:round;opacity:.3;transition:opacity .32s}.ld[data-lit] .ld-roof{stroke-opacity:.95}.ld[data-lit] .ld-band{opacity:1}.ld-district[data-district=about] .ld-roof{fill:#3a2433;stroke:#ffb35c}[data-tone=maroon] .ld-walls{fill:#2e1330;stroke:#5a2b55}[data-tone=maroon] .ld-roof{fill:#45204a}[data-tone=gold] .ld-walls{fill:#33280f;stroke:#6a5224}[data-tone=gold] .ld-roof{fill:#4f3e1c;stroke:var(--gold);transition:fill .32s,stroke-opacity .32s}.ld[data-lit] [data-tone=gold] .ld-roof{fill:#a07c2c}.ld-panes{opacity:0;transition:opacity .38s}.ld[data-lit] .ld-panes{opacity:1}.ld-warm{fill:var(--amber);stroke:#ffb35c4d;stroke-width:2.4px}.ld-cool{fill:#dce9ff;stroke:#dce9ff33;stroke-width:2px;opacity:.88}.ld-gold{fill:var(--gold);stroke:#ffd47666;stroke-width:3px}.ld-crown path{fill:none;stroke:var(--cyan);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;opacity:.35;transition:opacity .32s}.ld-beacon{fill:#d4fcff;opacity:0;transition:opacity .32s}.ld[data-lit] .ld-crown path,.ld[data-lit] .ld-beacon{opacity:1}.ld-pulse{fill:var(--cyan);opacity:0;transform-box:fill-box;transform-origin:50%;pointer-events:none}.ld-pulse-gold{fill:var(--gold)}.ld[data-ready] .ld-pulse{animation:.56s ease-out ld-pulse}.ld-sign{--accent:var(--cyan);--lift:5px;opacity:0;transform:translateY(var(--lift)) scale(var(--sign-scale,1));transform-box:fill-box;transform-origin:50% 100%;transition:opacity .3s,transform .3s}.ld[data-signs] .ld-sign{--lift:0px;opacity:1}.ld-stem{stroke:var(--accent);stroke-width:1px;opacity:.7}.ld-node{fill:var(--accent)}.ld-plaque{fill:#0a1429;stroke:var(--accent);stroke-width:1px}.ld-sign text{fill:#eef3ff;letter-spacing:.12em;font:600 10.5px Helvetica Neue,Helvetica,Arial,sans-serif}.ld-packet{fill:#dffcff;stroke:var(--cyan);stroke-opacity:.35;stroke-width:5px;opacity:0}.ld[data-slow] .ld-packet{opacity:1;animation:2.8s linear infinite ld-packet}.ld-headline{letter-spacing:.38em;text-transform:uppercase;color:#d3d9f6;margin:0;padding-left:.38em;font-size:11px;font-weight:600}.ld[data-failed] .ld-headline{color:#ffc98a}.ld-bricks{gap:9px;margin-top:16px;display:flex}.ld-brick{background:#0c1129;border:1px solid #39437a;border-radius:2px;width:24px;height:10px;transition:background-color .26s,border-color .26s;position:relative}.ld-brick:before,.ld-brick:after{content:"";border:inherit;background:inherit;border-bottom:0;border-radius:2px 2px 0 0;width:6px;height:3px;position:absolute;top:-4px}.ld-brick:before{left:3px}.ld-brick:after{right:3px}.ld-brick[data-lit]{background:#7b6cf2;border-color:#c8c0ff}.ld-brick:nth-child(3)[data-lit]{background:#7682f0}.ld-brick:nth-child(4)[data-lit]{background:#6e97ee}.ld-brick:nth-child(5)[data-lit]{background:#63aceb}.ld-brick:nth-child(6)[data-lit]{background:#56c2e8;border-color:#b8f2fa}.ld-brick:nth-child(7)[data-lit]{background:#4fd3e6;border-color:#b8f2fa}.ld-brick:nth-child(7)[data-lit]:before,.ld-brick:nth-child(7)[data-lit]:after{background:var(--gold);border-color:#ffe9b8}.ld-status{letter-spacing:.28em;text-transform:uppercase;color:#8f97c2;min-height:1.4em;margin:13px 0 0;padding-left:.28em;font-size:11px}.ld[data-ready] .ld-status{color:#bff5fb}.ld-retry{color:#eef1ff;min-height:44px;font:inherit;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;background:#141a3a;border:1px solid #9b85ffaa;border-radius:3px;margin-top:18px;padding:10px 24px;font-size:12px}.ld-retry:hover{background:#1d2450}.ld-retry:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.ld[data-failed] .ld-core{opacity:.3}.ld[data-failed] .ld-glow,.ld[data-failed] .ld-packet{opacity:0;animation:none}@keyframes ld-in{0%{opacity:0}}@keyframes ld-pulse{0%{opacity:.6;transform:scale(.25)}to{opacity:0;transform:scale(1.7)}}@keyframes ld-packet{0%{translate:var(--from)}to{translate:var(--to)}}@media (max-width:600px){.ld-city{width:116vw;max-width:none;max-height:none;margin:22px calc(-8vw - 16px) 12px}.ld-sign{--sign-scale:1.7}.ld-name{letter-spacing:.03em;font-size:min(6.4vw,30px)}.ld-sub{font-size:13px}}@media (max-height:520px){.ld-inner{padding:12px 16px}.ld-city{max-height:50vh;margin:8px 0 4px}.ld-name{font-size:22px}.ld-bricks{margin-top:10px}.ld-status{margin-top:8px}}@media (prefers-reduced-motion:reduce){.ld{transition-duration:.2s}.ld,.ld *{transition-delay:0s!important}.ld-name,.ld-sub,.ld-grid,.ld-ghost,.ld-plate,.ld-plate-front,.ld-bed{animation-duration:1ms}.ld-glow,.ld-core{stroke-dasharray:none;transition:opacity .18s}.ld-district,.ld-panes,.ld-roof,.ld-junction,.ld-crown path,.ld-beacon{transition-duration:.18s}.ld-district{transform:none}.ld-sign{--lift:0px;transition:opacity .18s}.ld-pulse,.ld-packet{display:none}}
.info-button{z-index:45;top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));color:#e9ecff;min-height:44px;font:inherit;letter-spacing:.22em;cursor:pointer;background:#0d1024e6;border:1px solid #8f7bff66;border-radius:3px;align-items:center;gap:10px;padding:0 12px 0 16px;font-size:11px;transition:background-color .18s,border-color .18s,top .25s,right .25s;display:inline-flex;position:fixed}.info-button:hover{background:#161a3a;border-color:#a99fffcc}.info-button:focus-visible{outline-offset:3px;outline:2px solid #5fd8e8}.info-mark{color:#bff4fb;letter-spacing:0;border:1px solid #5fd8e8aa;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.info-button[data-fresh]{border-color:#a99fffcc}.info-button[data-fresh]:after{content:"";pointer-events:none;opacity:0;border:1px solid #5fd8e8;border-radius:4px;animation:3.2s ease-out 1.2s 3 info-ring;position:absolute;inset:-1px}@keyframes info-ring{0%{opacity:.9;border-color:#8f7bff;transform:scale(1)}60%{border-color:#5fd8e8}to{opacity:0;border-color:#5fd8e8;transform:scale(1.35,1.6)}}body:has(.esc-control) .info-button{top:calc(max(16px, env(safe-area-inset-top)) + 58px)}.workbench-hero:has(.content-detail) .info-button{right:calc(min(66vw,1180px) + 36px)}@media (max-width:899px),(max-aspect-ratio:6/5){.workbench-hero:has(.content-detail) .info-button{display:none}}.info-backdrop{z-index:90;overscroll-behavior:contain;background:#03040acc;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.info-card{overscroll-behavior:contain;color:#e6e7f2;background:linear-gradient(#111531,#0b0e20 60%);border:1px solid #7d8cff40;border-top-color:#5fd8e8aa;border-radius:4px;width:min(500px,100%);max-height:calc(100dvh - 32px);padding:30px 30px 24px;animation:.28s cubic-bezier(.22,.8,.2,1) both info-in;position:relative;overflow-y:auto;box-shadow:0 30px 90px #000000a6,inset 0 1px #8f7bff33}.info-card h2{font-family:var(--font-display), "Helvetica Neue", Helvetica, Arial, sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:0 0 18px;padding-right:40px;font-size:22px;font-weight:700}.info-list{margin:0}.info-list dt{letter-spacing:.2em;text-transform:uppercase;color:#8fe6f2;margin-top:14px;font-size:11px}.info-list dt:first-child{margin-top:0}.info-list dd{color:#c9cbe0;margin:5px 0 0;font-size:15px;line-height:1.5}.info-dots{flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px;display:flex}.info-dots i{border:1px solid #c9cbe077;border-radius:50%;width:8px;height:8px}.info-dots i[data-on]{background:#dffaff;border-color:#dffaff;box-shadow:0 0 0 3px #8f7bff55}.info-dots small{letter-spacing:.16em;text-transform:uppercase;color:#8a8cab;flex-basis:100%;font-size:10px}.info-close{color:#c9cbe0;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;width:40px;height:40px;font-size:22px;line-height:1;position:absolute;top:10px;right:10px}.info-close:hover{color:#fff;border-color:#7d8cff55}.info-done{color:#0a0d1f;min-height:44px;font:inherit;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:#bff4fb;border:0;border-radius:3px;margin-top:22px;padding:0 22px;font-size:12px;font-weight:600}.info-done:hover{background:#e2fbff}.info-close:focus-visible,.info-done:focus-visible{outline-offset:3px;outline:2px solid #8f7bff}@keyframes info-in{0%{opacity:0;transform:translateY(8px)}}@media (max-width:600px){.info-button{padding:0 10px 0 12px}.info-card{padding:26px 20px 20px}.info-list dd{font-size:16px}}@media (prefers-reduced-motion:reduce){.info-button[data-fresh]:after{opacity:0;animation:none}.info-button[data-fresh]{border-color:#bff4fbcc}.info-card{animation:none}.info-button{transition-duration:1ms}}
