/* Single Software — motion utilities (sutil, só pra dar vida) */

/* Reveal on scroll */
[data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .55s cubic-bezier(.4, 0, .2, 1), transform .55s cubic-bezier(.4, 0, .2, 1);
  will-change: opacity, transform;
}
[data-reveal].is-in {
  opacity: 1;
  transform: translateY(0);
}
[data-reveal][data-delay="1"].is-in { transition-delay: .08s; }
[data-reveal][data-delay="2"].is-in { transition-delay: .16s; }
[data-reveal][data-delay="3"].is-in { transition-delay: .24s; }
[data-reveal][data-delay="4"].is-in { transition-delay: .32s; }
[data-reveal][data-delay="5"].is-in { transition-delay: .40s; }

/* Number pulse — animação contínua sutil */
.pulse-soft {
  animation: pulse-soft 3.2s ease-in-out infinite;
}
@keyframes pulse-soft {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.03); }
}

/* Glow soft — pra cards de destaque */
.glow-soft {
  animation: glow-soft 4s ease-in-out infinite;
}
@keyframes glow-soft {
  0%, 100% { box-shadow: 0 0 0 0 rgba(247, 65, 247, 0); }
  50%      { box-shadow: 0 0 32px 0 rgba(247, 65, 247, .18); }
}

/* Hover lift compartilhado (sem mexer em elementos com hover próprio) */
.hover-lift { transition: transform .25s ease, box-shadow .25s ease; }
.hover-lift:hover { transform: translateY(-3px); }

@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-reveal].is-in {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .pulse-soft, .glow-soft { animation: none; }
  .hover-lift { transition: none; }
}
