.mascot-face{display:block;width:100%;height:100%;pointer-events:none}
.mascot-art{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:none}
.mascot-body{transform-box:view-box;transform-origin:60px 104px}
.mascot-eyes{transform-origin:60px 53px;animation:mascot-blink 7s infinite}
.mascot-think-mouth{display:none}
.mascot-arm{transform-box:view-box;transform-origin:22px 58px;transform:rotate(-5deg);transition:transform .55s ease}
.mascot-arm-left{animation:mascot-arm-rest 6s ease-in-out infinite}
.mascot-arm-right{animation:mascot-arm-rest 7s ease-in-out -2s infinite}
[data-mood=listening] .mascot-arm-right{animation:none;transform:rotate(15deg)}
[data-mood=thinking] .mascot-arm-right{animation:none;transform:rotate(8deg)}
[data-mood=curious] .mascot-arm-left{animation:mascot-explain 2.8s ease-in-out}
[data-mood=warm] .mascot-arm-right,[data-mood=pleased] .mascot-arm-right{animation:mascot-wave 2s ease-in-out}
[data-mood=thinking] .mascot-body{transform:rotate(-7deg)}
[data-mood=thinking] .mascot-eyes{transform:translate(3px,-2px);animation:none}
[data-mood=thinking] .mascot-smile{display:none}
[data-mood=thinking] .mascot-think-mouth{display:block}
[data-mood=listening] .mascot-body{transform:rotate(5deg)}
[data-mood=listening] .mascot-ring{opacity:.65;stroke-width:calc(3px + var(--voice-level,0)*5px);transform:scale(calc(1 + var(--voice-level,0)*.07));transform-origin:60px 57px}
[data-mood=happy] .mascot-body{animation:mascot-nod .7s ease 2}
.mascot-wave .mascot-arm-right{animation:mascot-wave 2s ease-in-out}
.mascot-wave .mascot-body,.mascot-dock.is-entering .mascot-body{animation:mascot-arrive .5s ease-out}
#smChatLauncher.mascot-launcher{width:80px!important;min-width:80px!important;height:80px!important;padding:0!important;border:0!important;border-radius:50%;background:transparent!important;box-shadow:none!important;animation:none!important;transform:none!important;filter:none}
#smChatLauncher.mascot-launcher::before{display:none!important}
#smChatLauncher.mascot-launcher .mascot-art{width:100%!important;height:100%!important;fill:none;stroke:none;stroke-width:0;animation:none!important}
#smChatLauncher.mascot-launcher:focus-visible{outline:2px solid #9a783f;outline-offset:3px}
.assistant-greeting.mascot-greeting{z-index:2147483401;width:min(260px,calc(100vw - 120px));padding:15px 33px 15px 16px;border:1px solid #d2bb90;border-radius:19px 19px 5px 19px;background:#fffaf0;box-shadow:0 8px 28px #20342d1c;animation:mascot-bubble .35s ease-out}
.mascot-greeting strong{font-size:11px;color:#68756c;font-weight:600;margin-bottom:5px}
.mascot-greeting .assistant-greeting-open>span{font-size:15px;font-weight:600;line-height:1.45}
.mascot-greeting .assistant-greeting-close{background:transparent;right:3px;top:3px;min-width:30px;min-height:30px;color:#68756c}
.mascot-dock{display:flex;align-items:center;gap:10px;min-height:84px;margin:0 0 6px;padding:0 2px;color:#20342d;font:13px/1.35 Arial,sans-serif;flex-shrink:0}
.mascot-dock[hidden],.mascot-dock [hidden]{display:none!important}
.mascot-dock #chatDictation{position:static;height:auto;display:flex;gap:5px;flex:none}
.mascot-dock #chatDictationButton{order:2;width:80px;height:80px;min-width:80px;border:0;border-radius:50%;padding:0;background:transparent;color:#315847;isolation:isolate;transition:width .2s,height .2s;opacity:1}
.mascot-dock #chatDictationButton:disabled{cursor:wait}
.mascot-dock .mascot-mic-badge{position:absolute;bottom:2px;right:0;width:27px;height:27px;border-radius:50%;background:#315847;color:white;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 2px 6px #20342d20}
.mascot-dock .speech-mic-icon{width:16px;height:16px}
.mascot-dock #chatDictationButton[aria-pressed=true] .mascot-mic-badge{background:#fffaf0;color:#315847;border-color:#315847}
.mascot-dock .speech-stop-icon{width:10px;height:10px}
.mascot-dock #chatDictationTimer{order:1;font-size:13px;font-weight:700}
.mascot-dock #chatDictationCancel{order:0;width:28px;min-width:28px;height:32px}
.mascot-dock-copy{flex:1;min-width:0}
.mascot-dock-title{display:block;font-size:13px;font-weight:700}
.mascot-dock-state{display:block;margin-top:3px;font-size:11px;color:#6c786f}
.mascot-dock-state:empty{display:none}
.mascot-dock .mascot-fold{flex:none;width:30px;height:32px;padding:0;border:1px solid #dce3dc;border-radius:10px;background:#f5f6f1;color:#65796b;font:20px Arial;cursor:pointer}
.mascot-fold:focus-visible{outline:2px solid #9a783f;outline-offset:2px}
.mascot-dock.is-compact{min-height:52px}
.mascot-dock.is-compact #chatDictationButton{width:48px;height:48px;min-width:48px}
.mascot-dock.is-compact .mascot-mic-badge{width:21px;height:21px}
.mascot-dock.is-compact .speech-mic-icon{width:12px;height:12px}
.mascot-dock.is-human:not([data-mood=listening]):not([data-mood=processing]) .mascot-face{filter:saturate(.65)}
body.has-mascot-dictation .speech-input-shell #messageInput,body.has-mascot-dictation .speech-input-shell.speech-active #messageInput{padding-right:12px!important}
.mascot-dock #chatDictationButton::after{left:auto;right:0}
@media(max-width:370px){.mascot-dock{gap:6px}.mascot-dock-state{font-size:10px}.mascot-dock[data-mood=listening] .mascot-dock-state{max-width:105px}}
@media(max-height:540px){.mascot-dock{min-height:46px;margin-bottom:2px}.mascot-dock #chatDictationButton{order:2;width:46px;height:46px;min-width:46px}.mascot-dock-state{display:none}.mascot-dock .mascot-mic-badge{width:22px;height:22px}.mascot-dock .speech-mic-icon{width:13px;height:13px}}
@keyframes mascot-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.12)}}
@keyframes mascot-arm-rest{0%,100%{transform:rotate(0deg)}50%{transform:rotate(2deg)}}
@keyframes mascot-wave{0%,100%{transform:rotate(-5deg)}25%,55%{transform:rotate(88deg)}40%,70%{transform:rotate(108deg)}}
@keyframes mascot-explain{0%,100%{transform:rotate(-5deg)}30%,60%{transform:rotate(65deg)}45%,75%{transform:rotate(38deg)}}
@keyframes mascot-nod{0%,100%{transform:rotate(0)}50%{transform:rotate(7deg) translateY(2px)}}
@keyframes mascot-arrive{from{transform:translateY(10px) scale(.92);opacity:0}to{transform:none;opacity:1}}
@keyframes mascot-bubble{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.mascot-art *,.mascot-dock.is-entering .mascot-body,.mascot-wave .mascot-body,.assistant-greeting.mascot-greeting{animation:none!important;transition:none!important}}

.mascot-greeting.is-left{border-radius:19px 19px 19px 5px}

.mascot-concern-mouth{display:none}
[data-mood=idle] .mascot-body,.mascot-launcher .mascot-body{animation:mascot-breathe 5.4s ease-in-out infinite}
[data-mood=listening] .mascot-body{animation:mascot-listen 3.6s ease-in-out infinite}
[data-mood=curious] .mascot-body{transform:rotate(-6deg)}
[data-mood=concerned] .mascot-smile{display:none}
[data-mood=concerned] .mascot-concern-mouth{display:block}
[data-mood=concerned] .mascot-body{transform:rotate(3deg)}
[data-mood=warm] .mascot-smile{stroke-width:3.5px}
[data-mood=pleased] .mascot-body{animation:mascot-nod 1s ease-in-out 2}
.mascot-dock-copy{text-align:left}
@keyframes mascot-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.986)}}
@keyframes mascot-listen{0%,100%{transform:rotate(4deg)}50%{transform:rotate(0deg) translateY(-1px)}}
@media(prefers-reduced-motion:reduce){.mascot-face,.mascot-art *{animation:none!important;transition:none!important}}

/* Choreography moves the character, never the microphone hit target. */
.mascot-motion{transform-box:view-box;transform-origin:60px 100px}
.mascot-shadow{transform-box:view-box;transform-origin:60px 124px}
.mascot-leg-left{transform-box:view-box;transform-origin:52px 94px}
.mascot-leg-right{transform-box:view-box;transform-origin:68px 94px}
.mascot-yawn-mouth,.mascot-cover-hand,.mascot-point-hand{display:none}
[data-action] .mascot-face{animation:none}
[data-action] .mascot-body{animation:none}
[data-action=wave] .mascot-arm-right{animation:mascot-wave 2.1s ease-in-out}
[data-action=nod] .mascot-motion{animation:mascot-hello-nod 1.3s ease-in-out}
[data-action=explain] .mascot-arm-left{animation:mascot-explain 2.6s ease-in-out}
[data-action=explain] .mascot-arm-right{animation:mascot-explain 2.2s ease-in-out .3s}
[data-action=comfort] .mascot-motion{animation:mascot-hello-nod 2.4s ease-in-out}
[data-action=comfort] .mascot-arm-right{animation:mascot-explain 2.4s ease-in-out}
[data-action=point] .mascot-arm-left{visibility:hidden}
[data-action=point] .mascot-point-hand{display:block;animation:mascot-point 2.5s ease-in-out}
[data-action=point] .mascot-eyes{animation:none;transform:translateX(-3px)}
[data-action=point] .mascot-mic-badge{animation:mascot-button-hint 1.1s ease-in-out 2}
[data-action=hop] .mascot-motion{animation:mascot-hop 1.8s ease-in-out}
[data-action=hop] .mascot-shadow{animation:mascot-hop-shadow 1.8s ease-in-out}
[data-action=hop] .mascot-arm-left,[data-action=hop] .mascot-arm-right{animation:mascot-hop-arms 1.8s ease-in-out}
[data-action=turn] .mascot-motion{animation:mascot-turn 2.3s ease-in-out}
[data-action=crouch] .mascot-motion{animation:mascot-crouch 2.7s ease-in-out}
[data-action=crouch] .mascot-leg-left{animation:mascot-tuck-left 2.7s ease-in-out}
[data-action=crouch] .mascot-leg-right{animation:mascot-tuck-right 2.7s ease-in-out}
[data-action=jog] .mascot-motion{animation:mascot-jog .4s ease-in-out 6}
[data-action=jog] .mascot-leg-left{animation:mascot-step-left .4s ease-in-out 6}
[data-action=jog] .mascot-leg-right{animation:mascot-step-right .4s ease-in-out 6}
[data-action=jog] .mascot-arm-left{animation:mascot-jog-arm-left .4s ease-in-out 6}
[data-action=jog] .mascot-arm-right{animation:mascot-jog-arm-right .4s ease-in-out 6}
[data-action=stretch] .mascot-motion{animation:mascot-stretch 3.2s ease-in-out}
[data-action=stretch] .mascot-arm-left,[data-action=stretch] .mascot-arm-right{animation:mascot-stretch-arm 3.2s ease-in-out}
[data-action=look] .mascot-eyes{animation:mascot-look 2.8s ease-in-out}
[data-action=look] .mascot-motion{animation:mascot-sway 2.8s ease-in-out}
[data-action=yawn] .mascot-smile,[data-action=yawn] .mascot-arm-right{visibility:hidden}
[data-action=yawn] .mascot-yawn-mouth,[data-action=yawn] .mascot-cover-hand{display:block;transform-origin:60px 73px;animation:mascot-yawn 4.2s ease-in-out}
[data-action=yawn] .mascot-eyes{animation:mascot-sleepy-eyes 4.2s ease-in-out}
[data-action=yawn] .mascot-motion{animation:mascot-sleepy-body 4.2s ease-in-out}
[data-mood=thinking] .mascot-leg-left{animation:mascot-foot-tap 2.4s ease-in-out infinite}
.mascot-paused .mascot-face,.mascot-paused .mascot-art *{animation-play-state:paused!important}
.mascot-dock.is-guiding .mascot-dock-copy{background:#fff8e9;border:1px solid #dbc69e;border-radius:14px;padding:9px 10px}
.mascot-dock.is-guiding .mascot-dock-title{color:#315847}
.mascot-dock-title{font-size:14px}
.mascot-dock-state{font-size:12px;line-height:1.4}
.mascot-greeting .mascot-greeting-hint{display:block;font-size:12px;line-height:1.45;color:#315847;margin-top:9px;font-weight:600}
.mascot-type{display:grid!important}
.mascot-type-ghost,.mascot-type-visual{grid-area:1/1;min-width:0}
.mascot-type-ghost{visibility:hidden}
.mascot-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes mascot-hello-nod{0%,100%{transform:none}45%{transform:rotate(5deg) translateY(2px)}}
@keyframes mascot-point{0%,100%{transform:translate(0,0)}30%,65%{transform:translate(-3px,-2px)}}
@keyframes mascot-button-hint{0%,100%{box-shadow:0 0 0 0 #b3945840}50%{box-shadow:0 0 0 7px #b3945820}}
@keyframes mascot-hop{0%,100%{transform:none}20%{transform:translateY(3px) scale(1.04,.94)}45%{transform:translateY(-14px) rotate(-5deg)}65%{transform:translateY(2px) scale(1.04,.95)}82%{transform:translateY(-3px)}}
@keyframes mascot-hop-shadow{0%,100%{transform:scaleX(1);opacity:.12}45%{transform:scaleX(.62);opacity:.06}}
@keyframes mascot-hop-arms{0%,100%{transform:rotate(-5deg)}40%,55%{transform:rotate(55deg)}}
@keyframes mascot-turn{0%,100%{transform:none}20%{transform:scaleX(.7) rotate(-5deg)}40%{transform:scaleX(-.1) rotate(2deg)}60%{transform:scaleX(-1) rotate(-3deg)}80%{transform:scaleX(.1) rotate(2deg)}}
@keyframes mascot-crouch{0%,100%{transform:none}30%,65%{transform:translateY(8px) scale(1.04,.91)}82%{transform:translateY(-2px)}}
@keyframes mascot-tuck-left{0%,100%{transform:none}30%,65%{transform:rotate(-50deg)}}
@keyframes mascot-tuck-right{0%,100%{transform:none}30%,65%{transform:rotate(50deg)}}
@keyframes mascot-jog{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}}
@keyframes mascot-step-left{0%,100%{transform:rotate(-24deg)}50%{transform:rotate(24deg)}}
@keyframes mascot-step-right{0%,100%{transform:rotate(24deg)}50%{transform:rotate(-24deg)}}
@keyframes mascot-jog-arm-left{0%,100%{transform:rotate(40deg)}50%{transform:rotate(-15deg)}}
@keyframes mascot-jog-arm-right{0%,100%{transform:rotate(-15deg)}50%{transform:rotate(40deg)}}
@keyframes mascot-stretch{0%,100%{transform:none}35%,65%{transform:rotate(7deg) scaleY(1.025)}}
@keyframes mascot-stretch-arm{0%,100%{transform:rotate(-5deg)}35%,65%{transform:rotate(120deg)}}
@keyframes mascot-look{0%,100%{transform:none}25%,40%{transform:translateX(-4px)}60%,75%{transform:translateX(4px)}}
@keyframes mascot-sway{0%,100%{transform:none}30%{transform:rotate(-3deg)}70%{transform:rotate(3deg)}}
@keyframes mascot-yawn{0%,100%{opacity:0;transform:scale(.6)}25%,75%{opacity:1;transform:scale(1)}}
@keyframes mascot-sleepy-eyes{0%,100%{transform:scaleY(1)}30%,70%{transform:scaleY(.18)}}
@keyframes mascot-sleepy-body{0%,100%{transform:none}35%,70%{transform:translateY(3px) rotate(-3deg)}}
@keyframes mascot-foot-tap{0%,65%,100%{transform:none}75%,90%{transform:rotate(-13deg)}}
@media(max-width:370px){.mascot-dock.is-guiding .mascot-dock-copy{padding:7px}.mascot-dock-title{font-size:12px}.mascot-dock-state{font-size:11px}}
@media(prefers-reduced-motion:reduce){.mascot-face,.mascot-art *,.mascot-mic-badge{animation:none!important;transition:none!important}}

/* Gold companion: mouth shapes cross-fade instead of snapping back to a grin. */
.mascot-flush{transition:opacity .8s ease}
.mascot-art :is(.mascot-smile,.mascot-neutral-mouth,.mascot-soft-mouth,.mascot-think-mouth,.mascot-concern-mouth,.mascot-surprise-mouth,.mascot-yawn-mouth){display:block;opacity:0;transition:opacity .65s ease,transform .65s ease;transform-origin:60px 72px}
[data-mood=idle] .mascot-neutral-mouth,[data-mood=neutral] .mascot-neutral-mouth,[data-mood=listening] .mascot-neutral-mouth,[data-mood=focused] .mascot-neutral-mouth,[data-mood=sleepy] .mascot-neutral-mouth{opacity:1}
[data-mood=warm] .mascot-soft-mouth,[data-mood=reassuring] .mascot-soft-mouth,[data-mood=embarrassed] .mascot-soft-mouth{opacity:1}
[data-mood=pleased] .mascot-smile{opacity:1}
[data-mood=thinking] .mascot-think-mouth,[data-mood=puzzled] .mascot-think-mouth{opacity:1}
[data-mood=concerned] .mascot-concern-mouth,[data-mood=sad] .mascot-concern-mouth,[data-mood=retry] .mascot-concern-mouth,[data-mood=angry] .mascot-concern-mouth{opacity:1}
[data-mood=curious] .mascot-surprise-mouth{opacity:1}
[data-mood=listening] .mascot-pupils{transform:translateY(-1px)}
[data-mood=thinking] .mascot-eyes{transform:none}
[data-mood=thinking] .mascot-pupils{transform:translate(2px,-3px)}
[data-mood=puzzled] .mascot-body{transform:rotate(-6deg)}
[data-mood=curious] .mascot-pupils{transform:translateY(-1px)}
[data-mood=sad] .mascot-pupils{transform:translateY(2px)}
[data-mood=sad] .mascot-body{transform:translateY(2px) rotate(-2deg)}
[data-mood=warm] .mascot-cheek,[data-mood=pleased] .mascot-cheek{opacity:.6}
[data-mood=embarrassed] .mascot-flush{opacity:.15}
[data-mood=embarrassed] .mascot-pupils{transform:translate(-2px,2px)}
[data-mood=embarrassed] .mascot-body{transform:rotate(4deg)}
[data-mood=angry] .mascot-flush{opacity:.32}
[data-mood=angry] .mascot-eyes{animation:none}
[data-mood=focused] .mascot-pupils{transform:translateY(1px)}
[data-mood=sleepy] .mascot-eyes{animation:none}
[data-mood=sleepy] .mascot-body{transform:translateY(2px)}
[data-action=yawn] .mascot-yawn-mouth{opacity:1}
[data-action=yawn] :is(.mascot-neutral-mouth,.mascot-soft-mouth,.mascot-think-mouth,.mascot-concern-mouth,.mascot-surprise-mouth){opacity:0}
/* Shoulder, wrist, stance and feet move independently with staggered timing. */
.mascot-hand{transform-box:view-box;transform-origin:13px 61px;transition:transform .6s ease}
.mascot-arm{transform:rotate(0deg)}
@keyframes mascot-arm-rest{0%,100%{transform:rotate(0deg)}50%{transform:rotate(2deg)}}
[data-mood=neutral] .mascot-body,[data-mood=focused] .mascot-body{animation:mascot-breathe 5.4s ease-in-out infinite}
[data-mood=sad] .mascot-arm,[data-mood=concerned] .mascot-arm{animation:none;transform:rotate(-4deg)}
[data-mood=angry] .mascot-arm{animation:none;transform:rotate(12deg)}
[data-mood=angry] .mascot-hand{transform:rotate(12deg)}
[data-mood=reassuring] .mascot-arm-right{animation:none;transform:rotate(10deg)}
[data-responding] .mascot-motion{animation:mascot-weight-shift 3.6s ease-in-out 2}
[data-responding] .mascot-arm-left{animation:mascot-speech-left 3.6s ease-in-out 2}
[data-responding] .mascot-arm-right{animation:mascot-speech-right 3.6s ease-in-out 2}
[data-responding] .mascot-hand-left{animation:mascot-wrist 3.6s ease-in-out 2}
[data-responding] .mascot-hand-right{animation:mascot-wrist 3.6s ease-in-out -.6s 2}
[data-responding] .mascot-leg-left{animation:mascot-stance-left 3.6s ease-in-out 2}
[data-responding] .mascot-leg-right{animation:mascot-stance-right 3.6s ease-in-out 2}
[data-responding=gentle] .mascot-arm-left{animation:mascot-soft-arm 3.6s ease-in-out 2}
[data-responding=gentle] .mascot-arm-right{animation:mascot-soft-arm 3.6s ease-in-out -.8s 2}
[data-responding=gentle] .mascot-motion{animation:mascot-soft-nod 3.6s ease-in-out 2}
[data-responding=gentle] .mascot-hand{animation:none;transform:rotate(-6deg)}
[data-responding=bright] .mascot-motion{animation:mascot-bright-bounce 3.6s ease-in-out 2}
[data-action=settle] .mascot-motion{animation:mascot-weight-shift 3.2s ease-in-out}
[data-action=settle] .mascot-leg-left{animation:mascot-stance-left 3.2s ease-in-out}
[data-action=settle] .mascot-leg-right{animation:mascot-stance-right 3.2s ease-in-out}
[data-action=breathe] .mascot-motion{animation:mascot-soft-nod 4.2s ease-in-out}
@keyframes mascot-speech-left{0%,100%{transform:rotate(0deg)}20%,35%{transform:rotate(16deg)}55%,70%{transform:rotate(2deg)}}
@keyframes mascot-speech-right{0%,100%{transform:rotate(0deg)}18%,32%{transform:rotate(2deg)}52%,68%{transform:rotate(20deg)}}
@keyframes mascot-soft-arm{0%,100%{transform:rotate(0deg)}30%,60%{transform:rotate(8deg)}}
@keyframes mascot-wrist{0%,100%{transform:rotate(0)}25%,60%{transform:rotate(-16deg)}45%,80%{transform:rotate(8deg)}}
@keyframes mascot-weight-shift{0%,100%{transform:none}30%{transform:translateX(-1px) rotate(-2deg)}70%{transform:translateX(1px) rotate(2deg)}}
@keyframes mascot-stance-left{0%,100%{transform:none}30%{transform:rotate(-2deg)}70%{transform:rotate(1deg)}}
@keyframes mascot-stance-right{0%,100%{transform:none}30%{transform:rotate(-1deg)}70%{transform:rotate(2deg)}}
@keyframes mascot-soft-nod{0%,100%{transform:none}45%{transform:translateY(1px) rotate(2deg)}}
@keyframes mascot-bright-bounce{0%,100%{transform:none}25%,65%{transform:translateY(-3px) rotate(-2deg)}45%,80%{transform:translateY(1px)}}
@media(prefers-reduced-motion:reduce){.mascot-art *{animation:none!important;transition:none!important}}

.mascot-forearm{transform-box:view-box;transform-origin:17px 71px;transition:transform .65s ease}
.mascot-palm,.mascot-fist{transition:opacity .35s ease}.mascot-fist{opacity:0}
[data-mood=angry] .mascot-palm{opacity:0}[data-mood=angry] .mascot-fist{opacity:1}
[data-mood=angry] .mascot-forearm{transform:rotate(120deg)}
[data-mood=thinking] .mascot-forearm-right{transform:rotate(125deg)}
[data-mood=listening] .mascot-forearm-right{transform:rotate(110deg)}
[data-mood=embarrassed] .mascot-forearm-left{transform:rotate(35deg)}
[data-responding] .mascot-forearm-left{animation:mascot-elbow-left 3.6s ease-in-out 2}
[data-responding] .mascot-forearm-right{animation:mascot-elbow-right 3.6s ease-in-out 2}
[data-responding=gentle] .mascot-forearm{animation:mascot-elbow-gentle 3.6s ease-in-out 2}
[data-mood=angry][data-responding] .mascot-forearm{animation:mascot-elbow-firm 3.6s ease-in-out 2}
@keyframes mascot-elbow-left{0%,100%{transform:rotate(0)}20%,35%{transform:rotate(65deg)}55%,70%{transform:rotate(6deg)}}
@keyframes mascot-elbow-right{0%,100%{transform:rotate(0)}18%,32%{transform:rotate(6deg)}52%,68%{transform:rotate(75deg)}}
@keyframes mascot-elbow-gentle{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(35deg)}}
@keyframes mascot-elbow-firm{0%,100%{transform:rotate(120deg)}35%,65%{transform:rotate(105deg)}}
@media(prefers-reduced-motion:reduce){.mascot-art *{animation:none!important;transition:none!important}}

/* Both arms rest beside the body; gestures are reserved for active expressions. */
:is([data-mood=neutral],[data-mood=idle]):not([data-responding]):not([data-action]) :is(.mascot-arm,.mascot-forearm,.mascot-hand){animation:none;transform:rotate(0deg)}

/* Expressions come from the eye contours and attached eyelashes, without eyebrows. */
.mascot-body,.mascot-eyes{transition:transform .45s ease}
.mascot-pupils,.mascot-cheek{transition:transform .65s ease,opacity .65s ease}
.mascot-eye{transform-box:view-box;transform-origin:44px 49px;transition:transform .65s ease}
.mascot-eye-contour{transition:d .5s ease}
[data-mood=listening] .mascot-eye{transform:scaleY(1.04)}
[data-mood=curious] .mascot-eye{transform:scale(1.06)}
:is([data-mood=thinking],[data-mood=puzzled]) .mascot-eye-left{transform:scaleY(.87) rotate(5deg)}
:is([data-mood=thinking],[data-mood=puzzled]) .mascot-eye-right{transform:rotate(-5deg)}
:is([data-mood=concerned],[data-mood=sad],[data-mood=retry],[data-mood=reassuring]) .mascot-eye-left{transform:rotate(-10deg) scaleY(.92)}
:is([data-mood=concerned],[data-mood=sad],[data-mood=retry],[data-mood=reassuring]) .mascot-eye-right{transform:rotate(10deg) scaleY(.92)}
:is([data-mood=warm],[data-mood=pleased],[data-mood=embarrassed]) .mascot-eye{transform:scaleY(.94)}
[data-mood=focused] .mascot-eye{transform:scaleY(.88)}
[data-mood=angry] :is(.mascot-eye-left .mascot-eye-contour,.mascot-eye-mask-left){d:path('M34 44Q44 45 54 49L54 57Q50 60 45 58Q40 57 36 59Q32 59 34 44Z')}
[data-mood=angry] :is(.mascot-eye-right .mascot-eye-contour,.mascot-eye-mask-right){d:path('M34 49Q44 45 54 44L54 57Q50 60 45 58Q40 57 36 59Q32 59 34 49Z')}
[data-mood=sleepy] .mascot-eye-contour{d:path('M34 50Q44 52 54 50L54 57Q50 60 45 58Q40 57 36 59Q32 59 34 50Z')}
@media(prefers-reduced-motion:reduce){.mascot-art *{animation:none!important;transition:none!important}}
/* Orange clock: no glow around the assistant. */
.minutka-launcher,.minutka-launcher:hover,.minutka-character,.minutka-header-help{filter:none!important}
.mascot-dial,.mascot-dial-numbers{pointer-events:none}

/* Same placement as the AI tab: a free-standing character above Send. */
.composer .composer__row{position:relative;overflow:visible}
.composer .mascot-composer-character{position:absolute;bottom:calc(100% - 4px);right:0;width:92px;height:78px;pointer-events:none;opacity:.78;background:transparent;border:0;box-shadow:none}
.composer .mascot-composer-character[hidden]{display:none!important}
.composer .mascot-composer-character .mascot-art{width:100%!important;height:100%!important;stroke:none;fill:none;stroke-width:0}
body.has-chat-assistant #messages{padding-bottom:88px}
#smChatLauncher.mascot-launcher{width:104px!important;min-width:104px!important;height:86px!important}
