/*
 * DreamFast Studio — scroll-reveal animations.
 * Progressive enhancement: elements are hidden only when JS is running
 * (html.dfs-js), so content is always visible without JavaScript.
 * prefers-reduced-motion users see everything instantly.
 */

.dfs-js .dfs-anim {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 0.65s cubic-bezier(0.2, 0.7, 0.2, 1),
		transform 0.65s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: var(--anim-delay, 0s);
}
.dfs-js .dfs-anim.anim-in {
	opacity: 1;
	transform: none;
}

/* Hero entrance: calm sequential fade — no movement on the main content,
   just a soft, staged appearance. */
.dfs-js .portfolio-hero .dfs-anim {
	transform: none;
	transition-duration: 0.9s, 0.9s;
}
.dfs-js .portfolio-hero .hero-kicker {
	--anim-delay: 0s;
}
.dfs-js .portfolio-hero h1 {
	--anim-delay: 0.15s;
}
.dfs-js .portfolio-hero .portfolio-hero-top > div {
	--anim-delay: 0.35s;
}

/* Reduced motion: everything visible immediately, no movement. */
@media (prefers-reduced-motion: reduce) {
	.dfs-js .dfs-anim {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
