/** ====================================================================
   AOS (Animate On Scroll) v2.3.4 - Professional Configuration
   Works with AOS library to trigger animations on scroll
   ==================================================================== */

/* Base state - elements hidden until AOS triggers them */
[data-aos] {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: none;
  visibility: visible;
}

/* When AOS library detects element in viewport, adds aos-animate class */
[data-aos].aos-animate {
  transition: opacity 1s ease, transform 1s ease;
  will-change: opacity, transform;
}

/* Fade-up animation - element fades in and moves up */
[data-aos="fade-up"].aos-animate {
  animation: fadeUpAnimation 1s ease forwards;
}

/* Fade-in animation - element only fades in, no movement */
[data-aos="fade-in"].aos-animate {
  animation: fadeInAnimation 1s ease forwards;
}

/* Keyframe Animations */
@keyframes fadeUpAnimation {
  from {
    opacity: 0;
    transform: translate3d(0, 40px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

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

/* Animation Delays */
[data-aos].aos-animate[data-aos-delay="0"] {
  animation-delay: 0ms;
}

[data-aos].aos-animate[data-aos-delay="100"] {
  animation-delay: 100ms;
}

[data-aos].aos-animate[data-aos-delay="200"] {
  animation-delay: 200ms;
}

[data-aos].aos-animate[data-aos-delay="300"] {
  animation-delay: 300ms;
}

[data-aos].aos-animate[data-aos-delay="400"] {
  animation-delay: 400ms;
}

[data-aos].aos-animate[data-aos-delay="500"] {
  animation-delay: 500ms;
}

/* Accessibility - respect user preferences */
@media (prefers-reduced-motion: reduce) {
  [data-aos] {
    animation: none !important;
    transition: none !important;
  }
  
  [data-aos].aos-animate {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
