/**
 * TextAnimate Styles
 * CSS animations for text effects
 */

/* Prevent FOUC - Hide text until JavaScript processes it */
[data-text-animate]:not(.text-animate-container) {
	opacity: 0;
}

/* Screen reader only */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

/* Container */
.text-animate-container {
	display: inline-block;
	white-space: pre-wrap;
	opacity: 1; /* Ensure visibility after JS processes */
}

/* Base item styles */
.text-animate-item {
	display: inline-block;
	transition-property: opacity, transform, filter;
	transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Animation: fadeIn */
.text-animate-fadeIn {
	opacity: 0;
	transform: translateY(20px);
}

.text-animate-fadeIn.active {
	opacity: 1;
	transform: translateY(0);
	transition-duration: 0.3s;
}

/* Animation: blurIn */
.text-animate-blurIn {
	opacity: 0;
	filter: blur(10px);
}

.text-animate-blurIn.active {
	opacity: 1;
	filter: blur(0px);
	transition-duration: 0.3s;
}

/* Animation: blurInUp */
.text-animate-blurInUp {
	opacity: 0;
	filter: blur(10px);
	transform: translateY(20px);
}

.text-animate-blurInUp.active {
	opacity: 1;
	filter: blur(0px);
	transform: translateY(0);
	transition-duration: 0.4s;
}

/* Animation: blurInDown */
.text-animate-blurInDown {
	opacity: 0;
	filter: blur(10px);
	transform: translateY(-20px);
}

.text-animate-blurInDown.active {
	opacity: 1;
	filter: blur(0px);
	transform: translateY(0);
	transition-duration: 0.4s;
}

/* Animation: slideUp */
.text-animate-slideUp {
	opacity: 0;
	transform: translateY(20px);
}

.text-animate-slideUp.active {
	opacity: 1;
	transform: translateY(0);
	transition-duration: 0.3s;
}

/* Animation: slideDown */
.text-animate-slideDown {
	opacity: 0;
	transform: translateY(-20px);
}

.text-animate-slideDown.active {
	opacity: 1;
	transform: translateY(0);
	transition-duration: 0.3s;
}

/* Animation: slideLeft */
.text-animate-slideLeft {
	opacity: 0;
	transform: translateX(20px);
}

.text-animate-slideLeft.active {
	opacity: 1;
	transform: translateX(0);
	transition-duration: 0.3s;
}

/* Animation: slideRight */
.text-animate-slideRight {
	opacity: 0;
	transform: translateX(-20px);
}

.text-animate-slideRight.active {
	opacity: 1;
	transform: translateX(0);
	transition-duration: 0.3s;
}

/* Animation: scaleUp */
.text-animate-scaleUp {
	opacity: 0;
	transform: scale(0.5);
}

.text-animate-scaleUp.active {
	opacity: 1;
	transform: scale(1);
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Animation: scaleDown */
.text-animate-scaleDown {
	opacity: 0;
	transform: scale(1.5);
}

.text-animate-scaleDown.active {
	opacity: 1;
	transform: scale(1);
	transition-duration: 0.3s;
	transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Responsive adjustments */
@media (prefers-reduced-motion: reduce) {
	.text-animate-item {
		transition: none !important;
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
	}
}
