:root{color:#385a73;font-synthesis:none;--line:#dfebf2;--blue:#4b8eb4;--ink:#365b74;background:#eef5fa;font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;transition:background .2s,transform .2s,border-color .2s}button:hover{background:#eef6fc;border-color:#acd0e3}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #8ac5e6}button:disabled{opacity:.55;cursor:wait}a{text-decoration:none}header{background:#f8fbfdc9;border-bottom:1px solid #e0ebf2;justify-content:space-between;align-items:center;height:90px;padding:0 44px;display:flex}.brand{letter-spacing:4px;align-items:center;gap:13px;font-size:22px;display:flex}.brand-mark{letter-spacing:0;color:#fff;background:linear-gradient(140deg,#82bdd9,#b9afd4);border-radius:16px 16px 16px 4px;place-items:center;width:45px;height:45px;font-size:30px;display:grid}.brand small{letter-spacing:2.4px;color:#819cac;margin-top:6px;font-size:8px;display:block}.top-actions{color:#8297a5;align-items:center;gap:26px;font-size:11px;display:flex}#status:before{content:"";background:#91b8a5;border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}main{grid-template-columns:minmax(0,1fr) 330px;max-width:1600px;min-height:calc(100dvh - 136px);margin:auto;display:grid}.stage{background:radial-gradient(at 48% 38%,#fff 0%,#f3f9fd 38%,#e1eff8 80%,#dae7f4 100%);min-height:720px;position:relative;overflow:hidden}.stage:after{content:"";pointer-events:none;background:radial-gradient(at 50% 95%,#bbc5e42e,#0000 50%);position:absolute;inset:0}.stage canvas{z-index:2;touch-action:pan-y;width:100%;height:100%;position:absolute;inset:0}.stage-label{letter-spacing:3px;color:#91aaba;z-index:3;font-size:9px;position:absolute;top:32px;left:44px}.stage-label i{color:#b7a6c9;margin-left:13px;font-style:normal}.orbit{pointer-events:none;border:1px solid #bed5e850;border-radius:50%;position:absolute}.orbit-a{width:650px;height:650px;top:70px;left:calc(50% - 325px)}.orbit-b{border-style:dashed;border-color:#c0d3e42b;width:770px;height:770px;top:10px;left:calc(50% - 385px)}.stage-caption{z-index:3;pointer-events:none;position:absolute;bottom:84px;left:44px}.eyebrow{letter-spacing:1.8px;color:#91a5b3;font-size:9px}.stage-caption h1{letter-spacing:9px;margin:13px 0;font-size:32px;font-weight:500}.stage-caption h1 span{letter-spacing:4px;color:#91a4b4;margin-top:10px;font-size:10px;display:block}.stage-caption p{color:#8a9eac;letter-spacing:1px;font-size:11px}.stage-tools{z-index:4;white-space:nowrap;gap:7px;display:flex;position:absolute;bottom:25px;left:50%;transform:translate(-50%)}.stage-tools button{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#6c8b9f;background:#fffb;border-color:#dce8f3;padding:9px 14px;font-size:11px}.stage-tools button[aria-pressed=true]{background:#deedf8}.stage.night{background:radial-gradient(at 48% 35%,#52627d,#293a56 70%,#202e46)}.stage.night .stage-caption,.stage.night .stage-caption p,.stage.night .stage-label{color:#dce5f5}.stage.clear{background:repeating-conic-gradient(#edf0f3 0% 25%,#fff 0% 50%) 0 0/20px 20px}.stage:fullscreen{min-height:100dvh}.stage:fullscreen .stage-caption{bottom:90px}.stage:fullscreen .stage-tools{bottom:25px}aside{border-left:1px solid var(--line);z-index:5;background:#fafcfe;flex-direction:column;gap:0;padding:30px 27px 24px;display:flex}.panel-heading h2{letter-spacing:3px;margin:11px 0;font-size:23px;font-weight:500}.panel-heading p{color:#9aabb8;margin:0 0 27px;font-size:11px}.live-dot{background:#9bc3b6;border-radius:50%;width:6px;height:6px;margin:0 0 3px 12px;display:inline-block}.control-section{border-top:1px solid var(--line);margin-bottom:21px;padding-top:19px}.section-title{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-title h3{letter-spacing:1px;margin:0;font-size:12px;font-weight:500}.section-title>span{color:#9aacb8;font-size:10px}.expressions{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.expressions button{color:#8298a8;background:#f5f8fc;border:1px solid #0000;padding:9px 3px;font-size:11px}.expressions button[aria-pressed=true]{color:#397fa8;background:#e1f0fa;border-color:#bad9eb}.text-button{color:#9cafba;background:0 0;border:0;padding:0;font-size:10px}.toggle-row{justify-content:space-between;align-items:center;margin:14px 0 0;font-size:11px;display:flex}.toggle-row small{color:#a2b1bd;margin-top:5px;font-size:9px;display:block}input[role=switch]{appearance:none;cursor:pointer;background:#dbe4eb;border-radius:20px;flex-shrink:0;width:30px;height:17px;position:relative}input[role=switch]:before{content:"";background:#fff;border-radius:50%;width:11px;height:11px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #65819820}input[role=switch]:checked{background:#8ab6ce}input[role=switch]:checked:before{transform:translate(13px)}.pose-controls>label{color:#869cab;margin:13px 0;font-size:10px;display:block}.pose-controls output{float:right;color:#93aab9;font-variant-numeric:tabular-nums;font-size:10px}.pose-controls input{accent-color:#80b2ce;width:100%;height:3px;margin-top:12px;display:block}.gesture-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.gesture-row button{color:#7f97a9;background:#f8fafd;font-size:10px}.export-area{margin-top:auto;padding-top:2px}.primary{color:#fff;background:#648fae;border-color:#648fae;justify-content:space-between;width:100%;padding:13px 15px;font-size:11px;display:flex;box-shadow:0 5px 12px #658ca31c}.primary:hover{background:#527f9f;border-color:#527f9f}.primary span{color:#d7e9f6;font-size:9px}.export-row{justify-content:space-between;margin-top:11px;display:flex}.export-row button{color:#8d9fac;background:0 0;border:0;padding:5px 0;font-size:10px}.export-area p{color:#afbdc7;margin:16px 0 0;font-size:9px}footer{border-top:1px solid var(--line);color:#97aab8;letter-spacing:.3px;background:#f7fafc;justify-content:space-between;align-items:center;height:46px;padding:0 44px;font-size:9px;display:flex}footer b{letter-spacing:2px;margin-right:8px;font-size:8px;font-weight:500}kbd{color:#8c9ead;border:1px solid #dae4ed;border-radius:3px;margin:0 3px 0 8px;padding:2px 5px;font:9px inherit}.error{z-index:6;color:#a05c6c;font-size:13px;position:absolute;top:70px;left:25px;right:25px}.error:empty,.reduced .orbit{display:none}@media (width>=1200px) and (height>=900px){main{min-height:calc(100dvh - 136px)}aside{gap:8px;padding-top:42px}.stage-caption{bottom:110px;left:58px}}@media (width<=900px){header{height:72px;padding:0 20px}.brand{font-size:19px}.brand small{font-size:7px}main{grid-template-columns:minmax(0,1fr) 290px}.stage{min-height:700px}aside{padding:24px 20px}.stage-caption{bottom:80px;left:22px}.stage-caption h1{font-size:24px}.top-actions #status{display:none}.stage-label{left:22px}footer{padding:0 20px}footer>span:last-child{display:none}}@media (width<=650px){header{padding:0 16px}.top-actions{gap:6px;font-size:9px}main{flex-direction:column;display:flex}.stage{height:72dvh;min-height:540px}.stage-caption{bottom:80px;left:20px}.stage-caption p,.stage-caption .eyebrow{display:none}.stage-caption h1{font-size:24px}.stage-label{top:22px}aside{border-left:0;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0 20px;padding:24px 20px;display:grid}.panel-heading,.export-area{grid-column:1/-1}.panel-heading p{margin-bottom:18px}.pose-controls{grid-column:1/-1}.pose-controls>label{width:30%;margin-right:3%;display:inline-block}.expressions{gap:5px}.expressions button{font-size:10px}.toggle-row small{font-size:8px}.control-section{margin-bottom:18px}.export-area{margin-top:0}footer{height:42px;padding:0 20px;font-size:8px}}@media (width>=651px){main{height:calc(100dvh - 136px);min-height:700px}.stage{min-height:0}aside{scrollbar-width:thin;scrollbar-color:#cfdfeb transparent;overflow-y:auto}.panel-heading,.control-section,.export-area{flex-shrink:0}}@media (width>=651px) and (height<=1100px){aside{gap:0;padding:24px 22px 20px}.panel-heading p{margin-bottom:20px}.panel-heading h2{margin:9px 0}.control-section{margin-bottom:14px;padding-top:14px}.section-title{margin-bottom:10px}.expressions button{padding:8px 3px}.toggle-row{margin-top:10px}.pose-controls>label{margin:10px 0}.gesture-row{margin-top:14px}}.pose-controls input[type=range]{appearance:none;cursor:pointer;background:#d9e6ef;border-radius:4px}.pose-controls input[type=range]::-webkit-slider-thumb{appearance:none;background:#81b2ce;border:2px solid #f8fcff;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 3px #829ead35}.interaction-hint{z-index:3;letter-spacing:.5px;color:#6b94af;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb0;border:1px solid #d6e6f0;border-radius:20px;padding:7px 14px;font-size:11px;position:absolute;bottom:72px;left:50%;transform:translate(-50%)}.touch-feedback{z-index:4;color:#587e9a;opacity:0;pointer-events:none;white-space:nowrap;background:#fffffff0;border:1px solid #cfdfef;border-radius:16px 16px 16px 4px;padding:13px 20px;font-size:13px;transition:opacity .15s,transform .15s;position:absolute;top:13%;left:50%;transform:translate(-50%,8px);box-shadow:0 6px 30px #6590b51a}.touch-feedback.visible{opacity:1;transform:translate(-50%)}.stage.touch-pulse .orbit-a{animation:.7s ease-out touch-glow}.stage.night .interaction-hint{color:#d4e5f5;background:#293a56d9;border-color:#6e8aa5}.stage.night .touch-feedback{background:#f3f8fff0}@keyframes touch-glow{0%{border-color:#90bad9;box-shadow:0 0 #9cc8e240}to{border-color:#bed5e850;box-shadow:0 0 0 24px #9cc8e200}}@media (width<=650px){.interaction-hint{padding:6px 10px;font-size:9px;bottom:69px}.touch-feedback{padding:10px 14px;font-size:11px;top:9%}}@media (prefers-reduced-motion:reduce){.stage.touch-pulse .orbit-a{animation:none}}.stage{overflow:clip}.interaction-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.interaction-actions button{color:#7895a9;background:#f2f7fb;border-color:#0000;padding:8px 2px;font-size:10px}.interaction-actions button[aria-pressed=true]{color:#9e81ad;background:#f1e8f5;border-color:#decde8}.interaction-hint{text-overflow:ellipsis;max-width:94%;overflow:hidden}.touch-feedback{white-space:normal;text-align:center;max-width:90%}.stage-column{flex-direction:column;min-width:0;min-height:0;display:flex}.stage-column>.stage{flex:1;min-height:0}.response-strip{border-top:1px solid var(--line);background:#f8fbfd;flex-shrink:0;align-items:center;gap:16px;min-height:64px;padding:12px 28px;display:flex}.response-speaker{letter-spacing:2px;color:#8cacbf;flex-shrink:0;font-size:9px}.response-strip .touch-feedback{opacity:1;min-width:0;max-width:none;box-shadow:none;text-align:left;white-space:normal;overflow-wrap:anywhere;color:#8a9eac;pointer-events:auto;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-size:12px;line-height:1.6;transition:color .15s;position:static;inset:auto;transform:none}.response-strip .touch-feedback.visible{color:#496f89;transform:none}@media (width<=650px){.stage-column{width:100%}.stage-column>.stage{flex:none;height:calc(100svh - 148px);min-height:360px;max-height:720px}.response-strip{gap:12px;min-height:60px;padding:10px 20px}.response-strip .touch-feedback{font-size:11px}}@media (width>=651px){main{min-height:420px}}.stage-column:fullscreen{background:#edf5fa;width:100vw;height:100dvh}.stage-column:fullscreen>.stage{flex:1;height:auto;min-height:0;max-height:none}.chat-panel{background:#f4f9fd;border:1px solid #d8e7f1;border-radius:14px;margin-bottom:18px;padding:14px}.chat-panel .section-title{align-items:flex-start;gap:10px}.chat-panel #chat-state{text-align:right;max-width:150px;line-height:1.5}.chat-log{scrollbar-width:thin;overflow-wrap:anywhere;flex-direction:column;gap:9px;max-height:160px;margin-bottom:12px;display:flex;overflow-y:auto}.chat-welcome{color:#8b9fad;padding:4px 0 8px;font-size:11px}.chat-message{max-width:95%;font-size:11px;line-height:1.7}.chat-message.user{background:#e3eff8;border-radius:10px 10px 2px;align-self:flex-end;padding:7px 10px}.chat-message.assistant{background:#fff;border:1px solid #e3edf4;border-radius:10px 10px 10px 2px;align-self:flex-start;padding:7px 10px}.chat-author{color:#8ba3b5;font-size:9px}.chat-message p{white-space:pre-wrap;margin:2px 0 0}.chat-panel textarea{resize:vertical;width:100%;min-height:58px;max-height:120px;color:var(--ink);background:#fff;border:1px solid #cfdfed;border-radius:9px;padding:10px;font:12px/1.6 inherit}.chat-controls{align-items:center;gap:6px;margin-top:9px;display:flex}.chat-controls label{white-space:nowrap;color:#8198a8;margin-right:auto;font-size:10px}.chat-controls input{accent-color:#729fb9;vertical-align:middle}.chat-controls button{padding:6px 8px;font-size:10px}.chat-controls #chat-send{color:#fff;background:#638eac;border-color:#638eac}.chat-note{color:#99adba;margin:10px 0 0;font-size:9px;line-height:1.6}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.response-strip .touch-feedback{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width<=650px){.chat-panel{grid-column:1/-1}.chat-log{max-height:180px}.chat-panel #chat-state{max-width:210px}}.memory-info{color:#7e97a9;margin-top:9px;font-size:10px;line-height:1.8}.memory-info summary{cursor:pointer}.memory-info p{margin:7px 0 0}.performance-state{color:#7d96a8;pointer-events:none;background:#f7fbffbf;border:1px solid #d8e6ef;border-radius:20px;padding:7px 12px;font-size:10px;position:absolute;top:28px;right:28px}.voice-tools{align-items:center;gap:9px;margin-top:12px;display:flex}.voice-tools button{white-space:nowrap;padding:6px 9px;font-size:10px}.voice-tools meter{flex:1;width:48px;min-width:25px;height:7px}.voice-tools button[aria-pressed=true]{background:#e3eff8;border-color:#abc8dd}.voice-state{color:#7f98aa;margin:8px 0 0;font-size:10px;line-height:1.7}.performance-demos{grid-template-columns:1fr 1fr;gap:7px;display:grid}.performance-demos button{padding:8px;font-size:11px}.performance-demos button:hover{background:#e6f1f9}@media (width<=650px){.performance-state{top:18px;right:18px}.voice-tools meter{max-width:100px}}
