:root{font-family:Arial,Helvetica,sans-serif;color:#fff;background:#17221b;color-scheme:dark}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #ffffff36;background:#16251d69;backdrop-filter:blur(14px);border-radius:30px;min-height:44px;padding:11px 20px;transition:background .2s,opacity .2s}button:hover{background:#e1e8d3;color:#1c2e22}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid #dbe7b2;outline-offset:5px}[hidden]{display:none!important}#app{height:100dvh;min-height:320px;position:relative;overflow:hidden}#stage{position:absolute;left:0;top:0;width:100%;height:100%}#stage img,#zones{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}#base{z-index:0}#reveal{opacity:0;pointer-events:none;transition:opacity .15s}#reveal.visible{opacity:1}#zones{z-index:2}#zones polygon{fill:transparent;cursor:pointer;outline:none}#zones polygon:focus-visible{stroke:#fff;stroke-width:2;fill:#dce99733}#panorama{display:none;position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}#panorama:active{cursor:grabbing}#film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;z-index:4;transition:opacity .18s}#film.show{opacity:1}.shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,#08150c55,transparent 23%,transparent 65%,#08150cd9);z-index:5}header{position:absolute;z-index:10;top:30px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:white;font-size:25px;letter-spacing:5px;font-weight:500}.brandmark{font-size:36px;font-weight:200;line-height:1}.brand small{display:block;font-size:8px;letter-spacing:2.7px;margin-top:7px}.tools{display:flex;gap:8px}.tools button{font-size:13px}#fullscreen{font-size:23px;padding:5px 13px}#context{position:absolute;z-index:6;top:130px;left:42px;pointer-events:none;text-shadow:0 2px 25px #0009}#eyebrow{font-size:9px;letter-spacing:2.5px;color:#e7ecd8}h1{font-family:Georgia,serif;font-weight:400;line-height:1.13;font-size:clamp(26px,3.5vw,54px);margin:15px 0}.arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;border-radius:50%;height:54px;width:54px;padding:0;font-size:38px;line-height:44px}.left{left:30px}.right{right:30px}footer{position:absolute;bottom:42px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;z-index:10}.viewinfo{min-width:140px}.tiny{font-size:8px;letter-spacing:2px;display:block;color:#c1c9bd}.viewinfo strong{display:block;font-size:18px;font-weight:400;margin-top:9px}#views{display:flex;gap:8px}#views button{width:44px;padding:0;border-radius:50%;font-size:12px}#views button.active{background:#e1e8d3;color:#1c2e22}#menu{min-width:140px;font-size:13px;text-align:left;display:flex;justify-content:space-between;gap:22px}#hint{position:absolute;bottom:15px;left:0;right:0;text-align:center;color:#ced6c6;font-size:10px;letter-spacing:.5px;z-index:6;pointer-events:none}#spaces{position:absolute;right:40px;bottom:100px;width:310px;max-height:65dvh;overflow:auto;border:1px solid #ffffff25;border-radius:18px;background:#19271ff2;backdrop-filter:blur(20px);padding:18px;z-index:20;box-shadow:0 10px 50px #0005}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px}.panel-head button{background:none;border:0;padding:0 8px;font-size:26px}#rooms{display:grid;gap:6px}#rooms button{display:flex;justify-content:space-between;text-align:left;border-radius:8px;background:#ffffff08;font-size:13px;border-color:#ffffff12}#rooms small{opacity:.6;font-size:10px}#loading{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #ffffff22;border-radius:50px;padding:16px 24px;background:#15251de8;display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:12px}.spinner{border:2px solid #ffffff25;border-top-color:#d7e6bd;width:17px;height:17px;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:absolute;z-index:35;top:100px;left:50%;transform:translateX(-50%);border-radius:10px;background:#12231ee8;padding:12px 20px;font-size:12px;max-width:90%;opacity:0;pointer-events:none;transition:opacity .3s}#toast.visible{opacity:1}#hoverlabel{position:absolute;z-index:9;bottom:135px;left:50%;transform:translateX(-50%);font-size:12px;background:#13271ce6;border-radius:20px;pointer-events:none;padding:9px 17px;opacity:0}#hoverlabel.visible{opacity:1}#zoom{position:absolute;z-index:10;right:40px;top:50%;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px}#zoom button{width:44px;padding:0;font-size:20px}#retry{position:absolute;z-index:40;left:50%;top:60%;transform:translateX(-50%)}body.busy #zones,body.busy .arrow{pointer-events:none}body.pano #context{top:110px}body.pano h1{font-size:30px}body.pano #eyebrow{font-size:9px}body.pano #panorama{display:block}body.pano #stage,body.pano .arrow,body.pano #views{display:none}
@media(max-width:700px){header{top:22px;left:20px;right:20px}.brand{font-size:19px;letter-spacing:3px}.brandmark{font-size:28px}.brand small{font-size:6px;letter-spacing:1.5px}.tools button{padding:9px 12px}.tools button span{display:none}#context{top:100px;left:22px}h1{font-size:30px}#eyebrow{font-size:7px;letter-spacing:1.5px}.arrow{width:42px;height:42px;font-size:30px}.left{left:12px}.right{right:12px}footer{left:20px;right:20px;bottom:42px}.viewinfo{min-width:75px}.viewinfo strong{font-size:14px}.tiny{font-size:6px}#views{gap:4px}#views button{width:30px;min-height:32px;font-size:10px}#menu{min-width:0;gap:8px;font-size:11px;padding:10px 12px}#hint{font-size:8px;padding:0 20px}#spaces{right:20px;bottom:100px;width:min(310px,calc(100% - 40px))}#zoom{right:20px}#hoverlabel{bottom:110px;max-width:90%;white-space:nowrap}#loading{padding:15px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.spinner{animation:none}}

#dissolve{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:4;pointer-events:none;opacity:0;transition:opacity .3s}#film{z-index:5}.shade{z-index:6}body.pano #hoverlabel{display:none}

/* Initial welcome screen: self-contained line artwork, no extra asset request. */
#intro{position:fixed;inset:0;z-index:100;background:#f3f1e9;color:#233c31;display:grid;place-items:center;transition:opacity .55s ease,visibility .55s;overflow:hidden}
#intro.leaving{opacity:0;visibility:hidden;pointer-events:none}
.intro-inner{text-align:center;padding:32px 24px;max-width:100%}
.intro-house{width:116px;height:116px;display:block;margin:0 auto 36px;stroke:#294d3c;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.house-guide{opacity:.1}.house-line{stroke-dasharray:1;stroke-dashoffset:1;animation:house-draw 1.9s cubic-bezier(.35,0,.2,1) forwards}
.intro-kicker{font-size:8px;letter-spacing:2.5px;margin:0 0 16px;color:#788377}
#intro h2{font-family:Georgia,serif;font-size:clamp(38px,7vw,58px);font-weight:400;letter-spacing:1px;margin:0;line-height:1.2}
#intro h2 span{font-weight:400;color:#64755b}
.intro-rule{width:116px;height:1px;margin:31px auto 20px;background:#294d3c20;overflow:hidden}
.intro-rule span{display:block;width:45%;height:100%;background:#6d8064;animation:intro-load 1.6s ease-in-out infinite}
#intro-status{font-size:11px;font-weight:400;letter-spacing:.6px;color:#748071;min-height:16px;max-width:300px;margin:0 auto;line-height:1.5}
#intro-retry{margin-top:20px;background:transparent;border-color:#294d3c40;color:#294d3c;font-size:12px;backdrop-filter:none}
#intro-retry:hover{background:#e3e7da}.intro-foot{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-size:8px;letter-spacing:3px;color:#85907e}
#intro.failed .intro-rule span{animation:none;width:100%;opacity:.4}
@keyframes house-draw{to{stroke-dashoffset:0}}@keyframes intro-load{0%{transform:translateX(-110%)}100%{transform:translateX(330%)}}
@media(max-height:500px){.intro-house{width:70px;height:70px;margin-bottom:14px}.intro-rule{margin:18px auto 12px}.intro-foot{bottom:12px}.intro-inner{padding:20px}}
@media(prefers-reduced-motion:reduce){.house-line{animation:none;stroke-dashoffset:0}.intro-rule span{animation:none;width:100%;opacity:.6}#intro{transition:none}}

#property-location{font-size:14px;line-height:1.6;margin:10px 0 0;color:#edf1e5;letter-spacing:.4px}
#hoverlabel{max-width:calc(100% - 40px);white-space:normal;text-align:center;line-height:1.5}
#room-info{position:absolute;z-index:10;left:42px;bottom:115px;width:340px;max-height:38dvh;overflow:auto;background:#17291fe8;backdrop-filter:blur(18px);border:1px solid #ffffff25;border-radius:15px;box-shadow:0 12px 36px #0002}
#room-info summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:16px 18px;font-size:12px}
#room-info summary::-webkit-details-marker{display:none}#room-info summary strong{font-weight:400;color:#d8e4ba;margin-left:auto;white-space:nowrap}.info-chevron{transition:transform .2s}#room-info[open] .info-chevron{transform:rotate(180deg)}
#room-info summary:focus-visible{outline:2px solid #dbe7b2;outline-offset:-3px;border-radius:15px}
.room-info-content{padding:0 18px 18px}.room-info-content p{font-size:12px;line-height:1.65;color:#e2e8dd;margin:0 0 15px}.materials-heading{display:block;font-size:8px;letter-spacing:1.6px;color:#b8c79e;margin-bottom:7px}.room-info-content small{display:block;border-top:1px solid #ffffff16;padding-top:10px;font-size:9px;line-height:1.5;color:#acb8a7}
@media(max-width:700px){#property-location{font-size:11px;max-width:260px;margin-top:7px}#room-info{left:20px;bottom:108px;width:min(315px,calc(100% - 80px));max-height:32dvh}#room-info summary{font-size:11px;padding:12px 14px;gap:6px}.room-info-content{padding:0 14px 14px}.room-info-content p{font-size:11px;margin-bottom:10px}#hoverlabel{font-size:11px}}
@media(max-height:550px){#room-info{left:auto;right:95px;bottom:100px;width:290px;max-height:52dvh}#property-location{margin-top:0}body.pano #context{top:95px}}

/* Contrast strip for the exterior property information. */
body:not(.pano) #context{left:0;max-width:calc(100% - 20px);padding:20px 30px 22px 42px;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.44));border-radius:0 8px 8px 0;text-shadow:0 1px 5px #0004}
body:not(.pano) #context #eyebrow,body:not(.pano) #context #title,body:not(.pano) #context #property-location{color:#fff}
@media(max-width:700px){body:not(.pano) #context{padding:15px 22px 17px}}

.footer-actions{display:flex;align-items:center;gap:12px}#open-orbit{display:flex;align-items:center;gap:9px;font-size:12px;padding:10px 16px}#open-orbit svg{flex-shrink:0}body.pano #open-orbit{display:none}
#orbit-canvas{display:none;position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}#orbit-canvas.dragging{cursor:grabbing}#orbit-back{position:absolute;top:max(24px,env(safe-area-inset-top));left:30px;z-index:45;background:#0009;font-size:13px}#orbit-hint{position:absolute;bottom:30px;left:0;right:0;text-align:center;pointer-events:none;font-size:12px;text-shadow:0 1px 6px #000;z-index:45;transition:opacity .5s}
body.orbit #app> :not(#orbit-canvas):not(#orbit-back):not(#orbit-hint):not(#loading){display:none!important}body.orbit #orbit-canvas{display:block}body.orbit #loading{z-index:50;pointer-events:none}
@media(max-width:700px){.footer-actions{gap:0}#open-orbit{position:absolute;right:0;bottom:60px;font-size:11px;gap:7px;padding:9px 13px}body:not(.pano) #hoverlabel{bottom:165px}#orbit-back{left:20px;font-size:12px}#orbit-hint{bottom:25px;font-size:11px}}
#pano-label{position:absolute;z-index:12;left:50%;top:76%;transform:translateX(-50%);max-width:90%;padding:11px 18px;border-radius:25px;background:#12271dea;box-shadow:0 4px 25px #0003;font-size:12px;text-align:center;pointer-events:none}
#pano-connections{position:absolute;z-index:15;right:42px;bottom:106px;max-width:260px;background:#17291fec;border:1px solid #ffffff38;border-radius:18px;backdrop-filter:blur(18px);overflow:hidden}#pano-connections summary{cursor:pointer;padding:13px 20px;font-size:12px;list-style:none}#pano-destinations{display:grid;gap:5px;padding:0 10px 10px}#pano-destinations button{font-size:12px;border-radius:9px;text-align:left;background:#ffffff0a}
#configurator{position:absolute;z-index:16;top:115px;right:40px;width:255px}#config-toggle{width:100%;display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center;color:#233424;background:linear-gradient(120deg,#eff4c8,#cadfa9);border:1px solid #f4ffd9;box-shadow:0 5px 28px #080e0755;font-size:14px;font-weight:600;padding:13px 16px}#config-toggle>span:first-child{font-size:22px}#config-current{font-size:10px;font-weight:400;opacity:.8;width:100%}#config-options{margin-top:9px;padding:9px;background:#14291ff5;border:1px solid #e7f4d04a;border-radius:18px;display:grid;gap:6px;box-shadow:0 12px 30px #0005}#config-options button{font-size:12px;border-radius:10px;text-align:left;background:#ffffff09}#config-options button[aria-pressed=true]{background:#dce9be;color:#233424}body.busy #configurator,body.busy #pano-connections{pointer-events:none;opacity:.6}
@media(max-width:700px){#configurator{top:190px;right:20px;width:190px}#config-toggle{font-size:12px;padding:8px 12px;gap:4px}#config-toggle>span:first-child{font-size:18px}#pano-connections{right:20px;bottom:105px;max-width:160px}#pano-connections summary{padding:12px;font-size:11px}body.pano #room-info{bottom:160px}#pano-label{top:48%;font-size:11px;max-width:80%}}
@media(max-height:550px){#configurator{top:90px;right:22px;width:210px}#pano-connections{bottom:95px;right:22px}body.pano #room-info{left:22px;right:auto;bottom:105px;width:260px;max-height:40dvh}}
