@property --angle { syntax:'<angle>'; initial-value:0deg; inherits:false; }

@keyframes bgPulse { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }

@keyframes flowFade {
  0%   { --angle:0deg; opacity:0; }
  10%  { --angle:100deg; opacity:0.5; }
  30%  { --angle:190deg; opacity:1; }
  50%  { --angle:280deg; opacity:1; }
  60%  { --angle:350deg; opacity:0.5; }
  100% { --angle:540deg; opacity:0; }
}

@keyframes flowLoop {
  0%   { --angle:0deg; }
  100% { --angle:360deg; }
}

@keyframes fadeUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

@keyframes spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

@keyframes popIn { 0%{opacity:0;transform:scale(.85)} 60%{transform:scale(1.04)} 100%{opacity:1;transform:scale(1)} }

@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

@keyframes micPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(255,61,0,.35); }
  50% { box-shadow: 0 0 0 9px rgba(255,61,0,0); }
}

@keyframes fadeIn { from{opacity:0} to{opacity:1} }

@keyframes fadeInModal { from{opacity:0} to{opacity:1} }

@keyframes slideUp { from{transform:translateY(30px);opacity:0} to{transform:translateY(0);opacity:1} }

@keyframes slideDown { from{opacity:0;transform:translateY(-5px)} to{opacity:1;transform:translateY(0)} }

@keyframes voiceOrbPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} }
