*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Arial,sans-serif;color:#fff;background:#152823}button,select{font:inherit}button{cursor:pointer;border:1px solid #ffffff50;border-radius:7px;background:#223d34;color:white;padding:10px 14px}button:focus-visible,a:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #e5c783;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.tour-app{height:100dvh;display:flex;flex-direction:column}header{padding:17px 24px;display:flex;justify-content:space-between;align-items:center;background:#152823;gap:12px}.eyebrow{font-size:10px;letter-spacing:2px;color:#d5c298}h1{font:normal 28px Georgia,serif;margin:5px 0 0}.header-controls{display:flex;gap:8px}.header-controls button:hover,.tour-controls button:hover{background:#395849}#stage{position:relative;flex:1;min-height:280px;overflow:hidden}#panorama{position:absolute;inset:0}.hint{position:absolute;z-index:3;top:18px;left:50%;transform:translateX(-50%);background:#142820da;box-shadow:0 3px 18px #0003;border-radius:30px;padding:10px 18px;font-size:12px;white-space:nowrap;pointer-events:none}
.scene-caption{position:absolute;bottom:85px;left:24px;z-index:3;text-shadow:0 2px 8px #000;pointer-events:none}.scene-caption span{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#ead5aa}.scene-caption h2{font:normal 28px Georgia,serif;margin:7px 0 0}.tour-controls{position:absolute;bottom:24px;left:24px;z-index:3;display:flex;align-items:center;gap:8px;background:#152823e8;padding:8px;border-radius:10px}.tour-controls button{padding:9px 12px}.tour-controls button:disabled{opacity:.35;cursor:default}#progress{font-size:11px;min-width:90px;text-align:center;color:#ede7d9}footer{display:flex;justify-content:space-between;gap:8px;padding:12px 24px;font-size:10px;color:#e0dacb;letter-spacing:.4px}
#destinations{position:absolute;right:20px;bottom:24px;z-index:3;width:min(430px,42%);padding:14px;background:#152823ed;backdrop-filter:blur(8px);border:1px solid #ffffff25;border-radius:12px;box-shadow:0 4px 24px #0003}.destination-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.destination-heading span{font-size:9px;letter-spacing:1.8px;color:#e0cb9f}.destination-heading strong{font-size:11px;font-weight:400;color:#ebe7df}#destination-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}#destination-buttons button{text-align:left;font-size:11px;line-height:1.35;padding:10px;background:#ffffff0b;border-color:#ffffff28;display:flex;align-items:center;gap:7px;min-height:40px}#destination-buttons button:hover{background:#cbb78024;border-color:#e5c783}#destination-buttons .step-dot{border:2px solid #e5c783;width:12px;height:8px;flex:0 0 12px;border-radius:50%}#destination-buttons small{display:block;color:#bdc9c0;font-size:9px;margin-top:3px}
#scene-list{position:absolute;right:16px;top:16px;bottom:24px;z-index:7;width:310px;background:#f6f2e9;color:#183329;box-shadow:0 6px 35px #0006;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.list-heading{padding:14px 16px;display:flex;align-items:center;justify-content:space-between}.list-heading button{background:transparent;color:#183329;border:0;font-size:22px;padding:0 8px}#scene-buttons{overflow:auto;padding:0 12px 12px}#scene-buttons button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:white;color:#183329;border:1px solid #d9dece;margin:5px 0;padding:7px}#scene-buttons button[aria-current=true]{border:2px solid #315a45;background:#e8eddf}#scene-buttons img{width:75px;height:45px;object-fit:cover;border-radius:3px}#scene-buttons strong{font-size:12px;display:block}#scene-buttons small{font-size:10px;color:#657063;display:block;margin-top:4px}
#loading{position:absolute;inset:0;z-index:4;background:#14282077;display:grid;place-items:center;font-size:14px;pointer-events:none}.pnlm-controls-container{top:16px;left:16px}.pnlm-about-msg{z-index:8}
#floor-markers{position:absolute;inset:0;pointer-events:none;z-index:2}.floor-marker{position:absolute;top:0;left:0;pointer-events:auto;background:transparent;border:0;border-radius:0;padding:0;filter:drop-shadow(0 2px 3px #0009)}.floor-marker svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.floor-ring{fill:#ffffff19;stroke:white;stroke-width:3;vector-effect:non-scaling-stroke}.floor-marker:hover .floor-ring,.floor-marker:focus-visible .floor-ring{fill:#e5c78355;stroke:#ffe6a8;stroke-width:4}.floor-marker span{display:none;position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;background:#152823ee;border-radius:6px;padding:7px 10px;font-size:11px;margin-bottom:8px}.floor-marker:hover span,.floor-marker:focus-visible span{display:block}.floor-marker:focus-visible{outline-offset:5px}
#tour-map{position:absolute;right:20px;top:16px;z-index:5;width:260px;color:#20392f;background:#f8f5ecf5;box-shadow:0 4px 25px #0003;border:1px solid #ffffff80;border-radius:12px;overflow:hidden;backdrop-filter:blur(8px)}.map-heading{display:flex;gap:4px;align-items:center;padding:12px 12px 10px}.map-heading>div{flex:1}.map-heading span{display:block;font-size:8px;letter-spacing:1.5px;color:#727b66;margin-bottom:3px}.map-heading strong{font:normal 19px Georgia,serif}.map-heading button{padding:5px 8px;min-width:30px;background:#e7e9db;border-color:#cad2bc;color:#284438}.map-heading button:hover{background:#d5deca}#map-body{position:relative;padding:0 12px 11px}.map-filter{display:block}#map-area{width:100%;background:#fff9;border:1px solid #d4d9c6;border-radius:5px;color:#2b4939;font-size:10px;padding:5px 7px}#map-svg{display:block;width:100%;height:234px;margin:5px 0;background:#eeece1;border:1px solid #d9ddce;border-radius:7px;touch-action:manipulation}.map-room{fill:#e4e5d7;stroke:#bbc6ad;stroke-width:1.5}.map-room.courtyard{fill:#d7e1be;stroke:#a5b688}.map-room.fitness{fill:#deded0}.map-room.dining{fill:#ebe0ce}.map-room.study{fill:#e2ddce}.map-area-label{font:600 9px Arial,sans-serif;letter-spacing:.6px;fill:#687360;pointer-events:none;paint-order:stroke;stroke:#f4f0e7;stroke-width:3px;stroke-linejoin:round}.map-route{stroke:#b2bba5;stroke-width:1.8;stroke-dasharray:4 3;fill:none;pointer-events:none}.map-route.connected{stroke:#b59954;stroke-width:3;stroke-dasharray:none}.map-hit{fill:transparent;stroke:none}.map-point{cursor:pointer}.map-point .dot{fill:#2563eb;stroke:#ffffff;stroke-width:1.6;filter:drop-shadow(0 0 1px #102e52)}.map-point.visited .dot{fill:#315bd3}.map-point.connected .dot{fill:#f59e0b;stroke:#92400e;stroke-width:1.6}.map-point.current .dot{fill:#e11d48;stroke:#ffffff;stroke-width:2;filter:drop-shadow(0 0 2px #881337)}.map-point:hover .dot,.map-point:focus-visible .dot{stroke:#102e52;stroke-width:2.5}.map-point:focus-visible{outline:none}.map-point:hover .map-hit,.map-point:focus-visible .map-hit{stroke:#ad944e;stroke-width:1.5}.map-view-cone{fill:#e11d4829;stroke:#be123c;stroke-width:.6;pointer-events:none}#map-location{font-size:10px;font-weight:600;margin:7px 0 6px;min-height:12px}.map-key{display:flex;gap:12px;font-size:8px;margin-bottom:7px}.map-key span{display:flex;align-items:center;gap:5px}.map-key i{display:inline-block;width:7px;height:7px;border-radius:50%}.current-dot{background:#e11d48;border:1px solid #881337}.neighbor-dot{background:#f59e0b;border:1px solid #92400e}#map-body>small{font-size:8px;color:#747e6b}.map-zoom{position:absolute;right:19px;top:34px;display:flex;gap:3px}.map-zoom button{padding:3px 6px;min-width:23px;font-size:12px;background:#faf8efea;border-color:#c0c9b4;color:#284438}
#tour-map.expanded{width:min(500px,calc(100% - 40px));max-height:calc(100% - 32px);overflow:auto;z-index:6}#tour-map.expanded #map-svg{height:min(440px,calc(100dvh - 270px));min-height:210px}#tour-map.expanded #map-location{font-size:12px}#tour-map.expanded .map-heading strong{font-size:23px}
@media(max-width:1050px){.hint{left:20px;top:65px;transform:none;font-size:10px}#tour-map{width:225px}#map-svg{height:190px}.scene-caption h2{font-size:24px}#destinations{width:38%;padding:11px}}
@media(max-width:650px){header{padding:12px 14px}h1{font-size:20px}.eyebrow{font-size:8px}.header-controls button{padding:8px;font-size:10px}.header-controls span{display:none}.hint{display:none}#tour-map{right:12px;top:12px;width:170px}.map-heading{padding:8px}.map-heading strong{font-size:16px}.map-heading span{font-size:7px}.map-heading button{padding:3px 6px;min-width:24px;font-size:13px}#map-body{padding:0 8px 8px}#map-svg{height:135px}#map-body>small,.map-key{font-size:7px}.map-key{gap:8px}.map-zoom{right:13px;top:31px}.map-zoom button{padding:2px 5px;min-width:20px}#map-location{font-size:9px}#destinations{left:12px;right:12px;bottom:12px;width:auto;padding:10px}.destination-heading{margin-bottom:7px}#destination-buttons button{padding:8px;min-height:36px;font-size:10px}#destination-buttons small{display:none}.scene-caption{left:16px;bottom:205px}.scene-caption h2{font-size:21px;max-width:calc(100vw - 32px)}.scene-caption span{font-size:9px}.tour-controls{bottom:153px;left:12px;gap:5px;padding:6px}.tour-controls button{font-size:10px;padding:7px 9px}#progress{font-size:9px;min-width:75px}footer{padding:9px 14px;font-size:9px}footer span:last-child{display:none}#scene-list{left:12px;right:12px;width:auto;bottom:12px}#tour-map.expanded{width:calc(100% - 24px);max-height:calc(100% - 24px)}#tour-map.expanded #map-svg{height:min(450px,calc(100dvh - 255px));min-height:230px}#tour-map.expanded #map-body>small,#tour-map.expanded .map-key{font-size:9px}}
@media(max-height:680px) and (min-width:651px){#tour-map{width:215px}#map-svg{height:150px}#tour-map.expanded #map-svg{height:calc(100dvh - 275px)}.map-heading{padding:8px 12px}.map-heading span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.map-route{vector-effect:non-scaling-stroke;opacity:0}.map-route.connected{opacity:1}.map-point .dot{vector-effect:non-scaling-stroke}.map-view-cone{stroke-width:1px}.map-area-label{font-weight:700;letter-spacing:0;fill:#203e30;stroke:none}.map-place-label{pointer-events:none}.map-label-backing{fill:#fffef8;fill-opacity:.96;stroke:#c9d4c6;stroke-width:.7px;vector-effect:non-scaling-stroke}
/* Fill the host iframe, including the shorter viewport in phone landscape. */
.tour-app{height:100%;height:100dvh}
.tour-expanded,.tour-expanded body{overflow:hidden;overscroll-behavior:none}
.tour-expanded .tour-app{height:100%}
.tour-expanded header{padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top));min-height:48px}
.tour-expanded header>div:first-child,.tour-expanded footer{display:none}
.tour-expanded .header-controls{width:100%;justify-content:space-between}
.tour-expanded .header-controls button{min-height:44px;font-size:12px}
.tour-expanded .header-controls span{display:inline}
.tour-expanded #stage{min-height:0;margin-bottom:env(safe-area-inset-bottom)}
@media(max-height:500px){
 header{padding:4px 12px}h1{font-size:16px}.eyebrow,footer,.hint{display:none}
 #stage{min-height:0}#tour-map{right:12px;top:8px;width:170px;max-height:calc(100% - 16px);overflow:auto}
 .map-heading{padding:6px 8px}.map-heading span{display:none}#map-svg{height:65px}.map-key,#map-body>small{display:none}
 #destinations{left:auto;right:12px;bottom:12px;width:42%;max-height:40%;overflow:auto;padding:8px}
 #destination-buttons{grid-template-columns:1fr 1fr}#destination-buttons button{padding:7px;font-size:10px}#destination-buttons small{display:none}
 .scene-caption{left:max(12px,env(safe-area-inset-left));bottom:75px!important;max-width:50%}.scene-caption h2{font-size:18px}
 .tour-controls{left:max(12px,env(safe-area-inset-left));bottom:12px!important;gap:4px;padding:5px}.tour-controls button{font-size:10px;padding:8px}#progress{font-size:9px;min-width:65px}
 #tour-map.expanded{width:calc(100% - 24px);max-height:calc(100% - 16px)}#tour-map.expanded #map-svg{height:calc(100dvh - 160px);min-height:80px}
}
/* Immersive view keeps floor navigation and Pannellum's motion button active.
   Show UI remains reachable so guests can restore menus or exit fullscreen. */
#ui-toggle{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:9;min-height:44px;background:#152823e8;box-shadow:0 2px 12px #0003;font-size:12px}
.tour-fullscreen #tour-map{top:68px;max-height:calc(100% - 80px);overflow:auto}
.tour-ui-hidden header,.tour-ui-hidden footer,.tour-ui-hidden .hint,.tour-ui-hidden #tour-map,.tour-ui-hidden #scene-list,.tour-ui-hidden .scene-caption,.tour-ui-hidden .tour-controls,.tour-ui-hidden #destinations,.tour-ui-hidden .pnlm-zoom-controls,.tour-ui-hidden .pnlm-panorama-info,.tour-ui-hidden .pnlm-about-msg,.tour-ui-hidden .pnlm-compass{display:none!important}
.tour-ui-hidden #stage{min-height:0;margin-bottom:0}
.tour-ui-hidden .pnlm-controls-container{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}
.tour-ui-hidden .pnlm-orientation-button{width:44px;height:44px;background-repeat:no-repeat;background-position:center -147px}
.tour-ui-hidden .pnlm-orientation-button-active{background-position:center -173px}

/* Decorative media cannot capture drag gestures or cover tour controls. */
#fireplace-overlay{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.fireplace-patch{position:absolute;left:0;top:0;width:640px;height:138px;overflow:hidden;transform-origin:0 0;backface-visibility:hidden;will-change:transform;pointer-events:none}
.fireplace-patch img{position:absolute;left:0;top:0;width:640px;height:138px;max-width:none;pointer-events:none;user-select:none}

/* Sparks are decorative; circle clicks, swipes, and hidden-UI navigation stay available. */
#floor-particles{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;mix-blend-mode:screen}
@media(prefers-reduced-motion:reduce){#floor-particles{display:none!important}}

/* Solid blue viewpoints separate interactive cameras from muted green walls.
   Coral marks the current camera; amber marks directly connected cameras. */
.viewpoint-dot{background:#2563eb;border:1px solid #173f91}.map-key{flex-wrap:wrap;column-gap:9px;row-gap:5px}

.photo-embed header,.photo-embed footer{display:none}.photo-embed #stage{min-height:0}.photo-embed:not(.photo-preview) #stage{margin-top:62px}.photo-preview #stage>:not(#panorama):not(#loading){visibility:hidden!important}.photo-preview #panorama{pointer-events:none}.photo-embed #fullscreen{display:none}
