/* ═══════════════════════════════════════════════════════════
   animations.css  —  QIM Academy
   Layer 4: Keyframes + scroll-reveal utility classes
════════════════════════════════════════════════════════════ */

@keyframes pulse-dot{
  0%,100%{box-shadow:0 0 0 3px rgba(74,222,128,.2)}
  50%    {box-shadow:0 0 0 7px rgba(74,222,128,.06)}
}

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

.fade-up{animation:fadeUp .65s ease forwards}
.d1{animation-delay:.08s;opacity:0}
.d2{animation-delay:.18s;opacity:0}
.d3{animation-delay:.28s;opacity:0}
.d4{animation-delay:.38s;opacity:0}
.d5{animation-delay:.48s;opacity:0}

/* ── REDUCED MOTION (a11y) ──
   Respects the OS "reduce motion" setting: neutralises animations,
   transitions and smooth-scroll, and forces scroll-reveal elements
   (whose opacity:0 is set inline by reveal.js) to stay visible. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  html{scroll-behavior:auto!important}
  .fade-up,.d1,.d2,.d3,.d4,.d5{opacity:1!important;animation:none!important}
  .course-card,.curr-block,.who__card,.instructor-card,.testimonial-card,.faq-item{
    opacity:1!important;transform:none!important;
  }
}
