:root{color:#f5f6f6;font-synthesis:none;background:#858f9d;font-family:Inter,Microsoft YaHei,PingFang SC,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{min-width:320px;overflow:hidden}button{font:inherit;cursor:pointer}.scene{background:linear-gradient(#283b59 0%,#465064 25%,#8e8389 45%,#929eac 46%,#99a3b1 100%);position:fixed;inset:0}.scene canvas{touch-action:none;width:100%;height:100%;display:block}.fallback{color:#fff;place-items:center;height:100%;display:grid}.topbar{z-index:3;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;inset:16px 18px auto}.topbar>*{pointer-events:auto}.top-left{min-width:270px}.tabs{gap:8px;display:flex}.tabs button,.top-actions button{color:#f6f7f3;background:#15212fe8;border:1px solid #ffffff35;border-radius:7px;padding:12px 17px;font-size:14px;box-shadow:0 2px 12px #0002}.tabs button.active{background:#345f4d;border-color:#91b4a1}.top-left h1{text-shadow:0 1px 4px #213447;letter-spacing:.03em;margin:16px 0 5px;font-size:17px}.top-left p{color:#e2e8eb;margin:0;font-size:11px}.status{text-shadow:0 1px 4px #203446;gap:9px;margin-top:25px;font-size:12px;font-weight:600;display:flex}.status i{border:2px solid #edbd64;border-radius:50%;width:9px;height:9px;margin-top:3px}.status small{color:#d5dbdd;margin-top:4px;font-size:10px;font-weight:400;display:block}.brand{white-space:nowrap;text-shadow:0 1px 4px #203446;align-items:center;gap:10px;font-size:12px;font-weight:700;line-height:1.5;display:flex;position:absolute;left:50%;transform:translate(-50%)}.brand-symbol{color:#e8343c;font-size:22px;font-weight:900}.top-actions{gap:8px;display:flex}.top-actions button{padding:12px 15px;font-weight:600}.hint{color:#f4e0b4;text-shadow:0 1px 5px #384456;font-size:11px;position:fixed;top:92px;right:21px}.labels{pointer-events:none;position:fixed;inset:0}.label{pointer-events:auto;color:#fff;white-space:nowrap;background:#1c303bd9;border:1px solid #b7d8c180;border-radius:7px;padding:9px 11px;font-size:12px;position:absolute;transform:translate(-50%,calc(-100% - 24px));box-shadow:0 5px 20px #0003}.label span{color:#a9ddc0;margin-right:6px;font-size:10px}.label i{color:#c8d9d6;margin-left:8px;font-size:10px;font-style:normal}.label:after{content:"";border-left:1px solid #d3e6d4;height:24px;position:absolute;top:100%;left:50%}.data-panel,.help-panel{z-index:5;color:#f6f8f6;background:#172432ed;border:1px solid #ffffff35;border-radius:10px;position:fixed;box-shadow:0 15px 40px #18202a6b}.data-panel{width:310px;padding:20px;display:none;top:125px;right:20px}.data-panel.open{display:block}.panel-title{justify-content:space-between;align-items:flex-start;display:flex}.panel-title small{letter-spacing:.16em;color:#a8c6bc;font-size:9px}.panel-title h2{margin:5px 0;font-size:18px}.panel-title button{color:#dce9e7;background:0 0;border:0;font-size:25px}.data-panel p{color:#b2c4c3;margin:8px 0 17px;font-size:12px}.stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stats>div{background:#ffffff0c;border:1px solid #ffffff17;border-radius:6px;padding:12px}.stats span{color:#b5c6c5;font-size:11px;display:block}.stats b{margin-top:8px;font-size:23px;display:block}.stats b small{color:#a9bbba;font-size:11px;font-weight:400}.stats b.pending{color:#f0d294;margin:15px 0 3px;font-size:14px}.subhead{justify-content:space-between;margin:20px 0 6px;font-size:13px;font-weight:700;display:flex}.subhead span{color:#d2bd86;font-size:10px;font-weight:400}.row{color:#b8c9c8;border-bottom:1px solid #ffffff1c;padding:10px 0;font-size:12px}.row b{float:right;color:#fff}.panel-foot{color:#a9b8b7;margin-top:15px;font-size:10px}.help-panel{width:250px;padding:16px;font-size:12px;line-height:1.6;top:75px;right:20px}.help-panel p{color:#c6d2d2;margin-bottom:0}.model-note{color:#e5ebec;text-shadow:0 1px 4px #263b4a;font-size:10px;position:fixed;bottom:23px;left:20px}.dock{z-index:4;background:#192530ed;border:1px solid #ffffff25;border-radius:17px;gap:3px;padding:5px;display:flex;position:fixed;bottom:17px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #1b273966}.dock button{color:#e5eceb;background:0 0;border:0;border-radius:11px;width:62px;height:48px;font-size:10px}.dock button span{font-size:19px;line-height:22px;display:block}.dock button:hover,.top-actions button:hover{background:#526b67}.dock button:focus-visible,.tabs button:focus-visible,.label:focus-visible,.top-actions button:focus-visible{outline-offset:2px;outline:2px solid #fff}@media (width<=800px){.brand{display:none}.top-actions{position:fixed;top:16px;right:15px}.top-actions button{padding:12px 9px;font-size:11px}.tabs button{padding:12px 10px;font-size:12px}.hint{text-align:right;max-width:145px;line-height:1.5;top:77px;right:15px}.top-left h1{max-width:185px;font-size:14px}.top-left{min-width:0}.status{margin-top:15px}.label{padding:7px;font-size:10px}.label i{display:none}.model-note{max-width:55%;line-height:1.5;bottom:80px}.data-panel{width:min(300px,100vw - 24px);max-height:calc(100vh - 235px);top:155px;right:12px;overflow:auto}.dock{gap:0;max-width:calc(100vw - 20px);bottom:12px}.dock button{width:42px;height:48px}.dock button span{font-size:17px}.help-panel{top:65px;right:12px}}@media (width<=600px){.hint,.labels{display:none}}.dock button small{white-space:nowrap;font-size:10px;display:block}.dock #demo-toggle{color:#fff1c9;background:#715b40;width:70px}.demo-badge{z-index:3;color:#f9e4b2;white-space:nowrap;background:#24313be8;border:1px solid #fff4cf54;border-radius:20px;padding:7px 11px;font-size:11px;position:fixed;bottom:88px;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #0003}.demo-badge i{background:#e7bc67;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.demo-badge.paused i{background:#a5aeb2}@media (width<=800px){.dock{width:calc(100% - 20px)}.dock button,.dock #demo-toggle{flex:1;width:auto;min-width:0}.dock button small{font-size:9px}.demo-badge{bottom:78px}.model-note{max-width:76%;bottom:112px}}.topbar:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#1b293bcc,#1b293b6b 52%,#0000);height:170px;position:fixed;top:0;left:0;right:0}@media (width<=360px){.dock #demo-toggle small{display:none}.dock #demo-toggle:after{content:"暂停";font-size:9px;display:block}.dock #demo-toggle[aria-pressed=false]:after{content:"播放"}}.environment-control{z-index:4;color:#d4e1de;background:#172432e8;border:1px solid #ffffff35;border-radius:8px;grid-template-columns:auto auto;align-items:center;gap:2px 8px;padding:9px 10px;font-size:11px;display:grid;position:fixed;top:125px;right:20px;box-shadow:0 4px 18px #0003}.environment-control select{color:#fff;font:inherit;cursor:pointer;background:#354650;border:1px solid #ffffff42;border-radius:5px;padding:5px 6px}.environment-control select:focus-visible{outline-offset:2px;outline:2px solid #fff}.environment-control small{color:#c8d2cd;grid-column:1/-1;font-size:10px}@media (width<=800px){.environment-control{padding:7px 8px;top:108px;right:12px}.environment-control small{font-size:9px}}.environment-control{grid-template-columns:1fr auto auto;max-width:250px}.environment-control select{grid-column:2/4}.environment-control small{grid-column:1/-1;line-height:1.35}.environment-control a{color:#b9d2cd;font-size:9px;text-decoration:none}.environment-control a:hover{text-decoration:underline}.environment-control button{color:#edf6f3;background:#354650;border:1px solid #ffffff42;border-radius:4px;grid-column:3;padding:0 6px;font-size:13px}@media (width<=800px){.environment-control{max-width:190px}}.model-controls{z-index:4;flex-direction:column;align-items:flex-start;gap:4px;display:flex;position:fixed;top:190px;left:18px}.model-controls button{color:#edf4ef;background:#172432e8;border:1px solid #ffffff35;border-radius:6px;padding:7px 10px;font-size:11px}.model-controls button:disabled{opacity:.7;cursor:wait}.model-controls small{color:#edf1ed;text-shadow:0 1px 4px #233742;font-size:10px}@media (width<=800px){.model-controls{top:172px;left:16px}.model-controls button{font-size:10px}.model-controls small{max-width:165px}}.environment-control a{white-space:nowrap;grid-column:1/3}:root{color:#edf3f2;background:#202e3b}.scene[data-weather=sunny]{background:radial-gradient(24% 7% at 29% 25%,#eef5f140,#0000 74%),radial-gradient(32% 8% at 75% 30%,#eef5f12e,#0000 74%),linear-gradient(#466a82 0%,#9db7c3 42%,#a5b4b7 56%,#8b999c 100%)}.scene[data-weather=cloudy]{background:radial-gradient(38% 11% at 35% 24%,#e1e8e629,#0000 74%),radial-gradient(37% 9% at 77% 29%,#e6ebe826,#0000 74%),linear-gradient(#40586a 0%,#94a7af 43%,#9ba9aa 56%,#7e8d91 100%)}.scene[data-weather=rain]{background:radial-gradient(65% 43% at 52% 48%,#849ba2 0%,#0000 72%),linear-gradient(#263e4c 0%,#536d79 48%,#657d85 100%)}.scene[data-weather=sunset]{background:radial-gradient(65% 43% at 52% 48%,#d8b5a2 0%,#0000 72%),linear-gradient(#3d4b5d 0%,#997d7b 48%,#8e8b8a 100%)}.scene[data-weather=night]{background:radial-gradient(65% 43% at 52% 48%,#657d88 0%,#0000 72%),linear-gradient(#172a3a 0%,#344c5c 48%,#506471 100%)}.scene[data-weather=nightRain]{background:radial-gradient(65% 43% at 52% 48%,#5c7580 0%,#0000 72%),linear-gradient(#142b39 0%,#314c5b 48%,#4c6370 100%)}.topbar:before{background:linear-gradient(#0c1b27c2,#0e1e2a47 55%,#0000);height:190px}.tabs button,.top-actions button,.model-controls button,.environment-control,.label,.dock,.data-panel,.help-panel{background:#0f1f2ae0;border-color:#b5d3d53b;box-shadow:0 8px 24px #0611192e}.tabs button,.top-actions button,.model-controls button{border-radius:8px}.tabs button.active{color:#fff;background:#315c5b;border-color:#7aadaa}.top-left h1{letter-spacing:.05em;font-size:18px;font-weight:650}.top-left p,.status small,.model-controls small{color:#bfd0d0}.brand-symbol{color:#ed6860;letter-spacing:.02em}.hint{color:#c8d4d1}.label{border-radius:8px;padding:9px 12px}.label span{color:#87c9c0}.label:after{border-color:#9dc7c2}.dock{border-radius:15px;padding:5px;box-shadow:0 12px 32px #05121b4d}.dock button{color:#c9d7d7}.dock button.selected{color:#e2f3ec;background:#315c5b}.dock #demo-toggle{color:#f6e6c1;background:#65583e}.dock button:hover,.top-actions button:hover,.tabs button:hover,.model-controls button:hover{color:#fff;background:#426665}.environment-control{border-radius:10px}.environment-control select,.environment-control button{background:#293e49;border-color:#aec9c537}.demo-badge{color:#ead9b2;background:#13242ce6;border-color:#d3bd8050}@media (width<=800px){.top-left h1{font-size:14px}}
