/* Power Shot's scene, warm fire effects, and planted character pose. */
.shot-game,.shot-intro{--shot-fire:#ff642d;--shot-hot:#ffcd62;--shot-light:#fff4cb;--shot-glow:#ff6b2e88}
.shot-eclipse{--shot-fire:#a854ff;--shot-hot:#e9a7ff;--shot-light:#fff0ff;--shot-glow:#a04dff88}
.shot-game{width:min(100%,940px);min-width:0;grid-template-columns:minmax(0,1.65fr) minmax(215px,1fr);gap:12px;padding:16px;color:#fff1d0;border:1px solid #aecaab55;background:linear-gradient(145deg,#244943,#152a32 65%);box-shadow:inset 0 1px #e7ffc92b,0 12px 36px #071b3455;border-radius:24px}
.shot-hud{grid-column:1/-1;gap:12px;padding:0 2px 4px}
.shot-title{margin-right:auto;display:grid;line-height:1.05;text-align:left;white-space:nowrap}
.shot-title>span{font-size:10px;font-weight:900;letter-spacing:2px;color:#bed5bd}
.shot-hud .shot-title>strong{font-size:clamp(17px,2.5vw,23px);color:#ffe6a3;text-shadow:0 2px #1a2930}
.shot-hud #shot-clock{font-size:17px;min-width:52px;text-align:center;padding:7px 8px;border:1px solid #a8c3ac55;background:#0b242a88;border-radius:12px;color:#fff4cf}
.shot-hud #shot-score{font-size:16px;min-width:43px;color:#ffe7ab}
.shot-bar{max-width:140px;min-width:25px;height:10px;border-color:#b9cdac45;background:#071f2b;box-shadow:inset 0 1px 3px #0008}
.shot-bar span{background:linear-gradient(90deg,var(--shot-fire),var(--shot-hot));box-shadow:0 0 8px var(--shot-fire)}
.shot-stage{grid-column:1;grid-row:2;width:100%;align-self:center;border:1px solid #bcd5aa66;border-radius:18px;box-shadow:inset 0 0 50px #081e36,0 5px 16px #06192055;cursor:default;background:#1c444b}
.shot-stage.charged{cursor:grab;border-color:var(--shot-hot)}
.shot-stage.charged:active{cursor:grabbing}
.shot-stage>svg{z-index:1;pointer-events:none}
.shot-sparky{width:20.5%;translate:-88% -48%;transform-origin:50% 94%;aspect-ratio:1;z-index:2;filter:drop-shadow(0 2px 1px #14212588);pointer-events:none;transition:transform .1s ease-out}
.shot-sparky .shot-character{width:100%;height:100%;display:block;object-fit:contain;animation:shot-breathe 3.2s ease-in-out infinite;transform-origin:55% 90%;user-select:none;-webkit-user-drag:none}
.shot-sparky.snap{transition:transform .16s ease-out}
.shot-stage.charged .shot-sparky{animation:none;filter:drop-shadow(0 0 3px var(--shot-glow))}
.shot-stage.charged .shot-character{animation:shot-breathe 1.8s ease-in-out infinite}
.shot-sparky.shoot{animation:shot-fire-recoil .42s ease-out}
.shot-sparky.shoot .shot-character{animation:none}
@keyframes shot-breathe{50%{transform:scaleY(1.018) rotate(-.5deg)}}
@keyframes shot-fire-recoil{0%{transform:translateX(0)}25%{transform:translateX(-3px) rotate(-4deg)}65%{transform:translateX(1px) rotate(1deg)}100%{transform:translateX(0)}}
.shot-mouth-glow{z-index:3;position:absolute;width:5.5%;aspect-ratio:1;border-radius:50%;translate:-50% -50%;background:radial-gradient(circle,#fffadf,var(--shot-hot) 15%,var(--shot-glow) 38%,transparent 72%);opacity:0;pointer-events:none;transition:opacity .25s;mix-blend-mode:screen}
.shot-stage.charged .shot-mouth-glow{opacity:.9;animation:shot-mouth-pulse .9s ease-in-out infinite alternate}
@keyframes shot-mouth-pulse{to{scale:1.22;opacity:.65}}
.shot-dots circle{fill:var(--shot-light);stroke:var(--shot-hot);stroke-width:.3;filter:drop-shadow(0 0 1px var(--shot-fire))}
.shot-trail{stroke:var(--shot-fire);stroke-width:3.1;opacity:.42;filter:drop-shadow(0 0 1.5px var(--shot-fire));fill:none;stroke-linecap:round;stroke-linejoin:round}
.shot-trail-core{stroke:var(--shot-hot);stroke-width:1;opacity:.72;fill:none;stroke-linecap:round;stroke-linejoin:round}
.shot-flame{filter:drop-shadow(0 0 2px var(--shot-fire))}
.shot-flame-tail{fill:var(--shot-fire);animation:shot-flame-flicker .15s ease-in-out infinite alternate;transform-origin:0 0}
.shot-flame-inner{fill:var(--shot-hot);opacity:.94;animation:shot-flame-flicker .19s ease-in-out infinite alternate-reverse;transform-origin:0 0}
@keyframes shot-flame-flicker{to{transform:scale(.88,1.14)}}
.shot-target{filter:drop-shadow(0 1px 1.8px #091b30aa);transform-origin:center;transform-box:fill-box}
.shot-target .halo{fill:#ffef9855;opacity:.7;animation:shot-rune-halo 2.3s ease-in-out infinite alternate}
@keyframes shot-rune-halo{to{opacity:.3;scale:1.12}}
.shot-rune-stone{fill:#345d69;stroke:#a9c8b1;stroke-width:.65}
.shot-rune-edge{fill:none;stroke:#88b3aa;stroke-width:.5;opacity:.8}
.shot-rune-ring{fill:#233e53;stroke:#e8be65;stroke-width:.55}
.shot-rune{fill:#ffe4a4;stroke:#fff3c3;stroke-width:.5;filter:drop-shadow(0 0 1px #ffbf4a)}
.shot-rune-center{fill:#fff9d8}
.shot-target-number{font:700 3.6px system-ui,sans-serif;fill:#fff2ce;paint-order:stroke;stroke:#182f3c;stroke-width:.8;letter-spacing:.1px}
.shot-target.hit{animation:shot-rune-break .5s ease-out forwards}
.shot-target.hit .halo{animation:none}
@keyframes shot-rune-break{30%{filter:brightness(3);scale:1.1}100%{opacity:0;scale:.2;rotate:12deg}}
.shot-impact-ring{fill:none;stroke:var(--shot-hot);stroke-width:1.2;animation:shot-impact-ring .65s ease-out forwards}
.shot-impact-flash{fill:var(--shot-light);animation:shot-impact-flash .4s ease-out forwards}
.shot-shard{fill:var(--shot-hot);stroke:var(--shot-light);stroke-width:.35;animation:shot-shard .65s cubic-bezier(.1,.5,.3,1) forwards}
@keyframes shot-impact-ring{from{opacity:1;r:2;stroke-width:2.3}to{opacity:0;r:18;stroke-width:.2}}
@keyframes shot-impact-flash{from{opacity:1;r:6}to{opacity:0;r:1}}
@keyframes shot-shard{to{translate:var(--dx) var(--dy);rotate:120deg;opacity:0}}
.shot-fireflies circle{animation:shot-firefly 4s ease-in-out infinite alternate}
@keyframes shot-firefly{to{opacity:.15;transform:translateY(-1px)}}
.shot-embers circle{animation:shot-ember-rise 3.5s linear infinite}
@keyframes shot-ember-rise{0%{opacity:0;transform:translateY(0)}20%{opacity:.7}100%{opacity:0;transform:translate(3px,-15px)}}
.shot-arena-caption{position:absolute;bottom:6px;right:10px;z-index:2;font-size:8px;font-weight:800;letter-spacing:2px;color:#d3e4c89c;pointer-events:none;text-shadow:0 1px #173c43}
.shot-feedback{grid-column:1;grid-row:3;color:#ffebbd;font-size:13px;line-height:1.35;text-align:center;min-height:2.7em;align-self:start}
.shot-panel{grid-column:2;grid-row:2/4;align-self:center;border:1px solid #ecd9a333;background:linear-gradient(155deg,#fff9e9,#f3e6c9);padding:14px;border-radius:17px;color:#324940;box-shadow:0 5px 0 #091d2433}
.shot-panel .shot-prompt{font-size:14px;font-weight:900;color:#815033;margin:0 0 8px}
.shot-panel .equation{font-size:clamp(23px,3vw,32px);margin:2px 0 10px;gap:7px}
.shot-panel .answer-box{height:47px;min-width:55px;background:#fffdf4;border-color:#c8b486;color:#644029}
.shot-panel .keypad{gap:6px;margin-bottom:9px}
.shot-panel .keypad button{min-height:40px;font-size:20px;background:linear-gradient(#fffef9,#efdfbd);border-color:#cdbb92;color:#3c4c40;box-shadow:0 3px 0 #bda98455}
.shot-panel .keypad button:active{transform:translateY(2px);box-shadow:none}
.shot-panel .submit-answer,.shot-intro .bolt-button{background:linear-gradient(#ffb749,#ee7434);border-color:#b6502a;box-shadow:0 3px 0 #a94e26;color:#422612;text-shadow:0 1px #ffd37a;font-weight:900}
.shot-panel .submit-answer{font-size:15px;min-height:44px;width:100%}
.shot-panel .submit-answer:disabled{opacity:.55}
#shot-ready,#shot-flying{align-self:stretch;display:grid;place-content:center;padding:12px 4px;border:0;border-radius:12px;background:radial-gradient(ellipse at 50% 30%,#fff9d4,#f2dfb7);color:#754027}
.shot-ready-flame{font-size:42px;filter:drop-shadow(0 4px 8px #ec852755);margin-bottom:8px}
#shot-ready strong,#shot-flying strong{font-size:20px;line-height:1.2}
#shot-ready p,#shot-flying p{font-size:14px;line-height:1.5;margin:9px 0}
#shot-ready small{font-size:11px;line-height:1.5;opacity:.7}
.shot-power{height:9px;margin:18px 18px 4px;border-radius:10px;background:#d6bb89;overflow:hidden}
.shot-power span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--shot-fire),#ffe997);transition:width .05s;box-shadow:0 0 9px var(--shot-fire)}
.shot-intro{padding:24px 16px;background:radial-gradient(ellipse at 50% 10%,#446653,#1a333b 70%);border:1px solid #a6c79855;border-radius:24px;color:#fff0d0}
.shot-intro-art{display:block;width:180px;height:180px;margin:0 auto -3px;filter:drop-shadow(0 5px 12px #071c2d88)}
.shot-intro-art img{width:100%;height:100%;object-fit:contain}
.shot-intro h3{color:#ffdf94}
.shot-intro p{color:#e5edda}
.shot-intro .text-button{color:#e1ecd1}
@media(max-width:650px){.shot-game{grid-template-columns:minmax(0,1fr);width:min(100%,520px);gap:8px;padding:10px;border-radius:18px}.shot-hud{gap:8px}.shot-hud .shot-title>strong{font-size:17px}.shot-title>span{font-size:8px}.shot-hud #shot-clock{font-size:14px;padding:6px;min-width:42px}.shot-hud #shot-score{font-size:14px;min-width:36px}.shot-bar{max-width:80px}.shot-stage{grid-row:2}.shot-feedback{grid-row:3;min-height:1.35em;font-size:12px}.shot-panel{grid-column:1;grid-row:4;padding:10px 12px}.shot-panel .shot-prompt{margin-bottom:4px;font-size:12px}.shot-panel .equation{margin-bottom:6px;font-size:27px}.shot-panel .keypad{gap:5px;margin-bottom:7px}.shot-panel .keypad button{min-height:37px;font-size:19px}.shot-panel .answer-box{height:42px}.shot-panel .submit-answer{min-height:41px}.shot-arena-caption{font-size:6px;letter-spacing:1.4px}}
@media(prefers-reduced-motion:reduce){.shot-game *,.shot-game *::before,.shot-game *::after{animation:none!important;transition:none!important}.shot-target.hit{opacity:0}.shot-shard,.shot-impact-ring,.shot-impact-flash{opacity:0}}

.shot-eclipse .shot-sparky{translate:-88% -50%}
.encounter-dialog:has(.shot-game){width:min(1010px,97vw);padding:14px;background:#142e34;border-color:#70968a;color:#fcecc6}
.encounter-dialog:has(.shot-game) .dialog-top{margin:0 0 8px;justify-content:flex-end}
.encounter-dialog:has(.shot-game) .dialog-top>div{display:none}
.encounter-dialog:has(.shot-game) .icon-button{width:34px;height:34px;background:#36574f;color:#fff2c8}
@media(max-width:650px){.encounter-dialog:has(.shot-game){padding:7px;width:98vw}.encounter-dialog:has(.shot-game) .dialog-top{margin-bottom:5px}}
