/* animations.css — Todos os @keyframes do sistema e helpers de animação.
   drift, marquee, shimmer, glow-pulse, fadeIn, reveal-rise, spin, pulse-dot. */

/* Deriva lenta dos blobs de fundo */
@keyframes drift {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(40px, 56px) scale(1.12); }
}

/* Rolagem horizontal infinita do marquee (faixa duplicada → -50%) */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Varredura de brilho metálico sobre superfícies douradas */
@keyframes shimmer {
  0%        { transform: translateX(-120%); }
  60%, 100% { transform: translateX(220%); }
}

/* Pulsação do glow dourado */
@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 24px var(--glow-gold-soft); }
  50%      { box-shadow: 0 0 52px var(--glow-gold-strong); }
}

/* Entrada suave de conteúdo (painéis de abas, conteúdo de acordeão) */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Demonstração reproduzível do scroll-reveal */
@keyframes reveal-rise {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Spinner de carregamento */
@keyframes spin { to { transform: rotate(360deg); } }

/* Ponto de status pulsante */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 var(--glow-gold-strong); }
  50%      { opacity: 0.6; box-shadow: 0 0 0 7px rgba(212, 175, 95, 0); }
}

/* ---- HELPERS DE ANIMAÇÃO ---- */
.animate-marquee { animation: marquee var(--dur-marquee) linear infinite; }
.animate-drift { animation: drift var(--dur-drift) ease-in-out infinite alternate; }
.animate-glow-pulse { animation: glow-pulse var(--dur-glow) ease-in-out infinite; }
.animate-fade-in { animation: fadeIn var(--dur-slow) var(--ease-out-soft) both; }
.anim-replay { animation: reveal-rise var(--dur-slow) var(--ease-reveal) both; }
