/* =============================================================
   THAKKAR — animations.css
   Scroll-reveal system (driven by IntersectionObserver in main.js)
   + ambient keyframes. Respects prefers-reduced-motion.
   ============================================================= */

[data-reveal] {
	opacity: 0;
	transition: opacity .9s var(--ease-out), transform 1s var(--ease-out);
	transition-delay: var(--reveal-delay, 0s);
	will-change: opacity, transform;
}
[data-reveal="fade-up"]    { transform: translateY(34px); }
[data-reveal="fade"]       { transform: none; }
[data-reveal="slide-left"] { transform: translateX(-44px); }
[data-reveal="slide-right"]{ transform: translateX(44px); }
[data-reveal="scale"]      { transform: scale(.94); }
[data-reveal="mask"]       { clip-path: inset(0 100% 0 0); opacity: 1; transition: clip-path 1.1s var(--ease-out); transition-delay: var(--reveal-delay, 0s); }

[data-reveal].is-visible { opacity: 1; transform: none; }
[data-reveal="mask"].is-visible { clip-path: inset(0 0 0 0); }

/* staggered children */
[data-reveal-stagger] > * { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); }
[data-reveal-stagger].is-visible > * { opacity: 1; transform: none; }
[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: .04s; }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: .12s; }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: .20s; }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: .28s; }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: .36s; }
[data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: .44s; }
[data-reveal-stagger].is-visible > *:nth-child(7) { transition-delay: .52s; }
[data-reveal-stagger].is-visible > *:nth-child(8) { transition-delay: .60s; }

/* Hero load choreography */
.hero__kicker, .hero__title, .hero__sub, .hero__actions { opacity: 0; transform: translateY(30px); animation: heroIn 1.1s var(--ease-out) forwards; }
.hero__title  { animation-delay: .12s; }
.hero__sub    { animation-delay: .26s; }
.hero__actions{ animation-delay: .4s; }

@keyframes heroIn { to { opacity: 1; transform: none; } }
@keyframes scrollLine { 0% { transform: scaleY(0); } 45% { transform: scaleY(1); } 100% { transform: scaleY(0); transform-origin: bottom; } }
@keyframes waPulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.5); } 70% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } }
@keyframes drift { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-14px,0); } }

/* drifting decorative SVG paths */
.bg-paths { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.bg-paths svg { position: absolute; width: 130%; height: 130%; top: -15%; left: -15%; opacity: .05; }
.bg-paths path { fill: none; stroke: var(--gold); stroke-width: 1; stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: drawPath 9s var(--ease) infinite alternate; }
.bg-paths path:nth-child(2) { animation-delay: -3s; }
.bg-paths path:nth-child(3) { animation-delay: -6s; }
@keyframes drawPath { to { stroke-dashoffset: 0; } }

@media (prefers-reduced-motion: reduce) {
	[data-reveal], [data-reveal-stagger] > * { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
	.hero__kicker, .hero__title, .hero__sub, .hero__actions { opacity: 1; transform: none; animation: none; }
	.bg-paths path, .hero__scroll span, .wa-float::after { animation: none; }
}
