/* ===================== THAR WORLD — Animations ===================== */
.fade-up,.fade-left,.fade-right,.scale-in{
  opacity:0;transition:opacity .7s ease, transform .7s cubic-bezier(.22,.9,.35,1);
  will-change:opacity, transform;
}
.fade-up{transform:translateY(36px);}
.fade-left{transform:translateX(-40px);}
.fade-right{transform:translateX(40px);}
.scale-in{transform:scale(.92);}

.fade-up.is-visible,.fade-left.is-visible,.fade-right.is-visible,.scale-in.is-visible{
  opacity:1;transform:none;
}

.d1{transition-delay:.1s;}
.d2{transition-delay:.2s;}
.d3{transition-delay:.3s;}
.d4{transition-delay:.4s;}
.d5{transition-delay:.5s;}
.d6{transition-delay:.6s;}

@media (prefers-reduced-motion: reduce){
  .fade-up,.fade-left,.fade-right,.scale-in{
    opacity:1 !important;transform:none !important;transition:none !important;
  }
  .announce-ticker{animation-play-state:paused !important;}
  html{scroll-behavior:auto;}
}

/* Misc micro-animations */
@keyframes floatY{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}
.float-anim{animation:floatY 3.2s ease-in-out infinite;}

@keyframes pulseRing{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,.55);}
  70%{box-shadow:0 0 0 14px rgba(37,211,102,0);}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}
}
.whatsapp-float{animation:pulseRing 2.4s infinite;}

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