: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}.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%)}.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 #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}}.topbar{inset:20px 24px auto}.topbar:before{background:linear-gradient(#091722a6,#0000);height:145px}.top-left{background:linear-gradient(145deg,#0f232ef0,#11222bde);border:1px solid #b1d3cd2e;border-radius:14px;width:248px;min-width:0;padding:18px 18px 15px;box-shadow:0 18px 50px #07141c3d}.project-kicker{color:#a7c8c1;letter-spacing:.13em;align-items:center;gap:7px;font-size:10px;display:flex}.project-kicker span{background:#83b9ab;border-radius:2px;width:18px;height:2px}.top-left h1{letter-spacing:.03em;text-shadow:none;margin:13px 0 7px;font-size:21px;font-weight:650;line-height:1.35}.top-left p{color:#adbfbd;letter-spacing:.04em;font-size:11px}.status{color:#e9eeea;text-shadow:none;border-top:1px solid #c0dad221;margin:16px 0 14px;padding-top:13px;font-size:12px}.status i{background:#dbb777;border:0;width:7px;height:7px;margin-top:4px;box-shadow:0 0 0 4px #dbb7771c}.status small{color:#a8bfba;line-height:1.4}.tabs{background:#04141c7a;border:1px solid #afd3cc1a;border-radius:9px;gap:4px;padding:3px}.tabs button{box-shadow:none;color:#b6c9c5;background:0 0;border:0;border-radius:6px;flex:1;padding:9px 6px;font-size:11px}.tabs button.active{color:#f6faf8;background:#3d6a65}.top-actions button{background:#0f202abf;border-radius:9px;padding:11px 14px;font-size:12px}.brand{color:#d7e4df;letter-spacing:.02em;font-size:11px;font-weight:600;top:2px}.brand-symbol{font-size:20px}.model-controls{gap:6px;top:288px;left:24px}.model-controls button{color:#dbe9e4;border-radius:8px;padding:8px 12px}.model-controls small{color:#b4c8c5}.hint{color:#c5d3cf;top:78px;right:24px}.environment-control{background:#10222ce3;border-radius:13px;gap:7px 8px;max-width:252px;padding:14px;top:107px;right:24px;box-shadow:0 18px 45px #07141c33}.environment-control label{color:#eef5f1;font-size:12px;font-weight:650}.environment-control select{color:#d9e9e3;border-radius:6px}.environment-control small{color:#bbcfca;font-size:10px;line-height:1.5}.environment-control a{color:#93b6ac}.label{background:#12262ed6;border-color:#a9ccc142;border-radius:8px;padding:8px 10px;font-size:11px;box-shadow:0 8px 22px #06131b29}.label span{color:#a6d3c5;background:#68a69429;border-radius:5px;place-items:center;width:22px;height:22px;margin-right:7px;font-size:10px;display:inline-grid}.label i{color:#a8beb7}.label:after{border-color:#c2ded1a6;height:24px}.dock{background:#0e1f29ed;border-color:#acccc633;border-radius:15px;gap:2px;padding:6px 8px;bottom:20px;box-shadow:0 15px 40px #07131b52}.dock button{color:#b9ccc8;border-radius:9px;width:64px;height:52px;font-size:10px}.dock button span{justify-content:center;align-items:center;height:24px;margin-bottom:2px;display:flex}.dock button svg{width:19px;height:19px;display:block}.dock button.selected{color:#fff;background:#3e6d66}.dock #demo-toggle{color:#f3dfb2;background:#997c4b59;width:74px}.demo-badge{background:#13252ce6;border-color:#dbbe8238;font-size:10px;bottom:91px}.model-note{color:#d2dfda;bottom:25px;left:24px}.data-panel,.help-panel{background:#0f202af5;border-color:#aaccc43b;border-radius:14px;box-shadow:0 24px 60px #06141c59}.data-panel{width:316px;padding:22px;top:107px;right:24px}.data-panel .panel-title small{color:#91b8ab;letter-spacing:.12em}.data-panel .stats>div{background:#76a69812;border-color:#adcec31c;border-radius:9px}.data-panel .stats b{font-variant-numeric:tabular-nums}.help-panel{width:300px;padding:19px;top:75px;right:24px}@media (width<=800px){.topbar{inset:12px 12px auto}.topbar:before{height:125px}.top-left{border-radius:11px;width:168px;padding:12px}.project-kicker{letter-spacing:.05em;font-size:9px}.project-kicker span{width:13px}.top-left h1{max-width:none;margin:9px 0 5px;font-size:15px;line-height:1.35}.top-left p{font-size:9px}.status{margin:10px 0;padding-top:9px;font-size:10px}.status small{font-size:9px}.tabs button{padding:7px 3px;font-size:10px}.top-actions{top:12px;right:12px}.top-actions button{padding:10px 8px;font-size:10px}.model-controls{top:219px;left:12px}.model-controls button{padding:7px 9px;font-size:10px}.model-controls small{max-width:155px;font-size:9px}.environment-control{border-radius:10px;gap:5px;max-width:190px;padding:10px;top:69px;right:12px}.environment-control label{font-size:10px}.environment-control small{font-size:9px}.hint{display:none}.data-panel{width:min(300px,100vw - 24px);max-height:calc(100vh - 220px);top:128px;right:12px;overflow:auto}.dock{gap:0;width:calc(100% - 20px);max-width:520px;padding:4px;bottom:10px}.dock button,.dock #demo-toggle{flex:1;width:auto;min-width:0;height:48px}.dock button svg{width:17px;height:17px}.dock button span{height:20px}.dock button small{font-size:9px}.demo-badge{bottom:72px}.model-note{max-width:78%;line-height:1.4;bottom:103px;left:12px}.help-panel{width:min(300px,100vw - 24px);max-height:65vh;top:62px;right:12px;overflow:auto}}
