/* Warm spirit light belongs to the engraved animals, not to their lettering. */
#zodiac-intro .zodiac-spirit-halo,
#zodiac-intro .zodiac-spirit-wisp,
#zodiac-intro .zodiac-spirit-motes {
  transform-box: view-box;
  transform-origin: 0 0;
  pointer-events: none;
}
#zodiac-intro .zodiac-spirit-halo { opacity: .82; }
#zodiac-intro .zodiac-spirit-wisp { opacity: .72; }
#zodiac-intro .zodiac-spirit-motes { opacity: .7; }
#zodiac-intro .zodiac-aura-haze,
#zodiac-intro .zodiac-aura-ribbons,
#zodiac-intro .zodiac-aura-dust {
  transform-box: view-box;
  transform-origin: 300px 300px;
}
#zodiac-intro.intro-awake .zodiac-spirit-halo {
  animation: ming-spirit-breathe 2.25s var(--spirit-delay) ease-in-out infinite;
}
#zodiac-intro.intro-awake .zodiac-spirit-wisp {
  animation: ming-spirit-wisp 2.9s var(--spirit-delay) ease-in-out infinite;
}
#zodiac-intro.intro-awake .zodiac-spirit-motes {
  animation: ming-spirit-rise 2.35s var(--spirit-delay) ease-in-out infinite;
}
#zodiac-intro.intro-awake .zodiac-aura-haze {
  animation: ming-aura-drift 18s linear infinite;
}
#zodiac-intro.intro-awake .zodiac-aura-ribbons {
  animation: ming-aura-drift 24s linear infinite reverse;
}
#zodiac-intro.intro-awake .zodiac-aura-dust {
  animation: ming-aura-drift 27s linear infinite;
}
@keyframes ming-spirit-breathe {
  0%, 100% { opacity: .62; transform: scale(.94); }
  50% { opacity: 1; transform: scale(1.045); }
}
@keyframes ming-spirit-wisp {
  0%, 100% { opacity: .35; transform: rotate(-7deg) scale(.98); }
  50% { opacity: .85; transform: rotate(7deg) scale(1.04); }
}
@keyframes ming-spirit-rise {
  0%, 100% { opacity: .18; transform: translateY(4px); }
  45% { opacity: .85; transform: translateY(-3px); }
  80% { opacity: .3; transform: translateY(-7px); }
}
@keyframes ming-aura-drift { to { transform: rotate(360deg); } }
/* Outer spirit light leaves early; the spinning center makes the final handoff. */
#zodiac-intro.intro-zoom .zodiac-aura-atmosphere,
#zodiac-intro.intro-zoom .zodiac-spirit-ring {
  opacity: 0;
  transition: opacity calc(var(--handoff-duration) * .36) ease calc(var(--handoff-duration) * .06);
}
#zodiac-intro.intro-still .zodiac-spirit-halo,
body.motion-paused #zodiac-intro .zodiac-spirit-halo { opacity: .75; }
#zodiac-intro.intro-still :is(.zodiac-spirit-halo, .zodiac-spirit-wisp, .zodiac-spirit-motes, .zodiac-aura-haze, .zodiac-aura-ribbons, .zodiac-aura-dust),
body.motion-paused #zodiac-intro :is(.zodiac-spirit-halo, .zodiac-spirit-wisp, .zodiac-spirit-motes, .zodiac-aura-haze, .zodiac-aura-ribbons, .zodiac-aura-dust) { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  #zodiac-intro :is(.zodiac-spirit-halo, .zodiac-spirit-wisp, .zodiac-spirit-motes, .zodiac-aura-haze, .zodiac-aura-ribbons, .zodiac-aura-dust) { animation: none !important; }
  #zodiac-intro .zodiac-spirit-halo { opacity: .75; }
}
