/**
 * ISOE scroll animations (на основе логики Extendable fade-up).
 */

:root {
	--isoe-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	--isoe-anim-duration: 0.65s;
}

@keyframes isoe-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes isoe-fade-up {
	from { opacity: 0; transform: translateY(28px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes isoe-fade-left {
	from { opacity: 0; transform: translateX(24px); }
	to { opacity: 1; transform: translateX(0); }
}

@keyframes isoe-fade-right {
	from { opacity: 0; transform: translateX(-24px); }
	to { opacity: 1; transform: translateX(0); }
}

@keyframes isoe-zoom-in {
	from { opacity: 0; transform: scale(0.92); }
	to { opacity: 1; transform: scale(1); }
}

.isoe-animate {
	opacity: 0;
}

.isoe-animate[data-isoe-done] {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
}

.isoe-animate.isoe-animated-fade {
	animation: isoe-fade-in var(--isoe-anim-duration) var(--isoe-ease) forwards;
}

.isoe-animate.isoe-animated-fade-up {
	animation: isoe-fade-up var(--isoe-anim-duration) var(--isoe-ease) forwards;
}

.isoe-animate.isoe-animated-fade-left {
	animation: isoe-fade-left var(--isoe-anim-duration) var(--isoe-ease) forwards;
}

.isoe-animate.isoe-animated-fade-right {
	animation: isoe-fade-right var(--isoe-anim-duration) var(--isoe-ease) forwards;
}

.isoe-animate.isoe-animated-zoom-in {
	animation: isoe-zoom-in var(--isoe-anim-duration) var(--isoe-ease) forwards;
}

/* Плавный скролл по якорям */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.isoe-animate {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}
