/* Micro-motion on parts only — does not fight SVG transform */

@keyframes flame {
  0%, 100% { transform: scaleY(1) scaleX(1); opacity: 0.95; }
  40% { transform: scaleY(1.14) scaleX(0.9); opacity: 1; }
  70% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.82; }
}
@keyframes spring-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.07); }
}
@keyframes wing {
  0%, 100% { transform: rotate(-8deg); }
  50% { transform: rotate(10deg); }
}
@keyframes shimmer {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.85; }
}
@keyframes water-rise {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes dust-drift {
  0% { transform: translate(0, 0); opacity: 0.35; }
  50% { transform: translate(8px, -14px); opacity: 0.7; }
  100% { transform: translate(16px, -6px); opacity: 0.2; }
}
@keyframes bird-flap {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.55); }
}
@keyframes drop-fall {
  0% { transform: translateY(0); opacity: 0.9; }
  100% { transform: translateY(28px); opacity: 0; }
}
@keyframes halo-glow {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 0.9; }
}
@keyframes robe-sway {
  0%, 100% { transform: rotate(-0.6deg); }
  50% { transform: rotate(0.6deg); }
}

.actor-angel .wing-l {
  transform-box: fill-box;
  transform-origin: right center;
  animation: wing 2.1s ease-in-out infinite;
}
.actor-angel .wing-r {
  transform-box: fill-box;
  transform-origin: left center;
  animation: wing 2.1s ease-in-out infinite reverse;
}

.actor-fire .flame-a,
.actor-fire .flame-b {
  transform-box: fill-box;
  transform-origin: center bottom;
  animation: flame 0.65s ease-in-out infinite;
}
.actor-fire .flame-b { animation-delay: 0.12s; }

.actor-spring .spring-water {
  transform-box: fill-box;
  transform-origin: center;
  animation: spring-pulse 1.8s ease-in-out infinite;
}
.actor-spring .spring-arc {
  animation: shimmer 1.4s ease-in-out infinite;
}

.actor-vessel .water-fill {
  transform-box: fill-box;
  animation: water-rise 2.2s ease-in-out infinite;
}

.prop-dust {
  animation: dust-drift 3.2s ease-in-out infinite;
}
.prop-bird {
  transform-box: fill-box;
  transform-origin: center;
  animation: bird-flap 0.45s ease-in-out infinite;
}
.prop-drop {
  animation: drop-fall 1.6s ease-in infinite;
}
.actor-christ .halo-ring {
  animation: halo-glow 2.8s ease-in-out infinite;
}
.actor-priest .robe-fold,
.actor-elijah .mantle-l,
.actor-elijah .mantle-r {
  transform-box: fill-box;
  transform-origin: top center;
  animation: robe-sway 3.4s ease-in-out infinite;
}
.actor-elijah .mantle-r { animation-delay: 0.4s; }

.draw-line {
  filter: drop-shadow(0 0 0.6px rgba(26, 36, 48, 0.22));
}

@media (prefers-reduced-motion: reduce) {
  .actor-angel .wing-l,
  .actor-angel .wing-r,
  .actor-fire .flame-a,
  .actor-fire .flame-b,
  .actor-spring .spring-water,
  .actor-spring .spring-arc,
  .actor-vessel .water-fill,
  .prop-dust,
  .prop-bird,
  .prop-drop,
  .actor-christ .halo-ring,
  .actor-priest .robe-fold,
  .actor-elijah .mantle-l,
  .actor-elijah .mantle-r {
    animation: none !important;
  }
}
