/* animations.css — Keyframes, scroll-triggered states, transitions */

/* ==========================================================================
   Scroll reveal base
   ========================================================================== */

.reveal__item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration-slow) var(--ease-out),
              transform var(--duration-slow) var(--ease-out);
}

.reveal.is-visible .reveal__item {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children */
.reveal.is-visible .reveal__item:nth-child(2) { transition-delay: 100ms; }
.reveal.is-visible .reveal__item:nth-child(3) { transition-delay: 200ms; }
.reveal.is-visible .reveal__item:nth-child(4) { transition-delay: 300ms; }
.reveal.is-visible .reveal__item:nth-child(5) { transition-delay: 400ms; }
.reveal.is-visible .reveal__item:nth-child(6) { transition-delay: 500ms; }
.reveal.is-visible .reveal__item:nth-child(7) { transition-delay: 600ms; }
.reveal.is-visible .reveal__item:nth-child(8) { transition-delay: 700ms; }
.reveal.is-visible .reveal__item:nth-child(9) { transition-delay: 800ms; }

/* ==========================================================================
   Scroll indicator pulse
   ========================================================================== */

@keyframes pulse-scroll {
  0%, 100% { opacity: 0.4; transform: translateX(-50%) translateY(0); }
  50% { opacity: 0.8; transform: translateX(-50%) translateY(6px); }
}

.signal__scroll {
  animation: pulse-scroll 3s var(--ease-in-out) infinite;
}

/* ==========================================================================
   Galaxy map breathing
   ========================================================================== */

@keyframes map-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.015); }
}

/* ==========================================================================
   Launch status cursor blink
   ========================================================================== */

@keyframes cursor-blink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
