/* Minimal animation pack for Elementor entrance animations (8 types)
   fadeIn, fadeInUp, bounce, bounceIn, rotateIn, zoomIn, swing, slideInUp
*/

/* base */
.animated {
  animation-duration: 1s;
  animation-fill-mode: both;
}

/* fadeIn */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.fadeIn { animation-name: fadeIn; }

/* fadeInUp */
@keyframes fadeInUp {
  from { opacity: 0; transform: translate3d(0, 20px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}
.fadeInUp { animation-name: fadeInUp; }

/* slideInUp */
@keyframes slideInUp {
  from { transform: translate3d(0, 100%, 0); visibility: visible; }
  to   { transform: translate3d(0, 0, 0); }
}
.slideInUp { animation-name: slideInUp; }

/* zoomIn */
@keyframes zoomIn {
  from { opacity: 0; transform: scale3d(.3, .3, .3); }
  50%  { opacity: 1; }
}
.zoomIn { animation-name: zoomIn; }

/* rotateIn */
@keyframes rotateIn {
  from { transform-origin: center; transform: rotate3d(0, 0, 1, -200deg); opacity: 0; }
  to   { transform-origin: center; transform: none; opacity: 1; }
}
.rotateIn { animation-name: rotateIn; }

/* swing */
@keyframes swing {
  20%  { transform: rotate3d(0, 0, 1, 15deg); }
  40%  { transform: rotate3d(0, 0, 1, -10deg); }
  60%  { transform: rotate3d(0, 0, 1, 5deg); }
  80%  { transform: rotate3d(0, 0, 1, -5deg); }
  100% { transform: rotate3d(0, 0, 1, 0deg); }
}
.swing { transform-origin: top center; animation-name: swing; }

/* bounce */
@keyframes bounce {
  from, 20%, 53%, 80%, to { transform: translate3d(0, 0, 0); }
  40%, 43% { transform: translate3d(0, -30px, 0); }
  70% { transform: translate3d(0, -15px, 0); }
  90% { transform: translate3d(0, -4px, 0); }
}
.bounce { animation-name: bounce; transform-origin: center bottom; }

/* bounceIn */
@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to { animation-timing-function: cubic-bezier(.215,.61,.355,1); }
  0%   { opacity: 0; transform: scale3d(.3, .3, .3); }
  20%  { transform: scale3d(1.1, 1.1, 1.1); }
  40%  { transform: scale3d(.9, .9, .9); }
  60%  { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
  80%  { transform: scale3d(.97, .97, .97); }
  to   { opacity: 1; transform: scale3d(1, 1, 1); }
}
.bounceIn { animation-name: bounceIn; }