/* ============================================================
   AURÉLIS — Animations
   Reveal states, staggers, reduced-motion.
   Only transform + opacity are animated (GPU-friendly).
   ============================================================ */

/* ---------- Scroll reveal ---------- */
.reveal-up {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity 0.9s var(--ease-out),
    transform 0.9s var(--ease-out);
  transition-delay: var(--reveal-delay, 0s);
  will-change: transform, opacity;
}
.reveal-up.is-in {
  opacity: 1;
  transform: translateY(0);
}

/* Reveal for scaled/blur images */
.reveal-clip {
  clip-path: inset(0 0 100% 0);
  transition: clip-path 1s var(--ease-in-out);
}
.reveal-clip.is-in { clip-path: inset(0 0 0 0); }

/* ---------- Stagger children (cards, list items) ---------- */
[data-stagger] > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s var(--ease-out), transform 0.7s var(--ease-out);
}
[data-stagger].is-in > * { opacity: 1; transform: translateY(0); }
[data-stagger].is-in > *:nth-child(1) { transition-delay: 0ms; }
[data-stagger].is-in > *:nth-child(2) { transition-delay: 60ms; }
[data-stagger].is-in > *:nth-child(3) { transition-delay: 120ms; }
[data-stagger].is-in > *:nth-child(4) { transition-delay: 180ms; }
[data-stagger].is-in > *:nth-child(5) { transition-delay: 240ms; }
[data-stagger].is-in > *:nth-child(6) { transition-delay: 300ms; }

/* ---------- Counters (avoid layout jitter) ---------- */
.counter, [data-count] { font-variant-numeric: tabular-nums; }

/* ---------- Toast enter/exit (interruptible via transition, not keyframes) ---------- */
.toast {
  opacity: 0;
  transform: translateY(16px) scale(0.96);
  transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
}
.toast.is-in { opacity: 1; transform: translateY(0) scale(1); }
.toast.is-out { opacity: 0; transform: translateY(8px) scale(0.98); }

/* ---------- Focus visibility (accessibility) ---------- */
:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ============================================================
   REDUCED MOTION
   Keep opacity/color transitions that aid comprehension.
   Remove movement + looping animations.
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }

  /* Reveal purely via opacity, no translate */
  .reveal-up, [data-stagger] > * { transform: none !important; }
  .reveal-up { transition: opacity 0.4s ease !important; }

  /* Kill continuous motion */
  .marquee__track, .press__track,
  .hero__scroll-line span, .map__pin::before, .map__pin::after,
  .film__play-ring, .loader__diamond, .loader__word span {
    animation: none !important;
  }
  .hero__title .word { transform: none !important; }

  /* Neutralise parallax/hover transforms */
  [data-parallax] { transform: none !important; }
}
