html,body{min-width:320px;min-height:100%}body{margin:0}button,input,textarea,select{font:inherit}:root{font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;background:#090909}button,input,select{font:inherit}button,a,input,summary,select{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.tool-app{--bg:#090909;--surface:#101010;--ink:#eee;--muted:#999;--line:#333;--subtle:#1b1b1b;--accent:#dfff00;--danger:#ff8b81;min-height:100svh;background:var(--bg);color:var(--ink);padding:0 clamp(20px,4vw,64px) 40px}.tool-app[data-theme=light]{--bg:#fff;--surface:#fafafa;--ink:#111;--muted:#666;--line:#d5d5d5;--subtle:#eee;--danger:#b92319;color-scheme:light}.tool-app[data-theme=dark]{color-scheme:dark}.site-header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:14px;font-weight:600;letter-spacing:-.02em}.site-header nav{display:flex;align-items:center;gap:36px;font-size:11px;letter-spacing:.06em}.site-header nav>a:hover{text-decoration:underline;text-underline-offset:6px}.site-header nav button{font-size:10px;letter-spacing:.04em;background:none;border:1px solid var(--line);color:inherit;padding:12px 15px;display:flex;gap:22px;align-items:center}.site-header nav button:hover{border-color:var(--ink)}main{max-width:1800px;margin:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:36px 0 32px}.page-heading h1{margin:0;font-size:clamp(44px,5.6vw,88px);line-height:.98;font-weight:700;letter-spacing:-.055em}.page-heading h1 span{display:inline-block;font-size:.36em;font-weight:500;letter-spacing:-.03em;margin-left:.5em}.page-heading>p{font-size:12px;line-height:1.9;color:var(--muted);margin:0 0 2px;flex-shrink:0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:start}.preview-workspace{min-width:0;position:sticky;top:20px;border-right:1px solid var(--line);padding-right:28px}.canvas-heading{display:flex;justify-content:space-between;gap:12px;padding:19px 0;font-size:10px;letter-spacing:.09em;color:var(--muted)}.preview-area{position:relative;min-height:420px;height:clamp(420px,58vh,780px);background:var(--surface);overflow:hidden;border:1px solid var(--line)}.preview-panel,.splat-canvas-shell,.splat-canvas-host{position:absolute;inset:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;overflow:hidden}.splat-canvas-host canvas{display:block;width:100%!important;height:100%!important}.splat-empty,.preview-title{display:none}.preview-toolbar{position:absolute;bottom:14px;left:14px;right:14px;z-index:3;pointer-events:none;text-align:center}.preview-status{font-size:10px;color:var(--muted);background:var(--bg);padding:6px 9px}.preview-workspace:not(.has-result) .preview-toolbar{display:none}.empty-scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:32px;pointer-events:none}.empty-scene img{max-width:68%;max-height:52%;object-fit:contain;margin-bottom:28px}.empty-scene h2{font-size:clamp(21px,2.2vw,32px);font-weight:500;letter-spacing:-.045em;margin:0 0 13px}.empty-scene p{font-size:12px;color:var(--muted);line-height:1.8;margin:0}.scene-status{min-height:78px;padding:18px 0 20px;font-size:11px;line-height:1.7}.status-overlay-row{display:flex;align-items:flex-start;gap:9px}.status-dot{display:block;flex-shrink:0;margin-top:6px;width:6px;height:6px;background:var(--accent)}.status-dot.is-busy{animation:status-pulse 1.2s infinite}.status-summary{font-size:10px;color:var(--muted);margin:6px 0 0 15px}.status-error{color:var(--danger);overflow-wrap:anywhere;margin:8px 0 0 15px}.progress-bar{height:2px;background:var(--line);margin:12px 0 0 15px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);transition:width .2s}.tool-panel{padding:0 0 0 28px}.control-section{padding:20px 0;border-bottom:1px solid var(--line)}.control-section h2{display:flex;gap:16px;font-size:11px;line-height:1.5;letter-spacing:.04em;font-weight:500;margin:0 0 16px}.control-section h2>span{color:var(--muted);font-size:10px}.button{width:100%;min-height:42px;background:transparent;border:1px solid var(--line);padding:11px 13px;color:var(--ink);text-align:left;font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:12px;line-height:1.5}.button:hover:enabled{background:var(--subtle);border-color:var(--ink)}.button:disabled{opacity:.36}.primary-button{margin-top:16px;border-color:var(--accent);background:var(--accent);color:#090909;font-size:14px;font-weight:600;min-height:50px}.primary-button>span{font-size:9px;letter-spacing:.01em;font-weight:500}.primary-button:hover:enabled{background:#efffb4;border-color:#efffb4}.primary-button:disabled{background:var(--subtle);border-color:var(--line);color:var(--muted);opacity:1}.control-note{font-size:10px;line-height:1.9;color:var(--muted);margin:10px 0 0}.text-button{border:0;padding:0;background:none;color:var(--muted);font-size:10px;text-decoration:underline;text-underline-offset:4px;margin-top:10px}.text-button:hover:enabled{color:var(--ink)}.text-button:disabled{opacity:.4}.upload-button{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;width:100%;min-height:126px;padding:20px 12px;border:1px solid var(--line);color:var(--ink);background:var(--surface);font-size:12px}.upload-button:hover:enabled{border-color:var(--ink)}.upload-button:disabled{opacity:.5}.upload-plus{font-size:27px;font-weight:300;line-height:1}.upload-button small{font-size:9px;letter-spacing:.08em;color:var(--muted)}.upload-button.has-image{padding:0;min-height:0;max-height:160px;overflow:hidden}.upload-button img{display:block;width:100%;height:130px;object-fit:contain;background:#151515}.upload-button.has-image>span{position:absolute;bottom:8px;right:8px;font-size:10px;background:#090909;color:#eee;padding:5px 8px}.image-caption{display:flex;justify-content:space-between;gap:12px;font-size:9px;color:var(--muted);line-height:1.6;margin-top:7px}.image-caption>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.image-caption>span:last-child{flex-shrink:0}.model-ready{display:flex;justify-content:space-between;align-items:center;min-height:42px;border:1px solid var(--line);font-size:11px;padding:11px 13px}.model-ready>span:last-child{background:var(--accent);color:#090909;width:17px;height:17px;display:grid;place-items:center;font-size:10px}.advanced summary,.viewer-controls summary{cursor:pointer;font-size:10px;color:var(--muted);list-style-position:inside;line-height:1.7}.advanced-fields{display:grid;gap:12px;padding-top:16px}.advanced-fields .text-button{text-align:left;margin:0}.number-field{font-size:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted)}.number-field input[type=number],.number-field select{width:105px;min-width:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);font-size:11px;padding:7px 5px;text-align:right;border-radius:0}.number-field input[type=color]{width:50px;height:28px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:0}.checkbox-field{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px}.checkbox-field input{accent-color:#b5c900}.flip-buttons{display:flex;gap:6px}.flip-buttons .button{padding:8px;min-height:32px;font-size:10px;justify-content:center}.viewer-controls{padding:18px 0 22px}.viewer-controls summary{font-size:10px;letter-spacing:.04em}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(min-width:1700px){.workspace{grid-template-columns:minmax(0,1fr) 340px}.tool-panel{padding-left:32px}.preview-workspace{padding-right:32px}.upload-button{min-height:144px}}@media(max-width:1000px){.page-heading{align-items:flex-start;flex-direction:column;gap:16px}.page-heading>p br{display:none}.page-heading>p{font-size:11px}.workspace{grid-template-columns:minmax(0,1fr) 270px}.tool-panel{padding-left:20px}.preview-workspace{padding-right:20px}.empty-scene{padding:20px}.empty-scene p{font-size:11px}}@media(max-width:700px){.tool-app{padding:0 18px 26px}.site-header{height:72px;gap:12px;align-items:center}.brand{font-size:11px;max-width:155px}.site-header nav{gap:14px;font-size:9px}.site-header nav button{font-size:8px;padding:9px 8px;gap:8px}.site-header nav>a{font-size:9px}.page-heading{padding:28px 0 24px;gap:16px}.page-heading h1{font-size:46px}.page-heading h1 span{display:block;margin:13px 0 0;font-size:22px;letter-spacing:-.03em}.page-heading>p{font-size:11px;line-height:1.8;max-width:290px}.page-heading>p br{display:initial}.workspace{display:flex;flex-direction:column}.preview-workspace{width:100%;position:relative;top:0;padding:0;border-right:0;border-bottom:1px solid var(--line)}.canvas-heading{font-size:9px;padding:15px 0}.preview-area{height:260px;min-height:260px}.empty-scene h2{font-size:22px}.empty-scene img{max-height:48%;margin-bottom:20px}.scene-status{min-height:72px;font-size:10px;padding:15px 0}.tool-panel{padding:0;width:100%;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;align-items:start}.control-section{height:100%;padding:20px 0}.control-section h2{font-size:10px;gap:10px;margin-bottom:13px}.control-note{font-size:9px}.upload-button{min-height:124px;font-size:11px}.upload-button img{height:124px}.upload-button small{font-size:8px}.primary-button{flex-wrap:wrap;gap:4px;font-size:12px;min-height:50px;padding:10px}.primary-button>span{font-size:8px}.viewer-controls{grid-column:1/-1}.advanced-fields .number-field{flex-wrap:wrap}.advanced-fields .number-field input[type=number]{width:100%}.viewer-controls .advanced-fields{grid-template-columns:1fr 1fr;column-gap:24px;align-items:center}.viewer-controls .number-field{flex-wrap:nowrap}.viewer-controls .number-field input[type=number]{width:80px}.viewer-controls .advanced-fields>.button,.viewer-controls .flip-buttons{grid-column:1/-1}}@media(max-width:380px){.site-header nav{gap:8px}.brand{font-size:10px}.tool-panel{column-gap:14px}.page-heading h1{font-size:42px}.primary-button>span{font-size:7px}}@media(min-width:701px)and (max-height:850px){.site-header{height:72px}.page-heading{padding:24px 0}.page-heading h1{font-size:64px}.preview-area{min-height:320px;height:calc(100svh - 300px)}.control-section{padding:14px 0}.control-section h2{margin-bottom:12px}.upload-button{min-height:92px;padding:12px}.upload-button img{height:92px}.control-note{margin-top:8px}.primary-button{margin-top:12px;min-height:46px}.canvas-heading{padding:15px 0}.scene-status{padding-top:14px}}.numeric-parameter{display:block}.number-field-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.number-field-header label{cursor:pointer}.parameter-range{appearance:none;-webkit-appearance:none;display:block;width:100%;height:28px;margin:5px 0 0;padding:0 5px;border:0;border-radius:0;background:transparent;cursor:ew-resize;touch-action:pan-y}.parameter-range::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--accent) var(--range-progress),var(--line) var(--range-progress))}.parameter-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:10px;height:12px;margin-top:-5px;border:1px solid var(--ink);border-radius:0;background:var(--ink)}.parameter-range:hover::-webkit-slider-thumb,.parameter-range:focus-visible::-webkit-slider-thumb{background:var(--accent);border-color:var(--accent)}.parameter-range::-moz-range-track{height:2px;background:var(--line)}.parameter-range::-moz-range-progress{height:2px;background:var(--accent)}.parameter-range::-moz-range-thumb{width:8px;height:10px;border:1px solid var(--ink);border-radius:0;background:var(--ink)}.parameter-range:disabled{cursor:not-allowed}.numeric-parameter[data-disabled]{opacity:.45}@media(max-width:700px){.advanced-fields .numeric-parameter input[type=number]{width:82px;flex-shrink:0}.number-field-header{flex-wrap:wrap;gap:7px}.viewer-controls .number-field-header{flex-wrap:wrap}.parameter-range{height:36px;margin-top:3px}}
