:root {
      --io-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
      --io-ease-spring: cubic-bezier(0.34, 1.2, 0.64, 1);
      --io-duration: 720ms;
}

[data-aos] {
      opacity: 0;
      transition-property: opacity, transform, clip-path, filter;
      transition-duration: var(--io-duration);
      transition-timing-function: var(--io-ease-out);
      will-change: opacity, transform;
}

[data-aos].io-visible {
      opacity: 1;
      transform: translate3d(0, 0, 0) scale(1);
      filter: blur(0);
      will-change: auto;
}

[data-aos="reveal-up"] {
      transform: translate3d(0, 72px, 0) scale(0.94);
      transition-timing-function: var(--io-ease-spring);
      transform-origin: 50% 70%;
}

[data-aos="reveal-up"].io-visible {
      transform: translate3d(0, 0, 0) scale(1);
}

[data-aos="reveal-in"] {
      clip-path: inset(0 0 0 100%);
      transform: translateZ(0);
      overflow: visible;
}

[data-aos="reveal-in"].io-visible {
      clip-path: inset(0 0 0 0);
      overflow: visible;
}

[data-aos="reveal-in-right"] {
      clip-path: inset(0 100% 0 0);
      transform: translateZ(0);
      overflow: visible;
}

[data-aos="reveal-in-right"].io-visible {
      clip-path: inset(0 0 0 0);
      overflow: visible;
}

[data-aos="scale-in"] {
      transform: scale(0.88);
      transition-timing-function: var(--io-ease-spring);
}

[data-aos="scale-in"].io-visible {
      transform: scale(1);
}

[data-aos="blur-up"] {
      transform: translate3d(0, 40px, 0);
      filter: blur(14px);
      transition-duration: calc(var(--io-duration) + 80ms);
}

[data-aos="blur-up"].io-visible {
      transform: translate3d(0, 0, 0);
      filter: blur(0);
}

[data-aos="fade-up"] {
      transform: translate3d(0, 44px, 0) scale(0.97);
}

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

[data-aos="fade-down"] {
      transform: translate3d(0, -44px, 0) scale(0.97);
}

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

[data-aos="fade-left"] {
      transform: translate3d(56px, 0, 0) scale(0.97);
}

[data-aos="fade-right"] {
      transform: translate3d(-56px, 0, 0) scale(0.97);
}

[data-aos="fade-left"].io-visible,
[data-aos="fade-right"].io-visible {
      transform: translate3d(0, 0, 0) scale(1);
}

[data-aos="fade-in"] {
      transform: translate3d(0, 20px, 0);
      filter: blur(6px);
      transition-duration: calc(var(--io-duration) + 40ms);
}

[data-aos="fade-in"].io-visible {
      transform: translate3d(0, 0, 0);
      filter: blur(0);
}

[data-aos="zoom-in"] {
      transform: scale(0.88) translate3d(0, 24px, 0);
      filter: blur(8px);
      transition-timing-function: var(--io-ease-spring);
      transition-duration: calc(var(--io-duration) + 100ms);
}

[data-aos="zoom-in"].io-visible {
      transform: scale(1) translate3d(0, 0, 0);
      filter: blur(0);
}

[data-aos="tilt-in"] {
      transform: perspective(900px) rotateY(-14deg) translate3d(-12px, 0, 0);
      transition-timing-function: var(--io-ease-spring);
}

[data-aos="tilt-in"].io-visible {
      transform: perspective(900px) rotateY(0) translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
      [data-aos] {
            opacity: 1;
            transform: none;
            filter: none;
            clip-path: none;
            transition: none;
      }

      [data-aos].io-visible {
            transform: none;
            filter: none;
      }
}
