.battle-stage{position:relative}.gm-fx-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:12;border-radius:inherit}.gm-fx{position:absolute;width:110px;height:110px;margin:-55px;color:var(--fx-color);filter:drop-shadow(0 0 9px var(--fx-color));animation:gmFxIn var(--fx-time) ease-out both}.gm-fx-ring{position:absolute;inset:0;border:3px solid currentColor;border-radius:50%;animation:gmFxRing var(--fx-time) ease-out both}.gm-fx-ring.second{inset:16px;border-style:dashed;animation:gmFxSpin var(--fx-time) ease-out both}.gm-fx-glyph{position:absolute;inset:18px;width:74px;height:74px;fill:none;stroke:currentColor;stroke-width:5;stroke-linejoin:round;stroke-linecap:round}.gm-fx-label{position:absolute;top:115px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(9px,1.3vw,14px);letter-spacing:.07em;text-shadow:0 2px 4px #000;background:#04121ee8;padding:5px 9px;border:1px solid currentColor;border-radius:4px}.gm-fx-particles{position:absolute;inset:50%}.gm-fx-particles i{position:absolute;width:5px;height:18px;background:currentColor;border-radius:50%;transform:rotate(var(--angle));animation:gmFxSparks var(--fx-time) ease-out both}.gm-fx-beam{position:absolute;height:5px;transform-origin:left center;background:linear-gradient(90deg,transparent,var(--fx-color),#fff);box-shadow:0 0 14px var(--fx-color);animation:gmFxBeam var(--fx-time) ease-out both}.gm-fx-beam-lightning{height:38px;clip-path:polygon(0 44%,28% 5%,42% 50%,64% 8%,74% 50%,100% 44%,76% 77%,65% 35%,42% 94%,28% 33%,0 58%)}.gm-fx-beam-flame{height:45px;border-radius:50%;background:linear-gradient(90deg,transparent,#ff3e21,#ffb52e,#fff9a9);filter:blur(3px)}.gm-fx-beam-push,.gm-fx-beam-force{height:28px;border-radius:50%;opacity:.6}.gm-fx-beam-saber,.gm-fx-beam-red-saber,.gm-fx-beam-counter{height:9px}.gm-fx-flame .gm-fx-glyph,.gm-fx-lightning .gm-fx-glyph{fill:currentColor;stroke:#fff8;stroke-width:2}.gm-fx-spirit{width:150px;height:150px;margin:-75px}.gm-fx-spirit .gm-fx-glyph{width:114px;height:114px;fill:#7affba55}.gm-fx-dodge{animation:gmFxDodge var(--fx-time) ease-out both}.gm-fx-curse .gm-fx-ring,.gm-fx-hex .gm-fx-ring{border-radius:20%;transform:rotate(45deg)}.gm-fx-cooling .gm-fx-particles i,.gm-fx-meditate .gm-fx-particles i,.gm-fx-drain .gm-fx-particles i{animation-direction:reverse}.gm-fx-contract-ready{color:#ffe090;filter:drop-shadow(0 0 20px #ffbd3d)}.gm-fx-sniper .gm-fx-glyph{stroke-width:2}.gm-fx-heat .gm-fx-ring{border-color:#ff5029;border-style:dotted}.gm-fx-shield .gm-fx-glyph,.gm-fx-guard .gm-fx-glyph,.gm-fx-beskar .gm-fx-glyph{fill:#79dfff44}.gm-fx-quickshot .gm-fx-ring{border-style:dashed}.gm-fx-beam-quickshot,.gm-fx-beam-support{box-shadow:0 -9px 3px var(--fx-color),0 9px 3px var(--fx-color)}
@keyframes gmFxIn{0%{opacity:0;scale:.6}20%{opacity:1;scale:1.05}75%{opacity:1}100%{opacity:0;scale:1.2}}@keyframes gmFxRing{from{scale:.3;opacity:1}to{scale:1.8;opacity:0}}@keyframes gmFxSpin{from{rotate:0deg;opacity:1}to{rotate:150deg;opacity:0}}@keyframes gmFxSparks{from{transform:rotate(var(--angle)) translateY(-24px);opacity:1}to{transform:rotate(var(--angle)) translateY(-94px);opacity:0}}@keyframes gmFxBeam{0%{clip-path:inset(0 100% 0 0);opacity:0}20%{opacity:1}45%{clip-path:inset(0);opacity:1}100%{opacity:0}}@keyframes gmFxDodge{0%{opacity:.8;translate:0}100%{opacity:0;translate:50px}}
@media(prefers-reduced-motion:reduce){.gm-fx,.gm-fx *,.gm-fx-beam{animation:none!important}.gm-fx-particles,.gm-fx-beam,.gm-fx-ring{display:none}.gm-fx{filter:none}.battle-overlay .fighter,.battle-overlay .battle-character-wrap{animation:none!important}}
