/* Effects sit around the art. No shader, scale or filter is applied to sprites. */
.spell-fx{--fx-color:#ffdf85;pointer-events:none;position:absolute;z-index:6;left:50%;top:54%;width:76px;height:76px;margin:-38px;color:var(--fx-color);border-radius:50%;animation:fx-bloom .65s ease-out both}.spell-fx.fx-heavy{width:96px;height:96px;margin:-48px}.fx-cast{border:1px solid var(--fx-color);box-shadow:inset 0 0 14px var(--fx-color),0 0 5px var(--fx-color);animation:fx-cast .45s ease-out both}.fx-slash,.fx-cleave{border-top:4px solid var(--fx-color);border-right:2px solid #fff;rotate:-35deg;box-shadow:3px -5px 12px color-mix(in srgb,var(--fx-color) 50%,transparent);animation:fx-slash .45s ease-out both}.fx-cleave:after{content:'';position:absolute;inset:12px -8px 0 12px;border-top:3px solid var(--fx-color);border-radius:50%;rotate:65deg}.fx-nova,.fx-quake{border:2px solid var(--fx-color);box-shadow:0 0 13px var(--fx-color),inset 0 0 16px color-mix(in srgb,var(--fx-color) 55%,transparent)}.fx-quake{height:32px;margin-top:12px}.fx-nova>i,.fx-quake>i{position:absolute;inset:50% auto auto 50%;width:3px;height:24px;background:linear-gradient(var(--fx-color),transparent);transform:rotate(calc(var(--i)*45deg)) translateY(-42px);transform-origin:0 0}.fx-crystal{border-radius:0;background:linear-gradient(25deg,transparent 30%,color-mix(in srgb,var(--fx-color) 25%,transparent),transparent 72%)}.fx-crystal>i{position:absolute;bottom:12%;left:calc(12% + var(--i)*12%);width:11px;height:calc(28px + var(--i)*5px);border:1px solid #d6fcff;background:linear-gradient(110deg,#fff9,var(--fx-color),#345d8b55);clip-path:polygon(50% 0,100% 32%,78% 100%,24% 100%,0 32%);rotate:calc((var(--i) - 2.5)*13deg);animation:fx-rise .7s both}.fx-snare{border:2px dashed var(--fx-color);height:36px;margin-top:8px;box-shadow:0 0 10px color-mix(in srgb,var(--fx-color) 50%,transparent)}.fx-snare>i{position:absolute;left:calc(var(--i)*12%);bottom:0;width:9px;height:40px;border-left:2px solid var(--fx-color);border-radius:70% 0 0 0;rotate:calc((var(--i) - 3)*8deg)}.fx-seal{border:2px solid var(--fx-color);outline:1px solid var(--fx-color);outline-offset:-9px}.fx-seal>i{position:absolute;left:50%;top:50%;height:40%;width:1px;background:var(--fx-color);transform-origin:top;rotate:calc(var(--i)*45deg)}.fx-ward{height:94px;width:78px;margin:-47px -39px;border:2px solid var(--fx-color);border-radius:45% 45% 48% 48%;background:linear-gradient(120deg,transparent 25%,color-mix(in srgb,var(--fx-color) 22%,transparent),transparent 80%);box-shadow:0 0 12px color-mix(in srgb,var(--fx-color) 60%,transparent);animation:fx-ward 1.05s ease-out both}.fx-heal,.fx-potion,.fx-aura{border:2px solid var(--fx-color);height:30px;margin-top:25px;box-shadow:0 0 10px var(--fx-color);animation:fx-heal 1s ease-out both}.fx-heal:before,.fx-potion:before{content:'+';position:absolute;left:38%;top:-40px;font:700 32px/1 sans-serif;color:var(--fx-color);text-shadow:0 0 10px var(--fx-color)}.fx-aura:after{content:'';position:absolute;inset:-48px 18px 0;background:linear-gradient(0deg,color-mix(in srgb,var(--fx-color) 38%,transparent),transparent)}.fx-mist{background:radial-gradient(ellipse,color-mix(in srgb,var(--fx-color) 35%,transparent),transparent 70%);width:130px;height:84px;margin:-20px -65px;animation:fx-mist 1s ease-out both}.fx-meteor,.fx-beam{border-radius:2px;left:50%;top:-50px;width:18px;height:150px;margin:0 -9px;background:linear-gradient(0deg,#fff, var(--fx-color),transparent);box-shadow:0 0 16px var(--fx-color);rotate:18deg;animation:fx-meteor .7s ease-out both}.fx-bolt,.fx-arrow,.fx-volley{background:radial-gradient(circle,#fffe,var(--fx-color) 12%,transparent 63%);width:54px;height:54px;margin:-27px}.spell-flight{pointer-events:none;position:absolute;z-index:24;width:38px;height:7px;margin:-3px -19px;border-radius:50%;background:linear-gradient(90deg,transparent,var(--fx-color),#fff);box-shadow:0 0 10px var(--fx-color);transform-origin:center}.spell-flight.flight-arrow,.spell-flight.flight-volley{height:3px;width:44px}.flight-arrow:after,.flight-volley:after{content:'';position:absolute;right:-2px;top:-4px;width:10px;height:10px;border-top:2px solid white;border-right:2px solid white;rotate:45deg}.spell-flight.flight-beam{height:5px;width:80px;box-shadow:0 0 16px var(--fx-color)}.battle-unit.guarded>.unit-ground{border:1px solid #ffe098;box-shadow:0 0 7px #ffe09866}.battle-unit.afflicted>.unit-intent{color:#8357a8}.battle-unit.casting>.unit-ground{border:2px solid #ee9864;animation:fx-warning 1s ease-in-out infinite}.battle-unit .floating-number.skill-name{max-width:150px;overflow-wrap:anywhere;white-space:normal;font-size:11px;line-height:1.3}.battlefield .unit-art>.sprite{filter:none!important;object-fit:contain}
@keyframes fx-bloom{0%{opacity:0;scale:.55}20%{opacity:1}100%{opacity:0;scale:1.3}}@keyframes fx-cast{0%{opacity:0;scale:1.1}40%{opacity:.9}100%{opacity:0;scale:.7}}@keyframes fx-slash{0%{opacity:0;rotate:-70deg}25%{opacity:1}100%{opacity:0;rotate:35deg}}@keyframes fx-rise{0%{opacity:0;translate:0 18px}30%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -4px}}@keyframes fx-ward{0%{opacity:0;translate:0 5px}25%,65%{opacity:.85;translate:0 0}100%{opacity:0}}@keyframes fx-heal{0%{opacity:0;translate:0 0}30%{opacity:1}100%{opacity:0;translate:0 -34px}}@keyframes fx-mist{0%{opacity:0;translate:-12px 0}30%{opacity:.9}100%{opacity:0;translate:20px -15px}}@keyframes fx-meteor{0%{opacity:0;translate:-14px -50px}30%{opacity:1;translate:0 0}100%{opacity:0;translate:3px 12px}}@keyframes fx-warning{50%{opacity:.45}}
[data-motion="reduced"] .spell-fx,[data-motion="reduced"] .battle-unit.casting>.unit-ground{animation:none!important;opacity:.65}[data-motion="reduced"] .spell-fx>i{animation:none!important}[data-motion="reduced"] .floating-number{animation:none;opacity:1;translate:0 -16px}
@media(prefers-reduced-motion:reduce){.spell-fx,.spell-fx>i,.battle-unit.casting>.unit-ground{animation:none!important;opacity:.65}}
@media(max-width:600px){.spell-fx{width:58px;height:58px;margin:-29px}.spell-fx.fx-heavy{width:70px;height:70px;margin:-35px}.spell-fx.fx-meteor,.spell-fx.fx-beam{width:12px;height:120px;margin:0 -6px}.spell-fx.fx-ward{height:76px;width:60px;margin:-38px -30px}.spell-fx.fx-heal,.spell-fx.fx-potion,.spell-fx.fx-aura,.spell-fx.fx-quake,.spell-fx.fx-snare{height:24px;margin-top:16px}.battle-unit .floating-number.skill-name{max-width:98px;font-size:10px}}

.combat-v9 .battle-unit.defeated{opacity:1}.combat-v9 .battle-unit.defeated .unit-art{opacity:1}.combat-v9 .battle-unit.defeated .unit-art>.sprite{opacity:.3}.combat-v9 .battle-unit.defeated>.unit-name,.combat-v9 .battle-unit.defeated>.unit-health,.combat-v9 .battle-unit.defeated>.unit-intent{opacity:.5}
