/* ── Keyframes & Animations ── */

/* Hero entrance stagger */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

.hero__eyebrow  { animation: fadeUp .9s var(--ease-out) .3s both; }
.hero__script   { animation: fadeUp .9s var(--ease-out) .5s both; }
.hero__title    { animation: fadeUp .9s var(--ease-out) .7s both; }
.hero__subtitle { animation: fadeUp .9s var(--ease-out) .9s both; }
.hero__actions  { animation: fadeUp .9s var(--ease-out) 1.1s both; }

/* Scroll indicator bounce */
@keyframes dropLine {
  0%   { transform: scaleY(0); opacity: 0; }
  50%  { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(0); opacity: 0; transform-origin: bottom; }
}

.scroll-indicator__line {
  animation: dropLine 2s var(--ease-out) infinite;
  transform-origin: top;
}

/* Marquee scroll */
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Fade in scale */
@keyframes fadeInScale {
  from { opacity: 0; transform: scale(.92); }
  to   { opacity: 1; transform: scale(1); }
}

/* Gallery image hover */
@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Pulse for dots */
@keyframes pulse {
  0%, 100% { opacity: .4; }
  50%      { opacity: 1; }
}
