/* J-1001-TYPING-VAMP-IMAGINE (DEV): Imagine vampire, hall 6. Copy of mino-imagine.css rules. */
.monster-rect.vamp-imagine.atk-vampire { animation: none !important; } /* the frames carry the swing */
.monster-rect.vamp-imagine img {
  transform-origin: 53.93% 99.50%; /* body x 411.5, ground row 792 of the 763x796 frames */
  animation: vamp-breathe 2.9s ease-in-out infinite;
}
.monster-rect.vamp-imagine.skel-knock img { animation: vamp-breathe 2.9s ease-in-out infinite, vamp-knock .3s ease-out; }
.monster-rect.vamp-imagine.skel-knock-heavy img { animation: vamp-breathe 2.9s ease-in-out infinite, vamp-knock-heavy .36s ease-out; }
.monster-rect.vamp-imagine.skel-dying img { animation: vamp-fade var(--skel-fade-total, 1460ms) linear forwards; }

#monster-rect.vamp-imagine.slash-hit img { animation: slash-hit .3s ease-out, vamp-breathe 2.9s ease-in-out infinite; }
#monster-rect.vamp-imagine.slash-hit.skel-knock img { animation: slash-hit .3s ease-out, vamp-breathe 2.9s ease-in-out infinite, vamp-knock .3s ease-out; }
#monster-rect.vamp-imagine.slash-hit.skel-knock-heavy img { animation: slash-hit .3s ease-out, vamp-breathe 2.9s ease-in-out infinite, vamp-knock-heavy .36s ease-out; }
#monster-rect.vamp-imagine.slash-hit.skel-dying img { animation: slash-hit .3s ease-out, vamp-fade var(--skel-fade-total, 1460ms) linear forwards; }

/* heavy chest rise, hooves stay planted */
@keyframes vamp-breathe {
  0%, 100% { scale: 1 1; }
  50% { scale: 1.006 1.016; }
}
/* pushed away from the hero (right): same canvas px as the skeleton's knock */
@keyframes vamp-knock {
  0% { translate: 0 0; }
  30% { translate: 1.5% 0; }
  100% { translate: 0 0; }
}
@keyframes vamp-knock-heavy {
  0% { translate: 0 0; }
  25% { translate: 3% 0; }
  100% { translate: 0 0; }
}
/* heavy hit -> sink -> kneel, hold, then fade before the next foe steps up */
@keyframes vamp-fade {
  0%, 70% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .monster-rect.vamp-imagine img,
  .monster-rect.vamp-imagine.skel-knock img,
  .monster-rect.vamp-imagine.skel-knock-heavy img { animation: none; }
}

/* J-1001-TYPING-VAMP-FLOAT: he glides in toward the hero for the claw (contact at
   240 ms), holds through the hit, then floats back to his spot. `translate` only,
   so it stacks with the breathing `scale` and never fights the pose rotate. */
.monster-rect.vamp-imagine.atk-vampire img {
  animation: vamp-breathe 2.9s ease-in-out infinite, vamp-float-strike .78s cubic-bezier(.3,.1,.3,1) both;
}
@keyframes vamp-float-strike {
  0%   { translate: 0 0; }
  31%  { translate: -18% -1.5%; }   /* claw lands */
  45%  { translate: -18% -1.5%; }
  100% { translate: 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .monster-rect.vamp-imagine.atk-vampire img { animation: none; }
}
