/* ============================================================
   India Weather Stack — Motion
   Calm, physical, atmospheric. Things drift and settle like
   weather systems — no bounces, no spring overshoot.
   ============================================================ */

:root {
  /* ---- Durations ---- */
  --dur-instant: 80ms; /* @kind other */
  --dur-fast:    160ms; /* @kind other */
  --dur-base:    240ms; /* @kind other */
  --dur-slow:    420ms; /* @kind other */
  --dur-drift:   900ms; /* @kind other */ /* large atmospheric movements */
  --dur-orbit:   24s; /* @kind other */ /* ambient satellite / radar loops */

  /* ---- Easing ---- */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1); /* @kind other */
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1); /* @kind other */ /* settle */
  --ease-in:       cubic-bezier(0.5, 0, 0.75, 0); /* @kind other */
  --ease-drift:    cubic-bezier(0.33, 0, 0.15, 1); /* @kind other */ /* slow systems */

  /* ---- Transitions ---- */
  --t-color:   color var(--dur-fast) var(--ease-standard),
               background-color var(--dur-fast) var(--ease-standard),
               border-color var(--dur-fast) var(--ease-standard); /* @kind other */
  --t-transform: transform var(--dur-base) var(--ease-out); /* @kind other */
  --t-all:     all var(--dur-base) var(--ease-standard); /* @kind other */
}

/* Ambient radar sweep keyframe (used by live components) */
@keyframes iws-radar-sweep {
  to { transform: rotate(360deg); }
}
@keyframes iws-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.45; }
}
@keyframes iws-drift {
  from { transform: translateX(-4%); }
  to   { transform: translateX(4%); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
