/**
 * Dofamin motion layer — scroll reveal + parallax + micro-interactions.
 * All animations honour prefers-reduced-motion.
 */

/* Scroll-reveal base */
.dof-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition:
		opacity 800ms var(--dof-ease-out, cubic-bezier(.16,1,.3,1)),
		transform 800ms var(--dof-ease-out, cubic-bezier(.16,1,.3,1));
	will-change: opacity, transform;
}
.dof-reveal.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* Staggered children */
.dof-reveal[data-stagger] > * {
	opacity: 0;
	transform: translateY(12px);
	transition:
		opacity 600ms var(--dof-ease-out, cubic-bezier(.16,1,.3,1)),
		transform 600ms var(--dof-ease-out, cubic-bezier(.16,1,.3,1));
}
.dof-reveal.is-revealed[data-stagger] > *:nth-child(1) { transition-delay: 0ms; }
.dof-reveal.is-revealed[data-stagger] > *:nth-child(2) { transition-delay: 60ms; }
.dof-reveal.is-revealed[data-stagger] > *:nth-child(3) { transition-delay: 120ms; }
.dof-reveal.is-revealed[data-stagger] > *:nth-child(4) { transition-delay: 180ms; }
.dof-reveal.is-revealed[data-stagger] > *:nth-child(5) { transition-delay: 240ms; }
.dof-reveal.is-revealed[data-stagger] > *:nth-child(6) { transition-delay: 300ms; }
.dof-reveal.is-revealed[data-stagger] > * {
	opacity: 1;
	transform: translateY(0);
}

/* Parallax image — attribute hook handled by JS */
.dof-parallax-img { will-change: transform; transition: transform 60ms linear; }

/* Counter — opacity flash */
.dof-counter { transition: opacity 300ms ease-out; }
.dof-counter.is-counted { opacity: 1; }

/* Smooth background color transitions for accent elements */
.dof-hover-lift { transition: transform var(--dof-dur, 250ms) var(--dof-ease, cubic-bezier(.22,.61,.36,1)); }
.dof-hover-lift:hover { transform: translateY(-2px); }

/* Prefers-reduced-motion: kill heavy animation */
@media (prefers-reduced-motion: reduce) {
	.dof-reveal, .dof-reveal[data-stagger] > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.dof-parallax-img { transform: none !important; }
	* { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
