/* Forest Frontier v0.9.25 — unified damage readability and visible manual responses. */

/* Every damage number uses the former long profile, extended by 100 ms.
   Healing remains on its own shorter feedback profile. */
body.theme-ashen .damage-float.show:not(.heal),
body.theme-ashen .damage-float.visible:not(.heal) {
  animation-duration: 1.9s !important;
  animation-fill-mode: both !important;
}

/* A manual response must read as an attack made by the hero, not only as a
   number and a reaction on the enemy card. */
body.theme-ashen #heroCard.response-strike-parry {
  z-index: 4;
  animation: hero-parry-response-v0925 .68s cubic-bezier(.18,.78,.2,1) both !important;
}
body.theme-ashen #heroCard.response-strike-counter {
  z-index: 4;
  animation: hero-counter-response-v0925 .68s cubic-bezier(.18,.76,.2,1) both !important;
}
body.theme-ashen #heroCard.response-strike-parry .figure {
  animation: hero-parry-figure-v0925 .68s cubic-bezier(.18,.78,.2,1) both !important;
}
body.theme-ashen #heroCard.response-strike-counter .figure {
  animation: hero-counter-figure-v0925 .68s cubic-bezier(.18,.76,.2,1) both !important;
}

@keyframes hero-parry-response-v0925 {
  0% { transform: translate3d(0,0,0) scale(1); filter: brightness(1); }
  20% { transform: translate3d(-5px,0,0) scale(.99); filter: brightness(1.08); }
  46% { transform: translate3d(18px,0,0) scale(1.035); filter: brightness(1.55) saturate(1.22); box-shadow: inset 0 0 34px rgba(76,218,201,.22), 0 0 24px rgba(60,192,177,.22); }
  66% { transform: translate3d(7px,0,0) scale(1.012); filter: brightness(1.2); }
  100% { transform: translate3d(0,0,0) scale(1); filter: brightness(1); }
}
@keyframes hero-counter-response-v0925 {
  0% { transform: translate3d(0,0,0) scale(1); filter: brightness(1); }
  22% { transform: translate3d(-3px,0,0) scale(.995); filter: brightness(1.06); }
  47% { transform: translate3d(15px,0,0) scale(1.03); filter: brightness(1.42) saturate(1.12); box-shadow: inset 0 0 32px rgba(226,185,93,.2), 0 0 22px rgba(191,137,48,.2); }
  68% { transform: translate3d(6px,0,0) scale(1.01); filter: brightness(1.16); }
  100% { transform: translate3d(0,0,0) scale(1); filter: brightness(1); }
}
@keyframes hero-parry-figure-v0925 {
  0%, 100% { transform: translateX(0) rotate(0); filter: brightness(1); }
  22% { transform: translateX(-3px) rotate(-2deg); }
  46% { transform: translateX(10px) rotate(3deg); filter: brightness(1.65) drop-shadow(0 0 9px rgba(76,218,201,.48)); }
  68% { transform: translateX(4px) rotate(1deg); }
}
@keyframes hero-counter-figure-v0925 {
  0%, 100% { transform: translateX(0) scale(1); filter: brightness(1); }
  24% { transform: translateX(-2px) scale(.99); }
  47% { transform: translateX(8px) scale(1.035); filter: brightness(1.5) drop-shadow(0 0 8px rgba(226,185,93,.42)); }
  70% { transform: translateX(3px) scale(1.01); }
}

@media (prefers-reduced-motion: reduce) {
  body.theme-ashen #heroCard.response-strike-parry,
  body.theme-ashen #heroCard.response-strike-counter,
  body.theme-ashen #heroCard.response-strike-parry .figure,
  body.theme-ashen #heroCard.response-strike-counter .figure {
    animation: none !important;
  }
}
