/* Enhanced Scroll Animations CSS - Reusable for any section */

/* Prevent flash of unstyled content */
.scroll-animate,
.scroll-animate-fade,
.scroll-animate-slide-left,
.scroll-animate-slide-right,
.scroll-animate-scale {
  /* Ensure elements are hidden initially */
  visibility: hidden;
}

/* Base animation states - elements start hidden */
.scroll-animate {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  visibility: visible;
}

.scroll-animate-fade {
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  visibility: visible;
}

.scroll-animate-slide-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  visibility: visible;
}

.scroll-animate-slide-right {
  opacity: 0;
  transform: translateX(30px);
  transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  visibility: visible;
}

.scroll-animate-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  visibility: visible;
}

/* Animated states - when in view */
.scroll-animate.animate {
  opacity: 1 !important;
  transform: translateY(0) !important;
  visibility: visible !important;
}

.scroll-animate-fade.animate {
  opacity: 1 !important;
  visibility: visible !important;
}

.scroll-animate-slide-left.animate {
  opacity: 1 !important;
  transform: translateX(0) !important;
  visibility: visible !important;
}

.scroll-animate-slide-right.animate {
  opacity: 1 !important;
  transform: translateX(0) !important;
  visibility: visible !important;
}

.scroll-animate-scale.animate {
  opacity: 1 !important;
  transform: scale(1) !important;
  visibility: visible !important;
}

/* Staggered delay classes */
.scroll-animate.delay-1,
.scroll-animate-fade.delay-1,
.scroll-animate-slide-left.delay-1,
.scroll-animate-slide-right.delay-1,
.scroll-animate-scale.delay-1 {
  transition-delay: 0.2s;
}

.scroll-animate.delay-2,
.scroll-animate-fade.delay-2,
.scroll-animate-slide-left.delay-2,
.scroll-animate-slide-right.delay-2,
.scroll-animate-scale.delay-2 {
  transition-delay: 0.4s;
}

.scroll-animate.delay-3,
.scroll-animate-fade.delay-3,
.scroll-animate-slide-left.delay-3,
.scroll-animate-slide-right.delay-3,
.scroll-animate-scale.delay-3 {
  transition-delay: 0.6s;
}

.scroll-animate.delay-4,
.scroll-animate-fade.delay-4,
.scroll-animate-slide-left.delay-4,
.scroll-animate-slide-right.delay-4,
.scroll-animate-scale.delay-4 {
  transition-delay: 0.8s;
}

.scroll-animate.delay-5,
.scroll-animate-fade.delay-5,
.scroll-animate-slide-left.delay-5,
.scroll-animate-slide-right.delay-5,
.scroll-animate-scale.delay-5 {
  transition-delay: 1.0s;
}

.scroll-animate.delay-6,
.scroll-animate-fade.delay-6,
.scroll-animate-slide-left.delay-6,
.scroll-animate-slide-right.delay-6,
.scroll-animate-scale.delay-6 {
  transition-delay: 1.2s;
}

/* Custom timing functions */
.scroll-animate.fast,
.scroll-animate-fade.fast,
.scroll-animate-slide-left.fast,
.scroll-animate-slide-right.fast,
.scroll-animate-scale.fast {
  transition-duration: 0.5s;
}

.scroll-animate.slow,
.scroll-animate-fade.slow,
.scroll-animate-slide-left.slow,
.scroll-animate-slide-right.slow,
.scroll-animate-scale.slow {
  transition-duration: 1.2s;
} 