/* Wildeye animated icon pack — motion library
   Every animated element carries an .a-* class. Motion is subtle, looping,
   and only meaningful. Offline = frozen + desaturated + dashed.
   Reduced-motion users get the static end-state. */

/* ---- transform setup: SVG sub-elements pivot in the 96x96 viewBox ---- */
svg .a-spin, svg .a-spin-slow, svg .a-needle, svg .a-vane, svg .a-pulse,
svg .a-breathe, svg .a-flicker, svg .a-twinkle, svg .a-merc, svg .a-bob,
svg .a-locate, svg .a-bar, svg .a-valve, svg .a-glowpulse {
  transform-box: view-box;
}

/* ---- keyframes ---- */
@keyframes wild-spin      { to { transform: rotate(360deg); } }
@keyframes wild-drip {
  0%   { transform: translateY(-7px); opacity: 0; }
  18%  { opacity: 1; }
  72%  { opacity: 1; }
  100% { transform: translateY(15px); opacity: 0; }
}
@keyframes wild-fall {
  0%   { transform: translateY(-14px); opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translateY(20px); opacity: 0; }
}
@keyframes wild-rise   { 0%,100% { transform: translateY(2.6px); } 50% { transform: translateY(-2.6px); } }
@keyframes wild-waveX  { to { transform: translateX(-24px); } }
@keyframes wild-sway   { 0%,100% { transform: translateX(-1.8px); } 50% { transform: translateX(2.6px); } }
@keyframes wild-needle { 0%,100% { transform: rotate(var(--a0, -14deg)); } 50% { transform: rotate(var(--a1, 16deg)); } }
@keyframes wild-vane   { 0%,100% { transform: rotate(var(--a0, 30deg)); } 50% { transform: rotate(var(--a1, 58deg)); } }
@keyframes wild-pulse  { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.09); opacity: .82; } }
@keyframes wild-glow   { 0%,100% { opacity: .5; } 50% { opacity: 1; } }
@keyframes wild-glowpulse { 0%,100% { transform: scale(1); opacity: .85; } 50% { transform: scale(1.12); opacity: 1; } }
@keyframes wild-flicker {
  0%,100% { transform: scaleY(1)    skewX(0);    }
  25%     { transform: scaleY(1.06) skewX(-2.2deg); }
  50%     { transform: scaleY(.95)  skewX(1.6deg);  }
  75%     { transform: scaleY(1.04) skewX(-1deg);   }
}
@keyframes wild-vapor {
  0%   { transform: translateY(6px)  scaleX(1);  opacity: 0; }
  30%  { opacity: .9; }
  100% { transform: translateY(-15px) scaleX(.65); opacity: 0; }
}
@keyframes wild-bob    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes wild-locate { 0% { transform: scale(.35); opacity: .85; } 100% { transform: scale(1.7); opacity: 0; } }
@keyframes wild-twinkle{ 0%,100% { opacity: .45; transform: scale(.86) rotate(0); } 50% { opacity: 1; transform: scale(1) rotate(22deg); } }
@keyframes wild-breathe{ 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes wild-merc   { 0%,100% { transform: scaleY(.92); } 50% { transform: scaleY(1); } }
@keyframes wild-bar    { 0% { transform: scaleY(.35); opacity: .45; } 100% { transform: scaleY(1); opacity: 1; } }
@keyframes wild-valve  { 0%,15% { transform: rotate(0); } 50%,65% { transform: rotate(90deg); } 100% { transform: rotate(0); } }
@keyframes wild-blink  { 0%,46% { opacity: 1; } 54%,100% { opacity: .2; } }

/* ---- animation classes ---- */
.a-spin      { animation: wild-spin   3.2s linear infinite; }
.a-spin-slow { animation: wild-spin   16s  linear infinite; }
.a-drip      { animation: wild-drip   1.6s ease-in   infinite; }
.a-fall      { animation: wild-fall   1.5s ease-in   infinite; }
.a-rise      { animation: wild-rise   4s   ease-in-out infinite; }
.a-waveX     { animation: wild-waveX  2.6s linear infinite; }
.a-sway      { animation: wild-sway   2.6s ease-in-out infinite; }
.a-needle    { animation: wild-needle 3.8s ease-in-out infinite; }
.a-vane      { animation: wild-vane   4.6s ease-in-out infinite; }
.a-pulse     { animation: wild-pulse  2.6s ease-in-out infinite; }
.a-glow      { animation: wild-glow   2.2s ease-in-out infinite; }
.a-glowpulse { animation: wild-glowpulse 2.4s ease-in-out infinite; }
.a-flicker   { animation: wild-flicker 1.3s ease-in-out infinite; }
.a-vapor     { animation: wild-vapor  3.2s ease-out infinite; }
.a-bob       { animation: wild-bob    2.4s ease-in-out infinite; }
.a-locate    { animation: wild-locate 2.4s ease-out infinite; }
.a-twinkle   { animation: wild-twinkle 3s ease-in-out infinite; }
.a-breathe   { animation: wild-breathe 3.6s ease-in-out infinite; }
.a-merc      { animation: wild-merc   3.4s ease-in-out infinite; }
.a-bar       { animation: wild-bar    1.4s ease-in-out infinite alternate; }
.a-valve     { animation: wild-valve  4.4s ease-in-out infinite; }
.a-blink     { animation: wild-blink  1.8s steps(1) infinite; }

/* ---- offline: frozen, desaturated, dashed ---- */
.frozen svg * { animation: none !important; }
.frozen svg   { filter: grayscale(1) opacity(.5); }

/* ---- reduced motion: show the static end-state ---- */
@media (prefers-reduced-motion: reduce) {
  svg * { animation: none !important; }
}
