/* =========================================================================
   Sea Winds — animations.css
   Scroll-reveal animation states (driven by Intersection Observer in JS)
   ========================================================================= */

/* Base hidden state for any element flagged to animate. */
.sw-animate {
	opacity: 0;
	will-change: opacity, transform;
	transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}

/* fadeUp (default) */
.sw-animate[data-anim="fadeUp"],
.sw-animate:not([data-anim]) {
	transform: translateY(30px);
}

/* fadeIn */
.sw-animate[data-anim="fadeIn"] {
	transform: none;
	transition: opacity 0.6s var(--ease);
}

/* Visible state */
.sw-animate.is-visible {
	opacity: 1;
	transform: none;
}

/* Staggered children — parent gets .sw-stagger, children get incremental delay
   applied inline by scroll-animations.js. As a CSS fallback, nth-child delays: */
.sw-stagger > .sw-animate:nth-child(1) { transition-delay: 0.05s; }
.sw-stagger > .sw-animate:nth-child(2) { transition-delay: 0.1s; }
.sw-stagger > .sw-animate:nth-child(3) { transition-delay: 0.15s; }
.sw-stagger > .sw-animate:nth-child(4) { transition-delay: 0.2s; }
.sw-stagger > .sw-animate:nth-child(5) { transition-delay: 0.25s; }
.sw-stagger > .sw-animate:nth-child(6) { transition-delay: 0.3s; }
.sw-stagger > .sw-animate:nth-child(7) { transition-delay: 0.35s; }
.sw-stagger > .sw-animate:nth-child(8) { transition-delay: 0.4s; }
.sw-stagger > .sw-animate:nth-child(9) { transition-delay: 0.45s; }
.sw-stagger > .sw-animate:nth-child(10) { transition-delay: 0.5s; }
.sw-stagger > .sw-animate:nth-child(11) { transition-delay: 0.55s; }
.sw-stagger > .sw-animate:nth-child(12) { transition-delay: 0.6s; }
.sw-stagger > .sw-animate:nth-child(n+13) { transition-delay: 0.65s; }

/* -------------------------------------------------------------------------
   Reduced motion — respect the user's OS preference.
   Everything appears instantly, no transforms, no looping animations.
   ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}

	.sw-animate {
		opacity: 1 !important;
		transform: none !important;
	}

	.sw-hero__bg,
	.sw-404::before {
		animation: none !important;
	}

	.sw-marquee__row--left,
	.sw-marquee__row--right {
		animation: none !important;
	}

	.sw-hero__chevron {
		animation: none !important;
	}

	.sw-float-wa {
		animation: none !important;
	}
}
