/**
 * Shatabhisha Course Hub — Entrance animations (Part 10).
 *
 * Scoped under `body.sch-anim-{type}` (added by SCH_Design_System::body_class)
 * so these rules are completely inert unless the admin picks an animation
 * in Design System. assets/js/animations.js adds `.is-in-view` to
 * `.sch-card` / `.sch-block` elements via IntersectionObserver as they
 * scroll into the viewport.
 */

body.sch-anim-fade .sch-card,
body.sch-anim-fade .sch-block {
	opacity: 0;
	transition: opacity 0.6s ease;
}
body.sch-anim-fade .sch-card.is-in-view,
body.sch-anim-fade .sch-block.is-in-view {
	opacity: 1;
}

body.sch-anim-zoom .sch-card,
body.sch-anim-zoom .sch-block {
	opacity: 0;
	transform: scale(0.9);
	transition: opacity 0.5s ease, transform 0.5s ease;
}
body.sch-anim-zoom .sch-card.is-in-view,
body.sch-anim-zoom .sch-block.is-in-view {
	opacity: 1;
	transform: scale(1);
}

body.sch-anim-slide .sch-card,
body.sch-anim-slide .sch-block {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}
body.sch-anim-slide .sch-card.is-in-view,
body.sch-anim-slide .sch-block.is-in-view {
	opacity: 1;
	transform: translateY(0);
}

body.sch-anim-rotate .sch-card,
body.sch-anim-rotate .sch-block {
	opacity: 0;
	transform: rotate(-6deg) scale(0.95);
	transition: opacity 0.5s ease, transform 0.5s ease;
}
body.sch-anim-rotate .sch-card.is-in-view,
body.sch-anim-rotate .sch-block.is-in-view {
	opacity: 1;
	transform: rotate(0) scale(1);
}

body.sch-anim-bounce .sch-card,
body.sch-anim-bounce .sch-block {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
body.sch-anim-bounce .sch-card.is-in-view,
body.sch-anim-bounce .sch-block.is-in-view {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	body[class*="sch-anim-"] .sch-card,
	body[class*="sch-anim-"] .sch-block {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
