@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
  .reveal.visible { opacity: 1; transform: translateY(0); }
  .card, .btn { transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
  .weld-visual::after { animation: spark 2.8s ease-in-out infinite; }
}

@keyframes spark {
  0%, 100% { transform: scale(.96) rotate(-2deg); opacity: .85; }
  50% { transform: scale(1.08) rotate(2deg); opacity: 1; }
}
