@font-face{font-family:'Onest';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/onest-cyrillic-v1.woff2') format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/onest-latin-v1.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Viewport-aware proportions: desktop sections fit the visible screen. */
html{scroll-padding-top:0}
html{scroll-snap-type:y mandatory}
main>section,body>footer{scroll-snap-align:start;scroll-snap-stop:normal}
html:has(dialog[open]),html:has(input:focus,textarea:focus){scroll-snap-type:none}
.guest-popover{top:auto;bottom:calc(100% + 18px)}
@media(min-width:701px){
 .header{gap:1.5%}
 .header nav{gap:24px}
 h2{font-size:clamp(36px,min(5.1vw,7.7svh),76px)}
 .hero{height:min(51.9vw,100svh);min-height:min(520px,100svh);max-height:820px;background-image:linear-gradient(90deg,#0005,#0000 75%),url('/assets/hero-fire-v1.webp')}
 .hero h1{font-size:clamp(40px,min(5.05vw,8svh),78px)}
 .hero-copy{top:29%}
 .section{padding-block:clamp(20px,3.3svh,40px)}
 .section-heading{margin-bottom:clamp(18px,2.6svh,27px)}
 .search-field{gap:clamp(8px,1.3vw,18px);min-width:0}
 .search-field strong{font-size:clamp(15px,1.6vw,25px)}
 .search-bar{grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1.16fr) minmax(0,1fr)}
 .cabin-card>img{height:min(21.2vw,calc(100svh - 255px))}
 .experiences h2{font-size:clamp(34px,min(4.9vw,7.4svh),72px)}
 .experience{height:min(38vw,calc(100svh - 165px));aspect-ratio:auto}
 .territory{height:100svh;min-height:0;max-height:none;padding-block:clamp(20px,3.3svh,40px)}
 .booking-intro{margin-bottom:clamp(12px,2svh,18px)}
 .calendar-panel{padding:clamp(18px,2.8svh,30px) 14px}
 .calendar-head{margin-bottom:clamp(16px,2.7svh,25px)}
 .calendar-days{row-gap:clamp(7px,1.4svh,18px)}
 .calendar-days button{height:clamp(34px,4.5svh,50px)}
 .summary>img{height:min(13vw,19svh)}
 .summary,.request-panel{padding:clamp(14px,2.3svh,22px)}
 .request-panel label{margin-top:clamp(8px,1.7svh,12px)}
 .request-panel textarea{height:clamp(48px,8svh,75px)}
 .booking{min-height:100svh;display:flex;flex-direction:column}
 .booking-grid{flex:1}
 .calendar-panel{display:flex;flex-direction:column}
 .calendar-days{flex:1;align-items:center}
 .summary{display:flex;flex-direction:column}
 .summary .totals{margin-top:auto}
 .request-panel{display:flex;flex-direction:column}
 .request-panel form{flex:1;display:flex;flex-direction:column;justify-content:center}
 .faq{min-height:calc(100svh - 84px);padding-block:clamp(30px,6svh,60px);align-items:center}
 body>footer{height:84px;min-height:84px;scroll-snap-align:none}
}
.territory{background:#183e33}
.map-stage{inset:0;background:none}
.map-surface{position:absolute;inset:0}
#resort-map{display:block;width:100%;height:100%;overflow:hidden;fill:none;stroke:none}
.map-shade{z-index:1;background:linear-gradient(#13362bd9,transparent 32%,#0d302915)}
.territory .section-heading{z-index:3;pointer-events:none}
.map-house{cursor:pointer;outline:none}
.house-outline{fill:transparent;stroke:#e4edbd;stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:miter;stroke-miterlimit:10;stroke-linecap:butt;opacity:0;transition:opacity .45s ease,fill .45s ease;filter:drop-shadow(0 0 4px #edf1ac) drop-shadow(0 0 12px #d4e79b);pointer-events:all}
.map-house:hover .house-outline,.map-house:focus-visible .house-outline{opacity:1;fill:#dfe9ab16}
.map-marker circle{fill:#244b3dd9;stroke:#f4f5e9;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:fill .3s}
.map-marker text{font:26px var(--serif);fill:white;stroke:none}
.map-house.selected .map-marker circle,.map-house:hover .map-marker circle,.map-house:focus-visible .map-marker circle{fill:#dce7c9}
.map-house.selected .map-marker text,.map-house:hover .map-marker text,.map-house:focus-visible .map-marker text{fill:#203c30}
.map-popup{left:1.5%;top:24%;width:15%;max-width:260px}
.map-popup:after{display:none}
.map-popup h3{font-size:clamp(17px,1.5vw,23px)}
.map-popup .button{font-family:'Onest',Arial,sans-serif;font-size:14px;font-weight:500;letter-spacing:.01em;min-height:42px;gap:12px}
.map-legend{top:29%;right:3%;z-index:3}
.compass span{transform:none}
.compass svg{display:block;width:24px;height:24px;fill:currentColor;stroke:none}
#house-dialog{max-width:700px}
#house-photo{aspect-ratio:16/9;object-fit:cover;border-radius:9px;margin-bottom:20px}
#house-meta{font-size:14px;color:#294d3d}
dialog{max-height:calc(100svh - 32px);overflow:auto}
#request-dialog{text-align:center}
.request-check{margin:0 auto 20px;background:#e0e8d4;border-radius:50%;width:58px;height:58px;display:grid;place-items:center;font-size:29px;color:#294d3d}
.request-note{font-size:13px}
@media(max-width:700px),(hover:none) and (pointer:coarse){
 html{scroll-behavior:auto;scroll-snap-type:none}
 main>section,body>footer{scroll-snap-align:none;scroll-snap-stop:normal}
 .hero{height:var(--mobile-hero-height,100svh);min-height:480px;max-height:none;background-image:linear-gradient(90deg,#092b29b3,#092b2926),url('/assets/hero-fire-v1.webp');background-position:35% center}
 .header{gap:15px;height:calc(80px + env(safe-area-inset-top));padding-top:calc(18px + env(safe-area-inset-top));padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right))}
 .header nav{display:none}
 .hero h1{font-size:clamp(32px,9.3vw,58px)}
 .hero-copy{left:max(6%,env(safe-area-inset-left));right:max(5%,env(safe-area-inset-right))}
 .search-bar{bottom:calc(24px + env(safe-area-inset-bottom))}
 .search-bar{grid-template-columns:1fr 1fr}
 .cabin-card>img,.summary>img{height:auto;max-height:none}
 .faq{min-height:570px;align-items:flex-start}
 .booking{display:block;min-height:0}
 .request-panel,.summary,.calendar-panel{display:block}
 .request-panel form{display:block}
 body>footer{height:auto;min-height:75px;padding-bottom:calc(25px + env(safe-area-inset-bottom))}
 .hero:after{background:linear-gradient(#08231e66,transparent 65%,#08231e55)}
 .hero-copy{text-shadow:0 2px 12px #0007}
 .request-panel input,.request-panel textarea,#date-input{font-size:16px}
 .experience:hover img{transform:none}
 .house-outline{filter:none}
 dialog::backdrop{backdrop-filter:none}
 .hero-copy{top:22%}
 .search-field strong{font-size:clamp(13px,3.8vw,17px)}
 .territory{height:auto;min-height:0;max-height:none;padding:30px 0 22px;overflow:visible}
 .territory>.section-heading{margin:0 5% 22px}
 .map-shade{display:none}
 .map-stage{position:relative;inset:auto;background:none}
 .map-surface{position:relative;inset:auto;aspect-ratio:1672/941}
 #resort-map{overflow:visible}
 .map-marker circle{r:31}
 .map-marker text{font-size:34px}
 .map-popup{position:relative;inset:auto;width:90%;max-width:none;margin:18px auto 0;display:grid;grid-template-columns:130px 1fr;gap:8px 12px;padding:10px}
 .map-popup[hidden]{display:none}
 .map-popup>img{grid-row:1/3;height:105px;aspect-ratio:auto}
 .map-popup h3{font-size:22px;margin:9px 24px 0 0;align-self:end}
 .map-popup .button{margin:0;min-height:38px;align-self:start;font-size:12px}
 .map-legend{position:relative;inset:auto;margin:15px 5% 0;padding:12px;display:flex;justify-content:space-between;gap:12px;border:none;background:transparent;backdrop-filter:none}
 .map-legend span{font-size:11px;gap:8px}
 .lake-label,.compass{display:none}
 .house-outline{stroke-width:2}
 .request-panel .form-status{font-size:12px}
}
@media(max-width:700px),(hover:none) and (pointer:coarse){.map-surface{cursor:zoom-in;touch-action:none}}
#mobile-map-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#173e33;color:white;overflow:hidden}
.mobile-map-toolbar{position:absolute;inset:0 0 auto;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#173e33}
.mobile-map-toolbar h3{font-size:23px}
.mobile-map-toolbar button,.map-zoom button{border:1px solid #ffffff70;border-radius:50%;width:44px;height:44px;background:#244d3e;color:white;font-size:24px}
.mobile-map-viewport{position:absolute;inset:72px 0 0;overflow:hidden;touch-action:none}
.mobile-map-viewport svg{position:absolute;left:0;top:0;width:1672px;height:941px;max-width:none;transform-origin:0 0;fill:none;stroke:none;will-change:transform}
.mobile-map-viewport .house-outline{filter:none}
.mobile-map-hint{position:absolute;top:82px;left:14px;right:14px;text-align:center;font-size:12px;color:#fff;pointer-events:none;background:#173e33e6;border-radius:20px;padding:8px}
.map-zoom{position:absolute;right:16px;bottom:24px;display:flex;gap:10px;z-index:2}
.mobile-map-toolbar{padding-top:calc(14px + env(safe-area-inset-top))}
.mobile-map-viewport{top:calc(72px + env(safe-area-inset-top))}
.mobile-map-hint{top:calc(82px + env(safe-area-inset-top))}
.map-zoom{bottom:calc(24px + env(safe-area-inset-bottom))}
body.map-view-open{overflow:hidden}
@media(max-width:350px){.map-popup{grid-template-columns:105px 1fr}.map-popup h3{font-size:19px}.map-legend{gap:5px;padding:8px}.map-legend span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.house-outline,.map-marker circle{transition:none}}


