.xiaozhi{position:fixed;right:28px;bottom:87px;width:138px;height:146px;z-index:45;isolation:isolate;user-select:none}.xiaozhi[hidden],.xz-recall[hidden]{display:none!important}.xz-dog{border:0;background:none;padding:0;width:100%;height:100%;cursor:grab;touch-action:none;color:#263f50}.xz-dog svg{width:100%;height:127px;overflow:visible;filter:drop-shadow(0 8px 9px #07142322)}.xz-dog:active{cursor:grabbing}.xz-hide:focus-visible,.xz-recall:focus-visible{outline:2px solid #43bfff;outline-offset:4px}.xz-name{display:inline-block;font:700 10px Arial,sans-serif;letter-spacing:.12em;padding:4px 10px;background:#f4fbffed;border:1px solid #a9c9dc;border-radius:3px}.xz-name i{font-style:normal;font-size:7px;color:#1498ca;margin-left:4px}.xz-hide{position:absolute;right:0;top:0;z-index:2;width:25px;height:25px;border:1px solid #c3d7e3;background:#f4fbff;color:#244658;border-radius:50%;cursor:pointer;font:16px Arial,sans-serif;opacity:0;transition:opacity .2s}.xiaozhi:hover .xz-hide,.xz-hide:focus-visible{opacity:1}.xz-bubble{position:absolute;bottom:calc(100% + 7px);right:0;min-width:170px;max-width:215px;background:#f4fbff;color:#203b4e;padding:12px 15px;border:1px solid #a8d7ed;border-radius:12px 12px 3px 12px;font:12px/1.65 Arial,sans-serif;box-shadow:0 7px 24px #0c223522;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .2s,transform .2s}.is-chatting .xz-bubble{opacity:1;transform:none}.xz-recall{position:fixed;left:18px;bottom:18px;z-index:45;border:1px solid #b1c9da;background:#f5fbff;color:#254a61;border-radius:4px;padding:10px 13px;font:700 10px Arial,sans-serif;cursor:pointer;box-shadow:0 3px 12px #0c22351c}.xz-head{transform-origin:80px 77px;animation:xz-curious 9s ease-in-out infinite}.xz-body{transform-origin:85px 141px;animation:xz-breathe 3.6s ease-in-out infinite}.xz-eyes{filter:drop-shadow(0 0 4px #5dccff) drop-shadow(0 0 7px #31b6ff);transform-origin:80px 62px;animation:xz-blink 6s infinite}.xz-tail{transform-origin:130px 96px;animation:xz-wag 3s ease-in-out infinite}.is-dragging .xz-body{animation:none;transform:rotate(-5deg)}.is-dragging .xz-shadow{opacity:0}.xiaozhi[data-action=hello] .xz-body{animation:xz-hop .5s ease-in-out 3}.xiaozhi[data-action=tilt] .xz-head{animation:xz-tilt 1.1s ease-in-out 2}.xiaozhi[data-action=happy] .xz-body{animation:xz-hop .4s ease-in-out 4}.is-chatting .xz-tail{animation:xz-wag .3s ease-in-out infinite}
@keyframes xz-breathe{50%{transform:translateY(-2px)}}@keyframes xz-curious{0%,35%,65%,100%{transform:rotate(0)}45%,55%{transform:rotate(7deg)}}@keyframes xz-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}@keyframes xz-wag{50%{transform:rotate(15deg)}}@keyframes xz-hop{50%{transform:translateY(-9px) rotate(-2deg)}}@keyframes xz-tilt{50%{transform:rotate(-13deg)}}
@media(max-width:600px){.xiaozhi{width:106px;height:118px;right:12px;bottom:80px}.xz-dog svg{height:99px}.xz-hide{width:23px;height:23px}.xz-bubble{min-width:155px;font-size:11px}.xz-recall{left:12px;bottom:17px}}@media(prefers-reduced-motion:reduce){.xiaozhi *{animation:none!important;transition:none!important}}

/* Recall belongs to the same control family as the sound dock. */
.xz-recall{display:flex;align-items:center;gap:9px;left:20px;bottom:17px;padding:12px 15px;background:#10191e;color:#f4efdf;border:1px solid #f1f5e6;border-radius:0;box-shadow:3px 3px 0 #caff3e;font:700 11px var(--mono);letter-spacing:.02em;transition:transform .2s,box-shadow .2s}
.xz-recall svg{width:23px;height:22px;color:#caff3e;flex:none}.xz-recall small{font:8px var(--mono);color:#d4dfcc;letter-spacing:.07em}.xz-recall>span:last-child{margin-left:5px;font-size:13px}.xz-recall:hover{transform:translate(-1px,-2px);box-shadow:4px 5px 0 #caff3e}.xz-recall:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #caff3e}
body[data-world=portal] .xz-recall{border-color:#b4c8d3;box-shadow:3px 3px 0 #93afbd}body[data-world=portal] .xz-recall svg{color:#b1ceda}
@media(max-width:600px){.xz-recall{left:17px;bottom:14px;padding:9px 12px;gap:7px;font-size:9px}.xz-recall svg{width:19px;height:19px}.xz-recall small{display:none}}
@media(prefers-reduced-motion:reduce){.xz-recall{transition:none}}

.xz-dog,.xz-dog:focus,.xz-dog:focus-visible{outline:none;border:0;box-shadow:none;-webkit-tap-highlight-color:transparent}.xz-dog:focus-visible .xz-eyes{stroke:#b4efff;filter:drop-shadow(0 0 6px #54cdff) drop-shadow(0 0 10px #31b6ff)}

.xz-hide{pointer-events:none}.xiaozhi:hover .xz-hide,.xz-hide:focus-visible{pointer-events:auto}
@media(hover:none){.xiaozhi.is-chatting .xz-hide{opacity:1;pointer-events:auto}}
