/**
 * MotionCraft Scroll Animations — Pre-animation styles (v1.0 — Anime.js)
 *
 * Hide elements that will be animated so there is no flash of
 * unstyled content before Anime.js initialises. Includes rules for
 * stagger children, timeline groups, mobile disable override,
 * and reduced-motion accessibility.
 *
 * @package MotionCraft Scroll Animations
 */

/* --- Single element animations (skip page-builder editors) --- */
body:not(.elementor-editor-active) [data-anime],
body:not(.elementor-editor-active) [class*="anime-"] {
	opacity: 0;
	transform: translate3d(0, 0, 0);
	will-change: transform, opacity;
}

/* --- Stagger parent: hide direct children --- */
body:not(.elementor-editor-active) [data-stagger] > * {
	opacity: 0;
	transform: translate3d(0, 0, 0);
	will-change: transform, opacity;
}

/* --- Timeline group: hide children with data-anime --- */
body:not(.elementor-editor-active) [data-anime-group] [data-anime] {
	opacity: 0;
	transform: translate3d(0, 0, 0);
	will-change: transform, opacity;
}

/* --- Mobile disabled: show everything --- */
body.mcsa-mobile-disabled [data-anime],
body.mcsa-mobile-disabled [class*="anime-"],
body.mcsa-mobile-disabled [data-stagger] > *,
body.mcsa-mobile-disabled [data-anime-group] [data-anime] {
	opacity: 1 !important;
	transform: none !important;
}

/* --- Accessibility: respect prefers-reduced-motion --- */
@media ( prefers-reduced-motion: reduce ) {
	[data-anime],
	[class*="anime-"],
	[data-stagger] > *,
	[data-anime-group] [data-anime] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

