/* DS_VERSION: 4.0.0-alpha — project: andrealvespd.com.br */
/* ================================================================
 * animations.css — Identidade global de movimento (gold/dark)
 * ----------------------------------------------------------------
 * Reescrito do zero a partir do briefing legado (sem importar nada
 * de referências externas). Contém apenas o que é identidade RECORRENTE:
 *   keyframes + utility classes de glow/lift/float aplicáveis em
 *   qualquer LP do projeto.
 *
 * Decoração local (.bg-gradient-glow, .interactive-text com mask,
 * .logo-hover, cursor effects) permanece inline na LP específica.
 *
 * Tokens utilizados: var(--gold), var(--gold-deep), var(--linen),
 *                     var(--ease-out), var(--duration-*).
 *
 * Respeita prefers-reduced-motion via tokens (duration → 0s).
 * ================================================================ */

/* -------- Keyframes -------- */

@keyframes andre-kfFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

@keyframes andre-kfFloatSlow {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}

@keyframes andre-kfGlow {
  from { box-shadow: 0 0 20px rgba(237, 184, 82, 0.30), 0 0 40px rgba(237, 184, 82, 0.10); }
  to   { box-shadow: 0 0 30px rgba(237, 184, 82, 0.50), 0 0 60px rgba(237, 184, 82, 0.20); }
}

@keyframes andre-kfPulseGold {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.45; }
}

@keyframes andre-kfAmbient1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(100px, -50px) scale(1.1); }
}

@keyframes andre-kfAmbient2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%      { transform: translate(-80px, 60px) scale(0.9); }
}

@keyframes andre-kfFadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes andre-kfSlideUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes andre-kfScaleIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}

/* -------- Glow utilities (gold) -------- */

.text-glow {
  text-shadow: 0 0 20px rgba(237, 184, 82, 0.18);
}

.glow-soft {
  box-shadow: 0 0 20px rgba(237, 184, 82, 0.30), 0 0 40px rgba(237, 184, 82, 0.10);
}

.glow-card {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.30), 0 0 0 1px rgba(246, 246, 246, 0.05);
  transition: transform var(--duration-slow) var(--ease-in-out),
              box-shadow var(--duration-slow) var(--ease-in-out);
}
.glow-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.40),
              0 0 0 1px rgba(246, 246, 246, 0.08),
              0 0 50px rgba(237, 184, 82, 0.18);
}

.glow-border {
  border: 1px solid rgba(237, 184, 82, 0.30);
  transition: border-color var(--duration-base) var(--ease-out),
              box-shadow var(--duration-base) var(--ease-out);
}
.glow-border:hover {
  border-color: rgba(237, 184, 82, 0.60);
  box-shadow: 0 0 20px rgba(237, 184, 82, 0.20);
}

/* -------- Hover utilities -------- */

.hover-lift {
  transition: transform var(--duration-slow) var(--ease-out),
              box-shadow var(--duration-slow) var(--ease-out);
}
.hover-lift:hover {
  transform: translateY(-4px) scale(1.02);
}

.hover-glow {
  transition: color var(--duration-base) var(--ease-out),
              text-shadow var(--duration-base) var(--ease-out);
}
.hover-glow:hover {
  text-shadow: 0 0 25px rgba(237, 184, 82, 0.55),
               0 0 50px rgba(237, 184, 82, 0.28);
  color: var(--linen, #f6f6f6);
}

.hover-float {
  transition: transform var(--duration-slower) var(--ease-out),
              filter var(--duration-slower) var(--ease-out);
}
.hover-float:hover {
  transform: translateY(-6px);
  filter: drop-shadow(0 10px 30px rgba(237, 184, 82, 0.20));
}

.button-shine {
  position: relative;
  overflow: hidden;
}
.button-shine::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(246, 246, 246, 0.20), transparent);
  transform: translateX(-100%);
  transition: transform var(--duration-slowest) var(--ease-out);
  pointer-events: none;
}
.button-shine:hover::before { transform: translateX(100%); }

/* -------- Animação aplicada (loops contínuos) -------- */

.is-floating       { animation: andre-kfFloat 6s ease-in-out infinite; }
.is-floating-slow  { animation: andre-kfFloatSlow 8s ease-in-out infinite; }
.is-glowing        { animation: andre-kfGlow 2.4s ease-in-out infinite alternate; }
.is-pulsing-gold   { animation: andre-kfPulseGold 2.4s ease-in-out infinite; }

/* -------- Ambient light blobs (decoração de fundo) -------- */

.ambient-light,
.ambient-light--alt {
  position: fixed;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(40px);
}
.ambient-light {
  top: 20%; left: 10%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(237, 184, 82, 0.10) 0%, transparent 70%);
  animation: andre-kfAmbient1 8s ease-in-out infinite alternate;
}
.ambient-light--alt {
  bottom: 20%; right: 10%;
  width: 400px; height: 400px;
  filter: blur(60px);
  background: radial-gradient(circle, rgba(216, 152, 48, 0.08) 0%, transparent 70%);
  animation: andre-kfAmbient2 10s ease-in-out infinite alternate;
}

/* -------- Reveal helpers (combinam com animations.js / data-animate) -------- */

[data-animate]            { opacity: 0; }
[data-animate].is-visible { animation: andre-kfFadeIn  0.9s var(--ease-out) forwards; }

[data-animate="slide-up"].is-visible { animation: andre-kfSlideUp 0.8s var(--ease-out) forwards; }
[data-animate="scale-in"].is-visible { animation: andre-kfScaleIn 0.6s var(--ease-out) forwards; }

/* Atraso encadeado para revelar em cascata. */
.delay-100 { animation-delay: 0.10s; }
.delay-200 { animation-delay: 0.20s; }
.delay-300 { animation-delay: 0.30s; }
.delay-400 { animation-delay: 0.40s; }
.delay-500 { animation-delay: 0.50s; }
.delay-600 { animation-delay: 0.60s; }

@media (prefers-reduced-motion: reduce) {
  .is-floating,
  .is-floating-slow,
  .is-glowing,
  .is-pulsing-gold,
  .ambient-light,
  .ambient-light--alt {
    animation: none !important;
  }
  [data-animate]            { opacity: 1; }
  [data-animate].is-visible { animation: none !important; }
}
