/**
 * Motion & scroll reveal
 */

@keyframes ms-float {
	0%, 100% { transform: translateY(0) rotate(var(--ms-rotate, -8deg)); }
	50% { transform: translateY(-14px) rotate(var(--ms-rotate, -8deg)); }
}

@keyframes ms-float-alt {
	0%, 100% { transform: translateY(0) rotate(6deg); }
	50% { transform: translateY(-10px) rotate(6deg); }
}

@keyframes ms-pulse-glow {
	0%, 100% { opacity: 0.5; transform: scale(1); }
	50% { opacity: 0.85; transform: scale(1.05); }
}

@keyframes ms-shimmer {
	0% { background-position: 200% center; }
	100% { background-position: -200% center; }
}

@keyframes ms-marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

[dir="rtl"] .ms-purchases-marquee__track {
	animation-name: ms-marquee-rtl;
}

@keyframes ms-marquee-rtl {
	0% { transform: translateX(0); }
	100% { transform: translateX(50%); }
}

@keyframes ms-fade-up {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.ms-animate-float {
	animation: ms-float 5s ease-in-out infinite;
}
.ms-animate-float-alt {
	animation: ms-float-alt 6s ease-in-out infinite 0.5s;
}

.ms-reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.ms-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.ms-reveal--delay-1 { transition-delay: 0.1s; }
.ms-reveal--delay-2 { transition-delay: 0.2s; }
.ms-reveal--delay-3 { transition-delay: 0.3s; }

@media (prefers-reduced-motion: reduce) {
	.ms-animate-float,
	.ms-animate-float-alt,
	.ms-purchases-marquee__track {
		animation: none !important;
	}
	.ms-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
