/**
 * Futuros Vinotinto FC - Animations & Scroll Reveal
 * Zero-dependency native transitions optimized for 60fps & Core Web Vitals
 */

/* ==========================================================================
   1. Base Reveal Directives
   ========================================================================== */

[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}

[data-reveal="fade-in"] {
	transform: none;
}

[data-reveal="scale-up"] {
	transform: scale(0.94) translateY(14px);
}

[data-reveal="fade-left"] {
	transform: translateX(30px);
}

[data-reveal="fade-right"] {
	transform: translateX(-30px);
}

/* Revealed State */
[data-reveal].is-revealed {
	opacity: 1;
	transform: translate(0, 0) scale(1);
}

/* ==========================================================================
   2. Group Stagger Directives (Cascading Child Elements)
   ========================================================================== */

[data-reveal-group] > * {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}

[data-reveal-group].is-revealed > * {
	opacity: 1;
	transform: translateY(0);
	transition-delay: var(--reveal-delay, 0ms);
}

/* CSS fallback stagger if JS delay not attached */
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(1) { transition-delay: 40ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(2) { transition-delay: 100ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(3) { transition-delay: 160ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(4) { transition-delay: 220ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(5) { transition-delay: 280ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(6) { transition-delay: 340ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(7) { transition-delay: 400ms; }
[data-reveal-group]:not([data-custom-delay]).is-revealed > *:nth-child(8) { transition-delay: 460ms; }

/* ==========================================================================
   3. Micro-Interactions (Hover Elevate & Glow)
   ========================================================================== */

.fv-hover-lift {
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
	            box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.fv-hover-lift:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
}

/* ==========================================================================
   4. Number Counter Styling
   ========================================================================== */

[data-counter] {
	display: inline-block;
	font-variant-numeric: tabular-nums;
	will-change: contents;
}

/* ==========================================================================
   5. Accessibility: Respect prefers-reduced-motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	[data-reveal],
	[data-reveal-group] > *,
	.fv-hover-lift {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
		transition-delay: 0ms !important;
	}
}
