:root{
  --ink:#171512;
  --muted:#746f67;
  --paper:#f5f1ea;
  --paper-2:#ece6dc;
  --line:rgba(23,21,18,.12);
  --white:#fff;
  --deep:#161310;
  --radius:28px;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(255,255,255,.65);outline-offset:3px}
.skip-link{position:fixed;left:12px;top:-70px;z-index:1000;background:#fff;padding:.7rem 1rem;border-radius:999px}.skip-link:focus{top:12px}

.concept-ribbon{
  position:fixed;left:0;right:0;top:0;z-index:80;height:28px;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:0 max(14px,3vw);background:#171512;color:#f4efe7;
  font-size:.56rem;letter-spacing:.16em;font-weight:700;
}
.concept-ribbon a{display:flex;align-items:center;gap:.35rem;letter-spacing:.04em}
.concept-ribbon svg{width:12px;height:12px}

.lodge-nav-wrap{position:fixed;left:0;right:0;top:28px;z-index:70;padding:12px max(12px,3vw);pointer-events:none}
.lodge-nav{
  width:min(1220px,100%);height:68px;margin:0 auto;padding:0 12px 0 16px;
  display:flex;align-items:center;gap:1.5rem;background:rgba(250,247,241,.86);
  border:1px solid rgba(255,255,255,.55);border-radius:20px;
  backdrop-filter:blur(18px) saturate(140%);box-shadow:0 16px 40px rgba(36,29,21,.09);
  transition:height .3s ease,width .3s ease,border-radius .3s ease;pointer-events:auto;
}
.lodge-nav.is-compact{width:min(980px,calc(100% - 2vw));height:58px;border-radius:999px}
.property-brand{display:flex;align-items:center;gap:.7rem;margin-right:auto;min-width:0}
.brand-mark{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(23,21,18,.28);font-family:var(--serif);font-size:.95rem;font-weight:600
}
.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:.74rem;letter-spacing:.12em}.brand-copy small{font-size:.46rem;letter-spacing:.16em;color:#7b746c;margin-top:.25rem}
.nav-links{display:flex;gap:1.4rem;font-size:.72rem;font-weight:600;color:#5d574f}
.nav-book,.mobile-menu button,.booking-dialog a,.location-copy button{
  border:0;background:#1d1a16;color:#fff;border-radius:999px;padding:.82rem 1rem;font-size:.72rem;font-weight:700;cursor:pointer;
  display:inline-flex;align-items:center;gap:.45rem
}
.mobile-menu-button{display:none;border:0;background:transparent;padding:.5rem;cursor:pointer}.mobile-menu-button svg{width:20px}
.mobile-menu{display:none}

.hero{position:relative;min-height:100svh;color:#fff;overflow:hidden}
.hero-image,.final-image{position:absolute;inset:-8% 0 0;will-change:transform}
.hero-shade,.final-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,11,8,.20),rgba(13,11,8,.08) 35%,rgba(13,11,8,.65) 100%)}
.hero-content{
  position:relative;z-index:3;min-height:100svh;padding:clamp(10rem,17vw,13rem) max(1rem,5vw) 10rem;
  display:flex;flex-direction:column;justify-content:flex-end;max-width:1000px
}
.hero-kicker,.eyebrow{font-size:.62rem;letter-spacing:.2em;font-weight:700}
.hero-content h1{
  margin:.8rem 0 1rem;font-family:var(--serif);font-weight:500;font-size:clamp(4.5rem,10vw,9rem);
  line-height:.78;letter-spacing:-.06em
}
.hero-content p{max-width:560px;font-size:clamp(.95rem,1.5vw,1.16rem);line-height:1.7;color:rgba(255,255,255,.82)}
.hero-explore{display:inline-flex;align-items:center;gap:.55rem;margin-top:1rem;font-size:.74rem;font-weight:700}.hero-explore svg{width:16px}
.hero-index{position:absolute;z-index:4;right:max(1rem,5vw);bottom:8.5rem;text-align:right}
.hero-index span{display:block;font-family:var(--serif);font-size:3.5rem;line-height:.9}.hero-index small{font-size:.52rem;letter-spacing:.17em}

.booking-bar{
  position:absolute;z-index:6;left:50%;bottom:0;transform:translate(-50%,50%);
  width:min(1120px,calc(100% - 2rem));display:grid;grid-template-columns:1fr 1fr .8fr auto;
  background:rgba(250,247,241,.96);color:var(--ink);border-radius:20px;padding:.65rem;
  box-shadow:0 24px 70px rgba(24,18,12,.18);border:1px solid rgba(23,21,18,.08)
}
.booking-bar label{padding:.55rem .8rem;border-right:1px solid var(--line);display:grid;gap:.25rem}
.booking-bar label span{font-size:.53rem;letter-spacing:.12em;text-transform:uppercase;color:#777066;font-weight:700}
.booking-bar input,.booking-bar select{border:0;background:transparent;color:#2c2823;min-width:0;font-size:.76rem}
.booking-bar button{
  border:0;background:#1d1a16;color:#fff;border-radius:14px;padding:0 1.2rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.72rem;font-weight:700;cursor:pointer
}
.booking-bar button svg{width:15px}

.intro{
  width:min(1220px,calc(100% - 2rem));margin:0 auto;padding:11rem 0 7rem;
  display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,7vw,7rem);align-items:center
}
.intro-copy h2,.section-head h2,.experience-copy h2,.story-sticky h2,.location-copy h2,.final-content h2,.booking-dialog h2{
  margin:.6rem 0 1rem;font-family:var(--serif);font-weight:500;letter-spacing:-.045em;line-height:.9
}
.intro-copy h2{font-size:clamp(3.4rem,6vw,6.2rem)}
.intro-copy p,.experience-copy p,.story-sticky p,.location-copy p,.booking-dialog p{color:var(--muted);line-height:1.8;font-size:.9rem;max-width:580px}
.intro-features{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.5rem}
.intro-features span{display:flex;align-items:center;gap:.45rem;border:1px solid var(--line);border-radius:999px;padding:.6rem .75rem;font-size:.66rem;background:rgba(255,255,255,.55)}
.intro-features svg{width:15px}
.intro-image{margin:0;position:relative;height:min(66vw,680px);border-radius:30px;overflow:hidden}
.intro-image figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:end;justify-content:space-between;background:rgba(245,241,234,.88);backdrop-filter:blur(12px);padding:.8rem 1rem;border-radius:16px}
.intro-image figcaption span{font-size:.58rem;letter-spacing:.16em;font-weight:700}.intro-image figcaption small{font-size:.65rem;color:var(--muted)}

.stay-section{padding:7rem 0;background:#1b1814;color:#f6f0e8;overflow:hidden}
.section-head{width:min(1220px,calc(100% - 2rem));margin:0 auto 2rem;display:flex;align-items:end;justify-content:space-between;gap:2rem}
.section-head h2{font-size:clamp(3.6rem,6.5vw,6.5rem)}
.carousel-controls{display:flex;gap:.45rem}.carousel-controls button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}.carousel-controls svg{width:17px}
.room-rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(380px,48vw);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding:4px max(1rem,calc((100vw - 1220px)/2)) 24px
}
.room-rail::-webkit-scrollbar{display:none}
.room-card{scroll-snap-align:start;background:#27221d;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.room-image{height:500px;position:relative;overflow:hidden}.room-image img{transition:transform .8s cubic-bezier(.22,1,.36,1)}.room-card:hover .room-image img{transform:scale(1.03)}
.room-number{position:absolute;right:1rem;top:1rem;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:rgba(19,16,13,.55);backdrop-filter:blur(8px);font-size:.62rem}
.room-copy{padding:1.2rem}.room-copy>span{font-size:.55rem;letter-spacing:.16em;color:#c9bda9;font-weight:700}.room-copy h3{margin:.5rem 0 1rem;font-family:var(--serif);font-size:2.1rem;font-weight:500;letter-spacing:-.04em}
.room-details{display:flex;gap:.85rem;flex-wrap:wrap;color:#cfc5b8;font-size:.63rem}.room-details span{display:flex;align-items:center;gap:.35rem}.room-details svg{width:14px}
.room-copy button{margin-top:1.1rem;border:0;background:transparent;color:#fff;padding:0;display:flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:700;cursor:pointer}.room-copy button svg{width:14px}

.experience-section{width:min(1220px,calc(100% - 2rem));margin:0 auto;padding:8rem 0}
.experience-copy{display:grid;grid-template-columns:1fr .8fr;gap:3rem;align-items:end;margin-bottom:2rem}.experience-copy h2{font-size:clamp(3.6rem,6.3vw,6.3rem)}.experience-copy p{justify-self:end}
.experience-grid{display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:360px 310px;gap:1rem}
.experience-card{position:relative;border-radius:26px;overflow:hidden;min-height:0;background:#ded4c5}.experience-wide{grid-row:1/3}.experience-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,8,6,.65))}
.experience-card>div{position:absolute;z-index:2;left:1.2rem;right:1.2rem;bottom:1.2rem;color:#fff}.experience-card>div span{display:flex;align-items:center;gap:.4rem;font-size:.56rem;letter-spacing:.14em;font-weight:700}.experience-card>div span svg{width:14px}.experience-card>div strong{display:block;margin-top:.45rem;font-family:var(--serif);font-size:2.1rem;line-height:.92;font-weight:500}
.experience-text{background:#e9e2d8;padding:1.5rem;display:flex;flex-direction:column;justify-content:flex-end}.experience-text:after{display:none}.experience-text>i{width:28px;height:28px;margin-bottom:auto}.experience-text strong{font-family:var(--serif);font-size:2.2rem;line-height:.92;font-weight:500}.experience-text small{color:var(--muted);line-height:1.6;margin-top:.7rem}.mini-label{position:absolute;top:1.4rem;right:1.4rem;font-size:.56rem;letter-spacing:.15em}

.story-scroll{width:min(1220px,calc(100% - 2rem));margin:0 auto;padding:4rem 0 9rem;display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2rem,7vw,7rem);align-items:start}
.story-sticky{position:sticky;top:140px}.story-sticky h2{font-size:clamp(3rem,5.4vw,5.4rem)}
.story-frames{display:grid;gap:1rem}.story-frame{margin:0;position:relative;height:560px;border-radius:28px;overflow:hidden}.story-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(12,9,6,.5))}
.story-frame figcaption{position:absolute;z-index:2;left:1.2rem;right:1.2rem;bottom:1.1rem;color:#fff;display:flex;justify-content:space-between;align-items:end}.story-frame figcaption span{font-size:.62rem;letter-spacing:.12em}.story-frame figcaption strong{font-family:var(--serif);font-weight:500;font-size:2rem}

.location-section{padding:0 max(1rem,5vw) 8rem}.location-card{width:min(1220px,100%);margin:auto;min-height:560px;display:grid;grid-template-columns:1.05fr .95fr;border-radius:30px;overflow:hidden;background:#e9e2d8}
.map-visual{position:relative;min-height:560px;background:radial-gradient(circle at 50% 50%,#d6c7b2,#bca889);overflow:hidden}
.map-ring{position:absolute;border:1px solid rgba(43,35,28,.25);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.ring-one{width:280px;height:280px}.ring-two{width:470px;height:470px}
.map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:#1b1814;color:#fff;display:grid;place-items:center}.map-pin svg{width:22px}.map-label{position:absolute;bottom:1.5rem;left:1.5rem;font-size:.65rem;letter-spacing:.17em;font-weight:700}
.location-copy{padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}.location-copy h2{font-size:clamp(3.5rem,6vw,6rem)}.location-copy button{width:max-content;margin-top:1rem}

.final-booking{position:relative;min-height:760px;color:#fff;overflow:hidden}.final-image{inset:-10% 0 0}.final-shade{background:linear-gradient(180deg,rgba(16,12,9,.15),rgba(16,12,9,.64))}
.final-content{position:relative;z-index:2;min-height:760px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 1rem}.final-content>span{font-size:.62rem;letter-spacing:.19em;font-weight:700}.final-content h2{font-size:clamp(4rem,8vw,7.8rem);margin:.6rem 0 1.5rem}.final-content a{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:.9rem 1.2rem;font-size:.72rem;font-weight:700;background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}.final-content a svg{width:15px}

.concept-footer{background:#12100e;color:#e9e2d8;padding:2rem max(1rem,5vw);display:grid;grid-template-columns:1.2fr auto;gap:1.4rem;align-items:center}.concept-note{display:flex;align-items:center;gap:.9rem}.concept-note img{width:auto;height:28px;max-width:110px;object-fit:contain}.concept-note div{display:grid;gap:.2rem}.concept-note strong{font-size:.62rem;letter-spacing:.12em}.concept-note small,.photo-credit{font-size:.58rem;color:#9c9184}.footer-links{display:flex;gap:1rem;flex-wrap:wrap;font-size:.64rem;color:#c7bcaf}.photo-credit{grid-column:1/-1}

.booking-modal{position:fixed;inset:0;z-index:200;display:none}.booking-modal.is-open{display:block}.booking-backdrop{position:absolute;inset:0;background:rgba(13,10,7,.55);backdrop-filter:blur(5px)}
.booking-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 2rem));background:#f5f1ea;border-radius:28px;padding:2rem;box-shadow:0 30px 90px rgba(0,0,0,.25)}
.dialog-close{position:absolute;right:1rem;top:1rem;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer}.dialog-close svg{width:17px}
.booking-dialog h2{font-size:clamp(2.4rem,5vw,4rem)}.booking-dialog a{margin-top:.5rem}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:none}

@media(max-width:980px){
  .nav-links{display:none}.mobile-menu-button{display:grid;place-items:center}.nav-book{display:none}
  .mobile-menu{position:absolute;left:12px;right:12px;top:76px;background:#f7f2ea;border-radius:20px;padding:1rem;box-shadow:0 22px 50px rgba(34,28,22,.14);pointer-events:auto}.mobile-menu.is-open{display:grid;gap:.2rem}.mobile-menu a{padding:.8rem .4rem;border-bottom:1px solid var(--line);font-size:.75rem}.mobile-menu button{margin-top:.7rem;justify-content:center}
  .booking-bar{grid-template-columns:1fr 1fr}.booking-bar label:nth-child(2){border-right:0}.booking-bar button{min-height:50px;grid-column:1/-1}
  .intro{grid-template-columns:1fr;padding-top:13rem}.intro-image{height:620px}
  .experience-copy{grid-template-columns:1fr}.experience-copy p{justify-self:start}
  .story-scroll{grid-template-columns:1fr}.story-sticky{position:relative;top:auto}
  .location-card{grid-template-columns:1fr}.map-visual{min-height:420px}
}
@media(max-width:700px){
  .concept-ribbon{height:26px;font-size:.49rem}.concept-ribbon>span{max-width:52%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lodge-nav-wrap{top:26px;padding:8px}.lodge-nav,.lodge-nav.is-compact{height:58px;width:100%;border-radius:18px;padding:0 10px 0 12px}.brand-copy strong{font-size:.68rem}.brand-copy small{font-size:.42rem}
  .hero-content{padding:8rem 1rem 12rem}.hero-content h1{font-size:clamp(4rem,20vw,6rem)}.hero-index{display:none}
  .booking-bar{bottom:12px;transform:translateX(-50%);grid-template-columns:1fr 1fr;width:calc(100% - 1rem);padding:.45rem;border-radius:16px}.booking-bar label{padding:.45rem .55rem}.booking-bar label:nth-child(3){grid-column:1/-1;border-right:0;border-top:1px solid var(--line)}.booking-bar button{min-height:46px}
  .intro{width:calc(100% - 2rem);padding:6rem 0 4.5rem}.intro-copy h2{font-size:clamp(3.2rem,15vw,4.8rem)}.intro-image{height:520px}
  .stay-section{padding:4.5rem 0}.section-head{align-items:flex-start}.section-head h2{font-size:clamp(3.1rem,14vw,4.6rem)}.room-rail{grid-auto-columns:88vw;padding-left:1rem;padding-right:1rem}.room-image{height:420px}
  .experience-section{padding:4.5rem 0}.experience-copy h2{font-size:clamp(3.1rem,14vw,4.6rem)}.experience-grid{grid-template-columns:1fr;grid-template-rows:auto}.experience-card,.experience-wide{height:430px;grid-row:auto}.experience-text{height:300px}
  .story-scroll{padding:2rem 0 5rem}.story-sticky h2{font-size:clamp(3rem,13vw,4.5rem)}.story-frame{height:440px}
  .location-section{padding:0 1rem 5rem}.location-copy h2{font-size:clamp(3.1rem,14vw,4.7rem)}
  .final-booking,.final-content{min-height:650px}.final-content h2{font-size:clamp(3.7rem,16vw,5.5rem)}
  .concept-footer{grid-template-columns:1fr}.footer-links{flex-direction:column;gap:.4rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}.hero-image,.final-image{transform:none!important}
}