@keyframes progress-indeterminate{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.animate-progress-indeterminate{animation:progress-indeterminate 1.5s ease-in-out infinite}@keyframes message-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-message-in{animation:message-in .3s ease-out forwards}@keyframes thinking-pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-thinking{animation:thinking-pulse 1.5s ease-in-out infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease-out forwards}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slide-up .3s ease-out forwards}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slide-down .2s ease-out forwards}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in .2s ease-out forwards}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.1) 50%,hsla(0,0%,100%,0));background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.skeleton-shimmer{position:relative;overflow:hidden;background:hsl(var(--muted))}.skeleton-shimmer:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent 0,hsl(var(--foreground)/.07) 50%,transparent 100%);animation:shimmer-sweep 1.5s ease-in-out infinite}@keyframes shimmer-sweep{to{transform:translateX(100%)}}@keyframes ring-pulse{0%,to{box-shadow:0 0 0 1px hsl(var(--primary)/.6)}50%{box-shadow:0 0 0 4px hsl(var(--primary)/.18)}}.animate-ring-pulse{animation:ring-pulse 1.6s ease-in-out infinite;border-radius:inherit}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px currentColor,0 0 10px currentColor}50%{box-shadow:0 0 10px currentColor,0 0 20px currentColor}}.animate-glow-pulse{animation:glow-pulse 2s ease-in-out infinite}@keyframes bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-bounce-subtle{animation:bounce-subtle 1s ease-in-out infinite}@keyframes typing-dot{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.animate-typing-dot{animation:typing-dot 1.4s ease-in-out infinite}.animate-typing-dot-1{animation-delay:0s}.animate-typing-dot-2{animation-delay:.2s}.animate-typing-dot-3{animation-delay:.4s}.stagger-children>*{opacity:0;animation:fade-in .3s ease-out forwards}.stagger-children>:first-child{animation-delay:0ms}.stagger-children>:nth-child(2){animation-delay:50ms}.stagger-children>:nth-child(3){animation-delay:.1s}.stagger-children>:nth-child(4){animation-delay:.15s}.stagger-children>:nth-child(5){animation-delay:.2s}.stagger-children>:nth-child(6){animation-delay:.25s}.stagger-children>:nth-child(7){animation-delay:.3s}.stagger-children>:nth-child(8){animation-delay:.35s}.stagger-children>:nth-child(9){animation-delay:.4s}.stagger-children>:nth-child(10){animation-delay:.45s}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}