:root{--glass:color-mix(in srgb, var(--onyx) 78%, transparent);--glass-deep:color-mix(in srgb, var(--onyx) 86%, transparent);--hairline:var(--bronze-deep);--scrim:var(--void);--display:"Michroma", "Helvetica Neue", Arial, sans-serif;--sans:"Instrument Sans", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--beat:.3s;--slow:.5s;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-ui:cubic-bezier(.4, 0, .2, 1);--half-beat:.25s}*,:before,:after{box-sizing:border-box}html,body,#root{overscroll-behavior:none;background:var(--void);width:100%;height:100dvh;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;touch-action:auto;margin:0;padding:0;font-size:15px;line-height:1.4;position:fixed;inset:0;overflow:hidden}button,input{touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-family:inherit}:focus{outline:none}:focus-visible{outline:1px solid var(--champagne);outline-offset:3px}.panel{background:var(--glass);border:1px solid var(--hairline);-webkit-backdrop-filter:blur(10px)}.pill,.ring{background:var(--glass);border:1px solid var(--bronze);color:var(--text);font:500 15px/1 var(--sans);letter-spacing:0;text-transform:none;cursor:pointer;-webkit-backdrop-filter:blur(10px);transition:border-color var(--beat) var(--ease-out), box-shadow var(--beat) var(--ease-out), color var(--beat) var(--ease-out);justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.pill{white-space:nowrap;border-radius:999px;gap:10px;min-height:44px;padding:0 22px}.ring{font-variant-numeric:tabular-nums;--ring:var(--champagne);border-radius:50%;width:44px;height:44px;padding:0}.pill:hover,.pill:focus-visible,.ring:hover,.ring:focus-visible{border-color:var(--champagne);box-shadow:0 0 0 1.5px color-mix(in srgb, var(--champagne) 40%, transparent);outline:none}.pill:disabled,.ring:disabled{color:var(--text-dim);border-color:var(--bronze-deep);box-shadow:none;cursor:default}.ring[data-floor=L]{--ring:var(--lobby-light)}.ring[data-floor="1"]{--ring:var(--amber)}.ring[data-floor="2"]{--ring:var(--teal)}.ring[data-floor="3"]{--ring:var(--lilac)}.ring[data-floor="4"],.ring[data-floor="5"]{--ring:var(--lobby-light)}.ring.lit,.ring[aria-current=true]{border-color:var(--ring);color:var(--ring);box-shadow:0 0 0 1px color-mix(in srgb, var(--ring) 35%, transparent), 0 0 14px color-mix(in srgb, var(--ring) 30%, transparent);cursor:default}.ring.going{border-color:color-mix(in srgb, var(--ring) 60%, var(--bronze));color:var(--text)}.chip{z-index:10;background:var(--glass);border:1px solid var(--hairline);-webkit-backdrop-filter:blur(10px);min-height:40px;color:var(--text-dim);font:400 13px/1 var(--sans);white-space:nowrap;pointer-events:none;--ring:var(--champagne);border-radius:999px;align-items:center;gap:8px;padding:0 18px;display:inline-flex;position:absolute}.chip-floor{text-overflow:ellipsis;border-color:color-mix(in srgb, var(--ring) 55%, var(--bronze-deep));max-width:calc(100vw - 32px);top:18px;left:50%;overflow:hidden;transform:translate(-50%)}.chip-floor[data-floor=L]{--ring:var(--lobby-light)}.chip-floor[data-floor="1"]{--ring:var(--amber)}.chip-floor[data-floor="2"]{--ring:var(--teal)}.chip-floor[data-floor="3"]{--ring:var(--lilac)}.chip-floor[data-floor="4"],.chip-floor[data-floor="5"]{--ring:var(--lobby-light)}.chip-floor .here{font-family:var(--display);color:var(--text);font-variant-numeric:tabular-nums;font-size:12px}.guide-btn{z-index:20;pointer-events:auto;position:absolute;top:12px;right:12px}.guide-btn i{border:1px solid var(--bronze);width:10px;height:10px;transition:background var(--beat) var(--ease-out), border-color var(--beat) var(--ease-out);border-radius:50%}.guide-btn.on{border-color:var(--champagne);color:var(--champagne)}.guide-btn.on i{background:var(--champagne);border-color:var(--champagne)}.brand-strip{z-index:10;background:var(--glass);border:1px solid var(--hairline);-webkit-backdrop-filter:blur(10px);pointer-events:none;text-align:center;border-radius:999px;flex-direction:column;align-items:center;gap:4px;padding:10px 20px 11px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.brand-strip .wordmark{font:400 12px/1.3 var(--display);letter-spacing:.18em;color:var(--text)}.brand-strip .hint{font:400 13px/1.3 var(--sans);color:var(--text-dim)}.prompt{z-index:12;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.prompt .key{border:1px solid var(--bronze);width:24px;height:24px;color:var(--champagne);border-radius:50%;justify-content:center;align-items:center;margin-left:-8px;font-size:12px;display:inline-flex}.prompt.quiet{border-color:var(--hairline);color:var(--text-dim);pointer-events:none;cursor:default}.prompt.narrow{bottom:150px}.elev-panel{z-index:14;background:var(--glass);border:1px solid var(--hairline);-webkit-backdrop-filter:blur(10px);pointer-events:auto;touch-action:manipulation;border-radius:999px;flex-direction:column;align-items:flex-end;gap:12px;padding:16px 12px 16px 18px;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.elev-panel .status{font:400 13px/1.3 var(--sans);color:var(--text-dim);white-space:nowrap;align-self:center;padding:0 4px 6px}.elev-panel .row{align-items:center;gap:12px;display:flex}.elev-panel .nm{font:400 13px/1 var(--sans);color:var(--text-dim);white-space:nowrap;transition:color var(--beat) var(--ease-out)}.elev-panel .row:hover .nm,.elev-panel .row.here .nm{color:var(--text)}.lights{z-index:15;pointer-events:auto;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:24px;right:24px}.lights-btn i{border:1px solid var(--bronze);background:radial-gradient(circle, var(--champagne) 0 30%, transparent 32%);width:10px;height:10px;transition:background var(--beat) var(--ease-out), border-color var(--beat) var(--ease-out);border-radius:50%}.lights-btn.on,.lights-btn.on i{border-color:var(--champagne)}.lights-panel{border-radius:999px;flex-direction:column;align-items:flex-end;gap:12px;padding:16px 12px 16px 18px;display:flex}.lights-panel[hidden]{display:none}.lights-panel .row{align-items:center;gap:12px;display:flex}.lights-panel .nm{font:400 13px/1 var(--sans);color:var(--text-dim);white-space:nowrap;transition:color var(--beat) var(--ease-out)}.lights-panel .row:hover .nm,.lights-panel .row.here .nm{color:var(--text)}.audio-cue{z-index:15;background:var(--glass);border:1px solid var(--hairline);-webkit-backdrop-filter:blur(10px);min-width:190px;color:var(--text-dim);font:400 13px/1.3 var(--sans);text-align:center;pointer-events:none;animation:cueIn var(--slow) var(--ease-out) .8s both;border-radius:999px;padding:11px 18px 12px;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.audio-cue i{background:var(--champagne);height:1px;transition:width var(--beat) linear;margin:8px auto 0;display:block}@keyframes cueIn{0%{opacity:0}to{opacity:1}}.alert{z-index:15;background:var(--glass);border:1px solid color-mix(in srgb, var(--error) 60%, var(--bronze-deep));color:var(--error);font:400 13px/1.4 var(--sans);text-align:center;pointer-events:none;border-radius:999px;max-width:90vw;padding:11px 18px;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.debug{z-index:10;background:var(--glass);border:1px solid var(--hairline);color:var(--text-dim);font:400 12px/1.7 var(--sans);font-variant-numeric:tabular-nums;pointer-events:none;padding:8px 12px;position:absolute;top:64px;left:20px}.debug .k{color:var(--champagne)}.debug .on{color:var(--text)}.debug .err{color:var(--error);max-width:220px}.joy-zone{z-index:16;pointer-events:none;width:42%;height:38%;position:absolute;bottom:0;left:0}.joy{background:color-mix(in srgb, var(--onyx) 40%, transparent);border:1px solid var(--bronze);pointer-events:auto;touch-action:none;border-radius:50%;width:96px;height:96px;position:absolute;bottom:28px;left:28px}.joy .knob{background:color-mix(in srgb, var(--champagne) 22%, transparent);border:1px solid var(--champagne);pointer-events:none;will-change:transform;border-radius:50%;width:42px;height:42px;margin:-21px 0 0 -21px;position:absolute;top:50%;left:50%}.back-link{z-index:2147483647;background:var(--glass);border:1px solid var(--bronze);min-height:44px;color:var(--text);font:500 13px/1 var(--sans);-webkit-backdrop-filter:blur(10px);transition:border-color var(--beat) var(--ease-out), box-shadow var(--beat) var(--ease-out);border-radius:999px;align-items:center;padding:0 18px;text-decoration:none;display:inline-flex;position:fixed;top:12px;left:12px}.back-link:hover,.back-link:focus-visible{border-color:var(--champagne);box-shadow:0 0 0 1.5px color-mix(in srgb, var(--champagne) 40%, transparent);outline:none}@media (width<=600px){.chip-floor{top:62px}.debug{max-width:calc(100vw - 24px);top:110px;left:12px}.elev-panel{padding:14px 10px 14px 14px;right:12px}.elev-panel .nm{display:none}.lights{bottom:20px;right:16px}}.gate{z-index:20;background:var(--void);color:var(--text);font-family:var(--sans);touch-action:auto;position:absolute;inset:0;overflow:hidden}.gate-leaving{opacity:0;pointer-events:none;transition-property:opacity;transition-timing-function:var(--ease-ui)}.move-hint{z-index:12;border:1px solid var(--hairline);background:var(--glass);-webkit-backdrop-filter:blur(10px);color:var(--text-dim);font:400 13px/1.4 var(--sans);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--slow) var(--ease-out), transform var(--slow) var(--ease-out);border-radius:999px;padding:11px 18px;position:absolute;bottom:132px;left:50%;transform:translate(-50%,8px)}.move-hint.show{opacity:1;transform:translate(-50%)}.move-hint b{color:var(--text);font-weight:500}@media (width<=900px){.move-hint{white-space:normal;text-align:center;width:max-content;max-width:calc(100vw - 32px);bottom:200px}}@media (prefers-reduced-motion:reduce){.move-hint{transition:none}}.gate-shade{background:linear-gradient(180deg, color-mix(in srgb, var(--scrim) 55%, transparent) 0%, transparent 30%, transparent 55%, color-mix(in srgb, var(--scrim) 85%, transparent) 100%);position:absolute;inset:0}.gate-content{z-index:5;flex-direction:column;gap:26px;display:flex;position:absolute;bottom:56px;left:48px;right:48px}.gate-kicker{font:400 14px/1.3 var(--sans);color:var(--text-dim)}.gate-title{font-family:var(--display);letter-spacing:0;color:var(--text);margin:0;font-size:clamp(40px,6.5vw,88px);font-weight:400;line-height:1.05}.gate-foot{border-top:1px solid var(--hairline);justify-content:space-between;align-items:flex-end;gap:48px;padding-top:22px;display:flex}.gate-lede{max-width:34em;color:var(--text);margin:0;font-size:17px;font-weight:400;line-height:1.6}.gate-btn{flex-shrink:0;min-height:52px;padding:0 28px;font-size:16px}.gate-btn:disabled{cursor:wait;color:var(--text-dim)}.gate-error{font:400 14px/1.4 var(--sans);color:var(--error);margin:0}.gate-intro{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.gate-doors{z-index:40;pointer-events:none;display:flex;position:absolute;inset:0}.gate-doors .l,.gate-doors .r{background:var(--void);flex:1}.gate-doors .l{border-right:1px solid var(--bronze-deep);animation:1.5s cubic-bezier(.75,0,.15,1) .35s forwards gateSplitL}.gate-doors .r{border-left:1px solid var(--bronze-deep);animation:1.5s cubic-bezier(.75,0,.15,1) .35s forwards gateSplitR}.gate-seam{z-index:41;background:var(--champagne);width:2px;box-shadow:0 0 24px 4px color-mix(in srgb, var(--champagne) 45%, transparent);pointer-events:none;margin-left:-1px;animation:.4s .45s forwards gateSeamOut;position:absolute;top:12%;bottom:12%;left:50%}@keyframes gateSplitL{to{transform:translate(-101%)}}@keyframes gateSplitR{to{transform:translate(101%)}}@keyframes gateSeamOut{to{opacity:0}}.gate-action{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:14px;display:flex}.gate-slow{font:400 14px/1.4 var(--sans);color:var(--text-dim);text-align:right;margin:0}.gate-stuck{flex-direction:column;align-items:flex-end;gap:14px;display:flex}.gate-stuck-actions{flex-wrap:wrap;gap:12px;display:flex}.gate-nogl .gate-title{max-width:16em;font-size:clamp(28px,4.2vw,56px);line-height:1.15}@media (width<=760px){.gate-content{bottom:40px;left:20px;right:20px}.gate-foot{flex-direction:column;align-items:flex-start;gap:24px}.gate-lede{font-size:16px}.gate-action,.gate-stuck{align-items:flex-start}.gate-slow{text-align:left}}@media (prefers-reduced-motion:reduce){.gate-doors,.gate-seam{display:none}}
