:root{font-family:'DM Sans',system-ui,sans-serif;color:#f8f7f2;background:#252923;font-synthesis:none;font-size:16px;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:2px solid #e5d29a;outline-offset:4px}button{color:inherit}button:disabled{opacity:.5;cursor:default}#app,#viewport{position:absolute;inset:0;width:100%;height:100dvh}#viewport{outline:0;touch-action:none}canvas{display:block;width:100%;height:100%}.topbar{position:absolute;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:27px 32px;background:linear-gradient(180deg,#111a1685,transparent);pointer-events:none}.identity,.header-actions{display:flex;gap:13px;align-items:center}.identity{filter:drop-shadow(0 2px 4px #0005)}.brand-mark{font-size:38px;color:#f1dfb6;line-height:1}.identity h1{margin:0;font-family:Manrope,system-ui,sans-serif;font-size:20px;letter-spacing:-.5px;font-weight:600}.identity p{margin:4px 0 0;font-size:12px;letter-spacing:.4px;color:#e2e3db}.header-actions{pointer-events:auto;gap:8px}.glass-button,.icon-button{border:1px solid #ffffff26;background:#222d2985;backdrop-filter:blur(20px);border-radius:9px;padding:11px 15px;font-size:14px;transition:background .2s}.glass-button:hover,.icon-button:hover{background:#2b3630cc}.icon-button{font-size:23px;padding:4px 11px;min-height:42px}.view-label{position:absolute;top:109px;left:34px;font-size:12px;text-shadow:0 1px 4px #000;color:#fffffff0;display:flex;gap:9px;pointer-events:none}.view-label .divider{opacity:.45}#mode-label{opacity:.7}.toolbar{position:absolute;bottom:53px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);background:#19221ef0;backdrop-filter:blur(24px);border:1px solid #ffffff20;border-radius:16px;box-shadow:0 14px 50px #0003;padding:8px}.view-buttons{display:flex;gap:5px}.view-buttons button{padding:11px 23px;border:0;border-radius:9px;font-size:14px;background:transparent;color:#dadfd9;transition:.2s}.view-buttons button:hover{background:#ffffff0d}.view-buttons button.active{background:#ebe1c7;color:#24312a;box-shadow:0 2px 6px #0002}.toolbar-secondary{display:flex;justify-content:space-between;align-items:center;gap:22px;margin:8px 10px 3px;padding-top:10px;border-top:1px solid #ffffff15}.light-control{display:flex;align-items:center;gap:12px}.light-control label{font-size:12px;color:#d4d9d2}input[type=range]{width:93px;height:3px;accent-color:#ded0aa;cursor:pointer}.small-button{font-size:12px;border:1px solid #ffffff25;background:#ffffff08;border-radius:5px;padding:5px 8px;color:#cfd5ca}.small-button.active{color:#ebd6a5;border-color:#ebd6a548}.text-button{font-size:12px;border:0;background:transparent;color:#c8d1c7;padding:5px 0}.text-button:hover{color:white}.bottom-note{position:absolute;bottom:20px;left:32px;right:32px;display:flex;justify-content:space-between;color:#fff9;font-size:12px;text-shadow:0 1px 4px #000;pointer-events:none}#loading{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#242e28;z-index:6;transition:opacity .55s}.loader-symbol{font-size:62px;color:#e6d6af;animation:breathe 1.7s ease-in-out infinite}#loading p{font-family:Manrope,sans-serif;font-size:20px;margin:20px 0 9px}#loading span{font-size:13px;color:#a5b1a8}@keyframes breathe{50%{opacity:.3;transform:scale(.94)}}#error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#222d28;padding:28px;width:min(440px,90vw);border-radius:18px;z-index:8}#error[hidden]{display:none}#error p{color:#bbc9bb;line-height:1.5}#error button{padding:10px 18px;border:0;border-radius:6px;background:#eee0bb;color:#263729}#reference-panel{position:absolute;right:28px;top:92px;width:min(435px,calc(100vw - 32px));max-height:calc(100dvh - 250px);z-index:5;background:#1c2521f7;border:1px solid #ffffff26;border-radius:15px;box-shadow:0 14px 50px #0005;overflow:auto;backdrop-filter:blur(24px)}#reference-panel[hidden]{display:none}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px}.panel-heading button{font-size:26px;line-height:1;border:0;background:none;color:#cfd6cd;padding:4px 8px}#reference-photo{width:100%;max-height:40dvh;object-fit:contain;display:block;background:#131b16}#photo-thumbs{padding:12px 12px 4px;display:flex;gap:6px;overflow-x:auto}#photo-thumbs button{padding:0;flex:0 0 49px;width:49px;height:42px;border:2px solid transparent;border-radius:5px;overflow:hidden;background:none}#photo-thumbs button.active{border-color:#e6d6af}#photo-thumbs img{width:100%;height:100%;object-fit:cover}#photo-caption{padding:0 15px 14px;font-size:12px;color:#cbd1c6;margin:9px 0 0}
@media(max-width:650px){.topbar{padding:17px 16px}.brand-mark{font-size:30px}.identity{gap:8px}.identity h1{font-size:17px}.identity p{font-size:11px}.glass-button{padding:9px 11px;font-size:12px}.icon-button{display:none}.view-label{top:85px;left:18px;font-size:11px}.toolbar{bottom:calc(49px + env(safe-area-inset-bottom));max-width:calc(100% - 20px);width:calc(100% - 20px);padding:6px;border-radius:13px}.view-buttons{gap:2px}.view-buttons button{font-size:12px;padding:11px 4px;flex:1}.toolbar-secondary{gap:8px;margin:6px 8px 2px;padding-top:8px}.light-control{gap:8px}.light-control label,.small-button,.text-button{font-size:11px}input[type=range]{width:70px}.bottom-note{bottom:calc(12px + env(safe-area-inset-bottom));left:12px;right:12px;gap:5px;align-items:center;flex-direction:column;font-size:10px;line-height:1.35}#reference-panel{right:10px;top:80px;max-height:calc(100dvh - 265px);width:calc(100vw - 20px)}#reference-photo{max-height:37dvh}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Apartment navigation */
[hidden]{display:none!important}.toolbar{max-width:calc(100% - 32px)}.view-buttons{overflow-x:auto;scrollbar-width:thin}.view-buttons button{white-space:nowrap;padding:11px 20px}.toolbar-secondary{flex-wrap:wrap;row-gap:9px}#detail-view{color:#dfdfd4;border:1px solid #ffffff26;border-radius:5px;background:#28352c;max-width:190px;font-size:12px;padding:5px 7px}.light-control{margin-left:auto}#plan-panel{position:absolute;right:28px;top:92px;width:260px;max-height:calc(100dvh - 270px);overflow:auto;background:#1c2521f5;border:1px solid #ffffff26;border-radius:15px;z-index:5;backdrop-filter:blur(20px);box-shadow:0 14px 50px #0004}#plan-panel svg{display:block;width:100%;height:min(49dvh,430px);padding:6px 14px}#plan-panel p{font-size:11px;line-height:1.5;color:#b9c5b8;margin:3px 16px 14px}.plan-space path{fill:#4a5a4a;stroke:#d6d9c5;stroke-width:7;stroke-linejoin:round}.plan-space.bedroom path{fill:#6b7254}.plan-space,.plan-label{cursor:pointer}.plan-space:hover path,.plan-space:focus path{fill:#748565}.plan-space text,.plan-label text{fill:#f4edd8;font-size:22px;text-anchor:middle;font-weight:600;letter-spacing:1px}.plan-space .plan-small{font-size:18px;font-weight:400;fill:#cfd3be}.plan-note{fill:#c0c7b7;text-anchor:middle;font-size:22px;letter-spacing:1px}.plan-door{stroke:#28372b;stroke-width:13;fill:none}.plan-threshold{stroke:#dfc98d;stroke-width:5;fill:none}#plan-position{fill:#eedb9f;stroke:#233a2d;stroke-width:6;pointer-events:none}#walk-controls{position:absolute;left:28px;bottom:195px;display:flex;align-items:center;flex-direction:column;gap:4px}#walk-controls>div{display:flex;gap:4px}#walk-controls button{width:38px;height:34px;background:#202e24b8;border:1px solid #ffffff30;color:#efebd9;border-radius:7px;font-size:20px;touch-action:none;backdrop-filter:blur(10px)}#walk-controls button:active{background:#ebdfb9;color:#253427}
@media(max-width:650px){.identity p{display:none}.header-actions{gap:5px}.glass-button{padding:9px 8px;font-size:11px}.topbar{padding:15px 12px}.identity h1{font-size:15px}.brand-mark{font-size:25px}.view-buttons button{flex:1 0 auto;font-size:12px;padding:11px 9px}.toolbar-secondary{margin-left:4px;margin-right:4px;gap:7px}.toolbar-secondary .light-control{gap:6px}.toolbar-secondary input[type=range]{width:62px}#detail-view{flex-basis:100%;max-width:none;font-size:11px}#plan-panel{right:10px;top:74px;max-height:calc(100dvh - 270px);width:245px}#plan-panel svg{height:38dvh}#walk-controls{left:15px;bottom:calc(208px + env(safe-area-inset-bottom))}#walk-controls button{width:36px;height:34px}.view-label{top:72px}#reference-panel{top:74px}}

.plan-future path{fill:none;stroke:#a9b9a1;stroke-width:6;stroke-dasharray:9 7}.plan-future text{fill:#b8c4b1}.plan-future text tspan+ tspan{font-size:25px;font-weight:400}#plan-panel{width:280px}#plan-panel .plan-space text,#plan-panel .plan-label text{font-size:32px;letter-spacing:.4px}#plan-panel .plan-note{font-size:27px}#plan-panel .plan-future text{font-size:28px}@media(max-width:650px){#plan-panel{width:260px}}

#plan-panel{width:310px}#plan-panel a{color:#e6d6af}#plan-panel text.plan-tiny{font-size:26px}#plan-panel svg{height:min(57dvh,530px)}@media(max-width:650px){#plan-panel{width:280px}#plan-panel svg{height:43dvh}}

#floor-level{font:inherit;font-size:12px;color:#ede3c7;border:1px solid #d6cba453;border-radius:5px;background:#28352c;padding:5px 7px}select:focus-visible{outline:2px solid #e5d29a;outline-offset:3px}@media(max-width:650px){#floor-level{font-size:11px}#detail-view{order:3}.toolbar-secondary .light-control{margin-left:auto}.toolbar-secondary{column-gap:7px}.toolbar-secondary input[type=range]{width:45px}}

/* Mouse look leaves an unobstructed view; Escape restores the controls. */
#quality{font:inherit;font-size:12px;color:#dfdfd4;border:1px solid #ffffff26;border-radius:5px;background:#28352c;padding:5px 7px}
#enter-walk{background:#ebe1c7;color:#24312a;white-space:nowrap}
#aim{position:absolute;left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);border-radius:50%;background:#fff9;border:1px solid #19221e88;pointer-events:none}
.mouse-look .topbar,.mouse-look .toolbar,.mouse-look .view-label,.mouse-look #walk-controls,.mouse-look #plan-panel,.mouse-look #reference-panel{visibility:hidden;pointer-events:none}
.mouse-look .bottom-note{justify-content:center;bottom:24px}.mouse-look .bottom-note>span:last-child{display:none}
@media(max-width:650px){#quality{font-size:11px}.toolbar-secondary .light-control{margin-left:0}.toolbar-secondary{justify-content:flex-start}#reset{margin-left:auto}}
