/* AOS-like animations and simple scroll reveal without external library */

/* Defaults via CSS variables */
:root {
  --aos-duration: 700ms;
  --aos-delay: 0ms;
  --aos-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Base state for data-aos elements */
[data-aos] {
  opacity: 0;
  transform: translate3d(0, 16px, 0) scale(0.98);
  filter: blur(6px);
  transition-property: opacity, transform, filter;
  transition-duration: var(--aos-duration);
  transition-delay: var(--aos-delay);
  transition-timing-function: var(--aos-ease);
  will-change: opacity, transform, filter;
}
[data-aos].aos-animate {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* Variants */
[data-aos="fade-up"] { transform: translate3d(0, 24px, 0) scale(0.98); }
[data-aos="fade-down"] { transform: translate3d(0, -24px, 0) scale(0.98); }
[data-aos="fade-left"] { transform: translate3d(-24px, 0, 0) scale(0.98); }
[data-aos="fade-right"] { transform: translate3d(24px, 0, 0) scale(0.98); }
[data-aos^="zoom"] { transform: scale(0.92); transform-origin: center center; }
[data-aos="zoom-in"] { transform: scale(0.92); }
[data-aos="zoom-out"] { transform: scale(1.08); }

/* Simple scroll reveal for legacy classes */
.animate-on-scroll:not(.animate-in) {
  opacity: 0;
  transform: translate3d(0, 18px, 0) scale(0.98);
  filter: blur(4px);
}
.animate-on-scroll {
  transition: opacity 600ms var(--aos-ease),
              transform 600ms var(--aos-ease),
              filter 600ms var(--aos-ease);
}
.animate-on-scroll.animate-in {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

/* Accessibility: reduce motion */
@media (prefers-reduced-motion: reduce) {
  [data-aos], .animate-on-scroll {
    transition: none !important;
  }
  [data-aos], [data-aos].aos-animate,
  .animate-on-scroll, .animate-on-scroll.animate-in {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}


/* Default AOS duration to 1000ms for a consistent 1s reveal site-wide */
:root {
  --aos-duration: 1000ms;
}

/* If any elements rely on the CSS var, enforce it */
[data-aos] {
  transition-duration: var(--aos-duration) !important;
  -webkit-transition-duration: var(--aos-duration) !important;
}

/* Remove previously set durations if present on body or template */
body[data-aos-duration] {
  --aos-duration: 1000ms !important;
}