.survivor{max-width:1040px;padding:24px 24px 100px;margin:auto;color:#191c24}.survivor header{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#748092}.survivor header a{color:inherit;text-decoration:none}.survivor-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px}.survivor-heading>div>span{font-size:11px;letter-spacing:3px;color:#6b7481}.survivor h1{font-size:30px;font-weight:900;margin:7px 0}.survivor-heading button{padding:10px 15px;background:#fff;border:1px solid #dfe2e8;border-radius:7px;font-size:12px;white-space:nowrap}.survivor-intro{font-size:14px;color:#687385;margin:10px 0 20px}.survivor-arena{position:relative;overflow:hidden;border-radius:12px;background:#0c1220;box-shadow:0 12px 40px #0f172a18}.survivor-arena canvas{width:100%;height:clamp(390px,65vh,650px);display:block;touch-action:none;outline:none}.survivor-hud{position:absolute;z-index:2;top:0;left:0;right:0;display:flex;justify-content:space-between;pointer-events:none;padding:16px 20px;background:linear-gradient(#080e20ec,#080e2080,transparent);color:white}.survivor-hud>div{display:flex;flex-direction:column;gap:4px}.survivor-hud small{color:#a6b4cc;font-size:10px}.survivor-hud strong{font-size:17px;letter-spacing:1px}.survivor-bars{position:absolute;z-index:2;bottom:0;left:0;right:0;pointer-events:none}.survivor-bars>div{height:5px;background:#15223b}.survivor-bars span{display:block;height:100%;transition:width .1s}.survivor-health span{background:#94fbaa;width:100%}.survivor-xp span{background:#84baff;width:0}.survivor-overlay,.survivor-upgrade,.survivor-pause{position:absolute;z-index:3;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:#080e20ed;color:#fff}.survivor [hidden]{display:none!important}.survivor-kicker,.survivor-upgrade>span{color:#97e2ff;font-size:11px;letter-spacing:4px}.survivor-overlay h2{font-size:clamp(26px,4vw,44px);font-weight:900;margin:22px 0}.survivor-overlay p{font-size:14px;color:#aebdd4;line-height:1.9;max-width:550px}.survivor-instructions{font-size:12px;line-height:1.8;color:#d7e0ee;margin:10px 0 18px}.survivor-overlay button,.survivor-pause button{border:0;border-radius:7px;background:#abff9c;color:#0b2020;font-weight:800;padding:15px 35px;font-size:14px}.survivor-best{font-size:11px;color:#879ab5;margin-top:22px}.survivor-upgrade h2,.survivor-pause h2{font-size:28px;font-weight:800;margin:15px 0}.survivor-upgrade>p,.survivor-pause p{color:#adbbcf;font-size:13px}.survivor-upgrade [data-choices]{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:700px;margin-top:22px}.survivor-upgrade button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:14px;padding:22px 18px;border:1px solid #37516c;border-radius:12px;color:white;background:linear-gradient(140deg,#1c354d,#152139);min-height:170px}.survivor-upgrade button:hover{border-color:#abff9c;background:#244052}.survivor-upgrade button>span{font-size:30px;color:#abff9c}.survivor-upgrade button strong{font-size:15px}.survivor-upgrade button small{color:#b3c4d7;font-size:12px;line-height:1.7}.survivor-pause button+button{background:transparent;color:#aebdd4;margin-top:15px}.survivor-loadout{padding:14px 0;display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#697386}.survivor-loadout span{padding:5px 9px;border:1px solid #dfe4eb;border-radius:6px;color:#3f5067}.survivor-help p{font-size:13px;color:#667386;line-height:1.8}.survivor-help strong{color:#1b2839;margin-right:8px}.survivor-help small{font-size:11px;color:#8190a3;line-height:1.8}.survivor-joystick{position:absolute;pointer-events:none;width:90px;height:90px;border:2px solid #ffffff65;background:#ffffff12;border-radius:50%;z-index:2}.survivor-joystick span{position:absolute;left:29px;top:29px;width:28px;height:28px;border-radius:50%;background:#ffffffb0}.survivor button:focus-visible{outline:3px solid #80bbff;outline-offset:3px}.survivor button:disabled{opacity:.4}@media(max-width:600px){.survivor{padding:16px 12px 100px}.survivor h1{font-size:21px}.survivor-heading{margin-top:20px}.survivor-intro{font-size:12px}.survivor-arena canvas{height:62vh;min-height:390px}.survivor-overlay,.survivor-upgrade,.survivor-pause{padding:20px}.survivor-overlay p{font-size:12px}.survivor-upgrade [data-choices]{grid-template-columns:1fr;gap:8px;margin-top:12px}.survivor-upgrade button{min-height:75px;display:grid;grid-template-columns:30px 1fr;padding:12px 15px;gap:5px 12px}.survivor-upgrade button>span{grid-row:span 2}.survivor-upgrade h2{font-size:23px}.survivor-hud{padding:12px 14px}.survivor-hud strong{font-size:14px}.survivor header>span{font-size:9px}}

.survivor-characters{display:flex;gap:12px;margin:10px 0}.survivor-characters button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 18px;background:#151b27;border:1px solid #465264;color:#fff;width:190px}.survivor-characters button[aria-pressed=true]{border-color:#cbd7ff;background:#283047}.survivor-characters small{font-size:10px;font-weight:400;color:#b7c0d0}.survivor-portrait{display:block;width:120px;height:120px;background-size:400% 300%;background-position:0 0;background-repeat:no-repeat}.survivor-portrait.guitar{background-image:url('/images/night-survivor/v4/guitar-locomotion.png')}.survivor-portrait.synth{background-image:url('/images/night-survivor/v4/synth-locomotion.png')}.survivor-overlay h2{margin:10px 0;font-size:30px}.survivor-overlay p{margin:8px 0}.survivor-instructions{margin:5px 0 10px}.survivor-best{margin-top:10px}.survivor-character-detail{font-size:11px!important}@media(max-width:600px){.survivor-characters button{width:140px;padding:8px}.survivor-portrait{height:90px;width:90px}.survivor-overlay h2{font-size:24px}.survivor-overlay{padding:12px}.survivor-kicker{font-size:9px}}

.survivor-resource-readout{position:absolute;z-index:2;top:68px;left:20px;display:flex;gap:12px;flex-wrap:wrap;pointer-events:none;color:white;font-size:11px;text-shadow:0 1px 3px #000}.survivor-resource-readout span{padding:4px 7px;background:#0b1528b0;border-radius:4px}.survivor-resource-readout small{align-self:center;font-size:10px}.survivor-mp span{width:100%;background:#70baff}.survivor-combat-controls{position:absolute;z-index:2;bottom:22px;right:18px;display:flex;gap:7px}.survivor-combat-controls button{position:relative;overflow:hidden;min-width:90px;display:flex;flex-direction:column;gap:5px;align-items:center;padding:10px 9px;background:#101727df;border:1px solid #b6c7d7;border-radius:9px;color:white;touch-action:none;user-select:none}.survivor-combat-controls button:before{content:'';position:absolute;bottom:0;left:0;right:0;height:var(--cooldown,0%);background:#53637670;pointer-events:none}.survivor-combat-controls kbd{font-family:inherit;font-size:10px;color:#cbd9ed}.survivor-combat-controls strong{font-size:11px;z-index:1}.survivor-combat-controls small{font-size:10px;z-index:1}.survivor-combat-controls button:active{background:#3b4b64}.survivor-combat-controls button:disabled{opacity:.62}.survivor-feedback{position:absolute;z-index:2;top:108px;left:50%;transform:translateX(-50%);color:#fff;font-size:12px;background:#111827aa;padding:4px 9px;border-radius:6px;pointer-events:none}.survivor-feedback:empty{display:none}@media(max-width:600px){.survivor-combat-controls{right:8px;bottom:22px;gap:4px}.survivor-combat-controls button{min-width:62px;padding:9px 5px}.survivor-combat-controls strong{font-size:9px}.survivor-combat-controls kbd{display:none}.survivor-resource-readout{left:12px;gap:5px;top:61px}.survivor-resource-readout small{font-size:9px}.survivor-arena canvas{min-height:530px}}

/* Permanent two-thumb controls, including narrow portrait screens. */
.survivor-joystick{left:18px;bottom:28px;top:auto;width:112px;height:112px;pointer-events:auto;touch-action:none;user-select:none;background:#101727a8;box-shadow:0 3px 15px #0004;cursor:grab}
.survivor-joystick i{position:absolute;inset:8px;font:normal 18px/30px sans-serif;text-align:center;color:#ffffff90;pointer-events:none}
.survivor-joystick span{left:calc(50% - 18px);top:calc(50% - 18px);width:36px;height:36px;pointer-events:none;background:#d6e4f4c0;border:1px solid #fff}
.survivor-combat-controls{display:grid;grid-template-columns:repeat(3,76px);gap:6px;bottom:24px;right:14px;align-items:end}
.survivor-combat-controls button{min-width:0;min-height:58px;padding:8px 3px;border-radius:14px}
.survivor-combat-controls [data-basic]{grid-row:2;grid-column:2 / 4;min-height:60px;border-color:#a9d9ff;background:#23394ddf}
@media(max-width:600px){.survivor-joystick{left:12px;bottom:34px;width:92px;height:92px}.survivor-joystick i{inset:3px;font-size:16px;line-height:27px}.survivor-combat-controls{grid-template-columns:repeat(3,54px);right:8px;gap:4px;bottom:25px}.survivor-combat-controls button{min-width:0;min-height:52px}.survivor-combat-controls [data-basic]{min-height:58px}.survivor-combat-controls strong{font-size:9px}.survivor-combat-controls small{font-size:9px}}
/* Rhythm deck: fixed two-thumb controls with real playback-driven beat lights. */
.survivor-heading-actions{display:flex;gap:7px}.survivor-heading-actions [aria-pressed=false]{color:#87909e}
.survivor-resource-readout{max-width:240px}.survivor-metronome{position:absolute;z-index:2;right:18px;top:65px;width:154px;padding:9px 12px;border:1px solid #71818b70;border-radius:8px;background:#0c111bed;color:#fff;pointer-events:none;box-shadow:0 3px 12px #0004}.survivor-metronome>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.survivor-metronome span{font-size:8px;letter-spacing:1.5px;color:#9aaab8}.survivor-metronome b{font-size:11px;font-variant-numeric:tabular-nums}.survivor-beat-display{position:relative;display:flex;justify-content:center;gap:12px;margin:11px 0 7px;padding-left:20px}.survivor-beat-display i{height:9px;width:9px;border:1px solid #5b6a75;border-radius:2px;background:#26323b}.survivor-beat-display i.active{background:#b3ffd5;border-color:#e1ffeb;box-shadow:0 0 calc(4px + var(--beat-pulse,0)*12px) #76f4be}.survivor-metronome small{display:block;text-align:right;font-size:9px;letter-spacing:1px;color:#b3ffd5}.survivor-needle{position:absolute;left:6px;bottom:0;height:20px;width:2px;background:#c5ffdf;transform-origin:bottom;will-change:transform}.survivor-needle:after{content:'';position:absolute;width:5px;height:5px;left:-1.5px;top:0;background:#c5ffdf;border-radius:50%}.survivor-metronome[data-running=false]{opacity:.55}
.survivor-judgment{position:absolute;z-index:2;top:138px;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none;text-shadow:0 2px 5px #000,0 0 18px #000}.survivor-judgment strong{display:block;font-size:27px;font-weight:900;font-style:italic;letter-spacing:2px;color:#ffd7ac}.survivor-judgment small{display:block;font-size:11px;font-weight:800;letter-spacing:2px;color:#fff}.survivor-judgment[data-grade=GREAT] strong{color:#bcffe2}.survivor-judgment[data-grade=GOOD] strong{color:#a9e7ff}.survivor-feedback{top:172px}
.survivor-joystick{border:5px solid #636971;border-radius:50%;background:repeating-radial-gradient(circle at center,#13161a 0px,#13161a 3px,#31343a 4px,#13161a 5px);box-shadow:0 0 0 3px #181c23,0 5px 14px #0008,inset 0 0 0 3px #90969c;isolation:isolate}.survivor-joystick:after{content:'';position:absolute;width:4px;height:38px;right:5px;top:-5px;background:#c0c5ca;border-radius:3px;transform:rotate(-28deg);box-shadow:1px 1px 2px #000;pointer-events:none}.survivor-joystick i{inset:3px;color:#dce4ecb0;font-size:14px;line-height:30px}.survivor-vinyl-label{position:absolute;left:calc(50% - 23px);top:calc(50% - 23px);width:46px;height:46px;border-radius:50%;background:#d9d3c6;color:#26282c;text-align:center;padding-top:9px;font-size:8px;line-height:12px;pointer-events:none}.survivor-joystick span{background:#e4e6e835;width:36px;height:36px;border:2px solid #f7fafccc;box-shadow:0 2px 7px #0009}
.survivor-combat-controls{background:linear-gradient(140deg,#383d46,#141820);border:1px solid #66707c;border-radius:10px;padding:20px 8px 8px;gap:6px;box-shadow:0 5px 18px #0008,inset 0 1px 0 #8c9399;grid-template-columns:repeat(3,70px)}.survivor-deck-label{position:absolute;left:9px;top:6px;color:#bcc4cd;letter-spacing:1.4px;font-size:7px;pointer-events:none}.survivor-combat-controls button{--pad:#e59aa8;border:2px solid var(--pad);border-radius:5px;background:#35202ae8;box-shadow:inset 0 0 10px #e7869a25,0 3px 0 #101219;gap:3px;min-height:60px}.survivor-combat-controls [data-skill="1"]{--pad:#d7bc80;background:#322b20ef}.survivor-combat-controls [data-skill="2"]{--pad:#b6a1e3;background:#2e263def}.survivor-combat-controls [data-basic]{--pad:#8be5e1;background:#173734ee;border:2px solid var(--pad);grid-column:1 / 4;min-height:57px;display:grid;grid-template-columns:35px 1fr 75px;align-items:center;padding:8px 12px}.survivor-combat-controls [data-basic] strong{font-size:13px}.survivor-combat-controls [data-basic] kbd{padding:5px 0;border:1px solid #7bddca80;border-radius:3px;color:#cffcf1}.survivor-combat-controls button:active{background:var(--pad);color:#151922;box-shadow:0 0 18px var(--pad),inset 0 0 4px #fff}.survivor-combat-controls button:disabled{opacity:.65;filter:saturate(.5)}.survivor-combat-controls button:before{background:#080d18bb}
@media(max-width:600px){.survivor-heading-actions{gap:4px}.survivor-heading-actions button{padding:8px;font-size:10px}.survivor h1{font-size:19px}.survivor-heading{gap:8px}.survivor-resource-readout{max-width:185px}.survivor-resource-readout small{flex-basis:100%}.survivor-metronome{right:9px;top:61px;width:127px;padding:7px 9px}.survivor-metronome b{font-size:10px}.survivor-metronome span{font-size:7px;letter-spacing:1px}.survivor-beat-display{gap:10px;margin:10px 0 6px}.survivor-judgment{top:145px}.survivor-joystick{width:96px;height:96px;left:13px;bottom:34px}.survivor-joystick i{font-size:12px;line-height:25px;inset:2px}.survivor-combat-controls{grid-template-columns:repeat(3,48px);right:9px;bottom:27px;padding:18px 6px 6px;gap:4px}.survivor-combat-controls button{min-height:53px;padding:6px 1px}.survivor-combat-controls [data-basic]{min-height:54px;display:flex;gap:4px;padding:6px}.survivor-combat-controls [data-basic] strong{font-size:11px}.survivor-deck-label{font-size:6px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.survivor-needle{visibility:hidden}.survivor-bars span{transition:none}}
@media(max-width:360px){.survivor-resource-readout{max-width:140px;font-size:10px;gap:3px}.survivor-resource-readout span{padding:3px 5px}.survivor-metronome{width:111px;padding:7px}.survivor-metronome span{font-size:6px}.survivor-beat-display{gap:8px}.survivor h1{font-size:16px}.survivor-heading-actions button{font-size:9px;padding:6px}}
/* Standalone game shell: store navigation never overlays the arena. */
html:has(.survivor-page){height:100%;background:#0a0e19}.survivor-page{margin:0;height:100vh;height:100dvh;overflow:hidden;background:#0a0e19;font-family:Arial,'Apple SD Gothic Neo',sans-serif}.survivor-page *{box-sizing:border-box}.survivor{display:flex;flex-direction:column;width:100%;height:100%;max-width:none;padding:0;margin:0;color:#fff}.survivor .survivor-appbar{position:relative;z-index:5;flex:0 0 auto;min-height:48px;align-items:center;padding:calc(8px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:#0a0e19;border-bottom:1px solid #273041;gap:12px}.survivor-appbar a{color:#d3dbe7;font-size:12px;white-space:nowrap}.survivor-appbar>span{font-weight:800;letter-spacing:2px;font-size:11px}.survivor-appbar button{background:#1a2230;color:#d3dbe7;border:1px solid #3b465a;border-radius:5px;padding:7px 10px;font-size:11px;cursor:pointer}.survivor-arena{flex:1;min-height:0;width:100%;border-radius:0;box-shadow:none}.survivor-arena canvas{width:100%;height:100%;min-height:0}.survivor-overlay,.survivor-upgrade,.survivor-pause{overflow-y:auto;padding-bottom:max(20px,env(safe-area-inset-bottom))}.survivor-combat-controls{bottom:calc(24px + env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right))}.survivor-joystick{bottom:calc(34px + env(safe-area-inset-bottom));left:max(13px,env(safe-area-inset-left))}.survivor-guest{margin-top:12px;color:#b6c8d9;font-size:11px}.survivor-splash{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 40%,#1c2b41,#090e18 70%);color:#fff;text-align:center;padding:24px}.survivor-splash h2{font-size:clamp(42px,8vw,90px);line-height:.95;letter-spacing:-3px;margin:30px 0 16px;font-weight:900}.survivor-splash h2 em{font-style:normal;color:#b0ffdd}.survivor-splash p{font-size:13px;color:#a7b7ce;letter-spacing:2px}.survivor-splash-progress{height:3px;width:200px;background:#303b4e;margin:32px 0 14px;overflow:hidden}.survivor-splash-progress span{height:100%;display:block;width:0;background:#b0ffdd;transition:width .2s}.survivor-splash small{font-size:11px;color:#b8c7da}.survivor-splash button{margin-top:20px;padding:12px 22px;border:1px solid #b0ffdd;border-radius:6px;background:#203b35;color:#fff}.survivor-loadout[hidden]{display:none}
@media(max-width:600px){.survivor .survivor-appbar{min-height:45px;gap:6px}.survivor-appbar>span{display:none}.survivor-appbar a{font-size:11px}.survivor-appbar .survivor-heading-actions{margin-left:auto}.survivor-appbar button{font-size:10px;padding:6px 8px}.survivor-arena canvas{height:100%;min-height:0}.survivor-overlay{padding:14px 10px max(14px,env(safe-area-inset-bottom))}.survivor-overlay p{line-height:1.6}.survivor-instructions{font-size:10px}.survivor-guest{font-size:10px}.survivor-combat-controls{bottom:calc(27px + env(safe-area-inset-bottom))}}
@media(max-height:560px){.survivor-overlay{justify-content:flex-start;padding-top:15px}.survivor-portrait{height:65px;width:65px}.survivor-characters{margin:4px 0}.survivor-overlay h2{font-size:22px}.survivor-overlay p{font-size:11px}.survivor-instructions{font-size:10px;margin:3px 0}.survivor-overlay [data-start]{padding:10px 25px}.survivor-best{margin-top:5px}}
/* Non-modal level-up choices leave the arena and both thumb controls active. */
.survivor-upgrade{inset:auto 0 calc(182px + env(safe-area-inset-bottom));padding:10px 12px;background:transparent;pointer-events:none;overflow:visible;justify-content:flex-end;text-shadow:0 2px 5px #000}.survivor-upgrade h2{font-size:21px;margin:4px 0}.survivor-upgrade>span{font-size:10px}.survivor-upgrade>p{margin:4px 0;color:#fff;font-size:11px}.survivor-upgrade [data-choices]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px;max-width:560px}.survivor-upgrade button{pointer-events:auto;min-height:150px;gap:7px;align-items:center;text-align:center;background:#101c29d4;backdrop-filter:blur(3px);border-color:#9ac0df;box-shadow:0 3px 15px #0005;padding:10px;text-shadow:none;cursor:pointer}.survivor-upgrade button strong{font-size:13px}.survivor-upgrade button small{font-size:11px;line-height:1.4;color:#d9e6f4}.survivor-upgrade button>.survivor-skill-icon{display:block;width:64px;height:64px;background-size:600% 400%;background-repeat:no-repeat;background-position:60% 33.333%;flex-shrink:0;filter:drop-shadow(0 0 5px #79c5ff70)}.survivor-skill-icon[data-character=guitar]{background-image:url('/images/night-survivor/v3/guitar-effects.png')}.survivor-skill-icon[data-character=synth]{background-image:url('/images/night-survivor/v3/synth-effects.png')}.survivor-skill-icon[data-upgrade-skill=orbit]{background-position:60% 66.667%}.survivor-skill-icon[data-upgrade-skill=nova]{background-position:60% 100%}
@media(max-width:600px){.survivor-upgrade{bottom:calc(185px + env(safe-area-inset-bottom));padding:6px}.survivor-upgrade h2{font-size:18px}.survivor-upgrade [data-choices]{gap:5px}.survivor-upgrade button{display:flex;min-height:136px;padding:8px 4px;gap:6px}.survivor-upgrade button>.survivor-skill-icon{width:52px;height:52px}.survivor-upgrade button strong{font-size:11px}.survivor-upgrade button small{font-size:9px}.survivor-upgrade>p{font-size:10px}}
@media(max-height:560px){.survivor-upgrade{bottom:162px}.survivor-upgrade>span,.survivor-upgrade h2{display:none}.survivor-upgrade button{min-height:94px;padding:5px;gap:4px}.survivor-upgrade button>.survivor-skill-icon{width:35px;height:35px}.survivor-upgrade button small{font-size:9px}.survivor-upgrade [data-choices]{max-width:430px;margin-top:3px}}
.survivor-upgrade button>.survivor-skill-icon[data-upgrade-skill=orbit]{background-position:60% 66.667%}.survivor-upgrade button>.survivor-skill-icon[data-upgrade-skill=nova]{background-position:60% 100%}

/* Full-width audio-clock rail: the two circles cross at each audible beat. */
.survivor-metronome{position:absolute;inset:0 0 auto;z-index:8;width:auto;padding:5px 0 4px;border:0;border-radius:0;background:linear-gradient(#07101ef5,#07101e90,transparent);box-shadow:none;height:77px;overflow:hidden}
.survivor-metronome .survivor-beat-label{display:flex;justify-content:center;align-items:center;gap:14px;height:16px}
.survivor-metronome .survivor-beat-label span{font-size:9px;color:#cce9ec}.survivor-metronome small{font-size:10px;color:#bcffe2}
.survivor-beat-rail{position:relative;height:36px;width:100%;margin:0; background:linear-gradient(transparent 17px,#8db1ba90 17px,#8db1ba90 19px,transparent 19px)}
.survivor-beat-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:9px;height:9px;border-radius:50%;background:white;box-shadow:0 0 14px #caffef;z-index:2}
.survivor-beat-center:after{content:'';position:absolute;inset:-12px;border:1px solid #b5ffdc80;border-radius:50%;background:#b5ffdc15}
.survivor-beat-orb{position:absolute;top:50%;transform:translate(-50%,-50%);height:24px;width:24px;border-radius:50%;border:2px solid #b8fff0;background:#56dfb52b;box-shadow:0 0 12px #81ffca80;will-change:left}
.survivor-beat-orb.left{left:var(--beat-left,0%)}.survivor-beat-orb.right{left:var(--beat-right,100%);border-color:#a9d6ff;background:#6aabff30;box-shadow:0 0 12px #6aabff80}
.survivor-metronome .survivor-beat-hint{display:block;text-align:center;font-size:10px;letter-spacing:.5px;color:#aec1cf}
.survivor-metronome[data-onbeat=true] .survivor-beat-center:after{border-color:#d9ffed;background:#abffd550;box-shadow:0 0 calc(8px + var(--beat-pulse,0)*25px) #8bffbd}
.survivor-metronome[data-onbeat=true] .survivor-beat-hint{color:#d9ffed}
.survivor-hud{top:80px}.survivor-resource-readout{top:140px}.survivor-judgment{top:178px;z-index:8}.survivor-feedback{top:236px}
@media(max-width:600px){.survivor-metronome{inset:0 0 auto;width:auto;padding:4px 0;height:76px}.survivor-resource-readout{top:132px;max-width:none}.survivor-metronome .survivor-beat-hint{font-size:9px}.survivor-judgment{top:174px}}

/* Illustrated game lobby: full-bleed key art, angled fighter cards and start plate. */
.survivor-lobby{z-index:10;padding:20px;background:#06090e url('/images/night-survivor/lobby-v1.png') center/cover no-repeat;isolation:isolate;overflow:auto}
.survivor-lobby:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#070b1433,#070b14c9 40%,#070b14b5 60%,#070b1433),linear-gradient(0deg,#050a13e8,transparent 70%);pointer-events:none}
.survivor-lobby-content{width:min(540px,100%);margin:auto;display:flex;flex-direction:column;align-items:center;gap:4px;text-shadow:0 2px 12px #000}
.survivor-lobby .survivor-kicker{font-size:10px;letter-spacing:5px;color:#c8d9e4;border-top:1px solid #d9e8ef66;padding-top:10px}
.survivor-lobby h2{font-size:clamp(34px,6vw,70px);font-weight:1000;line-height:.92;letter-spacing:-3px;max-width:520px;margin:14px 0 8px;font-style:italic;text-shadow:3px 3px 0 #17384b,0 0 30px #98caff30}
.survivor-lobby p{font-size:12px;color:#d3e2ef;line-height:1.7;margin:4px 0 8px}
.survivor-lobby .survivor-characters{gap:10px;width:100%;max-width:380px;margin:6px 0}
.survivor-lobby .survivor-characters button{position:relative;flex:1;width:auto;border-radius:0;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);padding:9px 12px;background:linear-gradient(135deg,#141925e8,#0b121fdb);border:1px solid #748393;gap:3px;transition:background .15s,transform .15s;box-shadow:inset 0 -3px #50647d}
.survivor-lobby .survivor-characters button[data-character=guitar][aria-pressed=true]{border-color:#ff7187;background:linear-gradient(135deg,#812139dc,#251222ee);box-shadow:inset 0 -3px #ff647e}
.survivor-lobby .survivor-characters button[data-character=synth][aria-pressed=true]{border-color:#74e8ff;background:linear-gradient(135deg,#135977db,#121b2fee);box-shadow:inset 0 -3px #6beaff}
.survivor-lobby .survivor-characters button:hover{transform:translateY(-3px)}
.survivor-fighter-role{font-size:8px;font-weight:500;letter-spacing:1.8px;color:#b9cedc}
.survivor-lobby .survivor-portrait{width:110px;height:110px;filter:drop-shadow(0 4px 8px #0008)}
.survivor-lobby .survivor-characters strong{font-size:15px;letter-spacing:1px}.survivor-lobby .survivor-characters small{color:#c9d7e4;font-size:10px}
.survivor-lobby [data-start]{width:min(380px,100%);padding:17px 25px;margin-top:9px;border-radius:0;background:linear-gradient(135deg,#defff1,#90ebcd);box-shadow:inset 0 -4px #3b9986,0 0 28px #baffdf24;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);font-size:18px;font-weight:900;letter-spacing:2px;text-shadow:none}
.survivor-lobby [data-start]:hover{background:#e3fff4}.survivor-lobby .survivor-instructions{margin:0;width:min(380px,100%);color:#b9cedc;font-size:10px;line-height:1.8}
.survivor-instructions summary{cursor:pointer;list-style:none;letter-spacing:1px;padding:6px;color:#cfe2f0}.survivor-instructions summary:after{content:' ＋'}.survivor-instructions[open] summary:after{content:' −'}
.survivor-lobby .survivor-guest{color:#c6d3df;font-size:10px;margin-top:8px}.survivor-lobby .survivor-best{font-size:10px;margin:2px 0;color:#8299b0}
.survivor-splash{background:#070b13 url('/images/night-survivor/lobby-v1.png') center/cover no-repeat!important;isolation:isolate}.survivor-splash:before{content:'';position:absolute;inset:0;z-index:-1;background:#060a16a6}
@media(max-width:600px){.survivor-lobby{padding:14px 16px;background-position:center}.survivor-lobby:before{background:linear-gradient(#060a1460,#060a14c9 30%,#060a14ec)}.survivor-lobby h2{font-size:42px;max-width:320px;letter-spacing:-2px}.survivor-lobby .survivor-portrait{width:92px;height:92px}.survivor-lobby .survivor-characters strong{font-size:13px}.survivor-lobby-content{gap:2px}.survivor-lobby .survivor-kicker{font-size:8px;letter-spacing:3px}.survivor-lobby [data-start]{font-size:16px;padding:14px}.survivor-lobby p{font-size:11px}}
@media(max-height:580px) and (min-width:601px){.survivor-lobby-content{gap:0}.survivor-lobby h2{font-size:40px;margin:8px}.survivor-lobby .survivor-portrait{width:72px;height:72px}.survivor-lobby [data-start]{padding:12px;margin-top:3px}.survivor-lobby .survivor-best{display:none}}

.survivor-splash{z-index:20}.survivor-pause{z-index:12;background:radial-gradient(ellipse at center,#142433e8,#050a14d9);backdrop-filter:blur(7px)}
.survivor-pause h2{font-style:italic;letter-spacing:1px}.survivor-pause button{border-radius:0;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);background:linear-gradient(135deg,#defff1,#90ebcd);box-shadow:inset 0 -3px #3b9986}
.survivor-appbar button{border-radius:0;background:#151e2ad9;border-color:#52667b80;clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}

@media(max-width:600px){.survivor-lobby,.survivor-splash{background-image:url('/images/night-survivor/lobby-mobile-v1.png')!important;background-position:center top}.survivor-lobby:before{background:linear-gradient(transparent 15%,#050b1455 40%,#050b14ed 65%)}.survivor-lobby-content{margin:auto 0 0;gap:0}.survivor-lobby h2{font-size:36px;line-height:.94;margin:8px 0}.survivor-lobby .survivor-portrait{width:64px;height:64px}.survivor-lobby .survivor-characters{margin:4px 0}.survivor-lobby .survivor-characters button{padding:7px 5px}.survivor-lobby .survivor-kicker{padding-top:6px}.survivor-lobby [data-start]{margin-top:5px}.survivor-lobby .survivor-guest{margin-top:5px}}

.survivor-reward-panel{width:min(380px,100%);border:1px solid #b7ffda70;padding:10px;background:#061d21dd;color:#d3ffea}.survivor-reward-panel p{font-size:11px!important}.survivor-reward-panel button{padding:10px!important;border-radius:0!important;font-size:12px!important;background:#b6ffda!important;color:#102b25!important}.survivor-reward-panel a{display:block;margin-top:8px;color:#c3f3ff;font-size:11px}

/* Upgrade taps use their own pointer; neither thumb interrupts movement. */
.survivor-upgrade button{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.survivor-upgrade-shortcut{position:absolute;top:6px;left:6px;min-width:20px;padding:3px;border:1px solid #8db6d4;border-radius:4px;background:#142538;color:#e3f5ff;font:700 11px/1 sans-serif}
@media(max-width:600px){.survivor-upgrade-shortcut{top:4px;left:4px;min-width:16px;font-size:9px}}

/* Native long-press menus have no place on the two-thumb game controls. */
.survivor-joystick,.survivor-joystick *, .survivor-combat-controls,.survivor-combat-controls *{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none!important;-webkit-user-drag:none;touch-action:none}
.survivor-combat-controls button>*{pointer-events:none}
.survivor-pad-icon{display:none}
@media(max-width:600px),(pointer:coarse){
 .survivor-combat-controls :is(kbd,strong,small,.survivor-deck-label),.survivor-joystick :is(i,b){display:none!important}
 .survivor-combat-controls button,.survivor-combat-controls [data-basic]{display:flex;align-items:center;justify-content:center;padding:3px}
 .survivor-combat-controls .survivor-pad-icon{display:block;width:40px;height:40px;background-image:url('/images/night-survivor/v3/guitar-effects.png');background-size:600% 400%;background-repeat:no-repeat;background-position:60% 0;filter:drop-shadow(0 0 4px #8ddaff88)}
 .survivor-combat-controls[data-character=synth] .survivor-pad-icon{background-image:url('/images/night-survivor/v3/synth-effects.png')}
 .survivor-combat-controls [data-skill="0"] .survivor-pad-icon{background-position:60% 33.333%}
 .survivor-combat-controls [data-skill="1"] .survivor-pad-icon{background-position:60% 66.667%}
 .survivor-combat-controls [data-skill="2"] .survivor-pad-icon{background-position:60% 100%}
 .survivor-joystick:before{content:'';position:absolute;inset:33%;border-radius:50%;background:#c7c5b7;border:2px solid #fff9;pointer-events:none}
}

/* Electric piano roster and pads. */
.survivor-lobby .survivor-characters{max-width:520px}.survivor-lobby .survivor-characters button{min-width:0}.survivor-lobby .survivor-characters button[data-character=piano][aria-pressed=true]{border-color:#c597ff;background:linear-gradient(135deg,#61437bdc,#20152eee);box-shadow:inset 0 -3px #c597ff}.survivor-portrait.piano{background-image:url('/images/night-survivor/piano-v1/portrait.png');background-size:contain;background-position:center}.survivor-skill-icon[data-character=piano],.survivor-combat-controls[data-character=piano] .survivor-pad-icon{background-image:url('/images/night-survivor/piano-v1/effects.png')}
@media(max-width:600px){.survivor-lobby .survivor-characters{gap:5px}.survivor-lobby .survivor-characters strong{font-size:11px;letter-spacing:0}.survivor-lobby .survivor-characters small{font-size:8px}.survivor-fighter-role{font-size:7px;letter-spacing:.5px}.survivor-lobby .survivor-portrait{width:58px;height:64px}}

