:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#272724;--muted:#77736c;--accent:#9b7546;--accent-soft:#d7c3a5;--panel:#f8f6f1e3;--line:#35302929}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0;overflow:hidden}body{color:var(--ink);background:#dcd9d2;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif}button,input{font:inherit}button{color:inherit}.viewer-shell{top:var(--viewer-top,0px);width:100vw;height:var(--viewer-height,100dvh);background:#dcd9d2;min-height:0;position:fixed;left:0;overflow:hidden}#garage-canvas{position:absolute;inset:0}#garage-canvas canvas{outline:none;width:100%;height:100%;display:block}.brand-lockup{z-index:4;pointer-events:none;text-shadow:0 1px 14px #ffffff80;position:absolute;top:30px;left:34px}.brand-lockup p{color:var(--accent);letter-spacing:.22em;margin:0 0 6px;font-size:10px;font-weight:700}.brand-lockup h1{letter-spacing:-.035em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,3.2vw,49px);font-weight:400}.brand-lockup span{color:var(--muted);letter-spacing:.06em;margin-top:7px;font-size:11px;display:block}.control-panel{z-index:5;width:282px;max-height:calc(var(--viewer-height,100dvh) - 44px);background:var(--panel);-webkit-backdrop-filter:blur(20px)saturate(.95);backdrop-filter:blur(20px)saturate(.95);border:1px solid #ffffffa6;border-radius:18px;padding:22px;transition:transform .32s,opacity .22s;position:absolute;top:22px;right:22px;overflow-y:auto;box-shadow:0 24px 65px #3c34292b,0 2px 10px #3c342914}.control-panel:not(.is-open){opacity:0;pointer-events:none;transform:translate(calc(100% + 40px))}.control-head{border-bottom:1px solid var(--line);padding-bottom:17px}.control-head span{color:var(--accent);letter-spacing:.2em;margin-bottom:5px;font-size:9px;font-weight:800;display:block}.control-head strong{font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:400}.control-panel form{margin:19px 0 16px}.control-panel label{color:var(--muted);margin-bottom:8px;font-size:11px;display:block}.search-row{grid-template-columns:1fr auto;gap:7px;display:grid}.control-panel input,.control-panel button{border:1px solid var(--line);background:#ffffffa3;border-radius:9px;min-height:42px}.control-panel input{outline:none;min-width:0;padding:0 12px}.control-panel input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #9b75461f}.search-row button{color:#fff;cursor:pointer;background:#735938;border-color:#6f5434;padding:0 14px}.control-panel small{min-height:15px;color:var(--muted);margin-top:6px;font-size:10px;display:block}.vehicle-controls{border-top:1px solid var(--line);opacity:.58;padding:15px 0 17px}.vehicle-controls.is-available{opacity:1}.vehicle-toggle{cursor:pointer;align-items:center;gap:9px;color:var(--ink)!important;margin:0 0 11px!important;display:flex!important}.vehicle-toggle input{opacity:0;pointer-events:none;width:1px;height:1px;min-height:0;position:absolute}.vehicle-toggle i{background:#bbb6ad;border-radius:10px;width:30px;height:17px;margin-left:auto;transition:background .2s;position:relative}.vehicle-toggle i:after{content:"";background:#fff;border-radius:50%;width:11px;height:11px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000002e}.vehicle-toggle input:checked~i{background:var(--accent)}.vehicle-toggle input:checked~i:after{transform:translate(13px)}.vehicle-toggle input:focus-visible~i{outline:2px solid var(--accent);outline-offset:2px}.vehicle-toggle input:disabled~i{opacity:.5}.dimension-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.dimension-grid label{gap:5px;margin:0!important;display:grid!important}.dimension-grid label span{color:var(--muted);font-size:9px}.dimension-grid input{text-align:center;width:100%;min-height:36px;padding:0 7px;font-size:11px}.dimension-grid input:disabled{opacity:.48}.vehicle-controls small{margin-top:8px}.layer-list{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:6px;padding:14px 0 17px;display:grid}.layer-list button{min-height:34px;color:var(--muted);cursor:pointer;background:0 0;border-color:#0000;justify-content:flex-start;align-items:center;gap:9px;padding:0 8px;font-size:12px;display:flex}.layer-list button:hover{background:#9b754612}.layer-list button i{background:0 0;border:1px solid #9c978f;border-radius:50%;width:8px;height:8px}.layer-list button.is-active{color:var(--ink)}.layer-list button.is-active i{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 3px #9b75461f}.reset-button{cursor:pointer;width:100%;margin-top:17px;background:#ffffffbf!important}.reset-button:hover{border-color:var(--accent)}.mouse-hint{text-align:center;color:#8b877f;letter-spacing:.04em;margin:12px 0 0;font-size:9px}.panel-toggle{z-index:6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-height:34px;color:var(--muted);cursor:pointer;background:#f8f6f1cc;border:1px solid #ffffff9e;border-radius:18px;padding:0 12px;font-size:10px;transition:right .32s;position:absolute;top:28px;right:318px;box-shadow:0 8px 24px #3c342917}.panel-toggle[aria-expanded=false]{right:22px}.model-badge{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--muted);background:#f8f6f1b3;border:1px solid #ffffff8f;border-radius:20px;align-items:center;gap:7px;padding:8px 12px;font-size:10px;display:flex;position:absolute;bottom:28px;left:34px}.model-badge span{background:#bd9b69;border-radius:50%;width:7px;height:7px}.model-badge span.ready{background:#6e8d6b}.model-badge span.error{background:#a95f55}.status-overlay{z-index:3;text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f8f6f1e6;border:1px solid #ffffffb3;border-radius:16px;width:min(360px,100vw - 40px);padding:28px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #3b342b24}.status-mark{border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:25px;height:25px;margin:0 auto 13px;animation:1s linear infinite spin;display:block}.status-error .status-mark{background:#a95f55;border:0;animation:none}.status-overlay strong{font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:400}.status-overlay p{color:var(--muted);margin:7px 0 14px;font-size:11px;line-height:1.6}.status-overlay>i{background:#9b754621;border-radius:2px;width:100%;height:3px;display:block;position:relative;overflow:hidden}.status-overlay>i:after{content:"";width:var(--model-progress);background:var(--accent);min-width:8%;transition:width .2s;position:absolute;inset:0 auto 0 0}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=720px),(height<=520px) and (width<=1024px){.brand-lockup{top:calc(env(safe-area-inset-top,0px) + 16px);left:calc(env(safe-area-inset-left,0px) + 16px)}.brand-lockup h1{font-size:31px}.control-panel{top:auto;right:calc(env(safe-area-inset-right,0px) + 12px);bottom:calc(env(safe-area-inset-bottom,0px) + 72px);width:min(360px, calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:max(100px, calc(var(--viewer-height,100dvh) - 160px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:18px;overflow-y:auto}.control-panel:not(.is-open){visibility:hidden;transform:translateY(24px)}.control-panel input,.control-panel button,.panel-toggle,.vehicle-toggle{min-height:44px}.control-panel label{font-size:13px}.control-panel input{font-size:16px}.control-panel small,.dimension-grid label span{font-size:12px}.layer-list button{font-size:14px}.mouse-hint{font-size:11px;line-height:1.7}.vehicle-toggle i{width:38px;height:22px}.vehicle-toggle i:after{width:16px;height:16px}.vehicle-toggle input:checked~i:after{transform:translate(16px)}.panel-toggle,.panel-toggle[aria-expanded=false]{top:auto;right:calc(env(safe-area-inset-right,0px) + 12px);bottom:calc(env(safe-area-inset-bottom,0px) + 12px);touch-action:manipulation;min-width:104px;font-size:13px}.model-badge{left:calc(env(safe-area-inset-left,0px) + 16px);bottom:calc(env(safe-area-inset-bottom,0px) + 22px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
