@keyframes snap-rise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes snap-glow {
  0%, 100% { box-shadow: 0 18px 50px rgba(37, 99, 235, 0.12); }
  50% { box-shadow: 0 22px 56px rgba(124, 58, 237, 0.18); }
}
@keyframes snap-shimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

.snap-hero {
  animation: snap-rise 0.55s ease both;
}
.ivd-step-card {
  animation: snap-rise 0.65s ease both, snap-glow 4s ease-in-out infinite;
}
.ivd-step-card:nth-child(1) { animation-delay: 0.05s, 0s; }
.ivd-step-card:nth-child(2) { animation-delay: 0.15s, 0.5s; }
.ivd-step-card:nth-child(3) { animation-delay: 0.25s, 1s; }
.ivd-step-card:nth-child(4) { animation-delay: 0.35s, 1.5s; }

.ivd-step-media-gradient {
  background: linear-gradient(120deg, #2563eb, #7c3aed, #db2777, #2563eb);
  background-size: 200% 200%;
  animation: snap-shimmer 8s ease infinite;
}

.pf-article-wrap {
  animation: snap-rise 0.7s ease 0.2s both;
}

.snap-btn-dl {
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.snap-btn-dl:hover {
  transform: translateY(-1px);
}
.snap-btn-dl:active {
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .snap-hero, .ivd-step-card, .pf-article-wrap { animation: none; }
  .ivd-step-media-gradient { animation: none; }
}
