/* ============================================================
   Motion — utilities para GSAP (estado inicial)
   GSAP cuida das animações; aqui só garantimos o estado pré-animação
   para evitar flash of unanimated content.
   ============================================================ */

.fx-fade { opacity: 0; }
.fx-rise { opacity: 0; transform: translateY(16px); }
.fx-rise-sm { opacity: 0; transform: translateY(8px); }
.fx-scale { opacity: 0; transform: scale(0.96); }

/* Quando JS estiver desligado, mostra tudo igualmente */
.no-js .fx-fade,
.no-js .fx-rise,
.no-js .fx-rise-sm,
.no-js .fx-scale { opacity: 1; transform: none; }

/* Reduced motion: reveal instantâneo */
@media (prefers-reduced-motion: reduce) {
  .fx-fade, .fx-rise, .fx-rise-sm, .fx-scale { opacity: 1 !important; transform: none !important; }
}

/* Glow pulse leve em valores principais */
.glow-target {
  text-shadow:
    0 0 0 rgba(168, 150, 106, 0),
    0 0 0 rgba(201, 185, 140, 0);
  transition: text-shadow var(--d-deliberate) var(--ease-out);
}
.glow-target--lit {
  text-shadow:
    0 0 20px rgba(201, 185, 140, 0.50),
    0 0 60px rgba(168, 150, 106, 0.28);
}

/* Number tick during count-up */
.is-counting { font-variant-numeric: tabular-nums; }
