/* ==========================================================================
   BayConnect — Animations
   Scroll-reveal + ambient hero motion. Respects prefers-reduced-motion
   (disabled via the media query in responsive.css).
   ========================================================================== */

/* ---- Scroll reveal (toggled by js/animations.js via IntersectionObserver) ---- */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger.is-visible > * {
  animation: fadeInUp 0.6s ease forwards;
}
.reveal-stagger.is-visible > *:nth-child(1) { animation-delay: 0s; }
.reveal-stagger.is-visible > *:nth-child(2) { animation-delay: 0.08s; }
.reveal-stagger.is-visible > *:nth-child(3) { animation-delay: 0.16s; }
.reveal-stagger.is-visible > *:nth-child(4) { animation-delay: 0.24s; }
.reveal-stagger.is-visible > *:nth-child(5) { animation-delay: 0.32s; }
.reveal-stagger.is-visible > *:nth-child(6) { animation-delay: 0.4s; }

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---- Nav / dropdown micro-interactions ---- */
.dropdown { transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease; }
.card, .btn, .filter-btn { will-change: transform; }

/* ---- Form success transition ---- */
.form-success { animation: fadeInUp 0.4s ease; }
