
:root{
  --ink:#080f11; --ink-2:#0c1a1d; --panel:#102528; --line:rgba(201,169,106,.22);
  --brass:#c9a96a; --brass-lo:#8d7442; --teal:#19b0bf; --teal-deep:#0e6b76;
  --cream:#f3ebdd; --mute:#8ea3a6; --white:#fff;
  --f-display:'Cormorant Garamond',Georgia,serif;
  --f-body:'Jost',-apple-system,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gut:clamp(20px,5vw,96px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--f-body);
  font-weight:300;font-size:clamp(15px,1.05vw,17px);line-height:1.75;overflow-x:hidden;
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:300;line-height:1.04;margin:0;
  letter-spacing:-.015em}
::selection{background:var(--brass);color:var(--ink)}

/* grain + vignette ------------------------------------------------------- */
.grain{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay}
.vig{position:fixed;inset:0;z-index:9997;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 40%,transparent 42%,rgba(0,0,0,.55) 100%)}

/* cursor ----------------------------------------------------------------- */
.cur{position:fixed;top:0;left:0;width:12px;height:12px;border-radius:50%;
  background:var(--brass);z-index:9999;pointer-events:none;mix-blend-mode:difference;
  transform:translate(-50%,-50%);transition:width .4s var(--ease),height .4s var(--ease),opacity .3s}
.cur.big{width:74px;height:74px;background:var(--cream)}
@media(hover:none){.cur{display:none}}

/* curtain ---------------------------------------------------------------- */
.curtain{position:fixed;inset:0;z-index:9996;background:var(--ink);display:grid;place-items:center}
.curtain img{width:132px;opacity:.9}
.curtain .bar{position:absolute;bottom:0;left:0;height:1px;background:var(--brass);width:0}

/* nav -------------------------------------------------------------------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:900;display:flex;align-items:center;
  justify-content:space-between;padding:22px var(--gut);
  transition:background .5s var(--ease),padding .5s var(--ease),border-color .5s}
.nav::after{content:"";position:absolute;inset:0;z-index:-1;backdrop-filter:blur(14px);
  background:rgba(8,15,17,0);border-bottom:1px solid transparent;transition:.5s var(--ease)}
.nav.stuck{padding:12px var(--gut)}
.nav.stuck::after{background:rgba(8,15,17,.82);border-bottom-color:var(--line)}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:38px}
.brand b{font-family:var(--f-display);font-size:22px;font-weight:400;letter-spacing:.02em}
.brand small{display:block;font-size:8.5px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--brass);margin-top:2px;font-weight:400}
.links{display:flex;gap:30px;align-items:center}
.links a{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);
  position:relative;padding:6px 0;transition:color .35s}
.links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--brass);transition:width .45s var(--ease)}
.links a:hover,.links a[aria-current]{color:var(--cream)}
.links a:hover::after,.links a[aria-current]::after{width:100%}
.navcta{border:1px solid var(--brass);color:var(--brass)!important;padding:10px 20px!important;
  border-radius:100px;font-size:10.5px!important}
.navcta::after{display:none}
.navcta:hover{background:var(--brass);color:var(--ink)!important}
.burger{display:none;background:none;border:0;color:var(--cream);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;cursor:pointer;padding:8px}
@media(max-width:1080px){
  .links{position:fixed;inset:0;background:rgba(8,15,17,.98);flex-direction:column;
    justify-content:center;gap:26px;transform:translateY(-101%);transition:transform .7s var(--ease)}
  .links.open{transform:none}
  .links a{font-size:16px;letter-spacing:.16em}
  .burger{display:block;z-index:2}
}

/* type helpers ----------------------------------------------------------- */
.eyebrow{font-size:10.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--brass);
  display:flex;align-items:center;gap:14px;font-weight:400}
.eyebrow::before{content:"";width:38px;height:1px;background:var(--brass);opacity:.6}
.display{font-size:clamp(46px,8.6vw,132px);letter-spacing:-.03em}
.display em{font-style:italic;color:var(--brass)}
.h2{font-size:clamp(34px,5.4vw,78px)}
.h3{font-size:clamp(24px,2.6vw,38px)}
.lead{font-size:clamp(17px,1.5vw,22px);line-height:1.68;color:#d8cfc0;max-width:62ch;font-weight:300}
.muted{color:var(--mute)}
section{position:relative;padding:clamp(84px,11vw,180px) var(--gut)}
.wrap{max-width:1440px;margin:0 auto}
.rule{height:1px;background:var(--line);margin:0 var(--gut)}

/* buttons ---------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 30px;border-radius:100px;
  border:1px solid var(--brass);color:var(--brass);font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;overflow:hidden;position:relative;transition:color .45s var(--ease)}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;background:var(--brass);
  transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.btn:hover{color:var(--ink)}
.btn:hover::before{transform:scaleX(1)}
.btn.solid{background:var(--brass);color:var(--ink)}
.btn.solid::before{background:var(--cream)}
.btn.ghost{border-color:rgba(243,235,221,.28);color:var(--cream)}
.btn.ghost::before{background:var(--cream)}
.btn.ghost:hover{color:var(--ink)}

/* hero ------------------------------------------------------------------- */
.hero{min-height:100svh;display:grid;align-items:end;position:relative;overflow:hidden;
  padding-top:clamp(120px,17vh,190px);padding-bottom:clamp(44px,7vw,88px)}
.hero-bg{position:absolute;inset:-8% 0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.05) brightness(.58)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(8,15,17,.86) 0%,rgba(8,15,17,.42) 34%,rgba(8,15,17,.9) 76%,rgba(8,15,17,.99) 100%)}
.hero .wrap{width:100%}
.mask{overflow:hidden;display:block;padding-bottom:.18em;margin-bottom:-.18em}
.mask>span{display:block;padding-bottom:.02em}
.hero-meta{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,62px);margin-top:38px;
  padding-top:26px;border-top:1px solid var(--line)}
.hero-meta div{min-width:130px}
.hero-meta dt{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--brass);margin-bottom:7px}
.hero-meta dd{margin:0;font-size:14px;color:#cfc6b7}
.scrollcue{position:absolute;right:var(--gut);bottom:clamp(44px,7vw,88px);writing-mode:vertical-rl;
  font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--mute);display:flex;
  align-items:center;gap:14px}
.scrollcue::after{content:"";width:1px;height:64px;background:linear-gradient(var(--brass),transparent)}
@media(max-width:760px){.scrollcue{display:none}}

/* marquee ---------------------------------------------------------------- */
.marq{border-block:1px solid var(--line);padding:20px 0;overflow:hidden;white-space:nowrap;
  background:var(--ink-2)}
.marq-track{display:inline-flex;gap:56px;animation:slide 42s linear infinite}
.marq span{font-family:var(--f-display);font-size:clamp(20px,2.4vw,34px);color:#3f5457;
  font-style:italic}
.marq span em{color:var(--brass);font-style:normal;font-size:.6em;vertical-align:middle}
@keyframes slide{to{transform:translateX(-50%)}}

/* editorial split -------------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,110px);align-items:center}
.split.rev>*:first-child{order:2}
@media(max-width:900px){.split{grid-template-columns:1fr}.split.rev>*:first-child{order:0}}
.frame{position:relative;overflow:hidden}
.frame img{width:100%;aspect-ratio:4/5;object-fit:cover}
.frame.wide img{aspect-ratio:16/10}
.frame::after{content:"";position:absolute;inset:14px;border:1px solid rgba(243,235,221,.16);
  pointer-events:none}
.numeral{font-family:var(--f-display);font-size:clamp(60px,9vw,150px);color:transparent;
  -webkit-text-stroke:1px var(--brass-lo);line-height:.8;opacity:.55}

/* pillars ---------------------------------------------------------------- */
.pillars{display:grid;gap:clamp(70px,10vw,150px)}

/* signature rail --------------------------------------------------------- */
.rail-outer{overflow:hidden}
.rail{display:flex;gap:clamp(18px,2.4vw,40px);padding:0 var(--gut);will-change:transform}
.dish{flex:0 0 clamp(260px,26vw,400px);position:relative}
.dish-img{overflow:hidden;position:relative}
.dish-img img{aspect-ratio:3/4;object-fit:cover;width:100%;transition:transform 1.1s var(--ease),filter .8s}
.dish:hover .dish-img img{transform:scale(1.07);filter:brightness(1.06)}
.dish-cat{position:absolute;bottom:14px;left:14px;font-size:9px;letter-spacing:.28em;
  text-transform:uppercase;background:rgba(8,15,17,.78);border:1px solid var(--line);
  padding:6px 11px;color:var(--brass);backdrop-filter:blur(6px)}
.dish h3{margin-top:22px;font-size:clamp(23px,2vw,31px)}
.dish .price{font-family:var(--f-body);font-size:12px;letter-spacing:.2em;color:var(--brass);
  margin-top:8px}
.dish p{font-size:14px;color:var(--mute);margin:10px 0 0;line-height:1.62}

/* location cards --------------------------------------------------------- */
.locs{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line)}
@media(max-width:900px){.locs{grid-template-columns:1fr}}
.loc{background:var(--ink);padding:clamp(30px,4vw,58px);position:relative;overflow:hidden;
  transition:background .6s var(--ease)}
.loc:hover{background:var(--ink-2)}
.loc-img{overflow:hidden;margin:calc(-1 * clamp(30px,4vw,58px)) calc(-1 * clamp(30px,4vw,58px)) clamp(26px,3vw,40px)}
.loc-img img{aspect-ratio:16/10;object-fit:cover;width:100%;filter:brightness(.7) saturate(.9);
  transition:transform 1.3s var(--ease),filter .8s}
.loc:hover .loc-img img{transform:scale(1.06);filter:brightness(.86)}
.loc dl{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin:26px 0 0;font-size:14px}
.loc dt{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass);padding-top:4px}
.loc dd{margin:0;color:#cfc6b7}

/* rating ----------------------------------------------------------------- */
.rating{display:flex;flex-wrap:wrap;align-items:baseline;gap:clamp(18px,4vw,54px);
  border:1px solid var(--line);padding:clamp(26px,3.6vw,48px);background:var(--ink-2)}
.rating .big{font-family:var(--f-display);font-size:clamp(52px,7vw,96px);color:var(--brass);line-height:.9}
.rating .stars{letter-spacing:.28em;color:var(--brass);font-size:14px}

/* menu page -------------------------------------------------------------- */
.menu-rail{position:sticky;top:78px;z-index:60;background:rgba(8,15,17,.9);
  backdrop-filter:blur(14px);border-block:1px solid var(--line);padding:13px var(--gut);
  display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.menu-rail::-webkit-scrollbar{display:none}
.menu-rail a{font-size:10px;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
  padding:9px 15px;border:1px solid transparent;border-radius:100px;color:var(--mute);transition:.3s}
.menu-rail a:hover{color:var(--cream);border-color:var(--line)}
.cat{padding-top:clamp(64px,8vw,120px);scroll-margin-top:150px}
.cat-head{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;
  border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:36px}
.cat-head .kick{font-size:12px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase;margin-top:12px}
.cat-head .cnt{font-size:11px;letter-spacing:.24em;color:var(--brass);text-transform:uppercase}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));
  gap:2px 0;column-gap:clamp(32px,5vw,84px)}
.item{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:19px 0;
  border-bottom:1px dashed rgba(201,169,106,.14);align-items:baseline}
.item h4{font-family:var(--f-display);font-size:22px;font-weight:400;display:flex;align-items:center;gap:10px}
.item .p{font-family:var(--f-body);font-size:14px;letter-spacing:.08em;color:var(--brass);white-space:nowrap}
.item p{grid-column:1/-1;margin:0;font-size:13.5px;color:var(--mute);line-height:1.6;max-width:56ch}
.dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.dot.v{background:#5aa469;box-shadow:0 0 0 1px #5aa469 inset}
.dot.n{background:#b4553f}
.tag{font-family:var(--f-body);font-size:9px;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--line);padding:3px 8px;color:var(--brass);border-radius:100px}
.addons{margin-top:26px;font-size:12.5px;color:var(--mute);letter-spacing:.04em;
  border-left:1px solid var(--brass-lo);padding-left:18px}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:26px}
.chip{background:none;border:1px solid var(--line);color:var(--mute);border-radius:100px;
  padding:9px 18px;font-family:var(--f-body);font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;cursor:pointer;transition:.3s}
.chip[aria-pressed=true]{background:var(--brass);border-color:var(--brass);color:var(--ink)}
body.veg-only .item.nonveg,body.nonveg-only .item.isveg{display:none}

/* gallery ---------------------------------------------------------------- */
.mason{columns:3;column-gap:clamp(10px,1.4vw,20px)}
@media(max-width:1000px){.mason{columns:2}}
@media(max-width:620px){.mason{columns:1}}
.mason figure{break-inside:avoid;margin:0 0 clamp(10px,1.4vw,20px);position:relative;overflow:hidden;cursor:zoom-in}
.mason img{width:100%;transition:transform 1.1s var(--ease),filter .6s;filter:brightness(.88)}
.mason figure:hover img{transform:scale(1.05);filter:brightness(1.02)}
.mason figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 18px 16px;font-size:12px;
  letter-spacing:.05em;color:var(--cream);
  background:linear-gradient(transparent,rgba(8,15,17,.9));opacity:0;transform:translateY(8px);
  transition:.45s var(--ease)}
.mason figure:hover figcaption{opacity:1;transform:none}
.lb{position:fixed;inset:0;z-index:9995;background:rgba(6,11,12,.96);display:none;
  place-items:center;padding:5vw;cursor:zoom-out;backdrop-filter:blur(8px)}
.lb.on{display:grid}
.lb img{max-height:88vh;width:auto;border:1px solid var(--line)}
.lb p{position:absolute;bottom:3vw;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}

/* faq -------------------------------------------------------------------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:28px 0;display:flex;justify-content:space-between;
  gap:24px;font-family:var(--f-display);font-size:clamp(20px,2.1vw,28px);transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--brass)}
.faq summary::after{content:"+";color:var(--brass);font-family:var(--f-body);font-weight:300;
  transition:transform .4s var(--ease);flex:0 0 auto}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin:0 0 28px;max-width:74ch;color:var(--mute)}

/* facts / facilities ----------------------------------------------------- */
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line)}
.facts div{background:var(--ink);padding:16px 18px;font-size:13px;display:flex;gap:11px;align-items:center}
.facts .yes{color:var(--brass)}
.facts .no{color:#5c6b6d;text-decoration:line-through;text-decoration-color:rgba(255,255,255,.2)}

/* events ----------------------------------------------------------------- */
.evgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--line)}
.evgrid article{background:var(--ink);padding:clamp(28px,3.4vw,48px);transition:background .5s}
.evgrid article:hover{background:var(--ink-2)}
.evgrid h3{font-size:clamp(22px,2vw,30px);margin-bottom:14px}
.evgrid p{color:var(--mute);font-size:14px;margin:0}

/* footer ----------------------------------------------------------------- */
footer{border-top:1px solid var(--line);padding:clamp(60px,7vw,100px) var(--gut) 34px;background:var(--ink-2)}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:clamp(26px,4vw,60px)}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}
footer h4{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--brass);
  font-family:var(--f-body);font-weight:400;margin-bottom:18px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:13.5px;color:var(--mute)}
footer a:hover{color:var(--cream)}
.fbot{margin-top:clamp(44px,6vw,80px);padding-top:24px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:11px;
  letter-spacing:.14em;color:#5c6b6d;text-transform:uppercase}
.fmark{font-family:var(--f-display);font-size:clamp(58px,13vw,190px);line-height:.8;
  color:transparent;-webkit-text-stroke:1px rgba(201,169,106,.2);margin-top:clamp(40px,6vw,72px);
  text-align:center;letter-spacing:-.03em;user-select:none}

/* mobile ------------------------------------------------------------------ */
@media(max-width:760px){
  .items{grid-template-columns:1fr;column-gap:0}
  .item{grid-template-columns:1fr auto}
  .cat-head{grid-template-columns:1fr;align-items:start}
  .cat-head .cnt{order:-1}
  .menu-rail{top:64px;padding-block:10px}
  .cat{scroll-margin-top:124px}
  .hero{padding-top:104px;padding-bottom:44px}
  .hero-meta{gap:18px 26px}
  .hero-meta div{min-width:44%}
  .rating{flex-direction:column;align-items:flex-start;gap:20px}
  .locs .loc{padding:24px}
  .loc-img{margin:-24px -24px 24px}
  .facts{grid-template-columns:1fr}
  .rail{gap:14px}
  .dish{flex:0 0 76vw}
  .btn{padding:13px 22px;font-size:10px;letter-spacing:.18em}
  .fmark{-webkit-text-stroke-width:.6px}
  .display{font-size:clamp(38px,11vw,60px)}
  .h2{font-size:clamp(28px,8.4vw,44px)}
}
@media(max-width:400px){
  .brand small{letter-spacing:.3em}
  .btn{width:100%;justify-content:center}
}

/* reveal ----------------------------------------------------------------- */
html.anim .rv{opacity:0;transform:translateY(34px)}
html.anim .rv-mask>span{transform:translateY(105%)}
