/* One animated frame keeps the two facial expressions aligned. */
.studio-page .companion-portrait{position:relative;transform-origin:center;filter:drop-shadow(0 2px 5px #427c5c38)}
.companion-face{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;transition:opacity .12s ease}
.companion-face-smile{opacity:0}
#companion-launch{--yabao-smile:0}
#companion-launch.has-smile .companion-face-normal{opacity:calc(1 - var(--yabao-smile))}
#companion-launch.has-smile .companion-face-smile{opacity:var(--yabao-smile)}
#companion-launch:focus-visible{--yabao-smile:1;outline:2px solid #478bdb;outline-offset:3px}
@media(hover:hover) and (pointer:fine){#companion-launch:hover{--yabao-smile:1}}
.floating-companion.is-dragging #companion-launch{--yabao-smile:0}
.floating-companion:is(.is-paused,.is-dragging) .companion-float{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.companion-float{animation:none!important}.companion-face{transition:none}}
