.specialized-framework-page .sf-reveal {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: no-preference) {
	.specialized-framework-page .sf-reveal {
		opacity: 0;
		transform: translateY(20px);
		animation: sf-fade-up 650ms ease-out forwards;
		will-change: transform, opacity;
	}

	.specialized-framework-page .sf-reveal-delay-1 {
		animation-delay: 100ms;
	}

	.specialized-framework-page .sf-reveal-delay-2 {
		animation-delay: 200ms;
	}

	.specialized-framework-page .sf-card {
		transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
	}

	.specialized-framework-page .sf-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 18px 36px rgba(0, 0, 0, 0.1);
		border-color: #d7e8e6;
	}

	.specialized-framework-page .sf-media {
		transition: transform 280ms ease, box-shadow 280ms ease;
	}

	.specialized-framework-page .sf-media:hover {
		transform: translateY(-3px);
		box-shadow: 0 18px 36px rgba(0, 0, 0, 0.12);
	}
}

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

/* Subtle load-in for solution / who-we-serve heroes (respects reduced motion). */
.specialized-framework-page .torsh-hero-reveal,
.who-we-serve-page .torsh-hero-reveal,
.specialized-framework-page .torsh-hero-media,
.who-we-serve-page .torsh-hero-media {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: no-preference) {
	.specialized-framework-page .torsh-hero-reveal,
	.who-we-serve-page .torsh-hero-reveal {
		opacity: 0;
		transform: translateY(14px);
		animation: torsh-hero-rise 600ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
		will-change: transform, opacity;
	}

	.specialized-framework-page .torsh-hero-media,
	.who-we-serve-page .torsh-hero-media {
		opacity: 0;
		transform: translateY(12px);
		animation: torsh-hero-rise 680ms cubic-bezier(0.22, 1, 0.36, 1) 50ms forwards;
		will-change: transform, opacity;
	}

	.specialized-framework-page .torsh-hero-reveal-delay-1,
	.who-we-serve-page .torsh-hero-reveal-delay-1 {
		animation-delay: 80ms;
	}

	.specialized-framework-page .torsh-hero-reveal-delay-2,
	.who-we-serve-page .torsh-hero-reveal-delay-2 {
		animation-delay: 160ms;
	}

	.specialized-framework-page .torsh-hero-reveal-delay-3,
	.who-we-serve-page .torsh-hero-reveal-delay-3 {
		animation-delay: 240ms;
	}
}

@keyframes torsh-hero-rise {
	from {
		opacity: 0;
		transform: translateY(14px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
