/* ============================
   Animate On Scroll (AOS)
   Simplified + Readable CSS
============================ */

/* Base transition properties */
[data-aos] {
  opacity: 0;
  transition-property: opacity, transform;
  will-change: opacity, transform;
}

/* Animate active elements */
[data-aos].aos-animate {
  opacity: 1;
  transform: translateZ(0);
}

/* ----------------------------
   Directional fade animations
---------------------------- */
[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"] {
  transform: scale(0.6);
}
[data-aos^="zoom"].aos-animate {
  transform: scale(1);
}

[data-aos="zoom-in-up"]    { transform: translate3d(0, 100px, 0) scale(0.6); }
[data-aos="zoom-in-down"]  { transform: translate3d(0, -100px, 0) scale(0.6); }
[data-aos="zoom-in-right"] { transform: translate3d(-100px, 0, 0) scale(0.6); }
[data-aos="zoom-in-left"]  { transform: translate3d(100px, 0, 0) scale(0.6); }

[data-aos="zoom-out"]      { 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); }

/* ----------------------------
   Timing Functions
---------------------------- */
body[data-aos-easing="linear"]          [data-aos] { transition-timing-function: cubic-bezier(.25, .25, .75, .75); }
body[data-aos-easing="ease"]            [data-aos] { transition-timing-function: ease; }
body[data-aos-easing="ease-in"]         [data-aos] { transition-timing-function: ease-in; }
body[data-aos-easing="ease-out"]        [data-aos] { transition-timing-function: ease-out; }
body[data-aos-easing="ease-in-out"]     [data-aos] { transition-timing-function: ease-in-out; }
body[data-aos-easing="ease-in-back"]    [data-aos] { transition-timing-function: cubic-bezier(.6, -.28, .735, .045); }
body[data-aos-easing="ease-out-back"]   [data-aos] { transition-timing-function: cubic-bezier(.175, .885, .32, 1.275); }
body[data-aos-easing="ease-in-out-back"][data-aos] { transition-timing-function: cubic-bezier(.68, -.55, .265, 1.55); }
body[data-aos-easing="ease-in-sine"]    [data-aos] { transition-timing-function: cubic-bezier(.47, 0, .745, .715); }
body[data-aos-easing="ease-out-sine"]   [data-aos] { transition-timing-function: cubic-bezier(.39, .575, .565, 1); }
body[data-aos-easing="ease-in-out-sine"][data-aos] { transition-timing-function: cubic-bezier(.445, .05, .55, .95); }

/* ----------------------------
   Duration & Delay
   (Handled by AOS JS dynamically)
---------------------------- */
[data-aos][data-aos][data-aos-duration],
body[data-aos-duration] [data-aos] {
  transition-duration: var(--aos-duration, 400ms);
}

[data-aos][data-aos][data-aos-delay],
body[data-aos-delay] [data-aos] {
  transition-delay: var(--aos-delay, 0ms);
}
[data-aos].aos-animate {
  transition-delay: var(--aos-animate-delay, 0ms);
}