@keyframes spin{ to{ transform:rotate(360deg); } }
@keyframes spin-slow{ to{ transform:rotate(360deg); } }
@keyframes fadeSlideUp{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes pulseGlow{
  0%,100%{ opacity:0.6; transform:scale(1); }
  50%{ opacity:1; transform:scale(1.2); }
}
@keyframes blink{
  0%,92%,100%{ transform:scaleY(1); }
  95%{ transform:scaleY(0.08); }
}
@keyframes focusPulse{
  0%,100%{ stroke-dashoffset:0; }
  50%{ stroke-dashoffset:40; }
}
@keyframes neuronFire{
  0%{ opacity:0.2; }
  50%{ opacity:1; filter:drop-shadow(0 0 6px var(--accent-1)); }
  100%{ opacity:0.2; }
}
@keyframes signalTravel{
  0%{ offset-distance:0%; opacity:0; }
  10%{ opacity:1; }
  90%{ opacity:1; }
  100%{ offset-distance:100%; opacity:0; }
}
@keyframes rotateGear{ to{ transform:rotate(360deg); } }
@keyframes floatY{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-10px); }
}
@keyframes radarSweep{ to{ transform:rotate(360deg); } }
@keyframes chargeFill{
  0%{ height:5%; }
  100%{ height:90%; }
}
@keyframes typeCursor{
  0%,50%{ opacity:1; }
  51%,100%{ opacity:0; }
}
@keyframes shimmer{
  0%{ background-position:-200% 0; }
  100%{ background-position:200% 0; }
}
.animate-blink{ transform-origin:center; animation:blink 4s ease-in-out infinite; }
.animate-fire{ animation:neuronFire 1.6s ease-in-out infinite; }
.animate-float{ animation:floatY 3s ease-in-out infinite; }
.animate-spin{ animation:spin 6s linear infinite; }
.animate-radar{ animation:radarSweep 3s linear infinite; }
.animate-pulse{ animation:pulseGlow 2s ease-in-out infinite; }
