/* GUYZ - Animations */

/* ---------- Scroll Reveal ---------- */
.reveal { opacity: 0; transform: translateY(40px); transition: all 0.8s var(--ease-out); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-left { opacity: 0; transform: translateX(-40px); transition: all 0.8s var(--ease-out); }
.reveal-left.visible { opacity: 1; transform: translateX(0); }
.reveal-right { opacity: 0; transform: translateX(40px); transition: all 0.8s var(--ease-out); }
.reveal-right.visible { opacity: 1; transform: translateX(0); }
.reveal-scale { opacity: 0; transform: scale(0.9); transition: all 0.8s var(--ease-out); }
.reveal-scale.visible { opacity: 1; transform: scale(1); }

/* Staggered children */
.stagger-children > * { opacity: 0; transform: translateY(30px); transition: all 0.6s var(--ease-out); }
.stagger-children.visible > *:nth-child(1) { transition-delay: 0ms; opacity: 1; transform: translateY(0); }
.stagger-children.visible > *:nth-child(2) { transition-delay: 80ms; opacity: 1; transform: translateY(0); }
.stagger-children.visible > *:nth-child(3) { transition-delay: 160ms; opacity: 1; transform: translateY(0); }
.stagger-children.visible > *:nth-child(4) { transition-delay: 240ms; opacity: 1; transform: translateY(0); }
.stagger-children.visible > *:nth-child(5) { transition-delay: 320ms; opacity: 1; transform: translateY(0); }
.stagger-children.visible > *:nth-child(6) { transition-delay: 400ms; opacity: 1; transform: translateY(0); }
.stagger-children.visible > *:nth-child(n+7) { transition-delay: 480ms; opacity: 1; transform: translateY(0); }

/* ---------- Hero Animations ---------- */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-30px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.85); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(232,213,183,0.1); }
  50% { box-shadow: 0 0 40px rgba(232,213,183,0.2); }
}

/* Hero text stagger */
.hero-anim-1 { animation: fadeInUp 1s var(--ease-out) 0.2s both; }
.hero-anim-2 { animation: fadeInUp 1s var(--ease-out) 0.4s both; }
.hero-anim-3 { animation: fadeInUp 1s var(--ease-out) 0.6s both; }
.hero-anim-4 { animation: fadeInUp 1s var(--ease-out) 0.8s both; }

/* Scroll indicator bounce */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); }
  40% { transform: translateY(-12px) translateX(-50%); }
  60% { transform: translateY(-6px) translateX(-50%); }
}
.scroll-indicator {
  animation: bounce 2.5s infinite;
}

/* ---------- Page Transition ---------- */
.page-transition {
  position: fixed; inset: 0; background: var(--color-bg);
  z-index: var(--z-top); pointer-events: none;
  animation: pageReveal 0.6s var(--ease-out) forwards;
}
@keyframes pageReveal {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* ---------- Counter Animation ---------- */
@keyframes countUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Image Parallax ---------- */
.parallax-container { overflow: hidden; position: relative; }
.parallax-image { transition: transform 0.1s linear; will-change: transform; }

/* ---------- Marquee ---------- */
.marquee { overflow: hidden; white-space: nowrap; }
.marquee-track {
  display: inline-flex; animation: marquee 30s linear infinite;
}
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ---------- Gradient Orbs (decorative) ---------- */
.orb {
  position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; opacity: 0.15;
}
.orb-gold { background: var(--color-secondary); }
.orb-accent { background: var(--color-accent); }
.orb-primary { background: #4F46E5; }
