/* Animações de scroll */
.fade-in{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}
.fade-in.visible{opacity:1;transform:translateY(0)}
.fade-in-left{opacity:0;transform:translateX(-30px);transition:all .8s cubic-bezier(.4,0,.2,1)}
.fade-in-left.visible{opacity:1;transform:translateX(0)}
.fade-in-right{opacity:0;transform:translateX(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}
.fade-in-right.visible{opacity:1;transform:translateX(0)}
.scale-in{opacity:0;transform:scale(.9);transition:all .8s cubic-bezier(.4,0,.2,1)}
.scale-in.visible{opacity:1;transform:scale(1)}

.delay-1{transition-delay:.1s}
.delay-2{transition-delay:.2s}
.delay-3{transition-delay:.3s}
.delay-4{transition-delay:.4s}

/* Contador animado */
.counter{display:inline-block}

/* Skeleton loading */
.skeleton{
  background:linear-gradient(90deg,#f1f5f9 0%,#e2e8f0 50%,#f1f5f9 100%);
  background-size:200% 100%;
  animation:shimmer 1.5s infinite;
  border-radius:8px;
}
@keyframes shimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}

/* Botão shake (urgência) */
.shake{animation:shake 3s infinite}
@keyframes shake{
  0%,90%,100%{transform:translateX(0)}
  92%,96%{transform:translateX(-3px)}
  94%,98%{transform:translateX(3px)}
}

/* Glow pulsante */
.glow{animation:glow 2s ease-in-out infinite alternate}
@keyframes glow{
  from{box-shadow:0 0 20px rgba(255,122,0,.4)}
  to{box-shadow:0 0 30px rgba(255,122,0,.7)}
}