/* ==========================================================================
   SOLVENTIA — animations.css
   Keyframes CSS y estados iniciales para animaciones controladas por GSAP.
   GSAP hace el "tween"; aquí solo definimos estados base y keyframes puros CSS
   (glow, marquee, pulso) que no requieren orquestación de scroll.
   ========================================================================== */

/* Estado inicial de elementos que GSAP animará (evita FOUC / salto visual) */
[data-split-chars] .char,
[data-split-words] .word{ display:inline-block; will-change:transform, opacity; }

[data-reveal]{ opacity:0; }
[data-reveal-img] .reveal-img__inner{ transform:scale(1.15); }
[data-reveal-img]{ overflow:hidden; }
[data-pin-section]{ will-change:transform; }

/* Glow ambiental del hero */
@keyframes heroGlow{
  0%,100%{ opacity:.55; transform:translate(-50%,-50%) scale(1); }
  50%{ opacity:.85; transform:translate(-50%,-50%) scale(1.08); }
}
.hero__glow{
  position:absolute; top:32%; left:62%; width:60vw; height:60vw; max-width:900px; max-height:900px;
  background:radial-gradient(circle, rgba(184,146,74,.28), transparent 62%);
  transform:translate(-50%,-50%); animation:heroGlow 8s ease-in-out infinite; pointer-events:none;
}

/* Indicador de scroll */
@keyframes scrollDrop{
  0%{ transform:translateY(0); opacity:1; }
  70%{ opacity:0; }
  100%{ transform:translateY(14px); opacity:0; }
}
.scroll-indicator{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--c-muted-on-dark); font-family:var(--f-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
}
.scroll-indicator__line{ width:1px; height:40px; background:rgba(244,239,228,.2); position:relative; overflow:hidden; }
.scroll-indicator__line::after{
  content:""; position:absolute; top:0; left:0; width:100%; height:12px; background:var(--c-brass-500);
  animation:scrollDrop 2.2s ease-in-out infinite;
}

/* Marquee del ledger (loop puro CSS) */
@keyframes ledgerScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.ledger-track{ animation:ledgerScroll 46s linear infinite; }
.ledger-track:hover{ animation-play-state:paused; }

/* Pulso de disponibilidad (badge "consulta hoy") */
@keyframes pulseDot{
  0%{ box-shadow:0 0 0 0 rgba(127,194,155,.5); }
  100%{ box-shadow:0 0 0 8px rgba(127,194,155,0); }
}
.pulse-dot{ width:8px; height:8px; border-radius:50%; background:var(--c-success); animation:pulseDot 1.8s ease-out infinite; }

/* Contadores: estado inicial */
[data-counter]{ font-variant-numeric:tabular-nums; }

@media (prefers-reduced-motion: reduce){
  .hero__glow, .scroll-indicator__line::after, .ledger-track, .pulse-dot{ animation:none !important; }
  [data-reveal]{ opacity:1 !important; }
  [data-reveal-img] .reveal-img__inner{ transform:none !important; }
}
