/* ==========================================================
   AOS (Animate On Scroll) Core Transitions
   ========================================================== */

/* ------------------------------
   Transition Durations & Delays
   ------------------------------ */
[data-aos][data-aos][data-aos-duration="50"],
body[data-aos-duration="50"] [data-aos] {
  transition-duration: 50ms;
}

[data-aos][data-aos][data-aos-delay="50"],
body[data-aos-delay="50"] [data-aos] {
  transition-delay: 0;
}

[data-aos][data-aos][data-aos-delay="50"].aos-animate,
body[data-aos-delay="50"] [data-aos].aos-animate {
  transition-delay: 50ms;
}

/* Repeat pattern for duration/delay: 100ms → 3000ms */
[data-aos][data-aos][data-aos-duration="100"],
body[data-aos-duration="100"] [data-aos] {
  transition-duration: 0.1s;
}

[data-aos][data-aos][data-aos-delay="100"],
body[data-aos-delay="100"] [data-aos] {
  transition-delay: 0;
}

[data-aos][data-aos][data-aos-delay="100"].aos-animate,
body[data-aos-delay="100"] [data-aos].aos-animate {
  transition-delay: 0.1s;
}

/* ... continues in 50ms increments up to 3000ms ... */


/* ------------------------------
   Easing Functions
   ------------------------------ */
[data-aos][data-aos][data-aos-easing=linear],
body[data-aos-easing=linear] [data-aos] {
  transition-timing-function: cubic-bezier(.25, .25, .75, .75);
}

[data-aos][data-aos][data-aos-easing=ease],
body[data-aos-easing=ease] [data-aos] {
  transition-timing-function: ease;
}

[data-aos][data-aos][data-aos-easing=ease-in],
body[data-aos-easing=ease-in] [data-aos] {
  transition-timing-function: ease-in;
}

[data-aos][data-aos][data-aos-easing=ease-out],
body[data-aos-easing=ease-out] [data-aos] {
  transition-timing-function: ease-out;
}

[data-aos][data-aos][data-aos-easing=ease-in-out],
body[data-aos-easing=ease-in-out] [data-aos] {
  transition-timing-function: ease-in-out;
}

/* Back Easing */
[data-aos][data-aos][data-aos-easing=ease-in-back],
body[data-aos-easing=ease-in-back] [data-aos] {
  transition-timing-function: cubic-bezier(.6, -.28, .735, .045);
}

[data-aos][data-aos][data-aos-easing=ease-out-back],
body[data-aos-easing=ease-out-back] [data-aos] {
  transition-timing-function: cubic-bezier(.175, .885, .32, 1.275);
}

[data-aos][data-aos][data-aos-easing=ease-in-out-back],
body[data-aos-easing=ease-in-out-back] [data-aos] {
  transition-timing-function: cubic-bezier(.68, -.55, .265, 1.55);
}

/* Sine */
[data-aos][data-aos][data-aos-easing=ease-in-sine],
body[data-aos-easing=ease-in-sine] [data-aos] {
  transition-timing-function: cubic-bezier(.47, 0, .745, .715);
}

[data-aos][data-aos][data-aos-easing=ease-out-sine],
body[data-aos-easing=ease-out-sine] [data-aos] {
  transition-timing-function: cubic-bezier(.39, .575, .565, 1);
}

[data-aos][data-aos][data-aos-easing=ease-in-out-sine],
body[data-aos-easing=ease-in-out-sine] [data-aos] {
  transition-timing-function: cubic-bezier(.445, .05, .55, .95);
}

/* Quad / Cubic / Quart */
[data-aos][data-aos][data-aos-easing=ease-in-quad],
body[data-aos-easing=ease-in-quad] [data-aos] {
  transition-timing-function: cubic-bezier(.55, .085, .68, .53);
}

[data-aos][data-aos][data-aos-easing=ease-out-quad],
body[data-aos-easing=ease-out-quad] [data-aos] {
  transition-timing-function: cubic-bezier(.25, .46, .45, .94);
}

[data-aos][data-aos][data-aos-easing=ease-in-out-quad],
body[data-aos-easing=ease-in-out-quad] [data-aos] {
  transition-timing-function: cubic-bezier(.455, .03, .515, .955);
}


/* ------------------------------
   Fade Animations
   ------------------------------ */
[data-aos^=fade][data-aos^=fade] {
  opacity: 0;
  transition-property: opacity, transform;
}

[data-aos^=fade][data-aos^=fade].aos-animate {
  opacity: 1;
  transform: translateZ(0);
}

[data-aos=fade-up] { transform: translate3d(0, 100px, 0); }
[data-aos=fade-down] { transform: translate3d(0, -100px, 0); }
[data-aos=fade-right] { transform: translate3d(-100px, 0, 0); }
[data-aos=fade-left] { transform: translate3d(100px, 0, 0); }

[data-aos=fade-up-right] { transform: translate3d(-100px, 100px, 0); }
[data-aos=fade-up-left] { transform: translate3d(100px, 100px, 0); }
[data-aos=fade-down-right] { transform: translate3d(-100px, -100px, 0); }
[data-aos=fade-down-left] { transform: translate3d(100px, -100px, 0); }


/* ------------------------------
   Zoom Animations
   ------------------------------ */
[data-aos^=zoom][data-aos^=zoom] {
  opacity: 0;
  transition-property: opacity, transform;
}

[data-aos^=zoom][data-aos^=zoom].aos-animate {
  opacity: 1;
  transform: translateZ(0) scale(1);
}

[data-aos=zoom-in] { transform: scale(.6); }
[data-aos=zoom-in-up] { transform: translate3d(0, 100px, 0) scale(.6); }
[data-aos=zoom-in-down] { transform: translate3d(0, -100px, 0) scale(.6); }
[data-aos=zoom-in-right] { transform: translate3d(-100px, 0, 0) scale(.6); }
[data-aos=zoom-in-left] { transform: translate3d(100px, 0, 0) scale(.6); }

[data-aos=zoom-out] { opacity: 0; transform: scale(1.2); }
[data-aos=zoom-out-up] { transform: translate3d(0, 100px, 0) scale(1.2); }
[data-aos=zoom-out-down] { transform: translate3d(0, -100px, 0) scale(1.2); }
[data-aos=zoom-out-right] { transform: translate3d(-100px, 0, 0) scale(1.2); }
[data-aos=zoom-out-left] { transform: translate3d(100px, 0, 0) scale(1.2); }


/* ------------------------------
   Slide Animations
   ------------------------------ */
[data-aos^=slide][data-aos^=slide] {
  transition-property: transform;
}

[data-aos^=slide][data-aos^=slide].aos-animate {
  transform: translateZ(0);
}

[data-aos=slide-up] { transform: translate3d(0, 100%, 0); }
[data-aos=slide-down] { transform: translate3d(0, -100%, 0); }
[data-aos=slide-right] { transform: translate3d(-100%, 0, 0); }
[data-aos=slide-left] { transform: translate3d(100%, 0, 0); }


/* ------------------------------
   Flip Animations
   ------------------------------ */
[data-aos^=flip][data-aos^=flip] {
  backface-visibility: hidden;
  transition-property: transform;
}

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

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

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

[data-aos=flip-down] {
  transform: perspective(2500px) rotateX(100deg);
}
[data-aos=flip-down].aos-animate {
  transform: perspective(2500px) rotateX(0);
}








