@keyframes typing{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-2px);opacity:1}}@keyframes loading-dots{0%,to{opacity:0}50%{opacity:1}}@keyframes wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(.6)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes text-blink{0%,to{color:var(--primary)}50%{color:var(--muted-foreground)}}@keyframes bounce-dots{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:1}}@keyframes thin-pulse{0%,to{transform:scale(.95);opacity:.8}50%{transform:scale(1.05);opacity:.4}}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:1}}@keyframes shimmer-text{0%{background-position:150%}to{background-position:-150%}}@keyframes wave-bars{0%,to{transform:scaleY(1);opacity:.5}50%{transform:scaleY(.6);opacity:1}}@keyframes shimmer{0%{background-position:200% 50%}to{background-position:-200% 50%}}@keyframes spinner-fade{0%{opacity:0}to{opacity:1}}