*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:system-ui,sans-serif;margin:0;background:#1a1a2e;color:#eee;min-height:100dvh}#app{width:100%;height:100%;overflow:hidden}.wrap{padding:12px;max-width:600px;margin:0 auto}h1{margin:8px 0 14px;font-size:1.4em}.top-game-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:-4px 0 10px;padding:7px 9px;border:1px solid #2a2a4a;border-radius:8px;background:#0f0f23b8;color:#dce6ff;font-size:11px;line-height:1.25}.top-game-status b{opacity:.55;font-weight:600;margin-right:3px}.top-members{display:flex;flex-wrap:wrap;gap:4px}.top-members span{padding:2px 6px;border-radius:999px;background:#16213e;white-space:nowrap}.top-members .is-connected{color:#9ff5b5}.top-members .is-offline{color:#8d8da6;opacity:.7}.debug-actor{display:inline-flex;align-items:center;gap:5px;padding:2px 6px;border-radius:6px;background:#132845;color:#b9d7ff}.debug-actor select{max-width:120px;border:1px solid #35537d;border-radius:5px;background:#0f1728;color:#fff;font-size:11px;padding:2px 4px}.top-actions{display:flex;gap:6px;margin-left:auto}.top-action{font-size:11px;line-height:1;padding:6px 8px;border-radius:7px;background:#26365f;color:#e9f0ff}.top-action.danger{background:#3a2432;color:#ffd9e4}.card{background:#16213e;border-radius:14px;padding:14px;margin:10px 0;box-shadow:0 2px 12px #0006}.card h2{margin:0 0 10px;font-size:1em;opacity:.6;text-transform:uppercase;letter-spacing:.08em}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width: 420px){.grid{grid-template-columns:1fr}}.label{font-size:11px;opacity:.55;margin-bottom:4px;letter-spacing:.04em}input{width:100%;padding:11px 12px;font-size:16px;border-radius:10px;border:1px solid #2a2a4a;background:#0f0f23;color:#eee;outline:none}input:focus{border-color:#2c7be5}button{font-size:15px;padding:11px 16px;border-radius:10px;border:none;background:#2a2a4a;color:#ccc;cursor:pointer;transition:opacity .15s}button:active{opacity:.75}button.primary{background:#2c7be5;color:#fff}#roomOut{margin-top:10px;font-size:13px}.member-list{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.member-list li{background:#0f0f23;border-radius:8px;padding:5px 10px;font-size:13px;display:flex;align-items:center;gap:5px}.member-list li.offline{opacity:.45}#gameCard{background:transparent;padding:0;box-shadow:none}.game-hud{background:#16213e;border-radius:14px;padding:12px 14px;margin-bottom:10px}.hud-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.hud-day{font-size:1.6em;font-weight:700;letter-spacing:.02em}.hud-day>span{color:#2c7be5}.hud-day .phase-tag{color:#fff}.phase-tag{display:inline-block;font-size:.7em;font-weight:700;background:#2c7be5;color:#fff;padding:4px 12px;border-radius:12px;margin-left:10px;vertical-align:middle;letter-spacing:.04em;white-space:nowrap}.phase-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px;padding-bottom:8px;border-bottom:1px solid #2a2a4a}.phase-info{font-size:12px;opacity:.75}button.mini.primary{background:#2c7be5;color:#fff}.hud-badges{display:flex;gap:6px}.badge{background:#0f0f23;border-radius:8px;padding:4px 9px;font-size:12px;display:flex;align-items:center;gap:4px}.badge.weather{border:1px solid #2a4a6a}.badge.event{border:1px solid #4a2a6a}.card-badge{width:40px;height:56px;object-fit:cover;border-radius:6px;border:1px solid #3a3a5a;display:block}.storm-banner{margin-top:10px;padding:10px 14px;background:linear-gradient(135deg,#4a1a2a,#2a1a4a);border:2px solid #ff6b9d;border-radius:10px;font-size:13px;text-align:center;animation:pulse 2s ease-in-out infinite;box-shadow:0 0 20px #ff6b9d66}@keyframes pulse{0%,to{box-shadow:0 0 14px #ff6b9d4d}50%{box-shadow:0 0 24px #ff6b9d99}}.resource-row{display:flex;gap:8px;flex-wrap:wrap}.resource-item{flex:1;min-width:60px;background:#0f0f23;border-radius:10px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:2px}.resource-item .ri-icon{font-size:1.3em}.resource-item .ri-val{font-size:1.1em;font-weight:700}.resource-item .ri-lbl{font-size:10px;opacity:.5;letter-spacing:.04em}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-bottom:10px}.target-select-panel{grid-column:1 / -1;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px;border:1px solid #4d7cff;border-radius:8px;background:#2c7be529}.target-select-title{font-size:13px;font-weight:800;color:#dbe8ff}.target-select-help{font-size:12px;color:#b8c8e8}.target-select-actions{display:flex;gap:6px;margin-left:auto}.player-card{background:#16213e;border:2px solid transparent;border-radius:12px;padding:12px 10px 10px;text-align:center;position:relative;transition:border-color .2s,box-shadow .2s}.player-card.is-turn{border-color:#2c7be5;box-shadow:0 0 12px #2c7be573}.player-card.is-offline{opacity:.4}.player-card.is-paralyzed{border-color:#b97a2e;box-shadow:0 0 8px #b97a2e66}.player-card.is-dead{opacity:.3;filter:grayscale(1)}.player-card.is-target-selectable{cursor:pointer;border-color:#9fd2ff80;user-select:none;touch-action:manipulation}.player-card.is-target-selectable .zoomable{cursor:pointer;pointer-events:none}.player-card.is-target-selectable:hover{box-shadow:0 0 14px #9fd2ff59}.player-card.is-target-selected{opacity:1;filter:none;border-color:#80ffb0;box-shadow:0 0 0 2px #80ffb047,0 0 18px #80ffb080}.target-check{position:absolute;top:6px;right:7px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#35d277;color:#06120a;font-size:13px;font-weight:900;z-index:2}.pebble-section{margin-top:10px;padding-top:8px;border-top:1px solid #2a2a4a;font-size:12px}.pebble-bag-display{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pebble-label{opacity:.6}.pebble-last{margin-top:6px;background:#0f0f23;border-radius:6px;padding:5px 8px;font-weight:600}.pebble-actions{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}button.mini{font-size:11px;padding:4px 10px;background:#2a4a6a;color:#ddd;border:none;border-radius:6px;cursor:pointer}.mini-select{font-size:11px;padding:4px 6px;background:#0f0f23;color:#ddd;border:1px solid #2a2a4a;border-radius:6px;width:auto}.action-panel{background:linear-gradient(135deg,#1e3a5f,#16213e);border:2px solid #2c7be5;border-radius:12px;padding:12px;margin-top:10px;box-shadow:0 0 16px #2c7be54d}.action-panel-label{font-size:13px;font-weight:700;margin-bottom:10px;color:#6ab0ff}.action-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center}.action-btn{font-size:14px;font-weight:600;width:100%;min-width:0;padding:8px 10px;background:#2c7be5;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .15s,transform .1s}.action-btn:hover{background:#3a8df0}.action-btn:active{transform:scale(.96)}.action-wood-group{display:flex;align-items:center;gap:4px;background:#0f1830;border-radius:8px;padding:4px;min-width:0}.action-wood-group.is-disabled{opacity:.55}.action-wood-group .action-btn{padding:6px 12px;flex:1}.action-wood-group .mini-select{flex:0 0 44px}.action-waiting{background:#1a1a3a;border-radius:10px;padding:10px;margin-top:10px;text-align:center;font-size:13px;opacity:.7}.event-resolve-panel{background:#18233a;border:2px solid #d0a73f;border-radius:12px;padding:12px;margin-top:10px;box-shadow:0 0 14px #d0a73f38}.event-resolve-title{font-size:13px;font-weight:700;color:#ffe08a;margin-bottom:10px}.event-resolve-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.event-resolve-controls label{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#f3f0df}.event-resolve-subtitle{font-size:11px;opacity:.7;width:100%;margin-top:4px}.event-info{font-size:12px;opacity:.75}.ev-woodcutter-hand{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin-top:4px}.ev-woodcutter-card{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#0f1830;border:1px solid #2a4a6a;border-radius:6px;font-size:11px;cursor:pointer}.ev-woodcutter-card:has(input:checked){background:#2a4a6a;border-color:#d0a73f}.event-select{background:#0f1830;color:#f4f7ff;border:1px solid #4f6384;border-radius:7px;padding:5px 8px;font-size:12px}.event-count-select{min-width:54px}.event-total-ok,.event-total-bad{font-size:12px;font-weight:700;padding:5px 8px;border-radius:7px}.event-total-ok{color:#b9f4c8;background:#2ecc7124}.event-total-bad{color:#ffd0d0;background:#dc505029}.vote-panel{background:linear-gradient(135deg,#4a1a4a,#2a1a3e);border:2px solid #c267e5;border-radius:12px;padding:12px;margin-top:10px;box-shadow:0 0 16px #c267e54d}.vote-label{font-size:14px;font-weight:700;margin-bottom:6px;color:#e0b0ff}.vote-info{font-size:12px;opacity:.85;margin-bottom:10px}.vote-targets{display:flex;flex-wrap:wrap;gap:6px}.vote-tally{display:grid;gap:4px;margin:8px 0 10px;padding:8px;background:#16172d;border:1px solid #7f6adf;border-radius:8px}.vote-tally-title{font-size:12px;font-weight:700;color:#d9ccff;margin-bottom:2px}.vote-tally-row{display:flex;justify-content:space-between;gap:12px;font-size:12px}.vote-btn{font-size:13px;padding:6px 12px;background:#2a2a4a;color:#ddd;border:1px solid #4a4a6a;border-radius:8px;cursor:pointer;transition:background .15s}.vote-btn:hover{background:#3a3a5a}.vote-btn.is-voted{background:#c267e5;color:#fff;border-color:#c267e5}.vote-last{margin-top:8px;padding:6px 10px;background:#1a1a2e;border-radius:6px;font-size:12px}.scavenge-choice-panel{margin-top:10px;padding:12px;background:#12333a;border:2px solid #4fb7c5;border-radius:10px}.scavenge-choice-title{font-size:14px;font-weight:700;color:#aeeaf0;margin-bottom:10px}.scavenge-choice-list{display:flex;flex-wrap:wrap;gap:10px}.scavenge-choice-card{width:120px;min-height:156px;padding:8px;display:grid;grid-template-rows:108px auto;gap:6px;align-items:center;justify-items:center;background:#0f1f2f;color:#f3fbff;border:1px solid #5bc7d7;border-radius:8px;cursor:pointer}.scavenge-choice-card:hover{background:#16324a}.scavenge-choice-card img{max-width:100%;max-height:108px;border-radius:6px;object-fit:contain}.scavenge-choice-card span{font-size:12px;line-height:1.25;text-align:center}.end-screen{background:linear-gradient(135deg,#1a3a5e,#16213e);border-radius:14px;padding:24px 16px;margin-top:12px;text-align:center;box-shadow:0 4px 24px #00000080;animation:endFade .5s ease-out}.end-screen.end-win{border:3px solid #2ecc71}.end-screen.end-lose{border:3px solid #aa3a4a;opacity:.92}@keyframes endFade{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.end-emoji{font-size:3em;line-height:1;margin-bottom:6px}.end-title{font-size:1.5em;font-weight:800;letter-spacing:.04em;margin-bottom:4px}.end-subtitle{font-size:.9em;opacity:.7;margin-bottom:12px}.end-mystatus{font-size:1.1em;font-weight:700;padding:10px;background:#0000004d;border-radius:8px;margin-bottom:12px}.end-win .end-mystatus{color:#6fdd95}.end-lose .end-mystatus{color:#ff8090}.end-roster{display:flex;flex-direction:column;gap:4px;text-align:left;max-width:320px;margin:0 auto}.end-row{padding:6px 10px;border-radius:6px;font-size:13px}.end-row.is-winner{background:#2ecc7126}.end-row.is-loser{background:#aa3a4a26;opacity:.6}.events-section{--event-row-height: 28px;--event-row-gap: 4px;background:#16213e;border-radius:14px;padding:12px;margin-top:10px}.events-label{font-size:12px;opacity:.7;margin-bottom:8px;letter-spacing:.04em;font-weight:600}.events-list{height:calc(var(--event-row-height) * 3 + var(--event-row-gap) * 2);overflow-y:auto;display:flex;flex-direction:column;gap:var(--event-row-gap);scroll-behavior:smooth}.event-row{flex:0 0 auto;display:flex;gap:8px;align-items:flex-start;font-size:12.5px;padding:6px 8px;min-height:var(--event-row-height);border-radius:6px;background:#0f0f23;line-height:1.4;animation:eventSlide .3s ease}@keyframes eventSlide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.event-time{flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;opacity:.5;padding-top:2px}.event-msg{flex:1;word-break:break-word}.event-card-link{appearance:none;border:0;background:none;color:#9fd2ff;padding:0;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:zoom-in}.event-empty{font-size:12px;opacity:.4;text-align:center;padding:12px}.player-totem{position:absolute;top:6px;left:8px;font-size:1em;line-height:1}.player-turn-arrow{position:absolute;top:6px;right:8px;font-size:.8em;color:#2c7be5}.player-avatar{font-size:2em;margin-bottom:4px}.player-name{font-size:.85em;font-weight:600;word-break:break-word}.player-status{font-size:10px;opacity:.5;margin-top:2px}.player-card.is-me{background:#1a3a5e}.player-avatar-img{width:56px;height:56px;object-fit:cover;border-radius:50%;border:2px solid #2a4a6a;margin:0 auto 4px;display:block}.player-survivor{font-size:10px;opacity:.7;font-style:italic}.player-handcount{font-size:10px;opacity:.6;margin-top:2px}.player-equipped,.player-public{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;margin-top:4px}.player-public{flex-wrap:nowrap;justify-content:flex-start;max-width:100%;overflow-x:auto;overflow-y:hidden;font-size:9px;opacity:.7}.player-public .mini-card{flex:0 0 auto}.mini-card{width:22px;height:32px;object-fit:cover;border-radius:3px;border:1px solid #2a4a6a}.my-survivor{background:#16213e;border-radius:12px;padding:10px 12px;margin-top:10px}.my-survivor:empty{display:none}.survivor-head{display:flex;gap:10px;align-items:flex-start}.survivor-thumb{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid #2a4a6a;cursor:zoom-in;flex:0 0 auto}.survivor-body{flex:1;min-width:0}.survivor-name{font-size:13px;font-weight:700;color:#f0d27a}.survivor-ability{font-size:11px;opacity:.8;margin-top:3px;line-height:1.4}.survivor-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}.survivor-btn{font-size:12px;padding:5px 10px;background:#2a4a6a;color:#ddd;border:1px solid #4a6a8a;border-radius:7px;cursor:pointer}.survivor-btn:hover:not(:disabled){background:#3a5a7a}.survivor-btn:disabled{opacity:.45;cursor:not-allowed}.survivor-btn.is-on{background:#d0a73f;color:#1a1a2e;border-color:#d0a73f;font-weight:700}.survivor-note{font-size:10.5px;opacity:.6}.snake-retry-panel{background:linear-gradient(135deg,#3a2a1a,#2a1a3e)!important;border:2px solid #d0a73f!important}.snake-retry-warn{display:inline-block;font-size:11px;color:#ff8090;margin-top:4px}.snake-retry-buttons{display:flex;gap:8px;margin-top:8px}.my-hand{background:#16213e;border-radius:14px;padding:12px;margin-top:10px;border-top:2px solid #2c7be5}.hand-label{font-size:12px;opacity:.7;margin-bottom:8px;letter-spacing:.04em}.hand-empty{font-size:12px;opacity:.4;text-align:center;padding:8px}.hand-cards{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px}.hand-card{flex:0 0 110px;background:#0f0f23;border-radius:8px;padding:6px;display:flex;flex-direction:column;align-items:center}.hand-card.is-public{border:2px solid #ffaa00}.hand-card.is-rum-selected{border:2px solid #d88a38;box-shadow:0 0 0 2px #d88a3840}.hand-card.is-scavenge-choice{border:2px solid #4fb7c5;box-shadow:0 0 0 2px #4fb7c538}.rum-panel{margin-bottom:8px;padding:8px 10px;border-radius:8px;background:#d88a3829;border:1px solid rgba(216,138,56,.5);color:#ffd7aa;font-size:12px;line-height:1.4}.rum-panel.is-done{background:#2ecc711f;border-color:#2ecc7173;color:#b9f4c8}.hand-card-img{width:100%;height:140px;object-fit:cover;border-radius:4px}.hand-card-name{font-size:11px;margin:4px 0;text-align:center;font-weight:600}.hand-card-buttons{display:flex;gap:4px;width:100%}.hand-card-buttons button{flex:1;font-size:10px;padding:4px 0}.hand-card-buttons button:disabled{opacity:.4;cursor:default}.zoomable{cursor:zoom-in}.img-modal{position:fixed;inset:0;background:#000000e0;z-index:9999;display:none;align-items:center;justify-content:center;cursor:zoom-out;padding:20px;animation:fadeIn .15s ease}.img-modal.is-open{display:flex}.img-modal img{max-width:80vw;max-height:78dvh;border-radius:10px;box-shadow:0 10px 40px #0009}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.small{font-size:12px;opacity:.7;margin-top:6px}pre{white-space:pre-wrap;word-break:break-word;background:#0a0a18;color:#4af;padding:10px;border-radius:10px;min-height:80px;font-size:11px;max-height:200px;overflow-y:auto}#log{line-height:1.45;height:calc(14.5em + 20px);min-height:0;max-height:none}@media (orientation: portrait){html,body{height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:auto}#app{height:auto;min-height:100dvh;overflow:visible}body.game-started .wrap,body.game-started #gameCard{height:auto;overflow:visible}.game-layout{display:flex;flex-direction:column;gap:10px}.game-layout-left,.game-layout-right,.game-left-workspace{display:contents}#topGameStatus{order:1}.game-hud{order:2}.events-section{order:3}.game-players-panel{order:4}.my-survivor{order:5}.my-hand{order:6}.events-section,.game-players-panel,.my-survivor,.my-hand{margin-top:0}}@media (orientation: landscape) and (max-height: 600px){body.game-started{overflow:hidden}body.game-started .wrap{width:100%;max-width:none;height:100dvh;padding:6px;margin:0}body.game-started .wrap>h1{display:none}body.game-started #gameCard{height:100%}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;height:100%}.game-layout-left,.game-layout-right{min-width:0;min-height:0;display:grid;gap:8px}.game-layout-left{grid-template-rows:auto minmax(0,1fr)}.game-layout-right{grid-template-rows:auto minmax(0,1fr) auto}.top-game-status,.game-left-workspace,.game-hud,.game-players-panel,.events-section,.my-hand{margin:0;min-height:0;overflow:hidden}.top-game-status{padding:4px 6px;font-size:9px;gap:4px 7px;justify-content:flex-end}.top-members{max-width:38vw;overflow-x:auto;flex-wrap:nowrap}.top-actions{gap:4px}.top-action{padding:4px 5px;font-size:9px}.game-hud{padding:clamp(4px,1vh,6px) clamp(6px,1.2vw,8px);overflow-x:hidden;overflow-y:auto}.game-left-workspace{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px}.hud-top{margin-bottom:5px}.hud-day{font-size:clamp(.95em,2.6vh,1.12em)}.card-badge{width:clamp(24px,4vw,28px);height:clamp(34px,6vh,40px)}.phase-row{gap:4px;margin-top:3px;padding-bottom:3px}.action-panel-label{font-size:9px;margin-bottom:4px}.action-buttons{gap:4px}.action-btn,.action-wood-group .action-btn{font-size:10px;padding:4px 7px}.mini-select{font-size:9px;padding:3px 4px}.resource-row{gap:4px}.resource-item{min-width:0;min-height:clamp(42px,9vh,46px);padding:2px}.resource-item .ri-icon,.resource-item .ri-val{font-size:.9em}.resource-item .ri-lbl{font-size:8px}.pebble-section{margin-top:3px;padding-top:4px;font-size:9px}.pebble-bag-display{gap:5px}.game-players-panel{overflow-x:auto;overflow-y:hidden}.players-grid{display:flex;width:max-content;min-width:100%;gap:5px;margin:0}.target-select-panel{grid-column:auto;flex:0 0 clamp(132px,16vw,156px);align-self:stretch;display:grid;grid-template-rows:auto 1fr auto;align-items:start;gap:4px;padding:6px;border-radius:8px}.target-select-title{font-size:9px;line-height:1.25}.target-select-help{font-size:8px;line-height:1.3;color:#c9d7f2}.target-select-actions{margin-left:0;gap:4px}.target-select-actions .mini{flex:1;min-width:0;padding:3px 4px;font-size:8px}.player-card{flex:0 0 clamp(84px,10vw,94px);border-radius:8px;padding:4px 3px}.player-avatar-img,.player-avatar{width:clamp(26px,4vh,30px);height:clamp(26px,4vh,30px)}.player-name{font-size:9px}.player-survivor,.player-handcount,.player-status{font-size:7.5px}.my-survivor{margin:0;padding:4px 6px;overflow:hidden}.survivor-thumb{width:clamp(28px,4.5vh,32px);height:clamp(28px,4.5vh,32px)}.survivor-name{font-size:10px}.survivor-ability{font-size:clamp(8px,1.65vh,9px)}.survivor-controls{margin-top:3px}.survivor-note{font-size:clamp(7px,1.4vh,8px)}.events-section,.my-hand{padding:6px;border-radius:8px}.events-section{--event-row-height: calc(1.25*clamp(8px, 1.45vh, 9px) + 4px) ;--event-row-gap: 4px}.events-list{height:calc(var(--event-row-height) * 3 + var(--event-row-gap) * 2)}.events-label{margin-bottom:4px;font-size:10px}.event-row{flex:0 0 auto;gap:4px;padding:2px 4px;font-size:clamp(8px,1.45vh,9px);min-height:calc(1.25em + 4px);line-height:1.25}.event-time{font-size:8px;padding-top:0}.my-hand{display:flex;flex-direction:column;align-self:end}.hand-label{margin-bottom:4px}.hand-cards{flex:0 0 auto;align-items:flex-start;padding-bottom:2px;overflow-x:auto;overflow-y:hidden}.hand-card{flex-basis:clamp(70px,9vw,78px);padding:3px}.hand-card-img{height:clamp(72px,15vh,86px)}.hand-card-name{font-size:8px;margin:2px 0}.hand-card-buttons button{font-size:8px;padding:2px 0}}.shoot-cutscene-overlay{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 45%,#960a0a8c,#1e0000f7 70%);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);cursor:not-allowed;overflow:hidden;animation:cutscene-bg-pulse 1.6s ease-in-out infinite}.shoot-cutscene-overlay:before,.shoot-cutscene-overlay:after{content:"";position:absolute;left:-20%;width:140%;height:3px;background:linear-gradient(90deg,transparent,rgba(255,70,70,.9),transparent);filter:blur(1px);animation:cutscene-streak 1.4s linear infinite}.shoot-cutscene-overlay:before{top:32%}.shoot-cutscene-overlay:after{bottom:32%;animation-delay:.7s}.shoot-cutscene-overlay.fade-out{animation:cutscene-fade .6s forwards}.shoot-cutscene-card{position:relative;text-align:center;color:#fff;padding:0 24px}.shoot-cutscene-icon{font-size:72px;line-height:1;filter:drop-shadow(0 4px 14px rgba(0,0,0,.6));animation:cutscene-shake .5s ease-in-out infinite}.shoot-cutscene-text{margin-top:26px;font-size:34px;font-weight:800;letter-spacing:.06em;color:#ffeaea;text-shadow:0 2px 16px rgba(0,0,0,.75),0 0 24px rgba(255,60,60,.5);min-height:1.4em}.shoot-cutscene-text.is-name{font-size:52px;color:#ffd34a;text-shadow:0 2px 18px rgba(0,0,0,.8),0 0 30px rgba(255,180,40,.7)}.shoot-cutscene-text.pop{animation:cutscene-pop .55s cubic-bezier(.2,1.4,.35,1)}@keyframes cutscene-pop{0%{transform:scale(.55) translateY(8px);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}@keyframes cutscene-shake{0%,to{transform:translate(-3px) rotate(-9deg)}50%{transform:translate(3px) rotate(9deg)}}@keyframes cutscene-bg-pulse{0%,to{background-color:#1e0000eb}50%{background-color:#460000f5}}@keyframes cutscene-streak{0%{transform:translate(-30%);opacity:0}50%{opacity:1}to{transform:translate(30%);opacity:0}}@keyframes cutscene-fade{to{opacity:0}}
