﻿#battle{padding:24px 16px 110px;background:#f4f3ec;min-width:0}.battle-heading{text-align:center;max-width:760px;margin:0 auto 24px}.battle-heading h1{color:#536254;font-size:clamp(27px,5vw,44px)}.battle-tabs{display:flex;justify-content:center;gap:12px;margin:20px}.battle-tabs button[aria-pressed=true]{background:#d4e5cf}.battle-arc,.battle-card{max-width:1100px;margin:22px auto;padding:22px;border:1px solid #dadbce;border-radius:24px;background:#fffdf7}.battle-arc{border-top:8px solid var(--arc)}.battle-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.battle-node{min-width:0;display:flex;flex-direction:column;align-items:center;padding:10px;gap:8px;background:#f0eee7;border:1px solid #d4d4ce;border-radius:18px}.battle-node span{width:100%;max-width:130px}.battle-node svg{width:100%;height:110px}.battle-node small{font-size:11px}.battle-node:disabled{opacity:.48;filter:grayscale(.6)}#battle button{cursor:pointer;touch-action:manipulation;white-space:normal;overflow-wrap:anywhere;min-height:44px}#battle button:disabled{cursor:default}#battle button:focus-visible{outline:3px solid #9962c5;outline-offset:3px}#battle progress{width:100%;height:14px;accent-color:#67a477}.battle-card{text-align:center}body.battle-playing{overflow:hidden;overscroll-behavior:none}body.battle-playing #battle{position:fixed;inset:0;padding:0;z-index:160;min-height:0;touch-action:manipulation}body.battle-playing #battle *{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body.battle-playing #battle button{-webkit-tap-highlight-color:transparent}.battle-screen{height:100%;display:grid;grid-template-rows:calc(56px + env(safe-area-inset-top,0px)) minmax(0,1fr) auto;background:linear-gradient(#eff0ed,var(--arc) 70%);overflow:hidden}.battle-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left));padding-top:max(6px,env(safe-area-inset-top));font-size:14px}.battle-top button{border-radius:12px;background:#fffdf0;border:1px solid #c5c6c0;padding:6px 12px;color:#44564c}.battle-arena{position:relative;min-height:0;max-width:1100px;width:100%;margin:auto;height:100%;background:radial-gradient(ellipse at 50% 100%,#ffffff44,transparent 60%)}.battle-arena:before,.battle-arena:after{content:'';position:absolute;width:35%;height:12%;border-radius:50%;background:#50635433;transform:rotate(-6deg);right:7%;top:43%;border:3px solid #ffffff44}.battle-arena:after{left:5%;top:86%;width:40%}.battle-figure{position:absolute;width:27%;height:48%;display:grid;place-items:end center;z-index:1}.battle-figure svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 6px 2px #0002);animation:battle-breathe 2.8s ease-in-out infinite}.battle-rival{right:10%;top:0}.battle-rival.boss{width:33%;right:6%;height:55%}.battle-hero{left:8%;bottom:0;width:32%;height:52%}.battle-rival-health{position:absolute;left:5%;top:8%;width:36%}.battle-hero-health{position:absolute;right:5%;bottom:4%;width:40%}.battle-health{background:#fffdefe8;border:2px solid #74836d;border-radius:16px 4px;padding:10px 14px;box-shadow:4px 4px #51675222;font-size:14px;display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between}.battle-health b{max-width:80%;overflow-wrap:anywhere}.battle-health span{font-size:12px;margin-left:auto}.battle-health progress{flex-basis:100%}.battle-console{padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:#f9f5e9;border-top:4px solid #71836f;display:grid;grid-template-columns:1fr 1.5fr;gap:14px}.battle-log{padding:12px;background:#e6eddf;border-radius:12px;font-size:15px;line-height:1.5}.battle-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.battle-actions button{border:2px solid #cbc4d7;background:#ece4f2;color:#514264;border-radius:12px;padding:10px;text-align:left}.battle-actions small{display:block;font-size:11px;margin-top:5px}.battle-actions button:disabled{opacity:.48}.battle-overlay{position:absolute;inset:0;z-index:8;background:#263b36e8;backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#fff7e6;padding:24px;gap:12px;overflow:auto}.battle-overlay p{color:inherit;max-width:650px;white-space:pre-line;margin:0;line-height:1.5}.battle-overlay h2{color:#ffe4a7;margin:6px}.battle-overlay button{background:#fff0ce;border:2px solid #e3c482;border-radius:12px;padding:12px 24px;color:#40574b}#battle-pop{position:absolute;inset:40% 20% auto;text-align:center;font-size:30px;color:#ad405b;text-shadow:1px 1px white;z-index:3;pointer-events:none}.battle-lunge{animation:battle-lunge .35s ease-out}.battle-hurt{animation:battle-hurt .4s}.battle-hurt svg{filter:brightness(2) drop-shadow(0 0 10px white)}@keyframes battle-breathe{50%{transform:translateY(-5px) scale(1.02)}}@keyframes battle-lunge{50%{transform:translate(22px,-15px)}}@keyframes battle-hurt{25%,75%{transform:translateX(-8px)}50%{transform:translateX(8px)}}@media(max-width:700px){.battle-map{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-arc{padding:14px}.battle-console{grid-template-columns:1fr;gap:8px;padding-top:8px}.battle-log{font-size:13px;padding:8px;min-height:52px}.battle-actions button{padding:8px;font-size:12px;min-height:62px!important}.battle-actions small{font-size:10px}.battle-rival-health{left:3%;width:48%;top:5%}.battle-hero-health{right:3%;width:49%;bottom:3%}.battle-health{font-size:12px;padding:7px}.battle-rival{width:37%;right:3%;top:10%;height:43%}.battle-rival.boss{width:43%;height:52%;right:0}.battle-hero{width:43%;left:3%;height:46%}.battle-top b{font-size:12px}.battle-overlay{padding:18px;font-size:14px}.battle-overlay h2{font-size:24px}}@media(max-height:500px) and (min-width:550px){.battle-screen{grid-template-rows:calc(46px + env(safe-area-inset-top,0px)) minmax(0,1fr) 116px}.battle-console{grid-template-columns:1fr 1.5fr;padding:6px;gap:8px}.battle-actions button{padding:4px 8px;min-height:42px!important;font-size:11px}.battle-actions small{margin-top:1px;font-size:9px}.battle-log{font-size:12px;padding:6px}.battle-health{padding:4px 10px;font-size:11px}.battle-health progress{height:8px!important}}@media(prefers-reduced-motion:reduce){#battle *,#battle *:before,#battle *:after{animation:none!important;transition:none!important}}@media(max-height:500px){}
/* Arena con perspectiva, plataformas y anatomías animadas. */
#battle{overflow-x:clip}#battle progress{display:block;appearance:none;-webkit-appearance:none;background:#fff9e7;border:1px solid #b5bdac;border-radius:10px;overflow:hidden;min-height:14px;box-shadow:inset 0 1px 3px #52634a22}#battle progress::-webkit-progress-bar{background:#fff9e7;border-radius:10px}#battle progress::-webkit-progress-value{background:linear-gradient(90deg,#79ac77,#b4d885);border-radius:10px}#battle progress::-moz-progress-bar{background:#79ac77;border-radius:10px}
.battle-landscape{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.battle-arena{max-width:none;isolation:isolate;overflow:hidden}.battle-arena:before,.battle-arena:after{z-index:0;background:radial-gradient(ellipse at 45% 25%,#a2c57a 0 30%,#7f9b58 65%,#556746 70%);box-shadow:0 8px 0 #4b6049,0 14px 15px #172d3d66;border:3px solid #e1daa199;transform:rotate(-4deg);height:12%;width:37%;top:51%;right:3%}.battle-arena:after{width:48%;height:18%;left:-3%;top:88%;box-shadow:0 8px 0 #4b6049,0 14px 15px #172d3d66}.arc-1:before,.arc-1:after{background:repeating-radial-gradient(ellipse at 50% 30%,#e3c18c 0 8px,#d6b17c 9px 11px);box-shadow:0 8px #ac865c}.arc-2:before,.arc-2:after,.arc-4:before,.arc-4:after{background:repeating-linear-gradient(12deg,#7d8191 0 19px,#555d71 20px 22px);box-shadow:0 8px #3b4358}.arc-3:before,.arc-3:after{background:radial-gradient(ellipse,#7a95a1,#41596e);box-shadow:0 8px #27394a}.arc-5:before,.arc-5:after{background:repeating-linear-gradient(0deg,#a17bba33 0 9px,#caa8e066 10px 11px);border-color:#d9afec88;box-shadow:0 0 25px #c27ede66}.battle-hero{width:45%;height:76%;left:-2%;bottom:-13%}.battle-rival{width:34%;height:62%;right:5%;top:0}.battle-rival.boss{width:42%;height:72%;right:1%;top:-3%}.battle-hero svg{animation:battle-hero-idle 2.4s ease-in-out infinite;transform-origin:50% 90%}.battle-hero-health,.battle-rival-health{z-index:3}.battle-rival-health{top:5%;width:33%;left:4%}.battle-hero-health{width:35%;bottom:4%}.battle-wings{animation:battle-wing 2s ease-in-out infinite;transform-origin:120px 100px}.battle-cape{animation:battle-cape 3s ease-in-out infinite;transform-origin:120px 70px}.battle-tentacle{animation:battle-cape 2s ease-in-out infinite;transform-origin:120px 145px}.battle-aura{animation:battle-aura 2s ease-in-out infinite}.battle-mist{animation:battle-fog 12s ease-in-out infinite}.battle-lunge.battle-hero{animation:battle-hero-attack .4s ease-out}.battle-lunge.battle-rival{animation:battle-enemy-attack .4s ease-out}.battle-effect{--fx:#f6e7a3;animation:battle-impact .6s ease-out;text-shadow:0 0 15px var(--fx)!important}.battle-effect:before,.battle-effect:after{content:'';position:absolute;width:80px;height:80px;left:calc(50% - 40px);top:-35px;border:6px double var(--fx);border-radius:50%;box-shadow:0 0 30px var(--fx);animation:battle-ring .6s ease-out;z-index:-1}.battle-effect:after{transform:rotate(45deg);border-radius:15%;width:65px;height:65px;left:calc(50% - 32px)}.effect-fire{--fx:#ff9d43}.effect-fire:after{border-radius:0 70% 30% 70%;background:#ffcc5555}.effect-water{--fx:#62d6ec}.effect-water:after{border-radius:80% 10% 80% 80%;background:#6fe9ff55}.effect-leaf{--fx:#a4e271}.effect-leaf:after{border-radius:0 80% 0 80%;background:#9ad47877}.effect-lightning{--fx:#fff26a}.effect-lightning:after{clip-path:polygon(60% 0,20% 55%,48% 50%,30% 100%,85% 35%,59% 42%);background:#fff26a;border:0}.effect-wind{--fx:#d7f8ee}.effect-earth{--fx:#ddb281}.effect-shadow{--fx:#c78be5}
@keyframes battle-hero-idle{50%{transform:translateY(-9px) rotate(-2deg) scale(1.025)}}@keyframes battle-wing{50%{transform:scaleX(.88) rotate(2deg)}}@keyframes battle-cape{50%{transform:skewX(3deg)}}@keyframes battle-aura{50%{opacity:.45;transform:scale(.97);transform-origin:center}}@keyframes battle-fog{50%{transform:translateX(65px)}}@keyframes battle-hero-attack{50%{transform:translate(80px,-32px) rotate(6deg)}}@keyframes battle-enemy-attack{50%{transform:translate(-55px,25px)}}@keyframes battle-impact{0%{opacity:0;transform:scale(.3)}30%{opacity:1;transform:scale(1.25)}100%{opacity:.1;transform:scale(1)}}@keyframes battle-ring{to{scale:2.2;opacity:0}}
@media(max-width:700px){.battle-hero{width:63%;height:65%;left:-9%;bottom:-8%}.battle-rival{width:48%;height:56%;right:0;top:11%}.battle-rival.boss{width:58%;height:66%;right:-3%;top:7%}.battle-rival-health{width:48%;top:3%;left:3%}.battle-hero-health{width:48%;bottom:3%}.battle-arena:before{top:61%;width:47%}.battle-arena:after{width:60%;top:91%}.battle-tabs{margin-inline:0}.battle-top{min-width:0}.battle-top b{overflow-wrap:anywhere}.battle-console{z-index:4}.battle-overlay{z-index:8}}
@media(max-height:500px) and (min-width:550px){.battle-hero{width:37%;height:100%;bottom:-19%;left:1%}.battle-rival{width:29%;height:83%;right:12%;top:-6%}.battle-rival.boss{width:35%;height:99%;right:8%;top:-12%}.battle-rival-health{width:31%;top:3%;left:2%}.battle-hero-health{width:32%;bottom:3%;right:2%}.battle-arena:before{top:65%;right:8%;width:32%}.battle-arena:after{top:89%;left:0;width:38%}.battle-overlay{gap:6px;padding:12px}.battle-overlay p{font-size:13px;max-width:690px}.battle-overlay h2{font-size:22px}.battle-overlay button{padding:7px 20px}}
@media(prefers-reduced-motion:reduce){#battle *,#battle *:before,#battle *:after{animation:none!important;transition:none!important}}
/* Foot-anchored young SVGs need a higher combat framing. */
.battle-hero.battle-stage-1{bottom:0;height:94%;width:55%;left:-5%}
.battle-hero.battle-stage-2{bottom:-3%;height:85%}
@media(max-width:700px) and (min-height:501px){
.battle-hero.battle-stage-1{width:76%;height:85%;left:-15%;bottom:0}
.battle-hero.battle-stage-2{height:75%;bottom:0}
}
/* Landscape command rail preserves arena height. */
@media(max-height:500px) and (min-width:550px){
.battle-screen{grid-template-columns:minmax(0,1fr) clamp(190px,29vw,250px);grid-template-rows:calc(38px + env(safe-area-inset-top,0px)) minmax(0,1fr)}
.battle-screen>.battle-top{grid-column:1/-1;padding-bottom:2px;padding-top:max(2px,env(safe-area-inset-top));font-size:12px}
#battle .battle-screen>.battle-top button{min-height:30px;padding:3px 10px}
.battle-console{min-width:0;grid-column:2;grid-row:2;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(54px,1fr) auto;gap:6px;padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) 6px;border-top:0;border-left:3px solid #71836f}
.battle-log{min-width:0;min-height:0;overflow:auto;font-size:11px;line-height:1.3;padding:6px}
.battle-actions{gap:5px;align-content:end}
#battle .battle-actions button{min-height:68px!important;padding:5px;font-size:11px;line-height:1.15}
.battle-actions small{font-size:9px;line-height:1.2;margin-top:3px}
.battle-health{font-size:10px;padding:4px 6px;gap:2px;border-radius:10px 3px;box-shadow:2px 2px #51675222}
.battle-health span{font-size:9px}
#battle .battle-health progress{height:8px;min-height:8px}
.battle-rival-health{left:3%;top:3%;width:44%}
.battle-hero-health{right:3%;bottom:3%;width:44%}
.battle-hero{left:0;bottom:0;width:51%;height:77%}
.battle-hero.battle-stage-1{left:-5%;bottom:0;width:61%;height:100%}
.battle-hero.battle-stage-2{left:-2%;bottom:0;width:55%;height:88%}
.battle-rival{right:2%;top:0;width:43%;height:65%}
.battle-rival.boss{right:0;top:-2%;width:48%;height:69%}
.battle-arena:before{top:57%;right:2%;width:42%}
.battle-arena:after{top:90%;left:0;width:49%}
}

.battle-health-bar{flex-basis:100%;height:14px;border:1px solid #b5bdac;border-radius:10px;overflow:hidden;background:#fff9e7}.battle-health-bar:before{content:"";display:block;width:var(--health);height:100%;background:var(--health-color)}.battle-health .battle-guard{margin-left:0;background:#dce8f3;border-radius:8px;padding:2px 5px;color:#345879}
/* Movement-specific combat presentation. All effects stay inside the arena. */
.battle-animation{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;--element:#d19aef}.battle-animation>svg{width:100%;height:100%;fill:var(--element);stroke:var(--element);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 9px var(--element))}.element-fire{--element:#ff9146}.element-water{--element:#59d9ff}.element-leaf{--element:#a8ef67}.element-lightning{--element:#fff56a}.element-ice{--element:#c1f9ff}.element-light{--element:#fff3b5}.element-wind{--element:#c2ffe1}.element-earth{--element:#dfab73}.element-shadow{--element:#cd83f7}
.fx-projectile{opacity:0;animation:fx-travel 650ms ease-in both}.fx-physical .fx-projectile,.fx-guard .fx-projectile,.fx-heal .fx-projectile{display:none}.fx-gather{opacity:0;fill:none;animation:fx-gather 400ms ease-out both}.fx-physical .fx-gather,.fx-special .fx-gather{display:none}.fx-impact{opacity:0;fill:none;stroke-width:9;animation:fx-burst 380ms var(--impact) ease-out both}.fx-physical .fx-impact{stroke:#fff5d4;stroke-width:13}.fx-dust{fill:#e9d7ac;stroke:none;opacity:0;animation:fx-dust 370ms var(--impact) ease-out both}.fx-special .fx-dust,.fx-guard .fx-dust,.fx-heal .fx-dust{display:none}.fx-miss .fx-impact,.fx-miss .fx-dust,.fx-guard .fx-impact,.fx-heal .fx-impact{display:none}.fx-miss .fx-projectile{animation-name:fx-pass}.fx-ultimate .fx-projectile{animation:fx-travel 600ms 400ms ease-in both}.fx-ultimate .fx-projectile>*{transform:scale(2.4)}.fx-ultimate .fx-gather{animation:fx-gather 550ms ease-in both;stroke-width:8}.fx-ultimate .fx-impact{stroke-width:18;animation-name:fx-big-burst}.fx-ultimate{background:#15102b33;animation:fx-dim 1150ms both}.fx-screen-flash{position:absolute;inset:0;background:#fffae8;opacity:0}.fx-ultimate .fx-screen-flash,.fx-crit .fx-screen-flash{animation:fx-flash 220ms var(--impact) both}.fx-music{stroke:none}.motif-sword .fx-projectile{filter:drop-shadow(0 0 7px white)}
.battle-figure.fx-rush{z-index:3;animation:fx-rush 800ms ease-in-out both}.battle-figure.fx-charge{filter:drop-shadow(0 0 16px #fff4ad);animation:fx-charge 650ms ease-in-out both}.battle-figure.fx-hit{animation:fx-hit 340ms both}.battle-figure.fx-dodge{animation:fx-dodge 400ms both}.battle-rival{--dodge:32px}.battle-hero{--dodge:-32px}.fx-dodge>svg{filter:drop-shadow(20px 5px 0 #e6ffff66) drop-shadow(35px 10px 0 #e6ffff33)}
.battle-shield{position:absolute;inset:10% 7% 3%;display:grid;place-items:center;pointer-events:none;filter:drop-shadow(0 0 7px #9ce9ff);opacity:.55}.battle-figure .battle-shield svg{height:100%;width:100%;animation:fx-shield-idle 2s ease-in-out infinite;fill:#a3e6ff18;stroke:#d0faff;stroke-width:3;filter:none}.shield-crack{opacity:0;fill:none;stroke:white;stroke-width:3}.fx-guard-hit .battle-shield{opacity:1;animation:fx-shield-hit 400ms both}.fx-guard-hit .shield-crack{opacity:.9}.fx-guard-form .battle-shield{animation:fx-shield-form 650ms both}.fx-guard-form{filter:drop-shadow(0 0 15px #b6eeff)}
#battle-pop.fx-number{inset:28% 5% auto;z-index:5;font-size:clamp(24px,4vw,42px);font-weight:900;color:#fff5df;text-shadow:2px 2px #643650,-2px -1px #643650,0 0 12px #45203b;animation:fx-number 430ms both}#battle-pop.fx-number-big{font-size:clamp(32px,6vw,64px);color:#fff39c}.fx-camera{animation:fx-camera 300ms both}.fx-critical .battle-arena{filter:brightness(1.22)}
@keyframes fx-travel{0%{opacity:0;transform:translateX(0) scale(.45)}12%{opacity:1}55%{opacity:1;transform:translateX(var(--travel)) scale(1.1)}85%,100%{opacity:0;transform:translateX(var(--travel)) scale(.3)}}
@keyframes fx-pass{0%{opacity:0;transform:translateX(0)}10%,75%{opacity:1}100%{opacity:0;transform:translateX(calc(var(--travel) * 1.65))}}
@keyframes fx-gather{0%{opacity:0;transform:scale(1.9) rotate(-35deg)}45%{opacity:.9}100%{opacity:0;transform:scale(.25) rotate(20deg)}}
@keyframes fx-burst{0%{opacity:0;transform:scale(.3) rotate(-15deg)}20%{opacity:1}100%{opacity:0;transform:scale(1.6) rotate(12deg)}}
@keyframes fx-big-burst{0%{opacity:0;transform:scale(.6)}20%{opacity:1}100%{opacity:0;transform:scale(3)}}
@keyframes fx-dust{0%{opacity:0;transform:scale(.4)}15%{opacity:.7}100%{opacity:0;transform:translateY(25px) scale(1.8)}}
@keyframes fx-rush{0%,100%{transform:translate(0,0)}18%{transform:translate(-8px,8px) rotate(-5deg)}44%{transform:translate(var(--rush-x),calc(var(--rush-y) - 25px)) rotate(8deg)}57%{transform:translate(var(--rush-x),var(--rush-y))}80%{transform:translate(10px,-15px)}}
@keyframes fx-charge{45%{transform:scale(1.045);filter:drop-shadow(0 0 22px #fff3ad)}}
@keyframes fx-hit{20%,65%{transform:translateX(-10px);filter:brightness(1.8)}40%,80%{transform:translateX(9px)}}
@keyframes fx-dodge{35%,65%{transform:translateX(var(--dodge)) rotate(-5deg)}}
@keyframes fx-shield-idle{50%{opacity:.6;transform:scale(1.025)}}
@keyframes fx-shield-hit{25%{filter:drop-shadow(0 0 20px white);transform:scale(1.12)}100%{opacity:.6}}
@keyframes fx-shield-form{0%{opacity:0;transform:scale(.2) rotate(-25deg)}65%{opacity:1;transform:scale(1.1)}100%{opacity:.6}}
@keyframes fx-flash{25%{opacity:.75}100%{opacity:0}}
@keyframes fx-dim{0%,100%{background:transparent}35%,65%{background:#15102b55}}
@keyframes fx-camera{20%,60%{transform:translate(4px,-3px)}40%,80%{transform:translate(-4px,3px)}}
@keyframes fx-number{0%{opacity:0;transform:translateY(12px) scale(.7)}25%{opacity:1;transform:translateY(-3px) scale(1.12)}100%{opacity:1;transform:translateY(-12px)}}
@media(prefers-reduced-motion:reduce){.battle-animation .fx-projectile{opacity:.8;transform:translateX(calc(var(--travel) * .5)) scale(.6)}.battle-animation .fx-impact{opacity:.65;transform:scale(.7)}.battle-animation .fx-gather,.battle-animation .fx-dust,.battle-animation .fx-screen-flash{display:none}.battle-animation.fx-ultimate{background:transparent}.fx-critical .battle-arena{filter:none}.battle-figure.fx-charge{filter:none}.fx-dodge>svg{filter:none}.battle-figure .battle-shield svg{opacity:.7}#battle-pop.fx-number{opacity:1}}
.fx-ultimate .fx-projectile{animation-duration:400ms}.fx-ultimate.fx-miss .fx-projectile{animation-name:fx-pass}

.battle-tabs{flex-wrap:wrap}.battle-tower{text-align:center;max-width:620px;margin:20px auto}.battle-tower>svg{width:180px;max-height:220px;display:block;margin:auto}.battle-tower p{line-height:1.5}.battle-tower button{padding:12px 35px;border:2px solid #b49bc9;border-radius:16px;background:#eee1ff;color:#49395a}.battle-overlay{overflow-y:auto}.battle-overlay button{flex-shrink:0}.fx-double .fx-impact{animation:fx-burst 190ms var(--impact) ease-out 2 both}.fx-double .fx-projectile{filter:drop-shadow(-30px 10px 0 #c2ffe1)}
@media(max-height:500px){.battle-tower>svg{width:100px;max-height:110px}.battle-overlay{gap:5px}.battle-overlay button{padding:6px 14px}}
