/* The scene and its performers use the SAME coordinates at every card width. */
.live-arena .arena-game-grid>.activity-card[data-live-game=heist][data-live=true]{order:-1;flex:1 1 100%;width:100%;max-width:none;min-width:0}
.activity-card[data-live-game=heist][data-live=true] .heist-story{width:100%;margin:0}
.activity-card[data-live-game=heist][data-live=true] .heist-story-scene{aspect-ratio:640/300;min-height:0}
.heist-test-controls{margin-top:20px;padding:16px;border:1px dashed #9b7ddd88;border-radius:12px;text-align:left;background:#9b7ddd0d;display:grid;gap:10px}
.heist-test-controls p{margin:0;color:#aabbcf;font-size:.75rem;line-height:1.5}.heist-test-controls label{display:grid;gap:6px;font-size:.75rem}.heist-test-controls select{width:100%}
.heist-test-notice{border:1px solid #9b7ddd88;background:#9b7ddd15;border-radius:10px;padding:10px 12px;color:#d8c9fb;font-size:.75rem;line-height:1.5}
.scene-v2.heist-vault{display:block;height:auto;margin:0;place-items:normal}
.scene-v2 .heist-story-scene,.scene-v2.is-cinematic .heist-story-scene,.scene-v2.is-replay .heist-story-scene{height:auto;aspect-ratio:640/300;min-height:0;background:#101a29;overflow:hidden}
.scene-v2.heist-vault .heist-story-progress i{position:static;transform:none;font-size:inherit}
.scene-v2 .heist-story-scene:after{display:none}
.heist-set,.heist-action-stage{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;max-width:none}
.heist-action-stage{z-index:6}
.heist-scene-dissolve{position:absolute;inset:0;z-index:9;overflow:hidden;pointer-events:none;background:#101a29}
.heist-scene-dissolve *{animation:none!important;transition:none!important;pointer-events:none!important}
@media(prefers-reduced-motion:reduce){.heist-scene-dissolve{display:none}}
.heist-pirate{--heist-glow:#e3c18a}.heist-underwater{--heist-glow:#7fddd7}.heist-clockwork{--heist-glow:#efce86}.heist-desert{--heist-glow:#e9af87}.heist-airship{--heist-glow:#d3b6eb}.heist-arctic{--heist-glow:#9fe8e5}
.scene-gear{animation:wheel-roll 18s linear infinite}.scene-pendulum{animation:scene-pendulum 4s ease-in-out infinite alternate}.scene-bubbles{animation:scene-bubbles 7s linear infinite}.scene-clouds{animation:scene-clouds 18s ease-in-out infinite alternate}
@keyframes scene-pendulum{from{rotate:-12deg}to{rotate:12deg}}@keyframes scene-bubbles{from{translate:0 25px;opacity:0}40%{opacity:.7}to{translate:0 -70px;opacity:0}}@keyframes scene-clouds{to{translate:35px 0}}
.scene-v2 .crew-character{display:block;overflow:visible;margin:0;transform:none}
.story-performer .crew-character>ellipse{visibility:hidden}
.scene-v2 .crew-limb{animation:none;transform-origin:0 0}
.performer-name rect{fill:#0a1424ed;stroke:#72ccb966;stroke-width:1}
.performer-name text{fill:#a6f0df;font:600 10px system-ui,sans-serif}
.performer-body{transform-box:view-box}
.heist-extra-crew{position:absolute;right:10px;top:10px;z-index:8;color:#e1d8ff;background:#10182deb;border:1px solid #7c6b9b;border-radius:8px;font-size:11px;padding:6px 9px;max-width:70%}
.heist-extra-crew summary{cursor:pointer}.heist-extra-crew span{display:block;max-height:110px;overflow:auto;line-height:1.6;padding-top:8px}
.set-threat{opacity:0;transition:opacity .4s}.event-incident .set-threat,.event-lockdown .set-threat,.event-rescue_attempt .set-threat,.event-rescue_failed .set-threat,.event-escape_failed .set-threat{opacity:1}
.set-ghost{animation:ghost-drift 4s ease-in-out infinite}.set-drone{animation:drone-patrol 5s ease-in-out infinite}.set-security{animation:guard-patrol 5s ease-in-out infinite}
.set-loot{opacity:0;transition:opacity .6s;filter:drop-shadow(0 0 10px #ffe2a766)}
.event-loot .set-loot,.outcome-won .set-loot{opacity:1}
.train-landscape{animation:train-landscape 14s linear infinite}.train-sleepers{animation:track-move .5s linear infinite}.train-wheel{animation:wheel-roll 1.1s linear infinite}.set-train{animation:carriage-sway .7s ease-in-out infinite alternate}
.train-cargo-door{transition:transform 1s}.event-teamwork .train-cargo-door,.event-loot .train-cargo-door,.event-escape .train-cargo-door,.outcome-won .train-cargo-door{transform:translateX(85px)}
.manor-mist{animation:manor-mist 9s ease-in-out infinite alternate}.portrait-eyes{animation:portrait-watch 5s ease-in-out infinite}.set-portrait{transform-origin:320px 130px}
.event-incident .set-portrait,.event-rescue_failed .set-portrait{animation:portrait-shudder .6s ease-in-out 3;filter:drop-shadow(0 0 15px #b795e277)}
.vault-dial{transform-origin:320px 139px}.event-teamwork .vault-dial{animation:wheel-roll 5s ease-in-out infinite}.event-loot .vault-dial,.event-escape .vault-dial,.outcome-won .vault-dial{transform:translateX(-92px) scaleX(.35);transition:transform 1s}
.gallery-lasers{animation:laser-sweep 4s ease-in-out infinite;filter:drop-shadow(0 0 4px #ff6b83)}.event-teamwork .gallery-lasers,.event-loot .gallery-lasers,.outcome-won .gallery-lasers{opacity:.08;animation:none}
.core-signal{stroke-dasharray:150;animation:core-scan 2s linear infinite}
@keyframes train-landscape{to{transform:translateX(-640px)}}@keyframes track-move{to{stroke-dashoffset:37}}@keyframes wheel-roll{to{transform:rotate(360deg)}}@keyframes carriage-sway{to{translate:0 1.5px}}@keyframes ghost-drift{50%{translate:-35px -13px}}@keyframes drone-patrol{50%{translate:-50px -18px}}@keyframes guard-patrol{50%{translate:-25px 0}}@keyframes manor-mist{to{translate:65px 0;opacity:.05}}@keyframes portrait-watch{35%,65%{translate:3px 0}}@keyframes portrait-shudder{30%{rotate:-3deg}65%{rotate:3deg}}@keyframes laser-sweep{50%{translate:0 15px;opacity:.35}}@keyframes core-scan{to{stroke-dashoffset:-300}}
@media(prefers-reduced-motion:reduce){.scene-v2 *,.scene-v2 *:before,.scene-v2 *:after{animation:none!important;transition:none!important}}
.heist-end-screen{padding:24px;background:radial-gradient(ellipse at 50% 0,#44354c66,transparent 60%),#101a2a}
.heist-report-heading{text-align:center;margin-bottom:24px}.heist-report-heading>span{font-size:11px;letter-spacing:2px;color:#b9a6d6}.heist-report-heading h3{font-size:28px;margin:8px 0;color:#f7d792}
.heist-end-screen section{margin:0 0 24px}.heist-end-screen h4{margin:0 0 8px;font-size:15px}.heist-end-screen p{font-size:12px;color:#a7b6cd;margin:8px 0 14px}
.heist-end-screen ul,.heist-end-screen ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;padding:0;margin:0;list-style:none}
.heist-report-winners{border:1px solid #d1ac6355;border-radius:14px;padding:18px;background:#d2a85c0a}.heist-report-winners h4{color:#f7d792}
.heist-report-player{display:flex;align-items:center;min-width:0;padding:8px;border:1px solid #4c526866;border-radius:10px;background:#192337}.heist-report-player.is-winner{border-color:#cbaa6855;background:#382f32}
.heist-report-avatar{width:66px;height:74px;flex:0 0 66px}.heist-report-player>div{min-width:0}.heist-report-player strong{display:block;font-size:13px;overflow-wrap:anywhere}.heist-report-player span{display:block;font-size:11px;margin-top:6px;color:#c0b4cc}.heist-report-player.is-winner span{color:#f6d997}
.heist-report-others{padding-top:8px}.heist-report-others h4{color:#bdc9da}.heist-report-player.is-out .heist-report-avatar{opacity:.75}
@media(max-width:520px){.heist-end-screen{padding:14px}.heist-end-screen ul,.heist-end-screen ol{grid-template-columns:1fr}.heist-report-heading h3{font-size:23px}}
