/* ==========================================================================
   Ahulearn — Animation keyframes
   ========================================================================== */

@keyframes fadeInUp {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: translateY(0); }
}

@keyframes slideInRight {
	from { opacity: 0; transform: translateX(40px); }
	to   { opacity: 1; transform: translateX(0); }
}
[dir="rtl"] .ahulearn-anim-slide-in { animation-name: slideInLeft; }
@keyframes slideInLeft {
	from { opacity: 0; transform: translateX(-40px); }
	to   { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
	from { opacity: 0; transform: scale(.92); }
	to   { opacity: 1; transform: scale(1); }
}

@keyframes heroGlow {
	0%, 100% { opacity: .6; transform: scale(1); }
	50%      { opacity: 1; transform: scale(1.1); }
}

@keyframes skeleton {
	0%   { background-position: 100% 50%; }
	100% { background-position: 0 50%; }
}

@keyframes ripple {
	from { width: 0; height: 0; opacity: .6; }
	to   { width: 300px; height: 300px; opacity: 0; }
}

@keyframes spin {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}

@keyframes confettiFall {
	0%   { transform: translateY(-10vh) rotate(0deg); opacity: 1; }
	100% { transform: translateY(110vh) rotate(540deg); opacity: 0; }
}

@keyframes countUp {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* Reveal helper classes — toggled by scroll-animations.js / GSAP ScrollTrigger */
.ahulearn-anim-fade-up {
	opacity: 0;
	animation: fadeInUp .8s ease forwards;
}
.ahulearn-anim-scale-in {
	opacity: 0;
	animation: scaleIn .6s ease forwards;
}
.ahulearn-anim-stagger > * {
	opacity: 0;
	animation: fadeInUp .8s ease forwards;
}
.ahulearn-anim-stagger > *:nth-child(1) { animation-delay: .05s; }
.ahulearn-anim-stagger > *:nth-child(2) { animation-delay: .15s; }
.ahulearn-anim-stagger > *:nth-child(3) { animation-delay: .25s; }
.ahulearn-anim-stagger > *:nth-child(4) { animation-delay: .35s; }
.ahulearn-anim-stagger > *:nth-child(5) { animation-delay: .45s; }
.ahulearn-anim-stagger > *:nth-child(6) { animation-delay: .55s; }

.ahulearn-spin { animation: spin 1s linear infinite; }

.ahulearn-confetti-piece {
	position: fixed;
	top: 0;
	width: 10px;
	height: 10px;
	z-index: 9999;
	animation: confettiFall 3.2s ease-in forwards;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}
