.ambient-instrument{position:fixed;inset:0;z-index:75;display:flex;align-items:flex-end;justify-content:center;padding:28px;background:#ebf2f529;color:#3d535e}.instrument-surface{width:min(780px,100%);max-height:calc(100dvh - 56px);overflow:auto;padding:24px;border:1px solid #c9d4da;border-radius:6px;background:#f7fafbf5;box-shadow:0 12px 50px #142b3814}.instrument-surface header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.instrument-surface header>div{display:flex;align-items:baseline;gap:16px}.instrument-mark{font-size:21px;color:#2d3c45}.instrument-title{font-size:9px}.instrument-owner{margin-left:auto;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instrument-surface button{width:36px;min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;color:#617984}.instrument-surface button svg{width:16px;height:16px;stroke-width:1.4;pointer-events:none}.instrument-surface button:is(:hover,[aria-pressed=true]){background:#dfe9ed;color:#2f5361}.instrument-transport{display:flex;align-items:center;gap:8px;padding:10px 0;border-block:1px solid #d5dfe4}.instrument-tempo{margin-left:12px;display:flex;align-items:center;gap:8px;font-size:9px}.instrument-tempo input{width:54px;padding:6px;background:transparent;border:1px solid #c8d5da;border-radius:2px;font-size:12px;color:inherit}.instrument-loop-length{margin-left:auto;font-size:9px;color:#83949d}.instrument-tracks{padding:10px 0}.instrument-track{display:grid;grid-template-columns:36px 95px minmax(0,1fr) 36px 36px;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid #dfe7eb}.instrument-track.is-selected{background:#eaf0f3}.instrument-track.is-recording{border-left:2px solid #6f9aa6}.instrument-track select{min-width:0;width:100%;border:0;color:#546e7b;background:transparent;font-size:10px}.instrument-track canvas{display:block;width:100%;height:24px}.instrument-effects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:10px}.instrument-effects label{min-width:0;font-size:9px;color:#6f838e}.instrument-effects input{display:block;width:100%;height:24px;margin:5px 0 0;accent-color:#7e9ca8}.instrument-octave{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:6px 0;font-size:10px}.instrument-octave-value{min-width:70px;text-align:center}.instrument-audio-status{margin-right:auto;font-size:8px;color:#7b909a}.instrument-keyboard{position:relative;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));height:110px;gap:2px;touch-action:none}.instrument-surface .instrument-key{width:100%;min-width:0;height:110px;align-items:flex-end;padding:0 0 9px;border:1px solid #c9d4d9;border-radius:0 0 3px 3px;background:#fff;color:#82949f;-webkit-user-select:none;user-select:none;touch-action:none}.instrument-key kbd{font:inherit;font-size:9px;pointer-events:none}.instrument-surface .instrument-key.black{position:absolute;top:0;width:4.43%;height:66px;z-index:1;background:#526570;border-color:#526570;color:#e5edf0}.instrument-surface .instrument-key.is-down{background:#abc8d3;color:#2d4a57}.instrument-progress{height:2px;background:#dce5e9;margin-top:16px;overflow:hidden}.instrument-progress i{display:block;width:0;height:100%;background:#759ba9}.instrument-interaction{position:absolute;left:50%;top:calc(50% + 44px);transform:translate(-50%);display:flex;align-items:center;gap:9px;min-height:44px;max-width:calc(100% - 32px);padding:10px 14px;background:#f8fafbdb;border:1px solid #b8c5ce;border-radius:4px;color:#56636d;font-size:10px}.instrument-interaction svg{width:18px;height:18px;flex-shrink:0}.instrument-interaction span{overflow-wrap:anywhere}.instrument-interaction:disabled{cursor:default}.instrument-interaction kbd{border:1px solid #aeb9c0;padding:2px 5px;font:inherit}@media(max-width:600px){.ambient-instrument{padding:10px}.instrument-surface{padding:14px;max-height:calc(100dvh - 20px)}.instrument-surface header>div{gap:8px}.instrument-title{font-size:8px}.instrument-owner{max-width:80px;font-size:9px}.instrument-track{grid-template-columns:36px 66px minmax(0,1fr) 36px 36px;gap:3px}.instrument-effects{gap:8px}.instrument-keyboard,.instrument-surface .instrument-key{height:100px}.instrument-surface .instrument-key.black{height:60px}.instrument-loop-length{font-size:8px}}#app[data-input=touch] .instrument-interaction kbd{display:none}#app.instrument-open .pause-prompt{visibility:hidden}@media(max-height:540px){.ambient-instrument{padding:8px}.instrument-surface{padding:12px;max-height:calc(100dvh - 16px)}.instrument-surface header{margin-bottom:4px}.instrument-track{min-height:36px}.instrument-effects{margin-top:0}.instrument-keyboard,.instrument-surface .instrument-key{height:80px}.instrument-surface .instrument-key.black{height:48px}}#app[data-mode=SHOOTER] .ui .exhibition-mark,#app[data-mode=SHOOTER] .ui .exhibit-caption,#app[data-mode=SHOOTER] .ui .controls-overlay,#app[data-mode=SHOOTER] .ui .inspection-close,#app[data-mode=SHOOTER] .ui .inspect-button,#app[data-mode=SHOOTER] .ui .crosshair,#app:not([data-mode=LIMBO]) .ui .pause-prompt{display:none}#app:not([data-mode=LIMBO]):not([data-mode=SHOOTER]) .ui .inspect-button{display:none}:is(.mode-overlay,.settings-overlay){position:fixed;inset:0;z-index:70;display:grid;place-items:center;background:#f8fbfdd1}:is(.mode-overlay,.settings-overlay)[hidden]{display:none}.protocol-content{width:min(360px,calc(100% - 40px));text-align:center;color:#283039}.protocol-mark{font-size:32px;font-weight:500}.protocol-content h1{font-size:12px;font-weight:500;margin:16px 0 20px;letter-spacing:0}.protocol-status{font-size:11px;line-height:1.6;min-height:18px;overflow-wrap:anywhere}.round-restart{position:sticky;top:0;z-index:2;display:grid;justify-items:center;gap:7px;margin:20px 0;padding:18px 12px 12px;background:#f8fbfd;border-block:1px solid #8195a333}.round-restart[hidden]{display:none}.round-restart-label{font-size:14px;font-weight:500;color:#263b47}.round-countdown{display:grid;place-items:center;min-width:160px;height:48px;font-size:36px;font-weight:400;font-variant-numeric:tabular-nums;color:#1e3441}.round-restart-note{font-size:10px;color:#506674}.protocol-content .round-countdown-progress{display:block;width:min(280px,100%);height:4px;margin:8px 0 0;accent-color:#526e7e}.session-idle-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#f8fbfd;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom))}.session-idle-overlay[hidden]{display:none}.session-idle-overlay .protocol-content{width:min(400px,100%)}.session-idle-overlay .protocol-content h1{font-size:22px;line-height:1.3;margin:28px 0 20px}.session-idle-overlay p{font-size:12px;line-height:1.6;margin:24px 0}.session-idle-overlay .session-reservation{font-size:14px;font-variant-numeric:tabular-nums;color:#506674}.protocol-content button{display:block;width:100%;min-height:44px;margin-top:8px;padding:12px;border:1px solid #aeb9bf;border-radius:4px;background:#ffffffd1;color:#283039;font:inherit;font-size:11px;cursor:pointer}.protocol-content button[hidden],.protocol-content progress[hidden]{display:none}.protocol-content .protocol-back{border-color:transparent;background:transparent}.protocol-content button:hover{background:#fff}.protocol-content button:focus-visible{outline:2px solid #5c7c8c;outline-offset:3px}.ui.is-settings-open{display:none}.settings-overlay .protocol-content{width:min(352px,calc(100% - 40px));padding:6px;max-height:calc(100dvh - 40px);overflow-y:auto}.settings-overlay .session-settings{margin:28px 0;text-align:left}.session-settings h2{margin:0 0 14px;font-size:10px;font-weight:500;color:#506674}.session-settings label{display:flex;justify-content:space-between;gap:8px;margin:14px 0 5px;font-size:9px;color:#637986}.session-settings output{flex:0 0 auto;font-variant-numeric:tabular-nums}.session-settings select{display:block;width:100%;min-height:36px;padding:6px 9px;border:1px solid #b6c3cb;border-radius:4px;background:#f7f9fa;color:#3c505d;font:inherit}.session-settings input{width:100%;min-width:0;min-height:32px;margin:0;accent-color:#728995;cursor:pointer}.session-tools{display:flex;align-items:center;gap:8px;margin-top:12px}.protocol-content .session-mute{flex:0 0 44px;width:44px;height:44px;margin:0;padding:12px;border:0;background:transparent}.protocol-content .session-fullscreen{display:flex;align-items:center;justify-content:center;gap:10px;width:auto;min-width:0;flex:1;margin:0;padding:10px;border-color:transparent;background:transparent;font-size:9px}.session-tools svg{flex:0 0 18px;width:18px;height:18px;stroke-width:1.2}.session-fullscreen kbd{margin-left:auto;font:inherit;color:#758995}.settings-status{font-size:10px;line-height:1.5}.settings-close kbd{margin-left:12px;font:inherit;color:#758995}.settings-overlay:not([hidden])~.mode-diagnostics{display:none}.protocol-content progress{width:100%;height:2px;margin:20px 0;accent-color:#637d89}.mode-haze{position:fixed;inset:0;z-index:60;pointer-events:none;background:#f8fbfd;opacity:0}.mode-diagnostics{position:fixed;left:12px;top:68px;z-index:90;font:10px/1.7 monospace;white-space:pre;color:#283039;background:#ffffffd9;padding:8px;pointer-events:none}.shooter-test-join{position:fixed;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:55;max-width:calc(100% - 40px);min-height:40px;padding:10px 18px;border:1px solid rgba(70,85,93,.14);border-radius:4px;background:#ffffff61;color:#46535c;font:inherit;font-size:10px;letter-spacing:0;cursor:pointer;transition:background .2s,color .2s}.shooter-test-join[hidden]{display:none}.shooter-test-join:hover{background:#ffffffbf;color:#20272c}.shooter-test-join:focus-visible{outline:1px solid #728590;outline-offset:4px}@media(max-width:600px){.shooter-test-join{bottom:max(90px,calc(env(safe-area-inset-bottom) + 70px))}}.inspection-actions{position:fixed;z-index:55;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;gap:12px;max-width:calc(100% - 32px)}.inspection-actions .shooter-test-join,.auction-join{position:static;transform:none;white-space:nowrap;min-height:44px;padding:12px 18px;border:1px solid #71818c55;border-radius:3px;background:#edf2f444;color:#31414c;font-size:10px}.auction-join:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.inspection-actions{bottom:max(90px,calc(env(safe-area-inset-bottom) + 70px))}}.mode-overlay[data-phase=loading],.mode-overlay[data-phase=error]{background:#fff}.settings-overlay:focus{outline:none}.protocol-content .settings-visitors{margin-top:16px;border-color:transparent;background:transparent;font-size:9px}.visitor-options{position:fixed;inset:0;z-index:75;display:grid;place-items:center;background:#f8fbfdd1;color:#34434d}.visitor-options[hidden]{display:none}.visitor-options:focus{outline:none}.visitor-content{width:min(352px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow:auto;padding:6px}.visitor-content header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #8297a633;margin-bottom:22px}.visitor-content button{min-height:44px;color:inherit;font-size:10px}.visitor-back{padding:0}.visitor-close{display:grid;place-items:center;width:44px}.visitor-close svg{width:18px;height:18px;stroke-width:1.2}.visitor-body h2{font-size:18px;font-weight:400;overflow-wrap:anywhere;margin:0 0 8px}.visitor-status{font-size:9px;color:#728794;margin:0 0 22px}.visitor-body label{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;font-size:12px;border-bottom:1px solid #8297a626;cursor:pointer}.visitor-body input{width:18px;height:18px;accent-color:#728995}.visitor-body>p{font-size:10px}.visitor-list-item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;border-bottom:1px solid #8297a626;padding:12px 0}.visitor-list-item span:first-child{overflow-wrap:anywhere}.visitor-list-item span:last-child{font-size:8px;color:#728794}.voice-activation{border:0;border-top:1px solid #d4dde3;padding:16px 0 0;margin:16px 0 0;min-width:0}.voice-activation legend{float:left;width:100%;margin-bottom:10px;font-size:10px;color:#536875}.voice-activation legend span{float:right;color:#7d8e99}.voice-choices{display:flex;clear:both;border:1px solid #bac8d1;border-radius:3px;overflow:hidden}.session-settings .voice-choices label{position:relative;flex:1;display:block;text-align:center;margin:0;cursor:pointer}.voice-choices label+label{border-left:1px solid #bac8d1}.session-settings .voice-choices input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.voice-choices span{display:grid;place-items:center;min-height:36px;font-size:10px;color:#667c8a}.voice-choices input:checked+span{background:#e0e9ef;color:#253f4e}.voice-choices input:focus-visible+span{outline:1px solid #486e84;outline-offset:-3px}#app[data-input=touch]{--touch-edge: max(18px, env(safe-area-inset-right));--touch-left: max(18px, env(safe-area-inset-left));--touch-top: max(16px, calc(env(safe-area-inset-top) + 8px) )}#app[data-input=touch] .scene-canvas{touch-action:none}#app[data-input=touch] .ui{z-index:40}#app[data-input=touch] .mode-diagnostics{display:none}#app[data-input=touch] .now-playing{right:max(18px,env(safe-area-inset-right));bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));max-width:min(240px,calc(100% - 36px))}.touch-controls{position:fixed;inset:0;z-index:35;pointer-events:none;user-select:none;-webkit-user-select:none}.touch-controls [hidden],.touch-controls[hidden]{display:none}.touch-look{position:absolute;inset:0 0 0 45%;pointer-events:auto;touch-action:none}.touch-stick{position:absolute;width:clamp(96px,24dvh,128px);aspect-ratio:1;left:max(18px,env(safe-area-inset-left));bottom:max(70px,calc(env(safe-area-inset-bottom) + 50px));border:1px solid rgba(70,90,104,.28);border-radius:50%;background:#f6fbfe1f;pointer-events:auto;touch-action:none}.touch-stick-thumb{position:absolute;width:42px;height:42px;left:calc(50% - 21px);top:calc(50% - 21px);border-radius:50%;border:1px solid rgba(65,86,100,.3);background:#f4f9fc70;pointer-events:none}.touch-stick{opacity:0;transition:opacity .12s ease-out;-webkit-touch-callout:none}.touch-stick.is-active{opacity:1}.touch-button{position:absolute;width:52px;height:52px;display:grid;place-items:center;padding:12px;border:1px solid rgba(66,87,100,.26);border-radius:50%;background:#f7fbfd66;color:#465e6c;pointer-events:auto;touch-action:none;-webkit-touch-callout:none}.touch-button svg{width:23px;height:23px;stroke-width:1.5;pointer-events:none}.touch-button[aria-pressed=true]{border-color:#658795;background:#dfeef5bf;color:#263e4a}.touch-fire{width:76px;height:76px;right:var(--touch-edge);bottom:max(170px,calc(env(safe-area-inset-bottom) + 150px))}.touch-fire svg{width:32px;height:32px}.touch-aim{right:calc(var(--touch-edge) + 94px);bottom:max(182px,calc(env(safe-area-inset-bottom) + 162px))}.touch-jump{right:var(--touch-edge);bottom:max(100px,calc(env(safe-area-inset-bottom) + 80px))}.touch-crouch{right:calc(var(--touch-edge) + 62px);bottom:max(100px,calc(env(safe-area-inset-bottom) + 80px))}.touch-reload{right:calc(var(--touch-edge) + 124px);bottom:max(100px,calc(env(safe-area-inset-bottom) + 80px))}.touch-mode{right:calc(var(--touch-edge) + 156px);bottom:max(182px,calc(env(safe-area-inset-bottom) + 162px));padding:6px;gap:0;grid-template-rows:24px 12px}.touch-mode svg{width:20px;height:20px}.touch-mode-label{font-size:7px;font-weight:500;letter-spacing:0}.touch-sprint{left:max(56px,calc(env(safe-area-inset-left) + 38px));bottom:max(214px,calc(env(safe-area-inset-bottom) + 194px))}.touch-tools{position:absolute;top:max(76px,calc(env(safe-area-inset-top) + 66px));right:var(--touch-edge);display:flex;gap:8px}.touch-tools .touch-button{position:relative;width:44px;height:44px;padding:10px;border-radius:4px}.touch-tools svg{width:20px;height:20px}.touch-voice-note{position:absolute;top:max(130px,calc(env(safe-area-inset-top) + 120px));right:var(--touch-edge);width:min(240px,calc(100% - 36px));text-align:right;font-size:8px;line-height:1.5;color:#778e9b;pointer-events:none}.touch-controls[data-voice=denied] .touch-voice-note{color:#6b565d}.touch-controls[data-voice=speaking] .touch-voice{color:#466d5e;border-color:#718c7b}.touch-controls:not([data-context=shooter]) :is(.touch-fire,.touch-aim,.touch-jump,.touch-crouch,.touch-reload,.touch-mode){display:none}.touch-controls:is([data-context=shooter],[data-context=dead]) :is(.touch-voice,.touch-voice-note){display:none}.touch-controls:is([data-context=inspection],[data-context=dead]) :is(.touch-stick,.touch-look,.touch-sprint){display:none}#app[data-input=touch] :is(.controls-overlay,.exhibit-caption,.shooter-menu-button,.shooter-fire-hint,.chat-note,.chat-input-hint,.pause-hint){display:none}#app[data-input=touch] .chat{left:18px;bottom:max(262px,calc(env(safe-area-inset-bottom) + 242px));width:min(260px,calc(100% - 36px));z-index:50}#app[data-input=touch] .chat:not(.is-open){pointer-events:none}#app[data-input=touch] .chat-history{max-height:84px}#app[data-input=touch] .chat.is-open .chat-history{max-height:min(240px,35dvh)}#app[data-input=touch] .chat.is-open{position:fixed;width:calc(100% - 36px);bottom:var(--chat-bottom, 18px)}#app[data-input=touch] .chat-form input,#app[data-input=touch] .intro-name-row input{font-size:16px}#app[data-input=touch] .chat-form{padding:5px 10px;min-height:52px;gap:8px}#app[data-input=touch] .chat-send,#app[data-input=touch] .chat-close{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;padding:10px}.chat-send svg,.chat-close svg{width:20px;height:20px}#app:not([data-input=touch]) :is(.chat-send,.chat-close){display:none}#app[data-input=touch] .shooter-health{bottom:max(34px,calc(env(safe-area-inset-bottom) + 28px));left:max(18px,env(safe-area-inset-left))}#app[data-input=touch] .shooter-movement{bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));left:max(18px,env(safe-area-inset-left))}#app[data-input=touch] .shooter-ammo{right:var(--touch-edge);bottom:max(18px,env(safe-area-inset-bottom))}#app[data-input=touch] .shooter-ammo{gap:4px}#app[data-input=touch] .shooter-magazine{font-size:24px;line-height:1.2}#app[data-input=touch] .shooter-fire-control{min-height:12px}#app[data-input=touch] .shooter-action{position:absolute;bottom:calc(100% + 3px);right:0;min-height:10px;font-size:7px}#app[data-input=touch] .shooter-kill-feed{width:min(230px,calc(100% - 140px))}#app[data-input=touch] .protocol-content{max-height:calc(100dvh - 24px);overflow-y:auto;padding:6px}#app[data-input=touch] .shooter-test-join{bottom:max(24px,env(safe-area-inset-bottom))}@media(max-height:500px){.touch-stick{bottom:max(54px,calc(env(safe-area-inset-bottom) + 44px))}.touch-sprint{left:max(40px,calc(env(safe-area-inset-left) + 22px));bottom:max(160px,calc(env(safe-area-inset-bottom) + 150px))}.touch-fire{bottom:max(146px,calc(env(safe-area-inset-bottom) + 136px))}.touch-aim,.touch-mode{bottom:max(158px,calc(env(safe-area-inset-bottom) + 148px))}.touch-jump,.touch-crouch,.touch-reload{bottom:max(84px,calc(env(safe-area-inset-bottom) + 74px))}#app[data-input=touch] .chat{bottom:200px}#app[data-input=touch] .session-table-scroll{max-height:85px}}@media(max-width:360px)and (min-height:501px){.touch-mode{right:calc(var(--touch-edge) + 62px);bottom:246px}.touch-reload{right:var(--touch-edge);bottom:246px}.touch-aim{right:calc(var(--touch-edge) + 94px);bottom:172px}.touch-fire{bottom:160px}.touch-jump,.touch-crouch{bottom:92px}}.touch-controls[data-context=limbo] :is(.touch-jump,.touch-crouch){display:grid}#app[data-input=touch] .top-controls{top:var(--touch-top);right:var(--touch-edge)}#app[data-input=touch] .touch-tools{top:calc(var(--touch-top) + 48px)}#app[data-input=touch] .touch-voice-note{top:calc(var(--touch-top) + 100px)}#app[data-input=touch] .shooter-hud header{top:var(--touch-top);left:var(--touch-left);height:16px}#app[data-input=touch] .shooter-hud header span:first-child{font-size:14px;line-height:16px}#app[data-input=touch] .shooter-hud header span:last-child{display:none}#app[data-input=touch] .shooter-round{top:var(--touch-top);left:calc(var(--touch-left) + 42px);transform:none;font-size:11px;line-height:16px;letter-spacing:0}#app[data-input=touch] .shooter-score{top:calc(var(--touch-top) + 25px);left:var(--touch-left);gap:0;max-width:calc(100% - 2 * var(--touch-left));font-size:8px;line-height:14px}#app[data-input=touch] :is(.shooter-movement,.shooter-fire-control){display:none}#app[data-input=touch] .shooter-hud .shooter-kill-feed{top:calc(var(--touch-top) + 56px);left:var(--touch-left);width:min(200px,calc(100% - var(--touch-left) - var(--touch-edge) - 160px))}#app[data-input=touch] .shooter-kill-feed li{display:flex;min-height:18px;gap:4px;font-size:8px;color:#d4e1e9}#app[data-input=touch] .shooter-kill-feed li:nth-last-child(n+3){display:none}#app[data-input=touch] .kill-action{font-size:7px;color:#aebfc9}#app[data-input=touch] .shooter-health{left:var(--touch-left);bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));font-size:10px}#app[data-input=touch] .shooter-ammo{right:var(--touch-edge);bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px))}#app[data-input=touch] .now-playing{max-width:min(220px,48%)}#app[data-input=touch] .chat:not(.is-open){bottom:max(274px,calc(env(safe-area-inset-bottom) + 254px));width:min(230px,calc(100% - 184px))}#app[data-input=touch] .chat-message{color:#e0e9ee}#app[data-input=touch] .chat-sender{color:#bbcdd6}@media(max-height:500px)and (orientation:landscape){#app[data-input=touch] .touch-tools{top:calc(var(--touch-top) + 36px)}#app[data-input=touch] .shooter-score,#app[data-input=touch] .shooter-hud .shooter-kill-feed{display:none}#app[data-input=touch] .chat:not(.is-open){display:none}}@media(max-height:340px)and (orientation:landscape){.touch-fire{width:64px;height:64px;bottom:max(118px,calc(env(safe-area-inset-bottom) + 108px))}.touch-aim,.touch-mode{width:44px;height:44px;bottom:max(128px,calc(env(safe-area-inset-bottom) + 118px))}.touch-jump,.touch-crouch,.touch-reload{width:44px;height:44px;padding:10px;bottom:max(68px,calc(env(safe-area-inset-bottom) + 58px))}.touch-mode{grid-template-rows:18px 10px}.touch-mode svg{width:18px;height:18px}}@media(prefers-reduced-motion:reduce){.touch-stick{transition:none}}#app[data-input=touch] .chat.has-invitations:not(.is-open){display:block;width:min(300px,calc(100% - 36px))}#app[data-input=touch] .chat-invitations button{min-height:44px}@media(max-height:500px)and (orientation:landscape){#app[data-input=touch] .chat.has-invitations:not(.is-open){top:max(18px,env(safe-area-inset-top));bottom:auto}}.gallery-film-audio{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:44px;height:44px;display:grid;place-items:center;padding:11px;border:1px solid #b4bec7;border-radius:50%;background:#f7fafbe6;color:#485860;pointer-events:auto}.gallery-film-audio svg{width:21px;height:21px;stroke-width:1.5}.gallery-film-audio[hidden]{display:none}.gallery-film-audio:hover{background:#fff}.gallery-film-audio:focus-visible{outline:2px solid #647d89;outline-offset:3px}.gallery-listen{position:absolute;left:50%;top:calc(50% + 45px);transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;max-width:calc(100% - 40px);padding:10px 14px;border:1px solid #a6b0aa55;border-radius:4px;background:#161c1be6;color:#eef0eb;font-size:10px;white-space:nowrap;pointer-events:auto}.gallery-listen svg{width:18px;height:18px;stroke-width:1.3}.gallery-listen kbd{font:inherit;border:1px solid #a6b0aa88;border-radius:2px;padding:2px 5px}.gallery-listen.is-listening{top:auto;bottom:max(32px,env(safe-area-inset-bottom));background:#161c1b88}#app[data-input=touch] .gallery-listen kbd{display:none}#app[data-input=touch] .gallery-listen.is-listening{bottom:max(200px,calc(env(safe-area-inset-bottom) + 190px))}.ui.in-gallery[data-state] :is(.controls-overlay,.control-row>span:nth-child(2),.voice-status,.connection-indicator,.visitor-focus){color:#e0e7e3;text-shadow:0 1px 4px #101715b3}.ui.in-gallery[data-state] .chat-message{color:#edf1ef}.ui.in-gallery[data-state] .chat-sender{color:#c0d2ca}:root{font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Segoe UI,sans-serif;color:#626c74;background:#f8fafb;font-synthesis:none;-webkit-font-smoothing:antialiased;--edge: clamp(24px, 3.6vw, 54px);--muted: #8b969e}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait}button:focus-visible,input:focus-visible{outline:1px solid #889ba8;outline-offset:6px}button{border:0;background:none}[hidden]{display:none!important}::selection{background:#dce8ef}.scene-canvas{display:block;width:100%;height:100%}.ui{position:fixed;inset:0;pointer-events:none;-webkit-user-select:none;user-select:none}.ui button,.ui input{pointer-events:auto}.visitor-focus{position:absolute;left:50%;top:calc(50% + 18px);transform:translate(-50%);margin:0;max-width:70%;font-size:11px;line-height:1.4;color:#edf4f8;text-shadow:0 1px 6px #202c36;overflow-wrap:anywhere;text-align:center}#app:not([data-mode=LIMBO]) .visitor-focus{display:none}.visitor-focus{min-height:44px;padding:8px}.visitor-focus:after{content:"E";display:inline-block;margin-left:10px;padding:1px 4px;border:1px solid #edf4f755;border-radius:2px;font-size:9px}#app[data-input=touch] .visitor-focus:after{content:"···"}.bench-interaction{position:absolute;left:50%;top:calc(50% + 45px);transform:translate(-50%);display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 14px;border:1px solid #edf4f733;border-radius:4px;background:#edf4f722;color:#edf4f8;font-size:10px;text-shadow:0 1px 6px #202c36}.bench-interaction svg{width:18px;height:18px;stroke-width:1.2}.bench-interaction{min-width:136px;justify-content:center;background:#f8fafbdb;color:#56636d;border-color:#b8c5ce;text-shadow:none}.bench-interaction kbd{border-color:#aeb9c0}.bench-interaction:disabled{cursor:default;opacity:.65}.bench-interaction kbd{font:inherit;padding:2px 5px;border:1px solid #edf4f766;border-radius:2px}#app[data-input=touch] .bench-interaction kbd{display:none}.bench-interaction.is-seated{top:auto;bottom:max(28px,env(safe-area-inset-bottom));min-width:116px;background:transparent;border-color:transparent;font-size:9px;opacity:.65;transition:opacity .18s}.bench-interaction.is-seated svg{display:none}.bench-interaction.is-seated:is(:hover,:focus-visible){opacity:1}#app[data-input=touch] .bench-interaction.is-seated{bottom:max(210px,calc(env(safe-area-inset-bottom) + 190px))}@media(max-height:540px)and (orientation:landscape){#app[data-input=touch] .bench-interaction.is-seated{bottom:max(24px,env(safe-area-inset-bottom))}}#app[data-mode=LIMBO].lobby-hud-hidden .inspection-actions{visibility:hidden;pointer-events:none}#app[data-mode=LIMBO].lobby-hud-hidden .now-playing{display:none}#app[data-mode=LIMBO].lobby-hud-hidden .ui>:not(.intro){visibility:hidden!important;pointer-events:none!important}#app[data-mode=LIMBO].lobby-hud-hidden .ui>:not(.intro) *{visibility:hidden!important;pointer-events:none!important}#app[data-mode=LIMBO].lobby-hud-hidden .touch-controls :is(.touch-button,.touch-voice-note,.touch-stick-thumb){opacity:0}#app[data-mode=LIMBO].lobby-hud-hidden .touch-controls .touch-button{pointer-events:none}#app[data-mode=LIMBO].lobby-hud-hidden .touch-stick{border-color:transparent;background:transparent}#app[data-mode=LIMBO].lobby-hud-hidden .ui[data-state=CHATTING]>.chat,#app[data-mode=LIMBO].lobby-hud-hidden .ui[data-state=CHATTING]>.chat *{visibility:visible!important;pointer-events:auto!important}.top-controls{position:absolute;top:calc(var(--edge) - 7px);right:calc(var(--edge) - 10px);display:flex;align-items:center;gap:14px;z-index:10}.icon-button{width:40px;height:40px;display:grid;place-items:center;opacity:.65;transition:opacity .25s}.icon-button:hover,.icon-button:focus-visible{opacity:1}.icon-button svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.connection-indicator{width:110px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;font-size:9px;line-height:1.2;color:var(--muted);letter-spacing:0}.connection-indicator>span:first-child{display:flex;align-items:center;gap:6px}.connection-indicator>span:first-child:before{content:"";width:3px;height:3px;border-radius:50%;background:#a5adb3}.connection-indicator[data-connection=connected]>span:first-child:before{background:#829c8a}.exhibition-mark{position:absolute;left:var(--edge);top:var(--edge);display:flex;align-items:center;gap:20px;opacity:0;transition:opacity 1.8s}.exhibition-mark span:first-child{font-size:16px;font-weight:400;letter-spacing:.2em}.exhibition-mark span:last-child{font-size:8px;letter-spacing:.18em;color:var(--muted);padding-left:20px;border-left:1px solid #cdd4d8}.intro{position:absolute;inset:0;overflow:hidden;background:#f7f8f7;color:#262b2d;opacity:1;transition:opacity 2s ease,visibility 2s}.intro-composition{position:absolute;inset:0 var(--edge);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:64px;text-align:center}.intro h1{margin:0;font-size:116px;font-weight:400;letter-spacing:0;line-height:.95;color:#262b2d}.intro-subtitle{margin:18px 0 0;font-size:10px;font-weight:400;letter-spacing:0;color:#737b7d}.intro-entry{display:grid;place-items:start center;width:min(100%,320px);min-height:112px}.intro-loading{width:100%;display:grid;gap:12px;padding-bottom:18px;color:#6b7b82;font-size:10px;letter-spacing:0}.intro-loading[hidden]{display:none}.intro-progress{width:100%;height:2px;overflow:hidden;background:#c7ced344}.intro-progress i{display:block;width:35%;height:100%;background:#71838c;animation:intro-progress 1.6s ease-in-out infinite}@keyframes intro-progress{0%{transform:translate(-100%)}to{transform:translate(390%)}}@media(prefers-reduced-motion:reduce){.intro-progress i{animation:none;width:100%;opacity:.45}}.enter-button{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:48px;min-width:204px;margin:16px 0 0;padding:12px 0;border-bottom:1px solid #949e9c;font-size:11px;letter-spacing:0;transition:color .25s,border-color .25s}.enter-button:disabled{opacity:.45}.enter-button:hover:not(:disabled){color:#000;border-color:#262b2d}.enter-icon{display:grid;place-items:center;transition:transform .25s}.enter-icon svg{width:18px;height:18px;stroke-width:1.2}.enter-button:hover:not(:disabled) .enter-icon{transform:translate(2px,-2px)}.intro.is-leaving{opacity:0;visibility:hidden}.intro-name-form{width:100%;margin:0;text-align:left;animation:intro-name-in .35s ease both}.intro-name-form label{display:block;margin-bottom:10px;font-size:9px;letter-spacing:0;color:var(--muted)}.intro-region-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-bottom:16px;border-bottom:1px solid rgba(130,148,157,.25)}.intro-name-form .intro-region-row label{flex:0 0 auto;margin:0}.intro-region-row select{min-width:0;max-width:100%;height:44px;padding:6px 0 6px 8px;color:#526875;background:transparent;border:0;border-radius:0;font:inherit;font-size:11px;cursor:pointer}.intro-region-row select:focus-visible{outline:1px solid #728590;outline-offset:2px}#app[data-input=touch] .intro-region-row select{font-size:16px}.intro-name-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-bottom:1px solid #aab2b0;transition:border-color .2s}.intro-name-row:focus-within{border-color:#303637}.intro-name-row input{width:100%;min-width:0;height:44px;border:0;border-radius:0;background:transparent;color:#262b2d;padding:8px 0;font-size:16px;-webkit-user-select:text;user-select:text}.intro-name-row input::placeholder{color:#939b99}.intro-name-row input:focus-visible{outline:none}.intro-name-submit{min-width:82px;height:44px;padding:8px 10px;font-size:9px;letter-spacing:0}.intro-name-message{min-height:32px;margin:10px 0 0;line-height:1.5;font-size:10px;color:#778892}.ui[data-state=INTRO] .connection-indicator{visibility:hidden}.device-note{position:absolute;bottom:8%;left:24px;right:24px;text-align:center;font-size:10px;color:var(--muted)}@keyframes intro-name-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1800px){.intro h1{font-size:140px}}.crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:3px;border-radius:50%;background:#75838c;opacity:0;transition:opacity 1s}.inspect-button,.inspection-close{width:146px;height:44px;display:flex;justify-content:center;align-items:center;gap:10px;font-size:10px;letter-spacing:0;opacity:1;color:#56636d}.inspect-button{position:absolute;left:50%;transform:translate(-50%);top:calc(50% + 24px);background:#f8fafbdb;border-radius:3px}.inspect-button kbd,.inspection-close kbd{width:22px;height:22px;display:grid;place-items:center;flex:0 0 22px;border:1px solid #aeb9c0;border-radius:3px;font-size:11px;font-weight:500;letter-spacing:0}.inspection-close{position:absolute;right:var(--edge);top:calc(var(--edge) + 48px);z-index:10;background:#f8fafbdb;border-radius:3px}.ui[data-state=INSPECTING] .ui-notice{top:calc(var(--edge) + 108px)}.ui[data-state=INSPECTING] :is(.exhibition-mark,.exhibit-caption){opacity:1}.ui[data-state=INSPECTING] .controls-overlay{opacity:1;visibility:visible}.ui[data-state=INSPECTING] .control-row{display:none}.ui[data-state=INSPECTING] .control-row.menu-row{display:flex}.controls-overlay{position:absolute;left:var(--edge);bottom:var(--edge);opacity:0;visibility:hidden;transition:opacity 1.5s,visibility 1.5s;font-size:11px;font-weight:400}.control-row{display:flex;align-items:center;min-height:25px;gap:16px}.control-row.menu-row{padding:0;min-height:32px;text-align:left;font:inherit}.menu-label{display:flex;align-items:center;gap:6px}.menu-label svg{width:13px;height:13px;stroke-width:1.2}.control-row>span:nth-child(2){color:#7d8992}kbd,.key-label{font:inherit;font-size:9px;letter-spacing:.04em}.key-group{display:inline-flex;width:70px;justify-content:space-between}.wide-key{width:70px;display:inline-block;font-size:9px;letter-spacing:.1em}.escape-row{margin-top:5px;opacity:.58;font-size:10px}.voice-status{margin:19px 0 0;font-size:9px;color:var(--muted);letter-spacing:.015em;max-width:310px;line-height:1.5}.mic-dot{width:4px;height:4px;border-radius:50%;background:#a6b2b9;margin-left:-8px}[data-voice=speaking] .mic-dot{background:#6f9c89}[data-voice=speaking] .voice-status{color:#648e7d}[data-voice=requesting] .mic-dot{background:#bba982}.viewing-note{font-size:9px;letter-spacing:.1em}.pause-prompt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:max-content;max-width:90vw}.pause-prompt p{margin:0 0 23px;font-size:9px;letter-spacing:.23em;color:#828f98}.resume-button{padding:12px;font-size:10px;letter-spacing:.15em}.resume-button span{margin-left:15px}.pause-hint{display:block;margin-top:18px;font-size:10px;color:#909ca5}.ui-notice{position:absolute;top:calc(var(--edge) + 51px);right:var(--edge);max-width:min(310px,80vw);font-size:11px;line-height:1.7;text-align:right;opacity:0;transition:opacity .5s}.ui-notice.is-visible{opacity:1}.exhibit-caption{position:absolute;right:var(--edge);bottom:var(--edge);display:flex;flex-direction:column;gap:9px;text-align:right;opacity:0;transition:opacity 1.5s}.exhibit-caption span:first-child{font-size:9px;letter-spacing:.15em}.exhibit-caption span:last-child{font-size:7px;letter-spacing:.16em;color:var(--muted)}.chat{position:absolute;left:var(--edge);bottom:calc(var(--edge) + 165px);width:min(330px,calc(100vw - 2 * var(--edge)));opacity:0;transition:opacity .5s}.chat-history{display:flex;flex-direction:column;gap:9px;max-height:min(170px,25vh);overflow-y:auto;overflow-wrap:anywhere;opacity:0;transition:opacity 1.2s;padding:9px 0;-webkit-mask-image:linear-gradient(to bottom,transparent,black 10px);mask-image:linear-gradient(to bottom,transparent,black 10px)}.show-history .chat-history{opacity:1}.chat.is-open .chat-history{pointer-events:auto;touch-action:pan-y;overscroll-behavior:contain;-webkit-user-select:text;user-select:text;max-height:min(320px,40dvh);-webkit-mask-image:none;mask-image:none}.chat-message{flex-shrink:0}.chat-history:empty{display:none}.chat-message{margin:0;font-size:11px;line-height:1.6;color:#6c7a84}.chat-sender{font-size:9px;letter-spacing:.06em;color:#8c99a2;margin-right:5px}.chat-form{display:flex;align-items:center;gap:12px;padding:13px 12px;background:#ffffffab;border-bottom:1px solid #d4dde2;border-radius:3px 3px 0 0;pointer-events:auto}.chat-form label{font-size:8px;letter-spacing:.08em;color:#8c99a2}.chat-form input{width:100%;min-width:0;border:0;padding:0;background:none;outline:none;color:#566772;font-size:11px;-webkit-user-select:text;user-select:text}.chat-form input::placeholder{color:#9aa6ad}.chat-input-hint{color:#929fa8;font-size:13px}.chat-note{margin:10px 0 0;font-size:9px;color:#95a1a9}.chat-note span{margin:0 5px}.chat.has-invitations{opacity:1}.chat-invitations{padding:14px;margin-bottom:10px;background:#f8fbfdf2;border:1px solid #c4cfd5;border-radius:4px;pointer-events:auto;color:#34424c}.chat-invitations p{margin:0 0 5px;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.chat-invitations>span{display:block;font-size:10px;color:#657986}.chat-invitation-key{float:right;margin-left:12px;padding:2px 4px;border:1px solid #c4cfd5;border-radius:2px;font:inherit;font-size:9px;color:#657986}.chat.is-open .chat-invitation-key,#app[data-input=touch] .chat-invitation-key{display:none}.chat-invitations>div{display:flex;gap:8px;margin-top:12px}.chat-invitations button{min-height:38px;padding:8px 12px;border:1px solid #c4cfd5;background:#fff;border-radius:3px;color:#34424c;font:inherit;font-size:10px;cursor:pointer}.chat-invitations button:disabled{opacity:.55;cursor:wait}.chat-invitations .chat-invitation-error{margin-top:10px;font-size:11px}.chat-command{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 12px;margin:0;padding:10px 12px;background:#f8fbfdf2;color:#516977;font-size:10px}.chat-command code{font:inherit;color:#34424c}.chat-command[hidden],.chat-invitations[hidden]{display:none}.ui[data-state=EXPLORING] .crosshair{opacity:.55}.ui:is([data-state=EXPLORING],[data-state=CHATTING],[data-state=PAUSED]) .controls-overlay{opacity:1;visibility:visible}.ui:is([data-state=EXPLORING],[data-state=CHATTING],[data-state=PAUSED]) :is(.exhibition-mark,.exhibit-caption,.chat){opacity:1}.ui[data-state=CHATTING] .controls-overlay{opacity:.42}.ui[data-state=ENTERING] .top-controls{opacity:.4;transition:opacity 1s}.graphics-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}.graphics-fallback h1{font-size:56px;font-weight:200;letter-spacing:.3em;padding-left:.3em}.graphics-fallback p{font-size:13px;line-height:1.7;margin:5px}@media(max-width:600px){.exhibition-mark span:last-child,.exhibit-caption{display:none}.top-controls{gap:5px}.intro h1{font-size:84px}.intro-subtitle{font-size:9px}.controls-overlay{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.1s!important}.intro-name-form{animation:none}}@media(max-height:620px){.intro-composition{gap:32px}.intro h1{font-size:52px}.intro-subtitle{margin-top:8px;font-size:8px}.intro-entry{min-height:78px}.enter-button{margin-top:0;min-height:44px}.intro-name-form label{margin-bottom:4px}.intro-name-row input,.intro-name-submit{height:36px}.intro-name-message{min-height:18px;margin-top:4px;font-size:9px}}@media(hover:none)and (pointer:coarse){.inspect-button kbd,.inspection-close kbd{display:none}}.chat{bottom:calc(var(--edge) + var(--controls-height, 280px) + 18px);z-index:20}.ui[data-state=CHATTING] .controls-overlay{visibility:hidden;opacity:0}.connection-indicator>span:first-child:before{width:7px;height:7px}.connection-indicator[data-connection=connected]>span:first-child:before{background:#20ed83;box-shadow:0 0 0 3px #20ed8320,0 0 10px #20ed8355}.now-playing{position:fixed;right:var(--edge);bottom:var(--edge);z-index:25;max-width:min(240px,40vw);text-align:right;pointer-events:none;color:#e5ecef;text-shadow:0 1px 9px #16212a;opacity:0;visibility:hidden;transition:opacity 1.5s}.ui:is([data-state=EXPLORING],[data-state=PAUSED],[data-state=CHATTING],[data-state=INSPECTING]) .now-playing{opacity:1;visibility:visible}.now-playing span{display:block;font-size:10px;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-playing .music-artist{opacity:.65;font-size:9px}@media(max-height:650px){.controls-overlay .control-row:not(.menu-row){display:none}.voice-status{margin-top:6px}}.ui:is([data-state=EXPLORING],[data-state=PAUSED],[data-state=CHATTING]) .controls-overlay{color:#edf3f7;text-shadow:0 1px 6px #12202c}.ui:is([data-state=EXPLORING],[data-state=PAUSED],[data-state=CHATTING]) :is(.control-row>span:nth-child(2),.voice-status),#app[data-mode=SHOOTER] .connection-indicator,.ui[data-state=EXPLORING] .connection-indicator{color:#d4dfe7}.ui[data-state=INSPECTING] .chat{visibility:hidden}.chat-history{background:#17232d77;border-radius:4px;padding:12px}.chat-message{color:#edf4f8}.chat-sender{color:#c1d2dd}
