*{box-sizing:border-box;margin:0;padding:0}:root{--bg-app:#0a101c;--glass-bg:#121c2eb8;--glass-border:#ffffff14;--accent:#4da6ff;--accent-soft:#4da6ff2e;--text-primary:#fff;--text-secondary:#ffffffbf;--text-dim:#ffffff80;--shadow-lg:0 25px 45px -12px #0000008c;--radius-xl:20px;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--transition-smooth:.3s cubic-bezier(.25, .1, .25, 1)}body{background:var(--bg-app);color:var(--text-primary);letter-spacing:.2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}canvas{display:block}.glass-btn{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);color:#fff;border-radius:var(--radius-lg);cursor:pointer;letter-spacing:.4px;transition:all var(--transition-smooth);white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:clamp(8px,1.5vw,10px) clamp(14px,2vw,18px);font-size:clamp(13px,1.6vw,14px);font-weight:600;display:flex;box-shadow:0 8px 20px #0000004d}.glass-btn:hover{background:#1e3c64cc;border-color:#fff3;transform:translateY(-1px);box-shadow:0 12px 28px #00000080,0 0 15px #4da6ff4d}.icon-btn{border-radius:var(--radius-lg);width:clamp(40px,6vw,44px);height:clamp(40px,6vw,44px);padding:0}.icon-btn [data-lucide]{stroke-width:2px;width:20px;height:20px}#measurementBtn.is-active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 22px #4da6ff99}#eraserBtn.is-active{color:#fff;background:#f06c6c;border-color:#f58a8a;box-shadow:0 0 22px #f06c6c8c}#canvasContainer canvas.eraser-mode{cursor:crosshair!important}.side-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(30px);border-right:1px solid var(--glass-border);width:clamp(260px,80vw,360px);height:100%;box-shadow:var(--shadow-lg);z-index:25;color:var(--text-primary);flex-direction:column;padding:clamp(16px,3vw,28px) clamp(12px,2vw,22px);transition:left .4s cubic-bezier(.33,.1,.25,1),right .4s cubic-bezier(.33,.1,.25,1);display:flex;position:fixed;top:0;overflow-y:auto}#lightPanel{border-right:none;border-left:1px solid var(--glass-border);background:linear-gradient(180deg, #1c304ee0, #0a1220f0 34%, #09101cfa), var(--glass-bg);right:calc(-1*clamp(260px,80vw,360px) - 20px);box-shadow:-22px 0 60px #00000061,inset 1px 0 #70beff24}#modelPanel{left:calc(-1*clamp(260px,80vw,360px) - 20px)}.panel-title{letter-spacing:.5px;color:#fff;align-items:center;gap:8px;margin-bottom:24px;font-size:18px;font-weight:700;display:flex}.panel-title-premium{z-index:2;background:linear-gradient(#192b46f5,#192b4600);border-bottom:1px solid #7ec5ff29;min-height:54px;margin:0 0 18px;padding:0 0 14px;position:sticky;top:0}.panel-title-icon{color:#bde4ff;background:linear-gradient(135deg,#4da6ff42,#4da6ff0a);border:1px solid #70c1ff70;border-radius:11px;place-items:center;width:34px;height:34px;display:inline-grid;box-shadow:inset 0 1px #ffffff2e,0 0 18px #4da6ff29}.panel-status{color:#6de8c4;letter-spacing:1px;background:#27d5ab14;border:1px solid #40deb761;border-radius:999px;margin-left:auto;padding:4px 7px;font-size:9px;font-weight:700}.model-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.model-list li{border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-smooth);background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.model-list li:before{content:"";background:var(--text-dim);width:6px;height:6px;transition:all var(--transition-smooth);border-radius:50%}.model-list li:hover{color:#fff;background:#ffffff0d;border-color:#ffffff1a;transform:translate(4px)}.model-list li.active{background:var(--accent-soft);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 0 15px #4da6ff33}.model-list li.active:before{background:var(--accent);box-shadow:0 0 8px var(--accent)}.control-group{margin-bottom:24px}.control-section{margin-bottom:20px}.section-heading{color:#c0dfffb8;letter-spacing:1.5px;align-items:center;gap:9px;margin:0 3px 9px;font-size:10px;font-weight:700;display:flex}.section-heading i{background:linear-gradient(90deg,#68beff57,#0000);flex:1;height:1px}.control-card{background:linear-gradient(110deg,#65aeff17,#ffffff06);border:1px solid #97cbff1a;border-radius:12px;margin-bottom:8px;padding:12px 13px 13px;transition:border-color .18s,background .18s,transform .18s;position:relative;box-shadow:inset 0 1px #ffffff0b}.control-card:hover{background:linear-gradient(110deg,#65aeff24,#ffffff09);border-color:#71bdff4f;transform:translate(-2px)}.control-label{text-transform:uppercase;letter-spacing:.8px;color:#d6eaff9e;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.control-value{color:#a9d8ff;text-align:center;font-variant-numeric:tabular-nums;background:#4da6ff1a;border:1px solid #4da6ff38;border-radius:6px;min-width:43px;padding:3px 7px;font-size:12px;font-weight:600}input[type=range]{background:linear-gradient(90deg, var(--accent) var(--range-progress,0%), #ffffff1a var(--range-progress,0%));appearance:none;cursor:pointer;border-radius:10px;outline:none;width:100%;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--accent);background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .14s,box-shadow .14s;box-shadow:0 0 12px #4da6ff99}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 0 0 5px #4da6ff24,0 0 15px #4da6ffcc}.hdr-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px;display:grid}.hdr-thumb{aspect-ratio:1;border-radius:var(--radius-md);cursor:pointer;background-color:#1e2a40;background-position:50%;background-size:cover;border:1px solid #ffffff1f;transition:transform .18s,border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.hdr-thumb:after{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#ffffff38,#0000 38%) border-box;border:1px solid #0000;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:padding-box,border-box;-webkit-mask-origin:padding-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.hdr-thumb:hover{border-color:var(--accent);transform:translateY(-3px)scale(1.025);box-shadow:0 0 18px #4da6ff80}.hdr-thumb.active{border-color:var(--accent);box-shadow:0 0 0 2px #4da6ff29,0 0 22px #4da6ff85}.luxury-checkbox{color:var(--text-secondary);cursor:pointer;align-items:center;gap:12px;font-size:14px;display:flex}.luxury-checkbox input{width:17px;height:17px;accent-color:var(--accent)}.toggle-spaced{margin-top:10px}.lighting-presets{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.lighting-presets button,.secondary-btn{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font:inherit;background:linear-gradient(135deg,#ffffff17,#ffffff06);padding:9px 8px;font-size:12px;font-weight:600;transition:transform .15s,border-color .15s,color .15s,background .15s,box-shadow .15s;position:relative;overflow:hidden}.lighting-presets button:hover,.lighting-presets button.active,.secondary-btn:hover{color:var(--accent);background:#4da6ff29;border-color:#4da6ffa6}.lighting-presets button.active{box-shadow:inset 0 1px #ffffff38,0 0 17px #4da6ff33}.lighting-presets button.is-confirmed{animation:.34s cubic-bezier(.2,.8,.2,1) preset-confirm}@keyframes preset-confirm{50%{transform:scale(.94);box-shadow:0 0 0 7px #4da6ff14}}.lighting-presets button:active,.secondary-btn:active{transform:scale(.96)}.secondary-btn{width:100%;margin-top:10px}.preset-card .secondary-btn{color:#b6ddff;border-color:#85c6ff38}.compact-control{border-top:1px solid #ffffff12;margin:12px 0 0;padding-top:10px}.background-section{margin-top:2px}#bgColorWrapper{background:#040b163d;border:1px solid #97cbff1a;border-radius:10px;padding:8px}#resetBgColorBtn{margin-left:auto}.control-hint{min-height:16px;color:var(--text-dim);margin-top:8px;font-size:12px;line-height:1.45}#lightingError:not(:empty){color:#ff9b9b}.measurement-results{flex-direction:column;gap:6px;max-height:132px;margin-top:10px;display:flex;overflow-y:auto}.measurement-result{border-radius:var(--radius-sm);color:var(--text-secondary);background:#4da6ff14;border:1px solid #4da6ff33;justify-content:space-between;gap:8px;padding:8px 10px;font-size:12px;display:flex}.measurement-result strong{color:#fff}.measurement-label{z-index:21;color:#d9f5ff;pointer-events:none;white-space:nowrap;background:#061423d1;border:1px solid #4dceffbf;border-radius:999px;padding:4px 7px;font-size:12px;font-weight:700;position:fixed;transform:translate(-50%,-50%);box-shadow:0 2px 12px #00000061}.measurement-label[hidden]{display:none}.model-display-section{margin:0}.model-display-options{gap:8px;display:grid}.model-display-option{min-height:58px;color:var(--text-secondary);cursor:pointer;background:linear-gradient(108deg,#fff1,#ffffff05);border:1px solid #97cbff1f;border-radius:12px;align-items:center;gap:11px;padding:9px 11px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.model-display-option:after{content:"";background:0 0;border-radius:3px;width:3px;transition:background .16s,box-shadow .16s;position:absolute;top:0;bottom:0;left:0}.model-display-option input{opacity:0;pointer-events:none;position:absolute}.model-display-option:hover{background:linear-gradient(108deg,#5fb0ff24,#ffffff09);border-color:#73c0ff57;transform:translate(-2px)}.model-display-option:active{transform:scale(.975)}.model-display-icon{color:#cde5ffa6;background:#040d1b47;border:1px solid #97cbff26;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;transition:color .16s,background .16s,border-color .16s,box-shadow .16s;display:grid}.model-display-icon svg{stroke-width:1.8px;width:18px;height:18px}.model-display-copy{flex-direction:column;gap:3px;display:flex}.model-display-copy strong{color:inherit;font-size:13px;font-weight:650}.model-display-copy small{color:var(--text-dim);letter-spacing:.35px;font-size:10px}.model-display-option.is-active{color:#dff1ff;background:linear-gradient(108deg,#4da6ff47,#4da6ff12);border-color:#59b4ffa6;box-shadow:inset 0 1px #ffffff24,0 0 18px #4da6ff24}.model-display-option.is-active:after{background:var(--accent);box-shadow:0 0 12px var(--accent)}.model-display-option.is-active .model-display-icon{color:#dff4ff;background:#4da6ff33;border-color:#8bd2ff99;box-shadow:0 0 14px #4da6ff3d}.primary-btn{color:var(--accent);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all var(--transition-smooth);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.4px;background:#4da6ff26;border:1px solid #4da6ff59;margin-top:8px;padding:12px 20px;font-size:14px;font-weight:600}.primary-btn:hover{background:var(--accent);color:#000;border-color:var(--accent);box-shadow:0 0 25px #4da6ff80}.loading-overlay{z-index:100;background:#0d1c33;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.loading-brand{justify-content:center;align-items:center;gap:24px;margin-bottom:48px;display:flex}.loading-logo{filter:drop-shadow(0 4px 12px #0006);width:clamp(200px,50vw,500px);height:auto}.progress-bar{background:#ffffff26;border-radius:4px;width:clamp(200px,50vw,500px);height:clamp(6px,1vw,12px);position:relative;overflow:visible}.progress-fill{background:var(--accent);border-radius:4px;width:0%;height:100%;transition:width .2s}.progress-text{color:#fff;white-space:nowrap;text-shadow:0 1px 3px #00000080;font-size:clamp(12px,1.6vw,14px);font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-error{color:#ff4d4d;margin-top:16px;font-size:14px;display:none}.simple-loading{-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);color:#fff;z-index:100;border:1px solid var(--glass-border);letter-spacing:.5px;background:#0a101ccc;border-radius:60px;flex-direction:column;align-items:center;gap:10px;padding:16px 36px 12px;font-size:15px;font-weight:500;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 35px #0009}.simple-loading-text{font-size:15px}.model-progress-bar{background:#ffffff26;border-radius:4px;width:200px;height:3px;margin-top:2px;overflow:hidden}.model-progress-fill{background:var(--accent);border-radius:4px;width:0%;height:100%;transition:width .2s}.model-progress-text{color:#ffffffb3;white-space:nowrap;font-size:12px}.divider{border-top:1px solid var(--glass-border);margin:20px 0 16px}#toolbar{z-index:20;align-items:center;gap:16px;transition:left .4s cubic-bezier(.33,.1,.25,1);display:flex;position:fixed;top:24px;left:24px}#viewerTools{z-index:20;flex-direction:column;gap:12px;display:flex;position:fixed;top:50%;left:24px;transform:translateY(-50%)}.measurement-hint{z-index:21;border-radius:var(--radius-sm);color:var(--accent);pointer-events:none;white-space:nowrap;background:#081220e0;border:1px solid #4da6ff73;padding:8px 12px;font-size:13px;position:fixed;top:50%;left:82px;transform:translateY(-50%)}.explode-panel{z-index:22;opacity:0;background:linear-gradient(145deg,#12253ef0,#060f1cf0);border:1px solid #70c1ff6b;border-radius:14px;width:210px;padding:14px 16px 12px;transition:opacity .18s,transform .18s;position:fixed;top:50%;left:82px;transform:translateY(-50%)translate(-8px)scale(.96);box-shadow:0 14px 35px #00000059,0 0 22px #4da6ff2e,inset 0 1px #ffffff1a}.explode-panel.is-visible{opacity:1;transform:translateY(-50%)translate(0)scale(1)}.explode-panel[hidden]{display:none}.explode-panel-heading{color:#dff4ff;letter-spacing:.3px;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;display:flex}.explode-panel-heading strong{color:#6fd7ff;font-variant-numeric:tabular-nums;font-size:12px}.explode-panel input[type=range]{width:100%;margin:2px 0 10px}.explode-reset-btn{color:#a9dfff;cursor:pointer;background:#4da6ff17;border:1px solid #70c1ff4d;border-radius:8px;width:100%;padding:6px 0;font-size:12px;transition:all .18s}.explode-reset-btn:hover{color:#e8f8ff;background:#4da6ff33;border-color:#70c1ffb3}#explodeBtn.is-active{color:#d9efff;background:linear-gradient(135deg,#4da6ff61,#4da6ff29);border-color:#70c1ffbf;box-shadow:0 0 24px #4da6ff61}@media (width<=640px){#viewerTools{gap:8px;left:12px}.measurement-hint{font-size:12px;left:70px}.explode-panel{width:min(210px,100vw - 86px);left:70px}}#toolbarLogo{z-index:1;filter:drop-shadow(0 4px 8px #00000080);width:auto;height:32px;position:fixed;bottom:24px;right:24px}#lightBtn{z-index:30;transition:right .4s cubic-bezier(.33,.1,.25,1);position:fixed;top:24px;right:24px}#lightBtn.is-active{color:#d9efff;background:linear-gradient(135deg,#4da6ff61,#4da6ff29);border-color:#70c1ffbf;box-shadow:0 0 24px #4da6ff61}#bgColorSwatch{border-radius:var(--radius-md);border:2px solid var(--glass-border);cursor:pointer;width:42px;height:42px;transition:all var(--transition-smooth);background-color:#0d1525;position:relative;box-shadow:0 0 8px #0000004d}#bgColorSwatch:hover{border-color:var(--accent);transform:scale(1.05);box-shadow:0 0 14px #4da6ff66}#bgColorHex{color:var(--text-secondary);letter-spacing:.3px;font-size:13px;font-weight:500}#resetBgColorBtn:hover{border-color:var(--accent);color:var(--accent);background:#4da6ff1a}#modelPanel::-webkit-scrollbar{width:6px}#lightPanel::-webkit-scrollbar{width:6px}#modelPanel::-webkit-scrollbar-track{background:#ffffff08;border-radius:10px;margin:8px 0}#lightPanel::-webkit-scrollbar-track{background:#ffffff08;border-radius:10px;margin:8px 0}#modelPanel::-webkit-scrollbar-thumb{background:#4da6ff80;border-radius:10px}#lightPanel::-webkit-scrollbar-thumb{background:#4da6ff80;border-radius:10px}#modelPanel::-webkit-scrollbar-thumb:hover{background:var(--accent)}#lightPanel::-webkit-scrollbar-thumb:hover{background:var(--accent)}#modelPanel,#lightPanel{scrollbar-width:thin;scrollbar-color:#4da6ff80 #ffffff08}#aiBtn{z-index:35;position:fixed;bottom:80px;right:24px}#aiBtn.is-active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 24px #4da6ff73}.ai-chat-panel{z-index:40;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:min(420px,100vw - 32px);height:min(560px,100vh - 120px);max-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(30px);color:var(--text-primary);opacity:0;pointer-events:none;transition:opacity var(--transition-smooth), transform var(--transition-smooth);flex-direction:column;display:flex;position:fixed;bottom:80px;right:24px;overflow:hidden;transform:translateY(18px)scale(.98)}.ai-chat-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.ai-chat-header{border-bottom:1px solid var(--glass-border);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.ai-chat-heading{flex-direction:column;gap:6px;min-width:0;display:flex}.ai-chat-title{letter-spacing:.3px;font-size:16px;font-weight:700}.ai-context-badge{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--accent);background:#4da6ff1f;border:1px solid #4da6ff52;border-radius:999px;align-self:flex-start;padding:3px 8px;font-size:12px;font-weight:600;overflow:hidden}.ai-close-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-smooth);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.ai-close-btn:hover{border-color:var(--glass-border);color:#fff;background:#ffffff14}.ai-messages{flex-direction:column;flex:1;gap:12px;padding:18px;display:flex;overflow-y:auto}.ai-messages::-webkit-scrollbar{width:6px}.ai-messages::-webkit-scrollbar-track{background:#ffffff08;border-radius:10px}.ai-messages::-webkit-scrollbar-thumb{background:#4da6ff80;border-radius:10px}.ai-message{width:100%;display:flex}.ai-message-user{justify-content:flex-end}.ai-message-assistant{justify-content:flex-start}.ai-bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:84%;padding:10px 13px;font-size:14px;line-height:1.55}.ai-message-user .ai-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ai-message-assistant .ai-bubble{color:var(--text-primary);background:#ffffff14;border:1px solid #ffffff14;border-bottom-left-radius:4px}.ai-bubble-loading{color:var(--text-dim);font-style:italic}.ai-bubble p{margin:0}.ai-bubble p+p{margin-top:6px}.ai-bubble h1,.ai-bubble h2,.ai-bubble h3,.ai-bubble h4,.ai-bubble h5,.ai-bubble h6{margin:8px 0 4px;font-weight:700;line-height:1.3}.ai-bubble h1{font-size:18px}.ai-bubble h2{font-size:16px}.ai-bubble h3,.ai-bubble h4,.ai-bubble h5,.ai-bubble h6{font-size:14px}.ai-bubble ul,.ai-bubble ol{margin:0;padding-left:18px}.ai-bubble li{margin:2px 0}.ai-bubble blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);margin:8px 0;padding:4px 0 4px 12px}.ai-bubble blockquote p{margin:0}.ai-bubble code{color:#dce8ff;background:#ffffff1a;border-radius:4px;padding:1px 5px;font-family:Cascadia Code,Consolas,monospace;font-size:13px}.ai-bubble pre{border:1px solid var(--glass-border);white-space:pre;background:#00000047;border-radius:8px;margin:8px 0;padding:10px 12px;overflow-x:auto}.ai-bubble pre code{color:inherit;white-space:pre;background:0 0;padding:0}.ai-bubble hr{border:0;border-top:1px solid var(--glass-border);margin:10px 0}.ai-bubble a{color:var(--accent);text-decoration:underline}.ai-bubble del{opacity:.7}.ai-bubble br{content:"";margin:2px 0;display:block}.ai-chat-form{border-top:1px solid var(--glass-border);align-items:flex-end;gap:10px;padding:12px 14px;display:flex}#aiInput{resize:none;border:1px solid var(--glass-border);border-radius:var(--radius-sm);min-height:42px;max-height:120px;color:var(--text-primary);transition:border-color var(--transition-smooth), background var(--transition-smooth);background:#ffffff0f;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.4}#aiInput:focus{border-color:var(--accent);background:#4da6ff14}#aiInput:disabled{opacity:.65}.ai-send-btn{border-radius:var(--radius-sm);width:42px;height:42px;color:var(--accent);cursor:pointer;transition:all var(--transition-smooth);background:#4da6ff26;border:1px solid #4da6ff59;flex:none;justify-content:center;align-items:center;display:inline-flex}.ai-send-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 18px #4da6ff73}.ai-send-btn:disabled{cursor:not-allowed;opacity:.55}@media (width<=640px){#aiBtn{bottom:78px;right:16px}.ai-chat-panel{width:calc(100vw - 32px);height:min(72vh,620px);max-height:calc(100vh - 32px);bottom:16px;right:16px}.ai-bubble{max-width:88%}}.library-view{color:var(--text-primary);background:radial-gradient(1100px 520px at 82% -8%, #4da6ff29, transparent 62%), radial-gradient(900px 480px at -8% 108%, #26d6b71c, transparent 58%), linear-gradient(#ffffff06 1px, transparent 1px), linear-gradient(90deg, #ffffff06 1px, transparent 1px), var(--bg-app);isolation:isolate;background-size:auto,auto,48px 48px,48px 48px,auto;position:fixed;inset:0;overflow:hidden auto}.grid-light-layer{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.library-header,.library-toolbar,.library-grid,.library-empty{z-index:1;position:relative}.grid-sweep{opacity:0;filter:blur(.15px);will-change:transform, opacity;display:block;position:absolute}.grid-sweep-h{left:-180px;top:var(--line-position,48px);background:linear-gradient(90deg,#0000,#80d2ff14 18%,#74cbfff2 58%,#bbedff38 86%,#0000);width:170px;height:2px;box-shadow:0 0 8px #4da6ffa6,0 0 24px #4da6ff3d}.grid-sweep-v{left:var(--line-position,48px);background:linear-gradient(#0000,#80d2ff14 18%,#74cbfff2 58%,#bbedff38 86%,#0000);width:2px;height:170px;top:-180px;box-shadow:0 0 8px #4da6ffa6,0 0 24px #4da6ff3d}.grid-sweep-h.is-reversed{left:auto;right:-180px}.grid-sweep-v.is-reversed{top:auto;bottom:-180px}.grid-sweep-h.is-running{animation:grid-sweep-horizontal var(--sweep-duration,3.2s) var(--sweep-delay,0s) cubic-bezier(.2, .65, .3, 1) both}.grid-sweep-v.is-running{animation:grid-sweep-vertical var(--sweep-duration,3.2s) var(--sweep-delay,0s) cubic-bezier(.2, .65, .3, 1) both}.grid-sweep-h.is-running.is-reversed{animation-name:grid-sweep-horizontal-reverse}.grid-sweep-v.is-running.is-reversed{animation-name:grid-sweep-vertical-reverse}@keyframes grid-sweep-horizontal{0%{opacity:0;transform:translate(0)}12%{opacity:.85}76%{opacity:.55}to{opacity:0;transform:translate(calc(100vw + 360px))}}@keyframes grid-sweep-vertical{0%{opacity:0;transform:translateY(0)}12%{opacity:.85}76%{opacity:.55}to{opacity:0;transform:translateY(calc(100vh + 360px))}}@keyframes grid-sweep-horizontal-reverse{0%{opacity:0;transform:translate(0)}12%{opacity:.85}76%{opacity:.55}to{opacity:0;transform:translate(calc(-100vw - 360px))}}@keyframes grid-sweep-vertical-reverse{0%{opacity:0;transform:translateY(0)}12%{opacity:.85}76%{opacity:.55}to{opacity:0;transform:translateY(calc(-100vh - 360px))}}#libraryView[hidden] .grid-sweep{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.grid-sweep{display:none}}.library-view:before,.library-view:after{content:"";z-index:-1;pointer-events:none;filter:blur(4px);border-radius:50%;position:fixed}.library-view:before{aspect-ratio:1;border:1px solid #5bb4ff1f;width:min(48vw,700px);top:14vh;right:-13vw;box-shadow:0 0 100px #4da6ff1a,inset 0 0 80px #4da6ff0f}.library-view:after{aspect-ratio:1;background:radial-gradient(circle,#26d6b717,#0000 66%);width:min(46vw,620px);bottom:-23vw;left:-12vw}.library-header{align-items:center;gap:clamp(20px,3.5vw,30px);min-height:clamp(190px,27vw,280px);padding:clamp(38px,7vw,86px) clamp(20px,5vw,64px) 30px;display:flex;position:relative}.library-kicker{color:#8bc9ff;letter-spacing:2px;align-items:center;gap:8px;margin-bottom:13px;font-size:10px;font-weight:700;display:flex}.library-kicker span{background:linear-gradient(90deg,#5eb6ff,#5eb6ff29);width:22px;height:1px;box-shadow:0 0 9px #5eb6ffb3}.library-heading h1{letter-spacing:1px;background:linear-gradient(120deg,#fff 0%,#dbe9ff 45%,#72c4ff 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(34px,5vw,58px);font-weight:700}.library-heading{transform:translateY(-5px)}.library-subtitle{color:var(--text-secondary);letter-spacing:.3px;margin:8px 0 0;font-size:clamp(13px,1.8vw,16px)}.library-header-orbit{aspect-ratio:1;border:1px solid #78c6ff33;border-radius:50%;width:clamp(120px,17vw,210px);transition:filter .24s,box-shadow .24s;animation:9s ease-in-out infinite orbit-drift;position:absolute;top:50%;right:clamp(34px,9vw,150px);transform:translateY(-50%)rotate(-22deg);box-shadow:inset 0 0 45px #4da6ff14,0 0 45px #4da6ff14}.library-header-orbit:hover{filter:brightness(1.18)saturate(1.15);box-shadow:inset 0 0 55px #4da6ff24,0 0 62px #4da6ff38}.library-header-orbit:before,.library-header-orbit:after{content:"";border:1px solid #78c6ff21;border-radius:50%;position:absolute}.library-header-orbit:before{inset:14%}.library-header-orbit:after{inset:29%}.library-header-orbit span,.library-header-orbit i,.library-header-orbit b{background:#b7e4ff;border-radius:50%;display:block;position:absolute;box-shadow:0 0 12px #57b5ff}.library-header-orbit span{width:6px;height:6px;top:7%;left:26%}.library-header-orbit i{width:4px;height:4px;bottom:14%;right:8%}.library-header-orbit b{background:#65e0c0;width:8px;height:8px;top:45%;left:45%;box-shadow:0 0 16px #3cdbb5}.library-header-orbit span,.library-header-orbit i,.library-header-orbit b{transition:transform .36s cubic-bezier(.2,.8,.2,1),box-shadow .24s}.library-header-orbit span{transform:translate(calc(var(--orbit-x,0px) * .55), calc(var(--orbit-y,0px) * .55))}.library-header-orbit i{transform:translate(calc(var(--orbit-x,0px) * -.8), calc(var(--orbit-y,0px) * -.8))}.library-header-orbit b{transform:translate(var(--orbit-x,0px), var(--orbit-y,0px))}.library-header-orbit:hover b{box-shadow:0 0 22px #3cdbb5,0 0 42px #3cdbb573}@keyframes orbit-drift{50%{transform:translateY(-50%)rotate(14deg)scale(1.035)}}.library-toolbar{z-index:5;-webkit-backdrop-filter:blur(20px);background:linear-gradient(120deg,#16263dd1,#0b1422b3);border:1px solid #83c3ff21;border-radius:18px;flex-direction:column;gap:14px;margin:0 clamp(12px,4vw,54px);padding:18px clamp(12px,2vw,22px) 16px;display:flex;position:sticky;top:0;box-shadow:inset 0 1px #ffffff14,0 16px 44px #0000002e}.search-box{width:100%;max-width:none;height:54px;transition:border-color var(--transition-smooth), box-shadow var(--transition-smooth), background var(--transition-smooth);background:linear-gradient(120deg,#4da6ff1a,#ffffff09);border:1px solid #ffffff1a;border-radius:13px;align-items:center;gap:12px;padding:0 18px;display:flex;box-shadow:inset 0 1px #ffffff0a}.search-box:focus-within{background:linear-gradient(120deg,#4da6ff1a,#ffffff0a);border-color:#4da6ffb3;box-shadow:0 0 0 4px #4da6ff1f,0 0 24px #4da6ff24}.search-box svg{width:20px;height:20px;color:var(--accent);flex:none}.search-box input{min-width:0;height:100%;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;font-family:inherit;font-size:15px}.search-box input::placeholder{color:var(--text-dim)}.filter-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.filter-label{color:var(--text-dim);letter-spacing:.4px;flex:none;min-width:64px;padding-left:3px;font-size:11px;font-weight:600}.filter-chips{flex-wrap:wrap;gap:8px;display:flex}.filter-chip{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:linear-gradient(120deg,#ffffff0e,#ffffff05);border:1px solid #ffffff17;border-radius:999px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s,color .15s}.filter-chip:hover{color:#fff;background:#4da6ff21;border-color:#4da6ff8c;transform:translateY(-2px)}.filter-chip.active{color:#fff;background:linear-gradient(120deg,#4da6ff47,#26d6b72e);border-color:#4da6ffb3;box-shadow:inset 0 1px #ffffff26,0 0 16px #4da6ff40}.filter-chip:active{transform:scale(.95)}.library-toolbar-footer{color:var(--text-dim);letter-spacing:.35px;align-items:center;gap:10px;padding:2px 4px 0;font-size:11px;display:flex}#libraryResultCount{color:#a8d8ff;font-weight:600}.toolbar-line{background:#ffffff29;width:1px;height:12px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px;padding:24px clamp(20px,5vw,64px) 70px;display:grid}.model-card{cursor:pointer;animation:.43s both card-enter;animation-delay:calc(var(--card-index) * 35ms);background:linear-gradient(160deg,#223858d1,#0a1321e6);border:1px solid #ffffff14;border-radius:17px;flex-direction:column;transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 26px #0000003d}@keyframes card-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.model-card:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;opacity:0;pointer-events:none;transition:opacity var(--transition-smooth);background:linear-gradient(140deg,#4da6ff73,#0000 42%,#26d6b759);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.model-card:hover,.model-card:focus-visible{border-color:#4da6ff8c;outline:none;transform:translateY(-8px)scale(1.012);box-shadow:0 22px 44px #0000006b,0 0 28px #4da6ff2e}.model-card:hover:before,.model-card:focus-visible:before{opacity:1}.model-card-thumb{aspect-ratio:4/3;background:#101a2c;position:relative;overflow:hidden}.model-card-thumb:after{content:"";pointer-events:none;z-index:2;background-color:#0000;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.model-card-thumb-img,.model-card-thumb-fallback{width:100%;height:100%;position:absolute;inset:0}.model-card-thumb-img{object-fit:cover;z-index:3;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .3s}.model-card:hover .model-card-thumb-img{filter:saturate(1.12)contrast(1.04);transform:scale(1.08)}.model-card-thumb-fallback{z-index:1;justify-content:center;align-items:center;display:flex}.model-card-thumb-icon{color:#ffffffd1;filter:drop-shadow(0 4px 10px #00000059);justify-content:center;align-items:center;width:52px;height:52px;display:flex}.model-card-thumb-icon svg{width:100%;height:100%}.model-card-body{flex-direction:column;gap:10px;padding:14px 15px 16px;display:flex}.model-card-title{letter-spacing:.3px;text-overflow:ellipsis;white-space:nowrap;cursor:default;margin:0;font-size:15px;font-weight:600;overflow:hidden}.model-name-tooltip{z-index:80;color:#e5f4ff;letter-spacing:.25px;pointer-events:none;opacity:0;background:linear-gradient(135deg,#1e3a5bf5,#07101df5);border:1px solid #70c1ff7a;border-radius:10px;max-width:min(360px,100vw - 24px);padding:10px 13px;font-size:13px;line-height:1.45;transition:opacity .15s,transform .15s;position:fixed;transform:translateY(5px)scale(.97);box-shadow:inset 0 1px #ffffff1f,0 12px 28px #0000006b,0 0 22px #4da6ff38}.model-name-tooltip.is-visible{opacity:1;transform:translateY(0)scale(1)}.model-name-tooltip[hidden]{display:none}.model-card-tags{flex-wrap:wrap;gap:6px;display:flex}.model-tag{letter-spacing:.3px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.model-tag-type{color:#9acdff;background:#4da6ff24;border:1px solid #4da6ff38}.model-tag-material{color:var(--text-secondary);background:#ffffff0d;border:1px solid #ffffff12}.library-empty{text-align:center;color:var(--text-dim);background:linear-gradient(135deg,#4da6ff0f,#ffffff05);border:1px solid #83c3ff1a;border-radius:18px;margin:18px clamp(20px,5vw,64px);padding:76px 24px}.library-empty p{margin:0 0 6px;font-size:16px}.library-empty-hint{font-size:13px}#viewerView{position:relative}#canvasContainer{z-index:0;position:fixed;inset:0}#canvasContainer canvas{width:100%;height:100%;display:block}@media (width<=640px){.library-header-orbit{display:none}.library-header{min-height:180px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding-left:16px;padding-right:16px}.library-header{padding-left:16px;padding-right:16px}.library-toolbar{margin-left:12px;margin-right:12px;padding-left:16px;padding-right:16px}.model-card-body{padding:11px 12px 13px}.model-card-title{font-size:14px}}
