@charset "UTF-8";.candidate-notice,.scope-note,.model-details,#pipeline-status,.spatial-boundary,.explode-controls>small{display:none!important}#candidate-notice[hidden],#demo-status[hidden],#pipeline-status[hidden]{display:none!important}#pipeline-controls #lighting-optin{width:100%;min-height:42px}#pipeline-controls #lighting-optin[aria-pressed=true]{border-color:#547b89;background:#e6eff1;color:#294d5c}.spatial-inspector{margin-top:20px}@font-face{font-family:"Villa Source Han Serif";src:url(/assets/villa-source-han-serif-bold-BVVfk3vK.woff) format("woff");font-style:normal;font-weight:700;font-display:swap}.viewport-caption h1#demo-heading,.viewport-caption #demo-subtitle,.inspector .inspector-head h2{font-family:"Villa Source Han Serif","Source Han Serif CN",思源宋体 CN,serif;font-weight:700;font-synthesis:none}.viewport-caption h1#demo-heading{max-width:none;white-space:nowrap;text-wrap:nowrap}.headline-home .headline-phrase{white-space:nowrap}.viewport-caption #demo-subtitle{display:none;margin:0 0 12px;font-size:18px;line-height:1.5;letter-spacing:.03em;color:#486572}.viewport-caption:has(.headline-home) #demo-subtitle{display:block}#mobile-project-intro{display:none}@media(max-width:720px){.viewport-caption h1#demo-heading{white-space:normal}.headline-home .headline-phrase{display:block}.headline-home .headline-separator{display:none}.viewport-caption #demo-subtitle{font-size:16px;margin-bottom:10px}.viewport-caption:has(.headline-home) #demo-description{display:none}.inspector-head #mobile-project-intro{display:block;width:100%;font-size:11px;line-height:1.9;margin:14px 0 0}}.masthead .project-meta{gap:12px}.masthead .header-entry{min-height:44px;min-width:116px;padding:10px 22px;border:1px solid #a9bcc4;border-radius:3px;background:transparent;color:#2b4552;font-size:13px;font-weight:600;line-height:1.4;font-family:inherit;cursor:pointer;white-space:nowrap}.masthead .header-entry:hover{background:#edf2f3;border-color:#718e9d}.header-entry:focus-visible,.header-menu button:focus-visible{outline:2px solid #547c90;outline-offset:4px}.header-menu{box-sizing:border-box;width:min(460px,calc(100vw - 36px));max-height:calc(100dvh - 48px);padding:26px;border:1px solid #b8c9d0;border-radius:4px;background:#f8fafb;color:#29414d;font-family:inherit}.header-menu::backdrop{background:#14293466}.header-menu-bar{display:flex;align-items:center;justify-content:space-between;gap:20px}.header-menu h2{margin:0;font-size:22px;letter-spacing:.06em}.header-menu-bar button{width:40px;height:40px;border:1px solid #becbd1;background:transparent;color:inherit;font-size:24px;cursor:pointer}.header-menu>p{font-size:12px;color:#71838c;line-height:1.8;margin:12px 0 22px}.header-menu-options{display:grid;gap:12px}.header-menu .header-menu-options>button{display:block;box-sizing:border-box;width:100%;height:auto;padding:18px;border:1px solid #bcccd3;border-radius:3px;background:transparent;text-align:left;font-family:inherit;font-size:16px;font-weight:600;color:#29414d;cursor:pointer}.header-menu .header-menu-options>button:hover{border-color:#688b9a;background:#edf3f5}.header-menu-options>button span{display:block;margin-top:8px;color:#71838c;font-size:11px;font-weight:400;line-height:1.6}@media(max-width:720px){.masthead .project-meta{gap:8px}.masthead .header-entry{min-width:72px;min-height:42px;padding:9px;font-size:11px}.header-menu{padding:22px}.inspector .inspector-head h2{font-size:23px}}@media(max-width:375px){.masthead .brand{font-size:14px;gap:6px}.masthead .header-entry{min-width:65px;padding:8px}}.assembly-mode-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:13px}.assembly-mode-picker button{min-height:40px;padding:7px 2px;border:1px solid #cbd9de;color:#45616b;background:transparent;font-size:11px;cursor:pointer}.assembly-mode-picker button[aria-pressed=true]{background:#345e6b;color:#fff;border-color:#345e6b}.assembly-panel[hidden],.assembly-legacy[hidden],.assembly-explosion-options[hidden],.assembly-stepper[hidden],.assembly-sequence[hidden]{display:none!important}.assembly-style-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:10px 0 6px}.assembly-style-picker button{min-height:40px;border:1px solid #b8cccf;color:#3e6672;background:#f3f7f7;font-size:11px;cursor:pointer}.assembly-style-picker button[aria-pressed=true]{color:#fff;background:#557e7a;border-color:#557e7a}.assembly-stepper{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:12px 0}.assembly-stepper button{min-height:36px;padding:6px 10px;background:transparent;border:1px solid #b8cccf;color:#426571;cursor:pointer}.assembly-stepper output{font-size:10px;color:#4f7079;text-align:center}.assembly-sequence li button{display:block;width:100%;text-align:left;border:0;background:transparent;color:inherit;font:inherit;min-height:32px;padding:0;cursor:pointer}.assembly-panel button:disabled{opacity:.45;cursor:default}.assembly-panel p{color:#627c85;line-height:1.8;font-size:11px;margin:8px 0}.assembly-panel .assembly-actions{display:flex;gap:5px}.assembly-panel .assembly-actions button{flex:1;min-height:40px}.assembly-panel .assembly-actions button:first-child{background:#345e6b;color:#fff}.assembly-panel input{display:block;width:100%}.assembly-sequence{display:grid;grid-template-columns:1fr 1fr;list-style:none;padding:0;margin:12px 0;gap:5px}.assembly-sequence li{border-left:2px solid #b9cbcb;padding:6px;font-size:10px;color:#84969e;background:#e6edef}.assembly-sequence li[data-done=true]{color:#345e6b;border-color:#528e80;background:#dce9e4}.assembly-sequence li[data-active=true]{color:#886037;border-color:#ad7e49;background:#f0e7da}.assembly-panel .assembly-status{min-height:36px;font-size:11px;color:#426471}.assembly-panel .assembly-boundary{display:block!important;color:#87979c;font-size:9px;line-height:1.7;margin-top:12px}.assembly-mode-picker button:focus-visible,.assembly-panel button:focus-visible{outline:2px solid #ae804a;outline-offset:2px}.assembly-focus{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:10px 0}.assembly-focus[hidden]{display:none}.assembly-focus button{min-height:32px;border:1px solid #cbd9de;background:transparent;color:#627c85;font-size:10px;cursor:pointer}.assembly-focus button[aria-pressed=true]{background:#e1e9e9;color:#345e6b;border-color:#8ba4aa}.assembly-annotations{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.assembly-annotation{position:absolute;top:0;left:0;white-space:nowrap;color:#385b66;font-size:11px;letter-spacing:.04em;line-height:20px;background:#f5f9f9e0;padding:0 7px;border-left:2px solid #8aa4aa}.assembly-annotation:before{content:"";position:absolute;right:100%;width:16px;top:10px;border-top:1px solid #8aa4aa}.assembly-exploded-view .viewport-caption{max-width:280px}.assembly-exploded-view .viewport-caption h1{font-size:28px;line-height:1.45}.assembly-exploded-view .viewport-caption p{max-width:265px}@media(max-width:600px){.assembly-annotation{font-size:8px;line-height:15px;padding:0 3px}.assembly-annotation:before{width:8px;top:7px}}@media(max-width:600px){.assembly-exploded-view .viewport-caption{top:16px;max-width:calc(100% - 64px)}.assembly-exploded-view .viewport-caption h1{font-size:14px;max-width:none;margin:6px 0 0;line-height:1.4}.assembly-exploded-view #demo-description{display:none}}:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#263b43;background:#eef2f3;font-synthesis:none;font-weight:400;--ink:#263b43;--muted:#7a8a90;--line:#d9e1e4;--accent:#315d69;--paper:#f9fbfb}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,.viewport:focus-visible{outline:3px solid #558496;outline-offset:4px}button{transition:background .2s,color .2s,border-color .2s}button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}button[hidden],[hidden]{display:none!important}a{color:inherit;text-decoration:none}#app{min-height:100dvh;display:flex;flex-direction:column;background:#eef2f3}.masthead{height:102px;min-height:102px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:15px;font-size:20px;font-weight:600;letter-spacing:.12em}.brand-mark{font-family:Georgia,serif;font-size:49px;font-weight:400;line-height:1;color:var(--accent);transform:translateY(-4px)}.brand small{display:block;margin-top:7px;font-family:Avenir Next,Avenir,sans-serif;font-size:9px;letter-spacing:.25em;font-weight:500;color:#73858d}.project-meta{display:flex;align-items:center;gap:29px;font-size:11px;letter-spacing:.05em}.meta-label{color:var(--muted)}.status-chip{display:flex;align-items:center;gap:7px;padding:9px 12px;background:#edf2f3;border:1px solid #e1e8ea;border-radius:3px;font-size:11px;letter-spacing:0;white-space:nowrap}.status-chip i{width:5px;height:5px;display:block;background:#7d929c;border-radius:50%}.status-chip[data-state=ready] i{background:#598471}.status-chip[data-state=error] i{background:#b56756}.status-chip[data-state=warning] i{background:#b29556}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 304px;flex:1;min-height:660px}.viewport{position:relative;overflow:hidden;min-height:660px;background:radial-gradient(ellipse at 50% 44%,#f5f8f8,#e9eff0 58%,#e3e9ec);isolation:isolate}.viewport:after{content:"";position:absolute;z-index:-1;inset:0;opacity:.35;background-image:linear-gradient(#bfcbd0 1px,transparent 1px),linear-gradient(90deg,#bfcbd0 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:linear-gradient(to bottom,transparent 75%,#000);mask-image:linear-gradient(to bottom,transparent 75%,#000)}.viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;touch-action:none}.viewport-caption{position:absolute;left:5.4%;top:44px;pointer-events:none;z-index:2}.eyebrow{font-family:Avenir Next,Avenir,sans-serif;font-size:9px;letter-spacing:.2em;font-weight:500;color:#718b96}.viewport-caption h1{font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(26px,2.75vw,42px);line-height:1.35;letter-spacing:.04em;font-weight:400;margin:14px 0 13px;color:#324e58}.viewport-caption p{font-size:10px;color:#83949a;letter-spacing:.08em;margin:0}.orientation{position:absolute;right:34px;top:37px;z-index:2;display:flex;align-items:center;flex-direction:column;gap:9px;pointer-events:none}.orientation>span{font-family:Georgia,serif;font-size:28px;color:#72909c}.orientation small{font-size:9px;color:#82969f;letter-spacing:.1em}.view-label{position:absolute;bottom:33px;left:5.4%;display:flex;align-items:center;gap:9px;z-index:2;font-size:10px;color:#697f88;pointer-events:none}.view-dot{width:5px;height:5px;border:1px solid #527885;border-radius:50%}.divider{color:#b0c1c8;margin:0 1px}.gesture-hint{position:absolute;bottom:26px;right:32px;z-index:2;font-size:9px;color:#8a9ba2;letter-spacing:.03em;pointer-events:none}.gesture-hint span{display:none}.inspector{position:relative;z-index:3;padding:39px 25px 24px;background:var(--paper);border-left:1px solid var(--line);display:flex;flex-direction:column}.inspector-head h2{font-family:Songti SC,STSong,SimSun,serif;font-size:25px;line-height:1.3;font-weight:400;letter-spacing:.06em;margin:12px 0 10px}.inspector-head p{font-size:10px;color:#839299;margin:0;line-height:1.7}.control-section{border-bottom:1px solid var(--line);padding:27px 0 23px}.control-section h3{font-size:11px;font-weight:500;letter-spacing:.04em;margin:0 0 14px}.view-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.view-button{display:flex;align-items:center;gap:9px;text-align:left;background:#f4f7f8;border:1px solid #e4eaed;border-radius:3px;padding:10px 9px;font-size:10px;min-height:43px}.view-button:hover:not(:disabled){background:#eaf0f2}.view-button.active{background:#e4ecef;color:#315d69;border-color:#adc1ca}.view-button svg{width:25px;height:20px;flex-shrink:0}.toggle-button{width:100%;border:0;background:transparent;text-align:left;display:flex;align-items:center;font-size:10px;padding:15px 0 0;gap:9px}.rotate-icon{font-size:20px;line-height:1;width:20px;margin-left:4px;color:#597c8a}.switch{margin-left:auto;background:#dce4e7;border-radius:10px;width:25px;height:14px;position:relative;transition:background .2s}.switch:after{content:"";display:block;position:absolute;width:10px;height:10px;background:#fff;border-radius:50%;top:2px;left:2px;box-shadow:0 1px 3px #67778022;transition:transform .2s}.toggle-button[aria-pressed=true] .switch{background:#5a8291}.toggle-button[aria-pressed=true] .switch:after{transform:translate(11px)}.section-title{display:flex;align-items:baseline;justify-content:space-between}.section-title>span{font-size:9px;color:#8a9aa0}.layers-section{padding-top:22px;padding-bottom:16px}.layers{display:flex;flex-direction:column;gap:15px}.empty-layers{font-size:11px;line-height:1.9;color:#84969f;margin:0}.layer{position:relative;display:flex;align-items:center;gap:11px;cursor:pointer}.layer input{position:absolute;left:0;width:16px;height:16px;opacity:0;margin:0}.checkmark{display:block;width:15px;height:15px;border:1px solid #c2cfd5;border-radius:2px;background:#fff;flex-shrink:0;position:relative}.layer input:checked+.checkmark{background:#4f7786;border-color:#4f7786}.layer input:checked+.checkmark:after{content:"";position:absolute;left:4px;top:2px;width:4px;height:7px;border:solid white;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.layer input:focus-visible+.checkmark{outline:3px solid #558496;outline-offset:3px}.layer-name{display:flex;flex-direction:column;gap:3px}.layer-name strong{font-size:11px;font-weight:400}.layer-name small{font-size:9px;color:#8a9ba2}.layer.unavailable{cursor:default;color:#98a8af}.layer.unavailable .checkmark{background:#f3f6f7;border-style:dashed;border-color:#d6e0e4}.layer.unavailable .layer-name small{color:#a8b4b9}.layer-warning{font-size:10px;line-height:1.7;color:#9e7d44;margin:2px 0}.model-details{padding:20px 0 22px;display:flex;flex-direction:column;gap:11px}.model-details>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px}.model-details span{color:#8a9ba2;white-space:nowrap}.model-details strong{font-weight:400;color:#647e8a;font-family:Avenir Next,PingFang SC,sans-serif;text-align:right;overflow-wrap:anywhere}.tools{display:flex;gap:8px;margin-top:auto}.button{background:#e7eef0;border:1px solid #cfdce1;border-radius:3px;padding:11px 13px;font-size:10px;display:flex;gap:20px;align-items:center;justify-content:space-between;min-height:38px}.button:hover:not(:disabled){background:#dce8ed}.tools>.button{flex:1}.icon-button{border:1px solid #d6e1e5;background:transparent;border-radius:3px;width:39px;min-height:38px;display:grid;place-items:center}.icon-button:hover{background:#edf3f5}.icon-button svg{width:16px;height:16px}.scope-note{display:flex;gap:9px;border-top:1px solid var(--line);margin-top:23px;padding-top:18px;color:#8a969b}.note-marker{border:1px solid #a6b3b9;border-radius:50%;width:12px;height:12px;flex-shrink:0;text-align:center;font-family:Georgia,serif;font-size:9px;margin-top:1px}.scope-note strong{font-size:9px;font-weight:500;color:#788c95}.scope-note p{font-size:9px;line-height:1.9;margin:6px 0 0;color:#8c9aa1}footer{min-height:49px;padding:16px 4%;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);font-size:9px;color:#8b9ba2;background:#f8fafb;letter-spacing:.02em}footer i{font-style:normal;margin:0 10px;color:#b3c0c6}.load-panel{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:min(80%,380px);text-align:center;z-index:5;background:#f4f8f9e8;border:1px solid #dce6ea;padding:29px 26px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:4px}.load-panel h2{font-size:15px;font-weight:500;letter-spacing:.03em;margin:13px 0 9px}.load-panel p{font-size:11px;color:#7b919b;line-height:1.9;overflow-wrap:anywhere;margin:0}.load-line{width:56px;height:2px;background:#b8ccd4;margin:0 auto;overflow:hidden;position:relative}.load-line:after{content:"";position:absolute;inset:0;background:#537d8e;animation:loading 1.3s ease-in-out infinite}.load-panel[data-error=true] .load-line{background:#bb9d8a}.load-panel[data-error=true] .load-line:after{display:none}.load-panel .button{margin:18px auto 0;justify-content:center;min-width:110px}.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%);z-index:100;background:#294650f2;color:#f4f9fa;box-shadow:0 5px 20px #25455020;border:1px solid #66808b;padding:12px 18px;font-size:11px;line-height:1.6;border-radius:3px;max-width:calc(100vw - 30px);width:max-content}.viewport[data-state=error] .view-label{opacity:.45}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 340px}.inspector{padding:42px 32px 28px}.viewport-caption{top:48px}.viewport{min-height:750px}}@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 268px}.inspector{padding:30px 19px 22px}.masthead{height:86px;min-height:86px}.viewport-caption{left:6%;top:31px}.viewport-caption h1{font-size:30px}.orientation{right:22px;top:28px}.gesture-hint{right:20px;font-size:8px}.project-meta{gap:15px}.control-section{padding-top:23px}.view-button{font-size:9px;gap:6px;padding:10px 7px}.view-button svg{width:21px}.inspector-head h2{font-size:24px}}@media(max-width:720px){.masthead{padding:0 21px;height:80px;min-height:80px}.brand{font-size:17px;gap:10px}.brand-mark{font-size:41px}.brand small{font-size:8px;margin-top:6px}.meta-label{display:none}.status-chip{font-size:9px;padding:8px 9px}.project-meta{gap:0}.workspace{display:flex;flex-direction:column;min-height:0}.viewport{min-height:0;height:65svh;max-height:720px;flex-shrink:0}.viewport-caption{top:24px;left:24px}.viewport-caption h1{font-size:26px;margin-top:11px;margin-bottom:9px}.viewport-caption p{font-size:9px}.eyebrow{font-size:8px}.orientation{right:22px;top:23px}.orientation>span{font-size:24px}.orientation small{font-size:8px}.view-label{left:24px;bottom:23px;font-size:9px;gap:7px}.gesture-hint{bottom:17px;right:22px;font-size:0}.gesture-hint span{display:inline;font-size:8px}.inspector{padding:27px 24px 23px;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.inspector-head{grid-column:1 / -1;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 14px}.inspector-head>.eyebrow{width:100%}.inspector-head h2{font-size:23px;margin:11px 0 0}.inspector-head p{font-size:9px}.control-section{padding:23px 0 20px;min-width:0}.control-section h3{font-size:10px}.view-grid{gap:5px}.view-button{min-height:41px;font-size:9px;gap:6px;padding:9px 7px;justify-content:center}.view-button svg{display:none}.toggle-button{font-size:10px;padding-top:14px}.layers-section{padding-top:23px}.section-title>span{font-size:8px}.layers{gap:14px}.layer{gap:8px}.layer-name strong{font-size:10px}.layer-name small{font-size:8px}.checkmark{width:13px;height:13px}.layer input:checked+.checkmark:after{left:3px;top:1px}.model-details{grid-column:1 / -1;padding:18px 0 20px;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}.model-details>div:last-child{grid-column:1 / -1}.tools{grid-column:1 / -1;gap:9px}.tools .button{font-size:11px;min-height:42px}.icon-button{width:43px;min-height:42px}.scope-note{grid-column:1 / -1;margin-top:20px;padding-top:16px}.scope-note p{font-size:9px;line-height:1.9}.scope-note strong{font-size:10px}footer{padding:18px 24px;flex-direction:column;align-items:flex-start;gap:7px;font-size:8px}.load-panel{top:57%;padding:24px 21px;width:calc(100% - 54px)}.load-panel h2{font-size:14px}.load-panel p{font-size:10px}.toast{bottom:15px;font-size:10px}.viewport:after{background-size:60px 60px}}@media(max-width:360px){.masthead{padding:0 16px}.brand{font-size:15px}.status-chip{font-size:8px;padding:7px}.inspector{padding:24px 18px;gap:0 20px}.view-button{font-size:8px;padding:8px 4px}.viewport-caption{left:20px}.viewport-caption h1{font-size:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.room-entry{margin:-3px 0 10px 32px;padding:5px 10px;border:1px solid #c2d0d4;border-radius:3px;background:transparent;color:#375964;font:inherit;font-size:11px;cursor:pointer}.room-entry:focus-visible{outline:2px solid #477481;outline-offset:3px}.workspace{align-items:start}.viewport{height:calc(100dvh - 151px);position:sticky;top:0}.inspector{height:calc(100dvh - 151px);min-height:660px;overflow-y:auto;scrollbar-width:thin}.viewport-caption{max-width:360px;top:56px}.viewport-caption h1{font-size:clamp(26px,2.6vw,40px);max-width:350px}.viewport-caption p{line-height:1.9;max-width:340px;font-size:11px;letter-spacing:0}.candidate-notice{position:absolute;left:5.4%;top:12px;z-index:2;color:#85643f;font-size:9px;letter-spacing:.035em;pointer-events:none}.inspector-head h2{font-size:23px}.demo-section{margin-top:24px;border-bottom:1px solid var(--line);padding-bottom:18px}#pipeline-controls{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}#pipeline-controls button{width:100%;min-height:36px;padding:8px 10px;border:1px solid #cbd9de;border-radius:3px;text-align:left;background:#f1f5f6;font-size:10px}#pipeline-controls button[aria-pressed=true]{background:#315d69;color:#fff;border-color:#315d69}#pipeline-status{margin:3px 0 0;font-size:9px;line-height:1.9;color:#8d754f}.chapter-rail{display:flex;flex-direction:column;gap:3px}.chapter-rail button{border:0;border-left:2px solid #d9e1e4;background:transparent;display:grid;grid-template-columns:28px 1fr;gap:3px 9px;text-align:left;padding:10px 9px;min-height:52px}.chapter-rail button>span{grid-row:1 / 3;font:11px Avenir Next,PingFang SC,sans-serif;color:#84979f;align-self:center}.chapter-rail strong{font-size:12px;font-weight:500}.chapter-rail small{color:#87999f;font-size:9px}.chapter-rail button:hover:not(:disabled){background:#edf3f5}.chapter-rail button.selected{background:#e6eef0;border-color:#315d69}.chapter-rail button.selected>span{color:#9a6639}.demo-status{font-size:10px;color:#8d754f;line-height:1.8;margin:14px 0 0}.demo-dock{position:absolute;z-index:4;left:5.4%;right:5.4%;bottom:71px;display:flex;align-items:center;gap:7px;max-width:455px;background:#f9fbfbeb;border:1px solid #cbd9de;padding:8px;box-shadow:0 8px 26px #2946500a}.demo-dock>span{padding:0 10px;color:#68818c;font:11px Avenir Next,sans-serif;white-space:nowrap}.demo-dock button{border:1px solid transparent;background:transparent;padding:8px 10px;min-height:36px;font-size:11px;white-space:nowrap}.demo-dock button:hover:not(:disabled){background:#e4ecef}.demo-dock #demo-play{background:#315d69;color:#fff;min-width:89px}.demo-dock #demo-reset{margin-left:auto;color:#617e8a;font-size:10px}.module-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.module-options button,.explode-stops button{border:1px solid #cbd9de;padding:8px;font-size:10px;min-height:36px;background:transparent}.module-options button[aria-pressed=true]{background:#315d69;color:#fff}.module-options button:last-child{flex-basis:100%}.explode-controls{padding-top:17px}.explode-controls label{display:flex;justify-content:space-between;color:#52717d;font-size:12px}.explode-controls input{width:100%;margin:15px 0;accent-color:#9a6639;cursor:pointer;min-height:28px}.explode-stops{display:flex;gap:4px}.explode-stops button{flex:1;padding:7px 4px}.explode-controls .button{width:100%;justify-content:center;margin-top:9px}.explode-controls>small{display:block;line-height:1.9;color:#84969e;font-size:9px;margin-top:9px}@media(max-width:1000px)and (min-width:721px){.viewport,.inspector{height:calc(100dvh - 135px)}.demo-dock{gap:2px}.demo-dock button{padding:8px 6px}}@media(max-width:720px){.workspace{align-items:stretch}.viewport{position:relative;top:auto;height:68svh;min-height:480px}.inspector{height:auto;min-height:0;overflow:visible}.viewport-caption{top:47px;max-width:calc(100% - 78px)}.viewport-caption h1{font-size:25px;max-width:280px}.viewport-caption p{font-size:10px;max-width:260px}.candidate-notice{left:24px;top:8px;font-size:8px;max-width:calc(100% - 80px)}.demo-section{grid-column:1 / -1;margin-top:20px}.chapter-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.chapter-rail button{padding:9px 6px;grid-template-columns:20px 1fr;gap:3px 4px;min-height:64px}.chapter-rail strong{font-size:10px}.chapter-rail small{font-size:8px}.chapter-rail button>span{font-size:10px}.demo-dock{left:20px;right:20px;bottom:62px;gap:2px;padding:5px}.demo-dock>span{font-size:10px;padding:0 6px}.demo-dock button{min-height:40px;padding:6px;font-size:11px}.demo-dock #demo-play{min-width:73px}.demo-dock #demo-reset{font-size:9px}}.env-library{position:fixed;inset:0;z-index:250;background:#b1bfcc;color:#203c42;display:flex;flex-direction:column;width:100%;height:100dvh}.env-library[hidden]{display:none}.env-bar{display:flex;align-items:center;gap:18px;padding:16px 24px;background:#f6f9f9ed;border-bottom:1px solid #c5d2d7;flex-shrink:0}.env-bar small{font-size:9px;letter-spacing:2px;color:#67828a}.env-bar h2{font-size:19px;margin:5px 0 0;font-weight:500}.env-library button,.env-library select,.env-import{border:1px solid #afc2c9;background:#f9fbfc;color:#294b56;border-radius:4px;min-height:40px;padding:9px 14px;font:inherit;font-size:12px;cursor:pointer}.env-library button:focus-visible,.env-library select:focus-visible,.env-import:focus-within{outline:2px solid #376a7b;outline-offset:3px}.env-library button[aria-pressed=true]{background:#315d69;color:#fff}.env-library button:disabled{opacity:.45;cursor:default}.env-bar select{margin-left:auto;max-width:45vw}.env-stage{flex:1;min-height:0;position:relative;overflow:hidden;display:grid;place-items:center}.env-stage img{width:100%;height:100%;position:absolute;inset:0;object-fit:contain}.env-stage [hidden]{display:none!important}#env-canvas{position:absolute;inset:0}#env-canvas canvas{display:block;width:100%;height:100%;touch-action:none}#env-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:85%;background:#f7fafbe8;padding:14px 20px;line-height:1.8;font-size:13px;text-align:center;border-radius:4px}#env-status:empty{display:none}.env-tools{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px 20px;background:#f6f9f9ed}.env-import{position:relative;display:inline-flex;align-items:center;overflow:hidden}.env-import input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.env-import[hidden]{display:none}.env-note{margin:0;padding:0 20px 12px;background:#f6f9f9ed;text-align:center;font-size:10px;line-height:1.7;color:#607b84}.environment-entry{border:1px solid #aabfc8;background:transparent;color:#31505e;min-height:40px;padding:9px 14px;border-radius:3px;font-size:11px;cursor:pointer}@media(max-width:720px){.env-bar{padding:10px 12px;gap:8px}.env-bar small{display:none}.env-bar h2{font-size:15px;white-space:nowrap}.env-bar select{max-width:43vw;font-size:11px;padding:7px}.env-bar button{padding:7px 9px;white-space:nowrap}.env-tools{gap:6px;padding:8px}.env-tools button,.env-import{font-size:10px;padding:7px 9px;min-height:36px}.env-note{font-size:9px;padding:0 10px 8px}.environment-entry{padding:8px;font-size:10px}.project-meta{gap:6px}.status-chip{display:none}}.env-library .env-bar button{flex-shrink:0}@media(max-width:720px){.masthead{height:auto;min-height:88px;padding:10px 16px;gap:12px;align-items:center}.masthead .brand{flex-shrink:0;font-size:14px;width:130px}.masthead .brand-mark{font-size:32px}.masthead .project-meta{display:flex;max-width:calc(100% - 142px);min-width:0;gap:4px;flex-wrap:wrap;justify-content:flex-end}.masthead .status-chip{display:none}.masthead .project-meta button{white-space:nowrap;flex-shrink:0;font-size:9px;min-height:30px;padding:5px 7px}}.spatial-inspector{grid-column:1/-1;margin-top:22px;border-top:1px solid #cbd9de;border-bottom:1px solid #cbd9de;color:#38545c;min-width:0}.spatial-inspector button,.spatial-inspector select{font:inherit;color:inherit;cursor:pointer;min-height:36px}.spatial-launch{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:14px 0;border:0;background:none;text-align:left;font-size:12px!important}.spatial-launch span{font-size:9px;color:#738e91}.spatial-inspector[data-active=true]>.spatial-launch{color:#257565}#spatial-panel{padding:6px 0 16px}#spatial-panel[hidden]{display:none}.spatial-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.spatial-heading button{border:0;background:none;font-size:21px!important;width:36px}#spatial-status,.spatial-boundary{font-size:10px;line-height:1.9;color:#70878b;margin:7px 0 12px}.spatial-inspector fieldset{border:0;border-top:1px solid #dce5e4;margin:16px 0 0;padding:12px 0 0;min-width:0}.spatial-inspector legend{font-size:10px;letter-spacing:.08em;color:#8d744b;padding-right:12px}.spatial-inspector label:not(.spatial-check){display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:10px;margin:9px 0}.spatial-inspector select{max-width:73%;min-width:0;border:1px solid #cbd9de;background:#f7faf9;padding:4px;font-size:10px}.spatial-inspector input[type=range]{width:100%;accent-color:#428a7b;min-height:28px;margin:0}.spatial-color-control{display:flex;align-items:center;gap:9px;min-width:0}.spatial-color-control output{font-family:monospace;font-size:10px}.spatial-inspector input[type=color]{width:44px;height:36px;flex:none;padding:3px;border:1px solid #bdcfcb;background:#f7faf9;cursor:pointer;border-radius:2px}@media(max-width:720px){.spatial-inspector input[type=color]{height:44px}}.spatial-check{display:flex;align-items:center;gap:7px;font-size:10px;line-height:1.7;margin:9px 0}.spatial-check input{accent-color:#428a7b;flex:none}.spatial-inspector output{font-variant-numeric:tabular-nums;color:#537b71}.spatial-row{display:flex;gap:5px;margin:10px 0}.spatial-row button,#spatial-full,.spatial-restore{border:1px solid #bdcfcb;background:transparent;padding:6px 8px;font-size:10px!important;flex:1}.spatial-row button[aria-pressed=true]{background:#386c61;border-color:#386c61;color:#fff}.spatial-restore{width:100%;margin-top:18px;background:#386c61;color:#fff!important}.spatial-inspector button:focus-visible,.spatial-inspector select:focus-visible,.spatial-inspector input:focus-visible{outline:2px solid #c58f50;outline-offset:3px}.spatial-labels{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.spatial-labels span{position:absolute;max-width:175px;transform:translate(-100%,-100%);border-left:2px solid #76af9d;background:#fcfdf9ed;color:#39665b;padding:7px 9px;font-size:10px;white-space:nowrap;box-shadow:0 3px 12px #254b3912}.spatial-labels span[hidden]{display:none}@media(max-width:720px){.spatial-launch{min-height:48px!important;font-size:13px!important}.spatial-launch span{font-size:10px}.spatial-inspector button,.spatial-inspector select{min-height:44px}.spatial-check{min-height:36px}.spatial-labels span{font-size:9px;max-width:150px;padding:5px 7px}.spatial-inspector fieldset{margin-top:20px}}.viewport>.orientation{display:none}.modelai-tools{position:absolute;right:20px;top:16px;z-index:7;display:flex;align-items:center;flex-direction:column;width:80px;color:#58666b;font:11px/1.4 PingFang SC,sans-serif}.modelai-tools button{color:inherit;font:inherit;cursor:pointer}.modelai-camera-bar{display:flex;flex-direction:column;padding:5px;background:#fffefaed;border:1px solid #d6dcda;box-shadow:0 3px 10px #263b4420;border-radius:3px;gap:2px}.modelai-camera-bar>button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:2px;background:transparent;padding:6px}.modelai-camera-bar>button:hover,.modelai-camera-bar>button[aria-pressed=true]{background:#e6eeed;color:#2e6873}.modelai-camera-bar>button:disabled{opacity:.35;cursor:wait}.modelai-camera-bar svg{width:20px;height:20px}.modelai-tools :focus-visible,.modelai-walk-panel :focus-visible{outline:2px solid #3f8297;outline-offset:2px}.modelai-viewcube{width:80px;height:88px;position:relative}.modelai-viewcube>svg{width:80px;height:80px;overflow:visible}.modelai-viewcube polygon{fill:#fffdf3;stroke:#b2bbb5;stroke-width:.8;cursor:pointer}.modelai-viewcube polygon:hover,.modelai-viewcube polygon:focus{fill:#e6eeed}.modelai-viewcube text{font:8px sans-serif;fill:#768681;text-anchor:middle;pointer-events:none}.modelai-viewcube line{stroke:transparent;stroke-width:5;cursor:pointer}.modelai-viewcube line:hover,.modelai-viewcube line:focus{stroke:#c68a5577}.modelai-viewcube circle{fill:transparent;cursor:pointer}.modelai-viewcube circle:hover,.modelai-viewcube circle:focus{fill:#c68a5599}.modelai-tools .modelai-cube-reset{position:absolute;bottom:6px;right:1px;width:18px;height:18px;border:1px solid #cbd3ce;border-radius:50%;background:#fffdf6;color:#7b8d86;line-height:12px}.modelai-popover{position:absolute;right:66px;top:125px;min-width:115px;background:#fffefb;border:1px solid #d4ddda;box-shadow:0 5px 18px #263b4420;padding:5px;border-radius:3px}.modelai-popover button{display:block;width:100%;border:0;background:transparent;padding:9px 12px;text-align:left;white-space:nowrap}.modelai-popover button[aria-checked=true]{background:#e6eeed}.modelai-popover[hidden],.modelai-status[hidden],.modelai-walk-panel[hidden]{display:none}.modelai-status{position:absolute;right:100px;top:110px;max-width:min(330px,calc(100% - 125px));background:#fffef5e8;color:#3c585d;border:1px solid #d6dfd8;border-radius:3px;padding:8px 12px;z-index:6;font-size:11px;pointer-events:none}canvas.modelai-mono{filter:grayscale(1)}canvas.modelai-measuring{cursor:crosshair}.modelai-walk-panel{position:absolute;z-index:8;left:50%;bottom:105px;transform:translate(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 30px);width:max-content;background:#fffef8ed;border:1px solid #d5ded9;border-radius:4px;box-shadow:0 3px 12px #263b4420;padding:10px 14px;font-size:11px;color:#425c61}.modelai-walk-panel small{font-size:9px;flex-basis:100%;text-align:center;color:#7a8b8a}.modelai-walk-panel button{border:1px solid #cedad6;border-radius:3px;background:#f4f7f4;padding:7px 10px;color:inherit}.modelai-walk-pad{display:flex;gap:4px;touch-action:none}.modelai-walk-pad button{min-width:32px;min-height:32px;touch-action:none;-webkit-user-select:none;user-select:none}@media(min-width:721px){.workspace[data-inspector-open=true]:not([data-inspector-pinned=true]) .modelai-tools{right:calc(var(--inspector-width) + 20px)}.workspace[data-inspector-open=true]:not([data-inspector-pinned=true]) .modelai-status{right:calc(var(--inspector-width) + 100px)}}@media(max-width:720px){.modelai-tools{right:8px;top:8px;width:66px}.modelai-viewcube{transform:scale(.83);transform-origin:top center;margin-bottom:-14px}.modelai-camera-bar{padding:3px;gap:0}.modelai-camera-bar>button{width:30px;height:30px}.modelai-popover{right:55px;top:115px}.modelai-status{right:62px;top:100px;font-size:10px;max-width:calc(100% - 80px);padding:6px 8px}.modelai-walk-panel{bottom:83px;font-size:10px;padding:8px;gap:6px}.modelai-walk-panel>span{max-width:240px;text-align:center}.modelai-walk-panel small{max-width:240px}.viewport-caption{max-width:calc(100% - 100px)}}

.assembly-mode-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin-bottom:13px; }
.assembly-mode-picker button { min-height:40px; padding:7px 2px; border:1px solid #cbd9de; color:#45616b; background:transparent; font-size:11px; cursor:pointer; }
.assembly-mode-picker button[aria-pressed="true"] { background:#345e6b; color:#fff; border-color:#345e6b; }
.assembly-panel[hidden], .assembly-legacy[hidden] { display:none !important; }
.assembly-explosion-options[hidden],.assembly-stepper[hidden],.assembly-sequence[hidden] { display:none !important; }
.assembly-style-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin:10px 0 6px; }
.assembly-style-picker button { min-height:40px; border:1px solid #b8cccf; color:#3e6672; background:#f3f7f7; font-size:11px; cursor:pointer; }
.assembly-style-picker button[aria-pressed="true"] { color:#fff; background:#557e7a; border-color:#557e7a; }
.assembly-stepper { display:flex; align-items:center; justify-content:space-between; gap:6px; margin:12px 0; }
.assembly-stepper button { min-height:36px; padding:6px 10px; background:transparent; border:1px solid #b8cccf; color:#426571; cursor:pointer; }
.assembly-stepper output { font-size:10px; color:#4f7079; text-align:center; }
.assembly-sequence li button { display:block; width:100%; text-align:left; border:0; background:transparent; color:inherit; font:inherit; min-height:32px; padding:0; cursor:pointer; }
.assembly-panel button:disabled { opacity:.45; cursor:default; }
.assembly-panel p { color:#627c85; line-height:1.8; font-size:11px; margin:8px 0; }
.assembly-panel .assembly-actions { display:flex; gap:5px; }
.assembly-panel .assembly-actions button { flex:1; min-height:40px; }
.assembly-panel .assembly-actions button:first-child { background:#345e6b; color:#fff; }
.assembly-panel input { display:block; width:100%; }
.assembly-sequence { display:grid; grid-template-columns:1fr 1fr; list-style:none; padding:0; margin:12px 0; gap:5px; }
.assembly-sequence li { border-left:2px solid #b9cbcb; padding:6px; font-size:10px; color:#84969e; background:#e6edef; }
.assembly-sequence li[data-done="true"] { color:#345e6b; border-color:#528e80; background:#dce9e4; }
.assembly-sequence li[data-active="true"] { color:#886037; border-color:#ad7e49; background:#f0e7da; }
.assembly-panel .assembly-status { min-height:36px; font-size:11px; color:#426471; }
.assembly-panel .assembly-boundary { display:block !important; color:#87979c; font-size:9px; line-height:1.7; margin-top:12px; }
.assembly-mode-picker button:focus-visible,.assembly-panel button:focus-visible { outline:2px solid #ae804a; outline-offset:2px; }
.assembly-focus { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; margin:10px 0; }
.assembly-focus[hidden] { display:none; }
.assembly-focus button { min-height:32px; border:1px solid #cbd9de; background:transparent; color:#627c85; font-size:10px; cursor:pointer; }
.assembly-focus button[aria-pressed="true"] { background:#e1e9e9; color:#345e6b; border-color:#8ba4aa; }
.assembly-annotations { position:absolute; inset:0; z-index:3; pointer-events:none; overflow:hidden; }
.assembly-annotation { position:absolute; top:0; left:0; white-space:nowrap; color:#385b66; font-size:11px; letter-spacing:.04em; line-height:20px; background:rgba(245,249,249,.88); padding:0 7px; border-left:2px solid #8aa4aa; }
.assembly-annotation::before { content:''; position:absolute; right:100%; width:16px; top:10px; border-top:1px solid #8aa4aa; }
.assembly-exploded-view .viewport-caption { max-width:280px; }
.assembly-exploded-view .viewport-caption h1 { font-size:28px; line-height:1.45; }
.assembly-exploded-view .viewport-caption p { max-width:265px; }
@media(max-width:600px) { .assembly-annotation { font-size:8px; line-height:15px; padding:0 3px; } .assembly-annotation::before { width:8px; top:7px; } }
@media(max-width:600px) { .assembly-exploded-view .viewport-caption { top:16px; max-width:calc(100% - 64px); } .assembly-exploded-view .viewport-caption h1 { font-size:14px; max-width:none; margin:6px 0 0; line-height:1.4; } .assembly-exploded-view #demo-description { display:none; } }
.assembly-scope-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:12px 0}.assembly-scope-picker strong{grid-column:1/-1;font-size:11px;font-weight:500}.assembly-scope-picker button{min-height:30px;padding:5px 3px;border:1px solid #c4d6dc;background:#f5f9fa;color:#345966;font:inherit;font-size:11px;cursor:pointer}.assembly-scope-picker button[aria-pressed="true"]{background:#345e6c;color:#fff}.assembly-scope-picker button:disabled{opacity:.45;cursor:default}.assembly-scope-picker[hidden]{display:none}
