:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1118;--panel:#141e29;--panel-soft:#1b2836;--border:#ffffff12;--text:#e7edf4;--muted:#8495a7;--accent:#67b7ff;--danger:#ff9e97;font-synthesis:none;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow:hidden}button,select,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.3}button,a,input,select,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}button svg{flex-shrink:0}.app,.stage{width:100%;height:100dvh}.stage{isolation:isolate;background:radial-gradient(at 48% 44%,#24374d 0,#152538 38%,#0c1422 78%);position:relative;overflow:hidden}.stage:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(#90b5cc04 1px,#0000 1px),linear-gradient(90deg,#90b5cc04 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000,#0000 78%);mask-image:radial-gradient(#000,#0000 78%)}.stage canvas{touch-action:none;width:100%;height:100%;display:block}.overlay-header{pointer-events:none;z-index:5;justify-content:space-between;align-items:flex-start;gap:12px;padding:24px 30px;display:flex;position:absolute;inset:0 0 auto}.brand{align-items:center;gap:14px;min-width:0;display:flex}.brand-mark{background:linear-gradient(145deg,#fff,#e3efff);border:1px solid #dceeffc4;border-radius:14px;flex-shrink:0;place-items:center;width:76px;height:60px;padding:5px 7px;display:grid;box-shadow:0 5px 24px #0074e81a}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.brand-copy{min-width:0}.brand-name{color:#f0f6ff;letter-spacing:.08em;font-size:24px;font-weight:650;line-height:1.2;display:block}.brand-name>span{color:var(--accent);letter-spacing:.02em;margin-left:5px}.brand small{color:#9cb0c6;letter-spacing:.07em;margin-top:8px;font-size:11px;font-weight:400;display:block}.header-actions{pointer-events:auto;flex-shrink:0;align-items:center;gap:7px;display:flex}.icon-button{color:#a0b0c1;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:color .15s,background .15s;display:inline-flex;position:relative}.icon-button:hover:not(:disabled){color:#edf5fc;background:#ffffff0b}.icon-button.active{color:var(--accent);background:#67b7ff12;border-color:#67b7ff24}.camera-toggle{color:#c8d5e3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#182532b0;border:1px solid #a9c4d52b;border-radius:9px;align-items:center;gap:8px;height:37px;margin-right:6px;padding:0 12px;font-size:12px;display:flex}.camera-toggle:hover:not(:disabled),.camera-toggle.enabled{color:var(--accent);border-color:#67b7ff55}.floating-dock{left:50%;bottom:max(30px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);z-index:7;background:#101a25dc;border:1px solid #a5bbcf20;border-radius:18px;align-items:center;gap:5px;padding:9px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 40px #0005,inset 0 1px #ffffff06}.floating-dock .icon-button{width:43px;height:43px}.dock-primary{background:var(--accent);color:#071d35;border:1px solid #a3d5ff3d;border-radius:11px;justify-content:center;align-items:center;gap:9px;min-width:91px;height:43px;font-size:13px;font-weight:600;display:flex}.dock-primary:hover:not(:disabled){background:#98d0ff}.dock-divider{background:#ffffff12;width:1px;height:23px;margin:0 4px}.button-tip{white-space:nowrap;color:#dce8f3;pointer-events:none;background:#16222fed;border:1px solid #ffffff10;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:400;display:none;position:absolute;bottom:54px}.icon-button:hover:not(:disabled) .button-tip,.icon-button:focus-visible .button-tip{display:block}.stage-hint{bottom:max(111px, calc(env(safe-area-inset-bottom) + 84px));color:#93a6b8;letter-spacing:.04em;text-align:center;white-space:nowrap;pointer-events:none;align-items:center;gap:8px;max-width:calc(100% - 40px);font-size:12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.stage-hint.snap{color:var(--accent);background:#14362be6;border-radius:20px;padding:8px 14px}.status-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;box-shadow:0 0 9px #67b7ff88}.view-tools{background:#121e29b3;border:1px solid #ffffff0a;border-radius:11px;gap:3px;padding:3px;display:flex;position:absolute;bottom:36px;right:28px}.view-tools .icon-button{width:34px;height:34px}.canvas-caption{color:#64798d;letter-spacing:.06em;pointer-events:none;font-size:10px;position:absolute;bottom:44px;left:30px}.stage-message{text-align:center;color:#c1d3df;flex-direction:column;align-items:center;gap:16px;width:min(420px,100% - 48px);font-size:13px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.stage-message h2{margin:0;font-size:18px;font-weight:500}.stage-message p{color:var(--muted);margin:0;font-size:13px;line-height:1.7}.stage-message small{color:var(--muted);font-size:11px}.error-message{border:1px solid var(--border);background:#111e2cf5;border-radius:18px;padding:30px}.loading-ring{border:2px solid #ffffff10;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.load-track{background:#ffffff10;width:140px;height:2px;overflow:hidden}.load-track span{background:var(--accent);height:100%;transition:width .2s;display:block}.stage-toast,.camera-notice{color:#f8d7aa;z-index:8;background:#382c1ee8;border:1px solid #f2c48730;border-radius:10px;max-width:min(550px,100% - 40px);padding:11px 16px;font-size:12px;line-height:1.6;position:absolute;top:100px;left:50%;transform:translate(-50%)}.stage-toast{pointer-events:none}.camera-notice{align-items:center;gap:12px;width:max-content;display:flex}.camera-notice .icon-button{flex-shrink:0;width:26px;height:26px}.camera-background{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.camera-background video{object-fit:cover;width:100%;height:100%;display:block}.stage.camera-active:before{display:none}.camera-active .overlay-header{background:linear-gradient(#0007,#0000)}.camera-active .brand-copy{text-shadow:0 1px 6px #000b}.camera-active .stage-hint{color:#e7edf4;background:#101a25b8;border-radius:18px;padding:7px 12px}.camera-active .canvas-caption{color:#d2dee7;text-shadow:0 1px 5px #000}.hand-status{color:#d8e4ed;pointer-events:none;background:#101a25b8;border-radius:8px;align-items:center;gap:6px;padding:6px 9px;font-size:10px;display:flex;position:absolute;top:100px;right:30px}.hand-status i{background:#8898a8;border-radius:50%;width:5px;height:5px}.hand-status i.detected{background:var(--accent)}.hidden{display:none}.sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:20;scrollbar-width:thin;background:#101a26f5;border:1px solid #ffffff18;border-radius:17px;width:330px;max-width:calc(100% - 32px);max-height:calc(100dvh - 180px);padding:16px;position:fixed;top:80px;right:26px;overflow-y:auto;box-shadow:0 20px 60px #0006}.drawer-heading{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.drawer-heading h2{margin:0;font-size:14px;font-weight:500}.drawer-heading .icon-button{width:26px;height:26px}.panel{border-top:1px solid var(--border);padding:14px 0}.panel h2{color:var(--muted);letter-spacing:.05em;margin:0 0 14px;font-size:11px;font-weight:500}.mini-button,.primary-button{color:#c5d5e3;background:#ffffff07;border:1px solid #ffffff1b;border-radius:7px;padding:7px 11px;font-size:12px}.mini-button:hover:not(:disabled){color:var(--accent);border-color:#67b7ff55}.primary-button{background:var(--accent);color:#071d35;border-color:#0000;padding:10px 20px;font-weight:600}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-grid{grid-template-columns:75px 1fr;gap:7px 10px;font-size:12px;display:grid}.status-grid .label{color:var(--muted)}.status-grid .value{font-variant-numeric:tabular-nums}.mono{font-family:Consolas,monospace;font-size:10px}.part-list{gap:5px;margin-top:14px;display:grid}.part-item{background:#ffffff04;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.part-item.free{color:var(--accent);background:#67b7ff10}.part-item.returned{color:#a1c6bb}.pill{opacity:.65;font-size:10px}.hint-text{color:#b7c9db;font-size:13px;line-height:1.9}.muted{color:var(--muted);font-size:11px;line-height:1.7}.error-text{color:var(--danger);font-size:12px;line-height:1.6}select{color:var(--text);border:1px solid var(--border);background:#1a2836;border-radius:7px;max-width:100%;padding:7px;font-size:12px}.diagnostics summary{color:var(--muted);cursor:pointer;font-size:11px}.gesture-reference{z-index:4;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(135deg,#152631d9,#111c28b3);border:1px solid #a4c4cf20;border-radius:16px;width:264px;padding:5px 10px 0;position:absolute;top:50%;left:30px;transform:translateY(-50%)}.reference-heading{color:#9caebc;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:13px 7px;font-size:11px;display:flex}.reference-heading>span{letter-spacing:.08em;align-items:center;gap:8px;display:flex}.reference-heading i{background:var(--accent);border-radius:50%;width:4px;height:4px}#gesture-reference-list{scrollbar-width:thin;max-height:calc(100dvh - 260px);overflow-y:auto}.reference-item{text-align:left;color:#bacdd8;background:0 0;border:0;border-top:1px solid #ffffff08;border-radius:5px;grid-template-columns:66px 1fr 23px;align-items:center;gap:4px;width:100%;padding:10px 3px;display:grid}.reference-item:hover,.reference-item:focus-visible{color:var(--accent);background:#67b7ff08}.gesture-drawing{color:#9bb8c3;width:64px;height:44px;display:block;overflow:visible}.gesture-motion{stroke:var(--accent);opacity:.8}.reference-copy{gap:6px;display:grid}.reference-copy small{color:#899fae;white-space:nowrap;font-size:10px}.reference-copy strong{font-size:13px;font-weight:500}.reference-effect{color:#67b7ff87;place-items:center;display:grid}.reference-footnote{color:#708797;margin:0;padding:12px 7px 14px;font-size:10px}.gesture-reference.collapsed{width:146px;padding-bottom:4px}.reference-item:hover .gesture-explode .gesture-hand-a{animation:1.4s ease-in-out infinite alternate gesture-apart-a}.reference-item:hover .gesture-explode .gesture-hand-b{animation:1.4s ease-in-out infinite alternate gesture-apart-b}@keyframes gesture-apart-a{to{transform:translate(-3px)}}@keyframes gesture-apart-b{to{transform:translate(3px)}}.guide-target{border:1px solid var(--accent);pointer-events:none;z-index:29;border-radius:13px;position:fixed;box-shadow:0 0 0 4px #67b7ff12,0 0 20px #67b7ff14}.control-guide{z-index:30;width:min(300px,100vw - 24px);color:var(--text);background:#13242ff5;border:1px solid #67b7ff42;border-radius:15px;padding:13px 17px 14px;position:fixed;box-shadow:0 12px 40px #0005}.guide-arrow{background:#13242f;border-bottom:1px solid #67b7ff42;border-right:1px solid #67b7ff42;width:9px;height:9px;position:absolute;bottom:-5px;transform:translate(-50%)rotate(45deg)}.control-guide.below .guide-arrow{top:-5px;bottom:auto;transform:translate(-50%)rotate(225deg)}.guide-heading,.guide-actions{justify-content:space-between;align-items:center;display:flex}.guide-counter{color:#67b7ff99;font-variant-numeric:tabular-nums;letter-spacing:.09em;font-size:10px}.guide-heading .icon-button{width:24px;height:24px}.control-guide h3{margin:6px 0 9px;font-size:15px;font-weight:500}.control-guide p{color:#a7bccb;margin:0 0 15px;font-size:12px;line-height:1.85}.guide-actions button{background:0 0;border:0;padding:7px 0;font-size:11px}.guide-back{color:#93a8b8}.guide-next{color:var(--accent);align-items:center;gap:14px;display:flex}.guide-next:hover{color:#c7e8ff}@media (width<=700px){.overlay-header{padding:18px 16px}.brand{gap:8px}.brand-mark{border-radius:9px;width:46px;height:38px;padding:3px 4px}.brand-name{font-size:18px}.brand small{letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;max-width:105px;margin-top:5px;font-size:9px;overflow:hidden}.header-actions{gap:0}.header-actions .icon-button{width:32px;height:34px}.camera-toggle{gap:5px;height:33px;margin-right:3px;padding:0 8px;font-size:11px}.fullscreen-button{display:none}.floating-dock{bottom:max(18px, env(safe-area-inset-bottom));border-radius:15px;gap:2px;padding:7px}.floating-dock .icon-button{width:36px;height:40px}.dock-primary{gap:6px;min-width:73px;height:40px;font-size:12px}.dock-divider{margin:0 3px}.cancel-button{display:none}.stage-hint{bottom:max(91px, calc(env(safe-area-inset-bottom) + 76px));font-size:10px}.view-tools{flex-direction:column;bottom:143px;right:14px}.view-tools .icon-button{width:30px;height:30px}.canvas-caption{display:none}.hand-status{top:72px;right:16px}.sidebar{max-height:calc(100dvh - 160px);top:69px;right:16px}.camera-notice,.stage-toast{top:76px}.gesture-reference{width:190px;padding:3px 8px 0;top:90px;left:16px;transform:none}.reference-item{grid-template-columns:44px 1fr;padding:8px 0}.gesture-drawing{width:43px;height:37px}.reference-copy{gap:4px}.reference-copy small{font-size:9px}.reference-copy strong{font-size:12px}.reference-effect{display:none}.reference-footnote{padding:10px 4px 12px;font-size:9px}.reference-heading{padding:11px 4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.gesture-debug{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.gesture-debug summary{color:var(--muted);cursor:pointer;font-size:11px}.calibration-status progress{width:100%;height:4px;accent-color:var(--accent);margin-bottom:12px}.file-label{cursor:pointer;position:relative;overflow:hidden}.file-label input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.hand-debug-overlay{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.gesture-preparing canvas:not(.hand-debug-overlay){opacity:.28;transition:opacity .2s}.startup-disabled-tools .floating-dock{opacity:.35}.gesture-startup{z-index:9;pointer-events:none;position:absolute;inset:0}.startup-target{color:#d1f8eb85;background:#0d252112;border:1px dashed #b2ebdc65;border-radius:48px;place-items:center;width:180px;height:220px;display:grid;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.startup-target svg{width:72px;height:72px}.startup-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;text-align:center;background:#101e28ed;border:1px solid #a6d8cc36;border-radius:18px;width:min(400px,100% - 32px);padding:12px 16px;position:absolute;bottom:114px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #0004}.startup-heading{justify-content:center;align-items:center;gap:9px;display:flex}.startup-heading h2{margin:0;font-size:13px;font-weight:500}.startup-card p{color:#a8bfc9;margin:9px 0 14px;font-size:12px;line-height:1.6}.startup-progress-label{color:#c6d7e4;justify-content:space-between;align-items:center;font-size:12px;display:flex}.startup-progress-label strong{color:var(--accent);font-variant-numeric:tabular-nums}.startup-card progress{appearance:none;background:#294052;border:1px solid #67b7ff40;border-radius:6px;width:100%;height:10px;margin:8px 0 12px;display:block;overflow:hidden}.startup-card progress::-webkit-progress-bar{background:#294052;border-radius:6px}.startup-card progress::-webkit-progress-value{background:var(--accent);border-radius:6px}.startup-card progress::-moz-progress-bar{background:var(--accent);border-radius:6px}.startup-steps{justify-content:center;gap:12px;display:flex}.startup-steps span{width:23px;height:23px;color:var(--muted);border:1px solid #ffffff25;border-radius:50%;place-items:center;font-size:10px;display:grid}.startup-steps .current{border-color:var(--accent);color:var(--accent);background:#67b7ff18}.startup-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.startup-close{color:#90a7b6;background:0 0;border:none;padding:8px 5px;font-size:11px}.startup-close:hover{color:#d8e4ed}@media (width<=700px){.startup-target{width:140px;height:170px;top:35%}.startup-card{padding:16px;bottom:102px}.startup-heading h2{font-size:15px}}.startup-pose-steps{justify-content:center;gap:8px;margin:14px 0 10px;display:flex}.startup-pose-steps span{border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:5px 10px;font-size:11px}.startup-pose-steps .current{color:var(--accent);background:#67b7ff15;border-color:#67b7ff66}.startup-pose-steps .done{color:#c6e5ff;border-color:#67b7ff33}
