:root{--ink:#30332e;--muted:#777b71;--line:#e8e8e1;--soft:#f5f5f0;--sage:#727c63;--wood:#bba786;--ease:cubic-bezier(.22,.7,.2,1)}
*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{background:none;border:0}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,#scene:focus-visible{outline:2px solid var(--sage);outline-offset:4px}button:disabled{opacity:.4;cursor:default}button,a{touch-action:manipulation}button{transition:background .25s,color .25s,opacity .25s}button:hover{color:#60714e}button svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.35;fill:none;stroke-linecap:round;stroke-linejoin:round}button[hidden],[hidden]{display:none!important}.header{height:83px;padding:0 4.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:13px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:650;letter-spacing:1.5px}.identity-sub{display:block;font-size:10px;font-weight:400;letter-spacing:3.4px;margin-top:2px}.mark{width:33px;height:32px;display:flex;gap:5px;align-items:center}.mark i{width:6px;height:26px;border:1.5px solid #848b78;border-radius:50%;transform:rotate(18deg)}.mark i:nth-child(2){height:35px}.header-note{font-size:12px;color:#808278}.text-button{font-size:12px;padding:9px 0;white-space:nowrap}.text-button span{margin-left:9px;font-size:17px}main{max-width:1800px;margin:auto;padding:0 4.2%}.intro{padding:37px 0 30px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.eyebrow{margin:0;font-size:10px;font-weight:550;letter-spacing:1.9px;color:var(--muted)}h1{font-size:clamp(27px,2.75vw,42px);font-weight:450;letter-spacing:-1.25px;margin:12px 0 0;line-height:1.15}.intro-copy{font-size:13px;line-height:1.7;color:var(--muted);margin:0 2px 0 0}.modes{display:flex;gap:3px;border-bottom:1px solid var(--line);padding:0 0 11px;overflow:auto;scrollbar-width:none}.modes button{padding:13px 19px;border-radius:4px;font-size:12px;white-space:nowrap;display:flex;gap:12px;align-items:center}.modes button span{font-size:9px;color:#92958a;font-variant-numeric:tabular-nums}.modes button[aria-pressed=true]{background:#edf0e7;color:#404c34}.modes button[aria-pressed=true] span{color:#637252}.modes button:hover{background:var(--soft)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 277px;min-height:565px}.stage{position:relative;min-width:0;height:clamp(540px,66vh,760px);overflow:hidden;background:#fff}.scene-caption{position:absolute;z-index:2;top:23px;left:0;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;pointer-events:none}.status-dot{width:5px;height:5px;border-radius:50%;background:#8c987a}#scene{position:absolute;inset:0;outline-offset:-5px;cursor:grab;touch-action:none}#scene:active{cursor:grabbing}#scene canvas{display:block;width:100%;height:100%}.stage-bottom{position:absolute;bottom:20px;left:0;right:23px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:4}.gesture-hint{font-size:10px;color:#8b8d83;display:flex;align-items:center;gap:8px}.gesture-hint>span{font-size:18px}.view-tools{display:flex;align-items:center;gap:1px;padding:4px;border:1px solid #e9e9e0;background:#fffefbec;border-radius:5px;pointer-events:auto;box-shadow:0 3px 15px #45463206}.view-tools button{width:34px;height:33px;font-size:20px;border-radius:3px}.view-tools button:hover,.view-tools button[aria-pressed=true]{background:#f0f1e9}.view-tools>span{height:17px;width:1px;background:var(--line);margin:0 4px}.inspector{border-left:1px solid var(--line);padding:23px 0 20px 27px;z-index:5;background:#fff}.inspector-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.inspector-heading .eyebrow{font-size:9px;letter-spacing:1.3px}.inspector-heading .text-button{font-size:10px;color:#858a7b;padding:0}.selected-info{padding:24px 0 20px;min-height:171px}.detail-number{font-size:10px;letter-spacing:1.1px;color:var(--sage);margin:0 0 10px}h2{font-weight:450;font-size:24px;letter-spacing:-.5px;margin:0;line-height:1.2}.selected-info>p:last-child{font-size:11px;line-height:1.6;color:var(--muted);margin:11px 0 0;max-width:236px;min-height:35px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-bottom:18px}.quick-actions button{font-size:10px;display:flex;gap:8px;align-items:center;padding:12px 6px;border:1px solid var(--line);border-radius:4px;white-space:nowrap}.quick-actions button[aria-pressed=true]{background:#f4f5ef}.mini-icon{display:block;width:14px;height:14px;position:relative;color:#909881;flex-shrink:0}.wall-icon{border:1px solid currentColor;transform:skewY(-10deg)}.wall-icon:after{content:"";position:absolute;left:4px;top:0;height:100%;border-left:1px solid}.roof-icon:after{content:"";position:absolute;inset:2px;border-left:1px solid;border-top:1px solid;transform:rotate(45deg)}.part-list{border-top:1px solid var(--line)}.part-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 3px;border-bottom:1px solid var(--line);font-size:12px}.part-row .part-number{font-size:9px;color:#9b9d94;width:16px}.part-row .part-arrow{margin-left:auto;font-size:15px;color:#919886}.part-row[aria-pressed=true]{color:#667951;background:#f5f6f0}.part-row:hover{background:#f8f8f4}.part-row svg{flex-shrink:0;color:#848b77}.detail-extra{padding:11px 0;font-size:10px;line-height:1.6;color:var(--muted)}.layer-item{display:flex;gap:8px;width:100%;text-align:left;align-items:center;padding:6px 4px;font-size:11px}.layer-item.active{background:#f0f2e9;color:#46563b}.layer-item i{display:block;width:13px;height:13px;border:1px solid #00000012}.layer-item small{margin-left:auto;font-size:9px;color:#8e9386}.layers-control{padding:15px 0 8px}.layers-control label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}input[type=range]{accent-color:var(--sage);width:100%;height:20px;margin:10px 0 0;cursor:pointer}.visibility-panel{margin-top:16px;font-size:11px;color:var(--muted)}.visibility-panel summary{display:flex;justify-content:space-between;cursor:pointer;list-style:none;padding:8px 0}.visibility-panel summary::-webkit-details-marker{display:none}.visibility-panel[open] summary span{transform:rotate(45deg)}#visibility-list{padding:7px 0}.visibility-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;font-size:11px;cursor:pointer}.visibility-row input{appearance:none;width:25px;height:14px;border-radius:10px;background:#ddd;position:relative;cursor:pointer;margin:0}.visibility-row input:checked{background:#858f77}.visibility-row input:after{content:"";position:absolute;height:10px;width:10px;top:2px;left:2px;background:white;border-radius:50%;transition:transform .2s}.visibility-row input:checked:after{transform:translateX(11px)}.model-note{font-size:9px;line-height:1.6;color:#9a9e92;margin:18px 0 0}.footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:17px 0 20px;font-size:10px;color:var(--muted)}.footer>span{display:flex;align-items:center;gap:9px}.footer i{width:7px;height:7px;border-radius:50%;background:#beb598}.footer p{margin:0}.footer .text-button{font-size:11px;padding:0}.hotspots{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.hotspot{position:absolute;display:flex;align-items:center;gap:7px;transform:translate(-50%,-50%);font-size:10px;pointer-events:auto;white-space:nowrap;padding:6px 8px 6px 5px;background:#ffffffed;border:1px solid #e5e7df;border-radius:30px;box-shadow:0 3px 9px #4a4b3320;transition:opacity .25s,background .25s}.hotspot:hover{background:#f5f7ef;color:#4d6240}.hotspot i{width:19px;height:19px;border:1px solid #9ba78e;display:flex;align-items:center;justify-content:center;border-radius:50%;font-style:normal;font-size:12px;color:#748664;background:#fff}.hotspot.active{border-color:#829571}.hotspot.active i{background:#829571;color:#fff}.hotspot.occluded{opacity:0;pointer-events:none}.layer-key{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:1.4px;color:#969b8c;pointer-events:none}.key-line{width:140px;height:1px;background:#cdd2c1}.loading{position:absolute;inset:0;background:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:var(--muted);z-index:10;transition:opacity .5s}.loading span{width:16px;height:16px;border:1px solid #dce2d3;border-top-color:#69745d;border-radius:50%;animation:spin 1s linear infinite}.loading.loaded{opacity:0;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.error-state{position:absolute;inset:0;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:#6a715f;z-index:12}.error-state img{width:100%;max-height:80%;object-fit:contain}.error-state button{padding:10px 18px;border:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:8px;padding:30px;width:min(1200px,94vw);max-height:90vh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#30352b65;backdrop-filter:blur(7px)}dialog>img{width:100%;display:block;margin:15px 0}dialog>p:last-child{text-align:center;font-size:12px;color:var(--muted)}#close-reference{position:absolute;right:16px;top:12px;font-size:24px}.stage:fullscreen{width:100%;height:100%;background:white}.stage:fullscreen .scene-caption{left:25px}.stage:fullscreen .stage-bottom{left:25px;right:25px}
@media(min-width:1650px){.workspace{grid-template-columns:minmax(0,1fr) 300px}.inspector{padding-left:30px}.stage{min-height:640px}}
@media(max-width:1100px){main{padding:0 3%}.header{padding:0 3%}.workspace{grid-template-columns:minmax(0,1fr) 250px}.inspector{padding-left:20px}.modes button{padding:13px 15px}.stage-bottom{right:15px}.gesture-hint{max-width:120px;line-height:1.4;font-size:9px}.quick-actions button{font-size:9px;gap:5px}}
@media(max-width:760px){.header{height:66px;padding:0 20px}.header-note{display:none}.identity{font-size:16px;gap:8px}.identity-sub{font-size:9px}.mark{transform:scale(.82);width:29px}.header .text-button{font-size:11px}main{padding:0 18px}.intro{padding:26px 0 24px;display:block}.eyebrow{font-size:9px;letter-spacing:1.5px}h1{font-size:28px;letter-spacing:-1px;line-height:1.2;max-width:310px}.intro-copy{display:none}.modes{margin:0 -18px;padding:0 18px 10px;gap:3px}.modes button{font-size:11px;padding:11px 13px;gap:7px}.modes button span{font-size:8px}.workspace{display:flex;flex-direction:column;min-height:0}.stage{height:430px;margin:0 -18px;width:calc(100% + 36px)}.scene-caption{top:17px;left:18px;font-size:10px}.stage-bottom{left:18px;right:18px;bottom:17px}.gesture-hint{font-size:9px;max-width:130px}.view-tools{padding:3px}.view-tools button{width:29px;height:30px;font-size:18px}.view-tools>span{margin:0 2px}.hotspot{font-size:9px;padding:4px 7px 4px 4px;gap:5px}.hotspot i{width:16px;height:16px;font-size:11px}.inspector{border-left:0;border-top:1px solid var(--line);padding:21px 0 22px;display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.inspector-heading{grid-column:1/-1}.selected-info{grid-column:1/-1;min-height:0;padding:18px 0 17px}.detail-number{display:none}h2{font-size:24px}h2 br{display:none}h2 br:after{content:" "}.selected-info>p:last-child{max-width:100%;min-height:0;font-size:12px;margin-top:7px}.quick-actions{grid-column:1/-1;gap:10px;padding-bottom:18px}.quick-actions button{font-size:11px;justify-content:center;padding:12px}.part-list{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.part-row{padding:13px 0;gap:7px;font-size:11px}.part-row .part-number{width:12px;font-size:8px}.part-row svg{width:16px;height:16px}.detail-extra,.layers-control,.visibility-panel,.model-note{grid-column:1/-1}.model-note{font-size:9px;margin-top:12px}.model-note br{display:none}.footer{flex-wrap:wrap;padding:18px 0 25px;font-size:9px}.footer p{display:none}.footer .text-button{font-size:10px}.layer-key{bottom:70px;font-size:8px;gap:10px}.key-line{width:85px}.visibility-panel{margin-top:12px}#visibility-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}dialog{padding:25px 15px}.loading{font-size:11px}}
@media(max-width:370px){.stage{height:380px}.view-tools button{width:26px}.gesture-hint{max-width:100px}.part-row{font-size:10px;gap:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep layer exploration and its slider beside the object, including on a phone. */
.workspace[data-mode=layers] .part-list{display:none}
.workspace[data-mode=layers] .selected-info{min-height:154px}
@media(max-width:760px){
 .workspace{position:relative}
 .workspace[data-mode=layers] .layers-control,.workspace[data-mode=exploded] .layers-control{position:absolute;top:330px;left:0;right:0;padding:0;z-index:6;background:#ffffffeb}
 .workspace[data-mode=layers] .layer-key{bottom:120px}
 .workspace[data-mode=layers] .selected-info{min-height:0}
}
@media(max-width:370px){.workspace[data-mode=layers] .layers-control,.workspace[data-mode=exploded] .layers-control{top:280px}}
