.bot-character{display:inline-block;width:48px;height:52px;flex-shrink:0;position:relative;vertical-align:middle;color:var(--orb-mid)}.bot-character svg{display:block;width:100%;height:100%;overflow:visible}.palette-ice{--orb-light:#edf7ff;--orb-mid:#a6c5ed;--orb-dark:#536f9b}.palette-blue{--orb-light:#c9eaff;--orb-mid:#7baee6;--orb-dark:#365986}.palette-lilac{--orb-light:#eeebff;--orb-mid:#b7a8e0;--orb-dark:#6d5a9a}.palette-apricot{--orb-light:#fff0dc;--orb-mid:#dcb59a;--orb-dark:#997058}.palette-pearl{--orb-light:#f2fffa;--orb-mid:#b2d6c9;--orb-dark:#598a7d}.tone-light{stop-color:var(--orb-light)}.tone-mid{stop-color:var(--orb-mid)}.tone-dark{stop-color:var(--orb-dark)}.character-body{transform-origin:50px 60px;animation:orb-float 5.2s ease-in-out infinite}.character-face{color:#1b263b;fill:#1b263b;transform-origin:50px 50px}.character-eye{transform-box:fill-box;transform-origin:center}.eye-glint{fill:#fff;opacity:.7}.character-shadow{transform-origin:50px 99px;animation:orb-shadow 5.2s ease-in-out infinite}.eyes-closed,.eyes-happy,.mouth-sleep,.mouth-worry,.character-brows,.sleep-marks,.happy-spark,.character-orbit{display:none}.bot-item:nth-child(2n) .character-body{animation-delay:-1.7s}.bot-item .bot-character{width:38px;height:42px}.chat-header .bot-character{width:48px;height:52px}.message .bot-character{width:32px;height:35px}.bot-card .bot-character{width:78px;height:84px}.chat-empty>.bot-character{width:130px;height:140px;margin:0 auto 25px}.character-stage .bot-character{width:150px;height:162px}
.bot-character[data-mood=busy] .character-body{animation:orb-work 1.8s ease-in-out infinite}.bot-character[data-mood=busy] .character-orbit{display:block;transform-origin:50px 53px;animation:orb-orbit 3.2s linear infinite}.bot-character[data-mood=busy] .character-face{animation:orb-focus 2.6s ease-in-out infinite}.bot-character[data-mood=busy] .mouth-smile{transform:translate(0,1px) scale(1,.85);transform-origin:51px 63px}.bot-character[data-mood=waiting] .character-face{animation:orb-look 4.2s ease-in-out infinite}.bot-character[data-mood=waiting] .character-body{animation-duration:3.8s}.bot-character[data-mood=sleeping] .eyes-open,.bot-character[data-mood=offline] .eyes-open,.bot-character[data-mood=sleeping] .mouth-smile,.bot-character[data-mood=offline] .mouth-smile{display:none}.bot-character[data-mood=sleeping] .eyes-closed,.bot-character[data-mood=offline] .eyes-closed,.bot-character[data-mood=sleeping] .mouth-sleep,.bot-character[data-mood=offline] .mouth-sleep,.bot-character[data-mood=sleeping] .sleep-marks{display:block}.bot-character[data-mood=sleeping] .character-body,.bot-character[data-mood=offline] .character-body{animation:orb-breathe 4.5s ease-in-out infinite}.bot-character[data-mood=sleeping] .character-shadow{animation-duration:4.5s}.sleep-z{animation:orb-dream 3.8s ease-out infinite;transform-origin:center}.sleep-z.z-two{animation-delay:1.1s}.bot-character[data-mood=offline]{filter:saturate(.25);opacity:.6}.bot-character[data-mood=happy] .eyes-open{display:none}.bot-character[data-mood=happy] .eyes-happy,.bot-character[data-mood=happy] .happy-spark{display:block}.bot-character[data-mood=happy] .character-body{animation:orb-celebrate 2.5s ease-in-out infinite}.happy-spark{animation:orb-spark 2.5s ease-in-out infinite;transform-origin:50px 50px}.bot-character[data-mood=error] .character-brows,.bot-character[data-mood=error] .mouth-worry{display:block}.bot-character[data-mood=error] .mouth-smile{display:none}.bot-character[data-mood=error] .character-body{animation:orb-concern 5s ease-in-out infinite}
@keyframes orb-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes orb-shadow{0%,100%{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.8);opacity:.07}}@keyframes orb-work{0%,100%{transform:translateY(-1px) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}@keyframes orb-orbit{from{transform:rotate(-25deg)}to{transform:rotate(335deg)}}@keyframes orb-focus{0%,100%{transform:translate(-1px,1px)}50%{transform:translate(2px,0)}}@keyframes orb-look{0%,100%{transform:translateX(0)}25%,40%{transform:translateX(-4px)}65%,80%{transform:translateX(4px)}}@keyframes orb-breathe{0%,100%{transform:translateY(3px) rotate(-6deg) scale(1,.97)}50%{transform:translateY(1px) rotate(-6deg) scale(1.025,1)}}@keyframes orb-dream{0%{opacity:0;transform:translate(-2px,5px)}30%{opacity:.7}100%{opacity:0;transform:translate(3px,-9px)}}@keyframes orb-celebrate{0%,100%{transform:translateY(0)}18%{transform:translateY(-8px) rotate(-5deg)}32%{transform:translateY(-1px) rotate(3deg)}45%{transform:translateY(-4px)}60%{transform:translateY(0)}}@keyframes orb-spark{0%,60%,100%{opacity:0;transform:scale(.9)}20%,35%{opacity:.7;transform:scale(1)}}@keyframes orb-concern{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(2deg) translateY(-2px)}}
body.motion-paused .bot-character *,body.motion-paused .streaming:after{animation:none!important}body.motion-paused .sleep-z,body.motion-paused .happy-spark{opacity:.6}body.motion-paused .bot-character[data-mood=sleeping] .character-body{transform:rotate(-6deg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}body:not(.motion-enabled) .bot-character *, .streaming:after{animation:none!important}.sleep-z,.happy-spark{opacity:.6}}
.bot-character[data-motion-ready] .character-body,.bot-character[data-motion-ready] .character-shadow{animation-duration:var(--motion-body);animation-delay:var(--motion-phase)}
.bot-character[data-motion-ready] .character-face{animation-duration:var(--motion-face);animation-delay:var(--motion-phase)}
.bot-character[data-motion-ready] .character-orbit{animation-duration:var(--motion-orbit);animation-delay:var(--motion-phase);animation-direction:var(--motion-direction)}
.bot-character[data-motion-ready] .sleep-z{animation-duration:var(--motion-dream);animation-delay:var(--motion-phase)}
.bot-character[data-motion-ready] .sleep-z.z-two{animation-delay:calc(var(--motion-phase) - 1.3s)}
.bot-character[data-motion-ready] .happy-spark{animation-duration:var(--motion-body);animation-delay:var(--motion-phase)}
.character-gesture{transform-origin:50px 85px;animation-duration:var(--gesture-duration,2s);animation-delay:var(--gesture-phase,0ms);animation-timing-function:ease-in-out;animation-iteration-count:1}
.bot-character[data-motion-action=tilt] .character-gesture{animation-name:gesture-tilt}
.bot-character[data-motion-action=stretch] .character-gesture{animation-name:gesture-stretch}
.bot-character[data-motion-action=nod] .character-gesture{animation-name:gesture-nod}
.bot-character[data-motion-action=think] .character-gesture{animation-name:gesture-think}
.bot-character[data-motion-action=settle] .character-gesture{animation-name:gesture-settle}
.bot-character[data-motion-action=dream] .character-gesture{animation-name:gesture-dream}
.bot-character[data-motion-action=bounce] .character-gesture{animation-name:gesture-bounce}
.bot-character[data-motion-action=wiggle] .character-gesture{animation-name:gesture-wiggle}
.bot-character[data-motion-action=glance] .character-face,.bot-character[data-motion-action=peek] .character-face{animation:gesture-glance var(--gesture-duration) ease-in-out var(--gesture-phase) 1}
.bot-character[data-motion-action=focus] .character-gesture{animation-name:gesture-focus}
@keyframes gesture-tilt{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(8deg)}}
@keyframes gesture-stretch{0%,100%{transform:scale(1)}40%{transform:scale(.96,1.055)}70%{transform:scale(1.025,.985)}}
@keyframes gesture-nod{0%,40%,80%,100%{transform:translateY(0)}20%,60%{transform:translateY(2px) rotate(2deg)}}
@keyframes gesture-think{0%,100%{transform:rotate(0)}30%,75%{transform:rotate(-7deg) translateY(-1px)}}
@keyframes gesture-settle{0%,100%{transform:translateY(0)}40%,65%{transform:translateY(2px) rotate(2deg)}}
@keyframes gesture-dream{0%,45%,65%,100%{transform:rotate(0)}50%{transform:rotate(-2deg)}58%{transform:rotate(1deg)}}
@keyframes gesture-bounce{0%,50%,100%{transform:translateY(0)}25%{transform:translateY(-5px)}75%{transform:translateY(-2px)}}
@keyframes gesture-wiggle{0%,100%{transform:rotate(0)}25%,65%{transform:rotate(-4deg)}45%,80%{transform:rotate(4deg)}}
@keyframes gesture-glance{0%,100%{transform:translateX(0)}25%,65%{transform:translateX(3px)}80%{transform:translateX(-1px)}}
@keyframes gesture-focus{0%,100%{transform:translateY(0)}35%,70%{transform:translateY(1px) scale(.99)}}