/* The original figure stays intact. Transform the whole pose, never its joints. */
.robot-surface .lifts-robot{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.face-avatar.robot-surface{width:260px;height:350px;margin:24px auto 14px;transform:none;animation:none;isolation:isolate}
.companion-character.robot-surface{width:100px;height:138px;flex-basis:100px;background:none;border:0;overflow:visible}
.floating-companion{width:108px;height:152px;border-radius:26px;background:radial-gradient(ellipse at 50% 35%,#123d59de,#080b20f2 75%);transition:box-shadow .25s,border-color .25s}
.floating-companion .face-avatar.robot-surface{width:94px;height:125px;margin:3px 0 0;transform:none;flex:none}
.floating-companion:hover,.floating-companion:focus-visible{box-shadow:0 0 28px #00dcec30,0 12px 40px #0008}
.robot-frame{transform-origin:550px 332px;animation:bot-breathe 5s ease-in-out infinite}
.robot-head-art{transform:none;animation:none}
.robot-floor{transform-origin:550px 351px;animation:bot-floor 5s ease-in-out infinite}
.robot-surface[data-phase=listening] .robot-frame{animation:bot-listen 3s ease-in-out infinite}
.robot-surface[data-phase=listening] .robot-floor{stroke-width:3;opacity:1}
.robot-surface[data-phase=thinking] .robot-frame{animation:bot-think 4s ease-in-out infinite}
.robot-surface[data-phase=speaking] .robot-frame{animation:bot-dialogue 2.2s ease-in-out infinite}
.robot-surface[data-phase=speaking] .robot-floor{animation:bot-floor 1.4s ease-in-out infinite}
.robot-surface:hover .robot-frame,.floating-companion:hover .robot-frame,.robot-surface:focus-visible .robot-frame{animation:bot-greet 1.5s ease-in-out 2}
.robot-sparkles{opacity:0}.robot-surface[data-celebrate] .robot-sparkles{animation:bot-sparkle .8s ease-in-out 3}.robot-surface[data-celebrate] .robot-frame{animation:bot-cheer .8s ease-in-out 3}
.voice-stage{overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#14476844,transparent 55%),radial-gradient(ellipse at 80% 60%,#6f24a825,transparent 65%),linear-gradient(145deg,#071a2b,#130d28)}
.card{transition:border-color .25s,box-shadow .25s}.card:hover{border-color:#3b5575;box-shadow:0 12px 36px #0003}.areas button{transition:transform .2s,border-color .2s}.areas button:hover{transform:translateY(-3px);border-color:#5bbdcf}progress{transition:filter .3s}progress:hover{filter:brightness(1.15)}
@keyframes bot-breathe{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-3px) rotate(.5deg)}}
@keyframes bot-floor{0%,100%{transform:scaleX(1);opacity:.6}50%{transform:scaleX(.94);opacity:1}}
@keyframes bot-listen{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(-2deg) translateY(-2px)}}
@keyframes bot-think{0%,100%{transform:rotate(1deg)}50%{transform:rotate(2deg) translateY(-2px)}}
@keyframes bot-dialogue{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-3px) rotate(.7deg)}}
@keyframes bot-greet{0%,100%{transform:rotate(0)}35%{transform:rotate(-2deg) translateY(-3px)}70%{transform:rotate(2deg)}}
@keyframes bot-cheer{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px) rotate(-1deg)}}
@keyframes bot-sparkle{0%,100%{opacity:0}50%{opacity:1}}
@media(max-width:800px){.voice-stage .face-avatar.robot-surface{width:220px;height:295px;margin:16px auto 14px;transform:none}.companion-character.robot-surface{width:76px;height:104px;flex-basis:76px}.floating-companion{width:90px;height:132px}.floating-companion .face-avatar.robot-surface{width:78px;height:104px;margin:3px 0 0;transform:none}.floating-label{bottom:7px}}
@media(prefers-reduced-motion:reduce){.robot-surface .lifts-robot *,.floating-companion .lifts-robot *{animation:none!important;transition:none!important}.card,.areas button,.floating-companion{transition:none}.areas button:hover{transform:none}}

/* Alternate complete original views, never individual body fragments. */
.robot-surface{perspective:700px}.robot-surface .lifts-robot{transform-origin:50% 55%;animation:bot-depth 10s ease-in-out infinite}
.view-front{animation:bot-front-view 12s steps(1,end) infinite}.view-turned{opacity:0;animation:bot-turned-view 12s steps(1,end) infinite}
.robot-surface[data-phase=speaking] .view-front{animation:none;opacity:0}.robot-surface[data-phase=speaking] .view-turned{animation:none;opacity:1}
@keyframes bot-front-view{0%,74%,100%{opacity:1}75%,99%{opacity:0}}
@keyframes bot-turned-view{0%,74%,100%{opacity:0}75%,99%{opacity:1}}
@keyframes bot-depth{0%,100%{transform:rotateY(-9deg) rotateX(2deg)}50%{transform:rotateY(9deg) rotateX(-2deg)}}
@media(prefers-reduced-motion:reduce){.robot-surface .lifts-robot,.robot-surface .lifts-robot *{animation:none!important}.view-front{opacity:1!important}.view-turned{opacity:0!important}}
