/* ============================================================
   ANIMATIONS.CSS  —  Automation Expo 2027
   SCROLL REVEAL ONLY — fadeInUp, same as the reference site
   (https://www.automationindiaexpo.com/ — WOW.js style)

   ⚠ This file contains NO hover styles.
   All hover effects stay exactly as written in index.css.
   ============================================================ */

/* Hidden state — element sits 45px lower and invisible,
   exactly like animate.css "fadeInUp" before it plays */
.reveal {
  opacity: 0;
  transform: translateY(45px);
  will-change: opacity, transform;
  transition:
    opacity 0.9s ease-out,
    transform 0.9s ease-out;
}

/* Visible state — fades in while rising to natural position */
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delays for grid children (cards appear one by one,
   like data-wow-delay on the reference site) */
.reveal-delay-1 { transition-delay: 0.10s; }
.reveal-delay-2 { transition-delay: 0.20s; }
.reveal-delay-3 { transition-delay: 0.30s; }
.reveal-delay-4 { transition-delay: 0.40s; }
.reveal-delay-5 { transition-delay: 0.50s; }
.reveal-delay-6 { transition-delay: 0.60s; }

/* When an element leaves the viewport it hides quickly with
   no delay, so it can replay cleanly on scroll up OR down */
.reveal:not(.in-view) {
  transition-delay: 0s !important;
  transition-duration: 0.35s;
}

/* Accessibility — users with reduced motion see everything */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.in-view {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}