/* =========================================================
   HCAA Motion — utilities + reduced-motion fallbacks
   ---------------------------------------------------------
   Motion is editorial: slow, confident, never bouncy.
   Always degrade gracefully when users prefer less motion.
   ========================================================= */

/* AOS defaults: match our easing curve. */
[data-aos] {
	transition-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Default "fade up" utility for content entering on scroll. */
.hcaa-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 600ms var(--hcaa-ease), transform 600ms var(--hcaa-ease);
	will-change: opacity, transform;
}

.hcaa-reveal.is-visible,
.hcaa-reveal[data-aos].aos-animate {
	opacity: 1;
	transform: translateY(0);
}

/* Signature hero image reveal — clip-path. JS adds .is-revealed post-load. */
.hcaa-hero__media {
	clip-path: inset(0 0 100% 0);
	transition: clip-path 1400ms var(--hcaa-ease);
}

.hcaa-hero__media.is-revealed {
	clip-path: inset(0 0 0 0);
}

/* Utility: anchor target (for smooth-scroll offset against sticky chrome). */
.hcaa-anchor-offset {
	scroll-margin-top: 96px;
}

/* ---------------------------------------------------------
   Reduced motion — disable everything non-essential.
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	[data-aos] {
		opacity: 1 !important;
		transform: none !important;
	}

	.hcaa-reveal,
	.hcaa-reveal[data-aos] {
		opacity: 1 !important;
		transform: none !important;
	}

	.hcaa-hero__media {
		clip-path: inset(0) !important;
		transform: none !important;
	}
}
