/* =========================================================================
   Asia X Network - Professional Responsive AOS (Animate On Scroll) Styling
   ========================================================================= */

/* Base hardware acceleration and refined easing curve */
[data-aos] {
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
  will-change: transform, opacity;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* 1. Fade Up */
[data-aos="fade-up"] {
  opacity: 0;
  transform: translate3d(0, 36px, 0);
  transition-property: transform, opacity;
}

[data-aos="fade-up"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* 2. Fade Down */
[data-aos="fade-down"] {
  opacity: 0;
  transform: translate3d(0, -36px, 0);
  transition-property: transform, opacity;
}

[data-aos="fade-down"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* 3. Fade Right (enters from left) */
[data-aos="fade-right"] {
  opacity: 0;
  transform: translate3d(-40px, 0, 0);
  transition-property: transform, opacity;
}

[data-aos="fade-right"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* 4. Fade Left (enters from right) */
[data-aos="fade-left"] {
  opacity: 0;
  transform: translate3d(40px, 0, 0);
  transition-property: transform, opacity;
}

[data-aos="fade-left"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* 5. Zoom In */
[data-aos="zoom-in"] {
  opacity: 0;
  transform: scale3d(0.92, 0.92, 1);
  transition-property: transform, opacity;
}

[data-aos="zoom-in"].aos-animate {
  opacity: 1;
  transform: scale3d(1, 1, 1);
}

/* 6. Zoom In Up */
[data-aos="zoom-in-up"] {
  opacity: 0;
  transform: translate3d(0, 30px, 0) scale3d(0.93, 0.93, 1);
  transition-property: transform, opacity;
}

[data-aos="zoom-in-up"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}

/* 7. Zoom Out */
[data-aos="zoom-out"] {
  opacity: 0;
  transform: scale3d(1.08, 1.08, 1);
  transition-property: transform, opacity;
}

[data-aos="zoom-out"].aos-animate {
  opacity: 1;
  transform: scale3d(1, 1, 1);
}

/* 8. Flip Left & Right */
[data-aos="flip-left"] {
  opacity: 0;
  transform: perspective(2500px) rotateY(-70deg);
  transition-property: transform, opacity;
}

[data-aos="flip-left"].aos-animate {
  opacity: 1;
  transform: perspective(2500px) rotateY(0);
}

[data-aos="flip-right"] {
  opacity: 0;
  transform: perspective(2500px) rotateY(70deg);
  transition-property: transform, opacity;
}

[data-aos="flip-right"].aos-animate {
  opacity: 1;
  transform: perspective(2500px) rotateY(0);
}

/* 9. Flip Up */
[data-aos="flip-up"] {
  opacity: 0;
  transform: perspective(2500px) rotateX(-45deg);
  transition-property: transform, opacity;
}

[data-aos="flip-up"].aos-animate {
  opacity: 1;
  transform: perspective(2500px) rotateX(0);
}

/* 10. Corner Fades */
[data-aos="fade-up-right"] {
  opacity: 0;
  transform: translate3d(-30px, 30px, 0);
  transition-property: transform, opacity;
}

[data-aos="fade-up-right"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

[data-aos="fade-up-left"] {
  opacity: 0;
  transform: translate3d(30px, 30px, 0);
  transition-property: transform, opacity;
}

[data-aos="fade-up-left"].aos-animate {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Card & Stagger Timings */
.service-item[data-aos],
.project-card[data-aos],
.stat-card[data-aos],
.feature-card[data-aos],
.testimonial-card[data-aos],
.team-card[data-aos] {
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Duration helpers */
[data-aos-duration="400"] { transition-duration: 400ms !important; }
[data-aos-duration="500"] { transition-duration: 500ms !important; }
[data-aos-duration="600"] { transition-duration: 600ms !important; }
[data-aos-duration="700"] { transition-duration: 700ms !important; }
[data-aos-duration="800"] { transition-duration: 800ms !important; }
[data-aos-duration="900"] { transition-duration: 900ms !important; }
[data-aos-duration="1000"] { transition-duration: 1000ms !important; }

/* Delay helpers for responsive cascading sequences */
[data-aos-delay="50"] { transition-delay: 50ms !important; }
[data-aos-delay="100"] { transition-delay: 100ms !important; }
[data-aos-delay="150"] { transition-delay: 150ms !important; }
[data-aos-delay="200"] { transition-delay: 200ms !important; }
[data-aos-delay="250"] { transition-delay: 250ms !important; }
[data-aos-delay="300"] { transition-delay: 300ms !important; }
[data-aos-delay="350"] { transition-delay: 350ms !important; }
[data-aos-delay="400"] { transition-delay: 400ms !important; }
[data-aos-delay="450"] { transition-delay: 450ms !important; }
[data-aos-delay="500"] { transition-delay: 500ms !important; }
[data-aos-delay="600"] { transition-delay: 600ms !important; }
[data-aos-delay="700"] { transition-delay: 700ms !important; }
[data-aos-delay="800"] { transition-delay: 800ms !important; }

/* Responsive adjustments for Mobile screens */
@media (max-width: 768px) {
  [data-aos] {
    transition-duration: 520ms !important;
  }
  
  [data-aos="fade-right"],
  [data-aos="fade-up-right"] {
    transform: translate3d(-18px, 0, 0) !important;
  }
  
  [data-aos="fade-left"],
  [data-aos="fade-up-left"] {
    transform: translate3d(18px, 0, 0) !important;
  }
  
  [data-aos="fade-up"] {
    transform: translate3d(0, 20px, 0) !important;
  }
  
  [data-aos="fade-down"] {
    transform: translate3d(0, -18px, 0) !important;
  }
  
  [data-aos="zoom-in"],
  [data-aos="zoom-in-up"] {
    transform: scale3d(0.96, 0.96, 1) !important;
  }

  /* Reduce delays on mobile so users don't wait while scrolling rapidly */
  [data-aos-delay="250"],
  [data-aos-delay="300"],
  [data-aos-delay="350"],
  [data-aos-delay="400"],
  [data-aos-delay="450"],
  [data-aos-delay="500"],
  [data-aos-delay="600"],
  [data-aos-delay="700"],
  [data-aos-delay="800"] {
    transition-delay: 120ms !important;
  }
}

/* Compatibility with elements bearing data-animate */
[data-animate].aos-animate,
[data-animate].animated {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1) !important;
}

/* Accessibility: User prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
  [data-aos],
  [data-aos].aos-animate {
    transition-duration: 0.001ms !important;
    transition-delay: 0ms !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}
