:root{
  --slate:#5F7D95;
  --deep:#3E566A;
  --ink:#1E262C;
  --muted:#6B7780;
  --bg:#FFFFFF;
  --stone:#F1F1EE;
  --hair:#DFE2E1;
  --blush:#E3A9A2;
  --header-h:74px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Karla",system-ui,sans-serif;font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:"Jost",system-ui,sans-serif;margin:0;letter-spacing:-0.02em;line-height:1.08}
p{margin:0 0 1em}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
.container{max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,5vw,64px)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:200;background:#fff;padding:10px 16px}
:focus-visible{outline:2px solid var(--blush);outline-offset:2px}

.label{
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.18em;font-size:.75rem;color:var(--slate);margin:0 0 14px;
}

/* buttons */
.btn-order{
  display:inline-block;background:var(--slate);color:#fff;text-decoration:none;
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.18em;font-size:.75rem;padding:13px 22px;
  transition:background .25s ease,transform .25s ease;min-height:44px;
}
.btn-order:hover{background:var(--deep)}
.btn-order.lg{font-size:.82rem;padding:17px 34px;box-shadow:0 16px 34px -20px rgba(30,38,44,.7)}
.btn-order.full{display:block;text-align:center;width:100%}
.link-arrow{
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.18em;font-size:.76rem;text-decoration:none;border-bottom:1px solid currentColor;
  padding-bottom:4px;transition:color .2s;display:inline-block;
}
.link-arrow:hover{color:var(--blush)}
.link-arrow.sm{font-size:.7rem;color:var(--deep);border-bottom-color:var(--hair)}
.link-arrow.sm:hover{color:var(--slate);border-bottom-color:var(--blush)}

/* header */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:transparent;transition:background .3s ease,box-shadow .3s ease;
}
.site-header.solid{background:var(--deep);box-shadow:0 6px 24px -14px rgba(0,0,0,.6)}
.header-inner{
  max-width:1200px;margin-inline:auto;padding:12px clamp(16px,5vw,64px);
  display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--header-h);
}
.brand img{width:118px}
.nav-desktop{display:flex;align-items:center;gap:24px;min-width:0}
.nav-desktop ul{display:flex;gap:20px;list-style:none;margin:0;padding:0}
.nav-desktop a{
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.16em;font-size:.72rem;color:#fff;text-decoration:none;opacity:.9;
  padding:8px 0;border-bottom:1px solid transparent;white-space:nowrap;
}
.nav-desktop a:hover{opacity:1;border-bottom-color:var(--blush)}
.nav-desktop a.active{border-bottom-color:var(--blush);opacity:1}
.nav-order{border-bottom:none!important}
.burger{display:none;background:none;border:0;width:46px;height:46px;padding:10px;cursor:pointer}
.burger span{display:block;height:2px;background:#fff;margin:5px 0;transition:transform .25s,opacity .25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-panel{
  position:fixed;inset:0;z-index:99;background:var(--deep);
  padding:calc(var(--header-h) + 24px) clamp(20px,7vw,40px) 40px;overflow-y:auto;
}
.mobile-panel ul{list-style:none;margin:28px 0 0;padding:0}
.mobile-panel li{border-bottom:1px solid rgba(255,255,255,.14)}
.mobile-panel a{
  display:block;color:#fff;text-decoration:none;font-family:"Jost",sans-serif;font-weight:500;
  text-transform:uppercase;letter-spacing:.16em;font-size:1rem;padding:18px 0;
}
.mobile-panel .btn-order{color:#fff}
.panel-foot{color:rgba(255,255,255,.55);font-size:.62rem;letter-spacing:.12em;margin-top:28px;text-transform:uppercase}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero-scrim{
  position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 50% 45%,rgba(20,22,14,.20) 0%,rgba(20,22,14,.62) 100%),
    linear-gradient(180deg,rgba(46,44,26,.55) 0%,rgba(30,29,20,.22) 40%,rgba(24,24,18,.70) 100%);
}
.hero-content{position:relative;z-index:2;text-align:center;color:#fff;padding-block:120px 130px;width:100%}
.hero-logo{width:clamp(210px,32vw,440px);margin:0 auto 24px;filter:drop-shadow(0 10px 30px rgba(0,0,0,.45))}
.hero h1{
  font-size:clamp(1.5rem,3.6vw,2.6rem);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;margin-bottom:14px;text-shadow:0 2px 24px rgba(0,0,0,.4);
}
.hero-sub{
  font-size:clamp(1.02rem,2vw,1.3rem);max-width:34ch;margin:0 auto 32px;
  color:rgba(255,255,255,.94);text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.hero-actions{display:flex;gap:26px;justify-content:center;align-items:center;flex-wrap:wrap}
.hero-actions .link-arrow{color:#fff}
.hero-strip{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  background:rgba(20,24,28,.58);backdrop-filter:blur(6px);border-top:1px solid rgba(255,255,255,.14);
}
.strip-inner{
  display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;
  padding-block:13px;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.82)
}
.strip-inner a{text-decoration:none}
.strip-inner a:hover{color:var(--blush)}

/* welcome */
.welcome{padding-block:clamp(72px,10vw,132px)}
.welcome-grid{display:grid;grid-template-columns:1fr;gap:48px}
.welcome-main{min-width:0}
.welcome h2{font-size:clamp(1.55rem,3.1vw,2.4rem);font-weight:700;max-width:20ch;margin-bottom:24px}
.lede{font-size:1.15rem;color:var(--deep)}
.welcome p{max-width:62ch;color:#33414b;overflow-wrap:break-word}
.credit{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:24px}
.credit a{color:var(--deep)}
.welcome-figs{margin-top:40px;display:grid;grid-template-columns:1fr;gap:14px}
.welcome-figs figure{margin:0;overflow:hidden;background:var(--stone)}
.welcome-figs img{width:100%;object-fit:cover}
.fig-decal img{aspect-ratio:16/10;object-position:45% 42%}
.fig-room img{aspect-ratio:4/3;object-position:55% 42%}

.hours{min-width:0}
.hours h3{
  font-size:.82rem;text-transform:uppercase;letter-spacing:.2em;font-weight:500;
  color:var(--deep);padding-bottom:14px;border-bottom:2px solid var(--deep);margin-bottom:6px;
}
.hours ul{list-style:none;margin:0;padding:0}
.hours li{display:flex;flex-direction:column;gap:3px;padding:18px 0;border-bottom:1px solid var(--hair)}
.hours .loc{
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;
  margin-bottom:5px;
}
.hours .mono{font-size:.74rem;color:var(--muted);letter-spacing:.03em}
.hours-cta{margin-top:22px}

/* rooms */
.rooms{background:var(--stone);padding-block:clamp(64px,8vw,110px)}
.rooms-head{max-width:44ch;margin-bottom:38px}
.rooms h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700}
.rooms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.rooms-grid figure,.rooms-wide figure{margin:0;overflow:hidden;background:#fff}
.rooms-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .55s ease}
.rooms-grid figure:hover img,.rooms-wide figure:hover img{transform:scale(1.04)}
.rooms-wide{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
.rooms-wide img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .55s ease}

/* menu */
.menu{background:var(--deep);color:#fff;padding-block:clamp(72px,10vw,140px)}
.menu-head{text-align:center;margin-bottom:34px}
.roundel{width:140px;margin:0 auto 20px;filter:brightness(0) invert(1);opacity:.95}
.menu h2{font-size:clamp(2rem,5vw,3.4rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.tabs-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-bottom:1px solid rgba(255,255,255,.18);margin-bottom:32px}
.tabs{display:flex;gap:4px;justify-content:flex-start;min-width:max-content;margin-inline:auto}
@media (min-width:820px){.tabs{justify-content:center;min-width:0}}
.tabs button{
  background:none;border:0;color:rgba(255,255,255,.66);cursor:pointer;
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.16em;
  font-size:.72rem;padding:14px 14px;min-height:46px;position:relative;white-space:nowrap;
}
.tabs button::after{
  content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--blush);
  transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.tabs button[aria-selected="true"]{color:#fff}
.tabs button[aria-selected="true"]::after{transform:scaleX(1)}
.tabs button:hover{color:#fff}
.panel-note{
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);
  text-align:center;margin-bottom:26px;
}
.subgroup{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blush);margin:6px 0 18px;font-weight:500}
.items{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:1fr;gap:24px 52px}
.items li{min-width:0;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:18px}
.itop{display:flex;gap:16px;align-items:baseline;justify-content:space-between}
.items h3{
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.08em;
  font-size:.9rem;line-height:1.35;min-width:0;
}
.tags{display:inline-flex;gap:5px;margin-left:6px;vertical-align:middle}
.tags em{
  font-style:normal;font-family:"JetBrains Mono",monospace;font-size:.55rem;letter-spacing:.08em;
  border:1px solid var(--blush);color:var(--blush);border-radius:99px;padding:2px 7px;
}
.price{font-size:.78rem;color:#fff;white-space:nowrap}
.items p{
  margin:8px 0 0;font-size:.85rem;color:rgba(255,255,255,.62);text-transform:uppercase;
  letter-spacing:.03em;line-height:1.55;
}
.menu-cta{text-align:center;margin-top:44px}
.menu .btn-order{background:#fff;color:var(--deep)}
.menu .btn-order:hover{background:var(--blush);color:var(--ink)}

/* full-bleed quote band */
.band{position:relative;min-height:52vh;display:flex;align-items:center;overflow:hidden}
.band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.band-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,26,18,.78) 0%,rgba(24,26,18,.45) 60%,rgba(24,26,18,.30) 100%)}
.band-inner{position:relative;z-index:2;color:#fff;padding-block:clamp(70px,10vw,120px);max-width:1200px}
.band blockquote{
  margin:0 0 22px;font-family:"Jost",sans-serif;font-weight:700;letter-spacing:-.02em;
  font-size:clamp(1.5rem,4vw,3rem);line-height:1.12;max-width:16ch;
}
.band .link-arrow{color:#fff}

/* gallery */
.gallery{padding-block:clamp(72px,10vw,140px)}
.gal-head{margin-bottom:34px;max-width:40ch}
.gallery h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700}
.bento{column-count:2;column-gap:12px}
.bento figure{break-inside:avoid;margin:0 0 12px;overflow:hidden;background:var(--stone)}
.bento img{width:100%;height:auto;transition:transform .55s ease}
.bento figure:hover img{transform:scale(1.05)}

/* press */
.press{background:var(--stone);padding-block:clamp(72px,10vw,140px)}
.press h2{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:700;margin-bottom:14px}
.press-intro{max-width:56ch;color:var(--muted);margin-bottom:44px}
.quotes{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:52px}
.quote{
  background:#fff;border:1px solid var(--hair);padding:30px 26px;text-decoration:none;
  display:flex;flex-direction:column;justify-content:space-between;gap:20px;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s;
}
.quote:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(30,38,44,.45);border-color:var(--slate)}
.quote blockquote{margin:0;font-family:"Jost",sans-serif;font-weight:400;font-size:1.05rem;line-height:1.4;letter-spacing:-.01em}
.quote cite{font-style:normal;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.press-wall{display:grid;grid-template-columns:1fr;gap:8px}
.press-wall a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid var(--hair);background:transparent;text-decoration:none;
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.1em;
  font-size:.76rem;padding:16px 18px;min-height:52px;color:var(--ink);
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}
.press-wall a:hover{background:var(--slate);color:#fff;border-color:var(--slate)}

/* gift */
.gift{padding-block:clamp(72px,10vw,140px)}
.gift-grid{display:grid;grid-template-columns:1fr;gap:36px;align-items:center}
.gift h2{font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:700;margin-bottom:16px}
.gift-copy p{max-width:44ch;color:var(--muted)}
.gift-copy .btn-order{margin-top:12px}
.gift-img{margin:0;background:var(--stone);overflow:hidden}
.gift-img img{aspect-ratio:4/3;object-fit:cover;object-position:50% 65%}

/* visit */
.visit{background:var(--stone);padding-block:clamp(72px,10vw,140px)}
.visit h2{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;margin-bottom:44px}
.loc-grid{display:grid;grid-template-columns:1fr;gap:18px}
.loc-card{background:#fff;border:1px solid var(--hair);display:flex;flex-direction:column;min-width:0;
  transition:transform .3s ease,box-shadow .3s ease}
.loc-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -28px rgba(30,38,44,.5)}
.loc-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
.loc-body{padding:24px 22px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.loc-card h3{
  font-size:1rem;text-transform:uppercase;letter-spacing:.14em;font-weight:500;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.badge{font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;background:var(--blush);color:var(--ink);padding:4px 8px;border-radius:99px}
.loc-card .addr{font-size:.72rem;color:var(--ink);letter-spacing:.04em;margin:0;text-transform:uppercase}
.loc-card .hrs{font-size:.7rem;color:var(--muted);margin:0;letter-spacing:.04em}
.loc-card .kiosk{font-size:.63rem;color:var(--slate);margin:0;text-transform:uppercase;letter-spacing:.08em;line-height:1.6}
.loc-body .link-arrow{align-self:flex-start;margin-top:auto}

/* footer */
.site-footer{background:var(--deep);color:#fff;padding-block:56px 30px}
.foot-grid{display:grid;grid-template-columns:1fr;gap:30px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.16)}
.foot-logo{width:150px;margin-bottom:14px}
.foot-grid .mono{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.foot-links{display:flex;flex-direction:column;gap:10px}
.foot-links a{text-decoration:none}
.foot-links a:hover{color:var(--blush)}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px}
.foot-bottom .mono{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0}
.foot-bottom a{color:rgba(255,255,255,.85)}
.back-top{text-decoration:none}
.back-top:hover{color:var(--blush)}

/* reveal */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

@media (min-width:700px){
  .items{grid-template-columns:1fr 1fr}
  .quotes{grid-template-columns:repeat(3,1fr)}
  .press-wall{grid-template-columns:1fr 1fr}
  .loc-grid{grid-template-columns:1fr 1fr}
  .bento{column-count:3}
  .rooms-grid{grid-template-columns:repeat(4,1fr);gap:14px}
  .rooms-wide{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
  .welcome-figs{grid-template-columns:5fr 7fr;gap:16px}
  .foot-grid{grid-template-columns:1fr auto}
  .foot-links{flex-direction:row;gap:22px;flex-wrap:wrap;align-items:center}
}
@media (min-width:980px){
  .welcome-grid{grid-template-columns:7fr 4fr;gap:clamp(40px,6vw,90px)}
  .hours{position:sticky;top:calc(var(--header-h) + 28px);align-self:start}
  .press-wall{grid-template-columns:repeat(3,1fr)}
  .gift-grid{grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,80px)}
  .loc-grid{grid-template-columns:repeat(4,1fr)}
  .rooms-grid figure:nth-child(2){transform:translateY(26px)}
  .rooms-grid figure:nth-child(4){transform:translateY(26px)}
  .rooms-wide{margin-top:40px}
}
@media (min-width:1180px){
  .bento{column-count:4}
}
@media (max-width:900px){
  .nav-desktop{display:none}
  .burger{display:block}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .bento figure:hover img,.rooms-grid figure:hover img,.rooms-wide figure:hover img{transform:none}
}