

:root{
  --band:112px;                        
  --quiet:rgba(18,18,15,.66);          
  --hair:rgba(18,18,15,.18);           
  
  --hold:1600px;
}


body{padding-top:0}

.nav{
  top:0;left:0;right:0;transform:none;width:auto;
  transition:transform .45s var(--ease);
}
.nav.is-hidden{transform:translateY(-100%)}
.nav__bar{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  height:var(--band);border-radius:0;padding:0 var(--pad);
  background:var(--cream);                 
  backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom:1px solid var(--hair);
}


.nav__mark{
  position:static;transform:none;grid-column:2;grid-row:1;justify-self:center;
  
  display:flex;align-items:center;min-height:24px;
  font-size:21px;font-weight:400;text-transform:uppercase;letter-spacing:.22em;
  line-height:1;white-space:nowrap;color:var(--ink);
  transition:color .35s var(--ease);
}

.nav__book{
  grid-column:1;grid-row:1;justify-self:start;
  border-color:rgba(18,18,15,.42);color:var(--ink);
}
.nav__book:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.nav__burger{grid-column:3;grid-row:1;justify-self:end;margin:0}
.nav__burger span{background:var(--ink)}


.nav__bar{transition:background-color .35s var(--ease),border-color .35s var(--ease)}
.nav.is-over:not(.is-open) .nav__bar{background:transparent;border-bottom-color:transparent}
.nav.is-over:not(.is-open) .nav__mark{color:var(--cream)}
.nav.is-over:not(.is-open) .nav__burger span{background:var(--cream)}
.nav.is-over:not(.is-open) .nav__book{color:var(--cream);border-color:rgba(247,239,227,.62)}
.nav.is-over:not(.is-open) .nav__book:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.nav.is-over:not(.is-open) .nav__mark:focus-visible,
.nav.is-over:not(.is-open) .nav__book:focus-visible,
.nav.is-over:not(.is-open) .nav__burger:focus-visible{outline-color:var(--cream)}


.menu{
  position:absolute;top:100%;right:var(--pad);
  width:min(372px,calc(100vw - var(--pad)*2));
  max-height:calc(100vh - var(--band));overflow:auto;
  border-radius:0;padding:34px 30px 26px;
  border:1px solid var(--hair);border-top:0;
  display:flex;flex-direction:column;   
}
.menu__links{justify-items:start;gap:14px}
.menu__links a{font-size:15px}
.menu__ext{justify-items:start;margin-top:38px}
.menu__card{margin-top:30px}
.menu__card > img{height:220px}

.menu__card-row{white-space:normal;gap:14px;justify-content:center;text-align:center}

@media (prefers-reduced-motion: reduce){
  .nav{transition:none}
}


.menu__ribbon{
  margin:26px 0 0;padding-top:16px;border-top:1px solid var(--hair);
  overflow:hidden;white-space:nowrap;
  font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;
  color:var(--quiet);
}
.menu__ribbon span{display:inline-block;animation:bv-ribbon 26s linear infinite}
@keyframes bv-ribbon{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media (prefers-reduced-motion: reduce){
  .menu__ribbon span{animation:none}
}

.menu__ribbon{margin-top:auto}


.hero{
  position:relative;
  height:100vh;min-height:560px;
  background:var(--ink);            
  color:var(--cream);
}
@supports (height:100svh){
  .hero{height:100svh}
}

.hero::after{
  content:"";
  background:linear-gradient(to top,rgba(0,0,0,.62) 0,rgba(0,0,0,.42) 240px,rgba(0,0,0,.38) 420px,rgba(0,0,0,0) 640px);
}
.hero__inner{
  position:relative;z-index:1;height:100%;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;
  padding:0 var(--pad) clamp(40px,6vh,72px);
}
.hero .disp{max-width:none}
.hero__meta{display:grid;gap:14px;justify-items:end;text-align:right}

.hero__base{
  width:100%;max-width:var(--hold);margin-top:38px;
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:0 40px;
}
.hero__foot{display:grid;gap:20px;justify-items:start;max-width:460px}
.hero__trust{
  margin:0;display:flex;align-items:baseline;gap:9px;white-space:nowrap;
  font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;
}
.hero__trust b{font-size:19px;font-weight:500;letter-spacing:.04em}


.menuboard{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0 34px;
  padding:104px max(var(--pad),calc((100% - var(--hold)) / 2)) 112px;
  background:var(--cream);
}

.menuboard--brief{grid-template-columns:repeat(3,minmax(0,1fr))}
.menu-more{
  grid-column:1 / -1;margin:46px 0 0;padding-top:16px;border-top:1px solid var(--hair);
}
.menu-lede{
  grid-column:1 / -1;margin-bottom:76px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:0 clamp(38px,4vw,76px);align-items:end;
}
.menuboard .eyebrow{color:var(--quiet);margin-bottom:20px}
.menuboard .disp{margin-bottom:18px}
.menu-lede .body{margin-bottom:28px;max-width:420px;color:var(--quiet)}
.special{margin:0;align-self:end}

.special img{width:100%;height:auto;aspect-ratio:1200/800;max-height:470px;object-fit:cover}
.special figcaption{
  margin-top:9px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--quiet);
}
.special figcaption .sp-kind{color:var(--ink);letter-spacing:.1em}

.menu-cat{
  margin:0 0 20px;font-weight:400;text-transform:uppercase;
  font-size:15px;line-height:1.1;letter-spacing:.115em;
}
.menu-cat em{
  display:block;margin-top:6px;font-style:normal;text-transform:none;
  font-size:11.5px;letter-spacing:.08em;color:var(--quiet);
}
.menu-cat.gap{margin-top:52px}
.rows{list-style:none;margin:0;padding:0}
.rows li{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:start;gap:0 14px;padding:7px 0;
  border-top:1px solid var(--hair);
}
.rows li:first-child{border-top:0}
.rows .item{
  font-size:13.5px;text-transform:uppercase;letter-spacing:.07em;line-height:1.3;
}
.rows .note{
  display:block;margin-top:4px;font-style:normal;text-transform:none;
  font-size:12px;letter-spacing:.005em;line-height:1.28;color:var(--quiet);
}
.rows .price{
  font-size:13.5px;letter-spacing:.05em;white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

.menu-fine{
  grid-column:1 / -1;
  margin:56px 0 0;padding-top:14px;border-top:1px solid var(--hair);
  font-size:11px;line-height:1.45;letter-spacing:.005em;color:var(--quiet);
  max-width:none;
}


.band{height:auto;aspect-ratio:1024/640}



.rooms{
  position:relative;isolation:isolate;
  
  padding:calc(var(--band) + 44px) 0 0;
  background:var(--cream-soft);
}
.rooms-lede{
  position:relative;z-index:2;
  margin:0 max(var(--pad),calc((100% - var(--hold)) / 2));
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  padding-bottom:24px;border-bottom:1px solid var(--hair);
}
.rooms-lede .eyebrow{color:var(--quiet)}


.rooms__bgwrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}
.rooms__bg{position:sticky;top:0;height:100vh;background:var(--cream-soft)}


.room{position:relative;z-index:1;height:100vh}
.room--1{background:var(--cream-soft);color:var(--ink)}
.room--2{background:var(--terra);color:var(--ink)}
.room--3{background:var(--ink);color:var(--cream)}

.room__in{
  position:sticky;top:0;height:100vh;
  padding:0 var(--pad);
  will-change:transform,opacity;
}

.room__fig{
  position:absolute;margin:0;overflow:hidden;border-radius:14px;will-change:clip-path;
}
.room__fig img{width:100%;height:100%;object-fit:cover}
.room__fig--tall{width:430px;height:min(648px,72vh)}
.room__fig--wide{width:576px;height:min(384px,43vh)}
.room--a .room__fig--tall{left:97px;top:98px}
.room--a .room__fig--wide{right:97px;top:48px}
.room--b .room__fig--wide{left:48px;top:110px}
.room--b .room__fig--tall{right:97px;top:100px}


.room--1 .room__word{color:var(--terra)}
.room--2 .room__word{color:var(--cream-soft)}
.room__word{
  position:absolute;left:0;right:0;top:52%;transform:translateY(-50%);
  margin:0;text-align:center;z-index:2;pointer-events:none;
  font-weight:400;text-transform:uppercase;
  font-size:min(12vw,208px);line-height:.9;letter-spacing:.04em;white-space:nowrap;
}

.room__foot{
  position:absolute;left:var(--pad);right:var(--pad);bottom:48px;z-index:3;
  display:flex;align-items:flex-end;justify-content:space-between;gap:32px;
}
.room__base{display:grid;gap:10px;width:min(560px,58%)}
.room__cap{
  margin:0;font-size:19px;font-weight:400;letter-spacing:.04em;line-height:1;
  font-variant-numeric:tabular-nums;
}

.room__note{margin:0;opacity:.78}
.room--2 .room__note{opacity:1}
.room__go{flex:0 0 auto}

.desert{height:auto;min-height:0;padding:var(--pad) var(--pad) 46px}
.desert__top{padding-top:78px}

.desert__bottom{position:relative;z-index:1;width:auto;max-width:400px;margin:74px 0 0 auto;justify-items:start}
.desert__bottom .body{max-width:400px}


.about{padding:64px var(--pad) 56px}

@media (min-width:1100px){
  .about{align-items:center}
  .about__eyebrow{align-self:flex-start}
}
.about__eyebrow{color:var(--quiet)}
.about__body{padding-left:0;padding-right:38px}
.about__body .disp{max-width:none}
.about__foot{margin-top:40px;gap:18px;max-width:440px}

.about__shot{margin-left:auto;flex:0 0 clamp(280px,27vw,400px)}

.about__shot img{width:100%;height:auto;aspect-ratio:400/598;filter:none}
.about .body{color:var(--quiet)}


.visit{
  background:var(--cream);color:var(--ink);
  padding:52px max(var(--pad),calc((100% - var(--hold)) / 2)) 40px;
}
.visit .rule{height:1px;background:var(--hair)}
.visit .eyebrow{color:var(--quiet);margin-bottom:22px}
.visit-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  gap:0 48px;padding:60px 0 8px;
}
.visit p{margin:0 0 10px;font-size:14px;line-height:1.4;letter-spacing:.01em}
.visit a{transition:opacity .25s var(--ease)}
.visit a:hover{opacity:.62}
.visit-addr{font-size:16px;line-height:1.35}
.visit-addr a{text-decoration:underline;text-underline-offset:3px}
.visit-line a{text-decoration:underline;text-underline-offset:3px}
.visit-book,.foot__book{
  display:inline-grid;place-items:center;min-height:44px;margin:18px 0 20px;
  padding:0 20px;border:1px solid rgba(18,18,15,.42);border-radius:4px;
  font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.11em;
  transition:background .25s var(--ease),color .25s var(--ease);
}
.visit-book{margin-right:22px}   
.visit-book:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);opacity:1}
.hours{width:100%;border-collapse:collapse;font-size:14px}
.hours th,.hours td{
  padding:8px 0;text-align:left;font-weight:400;
  border-bottom:1px solid var(--hair);
  font-variant-numeric:tabular-nums;
}
.hours td{text-align:right;white-space:nowrap}
.visit-note{margin-top:16px;font-size:12.5px;line-height:1.5;color:var(--quiet)}

.visit-shot img{width:100%;height:auto;aspect-ratio:1400/812;object-fit:cover}
.visit-events{margin-top:18px;font-size:13px;line-height:1.45;color:var(--quiet)}
.visit-map{margin:44px 0 40px}
.visit-map iframe{display:block;width:100%;height:340px;border:0}


.foot{padding:60px var(--pad) 22px;background:var(--cream-soft)}
.foot__word{
  margin:14px 0 0;padding:36px 0 0;border-bottom:0;border-top:1px solid var(--hair);
  font-weight:400;text-transform:uppercase;
  font-size:clamp(35px,10.4vw,150px);line-height:.86;letter-spacing:.02em;
  text-align:center;
}
.foot__meta{display:grid;gap:14px}
.foot__meta p{margin:0;font-size:12px;line-height:1.5;text-transform:uppercase;letter-spacing:.09em}
.foot__meta a{transition:opacity .25s var(--ease)}
.foot__meta a:hover{opacity:.6}

.foot__col .eyebrow{margin-bottom:34px}
.foot .eyebrow--mute{color:var(--quiet)}
.foot__book{
  min-height:44px;border-color:var(--hair);color:var(--ink);margin:6px 0 0;
}
.foot__book:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);opacity:1}
.foot__left{padding-bottom:44px}
.foot__base{margin-top:14px}
.foot__base a{display:inline-flex;align-items:center;min-height:24px}


.rv{
  opacity:0;transform:translateY(18px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1);
}
.rv.in{opacity:1;transform:none}

.rise{
  opacity:0;transform:translateY(28px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1);
  transition-delay:calc(var(--i,0) * .09s);
}
.rise.in{opacity:1;transform:none}

.reveal-img{overflow:hidden}
.reveal-img:not(.media-zoom) > img{
  transform:scale(1.08);opacity:0;
  transition:transform 1.2s var(--ease),opacity .9s ease;
}
.reveal-img:not(.media-zoom).in > img{transform:none;opacity:1}


.media-zoom{position:absolute;inset:0;overflow:hidden}
.media-zoom.reveal-img{transform:scale(1.08);transition:transform 1.2s var(--ease)}
.media-zoom.reveal-img.in{transform:none}


.special > img{transition:transform 1.2s var(--ease),opacity .45s ease}
.special.is-swapping > img{opacity:0}

@media (prefers-reduced-motion: reduce){
  .rv,.rise{opacity:1;transform:none;transition:none}
  .reveal-img:not(.media-zoom) > img{opacity:1;transform:none;transition:none}
  .media-zoom.reveal-img{transform:none;transition:none}
  .special.is-swapping > img{opacity:1}
}


a:focus-visible,button:focus-visible,iframe:focus-visible{
  outline:2px solid var(--terra);outline-offset:3px;
}
.desert a:focus-visible,.band a:focus-visible,.hero a:focus-visible{outline-color:var(--cream)}


@media (min-width:1100px) and (max-width:1279px){
  .hero .disp--hero{font-size:48px;line-height:.9;letter-spacing:.115em}
}
@media (min-width:1100px) and (max-width:1359px){
  .menuboard{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px;padding:80px var(--pad) 84px}
}
@media (min-width:768px) and (max-width:1099px){
  .menuboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;padding:64px var(--pad) 72px}
}



@media (max-width:1279px){
  .rooms{padding:calc(var(--band) + 30px) 0 0}
  .rooms-lede{margin:0 var(--pad)}
  .room__fig--tall{width:55%;height:68vh;max-height:660px}
  .room__fig--wide{width:65%;height:38vh;max-height:360px}
  .room--a .room__fig--tall,.room--b .room__fig--tall{left:7%;right:auto;top:12vh}
  .room--a .room__fig--wide,.room--b .room__fig--wide{right:7%;left:auto;top:38vh;bottom:auto}
  .room__word{top:50%}
  .room__foot{bottom:32px}
  .room__base{width:min(460px,50%)}
}

@media (max-width:767px){
  .room__fig--tall{width:55%;height:41vh;max-height:none}
  .room__fig--wide{width:65%;height:22vh;max-height:none}
  .room--a .room__fig--tall,.room--b .room__fig--tall{left:8%;top:4vh}
  .room--a .room__fig--wide,.room--b .room__fig--wide{right:8%;top:54vh}
  .room__word{letter-spacing:.02em;font-size:min(11.6vw,calc((100vw - 68px) / 7.6))}
  .room__foot{flex-direction:column;align-items:flex-start;gap:14px}
  .room__base{width:auto;gap:8px}
}


@media (max-width:1099px){
  .hero__inner{padding:0 var(--pad) clamp(32px,5vh,56px)}
  .hero__base{grid-template-columns:1fr;gap:22px 0;margin-top:30px}
  .hero__meta{justify-items:start;text-align:left;gap:12px}
  .hero__foot{max-width:none}

  .menu-lede{grid-template-columns:1fr;gap:36px 0;margin-bottom:52px}
  .menu-lede .body{max-width:none}

  .band{height:auto;aspect-ratio:1024/640}

  .desert{padding-top:0}
  .desert__top{padding-top:96px}
  .desert__bottom{margin:74px 0 0;max-width:none;width:min(420px,86%)}

  .about{padding:60px var(--pad) 72px}
  .about__body{padding-right:0}
  
  .about__shot{margin-left:0;flex:none}

  .visit{padding:36px var(--pad) 30px}
  .visit-grid{grid-template-columns:1fr;gap:44px 0;padding:40px 0 4px}
  .visit-map{margin:34px 0 30px}
  .visit-map iframe{height:280px}

  .foot{padding:0 var(--pad) 20px}
  .foot__word{margin-bottom:36px;padding:30px 0 26px}
}

@media (max-width:767px){
  .menuboard{grid-template-columns:1fr;gap:52px 0}
  .menu-cat.gap{margin-top:44px}
}

@media (max-width:640px){
  
  :root{--band:66px}
  .nav__mark{font-size:14px;letter-spacing:.18em}
  
  .hero .disp--hero,.desert .disp--hero,.about .disp--hero{font-size:35px;line-height:.9;letter-spacing:.114em}
  .special img{aspect-ratio:1200/860}
  .rows .item{font-size:13px}
  .room__cap{font-size:17px}
  .hours{font-size:13px}
}


.arrow{padding:7px 0;margin:-7px 0}
.foot__nav a,.foot__ext a,.foot__meta a,.visit-line a,.visit-addr a,.menu__links a,.menu__ext a{
  display:inline-flex;align-items:center;min-height:24px;
}

.foot__ext a,.menu__ext a,.foot__nav a{gap:5px}

section[id],main[id]{scroll-margin-top:calc(var(--band) + 12px)}
@media (max-width:1099px){
  .arrow{padding:13px 0;margin:-13px 0}
  
  .nav__book,.nav__mark,.nav__burger{display:flex;align-items:center;min-height:44px}
  
  .menu-cat{padding-bottom:9px;margin-bottom:11px}
  .foot__base a{min-height:44px}
  .nav__mark{justify-content:center}
  .nav__burger{display:grid;align-content:center;min-height:44px}
  
  
  .menu__links,.menu__ext,.foot__nav,.foot__ext{row-gap:2px}
  .menu__links a,.menu__ext a,.foot__nav a,.foot__ext a{
    display:flex;align-items:center;min-height:44px;
  }
  .foot__meta a,.visit-line a,.visit-addr a{display:inline-flex;align-items:center;min-height:44px}
  .foot__meta{gap:6px}
}
