/* ============================================================
   Sriansh OS — motion.css
   Keyframes + reduced-motion guard.
   All animations gated behind prefers-reduced-motion: no-preference.
   ============================================================ */

@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 var(--glow-2); }
  50% { box-shadow: 0 0 0 6px transparent; }
}
@keyframes drift {
  0% { transform: translate(0, 0); }
  50% { transform: translate(30px, -20px); }
  100% { transform: translate(0, 0); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
@keyframes spin {
  to { transform: rotate(360deg); }
}
@keyframes shine {
  from { transform: translateX(-120%) skewX(-20deg); }
  to { transform: translateX(220%) skewX(-20deg); }
}

@media (prefers-reduced-motion: no-preference) {
  .status-dot { animation: pulse 1.6s var(--ease-in-out) infinite; }
  .hero__aura::before, .hero__aura::after { animation: drift 18s var(--ease-in-out) infinite; }
  .hero__aura::after { animation-duration: 22s; animation-direction: reverse; }
  .ai__node { animation: fadeUp var(--dur-3) var(--ease-out) both; }
  .spin { animation: spin 1s linear infinite; }
}

/* badge shine sweep on reveal */
.cert__badge::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.5) 50%, transparent 60%);
  transform: translateX(-120%);
}
.cert__card.is-visible .cert__badge::after { animation: shine 1s var(--ease-out) .2s 1; }

@media (prefers-reduced-motion: reduce) {
  .status-dot, .hero__aura::before, .hero__aura::after, .ai__node, .spin { animation: none !important; }
  .cert__card.is-visible .cert__badge::after { animation: none !important; }
}
