/* Load after card-v03 styles. Speed belongs to the rendered battle stage, so
   prepare/active views and every event share the same visual setting. */
:is([data-battle-speed="4"],[data-battle-speed="10"]) .enemy.hit::after {
  content:none;
  animation:none;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) :is(.ally-card.hit,.ally-card.is-hit) .state-fx {
  opacity:0;
  background:transparent;
  animation:none;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .enemy-frame.hit .enemy-frame-art {
  filter:none;
  animation-name:fast-enemy-frame-hit;
}

/* Keep the motion cue; omit every brightness/desaturation keyframe. */
:is([data-battle-speed="4"],[data-battle-speed="10"]) .unit.hit {
  animation-name:fast-card-hit;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .unit.acting {
  animation-name:fast-card-act;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .enemy.hit .enemy-art {
  animation-name:fast-enemy-art-hit;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .enemy.acting .enemy-art {
  animation-name:fast-enemy-art-act;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .enemy.hit .enemy-figure {
  animation-name:fast-enemy-hit;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .enemy.acting .enemy-figure {
  animation-name:fast-enemy-act;
}
@keyframes fast-card-hit {28%{transform:translateX(-5px)}55%{transform:translateX(4px)}}
@keyframes fast-card-act {45%{transform:translateY(-9px) scale(1.025)}70%{transform:translateY(2px)}}
@keyframes fast-enemy-art-hit {28%{transform:scale(1.03) translateX(-7px)}55%{transform:scale(1.03) translateX(5px)}}
@keyframes fast-enemy-art-act {42%{transform:scale(1.08) translateY(7px)}75%{transform:scale(1.03) translateY(-2px)}}
@keyframes fast-enemy-hit {28%{translate:calc(-50% - 7px) 0}55%{translate:calc(-50% + 5px) 0}}
@keyframes fast-enemy-act {42%{translate:-50% 10px;scale:1.08}75%{translate:-50% -3px}}
@keyframes fast-enemy-frame-hit {35%{transform:translateX(-3px)}}

/* Legacy DOM FX remains supported alongside the current canvas renderer. */
:is([data-battle-speed="4"],[data-battle-speed="10"]) :is(.damage,.attack,.skill) .fx-impact {
  background:conic-gradient(from 25deg,transparent,#cf405d,transparent 18%,#e8b85e,transparent 42%,#cf405d,transparent 63%);
  border-color:#cf405d;
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .fx-streak {
  background:linear-gradient(90deg,transparent,#e8b85e 30%,#cf405d 62%,transparent);
}
:is([data-battle-speed="4"],[data-battle-speed="10"]) .skill .fx-streak {
  background:linear-gradient(90deg,transparent,#ff7ba2 25%,#b01f62 55%,transparent);
}
