@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@300;400;500;600&display=swap');
:root{color-scheme:dark;--bg:#111b1d;--panel:rgba(18,29,31,.96);--line:rgba(234,234,214,.16);--text:#f3f1e8;--muted:#b1bbb7;--gold:#d5bb8d;--font:'DM Sans',Arial,sans-serif;font:16px var(--font)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);overflow:hidden}button,input,select{font:inherit}button{color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{border:0;background:none}button:hover{color:var(--gold)}[hidden]{display:none!important}#app{height:100dvh;width:100%;position:relative;overflow:hidden}#viewport{position:absolute;inset:0}#scene{width:100%;height:100%;display:block;touch-action:none;outline:none}.vignette{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,17,19,.55),transparent 23%,transparent 70%,rgba(8,17,19,.67))}.welcome .vignette{background:linear-gradient(90deg,rgba(9,21,24,.95),rgba(9,21,24,.62) 27%,transparent 60%),linear-gradient(180deg,rgba(9,21,24,.45),transparent 22%,transparent 72%,rgba(9,21,24,.78))}.topbar{position:absolute;top:0;left:0;right:0;padding:26px 34px;display:flex;align-items:center;gap:32px;z-index:20;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-align:left;padding:0}.brand svg{width:39px;height:37px;fill:none;stroke:var(--gold);stroke-width:1.7}.brand>span{font:500 24px 'Manrope',Arial;letter-spacing:5px}.brand-detail{display:block;font:9px var(--font);letter-spacing:2px;margin-top:3px;color:var(--muted)}.project-id{margin-left:auto;font-size:13px;letter-spacing:2px;display:flex;gap:24px;align-items:center}.project-id span{font-size:11px;letter-spacing:1.4px;color:var(--muted);padding-left:24px;border-left:1px solid var(--line)}.top-actions{display:flex;gap:10px}.icon-btn{width:34px;height:34px;font-size:22px;display:grid;place-items:center}.intro{position:absolute;left:6%;top:25%;width:340px;z-index:5}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:500;color:var(--gold)}h1{font:300 clamp(64px,7vw,112px)/.98 'Manrope',Arial;margin:28px 0;letter-spacing:-5px}h1 em{font-style:normal;color:var(--gold);font-weight:300}.intro p{font-size:16px;line-height:1.7;color:#c5ccc5;font-weight:400}.intro-actions{margin-top:30px;display:flex;flex-direction:column;align-items:flex-start;gap:13px}.primary{background:var(--gold);color:#172222;min-width:234px;padding:17px 22px;text-align:left;font-size:12px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:34px;border-radius:2px}.primary:hover{background:#e5d1ac;color:#142021}.primary span{font-size:21px;font-weight:400}.text-button{font-size:11px;letter-spacing:1.4px;padding:10px 0}.intro-spec{display:flex;gap:27px;margin-top:36px;border-top:1px solid var(--line);padding-top:20px}.intro-spec>span{font-size:9px;letter-spacing:1px;color:var(--muted)}.intro-spec strong{display:block;color:var(--text);font:300 23px 'Manrope';margin-bottom:7px;letter-spacing:0}.splash-caption{position:absolute;right:5%;bottom:11%;text-align:right}.splash-caption>span{font-size:10px;letter-spacing:2px;color:var(--gold)}.splash-caption p{font:300 24px 'Manrope';margin:12px 0}.splash-caption .small{font-size:10px;color:var(--muted);letter-spacing:.3px}.main-nav{position:absolute;z-index:21;top:98px;left:50%;transform:translateX(-50%);display:flex;background:var(--panel);border:1px solid var(--line);padding:4px;border-radius:5px;box-shadow:0 8px 34px #0002}.nav-btn{font-size:11px;letter-spacing:1.1px;padding:14px 18px;white-space:nowrap;border-radius:3px}.nav-btn.active{background:#30413f;color:#ecd6b0}.welcome .main-nav{display:none}.panel{position:absolute;top:158px;left:28px;width:326px;max-height:calc(100dvh - 221px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:22px;z-index:24;box-shadow:0 14px 50px #0003;scrollbar-width:thin;scrollbar-color:#56615a transparent}.panel-head{display:flex;align-items:center;justify-content:space-between;font:400 21px 'Manrope';border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:20px}.panel p{font-size:14px;line-height:1.65;color:var(--muted)}.panel .section-label{font-size:11px;letter-spacing:1.5px;color:var(--gold);margin:26px 0 11px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-button{border:1px solid var(--line);border-radius:4px;padding:15px 8px;text-align:center;font-size:13px}.mode-button span{font-size:27px;display:block;margin-bottom:8px;color:var(--gold)}.mode-button.active,.choice.active{border-color:var(--gold);background:#bba77c19}.wide-button{width:100%;border:1px solid var(--line);padding:13px 12px;border-radius:3px;text-align:left;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.wide-button+.wide-button{margin-top:8px}.wide-button:hover{background:#bca98114}.hint{font-size:12px!important;color:var(--muted);line-height:1.7}.space-row{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:11px 0;border-bottom:1px solid var(--line)}.space-row img{width:70px;height:48px;object-fit:cover;border-radius:2px}.space-row strong{display:block;font-size:14px;font-weight:400}.space-row small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.1px;margin-top:6px}.space-row>span:last-child{margin-left:auto;font-size:16px}.location{position:absolute;left:34px;bottom:80px;pointer-events:none}.location h2{font:300 31px 'Manrope';margin:10px 0 7px;letter-spacing:-.5px}.location #mode-name{font-size:12px;color:var(--muted)}.right-tools{position:absolute;right:30px;top:164px;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--panel);border-radius:4px;z-index:15}.right-tools button{height:44px;width:44px;font-size:22px;border-bottom:1px solid var(--line)}.right-tools button:last-child{border:0}.minimap{position:absolute;bottom:75px;right:30px;width:190px;border:1px solid var(--line);background:var(--panel);padding:14px;border-radius:4px;z-index:15}.map-heading{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.3px}.map-heading b{font-weight:400}.map-heading button{font-size:10px;padding:5px 7px}.map-heading button.active{color:var(--gold);background:#ffffff12}.minimap svg{width:100%;height:195px;margin-top:10px;display:block}.map-note{font-size:9px;color:var(--muted)}.map-room{fill:#d4ccb119;stroke:#9ea79a;stroke-width:.08;cursor:pointer}.map-room:hover,.map-room.active{fill:#d5bb8d66}.map-room-label{fill:#c3cbbf;font-size:.43px;text-anchor:middle;pointer-events:none}.map-wall{fill:none;stroke:#dbded1;stroke-width:.12;pointer-events:none}#map-arrow{fill:#efca83;stroke:#172222;stroke-width:.04;pointer-events:none}.footer{position:absolute;bottom:0;left:0;right:0;height:49px;display:flex;align-items:center;gap:26px;padding:0 34px;border-top:1px solid var(--line);font-size:9px;letter-spacing:1.5px;color:var(--muted);pointer-events:none}.footer #quality-label{margin-left:auto}.compass{font-size:18px;color:var(--gold);display:flex;align-items:center;gap:10px}.compass b{font-size:8px;font-weight:400}.hotspot{position:absolute;z-index:8;width:27px;height:27px;border:1px solid #e2c798;border-radius:50%;background:#14292dcc;box-shadow:0 0 0 5px #14292d30;transform:translate(-50%,-50%);font-size:17px;color:#ecd7ae;pointer-events:auto}.hotspot:hover{box-shadow:0 0 0 8px #d9bd7c22}.hotspot span{display:none;position:absolute;left:34px;top:-1px;white-space:nowrap;background:var(--panel);font-size:12px;padding:7px 10px;border-radius:3px}.hotspot:hover span,.hotspot:focus span{display:block}#hotspots,#technical-labels{position:absolute;inset:0;pointer-events:none}.technical-label{position:absolute;padding:5px 7px;background:#132226dd;border:1px solid #dbc39866;font-size:10px;white-space:nowrap;transform:translate(-50%,-50%)}.loading{position:fixed;inset:0;background:#102124;z-index:1000;display:flex;align-items:center;justify-content:center;flex-direction:column}.loading h2{font:300 42px 'Manrope';margin:20px}.loading p{color:var(--muted);font-size:13px}.load-track{height:2px;width:200px;background:#ffffff16;margin:15px}.load-track i{display:block;background:var(--gold);width:0;height:100%;transition:width .2s}#load-value{font-size:11px;letter-spacing:2px}.choice-row{display:flex;gap:7px}.choice{flex:1;border:1px solid var(--line);border-radius:3px;padding:12px 5px;font-size:12px}.swatch-row{display:flex;gap:8px;margin-top:9px}.swatch{width:33px;height:33px;border-radius:50%;border:3px solid #283532;box-shadow:0 0 0 1px var(--line)}label.control{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin:17px 0;gap:10px}input[type=checkbox]{accent-color:var(--gold);width:18px;height:18px}input[type=range]{width:100%;accent-color:var(--gold)}select{border:1px solid var(--line);background:#263632;color:var(--text);padding:9px;border-radius:3px;font-size:12px;max-width:155px}dialog{background:#152426;color:var(--text);border:1px solid var(--line);border-radius:5px;max-width:min(950px,92vw);max-height:90dvh;padding:34px;box-shadow:0 20px 80px #0008}dialog::backdrop{background:#071518b8;backdrop-filter:blur(5px)}#close-modal{position:absolute;right:11px;top:10px}dialog h2{font:300 30px 'Manrope';margin-top:0}dialog p{color:#c0c9c1;font-size:15px;line-height:1.7}dialog img{max-width:100%;max-height:65dvh;object-fit:contain;display:block}dialog a{color:var(--gold)}.key{border:1px solid var(--line);display:inline-block;padding:3px 8px;margin:2px;border-radius:3px;font-size:12px}.tour-bar{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);border:1px solid var(--line);background:var(--panel);padding:18px 21px;display:flex;gap:20px;align-items:center;border-radius:4px;z-index:29;min-width:520px}.tour-bar .eyebrow{font-size:9px}.tour-bar b{font-size:13px;font-weight:400}.tour-progress{position:absolute;left:0;bottom:0;right:0;height:2px;background:#ffffff20}.tour-progress i{display:block;background:var(--gold);height:100%;width:0}#toast{position:absolute;left:50%;top:166px;transform:translateX(-50%);z-index:70;padding:13px 20px;background:#142528ee;border:1px solid var(--line);border-radius:4px;font-size:13px;max-width:90vw;text-align:center}.crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff9;font-size:22px;pointer-events:none}.walk-help{position:absolute;bottom:62px;left:50%;transform:translateX(-50%);background:#152629ba;padding:8px 14px;border-radius:3px;white-space:nowrap;font-size:11px;color:#cbd2c5}.interaction-prompt{position:absolute;top:57%;left:50%;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--gold);padding:10px 18px;border-radius:4px;font-size:13px;z-index:20}#joystick{display:none;position:absolute;bottom:85px;left:28px;width:105px;height:105px;border:1px solid #d6c09a88;border-radius:50%;background:#14282b55;touch-action:none;z-index:26}#joystick i{position:absolute;left:32px;top:32px;width:40px;height:40px;border-radius:50%;background:#d6bc8b77;border:1px solid #d6bc8b;pointer-events:none}#touch-actions{display:none;position:absolute;bottom:88px;right:22px;gap:10px;z-index:26}#touch-actions button{border:1px solid var(--line);border-radius:50%;width:47px;height:47px;background:var(--panel);font-size:23px;touch-action:none}#compare{position:absolute;inset:0;z-index:30;pointer-events:none}#compare-image{position:absolute;inset:0;clip-path:inset(0 0 0 50%);overflow:hidden}#compare-image img{width:100%;height:100%;object-fit:cover}.compare-label{position:absolute;top:112px;background:var(--panel);padding:10px 15px;font-size:10px;letter-spacing:1.5px}.compare-label.left{left:27px}.compare-label.right{right:27px}#compare-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--gold)}#compare-line:after{content:'↔';position:absolute;top:48%;left:-20px;width:40px;height:40px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--gold);border-radius:50%}#compare-slider{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:auto;cursor:ew-resize;margin:0}#compare-close{position:absolute;right:25px;bottom:75px;pointer-events:auto;background:var(--panel);border:1px solid var(--line);padding:12px 18px;font-size:12px;border-radius:30px}#compare p{position:absolute;left:25px;bottom:75px;background:var(--panel);font-size:11px;padding:10px}.measure-status{position:absolute;left:50%;top:160px;transform:translateX(-50%);background:var(--panel);padding:12px 18px;border:1px solid var(--gold);font-size:13px;z-index:20}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery-grid button{text-align:left;font-size:11px;padding:0}.gallery-grid img{width:100%;height:86px;object-fit:cover;margin-bottom:5px;border-radius:3px}.tech-table{width:100%;font-size:12px;border-collapse:collapse;color:var(--muted)}.tech-table td{padding:9px 0;border-bottom:1px solid var(--line)}.tech-table td:last-child{text-align:right;color:var(--text)}.download-link{display:block;padding:13px 0;color:var(--gold);font-size:13px;text-decoration:none;border-bottom:1px solid var(--line)}.reduced *{scroll-behavior:auto!important;transition:none!important}
@media(min-width:1600px){.intro{left:7%;top:26%;width:400px}.intro-spec{margin-top:40px}.intro-actions{margin-top:38px}}
@media(max-height:760px) and (min-width:769px){.intro{top:21%}h1{font-size:75px;margin:20px 0}.intro-spec{margin-top:18px}.intro-actions{gap:5px;margin-top:15px}.intro p{line-height:1.5}.primary{padding:14px 20px}}
@media(max-width:1000px){.project-id span{display:none}.nav-btn{padding:13px 12px;font-size:10px}.intro{left:5%;width:300px}.splash-caption{max-width:230px}.splash-caption p{font-size:20px}}
@media(max-width:768px){.topbar{padding:18px 20px;gap:12px}.brand>span{font-size:20px;letter-spacing:4px}.brand-detail{font-size:7px;letter-spacing:1px}.brand svg{width:29px}.project-id{display:none}.top-actions{margin-left:auto;gap:1px}.icon-btn{width:30px;height:30px}.welcome .vignette{background:linear-gradient(0deg,#0c1d20 0%,#0c1d20a8 30%,transparent 66%,#0c1d2088)}.intro{top:auto;bottom:100px;left:24px;right:24px;width:auto}.intro>.eyebrow{font-size:9px}h1{font-size:58px;line-height:1;margin:14px 0 10px;letter-spacing:-2.5px}h1 br{display:none}h1 em{margin-left:10px}.intro p{font-size:13px;line-height:1.4;margin:10px 0}.intro p br{display:none}.intro-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:20px;gap:8px}.intro-actions .primary{grid-column:1/-1;width:100%;min-width:0;padding:15px 18px;font-size:11px}.text-button{font-size:9px;text-align:left}.intro-spec{margin-top:18px;padding-top:14px;gap:32px}.intro-spec strong{font-size:19px}.intro-spec>span{font-size:8px}.splash-caption{display:none}.main-nav{top:83px;left:16px;right:16px;transform:none;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}.nav-btn{font-size:10px;padding:12px 13px}.panel{left:16px;right:16px;top:140px;width:auto;max-height:calc(100dvh - 215px);padding:18px}.panel-head{font-size:20px;margin-bottom:15px;padding-bottom:10px}.location{left:20px;bottom:65px}.location h2{font-size:24px;margin:8px 0 4px}.location .eyebrow{font-size:9px}.location #mode-name{font-size:10px}.minimap{bottom:120px;right:16px;width:124px;padding:9px}.minimap svg{height:131px;margin-top:5px}.map-note{display:none}.map-heading{font-size:8px}.map-heading button{font-size:9px;padding:3px 5px}.right-tools{right:16px;top:142px}.right-tools button{width:36px;height:36px;font-size:19px}.footer{padding:0 20px;height:42px;font-size:8px;gap:13px}.footer .compass{display:none}.tour-bar{bottom:61px;left:16px;right:16px;transform:none;min-width:0;gap:10px;flex-wrap:wrap;padding:12px}.tour-bar>.eyebrow{display:none}.tour-bar b{flex:1;font-size:12px}.tour-bar .text-button{padding:8px}.walk-help{display:none}#joystick,#touch-actions{display:flex}.walking .location{bottom:49px}.walking .minimap{bottom:205px;width:112px}.walking .minimap svg{height:118px}.compare-label{top:88px;font-size:8px;padding:8px}.compare-label.left{left:15px}.compare-label.right{right:15px}#compare p{bottom:123px;left:15px;right:15px;font-size:10px}#compare-close{bottom:66px;right:15px}.hotspot{width:23px;height:23px;font-size:14px}dialog{padding:28px 20px}dialog h2{font-size:25px}dialog p{font-size:14px}.measure-status{font-size:12px;top:137px;width:90%;text-align:center}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Compact navigation and an explicitly collapsible plan. */
.nav-btn{flex:0 0 auto}.minimap{opacity:0;transform:translateY(10px) scale(.97);pointer-events:none;transition:opacity .18s ease,transform .18s ease;transform-origin:bottom right}.minimap.is-open{opacity:1;transform:none;pointer-events:auto;animation:map-in .18s ease}.map-heading{gap:5px}.map-heading #map-close{font-size:22px;min-width:30px;min-height:30px;padding:0}#minimap-toggle[aria-expanded=true]{color:var(--gold);background:#d5bb8d18}.map-room:focus-visible{outline:none;stroke:#efca83;stroke-width:.18}.map-heading button{min-height:30px;min-width:26px}.space-row>span{min-width:0}.space-row strong{overflow-wrap:anywhere}.choice-row{flex-wrap:wrap}.choice{min-width:72px}.panel-head{position:sticky;top:-22px;background:var(--panel);z-index:2;padding-top:8px}.minimap .map-note{display:block;line-height:1.4}
@keyframes map-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:768px){
 .topbar{height:76px;padding:12px 14px;gap:8px}.brand{gap:8px;min-width:0}.brand>span{font-size:18px;letter-spacing:3px}.brand svg{width:26px;flex:none}.top-actions{gap:0}.top-actions .icon-btn{width:40px;height:44px}.brand-detail{letter-spacing:.6px}
 .main-nav{top:83px;left:12px;right:12px;max-width:calc(100% - 24px);padding:3px;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#a58f6770 transparent}.nav-btn{min-height:44px;font-size:11px;letter-spacing:.65px;padding:11px 14px;scroll-snap-align:start}
 .panel{left:12px;right:12px;top:148px;max-height:calc(100dvh - 210px);padding:17px;overscroll-behavior:contain}.panel-head{top:-17px}.panel-head .icon-btn{width:44px;height:44px;flex:none}.control select{min-width:0;max-width:52%;min-height:44px}.control input[type=checkbox]{width:24px;height:24px;flex:none}.swatch{width:44px;height:44px}.gallery-grid button{min-height:44px}.text-button{min-height:44px}.tech-table{font-size:11px}.tech-table td{overflow-wrap:anywhere}.choice{min-height:44px}
 .right-tools{right:12px;top:148px}.right-tools button{width:44px;height:44px;font-size:21px}.minimap,.walking .minimap{right:12px;top:148px;bottom:auto;width:min(248px,calc(100vw - 76px));max-height:calc(100dvh - 320px);padding:10px;overflow:auto;z-index:27;transform-origin:top right}.minimap svg,.walking .minimap svg{height:clamp(145px,29dvh,260px);margin-top:4px}.map-heading{font-size:9px}.map-heading button,.map-heading #map-close{min-width:36px;min-height:40px;font-size:12px}.map-heading #map-close{font-size:24px}.map-note{font-size:10px}
 .location{left:16px;right:72px;bottom:62px}.location h2{font-size:clamp(18px,5.5vw,24px);overflow-wrap:anywhere}.walking .location{bottom:49px}.location .eyebrow{letter-spacing:1.5px}.footer{padding:0 16px;gap:9px;font-size:7px;letter-spacing:1px}.hotspot{width:34px;height:34px}.hotspot span{max-width:150px;white-space:normal}.tour-bar{left:12px;right:12px}.tour-bar b{min-width:120px}#tour-pause{min-width:44px;min-height:44px}.interaction-prompt{max-width:calc(100vw - 32px);min-height:44px;white-space:normal}.measure-status{max-width:calc(100vw - 24px)}dialog{width:calc(100vw - 24px);max-width:600px;max-height:calc(100dvh - 32px)}#close-modal{width:44px;height:44px}
 .intro{left:20px;right:20px;bottom:68px}.intro h1{font-size:clamp(41px,12vw,58px)}.intro-spec{gap:22px}.intro-actions{gap:4px;margin-top:14px}
}
@media(max-height:620px) and (max-width:768px){.intro{bottom:55px}.intro p{font-size:12px}.intro-spec{display:none}.intro-actions{margin-top:8px}.intro h1{margin:8px 0}.minimap,.walking .minimap{max-height:calc(100dvh - 218px)}.minimap svg,.walking .minimap svg{height:170px}.panel{max-height:calc(100dvh - 205px)}}
@media(prefers-reduced-motion:reduce){.minimap{animation:none!important;transition:none!important}}
.reduced .minimap{animation:none!important}
