@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes typing{0%,60%,to{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-2px)}}@keyframes wave{0%,to{transform:rotate(0)}25%,75%{transform:rotate(-26deg)}50%{transform:rotate(8deg)}}.sprite-badge{background:var(--color-badge);color:var(--color-on-badge);box-shadow:var(--shadow-card)}.sprite-button .sprite{animation:3.2s ease-in-out infinite bob}.sprite-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s infinite blink}.sprite-sun{transform-box:fill-box;transform-origin:50%;animation:12s linear infinite spin}.sprite-wave{transform-box:fill-box;transform-origin:15% 90%}.sprite-button:hover .sprite-wave,.sprite-button:focus-visible .sprite-wave{animation:.9s ease-in-out wave}.assistant-panel{transform-origin:100% 100%;animation:.32s cubic-bezier(.16,1,.3,1) both pop-in}.assistant-hint{transform-origin:100% 100%;animation:.4s cubic-bezier(.16,1,.3,1) both pop-in}.assistant-msg{animation:.35s cubic-bezier(.16,1,.3,1) both pop-in}.typing-dot{animation:1s infinite typing}@media (prefers-reduced-motion:reduce){.sprite-button .sprite,.sprite-eyes,.sprite-sun,.sprite-button:hover .sprite-wave,.assistant-panel,.assistant-hint,.assistant-msg,.typing-dot{animation:none}}
