:root{--paper:#e7edef;--ink:#223339;--muted:#697c83;--rule:#cad5d9;--accent:#7954a3;--accent-soft:#e9e2f0;--panel:#f6f8f8;--green:#b9df58;--body:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;--display:"Avenir Next Condensed","Arial Narrow","PingFang SC",sans-serif;--mono:"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:13px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{transition:background .15s,color .15s,border .15s}button:disabled{opacity:.4;cursor:wait}button:hover:not(:disabled){border-color:var(--accent)}.masthead{height:82px;padding:0 40px;display:flex;align-items:center;border-bottom:1px solid var(--rule);gap:34px}.wordmark{text-decoration:none;font-family:var(--display);font-size:30px;font-weight:800;letter-spacing:-1px;color:var(--ink)}.wordmark span{color:var(--accent);font-weight:400}.project-tag{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:13px}.project-tag i{height:3px;width:3px;border-radius:50%;background:var(--muted)}.save-button{margin-left:auto;border:1px solid #b9c7cc;background:transparent;padding:9px 15px;font-size:12px;border-radius:3px}.save-button span{font-size:18px;margin-right:8px}.save-button:hover{background:white}main{display:grid;grid-template-columns:minmax(0,1fr) 308px;min-height:calc(100vh - 126px)}.stage{position:relative;overflow:hidden;min-height:640px;background:radial-gradient(ellipse at 50% 48%,#f8fafb 0%,#e7edef 67%,#e1e8eb 100%)}#canvas-wrap{position:absolute;inset:0}#canvas-wrap canvas{display:block;touch-action:none;outline:none}.stage-caption{position:absolute;top:34px;left:40px;z-index:2;pointer-events:none}.eyebrow{font-family:var(--mono);font-size:9px;letter-spacing:2.5px;color:var(--muted)}h1{font-size:27px;line-height:1.4;letter-spacing:1px;font-weight:600;margin:15px 0 9px}.stage-caption p{font-size:11px;letter-spacing:.3px;color:var(--muted);margin:0}.model-info{position:absolute;left:40px;bottom:100px;display:flex;gap:10px;flex-direction:column;pointer-events:none;font-family:var(--mono);font-size:10px;color:var(--muted)}#model-state{font-family:var(--body);font-size:11px;color:var(--accent)}.view-bar{position:absolute;bottom:39px;left:40px;display:flex;gap:2px;padding:4px;border:1px solid #ccd6da;background:#f5f8f9d9;backdrop-filter:blur(8px);border-radius:5px}.view-bar button{border:0;background:transparent;font-size:11px;padding:9px 16px;border-radius:3px;color:#687b84}.view-bar button.active{background:var(--ink);color:white}.interaction-hint{position:absolute;right:25px;bottom:25px;color:#7a8c93;font-size:10px;letter-spacing:.3px;pointer-events:none}.inspector{background:var(--panel);border-left:1px solid var(--rule);padding:33px 26px 23px;display:flex;flex-direction:column}.section-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;letter-spacing:.5px;margin:0 0 18px}.section-label>span{font-family:var(--mono);font-size:8px;letter-spacing:.9px;font-weight:400;color:#8b9aa0}.unit-card{display:flex;align-items:center;gap:19px;padding:4px 0 24px}.unit-code{width:78px;position:relative;border-left:3px solid var(--accent);padding-left:12px}.unit-code>span{font-family:var(--mono);font-size:9px;letter-spacing:3px;color:var(--accent)}.unit-code strong{display:block;font-family:var(--display);font-size:72px;line-height:.95;letter-spacing:-4px;font-weight:600;color:var(--accent)}.unit-copy h2{font-size:19px;margin:0 0 6px;font-weight:600;letter-spacing:2px}.unit-copy p{font-size:10px;color:var(--muted);margin:0}.swatches{display:flex;gap:4px;margin-top:14px}.swatches span{width:23px;height:7px;border-radius:1px}.unit-switch{display:flex;gap:7px}.unit-switch button{flex:1;border:1px solid var(--rule);border-radius:3px;background:white;font-size:11px;padding:10px 3px;color:var(--muted)}.unit-switch button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.unit-switch button[hidden]{display:none}.assembly-section,.notes-section{border-top:1px solid var(--rule);padding-top:24px;margin-top:25px}.toggle-row{display:flex;position:relative;align-items:center;margin:18px 0;font-size:12px;cursor:pointer}.toggle-row>input{position:absolute;right:0;opacity:0;width:34px;height:22px;margin:0;cursor:pointer}.switch{margin-left:auto;width:30px;height:17px;border-radius:10px;background:#c8d3d8;position:relative;pointer-events:none;transition:background .2s}.switch:after{content:"";position:absolute;left:3px;top:3px;width:11px;height:11px;border-radius:50%;background:white;box-shadow:0 1px 2px #24394433;transition:transform .2s}.toggle-row input:checked+.switch{background:var(--accent)}.toggle-row input:checked+.switch:after{transform:translateX(13px)}.toggle-row input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:4px}.range-label{display:flex;justify-content:space-between;margin-top:25px;font-size:12px}.range-label output{font-family:var(--mono);font-size:10px;color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);height:18px;margin:12px 0 13px;cursor:pointer}.layer-key{display:flex;justify-content:space-between;color:#7f9097;font-size:10px}.layer-key span{display:flex;align-items:center;gap:5px}.layer-key i{display:inline-block;width:12px;height:3px}.layer-top{background:var(--accent)}.layer-mid{background:var(--green)}.layer-base{background:#33474f}.notes-section{margin-top:25px}.design-note{font-size:11px;color:var(--muted);line-height:1.85;margin:0 0 13px}.design-note b{display:block;font-size:11px;font-weight:600;color:#3c5059;margin-bottom:3px}.review-note{font-size:10px;color:#8c9ba2;line-height:1.85;margin:auto 0 0;padding-top:15px}footer{height:44px;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;padding:0 40px;font-family:var(--mono);font-size:8px;color:#86959b;letter-spacing:1px}footer b{color:#a9b5ba;font-weight:400}.footer-dot{padding:0 8px}footer>span:last-child{font-family:var(--body);letter-spacing:.2px}.load-state{position:absolute;inset:0;display:flex;gap:12px;align-items:center;justify-content:center;pointer-events:none;font-size:12px;color:var(--muted);z-index:5}.load-state.error{background:#e7edefe8;padding:40px;text-align:center}.load-state.error .loading-ring{display:none}.loading-ring{width:18px;height:18px;border-radius:50%;border:2px solid #bfced5;border-top-color:var(--accent);animation:spin .9s linear infinite}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(20px);padding:12px 22px;border-radius:4px;background:#223339;color:white;font-size:12px;z-index:10;opacity:0;pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}body.capture .stage-caption,body.capture .model-info,body.capture .view-bar,body.capture .interaction-hint{display:none}body.capture .masthead,body.capture .inspector,body.capture footer{display:none}body.capture main{display:block;min-height:100vh}body.capture .stage{height:100vh;min-height:0}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1550px){main{grid-template-columns:minmax(0,1fr) 340px}.inspector{padding:39px 34px}.stage-caption{top:42px}h1{font-size:32px}}@media(max-width:1000px){.masthead{padding:0 24px}.stage-caption{left:26px}.project-tag{display:none}main{grid-template-columns:minmax(0,1fr) 270px}.inspector{padding:28px 20px}.unit-code{width:69px}.unit-card{gap:12px}.unit-code strong{font-size:65px}.unit-copy p{font-size:9px}.view-bar{left:24px;bottom:50px}.view-bar button{padding:9px 12px}.interaction-hint{left:27px;right:auto;bottom:26px}.model-info{left:28px;bottom:119px}footer{padding:0 24px}}@media(max-width:760px){.masthead{height:66px;padding:0 20px}.wordmark{font-size:25px}.save-button{padding:6px 10px;font-size:11px}main{display:block}.stage{height:570px;min-height:0}.stage-caption{left:22px;top:25px}h1{font-size:23px;margin-top:12px}.stage-caption p{font-size:10px}.eyebrow{font-size:8px}.inspector{border-left:0;border-top:1px solid var(--rule);padding:25px 25px 26px;display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.unit-section{padding-right:22px;border-right:1px solid var(--rule)}.assembly-section{margin:0;padding-top:0;border:0}.notes-section{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.notes-section .section-label{grid-column:1/-1;margin-bottom:0}.review-note{grid-column:1/-1;padding-top:6px}.unit-card{padding-bottom:18px}.unit-code strong{font-size:60px}.unit-copy h2{font-size:17px}.unit-copy p{font-size:9px}.unit-switch button{font-size:10px;padding:10px 3px}footer{font-size:7px;height:40px;padding:0 20px;letter-spacing:.4px}.model-info{bottom:119px}.view-bar{left:20px;bottom:50px}.interaction-hint{left:23px}.design-note{font-size:10px}.toggle-row{font-size:11px}.range-label{font-size:11px;margin-top:20px}}@media(max-width:490px){.stage{height:530px}.inspector{display:block;padding:26px 22px}.unit-section{padding-right:0;border:0}.unit-card{gap:24px}.unit-copy h2{font-size:20px}.unit-copy p{font-size:11px}.unit-code strong{font-size:70px}.unit-switch button{padding:11px}.assembly-section{margin-top:25px;padding-top:25px;border-top:1px solid var(--rule)}.notes-section{display:block}.notes-section .section-label{margin-bottom:18px}.design-note{font-size:11px}.review-note{padding-top:4px}.stage-caption p{max-width:180px;line-height:1.7}footer>span:last-child{display:none}}@media(prefers-reduced-motion:reduce){*,*:after{transition:none!important;animation:none!important}}

/* Rev D: independent brass weight in the assembly legend. */
.layer-key{flex-wrap:wrap;row-gap:7px}.layer-weight{background:#b9914f}

/* K detail cameras retain all view buttons on narrow screens. */
.view-bar{max-width:calc(100% - 64px);flex-wrap:wrap}.view-bar button{padding:9px 12px}@media(max-width:760px){.view-bar{max-width:calc(100% - 40px)}.model-info{bottom:155px}}

@media(min-width:761px){.stage{position:sticky;top:0;height:calc(100vh - 126px);min-height:580px}}

/* Four themes retain readable labels in a compact two-column selector. */
.unit-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}

.share-button{margin-left:auto;border:1px solid #b9c7cc;background:transparent;padding:9px 12px;border-radius:3px;font-size:12px;white-space:nowrap}.share-button+.save-button{margin-left:0}.masthead{gap:16px}@media(max-width:490px){.share-button{font-size:11px;padding:7px}.masthead{gap:8px;padding:0 12px}.save-button{font-size:10px;padding:6px}.wordmark{font-size:21px}}
