/* =============================================
   KEYFRAMES
   ============================================= */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes scrollDrop {
  0%   { transform: scaleY(0.3) translateY(-8px); opacity: 0.2; transform-origin: top; }
  50%  { transform: scaleY(1)   translateY(0);    opacity: 1;   transform-origin: top; }
  100% { transform: scaleY(0.3) translateY(8px);  opacity: 0.2; transform-origin: bottom; }
}

/* =============================================
   HERO ENTRANCE  (staggered)
   ============================================= */
.hero-eyebrow { animation: fadeUp 0.7s ease 0.15s both; }
.hero-title   { animation: fadeUp 0.75s ease 0.3s both; }
.hero-sub     { animation: fadeUp 0.7s ease 0.48s both; }
.btn-primary  { animation: fadeUp 0.7s ease 0.62s both; }
.hero-scroll-cue { animation: fadeIn 1s ease 1.1s both; }

.scroll-line {
  animation: scrollDrop 2.2s ease-in-out infinite;
}

/* =============================================
   SCROLL REVEALS
   ============================================= */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger gallery items after they enter view */
.gallery-item.reveal:nth-child(2) { transition-delay: 0.07s; }
.gallery-item.reveal:nth-child(3) { transition-delay: 0.14s; }
.gallery-item.reveal:nth-child(4) { transition-delay: 0.21s; }
.gallery-item.reveal:nth-child(5) { transition-delay: 0.28s; }
.gallery-item.reveal:nth-child(6) { transition-delay: 0.35s; }

/* =============================================
   REDUCED MOTION  — respect the user
   ============================================= */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .hero-eyebrow,
  .hero-title,
  .hero-sub,
  .btn-primary,
  .hero-scroll-cue {
    animation: fadeIn 0.25s ease both;
  }

  .scroll-line { animation: none; opacity: 0.5; }

  .reveal {
    opacity: 0;
    transform: none;
    transition: opacity 0.4s ease;
  }

  .reveal.in-view { opacity: 1; }

  .gallery-item.reveal { transition-delay: 0s !important; }

  .gallery-item img,
  .btn-primary,
  .btn-call,
  .btn-call-lg { transition: none; }
}
