@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes cartBounce {
  0%, 100% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.18);
  }
}

@keyframes shimmer {
  from {
    background-position: -200% 0;
  }
  to {
    background-position: 200% 0;
  }
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
}

.reveal.is-visible {
  animation: fadeInUp 520ms ease forwards;
}

.cart-badge.bump {
  animation: cartBounce 320ms ease;
}
