.party-game{--party-line:#34465b;--party-muted:#a4b5ca;color:#edf4ff;background:linear-gradient(140deg,#152336,#131b2d);border:1px solid var(--party-line);border-radius:20px;padding:24px;max-width:1080px;margin:0 auto;min-width:0;box-shadow:0 16px 40px #02071328}
.party-game *{box-sizing:border-box}.party-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.party-kicker{font-size:10px;font-weight:800;letter-spacing:.15em;color:#9daccc}.party-heading h3{font-size:clamp(24px,3vw,36px);line-height:1.1;letter-spacing:-.035em;margin:7px 0 0}.party-heading h3 em{font-style:normal;color:#c0a9ff}.party-game button{font:inherit;cursor:pointer;touch-action:manipulation;min-height:48px}.party-game button:disabled{cursor:default;opacity:.55}.party-game button:focus-visible,.party-game input:focus-visible,.party-game summary:focus-visible{outline:3px solid #79e3db;outline-offset:3px}.party-primary{background:#b8a0f3;border:1px solid #d1bdfd;border-radius:12px;padding:12px 20px;color:#161d35;font-weight:800!important;display:flex;align-items:center;justify-content:center;gap:18px}.party-primary:hover:not(:disabled){background:#c7b3fa}.party-rules{font-size:13px;line-height:1.65;color:var(--party-muted);border-top:1px solid #334359;margin-top:20px;padding-top:15px}.party-rules summary{cursor:pointer;font-weight:750;color:#d2dcec;min-height:32px}.party-rules p{margin:9px 0 0}
.town-letter{display:grid;place-items:center;flex:0 0 76px;height:76px;background:linear-gradient(135deg,#b8a0f4,#947ad3);box-shadow:inset 0 1px 0 #ffffff50,0 7px 24px #9780ef18;border:1px solid #d6c5ff80;color:#1b2040;border-radius:18px;font-size:44px;font-weight:900;line-height:1}.town-roundbar{display:flex;align-items:center;gap:14px;color:var(--party-muted);font-size:13px;margin-bottom:15px;padding:12px 0;border-top:1px solid #314158;border-bottom:1px solid #314158}.town-roundbar strong{color:#e9effc}.town-clock{margin-left:auto;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:50px;text-align:right;font-size:18px;font-weight:800;color:#80e2dc}.town-clock.urgent{color:#ffb496}.town-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px;margin-bottom:24px}.town-score{min-width:0;padding:10px 12px;background:#0e1729;border:1px solid #2a3a51;border-radius:12px;display:grid;gap:5px}.town-score.is-you{border-color:#947edf}.town-score>span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d3dff0}.town-score>strong{font-size:21px;line-height:1}.town-score small{font-size:11px;color:var(--party-muted);font-weight:600}.town-score i{font-style:normal;font-size:10px;color:#89c4cf}.town-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.town-fields label{min-width:0;display:grid;gap:8px;color:#e4edfc;font-size:14px;font-weight:700}.town-fields label:last-child:nth-child(odd){grid-column:1/-1}.town-fields label>span{display:flex;justify-content:space-between;gap:8px}.town-fields label small{font-size:10px;color:#879ab4;font-weight:600;align-self:center}.town-fields input{width:100%;min-width:0;min-height:52px;border:1px solid #3a4d66;background:#0c1728;border-radius:11px;color:#f1f6ff;padding:12px 14px;font-size:16px;line-height:1.35;font-weight:500}.town-fields input::placeholder{color:#6b819e}.town-fields input:disabled{opacity:.65}.town-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.town-save{font-size:12px;line-height:1.5;color:#a8b8cf;max-width:300px}.town-reveal h4{display:flex;justify-content:space-between;gap:12px;font-size:16px;margin:24px 0 12px;color:#eaf0fd}.town-reveal h4 span{color:#c6b1fd;font-size:13px}.town-result-row{border:1px solid #31435a;border-radius:13px;padding:13px;margin-bottom:10px;background:#0f1b2c}.town-result-row.is-you{border-color:#947edf}.town-result-row header{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px}.town-result-row header strong{overflow-wrap:anywhere}.town-result-row header span{color:#8bdace;white-space:nowrap}.town-answer-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.town-answer{min-width:0;background:#1b2d3b;border-radius:8px;padding:9px;display:grid;align-content:start;gap:7px}.town-answer.invalid{background:#332733}.town-answer small{font-size:10px;color:#afc2d7}.town-answer strong{font-size:13px;overflow-wrap:anywhere}.town-answer span{font-size:10px;color:#93d9c8;line-height:1.4}.town-answer.invalid span{color:#efb6b8}.party-game [hidden]{display:none!important}
.survival-wave{flex:0 0 auto;font-size:12px;font-weight:800;letter-spacing:.04em;color:#8ce1db;background:#143632;border:1px solid #347568;border-radius:10px;padding:12px}.survival-team{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:9px;margin-bottom:14px}.survival-player{min-width:0;background:#0e192b;border:1px solid #34455d;border-radius:11px;padding:10px}.survival-player.is-you{border-color:var(--agent-color)}.survival-player.is-down{opacity:.55}.survival-player>span{display:flex;align-items:center;gap:7px;font-size:12px;margin-bottom:8px}.survival-player i{display:grid;place-items:center;background:var(--agent-color);color:#162234;width:21px;height:21px;flex:0 0 21px;border-radius:6px;font-size:11px;font-style:normal;font-weight:850}.survival-player strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.survival-player small{white-space:nowrap;margin-left:auto;font-size:10px;color:#b3c4d9}.survival-health{height:5px;overflow:hidden;border-radius:3px;background:#314058}.survival-health>span{height:100%;display:block;background:var(--agent-color);transition:width .15s}.survival-stage{position:relative;border:1px solid #405c6a;border-radius:15px;overflow:hidden;background:#102130}.survival-stage canvas{display:block;width:100%;height:auto;aspect-ratio:8/5;touch-action:none}.survival-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:12px;background:#06101be6;text-align:center;color:#eff6ff;overflow:auto}.survival-overlay h4{font-size:clamp(20px,3vw,35px);letter-spacing:-.025em;margin:9px 0 10px;line-height:1.1}.survival-overlay p{font-size:13px;color:#b5c8df;line-height:1.4;margin:8px 0}.survival-upgrades{max-width:600px;width:100%;max-height:100%}.survival-upgrades>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:16px}.survival-upgrades button{padding:12px 9px;min-width:0;background:#253348;border:1px solid #536780;border-radius:10px;color:#eef4ff;display:grid;align-content:center;gap:7px;font-size:13px}.survival-upgrades button span{font-size:10px;color:#b7cae2;line-height:1.4}.survival-upgrades button.selected{background:#394b50;border-color:#89e5d2;opacity:1}.survival-finish{max-width:480px}.survival-status{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#a8bdd4;padding:12px 0}.survival-message{line-height:1.5}.survival-enemies{white-space:nowrap;font-size:11px;color:#d8e6f5}.survival-controls{display:flex;align-items:center;gap:20px;border:1px solid #34465e;background:#0e192a;border-radius:15px;padding:14px}.survival-joystick{position:relative;flex:0 0 104px;width:104px;height:104px;border:1px solid #536780;background:radial-gradient(circle,#243851 0,#18293d 50%,#0b1728 100%);box-shadow:inset 0 0 0 10px #142337;border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none}.survival-joystick>span{position:absolute;left:30px;top:30px;width:42px;height:42px;background:linear-gradient(#9be8e1,#67b9c0);border:2px solid #c6fff2;border-radius:50%;box-shadow:0 4px 12px #0006;z-index:1;pointer-events:none}.survival-joystick i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:88px;color:#697b9040;line-height:1;pointer-events:none}.survival-help{display:grid;gap:6px;min-width:0;flex:1}.survival-help strong{font-size:13px;color:#dceafa}.survival-help span{font-size:11px;line-height:1.45;color:#9cafca}.survival-dash{flex:0 0 110px;height:72px;border-radius:13px;border:1px solid #ae96e7;background:linear-gradient(140deg,#b9a2f1,#9478d2);color:#171f37;font-weight:900!important;display:grid;place-content:center;gap:6px}.survival-dash span{font-size:18px;letter-spacing:.07em}.survival-dash small{font-size:10px;font-weight:650}.survival-dash:active:not(:disabled){transform:scale(.98)}
@media(max-width:650px){.party-game{padding:16px;border-radius:16px}.party-heading{gap:12px;margin-bottom:16px}.town-letter{flex-basis:62px;height:62px;border-radius:14px;font-size:36px}.town-roundbar{gap:8px;font-size:11px;flex-wrap:wrap}.town-phase{flex:1;line-height:1.4}.town-clock{font-size:16px}.town-fields{gap:12px}.town-actions{align-items:stretch;flex-direction:column;gap:12px}.town-save{max-width:none}.town-actions button{width:100%}.town-answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.town-answer:last-child:nth-child(odd){grid-column:1/-1}.town-scores{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.survival-wave{padding:10px 8px;font-size:10px}.survival-team{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.survival-player{padding:8px}.survival-player>span{flex-wrap:wrap;gap:5px;margin-bottom:6px}.survival-player strong{max-width:calc(100% - 26px);font-size:11px}.survival-player small{margin-left:26px;font-size:10px}.survival-controls{gap:12px;padding:12px;flex-wrap:wrap}.survival-joystick{flex-basis:104px}.survival-help{flex-basis:calc(100% - 128px)}.survival-help span:last-child{display:none}.survival-dash{flex:1;min-height:54px;height:54px;display:flex;align-items:center;justify-content:center;gap:12px}.survival-dash span{font-size:15px}.survival-stage{border-radius:11px}.survival-status{align-items:flex-start;font-size:11px}.survival-enemies{font-size:10px}.survival-overlay h4{margin:5px 0;font-size:20px}.survival-overlay p{font-size:10px;margin:5px 0}.survival-upgrades>div{gap:5px;margin-top:9px}.survival-upgrades button{padding:7px 4px;font-size:10px;gap:4px;min-height:50px}.survival-upgrades button span{font-size:9px}.survival-overlay .party-kicker{font-size:8px}.party-rules{font-size:12px}}
@media(max-width:370px){.party-game{padding:12px}.town-fields{grid-template-columns:1fr}.town-fields label:last-child:nth-child(odd){grid-column:auto}.town-roundbar{font-size:10px}.survival-joystick{flex-basis:94px;width:94px;height:94px}.survival-joystick>span{left:25px;top:25px}.survival-help{flex-basis:calc(100% - 106px)}.survival-help strong{font-size:11px}.survival-help span{font-size:10px}.survival-wave{font-size:9px}.survival-upgrades button{font-size:9px}.survival-upgrades button span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.survival-health>span{transition:none}.survival-dash:active:not(:disabled){transform:none}}

.survival-dash{touch-action:none;user-select:none;-webkit-user-select:none}

/* Survival 3.8: each arena has physical cover, readable attacks and a real loadout. */
.survival-boss-bar{position:absolute;top:9px;left:12px;right:12px;z-index:2;padding:7px 10px;background:#201629ed;border:1px solid #da849c;border-radius:9px;pointer-events:none;max-width:500px;margin:auto}.survival-boss-bar>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;line-height:1.2;margin-bottom:5px}.survival-boss-bar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe0e7}.survival-boss-bar span{font-size:10px;color:#ffd1dc;white-space:nowrap;font-variant-numeric:tabular-nums}.survival-boss-bar>i{display:block;height:5px;background:#4d2940;border-radius:3px;overflow:hidden}.survival-boss-bar b{display:block;height:100%;background:linear-gradient(90deg,#ef7d9a,#ffd4a9);transition:width .15s}
.survival-weapons{position:absolute;left:10px;right:10px;bottom:9px;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:540px;margin:auto}.survival-weapons button{min-width:0;min-height:46px;padding:8px 5px;color:#d7e7f8;background:#152233f5;border:1px solid #688298;border-radius:9px;font-size:12px;font-weight:750;line-height:1.2;box-shadow:0 2px 8px #0004}.survival-weapons button.selected{border-color:#9be5d9;background:#284943f5;color:#edfff8}.survival-weapons button:focus-visible{outline:3px solid #9be5d9;outline-offset:1px}.survival-overlay.has-weapons{padding-bottom:72px}.survival-overlay.has-weapons .survival-upgrades{align-self:center}.survival-overlay.has-weapons .survival-upgrades>div{margin-top:8px}.survival-arena-label{display:block;max-width:260px;overflow-wrap:anywhere}
@media(max-width:650px){.survival-boss-bar{top:6px;left:7px;right:7px;padding:5px 7px;border-radius:7px}.survival-boss-bar>div{font-size:9px;margin-bottom:4px}.survival-boss-bar span{font-size:9px}.survival-boss-bar>i{height:4px}.survival-weapons{left:6px;right:6px;bottom:6px;gap:4px}.survival-weapons button{min-height:44px;font-size:10px;padding:6px 3px}.survival-overlay.has-weapons{padding:5px 6px 56px}.survival-overlay.has-weapons h4{font-size:16px;line-height:1;margin:3px 0}.survival-overlay.has-weapons p{font-size:9px;margin:4px 0}.survival-overlay.has-weapons .survival-upgrades>div{margin-top:5px}.survival-overlay.has-weapons .survival-upgrades button{min-height:44px;padding:5px 3px}.survival-overlay.has-weapons .survival-upgrades button span{font-size:8px}.survival-overlay.has-weapons .party-kicker{font-size:7px;letter-spacing:.08em}}
@media(orientation:landscape) and (max-height:550px) and (min-width:600px){.room-game-focus .survival-boss-bar{top:5px;padding:4px 7px;max-width:400px}.room-game-focus .survival-boss-bar>div{font-size:9px;margin-bottom:3px}.room-game-focus .survival-boss-bar span{font-size:9px}.room-game-focus .survival-boss-bar>i{height:3px}.room-game-focus .survival-weapons{bottom:6px;gap:5px}.room-game-focus .survival-weapons button{min-height:44px;font-size:10px}.room-game-focus .survival-overlay.has-weapons{padding:5px 8px 57px}.room-game-focus .survival-overlay h4{font-size:18px;margin:3px 0}.room-game-focus .survival-overlay p{font-size:10px;margin:4px 0}.room-game-focus .survival-upgrades>div{margin-top:5px}.room-game-focus .survival-upgrades button{min-height:44px;padding:5px;font-size:11px;gap:3px}.room-game-focus .survival-upgrades button span{font-size:9px}.room-game-focus .survival-overlay .party-kicker{font-size:8px}}
@media(prefers-reduced-motion:reduce){.survival-boss-bar b{transition:none}}
