.hide-exit-button{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 76px);right:calc(env(safe-area-inset-right) + 20px);width:56px;height:56px;border-radius:50%;border:2px solid #2a4a62;background:transparent;display:flex;align-items:center;justify-content:center;touch-action:none;pointer-events:auto;z-index:60;cursor:pointer;transition:background-color .1s ease,border-color .1s ease,opacity .1s ease;-webkit-tap-highlight-color:transparent;user-select:none;outline:none;padding:0;color:#e8a838}.hide-exit-button[data-state=armed]{border-color:#e8a838}.hide-exit-button[data-state=hiding],.hide-exit-button[data-state=peeking]{background-color:#e8a838;border-color:#c98d28;color:#0d1f2d}.hide-exit-button[data-disabled=true]{opacity:.5;pointer-events:none;cursor:default}.hide-exit-button:focus-visible{outline:2px solid #e8a838;outline-offset:2px}.joystick-zone{position:fixed;inset:0;z-index:50;touch-action:none;pointer-events:auto;background:transparent}.on-floor-drop-button{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 16px);right:calc(env(safe-area-inset-right) + 24px);width:48px;height:48px;border-radius:50%;border:2px solid #2a4a62;background:transparent;display:flex;align-items:center;justify-content:center;touch-action:none;pointer-events:auto;z-index:60;cursor:pointer;transition:background-color .1s ease,border-color .1s ease;-webkit-tap-highlight-color:transparent;user-select:none;outline:none;padding:0;color:#e8a838}.on-floor-drop-button:active{background-color:#e8a83826}.on-floor-drop-button:focus-visible{outline:2px solid #e8a838;outline-offset:2px}.torch-button{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 16px);right:calc(env(safe-area-inset-right) + 16px);width:64px;height:64px;border-radius:50%;border:2px solid #2a4a62;background:transparent;display:flex;align-items:center;justify-content:center;touch-action:none;pointer-events:auto;z-index:60;cursor:pointer;transition:background-color .1s ease,border-color .1s ease;-webkit-tap-highlight-color:transparent;user-select:none;outline:none;padding:0;color:#e8a838}.torch-button[data-state=on]{background-color:#e8a838;border-color:#c98d28;color:#0d1f2d}.torch-button:active{background-color:#e8a83826}.torch-button[data-state=on]:active{background-color:#c98d28}.torch-button:focus-visible{outline:2px solid #e8a838;outline-offset:2px}.torch-button__icon{width:32px;height:32px;display:block;stroke:currentColor;stroke-width:2;fill:none}.torch-button[data-state=on] .torch-button__icon{fill:currentColor}.audio-unlock-splash{position:fixed;inset:0;z-index:150;background-color:#0d1f2d;color:#f0ead8;display:flex;align-items:center;justify-content:center;font-family:ui-sans-serif,system-ui,sans-serif;cursor:pointer;transition:opacity .3s ease-out;opacity:1;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.audio-unlock-splash--fading{opacity:0;pointer-events:none}.audio-unlock-splash__column{display:flex;flex-direction:column;align-items:center;gap:16px}.audio-unlock-splash__vignette{width:200px;height:200px;object-fit:contain;opacity:.9}.audio-unlock-splash__wordmark{font-size:36px;font-weight:600;line-height:1.1;color:#f0ead8;letter-spacing:.02em;margin:0}.audio-unlock-splash__body{font-size:16px;font-weight:400;color:#8aa4b8;line-height:1.5;margin:0}.gate-screen{position:fixed;inset:0;background-color:#0d1f2d;color:#f0ead8;display:flex;align-items:flex-start;justify-content:center;padding-top:max(64px,env(safe-area-inset-top));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);font-family:ui-sans-serif,system-ui,sans-serif;z-index:150}.gate-screen__column{display:flex;flex-direction:column;align-items:center;width:100%;max-width:360px;gap:16px}.gate-screen__vignette{width:200px;height:200px;object-fit:contain;opacity:.9;margin-bottom:32px}.gate-screen__wordmark{font-size:36px;font-weight:600;line-height:1.1;color:#f0ead8;letter-spacing:.02em;margin:0 0 24px}.gate-screen__form{width:100%;display:flex;flex-direction:column;gap:16px}.gate-screen__input{width:100%;height:44px;padding:8px 12px;background-color:#0a1a28;border:1px solid #2a4a62;border-radius:8px;color:#f0ead8;font-size:16px;font-family:inherit;transition:border-color .15s ease;outline:none}.gate-screen__input:focus{border-color:#e8a83899}.gate-screen__input.shake{animation:gate-shake .4s cubic-bezier(.36,.07,.19,.97);border-color:#c0392b}.gate-screen__button{width:100%;min-height:44px;background-color:#e8a838;color:#0d1f2d;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:background-color .1s ease}.gate-screen__button:hover,.gate-screen__button:active{background-color:#c98d28}.gate-screen__button:disabled{opacity:.6;cursor:not-allowed}.gate-screen__error{margin:0;font-size:16px;color:#e05c4a;line-height:1.5}@keyframes gate-shake{0%{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}to{transform:translate(0)}}.boot-splash{position:fixed;inset:0;background-color:#0d1f2d;color:#f0ead8;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:32px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);transition:opacity .3s ease-in;z-index:150;font-family:ui-sans-serif,system-ui,sans-serif}.boot-splash--fading{opacity:0;pointer-events:none}.boot-splash__vignette{width:200px;height:200px;object-fit:contain;opacity:.9}.boot-splash__wordmark{font-size:36px;font-weight:600;line-height:1.1;margin:0}.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}.bubble-layer{position:fixed;inset:0;z-index:75;pointer-events:none}.bubble{position:absolute;top:0;left:0;min-width:96px;max-width:200px;padding:8px 12px;background:#1a3244;border:2px solid #2a4a62;border-radius:12px;color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;font-weight:600;line-height:1.4;text-align:center;pointer-events:none;user-select:none;opacity:0;transform:translate3d(var(--bx, 0),var(--by, 0),0);animation:bubble-wobble .6s cubic-bezier(.25,.46,.45,.94) forwards,bubble-fade-in .15s ease-out forwards}.bubble--critical,.bubble--shout{border-color:#e8a838}.bubble--commentary{border-color:#2a4a62}.bubble--foxguard{border-color:#e05c4a}.bubble--exiting{animation:bubble-fade-out .3s ease-out forwards}.bubble--preempted{animation:bubble-fade-out .2s ease-in forwards}.bubble:after{content:"";position:absolute;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent}.bubble--tail-down:after{bottom:-8px;left:50%;transform:translate(-50%);border-top:8px solid #1a3244}.bubble--tail-up:after{top:-8px;left:50%;transform:translate(-50%);border-bottom:8px solid #1a3244}@keyframes bubble-wobble{0%{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(0) scale(1)}15%{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(-1.2deg) scale(1.02)}30%{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(1deg) scale(1.01)}45%{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(-.6deg) scale(1)}60%{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(.4deg) scale(1)}80%{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(-.2deg) scale(1)}to{transform:translate3d(var(--bx, 0),var(--by, 0),0) rotate(0) scale(1)}}@keyframes bubble-fade-in{to{opacity:1}}@keyframes bubble-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.bubble{animation:bubble-fade-in .15s ease-out forwards}.bubble--exiting,.bubble--preempted{animation:bubble-fade-out .15s ease-out forwards}}.fear-feedback-vignette{position:fixed;inset:0;pointer-events:none;z-index:60;background:radial-gradient(ellipse at center,transparent 40%,rgba(15,8,2,var(--vignette-opacity, 0)) 100%);mix-blend-mode:multiply}@media(prefers-reduced-motion:reduce){.fear-feedback-vignette{background:transparent}}.version-overlay{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 8px);right:calc(env(safe-area-inset-right) + 8px);font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;font-weight:600;line-height:1.4;color:#e8a838;opacity:.4;pointer-events:none;user-select:none;z-index:100}.dev-overlay{position:fixed;top:calc(env(safe-area-inset-top) + 8px);right:calc(env(safe-area-inset-right) + 8px);font-family:ui-monospace,monospace;font-size:14px;font-weight:600;line-height:1.4;color:#f0ead8;background-color:#0d1f2db3;border-radius:8px;padding:4px 8px;opacity:.5;pointer-events:none;user-select:none;z-index:100;display:flex;flex-direction:column;gap:4px}.update-toast{position:fixed;top:calc(env(safe-area-inset-top) + 16px);left:50%;transform:translate(-50%) translateY(0);max-width:340px;min-width:280px;padding:16px 24px;background-color:#1a3244;border:1px solid #2a4a62;border-radius:8px;box-shadow:0 4px 16px #0006;color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;font-weight:600;line-height:1.4;display:flex;flex-direction:column;gap:4px;cursor:pointer;z-index:200;animation:update-toast-slide-in .25s ease-out}.update-toast__title{color:#f0ead8}.update-toast__cta{color:#e8a838}@keyframes update-toast-slide-in{0%{transform:translate(-50%) translateY(-100%)}to{transform:translate(-50%) translateY(0)}}.install-hint{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 16px);transform:translate(-50%) translateY(0);max-width:340px;min-width:280px;padding:16px 24px;background-color:#1a3244;border:1px solid #2a4a62;border-radius:8px;box-shadow:0 -4px 16px #0006;color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px;display:flex;flex-direction:column;gap:12px;z-index:150;animation:install-hint-slide-up .25s ease-out}.install-hint__copy{margin:0;line-height:1.5;color:#f0ead8}.install-hint__dismiss{align-self:flex-end;min-height:44px;padding:8px 16px;background:transparent;border:1px solid #2a4a62;border-radius:8px;color:#8aa4b8;font-size:14px;font-weight:600;cursor:pointer}.install-hint__dismiss:hover{background-color:#ffffff0a}@keyframes install-hint-slide-up{0%{transform:translate(-50%) translateY(100%)}to{transform:translate(-50%) translateY(0)}}.dev-overlay__zone-list{list-style:none;margin:0;padding:0;max-height:160px;overflow-y:auto;font-size:12px;color:#f0ead8}.dev-overlay__zone-list li{padding:0;line-height:1.4}.dev-overlay__lights-section{display:flex;flex-direction:column;gap:4px;font-size:12px}.dev-overlay__light-row{display:flex;align-items:center;gap:8px}.dev-overlay__light-ring{width:12px;height:12px;border-radius:50%;border:2px solid transparent;display:inline-block}.dev-overlay__light-ring[data-state=armed]{border-color:#5cb874}.dev-overlay__light-ring[data-state=staying]{border-color:#e8a838}.dev-overlay__light-ring[data-state=fading]{border-color:#e05c4a}.dev-overlay__char-picker{display:flex;gap:4px;flex-wrap:wrap;font-size:12px;margin-top:4px;pointer-events:auto}.dev-overlay__char-chip{padding:4px 8px;border-radius:4px;background-color:#1a3244;color:#f0ead8;border:1px solid #2a4a62;cursor:pointer;font-family:ui-monospace,monospace;font-size:12px}.dev-overlay__char-chip[data-active=true]{background-color:#e8a838;color:#0d1f2d;border-color:#c98d28}.dev-overlay__round-readout{font-size:12px;color:#f0ead8;margin-top:4px}.dev-overlay__audio-row,.dev-overlay__bubble-row,.dev-overlay__fear-bpm-row{font-size:12px;color:#f0ead8;margin-top:4px;font-family:ui-monospace,monospace}.round-timer,.headstart-countdown{position:fixed;top:calc(env(safe-area-inset-top) + 16px);left:50%;transform:translate(-50%);padding:8px 16px;background:#0d1f2db3;border:1px solid #2a4a62;border-radius:8px;color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;font-size:36px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums;pointer-events:none;z-index:80;text-align:center;user-select:none}.headstart-countdown__digit{display:block;font-size:36px;font-weight:600;line-height:1.1;color:#f0ead8}.headstart-countdown__label{display:block;font-size:12px;font-weight:400;color:#f0ead8;margin-top:4px}.headstart-countdown[data-final=true] .headstart-countdown__digit{color:#e8a838}.stamina-bar{position:fixed;top:calc(env(safe-area-inset-top) + 16px);left:calc(env(safe-area-inset-left) + 24px);padding:8px;background:#0d1f2db3;border:1px solid #2a4a62;border-radius:8px;pointer-events:none;z-index:80;font-family:ui-sans-serif,system-ui,sans-serif;user-select:none}.stamina-bar__track{width:144px;height:8px;background:#0a1a28;border-radius:4px;overflow:hidden}.stamina-bar__fill{height:100%;background-color:hsl(calc(38 - (1 - var(--fill-pct, 1)) * 38),calc(75% - (1 - var(--fill-pct, 1)) * 5%),calc(56% - (1 - var(--fill-pct, 1)) * 16%));transition:width .1s linear;border-radius:4px}.stamina-bar__tag{display:block;font-size:12px;font-weight:600;line-height:1.4;color:#8aa4b8;margin-top:4px}.team-switch-overlay{position:fixed;top:calc(env(safe-area-inset-top) + 96px);left:50%;transform:translate(-50%);max-width:360px;padding:16px 24px;background:#0d1f2d80;border:1px solid #2a4a62;border-radius:12px;backdrop-filter:blur(8px);color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px;font-weight:400;line-height:1.5;text-align:center;pointer-events:none;z-index:160;opacity:0;transition:opacity .3s ease-out}.team-switch-overlay[data-visible=true]{opacity:1}.team-switch-overlay .accent{color:#e8a838;font-weight:600}.preview-banner{position:fixed;top:calc(env(safe-area-inset-top) + 8px);right:calc(env(safe-area-inset-right) + 8px);z-index:100;min-width:200px;max-width:320px;padding:4px 8px;background:#0d1f2db3;border:1px solid #2a4a62;border-radius:8px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px;font-weight:600;line-height:1.4;color:#f0ead8;pointer-events:none}.preview-banner__word{color:#e8a838}.preview-banner__rest{color:#f0ead8}.character-select{position:fixed;inset:0;background-color:#0d1f2d;color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;z-index:150;overflow-y:auto;padding-top:calc(env(safe-area-inset-top) + 24px);padding-right:calc(env(safe-area-inset-right) + 16px);padding-bottom:calc(env(safe-area-inset-bottom) + 16px);padding-left:calc(env(safe-area-inset-left) + 16px)}.character-select__title{font-size:36px;font-weight:600;line-height:1.1;text-align:center;color:#f0ead8;margin:0 0 24px}.character-select__continue{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;padding:8px;border:1px solid #2a4a62;border-radius:8px;background-color:#1a3244}.character-select__continue-cta{display:block;width:100%;min-height:56px;background-color:#e8a838;color:#0d1f2d;font-size:16px;font-weight:600;font-family:inherit;border:none;border-radius:8px;cursor:pointer;padding:8px 16px;transition:background-color .1s ease}.character-select__continue-cta:hover,.character-select__continue-cta:active{background-color:#c98d28}.character-select__continue-dismiss{display:block;width:100%;min-height:44px;background-color:transparent;color:#f0ead8;font-size:14px;font-weight:400;font-family:inherit;border:none;cursor:pointer;padding:8px 16px;border-radius:8px;transition:background-color .1s ease}.character-select__continue-dismiss:hover,.character-select__continue-dismiss:active{background-color:#ffffff0a}.character-select__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.character-card{display:flex;flex-direction:column;min-width:0;align-items:center;justify-content:flex-start;gap:4px;padding:8px;background-color:#1a3244;border:1px solid #2a4a62;border-radius:8px;aspect-ratio:1 / 1.35;cursor:pointer;font-family:inherit;color:inherit;touch-action:manipulation;transition:transform .1s ease-out,border-color .15s ease}.character-card:focus-visible{outline:none;border-color:#e8a838}.character-card:active{transform:scale(.97)}.character-card__portrait{width:80%;aspect-ratio:1 / 1;object-fit:cover;border-radius:4px;background-color:#0a1a28}.character-card__name{width:100%;text-align:center;font-size:16px;font-weight:600;color:#f0ead8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.character-card__quirk{width:100%;text-align:center;font-size:12px;font-weight:400;line-height:1.4;color:#8aa4b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-detail{position:fixed;inset:0;background-color:#0d1f2d;color:#f0ead8;font-family:ui-sans-serif,system-ui,sans-serif;z-index:160;display:flex;flex-direction:column;align-items:center;padding-top:calc(env(safe-area-inset-top) + 16px);padding-right:calc(env(safe-area-inset-right) + 16px);padding-bottom:calc(env(safe-area-inset-bottom) + 16px);padding-left:calc(env(safe-area-inset-left) + 16px);overflow-y:auto}.character-detail__back{position:absolute;top:calc(env(safe-area-inset-top) + 16px);left:calc(env(safe-area-inset-left) + 16px);width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:#f0ead8;font-size:28px;line-height:1;font-family:inherit;cursor:pointer;border-radius:8px;transition:background-color .1s ease;touch-action:manipulation}.character-detail__back:hover,.character-detail__back:active{background-color:#ffffff0a}.character-detail__portrait{width:min(40vh,240px);height:min(40vh,240px);max-width:280px;max-height:280px;object-fit:cover;border-radius:8px;background-color:#0a1a28;margin-top:16px}.character-detail__name{font-size:36px;font-weight:600;line-height:1.1;text-align:center;color:#f0ead8;margin:16px 0 8px}.character-detail__stats{display:flex;flex-direction:column;gap:8px;margin:16px 0;width:100%;max-width:320px}.character-detail__stat-row{display:grid;grid-template-columns:56px 1fr 72px;align-items:center;gap:8px}.character-detail__stat-label{font-size:12px;font-weight:400;color:#8aa4b8;text-align:left}.character-detail__stat-desc{font-size:14px;font-weight:600;color:#f0ead8;text-align:right}.character-detail__stat-bars{display:flex;flex-direction:row;gap:2px;width:72px;height:8px;align-items:center}.character-detail__stat-bar{flex:1 1 16.5px;height:100%;background-color:#0a1a28;border-radius:2px}.character-detail__stat-bar--filled{background-color:#e8a838}.character-detail__quirk,.character-detail__bio{width:100%;max-width:320px;font-size:16px;line-height:1.5;text-align:left;white-space:pre-wrap}.character-detail__quirk{color:#f0ead8;margin:16px 0 8px}.character-detail__bio{color:#8aa4b8;margin:0 0 24px}.character-detail__cta{display:block;width:calc(100% - 32px);max-width:360px;min-height:56px;margin-top:auto;background-color:#e8a838;color:#0d1f2d;font-size:16px;font-weight:600;font-family:inherit;border:none;border-radius:8px;cursor:pointer;padding:16px 24px;transition:background-color .1s ease;touch-action:manipulation}.character-detail__cta:hover,.character-detail__cta:active{background-color:#c98d28}.round-setup-overlay{position:fixed;inset:0;background:#121218eb;display:flex;flex-direction:column;align-items:stretch;padding:env(safe-area-inset-top,16px) env(safe-area-inset-right,16px) env(safe-area-inset-bottom,16px) env(safe-area-inset-left,16px);touch-action:none;z-index:210}.round-setup-columns{display:flex;flex-direction:row;flex:1;gap:8px}.round-setup-column{flex:1;background:#202028cc;border-radius:8px;padding:8px;overflow-y:auto}.round-setup-column h3{color:#eadfa2;text-align:center;margin:0 0 8px;font-size:14px;text-transform:uppercase}.round-setup-chip{background:#32322c;color:#eadfa2;border-radius:6px;padding:10px 8px;margin-bottom:6px;text-align:center;user-select:none;touch-action:none;cursor:grab}.round-setup-chip[data-dragging=true]{opacity:.5;cursor:grabbing}.round-setup-confirm{margin-top:12px;padding:14px;background:#eadfa2;color:#18181c;border:none;border-radius:8px;font-weight:700;font-size:16px}.round-setup-confirm:disabled{opacity:.4}
