/**
 * Scroll-triggered animations replacing WOW.js + animate.min.css.
 * Existing .wow class names are preserved for template compatibility.
 */

@keyframes speck-fadeInDown {
	from {
		opacity: 0;
		transform: translate3d(0, -20px, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes speck-fadeInLeft {
	from {
		opacity: 0;
		transform: translate3d(-20px, 0, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes speck-fadeInRight {
	from {
		opacity: 0;
		transform: translate3d(20px, 0, 0);
	}
	to {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes speck-bounceInLeft {
	from,
	60%,
	75%,
	90%,
	to {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	from {
		opacity: 0;
		transform: translate3d(-3000px, 0, 0);
	}
	60% {
		opacity: 1;
		transform: translate3d(25px, 0, 0);
	}
	75% {
		transform: translate3d(-10px, 0, 0);
	}
	90% {
		transform: translate3d(5px, 0, 0);
	}
	to {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes speck-bounceInRight {
	from,
	60%,
	75%,
	90%,
	to {
		animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	from {
		opacity: 0;
		transform: translate3d(3000px, 0, 0);
	}
	60% {
		opacity: 1;
		transform: translate3d(-25px, 0, 0);
	}
	75% {
		transform: translate3d(10px, 0, 0);
	}
	90% {
		transform: translate3d(-5px, 0, 0);
	}
	to {
		transform: translate3d(0, 0, 0);
	}
}

.wow {
	opacity: 0;
	visibility: hidden;
}

.wow.speck-animate-in {
	visibility: visible;
	animation-duration: 1s;
	animation-fill-mode: both;
}

.wow.fadeInDown.speck-animate-in {
	animation-name: speck-fadeInDown;
}

.wow.fadeInLeft.speck-animate-in {
	animation-name: speck-fadeInLeft;
}

.wow.fadeInRight.speck-animate-in {
	animation-name: speck-fadeInRight;
}

.wow.bounceInLeft.speck-animate-in {
	animation-name: speck-bounceInLeft;
}

.wow.bounceInRight.speck-animate-in {
	animation-name: speck-bounceInRight;
}

@media (prefers-reduced-motion: reduce) {
	.wow {
		opacity: 1;
		visibility: visible;
		animation: none !important;
	}
}
