/* Painted, articulated miniatures: complete heads, full collars and shoulder-overlap. */
.miniature-character{color:#9dc5fd;perspective:500px}.miniature-character>svg{overflow:visible}.mini-root{transform-origin:50px 96px;animation:mini-breathe var(--motion-body,5s) ease-in-out var(--motion-phase,0s) infinite}.mini-head{animation:mini-look calc(var(--motion-face,4s) * 1.7) ease-in-out var(--motion-phase,0s) infinite}.mini-arm-left{animation:mini-rest-left var(--motion-body,5s) ease-in-out var(--motion-phase,0s) infinite}.mini-arm-right{animation:mini-rest-right var(--motion-face,6s) ease-in-out var(--motion-phase,0s) infinite}.mini-face{opacity:0;transition:none}.mini-face-neutral{opacity:1}.mini-lid{animation:mini-blink var(--motion-blink,6s) steps(1,end) var(--motion-phase,0s) infinite}.miniature-character[data-mood=busy] .mini-face-neutral,.miniature-character[data-mood=waiting] .mini-face-neutral,.miniature-character[data-mood=error] .mini-face-neutral,.miniature-character[data-mood=happy] .mini-face-neutral,.miniature-character[data-mood=sleeping] .mini-face-neutral,.miniature-character[data-mood=offline] .mini-face-neutral{opacity:0}.miniature-character[data-mood=busy] .mini-face-focus,.miniature-character[data-mood=waiting] .mini-face-unsure,.miniature-character[data-mood=error] .mini-face-sad,.miniature-character[data-mood=happy] .mini-face-happy,.miniature-character[data-mood=sleeping] .mini-face-sleep,.miniature-character[data-mood=offline] .mini-face-sleep{opacity:1}.miniature-character:is([data-mood=sleeping],[data-mood=offline]) .mini-lid{animation:none;opacity:0}.miniature-character[data-mood=busy] .mini-arm-left{animation:mini-work-left var(--motion-body,1.8s) ease-in-out var(--motion-phase,0s) infinite}.miniature-character[data-mood=busy] .mini-arm-right{animation:mini-work-right calc(var(--motion-body,1.8s) * 1.13) ease-in-out var(--motion-phase,0s) infinite}.miniature-character[data-mood=busy] .mini-head{animation:mini-focus var(--motion-face,4s) ease-in-out var(--motion-phase,0s) infinite}.miniature-character[data-mood=waiting] .mini-head{animation:mini-question var(--motion-face,5s) ease-in-out var(--motion-phase,0s) infinite}.miniature-character[data-mood=happy] .mini-arm-right{animation:mini-wave var(--motion-body,3s) ease-in-out var(--motion-phase,0s) infinite}.miniature-character[data-mood=error] .mini-head{animation:mini-concern var(--motion-face,5s) ease-in-out var(--motion-phase,0s) infinite}.miniature-character:is([data-mood=sleeping],[data-mood=offline]) .mini-head{animation:none;transform:rotate(7deg) translateY(1px)}.miniature-character:is([data-mood=sleeping],[data-mood=offline]) .mini-arm{animation:none}.miniature-character[data-mood=offline]{filter:saturate(.4);opacity:.7}.mini-signal>*{opacity:0}.miniature-character[data-mood=sleeping] .mini-sleep-mark,.miniature-character[data-mood=happy] .mini-done-mark{opacity:.65}.miniature-character[data-motion-action=think] .mini-head{animation:mini-question var(--gesture-duration) ease-in-out var(--gesture-phase) 1}.miniature-character[data-motion-action=nod] .mini-head{animation:mini-focus var(--gesture-duration) ease-in-out var(--gesture-phase) 1}.miniature-character[data-motion-action=stretch] .mini-arm-left{animation:mini-stretch var(--gesture-duration) ease-in-out var(--gesture-phase) 1}
@keyframes mini-breathe{0%,100%{transform:translateY(0) scaleY(1) rotate(-1deg)}25%{transform:translateY(-.4px) scaleY(1.008) rotate(0deg)}50%{transform:translateY(0) scaleY(1) rotate(1deg)}75%{transform:translateY(-.4px) scaleY(1.008) rotate(0deg)}}
@keyframes mini-look{0%,100%{transform:rotate(0deg)}14%,30%{transform:translateX(-.6px) rotate(-3deg) skewX(2deg) scaleX(.95)}44%,52%{transform:rotate(0deg)}66%,82%{transform:translateX(.6px) rotate(3deg) skewX(-2deg) scaleX(.95)}}
@keyframes mini-focus{0%,100%{transform:rotate(-2deg)}35%,55%{transform:translateY(.7px) rotate(2deg) skewX(-1deg) scaleX(.99)}75%{transform:rotate(0deg)}}
@keyframes mini-question{0%,100%{transform:rotate(-2deg)}28%,62%{transform:rotate(3deg) skewX(1deg)}80%{transform:rotate(1deg)}}
@keyframes mini-concern{0%,100%{transform:translateY(.5px) rotate(-2deg)}50%{transform:translateY(.5px) rotate(-1deg)}}
@keyframes mini-rest-left{0%,100%{transform:rotate(0deg)}50%{transform:rotate(2deg)}}
@keyframes mini-rest-right{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(-3deg)}}
@keyframes mini-work-left{0%,100%{transform:rotate(-4deg)}30%{transform:rotate(-15deg) translateY(-.8px)}65%{transform:rotate(-8deg)}}
@keyframes mini-work-right{0%,100%{transform:rotate(7deg)}40%{transform:rotate(17deg) translateY(-1px)}70%{transform:rotate(11deg)}}
@keyframes mini-wave{0%,100%{transform:rotate(-4deg)}25%,65%{transform:rotate(-19deg)}45%,80%{transform:rotate(-10deg)}}
@keyframes mini-stretch{0%,100%{transform:rotate(0deg)}40%,65%{transform:rotate(18deg)}}
@keyframes mini-blink{0%,95.99%,99%,100%{opacity:0}96%,98.99%{opacity:1}}
.library-styles{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.library-styles [aria-pressed=true],.miniature-library [aria-pressed=true]{border-color:var(--accent);background:var(--raised)}.miniature-library{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.miniature-library button{display:flex;flex-direction:column;align-items:center;background:var(--paper);padding:14px 8px 16px;min-width:0}.miniature-library .bot-character{width:120px;height:130px}.miniature-library strong{font-size:14px}.miniature-library small{font-size:10px}.style-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.style-preview .miniature-character{width:125px;height:135px}.miniature-character .mini-face svg{overflow:hidden}#expression-preview{scroll-margin-top:25px}
@media(max-width:720px){.miniature-library{grid-template-columns:repeat(2,minmax(0,1fr))}.miniature-library .bot-character{width:110px;height:120px}.style-choices{grid-template-columns:1fr}.library-styles button{font-size:11px;padding:9px}}
@media(prefers-reduced-motion:reduce){.miniature-character *{animation:none!important;transition:none!important}.mini-lid{opacity:0!important}}
body.motion-paused .miniature-character *{animation:none!important;transition:none!important}body.motion-paused .mini-lid{opacity:0!important}
.miniature-character .mini-body>svg{width:40px;height:57px;overflow:hidden}.miniature-character .mini-shoulder svg,.miniature-character .mini-arm>svg{width:22px;height:33px;overflow:hidden}.miniature-character .mini-face>svg{width:48px;height:46px;overflow:hidden}
/* Stable joint anchoring and state transitions. */
.mini-pose{transform-origin:50px 55px;transition:transform 1s cubic-bezier(.22,.7,.3,1)}
.mini-bed{opacity:0;transition:opacity .5s}
.miniature-character[data-mood=sleeping] .mini-pose{transform:translate(0,20px) rotate(-78deg) scale(.83)}
.miniature-character[data-mood=sleeping] .mini-bed{opacity:.85}
.miniature-character[data-mood=sleeping] .mini-root{animation:mini-sleep-breathe 4s ease-in-out infinite}
.miniature-character[data-mood=sleeping] .mini-head{transform:rotate(2deg)}
.miniature-character.mini-waking .mini-pose{animation:mini-rise 1.4s cubic-bezier(.22,.7,.3,1) var(--wake-progress,0s) both}
@keyframes mini-rise{0%{transform:translate(0,20px) rotate(-78deg) scale(.83)}55%{transform:translateY(9px) rotate(-24deg) scale(.94)}82%{transform:translateY(-2px) rotate(3deg)}100%{transform:none}}
@keyframes mini-sleep-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.008)}}
.quick-customize{display:flex;gap:6px;padding:10px 0;border-top:1px solid var(--line,#273144)}.quick-customize button{display:flex;align-items:center;gap:6px;flex:1;padding:10px 8px;font-size:12px;background:transparent}.quick-customize svg,.customize-hub svg{width:20px;height:20px;flex-shrink:0}.customize-hub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}.customize-hub button{display:flex;align-items:center;gap:14px;text-align:left;padding:18px}.customize-hub span{display:grid;gap:6px}.customize-hub small{font-size:12px;color:var(--muted)}.sleep-demo{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.sleep-demo .bot-character{width:170px;height:170px}.sleep-demo p{color:var(--muted);font-size:13px}
@media(max-width:720px){.customize-hub{grid-template-columns:1fr}.sleep-demo .bot-character{width:130px;height:130px}.sleep-demo{gap:10px}}
.profile-skills{border:1px solid var(--line);border-radius:12px;padding:16px;margin:18px 0}.profile-skills label{display:flex;gap:8px;padding:7px;font-size:13px}.profile-skills p{font-size:12px;color:var(--muted)}.workspace-choose{display:flex;align-items:center;gap:6px;max-width:210px;overflow:hidden;text-overflow:ellipsis}.workspace-choose svg{width:17px;height:17px;flex-shrink:0}.library-activity{display:flex;align-items:center;gap:14px;margin:18px 0;font-size:13px}.library-activity select{padding:8px 12px;border-radius:10px;background:var(--paper);color:var(--text);border:1px solid var(--line)}

.miniature-character[data-mood=sleeping] .mini-sleep-mark{animation:mini-dream var(--motion-dream,4.5s) ease-out var(--motion-phase,0s) infinite}
.miniature-character[data-mood=sleeping] .mini-sleep-mark.z-two{animation-delay:calc(var(--motion-phase,0s) - 1.4s)}
.miniature-character[data-mood=sleeping] .mini-sleep-mark.z-three{animation-delay:calc(var(--motion-phase,0s) - 2.8s)}
@keyframes mini-dream{0%{opacity:0;transform:translate(0,4px)}20%,55%{opacity:.8}100%{opacity:0;transform:translate(3px,-10px)}}
