/* ── Burst VFX (burst.js) ── */
.enemy-burst {
  --burst-main: rgba(255, 160, 188, 0.95);
  --burst-soft: rgba(239, 68, 68, 0.35);
  position: fixed;
  width: 2px;
  height: 2px;
  pointer-events: none;
  z-index: 10002;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0 8px var(--burst-soft));
}
.enemy-burst--parry {
  --burst-main: rgba(236, 245, 255, 0.95);
  --burst-soft: rgba(181, 224, 255, 0.42);
}
.enemy-burst--heal {
  --burst-main: rgba(188, 255, 220, 0.95);
  --burst-soft: rgba(90, 232, 164, 0.42);
}
.enemy-burst__core,
.enemy-burst__ring,
.enemy-burst__ray {
  position: absolute;
  left: 0;
  top: 0;
}
.enemy-burst__core {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, var(--burst-main) 0%, rgba(255,255,255,0.7) 35%, rgba(255,255,255,0) 72%);
  animation: enemy-burst-core 0.38s ease-out forwards;
}
.enemy-burst__ring {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  border: 1px solid var(--burst-main);
  opacity: 0.9;
  animation: enemy-burst-ring 0.44s ease-out forwards;
}
.enemy-burst__ray {
  width: var(--ray-len, 14px);
  height: 2px;
  border-radius: 999px;
  transform-origin: 0 50%;
  transform: translate(0, -50%) rotate(var(--ray-angle, 0deg));
  background: linear-gradient(90deg, var(--burst-main) 0%, rgba(255,255,255,0.2) 70%, rgba(255,255,255,0) 100%);
  opacity: 0;
  animation: enemy-burst-ray 0.42s ease-out forwards;
  animation-delay: var(--ray-delay, 0s);
}
@keyframes enemy-burst-core {
  0%   { opacity: 0.95; transform: translate(-50%, -50%) scale(0.2); }
  60%  { opacity: 0.65; transform: translate(-50%, -50%) scale(1.05); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(0.85); }
}
@keyframes enemy-burst-ring {
  0%   { opacity: 0.9; transform: translate(-50%, -50%) scale(0.4); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(2.2); }
}
@keyframes enemy-burst-ray {
  0%   { opacity: 0; transform: translate(0, -50%) rotate(var(--ray-angle, 0deg)) scaleX(0.2); }
  24%  { opacity: 1; transform: translate(0, -50%) rotate(var(--ray-angle, 0deg)) scaleX(1.1); }
  100% { opacity: 0; transform: translate(0, -50%) rotate(var(--ray-angle, 0deg)) scaleX(0.8); }
}

/* ── Perfect parry star ── */
.perfect-parry-star {
  --star-life: 700ms;
  --star-drift-x: 0px;
  --star-drift-y: -20px;
  --star-scale: 1;
  position: fixed;
  width: 16px;
  height: 16px;
  pointer-events: none;
  z-index: 9997;
  transform: translate(-50%, -50%) scale(0.4) rotate(0deg);
  background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(255,240,170,0.95) 45%, rgba(255,222,120,0.12) 100%);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 56%, 79% 92%, 50% 69%, 21% 92%, 32% 56%, 2% 35%, 39% 35%);
  filter: drop-shadow(0 0 6px rgba(255, 234, 150, 0.6));
  opacity: 0;
  animation: perfect-parry-star-life var(--star-life) ease-out forwards;
}
@keyframes perfect-parry-star-life {
  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.35) rotate(-14deg); }
  20%  { opacity: 0.95; transform: translate(-50%, -50%) scale(calc(var(--star-scale) * 1.05)) rotate(8deg); }
  65%  { opacity: 0.78; transform: translate(calc(-50% + var(--star-drift-x)), calc(-50% + var(--star-drift-y))) scale(var(--star-scale)) rotate(20deg); }
  100% { opacity: 0; transform: translate(calc(-50% + var(--star-drift-x)), calc(-50% + var(--star-drift-y))) scale(calc(var(--star-scale) * 0.85)) rotate(36deg); }
}

/* ── Cursor hint — "catch it" one-shot label ── */
.cursor-hint {
  position: fixed;
  pointer-events: none;
  z-index: 9997;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: rgba(245, 208, 0, 0.7);
  letter-spacing: 0.08em;
  transform: translate(-50%, -50%);
  animation: hint-life 2.5s ease forwards;
  user-select: none;
}
@keyframes hint-life {
  0%   { opacity: 0; margin-top: 0px; }
  20%  { opacity: 1; }
  70%  { opacity: 1; }
  100% { opacity: 0; margin-top: -12px; }
}
