body.battle-open{overflow:hidden}#battleView.active{position:fixed;z-index:100;inset:0;display:grid;align-items:start;overflow-y:auto;padding:20px;background:#10271fbd;backdrop-filter:blur(8px)}.battle-shell{position:relative;width:min(920px,100%);margin:auto;padding:34px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fffdf7 0 62%,#eaf0df 62%);box-shadow:0 24px 80px #0c1e18a3}.battle-topline,.battle-name{display:flex;align-items:center;justify-content:space-between;gap:16px}.battle-topline .eyebrow{margin:0}.battle-clock{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:99px;background:var(--ink);color:#fff}.battle-clock span{font-size:9px;font-weight:800;letter-spacing:.14em}.battle-clock strong{font:700 22px Fraunces}.battle-shell>h1{max-width:720px;margin:18px auto 8px;text-align:center;font:700 clamp(34px,5vw,54px)/1.02 Fraunces}.battle-shell>p{max-width:690px;margin:0 auto 22px;text-align:center;color:var(--muted);line-height:1.55}
.battle-stage{position:relative;display:grid;grid-template-columns:1fr 58px 1fr;gap:14px;align-items:center;margin:22px 0;isolation:isolate}.battle-fighter{position:relative;z-index:2;min-width:0;padding:17px;border:1px solid #18352d24;border-radius:15px;background:#ffffffe8}.battle-name b{font:700 19px Fraunces}.battle-name span,.battle-fighter small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em}.battle-fighter progress{display:block;width:100%;height:12px;margin:10px 0 5px;accent-color:#4c9666}.enemy-fighter progress{accent-color:#b8644f}.battle-creature{height:190px;display:grid;place-items:center;overflow:hidden}.battle-creature .rendered-card-sprout{width:210px;height:190px}.enemy-creature span{display:grid;place-items:center;width:135px;height:135px;border-radius:46% 54% 56% 44%;background:radial-gradient(circle at 35% 30%,#f1c970 0 8%,#754753 9% 45%,#342b42 46%);color:#fff;font-size:60px;box-shadow:inset -16px -18px #00000029,0 18px 28px #2e24342e}.battle-versus{z-index:7;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;font-size:11px;font-weight:900}
.battle-creature .rendered-card-sprout{background-image:url("assets/sprout-battle-side-sheet-v1.png")!important;transform-origin:50% 78%;transition:transform .25s ease,filter .25s ease}.player-fighter .battle-creature .rendered-card-sprout{transform:translateX(18px);filter:drop-shadow(12px 16px 14px #1d382b2b)}.enemy-creature .rendered-card-sprout{transform:translateX(-18px) scaleX(-1);filter:hue-rotate(10deg) saturate(1.06) drop-shadow(-12px 16px 14px #2e24342e)}.player-fighter.attack .rendered-card-sprout{transform:translateX(36px) rotate(4deg) scale(1.04)}.enemy-fighter.attack .rendered-card-sprout{transform:translateX(-36px) scaleX(-1) rotate(-4deg) scale(1.04)}.enemy-fighter{background:linear-gradient(145deg,#fff 0 62%,#f1e8f3 100%)}.player-fighter{background:linear-gradient(145deg,#fff 0 62%,#e8f2e7 100%)}
.battle-focus{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:8px}.battle-focus>span{font-size:9px;font-weight:900;letter-spacing:.08em;color:#4b78a5}.battle-focus progress{margin:0;height:8px;accent-color:#4b94d1}.battle-focus small{white-space:nowrap}.battle-command{display:grid;grid-template-columns:minmax(220px,.75fr) 1.25fr;gap:18px;padding:18px;border:1px solid #18352d29;border-radius:15px;background:#fff}.battle-command>div:first-child>span{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--green)}.battle-command p{margin:8px 0 0;font:600 16px/1.45 Fraunces}.battle-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px}.battle-move{min-height:84px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left;color:var(--ink);cursor:pointer;transition:.18s}.battle-move:hover,.battle-move:focus-visible{transform:translateY(-3px) scale(1.02);border-color:var(--green);box-shadow:0 8px 18px #2341331a}.battle-move:active{transform:translateY(1px) scale(.98)}.battle-move:disabled{cursor:not-allowed;opacity:.48;transform:none}.battle-move b,.battle-move span{display:block}.battle-move b{font:700 16px Fraunces}.battle-move span{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35}.power-move{border-top:4px solid #b8644f}.insight-move{border-top:4px solid #6c67a2}.focus-move{border-top:4px solid #4b94d1}.battle-shell>#battleContinueBtn{display:block;margin:20px auto 0}.battle-shell>#battleContinueBtn.hidden{display:none}
.battle-fx{position:absolute;z-index:6;inset:0;pointer-events:none}.battle-projectile,.battle-impact,.battle-callout{position:absolute;opacity:0}.battle-projectile{left:30%;top:58%;width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 8px #ffffff57,0 0 24px currentColor}.battle-impact{right:18%;top:43%;width:88px;height:88px;color:#fff;font-size:52px}.battle-callout{left:50%;top:38%;padding:7px 13px;border:3px solid #18352d;border-radius:12px;background:#fff4b8;color:#18352d;font:900 20px DM Sans;letter-spacing:.08em;box-shadow:4px 5px #18352d}.damage-pop{position:absolute;z-index:8;right:24px;top:42%;opacity:0;color:#b13e34;font:900 30px DM Sans;text-shadow:0 2px #fff,2px 0 #fff,-2px 0 #fff}.player-fighter .damage-pop{right:auto;left:24px}.damage-pop.show{animation:damage-pop .7s ease-out both}
.fx-player .battle-projectile{animation:shot-r .58s cubic-bezier(.2,.7,.15,1) both}.fx-enemy .battle-projectile{left:auto;right:30%;animation:shot-l .5s cubic-bezier(.2,.7,.15,1) both}.fx-power .battle-projectile{background:#ef6a4f;color:#ef6a4f;border-radius:35%}.fx-insight .battle-projectile{background:#8f7ad1;color:#8f7ad1;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.fx-focus .battle-projectile{background:#48a7dc;color:#48a7dc;border:8px double #d8f5ff}.fx-counter .battle-projectile{background:#f0b84c;color:#f0b84c}.fx-player .battle-impact{animation:impact-r .46s .37s ease-out both}.fx-enemy .battle-impact{right:auto;left:18%;animation:impact-l .42s .3s ease-out both}.fx-super .battle-callout,.fx-enemy .battle-callout{animation:callout .7s .28s ease-out both}.battle-fighter.hit{animation:hit .42s .3s ease}.battle-fighter.attack{animation:lunge .5s ease}.fx-enemy .enemy-fighter.attack{animation-name:lunge-l}.battle-clock.urgent{background:#9b473b;animation:pulse .8s infinite}.battle-shell.won{animation:victory-glow 1s ease}.battle-shell.won .player-fighter{animation:victory .55s 2}
.battle-celebration{position:absolute;z-index:12;inset:0;pointer-events:none}.battle-celebration i{position:absolute;top:-24px;left:4%;width:12px;height:22px;opacity:0;background:#ef6a4f}.battle-shell.won .battle-celebration i{animation:confetti 1.7s ease-out both}.battle-celebration i:nth-child(2){left:14%;background:#f0b84c;animation-delay:.08s!important}.battle-celebration i:nth-child(3){left:27%;background:#4aa4d3;animation-delay:.2s!important}.battle-celebration i:nth-child(4){left:41%;background:#8f7ad1}.battle-celebration i:nth-child(5){left:58%;background:#63a96f;animation-delay:.24s!important}.battle-celebration i:nth-child(6){left:71%}.battle-celebration i:nth-child(7){left:84%;background:#f0b84c}.battle-celebration i:nth-child(8){left:94%;background:#4aa4d3;animation-delay:.28s!important}
@keyframes shot-r{0%{opacity:0;transform:translate(-80px,22px) scale(.35)}20%,75%{opacity:1}100%{opacity:0;transform:translate(360px,-18px) scale(1.35) rotate(540deg)}}@keyframes shot-l{0%{opacity:0;transform:translate(80px,12px) scale(.4)}20%,75%{opacity:1}100%{opacity:0;transform:translate(-360px,-18px) scale(1.3)}}@keyframes impact-r{0%{opacity:0;transform:scale(.15)}45%{opacity:1;transform:scale(1.45) rotate(15deg)}100%{opacity:0;transform:scale(2)}}@keyframes impact-l{0%{opacity:0;transform:scale(.15)}45%{opacity:1;transform:scale(1.45) rotate(-15deg)}100%{opacity:0;transform:scale(2)}}@keyframes callout{0%{opacity:0;transform:translate(-50%,-20%) scale(.3) rotate(-14deg)}45%{opacity:1;transform:translate(-50%,-50%) scale(1.2) rotate(5deg)}100%{opacity:0;transform:translate(-50%,-75%) rotate(-4deg)}}@keyframes damage-pop{25%{opacity:1;transform:translateY(-8px) scale(1.25)}100%{opacity:0;transform:translateY(-54px)}}@keyframes hit{25%{transform:translateX(-13px) rotate(-2deg);filter:brightness(1.5)}50%{transform:translateX(11px) rotate(2deg)}}@keyframes lunge{35%{transform:translateX(-9px)}65%{transform:translateX(34px) scale(1.05)}}@keyframes lunge-l{35%{transform:translateX(9px)}65%{transform:translateX(-34px) scale(1.05)}}@keyframes pulse{50%{transform:scale(1.06)}}@keyframes victory{50%{transform:translateY(-16px) scale(1.03)}}@keyframes victory-glow{50%{box-shadow:0 0 0 7px #f0b84c40,0 20px 70px #d9a84e59}}@keyframes confetti{0%{opacity:1}100%{opacity:0;transform:translateY(720px) rotate(780deg)}}
@media(max-width:720px){#battleView.active{padding:10px}.battle-shell{padding:22px}.battle-stage{grid-template-columns:1fr 34px 1fr;gap:7px}.battle-creature{height:135px}.battle-creature .rendered-card-sprout{width:145px;height:132px}.player-fighter .battle-creature .rendered-card-sprout{transform:translateX(9px)}.enemy-creature .rendered-card-sprout{transform:translateX(-9px) scaleX(-1)}.enemy-creature span{width:95px;height:95px;font-size:42px}.battle-versus{width:34px;height:34px;font-size:8px}.battle-command{grid-template-columns:1fr}.battle-choices{grid-template-columns:1fr}.battle-move{min-height:64px}.battle-name b{font-size:15px}.battle-projectile{width:30px;height:30px}.battle-callout{font-size:14px}}
@media(prefers-reduced-motion:reduce){.battle-fighter,.battle-clock,.battle-projectile,.battle-impact,.battle-callout,.damage-pop,.battle-shell,.battle-celebration i{animation:none!important}}
