@font-face{font-family:LocalSans;src:local("Inter"),local("Helvetica Neue"),local("Arial");font-display:swap}
:root{font-family:LocalSans,Arial,sans-serif;color:#2d3330;background:#e8e5df;font-synthesis:none;--paper:#f6f4ef;--ink:#2d3330;--muted:#777b72;--brass:#a88d5a;--line:rgba(66,66,48,.12);--shadow:0 8px 35px rgba(40,37,25,.07)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #9b793e;outline-offset:5px}button svg,.fov-panel>svg,.help-rows svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}svg{display:block}.surface{background:rgba(249,247,241,.93);border:1px solid rgba(255,255,255,.66);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:14px}#viewport{position:absolute;inset:0;touch-action:none;outline:0}#viewport canvas{display:block;width:100%;height:100%}.frame-gradient{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(244,241,234,.72),transparent 170px,transparent calc(100% - 210px),rgba(228,225,216,.65))}.topbar{position:absolute;top:28px;left:32px;right:32px;display:flex;align-items:center;justify-content:space-between;gap:25px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;color:inherit;min-width:225px}.brand-mark,.loading-brand{font-family:Georgia,serif;letter-spacing:-4px;font-size:35px;line-height:1}.brand-mark span,.loading-brand span{color:var(--brass);font-size:.85em;display:inline-block;transform:translateY(-1px);padding:0 3px}.brand strong{display:block;font-size:12px;letter-spacing:2px;font-weight:600}.brand small{display:block;font-size:11px;color:#7a7c71;letter-spacing:.55px;margin-top:7px}.mode-switch{display:flex;padding:5px;border-radius:13px;gap:4px}.mode{display:flex;align-items:center;gap:9px;padding:12px 19px;border-radius:9px;background:transparent;font-size:12px;white-space:nowrap;transition:.2s}.mode.active{background:var(--ink);color:#fbf9ef;box-shadow:0 3px 7px #2430271a}.mode:not(.active):hover{background:#e8e5dc}.top-actions{display:flex;gap:9px;min-width:225px;justify-content:flex-end}.action{display:flex;align-items:center;justify-content:center;gap:9px;height:46px;font-size:12px;transition:background .2s,transform .2s}.action:hover{background:#fffdf6;transform:translateY(-1px)}.photo-button{padding:0 19px}.icon-button{width:46px;flex-shrink:0}.rooms-panel{position:absolute;top:118px;left:32px;width:222px;padding:20px 10px 12px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:0 11px;font-size:9px;letter-spacing:1.7px;color:#7a7c70;font-weight:600;min-height:19px}.count{font-size:10px;letter-spacing:0;border:1px solid var(--line);border-radius:30px;padding:2px 6px}#rooms{display:flex;flex-direction:column;gap:3px;margin-top:15px}.room-button{display:flex;width:100%;align-items:center;gap:10px;text-align:left;padding:13px 12px;border-radius:9px;background:transparent;font-size:12px;line-height:1.3}.room-button:hover{background:#ebe8df}.room-button.active{background:#e8e3d7}.room-symbol{border:1px solid #b4ae9c;width:17px;height:17px;display:grid;place-items:center;border-radius:50%;font-size:8px;color:#8e8a7b;flex-shrink:0}.room-button.active .room-symbol{background:var(--brass);border-color:var(--brass);color:#fff}.room-button .room-number{margin-left:auto;font-size:9px;color:#969687}.room-footer{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);padding:14px 11px 0;margin-top:12px;font-size:9px;color:#8d8e80;letter-spacing:.3px}.status-dot{width:5px;height:5px;background:#9caa82;border-radius:50%}.settings-panel{position:absolute;right:32px;top:90px;width:288px;padding:18px 12px 10px;z-index:6}.plain{background:transparent;padding:0;display:grid;place-items:center;color:var(--muted)}.plain:hover{color:var(--ink)}.close-panel svg{width:16px;height:16px}.setting-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:65px;border-bottom:1px solid var(--line);padding:10px 10px;cursor:pointer}.setting-row strong{font-size:12px;font-weight:500;display:block}.setting-row small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.setting-row input{position:absolute;opacity:0;width:34px;height:24px;right:10px;margin:0}.switch{width:32px;height:19px;background:#d4d2c9;flex-shrink:0;border-radius:20px;transition:.2s;pointer-events:none}.switch:after{content:"";display:block;width:13px;height:13px;background:#faf9f5;border-radius:50%;margin:3px;box-shadow:0 1px 3px #0002;transition:.2s}.setting-row input:checked+.switch{background:var(--brass)}.setting-row input:checked+.switch:after{transform:translateX(13px)}.setting-row input:focus-visible+.switch{outline:2px solid #9b793e;outline-offset:3px}.setting-row:has(input:disabled){opacity:.45;cursor:default}.text-button{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;width:100%;padding:16px 8px 10px;font-size:11px}.text-button svg{width:17px;height:17px}.view-caption{position:absolute;bottom:38px;left:34px;pointer-events:none;max-width:350px}.eyebrow{font-size:9px;letter-spacing:2px;color:#8e815f;font-weight:600}.view-caption h1{font:400 30px/1.1 Georgia,"Times New Roman",serif;letter-spacing:-.5px;margin:9px 0 10px}.view-caption p{font-size:11px;color:#777b70;margin:0;line-height:1.5;max-width:285px}.bottom-tools{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;gap:9px;align-items:center}.fov-panel{display:flex;gap:12px;align-items:center;height:46px;padding:0 16px;border-radius:13px}.fov-panel>svg{width:19px;height:19px;color:#9c8b67}.fov-panel label{font-size:10px;white-space:nowrap}.fov-panel output{font-size:11px;font-variant-numeric:tabular-nums;min-width:28px;text-align:right}input[type=range]{appearance:none;-webkit-appearance:none;height:2px;background:#d4d0c3;width:110px;cursor:pointer;accent-color:var(--brass)}input[type=range]::-webkit-slider-thumb{appearance:none;width:11px;height:11px;background:var(--brass);border:2px solid #f8f5ec;border-radius:50%;box-shadow:0 0 0 1px #ac986b}input[type=range]::-moz-range-thumb{width:8px;height:8px;background:var(--brass);border:2px solid #f8f5ec;border-radius:50%}.minimap{position:absolute;bottom:32px;right:32px;width:230px;padding:14px 12px 11px}.minimap .panel-heading{padding:0 2px;font-size:8px;letter-spacing:1.1px}.minimap #map-location{font-size:7px;color:#a18f67;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.5px}#map-svg{width:100%;height:145px;margin-top:7px}#map-svg .map-room{fill:#e4e0d6;stroke:#c6c0b2;stroke-width:1.1}#map-svg .map-room.active{fill:#ddd3bb}#map-svg .map-edge{stroke:#c4bba5;stroke-width:.9;stroke-dasharray:2 3}#map-svg .map-point{cursor:pointer;fill:#fbf9f0;stroke:#8c846b;stroke-width:1.15;transition:fill .15s}#map-svg .map-point:hover{fill:#c8b281;stroke:#72603b;stroke-width:2}#map-svg .map-point.current{fill:#3c4740;stroke:#fffef8;stroke-width:1.8}#map-svg .map-heading{fill:#b59a60;opacity:.6;pointer-events:none}#map-svg .map-label{font-size:6px;fill:#8d8776;pointer-events:none;text-anchor:middle}.map-legend{display:flex;align-items:center;gap:5px;font-size:7px;color:#969383;justify-content:center;margin-top:4px}.map-legend span{width:5px;height:5px;display:inline-block;border-radius:50%}.legend-current{background:#3c4740}.legend-point{border:1px solid #8c846b;background:#fffdf8;margin-left:7px}.interaction-label{position:absolute;pointer-events:none;background:#2d3330ec;color:#fffdf2;border:1px solid #ffffff2c;box-shadow:0 3px 20px #0002;font-size:11px;padding:9px 13px;border-radius:7px;white-space:nowrap;transform:translate(-50%,-150%);z-index:3}.toast{position:absolute;left:50%;bottom:100px;transform:translateX(-50%);max-width:calc(100% - 40px);padding:13px 20px;background:#2d3330ee;color:#f9f7ee;box-shadow:0 6px 30px #0002;font-size:11px;line-height:1.5;border-radius:10px;text-align:center;z-index:10}.fade{position:absolute;inset:0;background:#eeebe5;opacity:0;pointer-events:none;z-index:8;transition:opacity .22s}.fade.on{opacity:1;pointer-events:auto}.help-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#252e2866;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);z-index:12;padding:20px}.help-card{position:relative;width:440px;max-width:100%;padding:38px 38px 27px}.help-close{position:absolute;right:20px;top:20px}.help-card h2{font:400 28px/1.25 Georgia,serif;margin:13px 0 24px}.help-rows p{display:flex;gap:15px;align-items:center;margin:18px 0;color:#807963;font-size:10px;line-height:1.4}.help-rows svg{color:#9c8659;width:25px;height:25px}.help-rows strong{display:block;color:#373e35;font-weight:500;font-size:12px;margin-bottom:4px}.primary-button{background:#303a32;color:#f7f5eb;border-radius:9px;padding:15px 23px;font-size:12px}.primary-button:hover{background:#475143}.help-card .primary-button{width:100%;margin-top:9px}.help-note{display:block;color:#989383;font-size:9px;line-height:1.5;margin-top:14px;text-align:center}.loading{position:absolute;inset:0;z-index:20;background:#eeebe5;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .5s}.loading.leaving{opacity:0;pointer-events:none}.loading-brand{font-size:51px;margin-bottom:30px}.loader-ring{width:26px;height:26px;border:1px solid #c8c2b4;border-top-color:#9f8755;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:28px}.loading h2{font:400 29px Georgia,serif;margin:16px 20px 10px;text-align:center}.loading p{font-size:11px;color:#898979;text-align:center;max-width:420px;line-height:1.7;margin:0 25px 20px}.loading small{position:absolute;bottom:32px;font-size:9px;letter-spacing:1.2px;color:#a39d8e}.loading.error .loader-ring{border-color:#ac9272;animation:none;position:relative}.loading.error .loader-ring:before{content:"!";position:absolute;inset:0;display:grid;place-items:center;color:#9f8755;font-family:Georgia,serif}.noscript{position:absolute;z-index:30;inset:0;display:grid;place-items:center;background:#eeebe5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.rooms-panel{width:235px;top:132px}.topbar{top:34px}.view-caption{bottom:42px}.bottom-tools,.minimap{bottom:36px}.minimap{width:255px}#map-svg{height:165px}}
@media(max-width:1150px){.topbar{left:22px;right:22px;gap:12px}.brand{min-width:180px;gap:10px}.brand strong{font-size:10px;letter-spacing:1.4px}.brand small{font-size:9px}.top-actions{min-width:160px}.rooms-panel{left:22px;width:194px}.room-button{font-size:11px;padding:11px}.view-caption{left:24px;bottom:98px}.view-caption h1{font-size:27px}.view-caption p{font-size:10px;max-width:220px}.minimap{right:22px;bottom:92px;width:200px;padding:12px 10px}#map-svg{height:120px}.bottom-tools{bottom:24px}.settings-panel{right:22px}.fov-panel{gap:10px}.mode{padding:12px 16px}}
@media(max-width:720px){.topbar{top:max(15px,env(safe-area-inset-top));left:15px;right:15px;display:grid;grid-template-columns:1fr auto;gap:15px 10px}.brand{min-width:0;gap:10px}.brand-mark{font-size:29px}.brand strong{font-size:9px;letter-spacing:1px}.brand small{font-size:8px;margin-top:5px}.top-actions{min-width:0;gap:6px}.photo-button{padding:0 11px}.photo-button span:not(:first-child){display:none}.action{height:40px}.icon-button{width:40px}.top-actions .action svg{width:18px;height:18px}.mode-switch{grid-row:2;grid-column:1/-1;justify-self:center;padding:4px;gap:2px}.mode{font-size:11px;padding:10px 18px;gap:8px}.mode svg{width:18px;height:18px}.rooms-panel{top:132px;left:15px;right:15px;width:auto;padding:8px;border-radius:11px;background:rgba(249,247,241,.9)}.rooms-panel .panel-heading,.room-footer{display:none}#rooms{flex-direction:row;overflow-x:auto;scrollbar-width:none;gap:4px;margin:0}#rooms::-webkit-scrollbar{display:none}.room-button{width:auto;flex-shrink:0;padding:9px 11px;font-size:10px;border-radius:7px;gap:7px}.room-symbol{width:14px;height:14px;font-size:7px}.room-button .room-number{display:none}.view-caption{left:19px;bottom:calc(91px + env(safe-area-inset-bottom));max-width:calc(100% - 170px)}.view-caption .eyebrow{font-size:7px;letter-spacing:1.1px}.view-caption h1{font-size:24px;margin:8px 0}.view-caption p{font-size:9px;max-width:200px}.minimap{bottom:calc(85px + env(safe-area-inset-bottom));right:15px;width:143px;padding:10px 8px}.minimap .panel-heading{font-size:6px;letter-spacing:.7px}.minimap #map-location{display:none}#map-svg{height:98px;margin-top:2px}.map-legend{font-size:5px;gap:3px}.map-legend span{width:4px;height:4px}.bottom-tools{bottom:calc(20px + env(safe-area-inset-bottom));gap:7px;width:calc(100% - 30px);justify-content:center}.fov-panel{height:40px;padding:0 11px;gap:7px;flex:1;max-width:310px}.fov-panel label{font-size:9px}.fov-panel>svg{width:17px;height:17px}.fov-panel input{min-width:40px;width:100%;flex:1}.fov-panel output{font-size:10px}.settings-panel{right:15px;top:63px;width:276px}.toast{bottom:calc(207px + env(safe-area-inset-bottom));font-size:10px;width:max-content;max-width:calc(100% - 35px)}.help-card{padding:32px 25px 25px}.help-card h2{font-size:25px}.help-rows p{margin:16px 0}.loading h2{font-size:26px}.loading p{font-size:10px}.frame-gradient{background:linear-gradient(180deg,#f4f1eac4,transparent 220px,transparent calc(100% - 230px),#e4e1d8b0)}}
@media(max-height:600px) and (min-width:721px){.rooms-panel{top:95px;padding-top:12px}.room-button{padding:8px 10px}.room-footer{margin-top:7px;padding-top:9px}#rooms{margin-top:7px}.topbar{top:18px}.minimap{width:170px;bottom:22px}#map-svg{height:90px}.view-caption{bottom:26px}.view-caption p{display:none}.bottom-tools{bottom:22px}.help-card{padding:25px 30px}.help-rows p{margin:11px 0}.help-card h2{font-size:24px;margin:10px 0 14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.apartment-picker{position:absolute;bottom:92px;left:50%;transform:translateX(-50%);width:min(690px,calc(100% - 565px));padding:10px 12px;z-index:2}.apartment-label{display:block;font-size:7px;letter-spacing:1.7px;color:#93917e;margin:0 0 7px 4px}.apartments{display:flex;gap:3px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c7bda7 transparent}.apartment-button{background:transparent;font-size:10px;min-width:35px;padding:8px 5px;border-radius:6px;color:#797b6b;flex:1}.apartment-button:hover{background:#e8e2d3}.apartment-button.active{background:#303a32;color:#f4f0e4}.apartment-button:focus-visible{outline-offset:-2px}.has-catalog .view-caption{max-width:260px}@media(max-width:1150px){.apartment-picker{bottom:83px;width:calc(100% - 460px);min-width:340px}.has-catalog .view-caption{bottom:171px;max-width:200px}}@media(max-width:720px){.apartment-picker{left:15px;right:15px;width:auto;min-width:0;transform:none;bottom:calc(73px + env(safe-area-inset-bottom));padding:8px 8px 6px;border-radius:10px}.apartment-label{font-size:6px;margin-bottom:4px}.apartment-button{padding:7px 6px;font-size:9px;min-width:34px}.has-catalog .view-caption{bottom:calc(157px + env(safe-area-inset-bottom));max-width:calc(100% - 170px)}.has-catalog .minimap{bottom:calc(149px + env(safe-area-inset-bottom))}.has-catalog .toast{bottom:calc(270px + env(safe-area-inset-bottom))}}@media(max-height:600px) and (min-width:721px){.apartment-picker{bottom:78px;width:calc(100% - 460px);min-width:320px}.has-catalog .view-caption{bottom:30px}}
@media(max-width:720px){.has-catalog .view-caption{max-width:calc(100% - 190px)}}
.model-downloads{border-top:1px solid var(--line);margin-top:12px;padding-top:12px;display:grid;gap:12px}.model-downloads a{font-size:11px;color:#637056;text-decoration:none}.model-downloads a:hover{text-decoration:underline}
