/* =========================================================
   ZenvX AI Studio — animations.css
   Keyframes + animation utility classes.
   ========================================================= */

@keyframes bgFloat {
	0%   { background-position: 0% 0%, 100% 0%, 50% 100%; }
	100% { background-position: 6% 4%, 92% 8%, 50% 92%; }
}

@keyframes hueShift {
	0%   { filter: hue-rotate(0deg); }
	100% { filter: hue-rotate(360deg); }
}

@keyframes gradSlide {
	0%   { background-position: 0% 50%; }
	100% { background-position: 200% 50%; }
}

@keyframes spin { to { transform: rotate(360deg); } }

@keyframes scrollDot {
	0%   { transform: translateY(0); opacity: 1; }
	70%  { transform: translateY(14px); opacity: 0; }
	100% { transform: translateY(0); opacity: 0; }
}

@keyframes pop {
	0%   { transform: scale(0.4); opacity: 0; }
	60%  { transform: scale(1.15); }
	100% { transform: scale(1); opacity: 1; }
}

@keyframes floatY {
	0%   { transform: translateY(0) rotate(0deg); }
	50%  { transform: translateY(-22px) rotate(2deg); }
	100% { transform: translateY(0) rotate(0deg); }
}

@keyframes pulseGlow {
	0%, 100% { box-shadow: 0 0 18px rgba(0,245,255,0.3); }
	50%      { box-shadow: 0 0 36px rgba(123,47,255,0.6); }
}

@keyframes shimmer {
	0%   { background-position: -150% 0; }
	100% { background-position: 250% 0; }
}

/* Floating hero cards */
.float-card.fc1 { animation: floatY 8s ease-in-out infinite; }
.float-card.fc2 { animation: floatY 10s ease-in-out infinite 0.6s; }
.float-card.fc3 { animation: floatY 9s ease-in-out infinite 1.2s; }
.float-card.fc4 { animation: floatY 11s ease-in-out infinite 0.3s; }

/* Shimmer border for live product card */
.shimmer-border {
	position: relative;
	overflow: hidden;
}
.shimmer-border::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(110deg, transparent 30%, rgba(0,245,255,0.18) 50%, transparent 70%);
	background-size: 250% 100%;
	animation: shimmer 3.5s linear infinite;
	pointer-events: none;
}

/* Pulse glow utility */
.pulse-glow { animation: pulseGlow 3s ease-in-out infinite; }

/* ---- Scroll reveal (driven by GSAP, with CSS fallback) ---- */
.reveal { opacity: 0; transform: translateY(40px); }
.reveal-left { opacity: 0; transform: translateX(-60px); }
.reveal-right { opacity: 0; transform: translateX(60px); }
.reveal-scale { opacity: 0; transform: scale(0.9); }

/* If GSAP fails to load, reveal everything so content is never hidden */
.no-gsap .reveal,
.no-gsap .reveal-left,
.no-gsap .reveal-right,
.no-gsap .reveal-scale {
	opacity: 1 !important;
	transform: none !important;
}

/* Clip-path heading reveal helper */
.clip-reveal { clip-path: inset(0 100% 0 0); }

/* Animated underline draw (page hero) */
.draw-underline { transform: scaleX(0); }
