[data-animate]{
  opacity: 0;
  transform: translate3d(0, 0, 0);
  transition:
    opacity .8s ease,
    transform .8s ease;
  will-change: opacity, transform;
}

[data-animate].is-visible{
  opacity: 1;
  transform: none;
}

[data-animate="fadeInUp"]{
  transform: translate3d(0, 30px, 0);
}

[data-animate="fadeInDown"]{
  transform: translate3d(0, -30px, 0);
}

[data-animate="fadeInLeft"]{
  transform: translate3d(-30px, 0, 0);
}

[data-animate="fadeInRight"]{
  transform: translate3d(30px, 0, 0);
}

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

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}