/* Scroll reveal + micro-interactions. Vanilla JS toggles .is-visible via
   IntersectionObserver — see assets/js/animations.js. Everything degrades
   gracefully to fully visible if animations are disabled or JS fails. */

.smc-animations-off .smc-fade-up,
.smc-animations-off .smc-reveal { opacity: 1 !important; transform: none !important; }

.smc-fade-up {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.smc-fade-up.is-visible { opacity: 1; transform: none; }

.smc-reveal { position: relative; overflow: hidden; }
.smc-reveal::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--sm-bg-dark);
	transform-origin: left;
	transition: transform 1s cubic-bezier(0.65, 0, 0.35, 1);
}
.smc-reveal.is-visible::after { transform: scaleX(0); }
.smc-reveal img { transform: scale(1.08); transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.smc-reveal.is-visible img { transform: scale(1); }

@media (prefers-reduced-motion: reduce) {
	.smc-fade-up, .smc-reveal, .smc-reveal::after, .smc-reveal img {
		opacity: 1 !important;
		transform: none !important;
	}
}

/* Page transition overlay */
.smc-page-transition {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: var(--sm-primary);
	transform: scaleY(0);
	transform-origin: bottom;
	pointer-events: none;
}
body.smc-transitions-on.is-transitioning .smc-page-transition {
	transform: scaleY(1);
	transform-origin: top;
	transition: transform 0.45s cubic-bezier(0.76, 0, 0.24, 1);
}

/* Statistic count-up numbers just render via JS text updates — no CSS needed
   beyond what's already in sections.css. */
