.animate-fade-in{animation:.15s ease-out both fadeSlideUp}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(8px)}}.animate-fade{animation:.15s ease-out both animFadeIn}@keyframes animFadeIn{0%{opacity:0}}.animate-scale-in{animation:.15s ease-out both animScaleIn}@keyframes animScaleIn{0%{opacity:0;transform:scale(.95)}}.animate-slide-in-right{animation:.15s ease-out both animSlideInRight}@keyframes animSlideInRight{0%{opacity:0;transform:translate(20px)}}.chat-fade-in{animation:.2s ease-out both chatFadeIn}@keyframes chatFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-slide-in-left{animation:.25s cubic-bezier(.16,1,.3,1) both chatSlideInLeft}@keyframes chatSlideInLeft{0%{opacity:0;transform:translate(-16px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}.chat-slide-in-right{animation:.25s cubic-bezier(.16,1,.3,1) both chatSlideInRight}@keyframes chatSlideInRight{0%{opacity:0;transform:translate(16px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}.chat-fade-only{animation:.15s ease-out both chatFadeOnly}@keyframes chatFadeOnly{0%{opacity:0}to{opacity:1}}.chat-scale-in{animation:.2s cubic-bezier(.16,1,.3,1) both chatScaleIn}@keyframes chatScaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.chat-scale-in-subtle{animation:.15s ease-out both chatScaleInSubtle}@keyframes chatScaleInSubtle{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.chat-slide-up{animation:.2s ease-out both chatSlideUp}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-slide-up-sm{animation:.12s ease-out both chatSlideUpSm}@keyframes chatSlideUpSm{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-slide-in-left-sm{animation:.1s ease-out both chatSlideInLeftSm}@keyframes chatSlideInLeftSm{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.chat-stagger{animation-delay:calc(var(--i,0) * 40ms)}.stagger-item{animation:.2s ease-out both chatFadeIn}.stagger-item:first-child{animation-delay:0s}.stagger-item:nth-child(2){animation-delay:30ms}.stagger-item:nth-child(3){animation-delay:50ms}.stagger-item:nth-child(4){animation-delay:70ms}.stagger-item:nth-child(5){animation-delay:85ms}.stagger-item:nth-child(6){animation-delay:.1s}.stagger-item:nth-child(7){animation-delay:.11s}.stagger-item:nth-child(8){animation-delay:.12s}.stagger-item:nth-child(9){animation-delay:.125s}.stagger-item:nth-child(10){animation-delay:.13s}.chat-expand{animation:.15s ease-out both chatExpand;overflow:hidden}@keyframes chatExpand{0%{opacity:0;height:0}to{height:var(--expanded-height,auto);opacity:1}}.chat-dot-pulse{animation:1.2s ease-in-out infinite chatDotPulse}.chat-dot-pulse[style*="--i: 1"]{animation-delay:.2s}.chat-dot-pulse[style*="--i: 2"]{animation-delay:.4s}@keyframes chatDotPulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.chat-thinking-dot{animation:.8s ease-in-out infinite chatDotPulse}.chat-thinking-dot:nth-child(2){animation-delay:.12s}.chat-thinking-dot:nth-child(3){animation-delay:.24s}.chat-streaming-cursor:after{content:"";background:var(--accent);vertical-align:text-bottom;width:2px;height:1.1em;margin-left:1px;animation:.8s step-end infinite chatCursorBlink;display:inline-block}@keyframes chatCursorBlink{0%,to{opacity:1}50%{opacity:0}}.chat-streaming-glow{position:relative}.chat-streaming-glow:before{content:"";background:var(--accent);border-radius:1px;width:2px;animation:2s ease-in-out infinite chatStreamGlow;position:absolute;top:0;bottom:0;left:-8px}@keyframes chatStreamGlow{0%,to{opacity:.3}50%{opacity:.8}}.chat-wave-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite chatWave;display:inline-block}.chat-wave-dot:first-child{animation-delay:0s}.chat-wave-dot:nth-child(2){animation-delay:.16s}.chat-wave-dot:nth-child(3){animation-delay:.32s}@keyframes chatWave{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.chat-thinking-shimmer{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-border) 50%, var(--surface) 100%);background-size:200% 100%;border-radius:4px;animation:1.5s ease-in-out infinite chatThinkingShimmer}@keyframes chatThinkingShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.chat-tool-progress{position:relative;overflow:hidden}.chat-tool-progress:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;animation:2s ease-in-out infinite chatToolProgress;position:absolute;bottom:0;left:0}@keyframes chatToolProgress{0%{opacity:.5;transform:scaleX(0)}50%{opacity:.8;transform:scaleX(1)}to{opacity:.5;transform-origin:100%;transform:scaleX(0)}}.chat-spin{animation:1s linear infinite chatSpin}@keyframes chatSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-spin-slow{animation:2s linear infinite chatSpin}.chat-chevron-open{transition:transform .15s ease-out;transform:rotate(90deg)}.chat-chevron-closed{transition:transform .15s ease-out;transform:rotate(0)}.chat-voice-pulse{animation:1.2s ease-in-out infinite chatVoicePulse}@keyframes chatVoicePulse{0%,to{opacity:1}50%{opacity:.3}}.chat-progress-bar{transition:width .3s ease-out}.chat-collapsible{transition:height .15s ease-out,opacity .15s ease-out;overflow:hidden}.chat-collapsible[data-open=false]{opacity:0;height:0}.chat-collapsible[data-open=true]{opacity:1}.space-y-5>:not(.chat-scroll-anchor){overflow-anchor:none}.chat-scroll-anchor{overflow-anchor:auto;height:1px}.chat-bounce{animation:.3s ease-out chatBounce}@keyframes chatBounce{0%{transform:translateY(0)}50%{transform:translateY(-4px)}to{transform:translateY(0)}}.chat-scroll-btn-enter{animation:.2s cubic-bezier(.16,1,.3,1) both chatScrollBtnEnter}@keyframes chatScrollBtnEnter{0%{opacity:0;transform:translateY(8px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.animate-shimmer{background:linear-gradient(90deg, transparent 0%, var(--accent) 50%, transparent 100%);background-size:200% 100%;animation:2s linear infinite chatShimmer}@keyframes chatShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-message-in{animation:.2s ease-out both chatFadeIn}.space-y-5>div:nth-last-child(n+11){content-visibility:auto;contain-intrinsic-size:0 80px}
