/* Based on https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css */

/* Animation defaults */
:root {
	--animate-duration: 1s;
	--animate-delay: 1s;
	--animate-repeat: 1;
}

/* Base animation behaviour */
.animate__animated {
	animation-duration: var(--animate-duration);
	animation-fill-mode: both;
}

/* Animation repeat controls */
.animate__animated.animate__infinite {
	animation-iteration-count: infinite;
}
.animate__animated.animate__repeat-1 {
	animation-iteration-count: var(--animate-repeat);
}
.animate__animated.animate__repeat-2 {
	animation-iteration-count: calc(var(--animate-repeat) * 2);
}
.animate__animated.animate__repeat-3 {
	animation-iteration-count: calc(var(--animate-repeat) * 3);
}

/* Animation delay controls */
.animate__animated.animate__delay-1s {
	animation-delay: var(--animate-delay);
}
.animate__animated.animate__delay-2s {
	animation-delay: calc(var(--animate-delay) * 2);
}
.animate__animated.animate__delay-3s {
	animation-delay: calc(var(--animate-delay) * 3);
}
.animate__animated.animate__delay-4s {
	animation-delay: calc(var(--animate-delay) * 4);
}
.animate__animated.animate__delay-5s {
	animation-delay: calc(var(--animate-delay) * 5);
}

/* Animation speed controls */
.animate__animated.animate__faster {
	animation-duration: calc(var(--animate-duration) / 2);
}
.animate__animated.animate__fast {
	animation-duration: calc(var(--animate-duration) * 0.8);
}
.animate__animated.animate__slow {
	animation-duration: calc(var(--animate-duration) * 2);
}
.animate__animated.animate__slower {
	animation-duration: calc(var(--animate-duration) * 3);
}

/* Reduce animation for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
	.animate__animated {
		animation-duration: 1ms!important;
		transition-duration: 1ms!important;
		animation-iteration-count: 1!important;
	}
}

/* Fade in */
@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
.animate__fadeIn {
	animation-name: fadeIn;
}

/* Fade in up */
@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translate3d(0, 20px, 0);
	}
	100% {
		opacity: 1;
		transform: translateZ(0);
	}
}
.animate__fadeInUp {
	animation-name: fadeInUp;
}

/* Fade in down */
@keyframes fadeInDown {
	0% {
		opacity: 0;
		transform: translate3d(0, -20px, 0);
	}
	100% {
		opacity: 1;
		transform: translateZ(0);
	}
}
.animate__fadeInDown {
	animation-name: fadeInDown;
}

/* Fade in left */
@keyframes fadeInLeft {
	0% {
		opacity: 0;
		transform: translate3d(-20px, 0, 0);
	}
	100% {
		opacity: 1;
		transform: translateZ(0);
	}
}
.animate__fadeInLeft {
	animation-name: fadeInLeft;
}

/* Fade in right */
@keyframes fadeInRight {
	0% {
		opacity: 0;
		transform: translate3d(20px, 0, 0);
	}
	100% {
		opacity: 1;
		transform: translateZ(0);
	}
}
.animate__fadeInRight {
	animation-name: fadeInRight;
}

/* Zoom in */
@keyframes zoomIn {
	0% {
		opacity: 0;
		transform: scale3d(0.3, 0.3, 0.3);
	}
	50% {
		opacity: 1;
	}
	100% {
		transform: scale3d(1, 1, 1);
	}
}
.animate__zoomIn {
	animation-name: zoomIn;
}