/* =============================================
   animations.css — Keyframes y clases de reveal
   ============================================= */

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes slideLeft {
  from { opacity: 0; transform: translateX(-40px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes slideRight {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(196, 163, 90, 0.4); }
  50%       { box-shadow: 0 0 0 12px rgba(196, 163, 90, 0); }
}

@keyframes floatLeaf {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%       { transform: translateY(-10px) rotate(3deg); }
}

@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* ---- Hero entrance ---- */
.hero-title   { animation: fadeUp 1s ease both; animation-delay: 0.1s; }
.hero-subtitle{ animation: fadeUp 1s ease both; animation-delay: 0.35s; }
.hero-date    { animation: fadeUp 1s ease both; animation-delay: 0.55s; }
.hero-cta     { animation: scaleIn 0.9s ease both; animation-delay: 0.75s; }
.hero-player  { animation: fadeIn 1.2s ease both; animation-delay: 1s; }

/* ---- Scroll reveal ---- */
.animate-hidden  { opacity: 0; transform: translateY(32px); transition: none; }
.animate-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

/* ---- Floating decorative elements ---- */
.leaf-float { animation: floatLeaf 6s ease-in-out infinite; }

/* ---- CTA pulse ---- */
.cta-pulse { animation: pulseGlow 2.5s ease-in-out infinite; }

