/* ==========================================================================
   CASA VALDORIA — animations.css
   Movimiento discreto y con propósito. Todo respeta prefers-reduced-motion.
   ========================================================================== */

@keyframes scrollLine {
  0%   { top: -100%; }
  60%  { top: 100%; }
  100% { top: 100%; }
}

/* ---------- Hero load sequence (single orchestrated moment) ---------- */
.hero__media {
  opacity: 0;
  transform: scale(1.06);
  animation: heroMedia 1.4s var(--ease) .15s forwards;
}
.hero__rail span,
.hero__title,
.hero__lede,
.hero__cta,
.hero__scroll {
  opacity: 0;
  transform: translateY(18px);
  animation: heroRise .9s var(--ease) forwards;
}
.hero__rail span   { animation-delay: .5s; }
.hero__title       { animation-delay: .55s; }
.hero__lede        { animation-delay: .78s; }
.hero__cta         { animation-delay: .95s; }
.hero__scroll      { animation-delay: 1.15s; }

@keyframes heroMedia {
  to { opacity: 1; transform: scale(1); }
}
@keyframes heroRise {
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Parallax helper (transform applied via JS) ---------- */
.parallax {
  will-change: transform;
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .hero__media, .hero__rail span, .hero__title, .hero__lede, .hero__cta, .hero__scroll {
    opacity: 1; transform: none;
  }
  .reveal { opacity: 1; transform: none; }
  .hero__scroll-line::after { animation: none; display: none; }
  .parallax { transform: none !important; }
}
