:root{color-scheme:light;font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:#7ec8ee}*{box-sizing:border-box}html,body,main{margin:0;width:100%;height:100%;overflow:hidden}main{position:relative;background:linear-gradient(180deg,#b7e3f8 0%,#82cbef 45%,#5cb0e3 100%)}#avatar{display:block;width:100%;height:100%;outline:none;cursor:grab;touch-action:none}#avatar.dragging{cursor:grabbing}#notice{position:absolute;bottom:max(3vh,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 40px);width:max-content;color:#12384a;font-size:12px;line-height:1.9;font-weight:400;letter-spacing:1px;text-align:center;opacity:0;transition:opacity .6s;pointer-events:none;text-shadow:0 1px 6px #ffffffaa;margin:0;z-index:5}#notice.visible{opacity:.9}
#dialogue{position:absolute;right:24px;bottom:24px;width:min(360px,calc(100vw - 48px));height:min(390px,48vh);display:flex;flex-direction:column;border:none;background:none;box-shadow:none;z-index:4}#dialogue header{height:40px;flex:none;display:flex;align-items:center;gap:9px;padding:0 4px;color:#f2f5f0;font-size:13px;text-shadow:0 1px 6px #000c}#dialogue header i{width:7px;height:7px;border-radius:50%;background:#769b7c;box-shadow:0 0 12px #85b78d}#messages{padding:14px 14px 22px;overflow:auto;scrollbar-width:thin;scrollbar-color:#ffffff25 transparent}.message{display:flex;flex-direction:column;margin:0 0 13px}.message.user{align-items:flex-end}.message.assistant{align-items:flex-start}.message small{font-size:9px;color:#dfe7ddcc;margin:0 7px 4px;text-shadow:0 1px 4px #000c}.bubble{max-width:86%;padding:9px 12px;border-radius:13px;font-size:13px;line-height:1.65;color:#fff;text-shadow:0 1px 4px #000a;background:#101616a6;overflow-wrap:anywhere;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.user .bubble{color:#fff;background:#558a58b3;border-bottom-right-radius:4px}.assistant .bubble{border-bottom-left-radius:4px}.empty-chat{font-size:11px;line-height:1.8;color:#14404fd9;text-shadow:0 1px 4px #ffffffaa;text-align:center;margin:38% auto 0;max-width:220px}
#pose-panel{position:absolute;left:24px;bottom:24px;width:min(390px,32vw);aspect-ratio:4/3;border-radius:18px;overflow:hidden;border:1px solid #ffffff22;background:#0c1211;box-shadow:0 18px 65px #0007;z-index:4}#pose-panel[hidden]{display:none}#camera,#pose-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}#pose-overlay{pointer-events:none}#pose-score{position:absolute;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;align-items:end;gap:10px;padding:9px 11px;border-radius:10px;background:#0d1513bd;backdrop-filter:blur(8px)}#pose-score strong{font-size:18px;color:#dbe8d8;font-weight:500}#pose-score span{font-size:9px;line-height:1.5;text-align:right;color:#d6ddd3b8;max-width:180px}
@media(max-width:760px){#dialogue{right:12px;bottom:12px;width:min(310px,calc(100vw - 24px));height:34vh;border-radius:14px}#pose-panel{left:12px;top:12px;bottom:auto;width:min(230px,54vw);border-radius:14px}#notice{bottom:48vh;font-size:10px}.bubble{font-size:11px}#pose-score{padding:6px 8px;bottom:7px;left:7px;right:7px}#pose-score strong{font-size:13px}#pose-score span{font-size:8px}}
@media(prefers-reduced-motion:reduce){#notice{transition:none}}
#voice-status{margin:0;padding:6px 4px;color:#f2f7f2;font-size:11px;line-height:1.6;flex:none;text-shadow:0 1px 4px #000c}
#character-status{position:absolute;top:24px;left:50%;transform:translateX(-50%);color:#14404f;font-size:12px;pointer-events:none;text-shadow:0 1px 6px #ffffffaa}
#pose-panel{left:auto;right:24px;top:24px;bottom:auto;width:min(390px,32vw);aspect-ratio:4/3}
#camera,#pose-overlay{object-fit:contain}
#pose-score{bottom:auto;top:10px;align-items:center}
#pose-score strong{white-space:nowrap;font-size:24px}
#pose-angles{position:absolute;bottom:0;left:0;right:0;padding:9px 12px;background:#0d1513dc;color:#e0ecdc;font-size:11px;line-height:1.8;pointer-events:none}
@media(max-width:760px){#pose-panel{left:auto;right:10px;top:10px;width:min(210px,48vw)}#pose-score{top:5px;padding:4px 6px;gap:4px}#pose-score strong{font-size:15px}#pose-score span{font-size:8px}#pose-angles{font-size:9px;padding:4px 6px;line-height:1.4}}

/* 右上角：天气 / 日期 / 时间 */
#hud{position:absolute;top:20px;left:24px;text-align:left;color:#0f3242;z-index:6;pointer-events:none;text-shadow:0 1px 8px #ffffff88}
#hud-time{font-size:26px;font-weight:300;letter-spacing:2px;line-height:1.2}
#hud-date{font-size:12px;color:#1d4a5fd9;margin-top:3px;letter-spacing:1px}
#hud-weather{font-size:12px;color:#1d4a5fd9;margin-top:2px;letter-spacing:1px;min-height:14px}
/* 左侧：语音提示（用户参考） */
#hints{position:absolute;left:24px;top:108px;transform:none;max-width:250px;padding:10px 14px;border-radius:12px;background:#ffffff52;border:1px solid #ffffff66;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#0f3242;z-index:4;pointer-events:none}
#hints h2{margin:0 0 5px;font-size:10px;font-weight:600;color:#1a5a74;letter-spacing:3px}
#hints p{margin:5px 0;font-size:10px;line-height:1.75;color:#14404fd9}
@media(max-width:760px){
#hud{top:10px;left:12px}#hud-time{font-size:18px}#hud-date,#hud-weather{font-size:10px}
#hints{left:12px;top:66px;transform:none;max-width:min(200px,52vw);padding:7px 10px;border-radius:10px}
#hints h2{font-size:9px;margin:0 0 3px}#hints p{font-size:8px;line-height:1.6;margin:3px 0}
}

/* 待机隐藏对话框，唤醒后出现 */
#dialogue{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
body[data-state="listening"] #dialogue,body[data-state="thinking"] #dialogue,body[data-state="speaking"] #dialogue{opacity:1;visibility:visible}

/* 打拳状态：左下角数字人背面视角（透明背景，只渲染角色） */
#backview{position:absolute;left:24px;bottom:24px;width:min(280px,28vw);aspect-ratio:3/4;z-index:4;pointer-events:none}
#backview[hidden]{display:none}
/* 右下角：检测得分卡（位于对话框上方） */
#final-score{position:absolute;right:24px;bottom:calc(24px + min(390px,48vh) + 12px);z-index:5;min-width:190px;padding:12px 16px;border-radius:14px;background:#0d2b3fb8;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 10px 40px #0003}
#final-score[hidden]{display:none}
#final-score strong{display:block;font-size:32px;font-weight:600;color:#ffd966;line-height:1.15}
#final-score span{display:block;font-size:11px;color:#cfe3ef;margin-top:2px;letter-spacing:1px}
#final-score em{display:block;font-style:normal;font-size:11px;line-height:1.6;color:#ffe9a8;margin-top:6px;max-width:230px}
@media(max-width:760px){
#backview{left:12px;bottom:12px;width:min(170px,38vw)}
#final-score{right:12px;bottom:calc(12px + 34vh + 10px);min-width:150px;padding:8px 12px}
#final-score strong{font-size:24px}#final-score em{font-size:10px}
}

/* 右下角：中英文唤醒词提示（白色文字，唤醒后隐藏、对话框出现） */
#wake-hint{position:absolute;right:28px;bottom:28px;text-align:right;z-index:3;pointer-events:none;color:#fff;text-shadow:0 1px 10px #0b2b3db3,0 0 4px #0b2b3d80;transition:opacity .6s ease;opacity:.95}
#wake-hint small{display:block;font-size:9px;letter-spacing:3px;color:#ffffffb8;margin-bottom:6px}
#wake-hint strong{display:block;font-size:clamp(20px,2.6vw,28px);font-weight:500;letter-spacing:5px;line-height:1.3}
#wake-hint span{display:block;font-size:clamp(12px,1.6vw,16px);letter-spacing:2px;margin-top:6px;color:#ffffffe0}
body[data-state="listening"] #wake-hint,body[data-state="thinking"] #wake-hint,body[data-state="speaking"] #wake-hint{opacity:0}
@media(max-width:760px){#wake-hint{right:16px;bottom:16px}#wake-hint strong{letter-spacing:3px}}
