@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');*{box-sizing:border-box}html,body{margin:0;background:#17231b;color:#202321;font:14px 'Be Vietnam Pro',sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b59466;outline-offset:3px}.journey{height:600vh;pointer-events:none}.viewport{position:fixed;inset:0;overflow:hidden;background:#b7c7c3}#canvas-holder{position:absolute;inset:0}#canvas-holder canvas{display:block;width:100%;height:100%;touch-action:pan-y}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0b1813a8,transparent 65%),linear-gradient(0deg,#0b181366,transparent 25%)}header{position:absolute;z-index:4;top:0;left:0;width:100%;height:78px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;color:#f5f2ec;background:linear-gradient(#17221dd9,#17221d65);gap:15px}.logo{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.08em;line-height:1.35}.symbol{width:41px;height:41px;border:1px solid #cfb89c;display:grid;place-items:center;font:21px 'Playfair Display';letter-spacing:-2px}.header-actions{display:flex;align-items:center;gap:9px}.header-actions>button{border:0;background:transparent;color:#fff;padding:12px 10px;min-height:44px;font-size:11px}.header-actions>button span{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#b59466;color:#17231b}.mode{display:flex;border:1px solid #ffffff66}.mode button{min-height:42px;border:0;background:transparent;color:#fff;font-size:11px;padding:0 14px}.mode button[aria-pressed=true]{background:#eee6d7;color:#202321}.journey-copy{position:absolute;z-index:2;top:29%;left:6%;color:white;max-width:430px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:11px;color:#dfc7a3;font-size:9px;font-weight:600;letter-spacing:.2em}.eyebrow span{width:30px;height:1px;background:currentColor}h1{font:500 clamp(46px,5.4vw,84px)/1.08 'Playfair Display',serif;letter-spacing:-.035em;margin:22px 0}h1 em{font-weight:500;color:#d8bd97}.journey-copy p{font-size:13px;line-height:1.9;color:#eff4ec;max-width:340px}.browse{display:inline-block;pointer-events:auto;margin-top:18px;border:0;border-bottom:1px solid #d8c7aa;padding:12px 0;background:transparent;color:#fff;font-size:11px;font-weight:600}.scroll-indicator{position:absolute;bottom:35px;left:6%;display:flex;align-items:center;gap:14px;color:white;font-size:9px;letter-spacing:.18em}.scroll-indicator i{display:block;background:#ddd;width:60px;height:1px}.progress{position:absolute;right:6%;bottom:35px;display:flex;align-items:center;gap:12px;color:white;font-size:10px}.progress div{width:90px;height:2px;background:#ffffff55}.progress i{display:block;width:0;height:2px;background:#dfc19a}.model-note{position:absolute;right:6%;top:100px;color:#fff;background:#142019aa;padding:8px;font-size:9px;letter-spacing:.08em}.material-card{position:absolute;z-index:5;right:6%;bottom:12%;width:270px;background:#f5f2ec;color:#202321;padding:25px;box-shadow:0 10px 40px #0005}.material-card[hidden],.fallback[hidden],.panel[hidden],.panel-backdrop[hidden]{display:none}.material-card>button:first-child{position:absolute;top:2px;right:5px;border:0;background:none;font-size:24px;width:44px;height:44px}.material-card span,.panel-top span{font-size:9px;letter-spacing:.15em;color:#91734f}.material-card h2{font:500 27px 'Playfair Display';margin:10px 0}.material-card p{font-size:11px;line-height:1.7;color:#59665c}.material-card #material-open{display:inline-block;padding:12px 0;border:0;border-bottom:1px solid #a58d6e;background:none;font-size:11px;font-weight:600}.fallback{position:absolute;z-index:1;inset:0;display:grid;place-content:center;background:linear-gradient(#14231dc4,#14231dc4),url('assets/exterior-day.webp') center/cover;color:white;text-align:center}.fallback-content{padding:30px;max-width:500px}.fallback button{background:#eee6d7;border:0;padding:14px 20px}.panel-backdrop{position:absolute;z-index:8;inset:0;background:#0b1711a1}.panel{overscroll-behavior:contain;position:absolute;z-index:9;right:0;top:0;width:min(510px,100%);height:100%;background:#f5f2ec;color:#202321;box-shadow:-10px 0 40px #0004;overflow:auto;padding:25px 30px}.panel-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d6d5ca;margin-bottom:25px}.panel-top button{width:44px;height:44px;border:0;background:transparent;font-size:28px}.panel h2{font:500 36px/1.1 'Playfair Display';margin:18px 0}.panel h3{font:500 22px 'Playfair Display';margin:15px 0 8px}.panel p{font-size:12px;line-height:1.8;color:#637066}.panel .categories{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.category-button{min-height:86px;text-align:left;border:1px solid #d5d2c8;background:#fff;padding:14px;color:#26332a}.category-button small{display:block;color:#9a7c57;font-size:9px;margin-bottom:8px}.category-button b{font:500 18px 'Playfair Display'}.panel-link{border:0;border-bottom:1px solid #a88c68;background:transparent;color:#26332a;min-height:44px;padding:10px 0;font-size:11px;font-weight:600}.sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.sample{background:#fff}.sample img{width:100%;height:160px;object-fit:contain;background:#e9e5de;display:block}.sample>div{padding:12px}.sample small{color:#8c684c;font-size:9px}.sample h3{font-size:21px}.sample p{font-size:10px}.sample button{width:100%;min-height:44px;border:1px solid #c3c8bd;background:#fff;font-size:10px}.sample button[aria-pressed=true]{background:#25382b;color:white}.panel-note{background:#e8e3d8;padding:15px;font-size:11px!important}.panel-form label{display:block;margin:14px 0;font-size:11px;color:#4e5e51}.panel-form input,.panel-form textarea,.panel-form select{width:100%;margin-top:7px;padding:12px;border:1px solid #bcbeb3;background:#fff;color:#202321;min-height:44px}.panel-form textarea{resize:vertical}.primary{min-height:44px;padding:12px 16px;border:0;background:#263a2c;color:#fff;font-size:11px}.full{width:100%}.selected-row{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #dadbd2;font-size:11px}.selected-row button{min-height:44px;border:0;background:none;color:#795f42}.output{width:100%;min-height:190px;padding:12px;border:1px solid #c1c6bb;background:#fff;resize:vertical}.panel-status{font-size:11px!important}.quote-message{white-space:pre-wrap}.empty{padding:16px;background:#ebe6dc}.controls-note{font-size:10px!important}@media(max-width:800px){header{height:65px;padding:0 4%}.header-actions{gap:0}.header-actions>button{padding:10px 7px}.mode button{padding:0 9px}.journey-copy{left:6%;top:17%;max-width:300px}h1{font-size:clamp(41px,9.8vw,62px)}.journey-copy p{font-size:11px;max-width:270px}.vignette{background:linear-gradient(180deg,#0c1913b8,transparent 55%),linear-gradient(0deg,#0c19138a,transparent 25%)}.model-note{top:auto;bottom:80px;right:5%;font-size:8px}.material-card{bottom:14%;width:min(260px,75%)}.panel{padding:22px 20px}.sample img{height:135px}}@media(max-width:390px){.logo{font-size:9px}.header-actions>button{font-size:10px;padding:8px 5px}.mode button{padding:0 6px}.mode span{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.mode button:disabled{opacity:.55;cursor:not-allowed}
/* Supplied architectural perspectives remain part of the full-screen house. */
.reference-card{position:absolute;z-index:3;bottom:132px;right:4%;width:290px;background:#f5f0e8;color:#252d27;padding:5px;border:1px solid #ffffff77;box-shadow:0 12px 40px #0004;text-align:left;border-radius:3px}.reference-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.reference-card>span{display:block;padding:14px 13px}.reference-card small{display:block;font-size:8px;letter-spacing:.2em;color:#88704f}.reference-card b{display:block;font-size:12px;font-weight:500;margin:8px 0}.reference-card em{font-style:normal;font-size:10px;color:#72634e}.room-nav{position:absolute;z-index:3;bottom:50px;left:6%;right:4%;display:flex;align-items:center;gap:20px;color:#fff;border-top:1px solid #ffffff40;padding-top:16px}.room-nav>span{font-size:8px;letter-spacing:.18em;white-space:nowrap}.room-nav>div{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.room-nav button,.photo-rooms button{border:1px solid transparent;background:transparent;color:inherit;white-space:nowrap;min-height:44px;padding:8px 12px;font-size:10px}.room-nav button:hover{border-color:#d2b58a}.scroll-indicator,.progress{bottom:18px}.model-note{font-size:8px;top:90px;max-width:290px;line-height:1.6}.journey-copy{top:25%;max-width:390px}.photo-view{position:absolute;inset:0;z-index:6;background:#131a16;color:#fff;overflow:hidden}.photo-view[hidden]{display:none}.photo-plane{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#room-photo{display:block;width:100%;height:100%;object-fit:contain}.photo-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0b1713c9,transparent 24%,transparent 73%,#0b1713df)}.photo-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:30px 4%;gap:20px;pointer-events:none}.photo-top small{font-size:8px;letter-spacing:.22em;color:#e4cbaa}.photo-top h2{font:400 clamp(27px,3vw,48px) 'Playfair Display';margin:8px 0}.photo-top button{pointer-events:auto;min-height:44px;border:1px solid #ffffff70;background:#15251dc4;color:white;padding:10px 17px;font-size:10px;backdrop-filter:blur(10px)}#hotspots{position:absolute;inset:0}.hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;background:none;border:0;color:#fff;min-height:44px;padding:4px}.hotspot i{display:grid;place-items:center;border:1px solid #fff;background:#193126b8;backdrop-filter:blur(8px);width:32px;height:32px;border-radius:50%;font-style:normal;font-size:19px;box-shadow:0 0 0 5px #ffffff20}.hotspot span{background:#193126d9;backdrop-filter:blur(10px);padding:9px 12px;font-size:10px;max-width:180px;text-align:left;line-height:1.5}.hotspot:hover i{background:#e1c096;color:#182a20}.photo-rooms{position:absolute;bottom:44px;left:4%;right:4%;display:flex;justify-content:center;gap:4px;overflow:auto;scrollbar-width:none}.photo-rooms button[aria-pressed=true]{border-color:#dfc7a1;background:#dfc7a1;color:#203429}.photo-note{position:absolute;bottom:10px;left:4%;right:4%;font-size:9px;color:#ded9cc;text-align:center}.photo-open #canvas-holder{pointer-events:none}.panel-open{overflow:hidden}.panel{z-index:12}.panel-backdrop{z-index:11}.photo-open{overflow:hidden}@media(min-width:1500px){.reference-card{width:340px}}@media(max-width:800px){.reference-card{width:182px;bottom:154px;right:5%}.reference-card>span{padding:9px}.reference-card small{font-size:7px}.reference-card b{font-size:10px;line-height:1.5;margin:4px 0}.reference-card em{font-size:8px}.room-nav{bottom:57px;left:5%;right:5%;display:block;padding-top:8px}.room-nav>span{display:none}.room-nav button{padding:8px 10px}.journey-copy{top:18%;max-width:270px}.journey-copy h1{font-size:42px}.model-note{display:none}.photo-top{padding:20px 5%;align-items:flex-start}.photo-top button{font-size:9px;padding:9px}.photo-top h2{font-size:29px}.hotspot span{font-size:8px;padding:6px 8px;max-width:105px}.hotspot i{width:27px;height:27px;font-size:15px}.photo-rooms{justify-content:flex-start;bottom:62px}.photo-note{font-size:8px;bottom:14px;line-height:1.7}.material-card{bottom:160px}.scroll-indicator{font-size:7px}.progress{bottom:20px}}

.fallback{background:linear-gradient(90deg,#10231b88,transparent 75%),url('assets/rooms/exterior.webp') center/cover;display:block}.fallback-content{position:absolute;bottom:125px;left:6%;text-align:left;padding:0;max-width:320px;background:#17271fcc;padding:12px 16px}.fallback-content h2{font:500 13px 'Be Vietnam Pro';margin:0 0 8px}.fallback-content p{font-size:10px;line-height:1.7;margin:0}.fallback-content button{display:none}.fallback{z-index:0}.journey-copy{z-index:2}@media(max-width:800px){.fallback-content{bottom:159px;left:5%;max-width:160px;padding:10px}.fallback-content h2{font-size:10px}.fallback-content p{font-size:8px}}
