/* Room landscapes occupy the centre; controls stay on the perimeter. */
#houseMap{width:100vw;height:100dvh;max-width:none;max-height:none;inset:0;margin:0;padding:0;border:0;border-radius:0;background:#172b25;color:#f2eee1;overflow:hidden;font-family:Arial,sans-serif}
#houseMap[open]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:82px minmax(0,1fr) auto}
#houseMap>*,.hm-room-rail{min-width:0}
#houseMap .h-dialog-head{align-items:center;padding:14px 25px;background:#1a2d26;border-bottom:1px solid #d5dfca20;gap:15px}
#houseMap .h-eyebrow{font-size:8px;letter-spacing:2px;color:#c4cdbb}
#houseMap h2{font:27px Georgia,serif;margin:5px 0 0}
.hm-top-actions{display:flex;align-items:center;gap:10px}.hm-top-actions button,#houseMap .hm-view-switch button{border:0;background:transparent;color:#e8e7d8;font:11px Arial;min-height:44px;padding:8px 13px;border-radius:22px;white-space:nowrap}.hm-top-actions button:hover{background:#ffffff12}.hm-top-actions [data-close-map]{width:44px;padding:0;font:28px Georgia;border:1px solid #cad2bf40}
.hm-view-switch{display:flex;margin-left:auto;border:1px solid #c4ccba32;border-radius:25px;padding:2px}#houseMap .hm-view-switch button[aria-pressed=true]{background:#e9e2d0;color:#23372c}
.hm-map-wrap{position:relative;min-height:0;overflow:hidden;background:#233a2d}.hm-map-wrap:before{content:'';position:absolute;inset:-35px;background:linear-gradient(#1d34285e,#172b25ad),url('/nature/home-landscape-v1.webp') center/cover;filter:blur(24px);opacity:.6;pointer-events:none}
.hm-viewport{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;touch-action:none;outline:none;display:grid;align-items:center;justify-items:center}.hm-viewport::-webkit-scrollbar{display:none}.hm-viewport.is-pannable{display:block;cursor:grab}.hm-viewport.is-dragging{cursor:grabbing}.hm-viewport:focus-visible{outline:2px solid #e5d8b8;outline-offset:-3px}
.hm-canvas{position:relative;flex-shrink:0;overflow:hidden;user-select:none;max-width:none;box-shadow:0 0 80px #13211c80}.hm-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;max-width:none}
#houseMap .hm-room{position:absolute;display:block;border:0;border-radius:50%;padding:0;background:transparent;cursor:pointer;color:#f8f4e8;touch-action:none;z-index:2}
.hm-room:before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse,transparent 35%,#ffedb533 72%,transparent 74%);opacity:0;transition:opacity .2s}
.hm-room:hover:before,.hm-room.is-selected:before,.hm-room:focus-visible:before{opacity:1}
.hm-room-label{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:block;min-width:100px;padding:8px 13px 7px;border:1px solid #f2e7cb66;border-radius:20px;background:#20372de8;backdrop-filter:blur(10px);box-shadow:0 4px 14px #0a1d2340;font:14px Georgia,serif;white-space:nowrap;transition:background .2s,color .2s}
.hm-room-label small{display:block;font:8px Arial,sans-serif;letter-spacing:.2px;margin-top:4px;color:#d2d7c6}.hm-room-label i{display:none;width:5px;height:5px;border-radius:50%;background:#e1ce9b;margin:0 5px 2px 0}.hm-room.is-here .hm-room-label i{display:inline-block}.hm-room.is-selected .hm-room-label{background:#f0e6cc;color:#23352c;border-color:#fff4d4}.hm-room.is-selected .hm-room-label small{color:#55634b}.hm-stairs .hm-room-label{min-width:75px;font-size:12px}.hm-stairs small{display:none}
#houseMap .hm-resident{position:absolute;transform:translate(-50%,-50%);width:76px;height:70px;border:0;background:transparent;padding:0;color:#fff4dc;z-index:3;cursor:pointer;filter:drop-shadow(0 3px 3px #16221966)}.hm-resident img{width:100%;height:58px;object-fit:contain;pointer-events:none}.hm-resident span{font:9px Georgia;display:block;text-shadow:0 1px 3px #000,0 1px 8px #000;line-height:1.2}.hm-resident-lake img{height:72px}.hm-resident-aerial{width:103px!important}.hm-resident-owl{width:51px!important}.hm-resident:hover{filter:drop-shadow(0 0 8px #ffe8a0)}
.hm-map-tools{position:absolute;right:18px;bottom:16px;display:flex;gap:5px;z-index:5}.hm-map-tools button{min-width:44px;height:44px;border:1px solid #d9e2cd44;border-radius:24px;background:#21382de8;color:#f2ecdc;font:20px Arial;backdrop-filter:blur(12px)}.hm-map-tools #homeMapFit{font-size:11px;padding:0 16px}.hm-map-tools button:disabled{opacity:.4}.hm-map-help{position:absolute;left:20px;bottom:19px;color:#fff5dc;text-shadow:0 1px 6px #14271c;font:10px Arial;pointer-events:none;padding:7px 10px;border-radius:14px;background:#21382d9c}
.hm-bottom{background:#1a2d26;border-top:1px solid #c2cbb733;padding:0 25px 12px}.hm-room-rail{display:flex;gap:4px;overflow:auto;scrollbar-width:none;padding:8px 0;border-bottom:1px solid #d5dfca15}.hm-room-rail button{min-height:36px;flex-shrink:0;padding:7px 12px;background:transparent;border:0;color:#bfcbb7;border-radius:20px;font:11px Arial}.hm-room-rail button.is-selected{background:#ffffff13;color:#f3e9cd}.hm-room-rail button:hover{color:#fff3d8}
#houseMap .h-map-choice{position:static;display:flex;margin:0;padding:12px 0 0;border:0;background:none;box-shadow:none;gap:24px;align-items:center;min-height:80px}#houseMap .h-map-choice h3{font:23px Georgia;margin:0 0 7px}#houseMap .h-map-choice p{max-width:none;font:11px Arial;line-height:1.5}#houseMap .h-map-actions{margin:0}#houseMap .h-map-actions button{min-width:110px;white-space:nowrap}
.hm-choice-copy{flex:1;min-width:0}.hm-origin{font:10px Arial;color:#a7baa8}.hm-product-note{font:9px Arial;color:#9aaf9d;display:block;margin-top:7px}.hm-origin-wrap{display:flex;flex-direction:column;align-items:end;gap:3px;min-width:155px}#houseMap .h-map-origin{margin:0;font-size:10px;color:#bdc9b7;text-align:right}#houseMotion{min-height:33px;font-size:9px;padding:6px 0}
#houseMap .h-floorplans{position:absolute;inset:0;overflow:auto;padding:25px max(25px,calc((100% - 760px)/2));background:#263c30;grid-template-columns:1fr 1fr;gap:40px}#houseMap .h-floorplans svg{max-height:calc(100dvh - 290px)}#houseMap[data-view=landscape] .h-floorplans{display:none}#houseMap[data-view=plan] .hm-viewport,#houseMap[data-view=plan] .hm-map-tools,#houseMap[data-view=plan] .hm-map-help{display:none}#houseMap[data-view=plan] .hm-map-wrap:before{display:none}
@media(max-width:760px){.hm-top-actions .hm-saved-link{display:none}#houseMap .h-dialog-head{padding:12px 16px}#houseMap h2{font-size:24px}.hm-bottom{padding:0 16px 10px}.hm-origin-wrap{display:none}}
@media(max-width:650px){
 #houseMap[open]{grid-template-rows:108px minmax(0,1fr) auto}#houseMap .h-dialog-head{flex-wrap:wrap;gap:5px 12px;align-content:center;padding:10px 14px}#houseMap h2{font-size:23px}#houseMap .h-eyebrow{font-size:7px;letter-spacing:1.8px}.hm-top-actions{order:2;margin-left:auto}.hm-view-switch{order:3;flex-basis:100%;margin:0;justify-content:center;border:0;padding:0;gap:5px}#houseMap .hm-view-switch button{min-height:29px;font-size:10px;padding:6px 12px}.hm-top-actions [data-close-map]{width:36px;min-height:36px}
 .hm-room-label{font-size:12px;min-width:88px;padding:8px 10px}.hm-room-label small{font-size:7px}.hm-map-tools{right:10px;bottom:11px;gap:4px}.hm-map-tools button{height:38px;min-width:38px}.hm-map-help{left:10px;bottom:auto;top:10px;font-size:9px;padding:6px 8px}.hm-bottom{padding:0 14px calc(10px + env(safe-area-inset-bottom))}.hm-room-rail{margin:0 -14px;padding:7px 10px}.hm-room-rail button{min-height:36px;font-size:10px;padding:6px 10px}#houseMap .h-map-choice{display:block;padding:11px 0 0;min-height:0}#houseMap .h-map-choice h3{font-size:21px;margin-bottom:5px}#houseMap .h-map-choice p{font-size:10px}.hm-product-note{font-size:8px;margin-top:5px}#houseMap .h-map-actions{display:flex;margin-top:10px;gap:8px}#houseMap .h-map-actions button{min-height:43px;font-size:11px;flex:1;justify-content:center}.hm-resident{width:64px!important;height:64px!important}.hm-resident img{height:50px}.hm-resident-lake img{height:64px}.hm-resident-aerial{width:87px!important}.hm-resident-owl{width:45px!important}.hm-resident span{font-size:8px}
 #houseMap .h-floorplans{padding:12px;gap:20px;grid-template-columns:1fr 1fr}#houseMap .h-floorplans figcaption{display:block;font-size:12px}#houseMap .h-floorplans figcaption span{display:block;margin-top:6px}#houseMap .h-floorplans svg{max-height:none}.hm-viewport.is-overview .hm-room-label{min-width:0;font-size:9px;padding:6px 7px}.hm-viewport.is-overview .hm-room-label small{display:none}.hm-viewport.is-overview .hm-resident{transform:translate(-50%,-50%) scale(.65)}
}
@media(max-height:560px) and (min-width:651px){#houseMap[open]{grid-template-rows:64px minmax(0,1fr) auto}#houseMap .h-dialog-head{padding:7px 18px}#houseMap h2{font-size:22px}.hm-bottom{padding-bottom:8px}.hm-room-rail{padding:3px 0}.hm-product-note{display:none}#houseMap .h-map-choice{min-height:60px;padding-top:7px}}
@media(prefers-reduced-motion:reduce){#houseMap *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.hm-resident.is-map-guide{filter:drop-shadow(0 3px 4px #16221988)!important}
.hm-resident.is-map-guide span:after{content:' · guide';color:#fff2c8}
.hm-travellers{position:absolute;top:20px;left:25px;width:215px;height:115px;z-index:6;pointer-events:none}
#houseMap .hm-travellers .hm-resident{pointer-events:auto;width:68px!important;height:66px!important;transition:left .35s,top .35s}
#houseMap .hm-travellers button.hm-resident{display:block!important;padding:0!important;min-width:0!important}
#houseMap .hm-travellers button.hm-resident img{width:100%!important;max-width:none!important;flex:none!important;margin:0!important}
#houseMap .hm-travellers .hm-resident img{height:48px;filter:drop-shadow(0 2px 3px #0005)}
#houseMap .hm-travellers .hm-resident.is-map-guide{width:86px!important;height:85px!important}
#houseMap .hm-travellers .hm-resident.is-map-guide img{height:67px}
.hm-travellers .hm-resident span{background:#1c3028c9;padding:4px 6px;border-radius:12px;white-space:nowrap;text-shadow:none}
@media(max-width:650px){.hm-travellers{top:7px;left:50%;transform:translateX(-50%);width:230px;height:94px}#houseMap .hm-travellers .hm-resident{width:58px!important;height:55px!important}#houseMap .hm-travellers .hm-resident img{height:39px}#houseMap .hm-travellers .hm-resident.is-map-guide{width:72px!important;height:72px!important}#houseMap .hm-travellers .hm-resident.is-map-guide img{height:54px}.hm-map-help{top:112px;font-size:8px}}
/* Map residents use the same perimeter positions as the rooms. */
#houseMap .hm-travellers{position:absolute;inset:0;transform:none;width:auto;height:auto;pointer-events:none}
#houseMap .hm-travellers:before{content:'';position:absolute;left:14px;top:8px;width:172px;height:77px;border-radius:16px;background:linear-gradient(transparent,#20372b9c);border-bottom:3px solid #705037;pointer-events:none}
#houseMap .hm-travellers button.hm-resident{transform:none;left:24px;top:24px;width:64px!important;height:60px!important;transition:none}
#houseMap .hm-travellers button.hm-resident.is-map-guide{left:auto!important;top:auto!important;right:18px;bottom:76px;width:82px!important;height:72px!important}
#houseMap .hm-travellers .is-map-guide img{height:58px;animation:guide-hover 4.8s ease-in-out infinite}
#houseMap .hm-travellers .hm-resident span{background:none;font:9px Georgia;text-shadow:0 1px 4px #10281b;padding:3px 0}
.hm-travellers .hm-resident.is-map-guide span:after{content:''}
@media(max-width:650px){#houseMap .hm-travellers:before{width:172px;height:70px}#houseMap .hm-travellers button.hm-resident.is-map-guide{right:12px;bottom:68px;width:66px!important;height:61px!important}#houseMap .hm-travellers .is-map-guide img{height:48px}.hm-map-help{top:92px}}
/* The map artwork has no bird overlays: companions occupy header and footer. */
#houseMap .h-dialog-head{gap:14px}
#houseMap .h-dialog-head .hm-travellers{position:static;inset:auto;transform:none;width:160px;height:60px;flex:0 0 160px;display:flex;align-items:end;gap:8px;pointer-events:auto;border-bottom:2px solid #705037;padding:0 4px 5px;border-radius:0 0 13px 13px}
#houseMap .h-dialog-head .hm-travellers:before{display:none}
#houseMap .h-dialog-head .hm-travellers button.hm-resident{position:static!important;inset:auto!important;transform:none!important;flex:1;width:64px!important;height:53px!important;min-width:44px!important;filter:drop-shadow(0 2px 3px #0003)}
#houseMap .h-dialog-head .hm-travellers button.hm-resident img{height:36px!important}
#houseMap .h-dialog-head .hm-travellers button.hm-resident span{font-size:9px;line-height:12px}
#houseGuided img{width:52px;height:35px;object-fit:contain}
#houseMap .h-map-actions #houseGuided{gap:8px}
#houseMap .hm-map-help{top:auto;bottom:18px}
@media(max-width:850px){#houseMap .hm-top-actions .hm-saved-link{display:none}}
@media(max-width:650px){
 #houseMap[open]{grid-template-rows:132px minmax(0,1fr) auto}
 #houseMap .h-dialog-head{display:grid;grid-template-columns:minmax(0,1fr) 136px 32px;grid-template-rows:76px 30px;gap:0 7px;padding:10px 12px 6px;align-items:center}
 #houseMap .h-dialog-head>div:first-child{grid-column:1;grid-row:1;min-width:0}
 #houseMap .h-dialog-head h2{font-size:21px;line-height:1.08;margin-top:7px}
 #houseMap .h-dialog-head .h-eyebrow{font-size:6px;letter-spacing:1px;line-height:1.5;display:block}
 #houseMap .h-dialog-head .hm-travellers{grid-column:2;grid-row:1;width:136px;height:65px;gap:4px;margin:0;align-self:center;padding:0 2px 6px}
 #houseMap .h-dialog-head .hm-travellers button.hm-resident{width:58px!important;height:55px!important}
 #houseMap .h-dialog-head .hm-travellers button.hm-resident span{font-size:8px}
 #houseMap .h-dialog-head .hm-top-actions{grid-column:3;grid-row:1;order:0;align-self:start;margin-top:4px}
 #houseMap .h-dialog-head .hm-top-actions [data-close-map]{width:32px;height:32px;min-height:32px}
 #houseMap .h-dialog-head .hm-view-switch{grid-column:1/-1;grid-row:2;order:0;justify-content:center}
 #houseMap .hm-map-help{top:8px;bottom:auto}
 #houseMap .h-map-actions #houseGuided img{width:46px;height:30px}
}
#houseMap .h-dialog-head .hm-travellers button.hm-resident[hidden]{display:none!important}

.hm-room-label{display:none!important}
.hm-room.is-selected{outline:2px solid #e7d7acaa!important;outline-offset:-4px;border-radius:35%;background:#ead6a00a!important}
.hm-room:focus-visible{outline:2px solid #fff0bc!important}
/* Wide screens give the map a full-height stage and a compact right rail. */
@media(orientation:landscape) and (min-width:651px){
 #houseMap[open]{grid-template-columns:minmax(0,1fr) 230px;grid-template-rows:58px minmax(0,1fr);padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}
 #houseMap .h-dialog-head{grid-column:1/-1;display:flex;flex-wrap:nowrap;padding:6px 14px;gap:12px;min-width:0}
 #houseMap .h-dialog-head>div:first-child{min-width:0;flex:1}
 #houseMap h2{font-size:20px;white-space:nowrap;margin:0}
 #houseMap .h-eyebrow{display:none}
 #houseMap .hm-view-switch{flex:none;margin-left:auto;min-width:0}
 #houseMap .hm-view-switch button{min-height:36px;font-size:11px;padding:7px 12px}
 #houseMap .hm-top-actions .hm-saved-link{display:none}
 #houseMap .hm-top-actions{margin:0;flex:none}
 #houseMap .hm-top-actions [data-close-map]{width:38px;min-height:38px}
 #houseMap .hm-map-wrap{grid-column:1;grid-row:2}
 #houseMap .hm-bottom{grid-column:2;grid-row:2;display:flex;flex-direction:column;padding:8px 12px 12px;overflow:auto;border-top:0;border-left:1px solid #c2cbb733}
 #houseMap .hm-room-rail{display:flex;flex-wrap:wrap;flex:none;gap:2px;margin:0;padding:0 0 8px;overflow:visible}
 #houseMap .hm-room-rail button{min-height:32px;padding:5px 8px;font-size:10px}
 #houseMap .h-map-choice{display:block;padding:10px 0 0;min-height:0}
 #houseMap .h-map-choice h3{font-size:19px;line-height:1.15;margin:0 0 6px}
 #houseMap .h-map-choice p{font-size:10px;margin:0;line-height:1.5}
 #houseMap .hm-origin-wrap{display:none}
 #houseMap .hm-product-note{font-size:9px;margin-top:6px}
 #houseMap .h-map-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
 #houseMap .h-map-actions button{min-width:0;min-height:40px;flex:1;padding:7px;font-size:11px}
 #houseMap .h-map-actions #houseGuided img{width:30px;height:24px}
 #houseMap .hm-map-help{top:8px;bottom:auto;left:10px;font-size:9px}
 #houseMap .hm-map-tools{right:10px;bottom:10px}
 #houseMap .hm-map-tools button{min-width:36px;height:36px;padding:6px}
}
