
@keyframes fadeIn {
	0% {
		opacity: 0;
	}
	
	to {
		opacity: 1;
	}
}

.fade-in {
	animation-name: fadeIn;
}

@keyframes fadeOut {
	0% {
		opacity: 1;
	}
	
	to {
		opacity: 0;
	}
}

.fade-out {
	animation-name: fadeOut;
}

@media (prefers-reduced-motion:reduce) {
	.fade-in, .fade-out {
		animation-duration: 1ms !important;
	}
}

@keyframes rotate90 {
	to {
		transform: rotate(90deg);
	}
}

.rotate-90 {
	animation-name: rotate90;
}

@keyframes rotate180 {
	to {
		transform: rotate(180deg);
	}
}

.rotate-180 {
	animation-name: rotate180;
}

@keyframes rotate270 {
	to {
		transform: rotate(270deg);
	}
}

.rotate-270 {
	animation-name: rotate270;
}

@keyframes rotate360 {
	to {
		transform: rotate(1turn);
	}
}

.rotate-360 {
	animation-name: rotate360;
}

@media (prefers-reduced-motion:reduce) {
	.rotate-180, .rotate-270, .rotate-360, .rotate-90 {
		animation-duration: 1ms !important;
	}
}

@keyframes scaleDownLarge {
	0% {
		transform: scale(1);
	}
	
	to {
		transform: scale(.5);
	}
}

.scale-down-large {
	animation-name: scaleDownLarge;
}

@keyframes scaleDownSmall {
	0% {
		transform: scale(1);
	}
	
	to {
		transform: scale(.9);
	}
}

.scale-down-small {
	animation-name: scaleDownSmall;
}

@keyframes scaleDown {
	0% {
		transform: scale(1);
	}
	
	to {
		transform: scale(.75);
	}
}

.scale-down {
	animation-name: scaleDown;
}

@keyframes scaleUpLarge {
	0% {
		transform: scale(1);
	}
	
	to {
		transform: scale(1.5);
	}
}

.scale-up-large {
	animation-name: scaleUpLarge;
}

@keyframes scaleUpSmall {
	0% {
		transform: scale(1);
	}
	
	to {
		transform: scale(1.1);
	}
}

.scale-up-small {
	animation-name: scaleUpSmall;
}

@keyframes scaleUp {
	0% {
		transform: scale(1);
	}
	
	to {
		transform: scale(1.25);
	}
}

.scale-up {
	animation-name: scaleUp;
}

@media (prefers-reduced-motion:reduce) {
	.scale-down, .scale-down-large, .scale-down-small, .scale-up, .scale-up-large, .scale-up-small {
		animation-duration: 1ms !important;
	}
}

@keyframes shakeHorizontal {
	0%, to {
		transform: translateZ(0);
	}
	
	15%, 45%, 75% {
		transform: translate3d(-10px, 0, 0);
	}
	
	30%, 60%, 90% {
		transform: translate3d(10px, 0, 0);
	}
}

.shake-horizontal {
	animation-name: shakeHorizontal;
}

@keyframes shakeHorizontalLarge {
	0%, to {
		transform: translateZ(0);
	}
	
	15%, 45%, 75% {
		transform: translate3d(-15px, 0, 0);
	}
	
	30%, 60%, 90% {
		transform: translate3d(15px, 0, 0);
	}
}

.shake-horizontal-large {
	animation-name: shakeHorizontalLarge;
}

@keyframes shakeHorizontalSmall {
	0%, to {
		transform: translateZ(0);
	}
	
	15%, 45%, 75% {
		transform: translate3d(-5px, 0, 0);
	}
	
	30%, 60%, 90% {
		transform: translate3d(5px, 0, 0);
	}
}

.shake-horizontal-small {
	animation-name: shakeHorizontalSmall;
}

@keyframes shakeVertical {
	0%, to {
		transform: translateZ(0);
	}
	
	15%, 45%, 75% {
		transform: translate3d(0, -10px, 0);
	}
	
	30%, 60%, 90% {
		transform: translate3d(0, 10px, 0);
	}
}

.shake-vertical {
	animation-name: shakeVertical;
}

@keyframes shakeVerticalLarge {
	0%, to {
		transform: translateZ(0);
	}
	
	15%, 45%, 75% {
		transform: translate3d(0, -15px, 0);
	}
	
	30%, 60%, 90% {
		transform: translate3d(0, 15px, 0);
	}
}

.shake-vertical-large {
	animation-name: shakeVerticalLarge;
}

@keyframes shakeVerticalSmall {
	0%, to {
		transform: translateZ(0);
	}
	
	15%, 45%, 75% {
		transform: translate3d(0, -5px, 0);
	}
	
	30%, 60%, 90% {
		transform: translate3d(0, 5px, 0);
	}
}

.shake-vertical-small {
	animation-name: shakeVerticalSmall;
}

@media (prefers-reduced-motion:reduce) {
	.shake-horizontal, .shake-horizontal-large, .shake-horizontal-small, .shake-vertical, .shake-vertical-large, .shake-vertical-small {
		animation-duration: 1ms !important;
	}
}

@keyframes slideInDown {
	0% {
		transform: translate3d(0, -100%, 0);
		visibility: visible;
	}
	
	to {
		transform: translateZ(0);
	}
}

.slide-in-down {
	animation-name: slideInDown;
}

@keyframes slideInLeft {
	0% {
		transform: translate3d(-100%, 0, 0);
		visibility: visible;
	}
	
	to {
		transform: translateZ(0);
	}
}

.slide-in-left {
	animation-name: slideInLeft;
}

@keyframes slideInRight {
	0% {
		transform: translate3d(100%, 0, 0);
		visibility: visible;
	}
	
	to {
		transform: translateZ(0);
	}
}

.slide-in-right {
	animation-name: slideInRight;
}

@keyframes slideInUp {
	0% {
		transform: translate3d(0, 100%, 0);
		visibility: visible;
	}
	
	to {
		transform: translateZ(0);
	}
}

.slide-in-up {
	animation-name: slideInUp;
}

@keyframes slideOutDown {
	0% {
		transform: translateZ(0);
	}
	
	to {
		transform: translate3d(0, 100%, 0);
		visibility: hidden;
	}
}

.slide-out-down {
	animation-name: slideOutDown;
}

@keyframes slideOutLeft {
	0% {
		transform: translateZ(0);
	}
	
	to {
		transform: translate3d(-100%, 0, 0);
		visibility: hidden;
	}
}

.slide-out-left {
	animation-name: slideOutLeft;
}

@keyframes slideOutRight {
	0% {
		transform: translateZ(0);
	}
	
	to {
		transform: translate3d(100%, 0, 0);
		visibility: hidden;
	}
}

.slide-out-right {
	animation-name: slideOutRight;
}

@keyframes slideOutUp {
	0% {
		transform: translateZ(0);
	}
	
	to {
		transform: translate3d(0, -100%, 0);
		visibility: hidden;
	}
}

.slide-out-up {
	animation-name: slideOutUp;
}

@media (prefers-reduced-motion:reduce) {
	.slide-in-down, .slide-in-left, .slide-in-right, .slide-in-up, .slide-out-down, .slide-out-left, .slide-out-right, .slide-out-up {
		animation-duration: 1ms !important;
	}
}

.delay-150 {
	animation-delay: .15s;
}

.delay-200 {
	animation-delay: .2s;
}

.delay-250 {
	animation-delay: .25s;
}

.delay-300 {
	animation-delay: .3s;
}

.delay-350 {
	animation-delay: .35s;
}

.delay-400 {
	animation-delay: .4s;
}

.delay-450 {
	animation-delay: .45s;
}

.delay-500 {
	animation-delay: .5s;
}

.delay-550 {
	animation-delay: .55s;
}

.delay-600 {
	animation-delay: .6s;
}

.delay-650 {
	animation-delay: .65s;
}

.delay-700 {
	animation-delay: .7s;
}

.delay-750 {
	animation-delay: .75s;
}

.delay-800 {
	animation-delay: .8s;
}

.delay-850 {
	animation-delay: .85s;
}

.delay-900 {
	animation-delay: .9s;
}

.delay-950 {
	animation-delay: .95s;
}

.delay-1000 {
	animation-delay: 1s;
}

.duration-150 {
	animation-duration: .15s;
	animation-fill-mode: both;
}

.duration-200 {
	animation-duration: .2s;
	animation-fill-mode: both;
}

.duration-250 {
	animation-duration: .25s;
	animation-fill-mode: both;
}

.duration-300 {
	animation-duration: .3s;
	animation-fill-mode: both;
}

.duration-350 {
	animation-duration: .35s;
	animation-fill-mode: both;
}

.duration-400 {
	animation-duration: .4s;
	animation-fill-mode: both;
}

.duration-450 {
	animation-duration: .45s;
	animation-fill-mode: both;
}

.duration-500 {
	animation-duration: .5s;
	animation-fill-mode: both;
}

.duration-550 {
	animation-duration: .55s;
	animation-fill-mode: both;
}

.duration-600 {
	animation-duration: .6s;
	animation-fill-mode: both;
}

.duration-650 {
	animation-duration: .65s;
	animation-fill-mode: both;
}

.duration-700 {
	animation-duration: .7s;
	animation-fill-mode: both;
}

.duration-750 {
	animation-duration: .75s;
	animation-fill-mode: both;
}

.duration-800 {
	animation-duration: .8s;
	animation-fill-mode: both;
}

.duration-850 {
	animation-duration: .85s;
	animation-fill-mode: both;
}

.duration-900 {
	animation-duration: .9s;
	animation-fill-mode: both;
}

.duration-950 {
	animation-duration: .95s;
	animation-fill-mode: both;
}

.duration-1000 {
	animation-duration: 1s;
	animation-fill-mode: both;
}

.timing-ease-in-out {
	animation-timing-function: ease-in-out;
}

.timing-ease-in {
	animation-timing-function: ease-in;
}

.timing-ease-out {
	animation-timing-function: ease-out;
}

.timing-ease {
	animation-timing-function: ease;
}

.timing-linear {
	animation-timing-function: linear;
}

.has-block-animation, .wp-block .has-block-animation {
	animation-name: none !important;
}

.has-block-animation {
	opacity: 1 !important;
}

.slide-in-up-fade {
	animation-fill-mode: forwards;
	animation-name: slideInUp, fadeIn;
	opacity: 0;
}

.slide-in-down-fade {
	animation-fill-mode: forwards;
	animation-name: slideInDown, fadeIn;
	opacity: 0;
}

@keyframes slideInLeftHalf {
	0% {
		transform: translate3d(-15%, 0, 0);
		visibility: visible;
	}
	
	to {
		transform: translateZ(0);
	}
}

.slide-in-left-fade {
	animation-fill-mode: forwards;
	animation-name: slideInLeftHalf, fadeIn;
	opacity: 0;
}

.slide-in-right-fade {
	animation-fill-mode: forwards;
	animation-name: slideInRight, fadeIn;
	opacity: 0;
}
