/* ============================================================
   animations.css — Scroll reveal, glow, motion preferences
   ============================================================ */

.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out);
  will-change: opacity, transform;
}
.reveal.in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }

/* Floating gradient accent */
.glow { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .5; pointer-events: none; z-index: 0; }
.glow-orange { background: radial-gradient(circle, rgba(245,130,32,.45), transparent 70%); }

@keyframes heroGlowDrift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(24px, -18px) scale(1.06); }
}

@keyframes heroCardFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@keyframes heroScrollHint {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.7; }
  50% { transform: translateX(-50%) translateY(6px); opacity: 1; }
}

.hero-card-float-1 { animation: heroCardFloat 9s var(--ease) infinite; }
.hero-card-float-2 { animation: heroCardFloat 10s var(--ease) infinite 0.6s; }
.hero-card-float-3 { animation: heroCardFloat 8.5s var(--ease) infinite 1.2s; }
.hero-card-float-4 { animation: heroCardFloat 9.5s var(--ease) infinite 0.3s; }
.hero-card-float-5 { animation: heroCardFloat 10.5s var(--ease) infinite 0.9s; }
.hero-card-float-6 { animation: heroCardFloat 8s var(--ease) infinite 1.5s; }

/* Honour reduced-motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .scroll-top { transition: none; }
  .hero-glow { animation: none; }
  .hero-scroll-hint { animation: none; }
  .hero-card-float { animation: none !important; }
  .hero-card-shell { --parallax-y: 0px !important; --mouse-x: 0px !important; --mouse-y: 0px !important; transform: none !important; }
  .hero-card:hover .hero-card-media img { transform: none; }
  .program-card:hover .program-card-inner { transform: none; }
  .program-card:hover .program-card-media img { transform: none; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
