/* Extra micro-interactions, layered on top of style.css.
   Kept separate so animation-heavy rules can be pruned independently
   for low-power devices without touching layout/color rules. */

.card-hover-lift{ transition:transform .35s ease, box-shadow .35s ease; }
.card-hover-lift:hover{ transform:translateY(-8px); box-shadow:var(--shadow-md); }

.spin-slow{ animation:spin 14s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.fade-in-up{ animation:fadeInUp .8s ease both; }
@keyframes fadeInUp{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:translateY(0); } }

.shimmer{ position:relative; overflow:hidden; }
.shimmer::after{
  content:""; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  animation:shimmer 2.4s ease-in-out infinite;
}
@keyframes shimmer{ 100%{ transform:translateX(100%); } }

@media (prefers-reduced-motion: reduce){
  .marquee-track, .badge-float, .preloader-mark, .spin-slow, .shimmer::after{ animation:none !important; }
}
