:root{font-family:"Malgun Gothic",system-ui,sans-serif;color:#203b35;background:#f1eee7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:5px}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #a9b3aa;background:#faf8f2;padding:12px 16px;min-height:44px}button:hover{background:#e5e9df}button:focus-visible,a:focus-visible{outline:3px solid #af7736;outline-offset:3px}header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #d0d4c9;gap:16px;font-size:13px}.brand{text-decoration:none;letter-spacing:4px;font-family:Georgia,serif;font-size:22px}.brand small{font:10px system-ui;letter-spacing:3px;display:block;margin-top:5px}main{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:calc(100dvh - 82px)}.stage{position:relative;min-height:620px;background:#e4e8df;overflow:hidden}#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.caption{position:absolute;top:30px;left:32px;pointer-events:none;max-width:80%}.caption span{font-size:12px;letter-spacing:1px}h1{font-size:30px;font-weight:400;line-height:1.35;margin:10px 0}h2{font-size:15px;font-weight:500;margin:26px 0 14px}.tools{position:absolute;left:28px;bottom:72px;display:flex;gap:8px;flex-wrap:wrap}#status{position:absolute;bottom:30px;left:32px;font-size:13px;margin:0;max-width:90%;background:#f8f6efdd;padding:5px 8px}.gesture{position:absolute;top:30px;right:24px;writing-mode:vertical-rl;font-size:11px;letter-spacing:1px;opacity:.75}aside{padding:32px 24px;border-left:1px solid #d0d4c9;overflow:auto}.eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 22px}nav{display:grid;gap:8px}nav button{text-align:left;padding:18px 14px;font-size:12px}nav strong{font-weight:500;font-size:17px;margin-left:12px}nav span{display:block;margin:8px 0 0 29px;font-size:12px}button[aria-current=true],button[aria-pressed=true]{background:#203b35;color:white;border-color:#203b35}.views{display:flex;flex-wrap:wrap;gap:6px}.views button{font-size:12px;padding:10px}.scope,.footnote{font-size:12px;line-height:1.8}.scope{margin-top:24px}.footnote{border-top:1px solid #d0d4c9;padding-top:20px;color:#58675d}details{margin:22px 0}summary{cursor:pointer;min-height:44px;font-size:14px}details a{display:block;margin:12px 0;font-size:13px}img{display:block;width:100%;height:auto}#error{background:#f7e8d7;padding:12px}#error h2{margin-top:0}@media(max-width:760px){header{height:72px;padding:0 18px}header>span{display:none}header>a:last-child{font-size:11px}.brand{font-size:18px}main{display:block}.stage{height:65dvh;min-height:450px}.caption{left:20px;top:22px}h1{font-size:25px}.gesture{right:10px;top:20px}.tools{left:16px;bottom:78px;right:12px}.tools button{font-size:12px;padding:10px}#status{left:16px;bottom:24px;font-size:12px}aside{padding:25px 20px;border-left:0}nav{grid-template-columns:1fr 1fr}nav strong{font-size:14px;margin-left:4px}nav span{margin-left:0}}
.hotspots{position:absolute;inset:0;pointer-events:none}.hotspots button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:#faf8f2ed;border:1px solid #668577;border-radius:0;box-shadow:0 2px 8px #203b3518;font-size:12px;min-height:44px;white-space:nowrap;padding:10px 12px}.hotspots button[hidden]{display:none}

#material-render{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#e4e8df;z-index:1}.caption,.tools,#status{z-index:2}@media(min-width:761px){main{height:calc(100dvh - 82px);min-height:0}.stage{height:calc(100dvh - 82px);min-height:0}aside{max-height:calc(100dvh - 82px)}}

#main-room-controls label{display:block;font-size:12px;margin:12px 0 6px}#main-room-controls select{width:100%;font:inherit;font-size:13px;padding:11px;border:1px solid #a9b3aa;background:#faf8f2;color:#203b35}select:focus-visible{outline:3px solid #af7736;outline-offset:3px}

/* Keep room names legible against interior geometry. */
.caption{background:rgba(248,246,238,.94);padding:12px 16px;max-width:calc(100% - 80px);pointer-events:none}


/* Current model files use existing viewer typography and controls. */
#current-files{border-top:1px solid #d0d4c9;margin-top:22px;padding-top:4px}#current-files a{display:block;padding:12px 0;font-size:13px;min-height:44px}#current-files .scope{margin-top:0}#review-history>summary{font-weight:500}#review-history p{line-height:1.9}#design-options a{line-height:1.5}

@media(max-width:760px){.gesture{display:none}}
