/* ═══════════════════════════════════════════════════════════════════════════
   WindGust — reusable loading indicator
   Three staggered strokes pushing left→right. Six color variants.
   ═══════════════════════════════════════════════════════════════════════════ */

.wind-gust {
  display: inline-block;
  position: relative;
}

.wind-gust svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

.wind-gust-ln {
  stroke-width: 4.5;
  stroke-linecap: round;
  fill: none;
  stroke-dasharray: 60;
  animation: wind-gust-push 1.6s ease-in-out infinite;
  transform-origin: left center;
}

.wind-gust-l1 { animation-delay: 0s; }
.wind-gust-l2 { animation-delay: 0.18s; }
.wind-gust-l3 { animation-delay: 0.36s; }

@keyframes wind-gust-push {
  0%   { stroke-dashoffset: 60;  opacity: 0; transform: translateX(-6px); }
  40%  { stroke-dashoffset: 0;   opacity: 1; transform: translateX(0); }
  70%  { opacity: 1; }
  100% { stroke-dashoffset: -60; opacity: 0; transform: translateX(6px); }
}

/* ── Variants ─────────────────────────────────────────────────────────── */

.wind-gust--autumn .wind-gust-l1,
.wind-gust--autumn .wind-gust-l2,
.wind-gust--autumn .wind-gust-l3 { stroke: var(--primary); }

.wind-gust--warm .wind-gust-l1 { stroke: var(--primary); }
.wind-gust--warm .wind-gust-l2 { stroke: var(--secondary); }
.wind-gust--warm .wind-gust-l3 { stroke: var(--primary-muted); }

.wind-gust--priority .wind-gust-l1 { stroke: var(--priority-high); }
.wind-gust--priority .wind-gust-l2 { stroke: var(--priority-medium); }
.wind-gust--priority .wind-gust-l3 { stroke: var(--priority-low); }

.wind-gust--agent .wind-gust-l1 { stroke: var(--primary); }
.wind-gust--agent .wind-gust-l2 { stroke: var(--status-in-review); }
.wind-gust--agent .wind-gust-l3 { stroke: var(--tertiary); }

/* Gradient variant: strokes set via `stroke="url(#…)"` inline; no token override. */

.wind-gust--converge {
  filter: drop-shadow(0 0 8px rgba(240, 176, 96, 0.35));
}
.wind-gust--converge .wind-gust-l1 { stroke: var(--primary);   animation-duration: 1.4s; animation-delay: 0s; }
.wind-gust--converge .wind-gust-l2 { stroke: var(--secondary); animation-duration: 1.4s; animation-delay: 0.22s; }
.wind-gust--converge .wind-gust-l3 { stroke: var(--tertiary);  animation-duration: 1.4s; animation-delay: 0.44s; }

/* ── Reduced motion: static full-opacity lines, no animation ──────────── */

@media (prefers-reduced-motion: reduce) {
  .wind-gust-ln {
    animation: none;
    stroke-dashoffset: 0;
    opacity: 1;
    transform: none;
  }
}
