/* 圆桌演出：灯光与印记只覆盖场景，档案与控制始终可以操作。 */
.night-curtain{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#02061140,#020510b8 88%);opacity:0;transition:opacity 1.2s ease}
.room-stage .room-art{transition:filter 1.2s ease}
.room-stage.is-night .room-art{filter:brightness(.34) saturate(.6)}
.room-stage.is-night .night-curtain{opacity:1}
.room-stage.is-night .dust{opacity:.12}
.room-stage.is-night .player-seat:not(.spotlit):not(.dead) .portrait{filter:brightness(.43) saturate(.65)}
.room-stage.is-night .player-seat:not(.spotlit) .seat-name{border-color:#3c4359}
.room-stage.is-night .player-seat.spotlit .portrait{filter:brightness(1.17) saturate(1.07);transition:filter .28s}
.player-seat.spotlit{z-index:5}
.player-seat.spotlit .seat-name{border-color:var(--spot-color,#d7bbed);box-shadow:0 0 17px var(--spot-glow,#b6a0ed40)}
.player-seat{--spot-color:#c0b4ff;--spot-glow:#a394ff48}
.player-seat.spot-wolf{--spot-color:#ffbd9b;--spot-glow:#ff906458}
.player-seat.spot-seer{--spot-color:#d1c0ff;--spot-glow:#ad8aff70}
.player-seat.spot-witch{--spot-color:#92f1c6;--spot-glow:#56dea860}
.seat-effects{position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:3}
.seat-beam{position:absolute;width:165%;height:210%;bottom:28%;left:-32.5%;background:linear-gradient(180deg,transparent,var(--spot-glow) 72%,transparent);clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);opacity:0;transform-origin:50% 100%;transition:opacity .3s}
.spotlit .seat-beam{opacity:.8;animation:beam-breathe 3.4s ease-in-out infinite}
.scene-caption{position:absolute;top:53%;left:50%;width:43%;transform:translate(-50%,-50%);z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;pointer-events:none;text-shadow:0 2px 18px #000,0 0 35px #090719;color:#e6d8ff;transition:opacity .3s}
.scene-caption[hidden]{display:none}
.scene-ornament{font-size:31px;color:#c6b2ed;line-height:1}
.scene-heading{font-family:Georgia,"Songti SC","SimSun",serif;font-size:clamp(18px,2.1vw,30px);font-weight:500;letter-spacing:4px;line-height:1.5}
.scene-subtitle{font-size:10px;letter-spacing:1px;color:#a49db6;line-height:1.8}
.scene-caption[data-tone=antidote]{color:#b5ffda}.scene-caption[data-tone=wolf_target]{color:#ffc0b3}
.has-cinematic .table-inscription{opacity:0}.has-dialogue .scene-caption{opacity:0}
.room-caption{z-index:1}
.danger-sigil{position:absolute;top:-30%;left:50%;transform:translateX(-50%);display:grid;place-items:center;width:43px;height:49px;font-family:"STKaiti","KaiTi","SimSun",serif;font-size:35px;font-weight:900;color:#ff566b;line-height:1;text-shadow:0 0 8px #b91236,0 0 22px #ed234e;filter:drop-shadow(0 3px 2px #18000b);animation:danger-heartbeat 1.5s ease-in-out infinite}
.danger-sigil::before{content:'';position:absolute;inset:3px -2px;border:1px solid #fa516b70;transform:rotate(45deg) scale(.72);background:#3e071d70;z-index:-1}
.danger-sigil[hidden],.seer-verdict[hidden]{display:none}
.in-danger .portrait{box-shadow:0 0 29px #ff375957}
.is-saved .danger-sigil{color:#88ffc0;text-shadow:0 0 12px #31d393,0 0 27px #7affbd;animation:danger-cleared 2.3s ease-in-out forwards}
.is-saved .danger-sigil::before{border-color:#85ffd49c;background:#105d3e8c}
.potion-ripple{display:none;position:absolute;inset:5% -10% 20%;border:2px solid #cb83ff;border-radius:50%;opacity:0}
.is-poisoned .potion-ripple{display:block;animation:poison-ripple 2s ease-in-out infinite;box-shadow:0 0 24px #9f5fe080,inset 0 0 30px #9253d850}
.seer-verdict{position:absolute;top:-8%;left:50%;transform:translateX(-50%);padding:7px 12px;border:1px solid #d8c4ff;border-radius:6px;color:#ece0ff;background:linear-gradient(135deg,#39245bf5,#161829f5);box-shadow:0 0 25px #ba93ff73;white-space:nowrap;font-size:13px;letter-spacing:2px;animation:verdict-reveal .55s ease-out both}
.seer-verdict[data-camp=wolf]{border-color:#ff8c9b;color:#ffc2c8;background:linear-gradient(135deg,#531e37f5,#1b1027f5)}
.seer-check-mark{position:absolute;right:-15%;top:0;display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #9788b978;border-radius:5px;background:linear-gradient(135deg,#282239f2,#131925f5);box-shadow:0 3px 10px #0008;color:#d6cbea;font-size:10px;font-weight:500;line-height:1.2;white-space:nowrap;z-index:2;letter-spacing:.3px}
.seer-check-mark[hidden]{display:none}.seer-check-mark svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;flex-shrink:0}.seer-check-mark[data-camp=wolf]{color:#edb0ba;border-color:#ac627978;background:linear-gradient(135deg,#35202df5,#19141ff5)}
.count-12 .seer-check-mark{padding:4px 5px;font-size:9px;gap:3px}.count-12 .seer-check-mark svg{width:11px;height:11px}
@media(max-width:560px){.seer-check-mark{right:-7%;padding:3px 4px;gap:3px;font-size:8px;letter-spacing:0}.seer-check-mark svg{width:10px;height:10px}.count-12 .seer-check-mark{right:-9%;font-size:7px;padding:3px;gap:2px}.count-12 .seer-check-mark svg{width:9px;height:9px}}
.is-revealed.in-danger .danger-sigil{left:88%;top:-6%}
.player-seat.dead{filter:none;opacity:1}.player-seat.dead::after{display:none}
.player-seat.dead .portrait,.player-seat.dead:hover .portrait{filter:grayscale(1) brightness(.19);transform:none;box-shadow:none}
.player-seat.dead .seat-name{border-color:#43434e;color:#93909b;background:#0a0c14ed}
.player-seat.dead .role-tag{filter:grayscale(.9);opacity:.48}.player-seat.dead .seat-number{color:#7f7d8b;border-color:#555360}
.death-marks{position:absolute;inset:0 0 25%;display:flex;align-items:center;justify-content:center;gap:0}
.death-mark{position:relative;display:block;width:56%;filter:drop-shadow(0 4px 6px #000b)}
.death-mark svg{display:block;width:100%;height:auto;aspect-ratio:1;stroke-width:1.6}
.death-emblem{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.death-wolf{width:67%;filter:drop-shadow(0 3px 8px #000c) drop-shadow(0 0 5px #a7113044)}
.death-poison{width:64%;filter:drop-shadow(0 3px 8px #000c) drop-shadow(0 0 5px #9036c744)}
.death-hunter_shot{color:#e7b575;width:45%}
.death-exile{width:79%}
.death-marks:has(.death-mark:nth-child(2)) .death-mark{width:49%;flex-shrink:0}
.scene-paused .seat-effects *{animation-play-state:paused!important}
.player-seat.in-danger .seat-status{bottom:calc(100% + 42px)}
.player-seat.is-scanned .seat-status{display:none}
@keyframes beam-breathe{50%{opacity:.48}}
@keyframes danger-heartbeat{50%{text-shadow:0 0 15px #ff254e,0 0 35px #ff254e;transform:translateX(-50%) scale(1.09)}}
@keyframes danger-cleared{0%{opacity:1;transform:translateX(-50%) scale(1.12)}55%{opacity:1;transform:translate(-50%,-7px) scale(1)}100%{opacity:0;transform:translate(-50%,-24px) scale(.7);filter:blur(3px)}}
@keyframes poison-ripple{50%{opacity:.8;transform:scale(1.08)}0%,100%{opacity:.2;transform:scale(.86)}}
@keyframes verdict-reveal{from{opacity:0;transform:translate(-50%,8px) scale(.72)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes death-stamp{from{opacity:0;scale:1.8}to{opacity:1;scale:1}}
@keyframes ballot-land{0%{opacity:0;translate:0 -24px;rotate:-8deg;scale:1.12}70%{opacity:1;translate:0 3px;rotate:2deg}100%{opacity:1;translate:0 0;rotate:0deg;scale:1}}
@media(max-width:560px){.danger-sigil{font-size:28px;width:33px;height:37px;top:-26%}.seer-verdict{font-size:10px;padding:5px 7px;letter-spacing:1px}.scene-heading{font-size:16px;letter-spacing:2px}.scene-subtitle{font-size:9px;letter-spacing:0}.scene-ornament{font-size:24px}.scene-caption{gap:4px}.count-12 .danger-sigil{font-size:23px;width:27px;height:31px}.count-12 .seer-verdict{font-size:8px;letter-spacing:0}.seat-beam{height:170%}}
@media(prefers-reduced-motion:reduce){.night-curtain,.room-stage .room-art,.seat-beam{transition:none}.seat-effects *{animation:none!important}.is-saved .danger-sigil{opacity:1}.spotlit .seat-beam{opacity:.65}}

/* Finite transitions sit behind the seats and never take focus or pointer input. */
.cinematic-vfx{position:absolute;inset:0;overflow:hidden;contain:layout paint;pointer-events:none;z-index:1;border-radius:inherit}
.cinematic-vfx *,.death-burst,.death-burst *{pointer-events:none}
.scene-burst{--scene-color:#b9a2ee;--scene-glow:#a38dcc3b;position:absolute;inset:0;overflow:hidden;animation:scene-veil 2.4s ease-out both}
.scene-halo{position:absolute;inset:-10%;background:radial-gradient(ellipse at 50% 50%,transparent 15%,var(--scene-glow) 50%,transparent 76%);animation:scene-halo-open 2.1s ease-out both}
.scene-orbit{position:absolute;left:50%;top:48%;width:32%;aspect-ratio:1;border:1px solid var(--scene-color);border-radius:50%;opacity:.4;animation:scene-orbit-open 2.1s ease-out both;box-shadow:0 0 24px var(--scene-glow),inset 0 0 24px var(--scene-glow)}
.scene-orbit::before,.scene-orbit::after{content:'';position:absolute;inset:9%;border:1px solid var(--scene-color);border-radius:inherit;opacity:.3}.scene-orbit::after{inset:-12%;border-style:dashed;opacity:.22}
.scene-glyph{position:absolute;left:50%;top:37%;font:clamp(35px,4vw,58px)/1 Georgia,"Songti SC",serif;color:var(--scene-color);text-shadow:0 0 25px var(--scene-glow);animation:scene-symbol 2.2s ease-out both}
.scene-particle{position:absolute;left:50%;top:47%;width:3px;height:3px;border-radius:50%;background:var(--scene-color);box-shadow:0 0 9px var(--scene-color);opacity:0;animation:scene-drift 2s ease-out var(--delay) both}
.scene-pulse .scene-heading{animation:scene-heading-in .75s ease-out both}.scene-pulse .scene-ornament{visibility:hidden}
.scene-burst-nightfall{--scene-color:#b5beed;--scene-glow:#5969c952;background:linear-gradient(180deg,#12173380,transparent 75%)}
.scene-burst-nightfall .scene-orbit{border-left-width:9px;box-shadow:-13px 0 35px #8e99ef38}.scene-burst-nightfall .scene-glyph{font-size:65px}
.scene-burst-wolves,.scene-burst-wolf_target,.scene-burst-victory_wolf{--scene-color:#d995ac;--scene-glow:#a1325740}
.scene-burst-wolf_target .scene-orbit{border-radius:5%;width:24%;border-width:2px}
.scene-burst-wolf_target .scene-glyph{letter-spacing:-12px;font-size:90px;color:#eba6a2;text-shadow:13px 0 #b76373,-13px 0 #b76373;rotate:-13deg}
.scene-burst-seer_search,.scene-burst-seer_reveal{--scene-color:#d8c8ff;--scene-glow:#9c74d64f}.scene-burst-seer_search .scene-orbit{border-style:dashed}.scene-burst-seer_reveal .scene-glyph{font-size:64px}
.scene-burst-witch,.scene-burst-antidote{--scene-color:#9ee4ca;--scene-glow:#3bb39047}.scene-burst-antidote .scene-orbit{border-width:3px}.scene-burst-witch .scene-glyph{font-size:48px}
.scene-burst-poison{--scene-color:#cba0e9;--scene-glow:#9860b04d}.scene-burst-poison .scene-halo{background:radial-gradient(ellipse at 50% 75%,#925bb15c,transparent 58%)}.scene-burst-poison .scene-particle{width:9px;height:9px;background:transparent;border:1px solid var(--scene-color);box-shadow:none}
.scene-burst-dawn,.scene-burst-victory_good{--scene-color:#f3d6a0;--scene-glow:#dcac5948}.scene-burst-dawn .scene-halo{background:linear-gradient(0deg,transparent 25%,#e5b26328 55%,#f1d7990d)}.scene-burst-dawn .scene-orbit{border:0;border-top:2px solid #ffe0a7;width:70%;height:40%;box-shadow:0 -15px 60px #edc47840}
.scene-burst-vote,.scene-burst-exile{--scene-color:#e4c8a3;--scene-glow:#b0956638}.scene-burst-vote .scene-particle,.scene-burst-exile .scene-particle{width:9px;height:13px;box-shadow:none;border-radius:1px;background:linear-gradient(150deg,#eed8b4,#ad9270)}.scene-burst-exile .scene-orbit{border-radius:6px;border-style:double;border-width:3px;width:27%}
.scene-burst-hunter_shot{--scene-color:#efcf9d;--scene-glow:#cd97523d}.scene-burst-hunter_shot .scene-orbit{border-width:2px;border-style:dashed}.scene-burst-hunter_shot .scene-halo{background:linear-gradient(170deg,transparent 48.5%,#ffe3ab45 50%,transparent 51.5%);animation:shot-trail 1.2s ease-out both}
.scene-burst-victory_good,.scene-burst-victory_wolf{animation-duration:4.2s}.scene-burst-victory_good .scene-halo,.scene-burst-victory_wolf .scene-halo{animation-duration:3.7s}.scene-burst-victory_good .scene-orbit,.scene-burst-victory_wolf .scene-orbit{animation-duration:3.8s;border-style:double;border-width:4px}.scene-burst-victory_good .scene-particle,.scene-burst-victory_wolf .scene-particle{animation-duration:3.5s}.scene-burst-victory_good .scene-glyph,.scene-burst-victory_wolf .scene-glyph{animation-duration:3.8s}
.scene-caption[data-tone=vote],.scene-caption[data-tone=exile],.scene-caption[data-tone=victory_good]{color:#f4d7a3}.scene-caption[data-tone=poison]{color:#d7b4f3}.scene-caption[data-tone=victory_wolf]{color:#e9b2c7}
.scene-finale .scene-caption{opacity:1}.scene-finale .scene-subtitle{color:#c3b3ab}.scene-finale .scene-heading{font-size:clamp(22px,2.8vw,37px);letter-spacing:5px}.scene-finale .scene-ornament{color:#d8ba87;font-size:42px}.room-stage[data-scene=victory_wolf] .scene-ornament{color:#d5a3bd}

/* A departure combines only disclosed causes with the public character accent. */
.death-unknown{color:#a9afca;width:35%;opacity:.8}.death-unknown svg{fill:#77809e1a;stroke:currentColor;stroke-width:1.2}
.has-death-burst .death-mark{animation:death-stamp .65s ease-out both}.has-death-burst .death-exile{animation:ballot-land .75s ease-out both}
.death-burst{--departure:#b9c3dc;--departure-glow:#9aabc357;position:absolute;inset:-20% -20% 12%;z-index:5;opacity:0;animation:departure-presence 2.85s ease-out both}
.departure-ring{position:absolute;inset:20% 17%;border:1px solid var(--departure);border-radius:50%;box-shadow:0 0 16px var(--departure-glow);animation:departure-ring 2.35s ease-out both}
.departure-aura{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse,var(--departure-glow),transparent 65%);animation:departure-aura 2.5s ease-out both}
.departure-particle{position:absolute;left:50%;top:47%;width:5px;height:8px;background:var(--departure);border-radius:50%;opacity:0;box-shadow:0 0 7px var(--departure-glow);animation:departure-scatter 2.35s ease-out var(--delay) both}
.death-accent-frost{--departure:#b9ebff;--departure-glow:#7fcef07a}.death-accent-frost .departure-particle{width:9px;height:15px;clip-path:polygon(50% 0,100% 60%,50% 100%,0 60%);border-radius:0;background:linear-gradient(120deg,#e3faff,#78a9d3)}.death-accent-frost .departure-ring{border-radius:18%;border-style:dashed}
.death-accent-rose{--departure:#e6a1bd;--departure-glow:#c4618c68}.death-accent-rose .departure-particle{width:12px;height:9px;border-radius:80% 5% 80% 25%;background:linear-gradient(140deg,#f1b5c8,#9a345b)}.death-accent-rose .departure-ring{border-style:dotted}
.death-accent-circuit{--departure:#9ae8e0;--departure-glow:#59d8ce64}.death-accent-circuit .departure-particle{width:3px;height:13px;border-radius:0}.death-accent-circuit .departure-ring{border-radius:4px;border-style:dashed;animation:departure-digital 2.35s steps(5,end) both}.death-accent-circuit .departure-aura{background:repeating-linear-gradient(0deg,transparent 0 11px,#76d9db1f 12px 13px);border-radius:0}
.death-accent-bamboo{--departure:#bed5a0;--departure-glow:#8caa6668}.death-accent-bamboo .departure-particle{width:5px;height:21px;border-radius:100% 0 100% 0;box-shadow:none}.death-accent-bamboo .departure-ring{border:0;border-left:2px solid #a0c78b;border-right:1px solid #a0c78b}
.death-accent-ember{--departure:#efba79;--departure-glow:#e6a04b64}.death-accent-ember .departure-particle{width:4px;height:7px;border-radius:70% 30% 65% 35%;background:#ffd0a0}.death-accent-ember .departure-aura{background:radial-gradient(ellipse at bottom,#e3a25677,transparent 60%)}
.death-accent-ink{--departure:#aea4c6;--departure-glow:#635a926c}.death-accent-ink .departure-particle{width:10px;height:20px;border-radius:60% 35% 80% 10%;background:linear-gradient(#8f839f,#242130);box-shadow:none}.death-accent-ink .departure-ring{border:0;border-top:5px solid #776b897c;transform:rotate(-20deg)}
.death-accent-tide{--departure:#93dce9;--departure-glow:#4ea8c773}.death-accent-tide .departure-particle{width:8px;height:13px;border-radius:60% 40% 60% 0}.death-accent-tide .departure-ring{border-width:2px;border-top-color:transparent;border-bottom-color:transparent}
.death-accent-clock{--departure:#dfc791;--departure-glow:#bb9b6473}.death-accent-clock .departure-ring{border:3px dotted #dcc592}.death-accent-clock .departure-ring::before,.death-accent-clock .departure-ring::after{content:'';position:absolute;left:50%;top:50%;height:29%;width:1px;transform-origin:top;background:#e4d2aa;transform:rotate(35deg)}.death-accent-clock .departure-ring::after{height:37%;transform:rotate(155deg)}.death-accent-clock .departure-particle{width:3px;height:10px;border-radius:0}
.death-accent-petal{--departure:#edbfd5;--departure-glow:#d08aad73}.death-accent-petal .departure-particle{width:10px;height:13px;border-radius:85% 5% 65% 35%;background:linear-gradient(#ffe0e9,#c783a8)}.death-accent-petal .departure-ring{border-width:1px;border-style:dotted;opacity:.6}
.death-accent-sand{--departure:#e5c698;--departure-glow:#c0a06f6b}.death-accent-sand .departure-particle{width:3px;height:3px;box-shadow:3px 6px #d8ba8766,-4px 4px #f0d9b060}.death-accent-sand .departure-ring{border-style:dotted;border-radius:15% 60% 20% 65%}
.death-accent-lightning{--departure:#cec1ff;--departure-glow:#a496ec73}.death-accent-lightning .departure-particle{width:9px;height:19px;border-radius:0;clip-path:polygon(55% 0,10% 56%,44% 52%,30% 100%,90% 38%,58% 42%)}.death-accent-lightning .departure-ring{border-radius:4%;border-style:dashed}
.death-accent-mirror{--departure:#cce5e8;--departure-glow:#99bdca70}.death-accent-mirror .departure-particle{width:11px;height:18px;border-radius:0;clip-path:polygon(20% 0,100% 23%,65% 100%,0 65%);background:linear-gradient(120deg,#e9fcff,#87a4b5 48%,#e2ebff 53%,#8594b5)}.death-accent-mirror .departure-ring{border-radius:4%;border-style:double;border-width:3px}
.departure-cause{position:absolute;inset:19% 22%;opacity:0;animation:departure-cause 1.65s ease-out both}
.departure-wolf{background:linear-gradient(115deg,transparent 27%,#db9da3d9 28%,#dd9e9d 30%,transparent 31% 46%,#db9da3 47% 49%,transparent 50% 63%,#db9da3 64% 66%,transparent 67%);filter:drop-shadow(0 0 5px #ca75805e);transform:rotate(-12deg)}
.departure-poison{border:2px solid #c399e7;border-radius:50%;box-shadow:0 0 19px #a370c580,inset 0 0 19px #a370c560;animation:departure-poison 2.2s ease-out both}.departure-poison::after{content:'';position:absolute;inset:15%;border:1px solid #d2acea;border-radius:50%}
.departure-exile{inset:25% 32%;border:1px solid #dbc2a0;background:linear-gradient(100deg,#d0b28733,#e1ccb833);border-radius:2px;transform:rotate(-14deg)}.departure-exile::after{content:'';position:absolute;left:20%;right:20%;top:30%;height:2px;background:#ddc5a5;box-shadow:0 8px #ddc5a566,0 16px #ddc5a544}
.departure-hunter_shot{border:2px solid #edd1a9;border-radius:50%;background:radial-gradient(circle,#f8d9a780,transparent 33%);animation:departure-shot 1.5s ease-out both}.departure-hunter_shot::before,.departure-hunter_shot::after{content:'';position:absolute;background:#efd1a4;inset:49% -12%;height:1px}.departure-hunter_shot::after{inset:-12% 49%;width:1px;height:auto}
.scene-paused .cinematic-vfx *,.scene-paused .scene-caption *,.scene-paused .seat-effects *,.scene-paused .seat-effects *::before,.scene-paused .seat-effects *::after{animation-play-state:paused!important}
@keyframes scene-veil{0%{opacity:0}13%,65%{opacity:1}100%{opacity:0}}
@keyframes scene-halo-open{from{opacity:0;transform:scale(.6)}30%{opacity:1}to{opacity:0;transform:scale(1.15)}}
@keyframes scene-orbit-open{from{opacity:0;translate:-50% -50%;scale:.6;rotate:-12deg}25%{opacity:.5}to{opacity:0;translate:-50% -50%;scale:1.1;rotate:18deg}}
@keyframes scene-symbol{0%{opacity:0;translate:-50% 8px;scale:.8}25%,65%{opacity:.7;translate:-50% 0;scale:1}100%{opacity:0;translate:-50% -12px;scale:1.05}}
@keyframes scene-drift{0%{opacity:0;transform:translate(0,0) rotate(0)}25%{opacity:.65}100%{opacity:0;transform:translate(calc(var(--dx)*2.6),calc(var(--dy)*1.7)) rotate(var(--turn))}}
@keyframes scene-heading-in{from{opacity:.1;translate:0 7px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes shot-trail{0%{opacity:0;translate:-12% 4%}20%{opacity:.7}100%{opacity:0;translate:12% -4%}}
@keyframes departure-presence{0%,100%{opacity:0}10%,65%{opacity:1}}
@keyframes departure-ring{0%{opacity:0;scale:.7;rotate:-10deg}20%{opacity:.8}100%{opacity:0;scale:1.4;rotate:20deg}}
@keyframes departure-aura{0%{opacity:0;scale:.7}28%{opacity:.8}100%{opacity:0;scale:1.5}}
@keyframes departure-scatter{0%{opacity:0;translate:0 0;rotate:var(--turn);scale:.6}20%{opacity:.95}100%{opacity:0;translate:var(--dx) calc(var(--dy) - 20px);rotate:calc(var(--turn) + 70deg);scale:.25}}
@keyframes departure-digital{0%{opacity:.6;scale:.8;translate:0 0}45%{opacity:.9;translate:4px -5px}75%{opacity:.4;translate:-4px -8px}100%{opacity:0;scale:1.2;translate:0 -14px}}
@keyframes departure-cause{0%{opacity:0;scale:1.35}20%,65%{opacity:.85;scale:1}100%{opacity:0;scale:.97}}
@keyframes departure-poison{0%{opacity:0;scale:.65;translate:0 8px}25%{opacity:.8}100%{opacity:0;scale:1.4;translate:0 -12px}}
@keyframes departure-shot{0%{opacity:0;scale:.6}18%{opacity:.8;scale:1.12}100%{opacity:0;scale:1.4}}
@media(max-width:560px){.scene-orbit{width:43%}.scene-glyph{top:38%;font-size:33px}.scene-burst-nightfall .scene-glyph{font-size:46px}.scene-burst-wolf_target .scene-glyph{font-size:60px}.scene-burst-seer_reveal .scene-glyph{font-size:43px}.scene-burst-exile .scene-orbit{width:33%}.scene-finale .scene-heading{font-size:23px;letter-spacing:2px}.scene-finale .scene-ornament{font-size:32px}.scene-finale .scene-subtitle{font-size:8px;line-height:1.7}.scene-particle{width:2px;height:2px}.death-burst{inset:-10% -10% 14%}.departure-particle{max-width:10px;max-height:15px}.departure-ring{inset:12% 7%}.departure-cause{inset:12% 15%}}
@media(prefers-reduced-motion:reduce){.cinematic-vfx,.death-burst{display:none}.scene-caption *{animation:none!important}.scene-finale .scene-caption{opacity:1}.has-death-burst .death-mark{animation:none!important}}
