/* Только те анимации animate.css 4.1.1, которыми пользуется шаблон, — вместо всей
   библиотеки с чужого CDN. Названия классов и ключевые кадры совпадают с оригиналом
   (animate.css, лицензия Hippocratic 2.1 / MIT у версии 4), поэтому разметку трогать не нужно. */
:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}
.animate__animated{animation-duration:var(--animate-duration);animation-fill-mode:both}
.animate__animated.animate__infinite{animation-iteration-count:infinite}
.animate__animated.animate__faster{animation-duration:calc(var(--animate-duration)/2)}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.animate__fadeIn{animation-name:fadeIn}

@keyframes fadeOut{from{opacity:1}to{opacity:0}}
.animate__fadeOut{animation-name:fadeOut}

@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.animate__fadeInUp{animation-name:fadeInUp}

@keyframes pulse{from{transform:scale3d(1,1,1)}50%{transform:scale3d(1.05,1.05,1.05)}to{transform:scale3d(1,1,1)}}
.animate__pulse{animation-name:pulse;animation-timing-function:ease-in-out}

@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)}
}
.animate__bounceIn{animation-duration:calc(var(--animate-duration)*.75);animation-name:bounceIn}

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

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

@media print,(prefers-reduced-motion:reduce){
  .animate__animated{animation-duration:1ms!important;transition-duration:1ms!important;animation-iteration-count:1!important}
}
