/* ============ Tokens ============ */
:root{
  --bg: #060504;
  --bg-alt: #060504;
  --bg-card: #060504;
  --gold: #b8944f;
  --gold-light: #d8ba72;
  --emerald: #214d3f;
  --cream: #f3ead9;
  --cream-dim: #cfc3ac;
  --wood: #8a5a35;
  --line: rgba(243,234,217,0.12);
  --container: 1600px;
  --container-wide: 2100px;
  --page-gutter: clamp(22px, 3.6vw, 68px);
  --font-head: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-curtain: cubic-bezier(.65,0,.14,1);
  --ease-premium: cubic-bezier(.22,1,.36,1);
  --duration-fast: 220ms;
  --duration-medium: 600ms;
  --duration-slow: 1000ms;
  --space-section: clamp(6rem,10vw,9.5rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--cream);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.65;
  overflow-x:hidden;
  position:relative;
}
/* film-grain texture, ties the whole site to the hero's cinematic footage */
body::before{
  content:"";
  position:fixed; inset:0; z-index:9000; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:140px 140px;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:9850;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:var(--bg);
  transition:opacity 220ms var(--ease-premium),visibility 0s linear 220ms;
}
html.is-language-switching body::after{
  visibility:visible;
  opacity:.96;
  pointer-events:auto;
  transition-delay:0s;
}
img{ max-width:100%; display:block; }
.skip-link{
  position:fixed;
  top:max(12px,calc(env(safe-area-inset-top) + 8px));
  left:max(12px,calc(env(safe-area-inset-left) + 12px));
  z-index:10000;
  padding:12px 18px;
  background:var(--cream);
  color:var(--bg);
  font-weight:700;
  transform:translateY(calc(-100% - env(safe-area-inset-top) - 24px));
  visibility:hidden;
  transition:transform var(--duration-fast),visibility 0s var(--duration-fast);
}
.skip-link:focus-visible{
  transform:translateY(0);
  visibility:visible;
  transition-delay:0s;
}
.anchor-target{ position:absolute; top:0; }
:focus-visible{ outline:2px solid var(--gold-light); outline-offset:4px; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ font-family:var(--font-head); font-weight:600; margin:0; color:var(--cream); }
p{ margin:0; }
ul{ list-style:none; margin:0; padding:0; }

.section-inner{ max-width:var(--container); width:100%; margin:0 auto; padding-inline:var(--page-gutter); }
.section-inner--wide{ max-width:var(--container-wide); }

/* ============ Kicker (section marker) ============ */
.kicker{ display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.kicker-num{ font-family:var(--font-head); font-style:italic; font-size:.85rem; color:var(--gold); }
.kicker-line{ width:44px; height:1px; background:linear-gradient(90deg, var(--gold), transparent); }
.kicker-text{ font-size:.76rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-light); font-weight:600; }
.kicker-center{ justify-content:center; }
.kicker-center .kicker-line{ background:var(--gold); width:28px; }

.eyebrow{
  display:block; font-family:var(--font-body); font-size:.78rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--gold); margin-bottom:14px; font-weight:600;
}
.eyebrow-light{ color:var(--gold-light); }
.eyebrow-center{ text-align:center; }
.hero-copy .eyebrow{ text-shadow:0 2px 14px rgba(0,0,0,.85), 0 1px 3px rgba(0,0,0,.9); }

.section-title{ font-size:clamp(2rem,4vw,3rem); margin-bottom:44px; }
#gallery .section-title, #testimonials .section-title{ text-align:center; }

.body-text{ color:var(--cream-dim); font-size:1.02rem; margin-bottom:18px; max-width:56ch; }

/* ============ Buttons ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 34px; font-family:var(--font-body); font-size:.85rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; border-radius:2px; cursor:pointer;
  border:1px solid transparent; transition:transform .35s var(--ease), background .35s, color .35s, border-color .35s;
}
.btn-gold{ background:var(--gold); color:#1b1610; }
.btn-gold:hover{ background:var(--gold-light); transform:translateY(-2px); }
.btn-outline{ border-color:var(--gold); color:var(--gold-light); background:transparent; }
.btn-outline:hover{ background:var(--gold); color:#1b1610; transform:translateY(-2px); }
.btn-block{ width:100%; }
.btn-sm{ padding:11px 22px; font-size:.72rem; }

/* ============ Preloader ============ */
.preloader{
  position:fixed; inset:0; z-index:9999; background:var(--bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  transition:opacity .8s var(--ease), visibility .8s var(--ease);
}
.preloader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.preloader-logo{ position:relative; width:132px; aspect-ratio:206/255; }
.preloader-logo-base,
.preloader-logo-fill{
  position:absolute; inset:0;
  -webkit-mask-image:url("../assets/logo-mark.png"); mask-image:url("../assets/logo-mark.png");
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
.preloader-logo-base{ background:rgba(243,234,217,0.14); }
.preloader-logo-fill{
  background:linear-gradient(200deg, var(--gold-light), var(--gold) 65%, #a87f34);
  clip-path:inset(100% 0 0 0);
  transition:clip-path .35s var(--ease);
  filter:drop-shadow(0 0 14px rgba(201,162,77,.35));
}
.preloader-label{ font-size:.72rem; letter-spacing:.42em; color:var(--cream-dim); text-transform:uppercase; }
.preloader-percent{ font-family:var(--font-head); font-style:italic; font-size:.95rem; color:var(--gold); letter-spacing:.05em; }

/* ============ Nav (floating pill) ============ */
.site-nav{
  position:fixed; top:22px; left:0; right:0; z-index:500; padding:0 24px;
  transition:top .4s var(--ease);
}
.site-nav.is-scrolled{ top:14px; }
.nav-inner{
  position:relative; max-width:1220px; margin:0 auto; padding:15px 30px;
  display:flex; align-items:center; gap:32px;
  background:rgba(6,5,4,.55); border:1px solid rgba(243,234,217,.14);
  border-radius:999px; backdrop-filter:blur(14px);
  box-shadow:0 20px 50px rgba(0,0,0,.28);
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.site-nav.is-scrolled .nav-inner{ background:rgba(4,3,2,.86); padding:11px 26px; box-shadow:0 20px 50px rgba(0,0,0,.4); }
.nav-logo{ display:flex; align-items:center; gap:12px; margin-right:auto; }
.nav-logo-mark{ height:64px; width:auto; filter:drop-shadow(0 2px 6px rgba(0,0,0,.4)); transition:transform .4s var(--ease); }
.nav-logo:hover .nav-logo-mark{ transform:rotate(-4deg) scale(1.05); }
.nav-logo-text{ font-family:var(--font-head); letter-spacing:.14em; font-size:1rem; text-transform:uppercase; }
.nav-links{ display:flex; gap:32px; }
.nav-links a{ font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-dim); transition:color .3s; position:relative; padding-bottom:4px; }
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--gold-light);
  transition:right .35s var(--ease);
}
.nav-links a:hover{ color:var(--gold-light); }
.nav-links a:hover::after{ right:0; }
.nav-cta{
  border:1px solid var(--gold); color:var(--gold-light); padding:10px 22px; font-size:.78rem;
  letter-spacing:.1em; text-transform:uppercase; border-radius:2px; transition:background .3s, color .3s;
}
.nav-cta:hover{ background:var(--gold); color:#1b1610; }
.nav-language{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  min-height:38px;
  color:var(--cream-dim);
  border:1px solid rgba(232,200,119,.2);
  border-radius:50%;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
  transition:color var(--duration-fast),border-color var(--duration-fast),background var(--duration-fast);
}
.nav-language:hover{ color:var(--gold-light); border-color:rgba(232,200,119,.48); background:rgba(201,162,77,.08); }
.nav-burger{ display:none; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:44px; height:44px; background:none; border:0; cursor:pointer; padding:8px; }
.nav-burger span{ width:22px; height:1px; background:var(--cream); display:block; }

/* ============ Hero ============ */
.hero-pin{
  position:relative;
  height:calc(var(--frame-count) * 12px);
  min-height:650vh;
}
.hero-sticky{
  position:sticky; top:0; height:100vh; height:100svh; height:100dvh; width:100%; overflow:hidden;
  background:#050403;
}
.hero-canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero-vignette{
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(10,8,7,.6) 0%, rgba(10,8,7,.08) 22%, rgba(10,8,7,.08) 68%, rgba(10,8,7,.78) 100%),
    radial-gradient(ellipse at center, rgba(0,0,0,.12) 35%, rgba(0,0,0,.55) 100%);
  pointer-events:none;
}
.hero-copy{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:0 24px; opacity:0; transition:opacity .5s ease; pointer-events:none;
}
.hero-copy.is-active{ opacity:1; }
.hero-title{ font-size:clamp(2.6rem,8vw,5.4rem); color:var(--cream); letter-spacing:.05em; text-shadow:0 6px 40px rgba(0,0,0,.5); }
html[lang="bg"] .hero-title{ font-size:clamp(2rem,6.5vw,4.8rem); letter-spacing:.02em; }
html[lang="bg"] .hero-title-sm{ font-size:clamp(2rem,5vw,3.2rem); }
.hero-title-sm{ font-size:clamp(2rem,5vw,3.2rem); margin-bottom:26px; }
.hero-sub{ font-family:var(--font-head); font-style:italic; color:var(--gold-light); font-size:clamp(1rem,2vw,1.3rem); margin-top:10px; letter-spacing:.06em; }
.hero-mid-text{ font-family:var(--font-head); font-size:clamp(1.4rem,3.4vw,2.4rem); color:var(--cream); text-shadow:0 6px 30px rgba(0,0,0,.55); max-width:820px; }
.hero-copy .btn{ pointer-events:auto; }

/* Opening brand reveal: cinematic enough to feel special, quiet enough to stay timeless. */
.hero-stage-intro{ isolation:isolate; }
.hero-stage-intro .eyebrow,
.hero-stage-intro .hero-sub{
  opacity:0;
  filter:blur(4px);
  transform:translateY(12px);
  transition:
    opacity 700ms var(--ease-premium),
    filter 850ms var(--ease-premium),
    transform 900ms var(--ease-premium);
}
.hero-brand-lockup{
  display:grid;
  justify-items:center;
  width:min(94vw,1160px);
}
.hero-title-main{
  overflow:hidden;
  font-size:clamp(2.75rem,min(7.6vw,11svh),6.8rem);
  font-weight:500;
  line-height:.94;
  letter-spacing:.055em;
  white-space:nowrap;
}
html[lang="bg"] .hero-title-main{
  font-size:clamp(2.15rem,min(6.25vw,9.5svh),5.7rem);
  letter-spacing:.025em;
}
.hero-title-mask{
  display:block;
  overflow:hidden;
  padding:.12em .05em .18em;
}
.hero-title-text{
  display:block;
  opacity:0;
  filter:blur(9px);
  transform:translate3d(0,112%,0);
  letter-spacing:.15em;
  will-change:transform,opacity,filter;
  transition:
    transform 1100ms var(--ease-premium) 500ms,
    opacity 650ms ease 540ms,
    filter 950ms var(--ease-premium) 520ms,
    letter-spacing 1200ms var(--ease-premium) 500ms;
}
.hero-brand-line{
  position:relative;
  display:block;
  width:clamp(132px,15vw,236px);
  height:1px;
  margin-top:clamp(10px,1.5vh,18px);
  opacity:0;
  transform:scaleX(.08);
  background:linear-gradient(90deg,transparent,var(--gold-light) 22%,var(--gold-light) 78%,transparent);
  transition:transform 950ms var(--ease-premium) 960ms,opacity 500ms ease 960ms;
}
.hero-brand-line::after{
  content:"";
  position:absolute;
  top:50%; left:50%;
  width:4px; height:4px;
  border:1px solid var(--gold-light);
  background:#110e0a;
  transform:translate(-50%,-50%) rotate(45deg);
}
.hero-stage-intro .hero-sub{
  margin-top:clamp(14px,2.1vh,24px);
  transition-delay:1040ms;
}
.hero-stage-intro .eyebrow{ transition-delay:360ms; }
.hero-stage-intro.is-active .eyebrow,
.hero-stage-intro.is-active .hero-sub,
.hero-stage-intro.is-active .hero-title-text,
.hero-stage-intro.is-active .hero-brand-line{
  opacity:1;
  filter:blur(0);
  transform:none;
}
.hero-stage-intro.is-active .hero-title-text{ letter-spacing:.055em; }
html[lang="bg"] .hero-stage-intro.is-active .hero-title-text{ letter-spacing:.025em; }

@media (max-width:520px){
  .hero-title-main{
    font-size:clamp(2.1rem,11vw,3.2rem);
    letter-spacing:.04em;
  }
  .hero-stage-intro.is-active .hero-title-text{ letter-spacing:.04em; }
  html[lang="bg"] .hero-title-main{
    font-size:clamp(1.8rem,9vw,2.75rem);
    letter-spacing:.018em;
  }
  html[lang="bg"] .hero-stage-intro.is-active .hero-title-text{ letter-spacing:.018em; }
  .hero-brand-line{ width:clamp(116px,36vw,160px); }
}

@media (prefers-reduced-motion:reduce){
  .hero-stage-intro .eyebrow,
  .hero-stage-intro .hero-sub,
  .hero-stage-intro .hero-title-text,
  .hero-stage-intro .hero-brand-line{ transition:none !important; }
}

.scroll-cue{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--cream-dim); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  transition:opacity .4s ease;
}
.scroll-cue i{ width:1px; height:34px; background:linear-gradient(to bottom, var(--gold), transparent); position:relative; overflow:hidden; }
.scroll-cue i::after{
  content:""; position:absolute; left:0; top:-34px; width:100%; height:34px; background:var(--gold-light);
  animation:cue 1.8s ease-in-out infinite;
}
@keyframes cue{ to{ top:34px; } }
.scroll-cue.is-hidden{ opacity:0; }

/* ============ Marquee transition strip ============ */
.marquee{
  position:relative; overflow:hidden; background:var(--bg-alt);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:20px 0;
}
.marquee-track{
  display:flex; align-items:center; width:max-content; gap:0;
  animation:marquee 34s linear infinite;
}
.marquee-track span{
  font-family:var(--font-head); font-style:italic; font-size:1.05rem;
  color:var(--cream-dim); letter-spacing:.03em; padding:0 28px; white-space:nowrap;
}
.marquee-track .dot{ color:var(--gold); font-style:normal; padding:0; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ============ Chapter divider ============ */
.chapter-divider{
  display:flex; flex-direction:column; align-items:center; gap:24px;
  padding:110px 0; background:var(--bg);
}
.chapter-divider-line{ width:1px; height:78px; background:linear-gradient(to bottom, transparent, var(--line) 45%, var(--line) 55%, transparent); }
.chapter-divider-label{ font-size:.78rem; letter-spacing:.34em; text-transform:uppercase; color:var(--cream-dim); white-space:nowrap; text-align:center; }
.chapter-divider-label strong{ display:block; font-family:var(--font-head); font-style:italic; font-weight:500; letter-spacing:.02em; text-transform:none; color:var(--gold-light); font-size:1.3rem; margin-top:10px; }

/* ============ Side tag (rotated editorial label) ============ */
.side-tag{
  position:absolute; left:38px; top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; align-items:center; gap:18px;
  pointer-events:none; z-index:2;
}
.side-tag i{ width:1px; height:56px; background:var(--line); display:block; }
.side-tag span{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:.7rem; letter-spacing:.32em; text-transform:uppercase; color:var(--cream-dim); white-space:nowrap;
}

/* ============ Reveal on scroll ============ */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* curtain-wipe media reveal, echoes the hero's frame-by-frame unveiling */
.reveal-media{ position:relative; overflow:hidden; clip-path:inset(0 0 0 0); }
.reveal-media img{ transform:scale(1.18); transition:transform 1.4s var(--ease-curtain); will-change:transform; }
.reveal-media::after{
  content:""; position:absolute; inset:0; background:var(--gold); z-index:2;
  transform-origin:right; transform:scaleX(1); transition:transform .9s var(--ease-curtain);
}
.reveal-media.is-visible img{ transform:scale(1); }
.reveal-media.is-visible::after{ transform:scaleX(0); }

/* line-mask text reveal */
.reveal-line{ overflow:hidden; display:block; }
.reveal-line span{ display:block; transform:translateY(112%); transition:transform 1s var(--ease-curtain); }
.reveal-line.is-visible span{ transform:translateY(0); }

/* blur-focus reveal, used on the About/Our Story copy over video */
.blur-in{
  opacity:0; filter:blur(10px); transform:translateY(16px);
  transition:opacity 1.1s var(--ease), filter 1.1s var(--ease), transform 1.1s var(--ease);
}
.blur-in.is-visible{ opacity:1; filter:blur(0); transform:translateY(0); }

/* ============ About (video background) ============ */
.about{
  position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center;
  padding:160px 0; overflow:hidden; background:#000;
}
.about-video-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:32% 50%;
  z-index:0; animation:about-zoom 22s ease-in-out infinite alternate;
}
@keyframes about-zoom{ from{ transform:scale(1); } to{ transform:scale(1.09); } }
.about-video-overlay{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, rgba(6,5,4,.94) 0%, rgba(6,5,4,.86) 26%, rgba(6,5,4,.38) 58%, rgba(6,5,4,.8) 100%);
}
.about-story{ position:relative; z-index:2; max-width:560px; margin-left:auto; }
.story-heading{
  font-size:clamp(2.4rem,4.6vw,3.6rem); line-height:1.12; margin-bottom:28px;
}
.story-line-2 span{ transition-delay:.14s; }
.story-copy-delay{ transition-delay:.18s; }
.about-stats{ display:flex; gap:44px; margin-top:36px; padding-top:30px; border-top:1px solid var(--line); }
.about-stats strong{ display:block; font-family:var(--font-head); font-size:1.9rem; color:var(--gold-light); }
.about-stats span{ font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cream-dim); }

/* ============ Mouse-spotlight reveal ============ */
.reveal-spot{
  position:relative; min-height:88vh; overflow:hidden; background:#040302;
  display:flex; align-items:flex-end; justify-content:center;
}
.reveal-spot-media{
  position:absolute; inset:0; background-size:cover; background-position:center;
}
.reveal-spot-overlay{
  position:absolute; inset:0; background:#040302; pointer-events:none;
  -webkit-mask-image:radial-gradient(circle 200px at var(--mx,50%) var(--my,42%), transparent 0%, transparent 62%, black 100%);
  mask-image:radial-gradient(circle 200px at var(--mx,50%) var(--my,42%), transparent 0%, transparent 62%, black 100%);
}
.reveal-spot-content{
  position:relative; z-index:2; text-align:center; max-width:720px;
  padding:0 32px 14vh; pointer-events:none;
}
.reveal-spot-content h2{ font-size:clamp(1.9rem,4vw,2.8rem); margin-bottom:20px; text-shadow:0 8px 30px rgba(0,0,0,.6); }
.reveal-spot-content .body-text{ text-align:center; }
.reveal-spot-content .btn{ margin-top:30px; }
.script-text{
  font-family:'Alex Brush', cursive; font-weight:400; letter-spacing:.02em;
  font-size:clamp(3.2rem,8vw,6rem); color:var(--gold-light); line-height:1;
  text-shadow:0 0 30px rgba(201,162,77,.35), 0 8px 30px rgba(0,0,0,.6);
}

/* ============ Menu teaser / Events header ============ */
.menu-head{ display:grid; grid-template-columns:1fr auto; align-items:end; gap:40px; margin-bottom:64px; }
.menu-head .section-title{ margin-bottom:0; text-align:left; }

/* ============ Upcoming Events ============ */
.events{ padding:150px 0; background:var(--bg-alt); }
.events-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.event-card-media{ position:relative; overflow:hidden; aspect-ratio:4/5; margin-bottom:26px; }
.event-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.event-card:hover .event-card-media img{ transform:scale(1.06); }
.event-date{ display:block; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-light); margin-bottom:10px; }
.event-card-body h3{ font-size:1.3rem; margin-bottom:10px; }
.event-card-body p{ color:var(--cream-dim); font-size:.92rem; margin-bottom:20px; }

.spin-badge{
  position:absolute; top:16px; right:16px; width:88px; height:88px; color:var(--cream);
}
.spin-badge svg{ width:100%; height:100%; animation:spin-badge 11s linear infinite; }
.spin-badge-icon{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; color:var(--gold-light);
}
@keyframes spin-badge{ to{ transform:rotate(360deg); } }

/* ============ Gallery ============ */
.gallery{ padding:150px 0; background:var(--bg); }
.gallery-head{ margin-bottom:56px; }
.gallery-sub-head{ display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin:80px 0 28px; }
.gallery-sub-head:first-of-type{ margin-top:0; }
.gallery-sub-head h3{ font-size:1.5rem; }
.gallery-sub-head span{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cream-dim); }

.cuisine-grid{ columns:3; column-gap:6px; }
.cuisine-item{ position:relative; overflow:hidden; margin:0 0 6px; display:block; break-inside:avoid; }
.cuisine-item img{ width:100%; height:auto; display:block; transition:transform 1.1s var(--ease); }
.cuisine-caption{
  position:absolute; left:0; right:0; bottom:0; padding:22px 22px 16px;
  background:linear-gradient(to top, rgba(8,6,5,.88), transparent);
  opacity:0; transform:translateY(10px); transition:opacity .4s ease, transform .4s ease;
}
.cuisine-item:hover img{ transform:scale(1.06); }
.cuisine-item:hover .cuisine-caption{ opacity:1; transform:translateY(0); }
.cuisine-caption strong{ display:block; font-family:var(--font-head); font-style:italic; font-size:1.05rem; color:var(--cream); }
.cuisine-caption span{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-light); }

.experience-grid{ display:grid; grid-template-columns:1fr 1.6fr; gap:6px; }
.experience-item{ position:relative; overflow:hidden; aspect-ratio:4/5; margin:0; }
.experience-item:last-child{ aspect-ratio:auto; }
.experience-item img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.experience-item:hover img{ transform:scale(1.05); }
.experience-caption{
  position:absolute; left:22px; bottom:20px; right:22px;
}
.experience-caption strong{ display:block; font-family:var(--font-head); font-style:italic; font-size:1.3rem; text-shadow:0 4px 18px rgba(0,0,0,.6); }
.experience-caption span{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light); text-shadow:0 2px 8px rgba(0,0,0,.6); }

/* ============ Testimonials ============ */
.testimonials{ padding:150px 0; background:var(--bg-alt); position:relative; overflow:hidden; }
.testimonial-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:44px; }
.testimonial{ margin:0; padding:36px 30px; background:var(--bg-card); border-top:2px solid var(--gold); position:relative; }
.testimonial:nth-child(2){ transform:translateY(-24px); }
.testimonial-mark{ font-family:var(--font-head); font-style:italic; font-size:3rem; color:var(--gold); line-height:1; display:block; margin-bottom:10px; }
.testimonial p{ font-family:var(--font-head); font-style:italic; font-size:1.08rem; color:var(--cream); margin-bottom:18px; }
.testimonial cite{ font-style:normal; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cream-dim); }

/* ============ Reserve ============ */
.reserve{ padding:150px 0; background:linear-gradient(180deg, var(--bg) 0%, #0d0906 100%); }
.reserve-grid{ display:grid; grid-template-columns:.9fr 1fr; gap:100px; }
.reserve h2{ font-size:clamp(2rem,4vw,2.6rem); margin-bottom:20px; }
.reserve-info{ margin-top:30px; display:flex; flex-direction:column; gap:16px; }
.reserve-info li{ display:flex; flex-direction:column; gap:2px; border-bottom:1px solid var(--line); padding-bottom:14px; }
.reserve-info strong{ font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
.reserve-info span{ color:var(--cream-dim); }

.reserve-form{ background:var(--bg-card); padding:44px; border:1px solid var(--line); border-radius:2px; display:flex; flex-direction:column; gap:18px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.reserve-form label{ display:flex; flex-direction:column; gap:8px; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-dim); }
.reserve-form input, .reserve-form textarea, .reserve-form select{
  background:var(--bg-alt); border:1px solid var(--line); color:var(--cream); padding:12px 14px;
  font-family:var(--font-body); font-size:.95rem; border-radius:2px; resize:vertical;
}
.reserve-form input:focus, .reserve-form textarea:focus, .reserve-form select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,162,77,.12); }
.reserve-form select{ min-height:48px; color-scheme:dark; }
.reserve-form [aria-invalid="true"]{ border-color:#c67667; }
.field-error{ color:#e1a397; font-size:.78rem; letter-spacing:0; text-transform:none; }
.form-note{ font-size:.85rem; color:var(--gold-light); min-height:1.2em; }

/* ============ Footer ============ */
.site-footer{ background:#050403; padding:90px 0 26px; position:relative; overflow:hidden; }
.footer-watermark{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-46%); height:520px; width:auto;
  opacity:.035; pointer-events:none;
}
.footer-grid{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line); position:relative; }
.footer-brand{ display:flex; flex-direction:column; gap:14px; max-width:280px; }
.footer-brand-mark{ display:flex; align-items:center; gap:12px; }
.footer-logo-mark{ height:66px; width:auto; }
.footer-brand-mark span{ font-family:var(--font-head); letter-spacing:.14em; font-size:1.15rem; text-transform:uppercase; }
.footer-brand p{ color:var(--cream-dim); font-size:.88rem; }
.footer-links{ display:flex; gap:28px; flex-wrap:wrap; }
.footer-links a, .footer-social a{ font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; color:var(--cream-dim); transition:color .3s; }
.footer-links a:hover, .footer-social a:hover{ color:var(--gold-light); }
.footer-social{ display:flex; gap:22px; }
.footer-copy{ text-align:center; color:var(--cream-dim); font-size:.78rem; margin-top:28px; letter-spacing:.03em; position:relative; }

/* ============ Menu page ============ */
.page-hero{
  position:relative; padding:200px 0 90px; overflow:hidden; background:var(--bg);
  border-bottom:1px solid var(--line);
}
.page-hero-media{ position:absolute; inset:0; }
.page-hero-media img{ width:100%; height:100%; object-fit:cover; opacity:.32; }
.page-hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,5,4,.55) 0%, var(--bg) 92%);
}
.page-hero-content{ position:relative; text-align:center; }
.page-hero-content .section-title{ margin-bottom:18px; }
.page-hero-content .body-text{ margin:0 auto; text-align:center; }

.menu-page{ padding:110px 0 160px; background:var(--bg); }
.menu-category{ margin-bottom:96px; }
.menu-category:last-child{ margin-bottom:0; }
.menu-category-head{ display:flex; align-items:baseline; gap:20px; margin-bottom:40px; }
.menu-category-head h2{ font-size:clamp(1.6rem,3vw,2.1rem); white-space:nowrap; }
.menu-category-head .rule{ flex:1; height:1px; background:var(--line); }
.menu-items{ display:grid; grid-template-columns:1fr 1fr; gap:36px 64px; }
.menu-item{ display:flex; justify-content:space-between; gap:16px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.menu-item-name{ display:flex; flex-direction:column; gap:6px; }
.menu-item-name strong{ font-family:var(--font-head); font-size:1.12rem; font-weight:600; }
.menu-item-name span{ color:var(--cream-dim); font-size:.88rem; max-width:38ch; }
.menu-item-price{ font-family:var(--font-head); font-style:italic; color:var(--gold-light); white-space:nowrap; padding-top:2px; }
.menu-note{ margin-top:60px; text-align:center; color:var(--cream-dim); font-size:.88rem; }

/* ============ Responsive ============ */
@media (max-width:1180px){
  .side-tag{ display:none; }
  .reserve-grid{ grid-template-columns:1fr; gap:50px; }
  .about-story{ max-width:none; text-align:left; }
  .cuisine-grid{ columns:2; }
  .experience-grid{ grid-template-columns:1fr; }
  .experience-item{ aspect-ratio:16/10; }
  .menu-items{ grid-template-columns:1fr; }
}
@media (max-width:980px){
  .section-inner{ padding:0 32px; }
  .nav-inner{ padding:13px 22px; gap:10px; }
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .nav-language{ margin-left:0; flex:0 0 auto; }
  .nav-burger{ display:flex; }
  .nav-links.is-open{
    display:flex; flex-direction:column; gap:0; position:absolute; top:calc(100% + 12px); left:0; right:0;
    background:rgba(4,3,2,0.97); backdrop-filter:blur(14px); padding:8px 28px 18px;
    border:1px solid rgba(243,234,217,.14); border-radius:22px;
  }
  .nav-links.is-open a{ padding:14px 0; border-bottom:1px solid var(--line); }
  .nav-links.is-open a:last-child{ border-bottom:none; }
  .events-grid{ grid-template-columns:repeat(2,1fr); }
  .menu-head{ grid-template-columns:1fr; gap:20px; }
  .testimonial-grid{ grid-template-columns:1fr; gap:30px; }
  .testimonial:nth-child(2){ transform:none; }
  .reveal-spot{ min-height:70vh; }
}
@media (max-width:560px){
  .section-inner{ padding:0 22px; }
  .about, .events, .gallery, .testimonials, .reserve{ padding:100px 0; }
  .events-grid{ grid-template-columns:1fr; }
  .cuisine-grid{ columns:1; }
  .form-row{ grid-template-columns:1fr; }
  .reserve-form{ padding:26px; }
  .hero-pin{ min-height:520vh; }
  .page-hero{ padding:160px 0 70px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal, .reveal-media img, .reveal-media::after, .reveal-line span{ opacity:1; transform:none; transition:none; }
  .hero-copy{ transition:none; }
  .marquee-track{ animation:none; }
  .spin-badge svg, .scroll-cue i::after, .about-video-bg{ animation:none; }
  .reveal-spot-overlay{ -webkit-mask-image:none; mask-image:none; background:rgba(4,3,2,.5); }
}

/* Final editorial polish */
.site-nav{ top:0; padding:0 28px; transition:background var(--duration-fast),border-color var(--duration-fast); }
.site-nav.is-scrolled{ top:0; background:rgba(6,5,4,.9); border-bottom:1px solid rgba(201,162,77,.14); backdrop-filter:blur(14px); }
.nav-inner{ max-width:1400px; padding:16px 0; background:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; }
.site-nav.is-scrolled .nav-inner{ padding:10px 0; background:none; box-shadow:none; }
.nav-logo-mark{ height:54px; }
.hero-pin{ min-height:480vh; }
.about{ min-height:100svh; padding:var(--space-section) 0; background:var(--bg); }
.about-video-bg{ animation:none; object-position:28% 50%; }
.about-video-overlay{ background:linear-gradient(90deg,rgba(6,5,4,.18),rgba(6,5,4,.38) 38%,rgba(6,5,4,.9) 66%,rgba(6,5,4,.98)),linear-gradient(180deg,var(--bg),transparent 14%,transparent 84%,var(--bg)); }
.about-story{ max-width:590px; padding:clamp(1rem,3vw,2.5rem) 0; }
.gallery,.events,.testimonials,.reserve{ padding:var(--space-section) 0; }
.events{ background:linear-gradient(180deg,var(--bg),var(--bg-alt) 12%,var(--bg-alt) 88%,var(--bg)); }
.testimonial{ background:linear-gradient(145deg,var(--bg-card),rgba(11,9,8,.7)); border:1px solid rgba(201,162,77,.14); border-top-color:rgba(201,162,77,.45); }

@media (max-width:980px){
  .nav-links.is-open{ top:100%; left:-28px; right:-28px; padding:20px 28px 28px; border-radius:0; border-width:0 0 1px; border-color:rgba(201,162,77,.18); }
  .about-video-bg{ object-position:32% 50%; }
  .about-video-overlay{ background:linear-gradient(90deg,rgba(6,5,4,.32),rgba(6,5,4,.74) 50%,rgba(6,5,4,.94)); }
}
@media (max-width:560px){ .hero-pin{ min-height:360vh; } }
@media (hover:none){
  .cuisine-caption{ opacity:1; transform:none; }
  .reveal-spot-overlay{ -webkit-mask-image:none; mask-image:none; background:rgba(4,3,2,.48); }
}

/* ============ Premium lower-page experience ============ */
.site-nav,
.site-nav.is-scrolled{ top:18px; padding:0 24px; background:none; border:0; backdrop-filter:none; }
.nav-inner,
.site-nav.is-scrolled .nav-inner{
  max-width:1240px;
  padding:10px 18px;
  background:rgba(6,5,4,.68);
  border:1px solid rgba(232,200,119,.16);
  border-radius:999px;
  backdrop-filter:blur(18px) saturate(120%);
  box-shadow:0 18px 56px rgba(0,0,0,.26);
}
.site-nav.is-scrolled .nav-inner{
  padding:8px 16px;
  background:rgba(6,5,4,.92);
  border-color:rgba(232,200,119,.2);
  box-shadow:0 18px 56px rgba(0,0,0,.42);
}
.nav-logo-mark{ height:48px; }
.nav-links{ gap:28px; }
.nav-links a[aria-current="page"],
.nav-links a[aria-current="location"]{ color:var(--gold-light); }
.nav-links a[aria-current="page"]::after,
.nav-links a[aria-current="location"]::after{ right:0; }
.nav-cta{ padding:10px 20px; border-radius:999px; }

.gallery{
  position:relative;
  background:
    radial-gradient(circle at 85% 12%,rgba(115,40,33,.1),transparent 25%),
    linear-gradient(180deg,var(--bg),var(--bg-alt) 48%,var(--bg));
}
.gallery::before{
  content:"";
  position:absolute;
  top:0; left:50%; width:1px; height:88px;
  background:linear-gradient(var(--line),transparent);
}
.gallery-head{ max-width:760px; margin:0 auto clamp(4.5rem,8vw,7rem); text-align:center; }
.gallery-head .section-title{ margin-bottom:20px; }
.gallery-intro,
.testimonials-intro{
  max-width:54ch;
  margin:0 auto;
  color:var(--cream-dim);
  font-family:var(--font-head);
  font-size:clamp(1.05rem,1.5vw,1.25rem);
  font-style:italic;
  line-height:1.7;
}
.gallery-sub-head{
  margin:clamp(4rem,8vw,7rem) 0 30px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(232,200,119,.13);
}
.gallery-sub-head:first-of-type{ margin-top:0; }
.gallery-sub-head h3{ font-size:clamp(1.65rem,2.5vw,2.2rem); font-style:italic; font-weight:500; }
.cuisine-grid{
  columns:auto;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:clamp(260px,30vw,430px);
  gap:clamp(10px,.75vw,16px);
}
.cuisine-item{ margin:0; min-height:0; border:1px solid rgba(232,200,119,.1); background:var(--bg-card); }
.cuisine-item:nth-child(1){ grid-column:span 7; grid-row:span 2; }
.cuisine-item:nth-child(2),
.cuisine-item:nth-child(3){ grid-column:span 5; }
.cuisine-item:nth-child(n+4){ grid-column:span 4; }
.cuisine-item img{ width:100%; height:100%; object-fit:cover; filter:saturate(.82) contrast(1.04) brightness(.88); }
.gallery .reveal-media::after,
.experience-grid .reveal-media::after,
.events .reveal-media::after{ display:none; }
.gallery .reveal-media img,
.experience-grid .reveal-media img,
.events .reveal-media img{ transform:scale(1.025); }
.gallery .reveal-media.is-visible img,
.experience-grid .reveal-media.is-visible img,
.events .reveal-media.is-visible img{ transform:scale(1); }
.cuisine-caption{
  padding:70px 28px 24px;
  opacity:1;
  transform:none;
  background:linear-gradient(to top,rgba(6,5,4,.92),rgba(6,5,4,.1) 80%,transparent);
}
.cuisine-caption strong{ font-size:clamp(1rem,1.5vw,1.3rem); }
.cuisine-caption span{ margin-top:5px; display:block; color:rgba(232,200,119,.82); }
.experience-grid{ grid-template-columns:1fr 1fr; gap:clamp(10px,.75vw,16px); }
.experience-item,
.experience-item:last-child{ aspect-ratio:4/3; border:1px solid rgba(232,200,119,.1); }
.experience-item img{ filter:saturate(.8) contrast(1.05) brightness(.82); }
.experience-item::before{
  content:"";
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top,rgba(6,5,4,.88),transparent 58%);
  pointer-events:none;
}
.experience-caption{ z-index:2; left:28px; bottom:26px; }

.reveal-spot{
  min-height:92vh;
  align-items:flex-end;
  justify-content:flex-start;
  border-top:0;
  border-bottom:0;
}
.reveal-spot::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-1px;
  z-index:1;
  height:clamp(140px,16vw,250px);
  background:linear-gradient(to bottom,var(--bg) 0%,rgba(6,5,4,.38) 52%,transparent 100%);
  pointer-events:none;
}
.reveal-spot::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  z-index:1;
  height:clamp(140px,16vw,250px);
  background:linear-gradient(to bottom,transparent 0%,rgba(6,5,4,.38) 48%,var(--bg) 100%);
  pointer-events:none;
}
.reveal-spot-media{ background-position:center 42%; filter:saturate(.78) contrast(1.06) brightness(.74); transform:scale(1.015); }
.reveal-spot-overlay,
.reveal-spot:hover .reveal-spot-overlay{
  background:
    linear-gradient(90deg,rgba(6,5,4,.94),rgba(6,5,4,.55) 52%,rgba(6,5,4,.12)),
    linear-gradient(180deg,rgba(6,5,4,.2),transparent 45%,rgba(6,5,4,.72));
  -webkit-mask-image:none;
  mask-image:none;
}
.reveal-spot-content{
  width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),var(--container));
  max-width:none;
  margin:0 auto;
  padding:0 0 clamp(5rem,10vh,8rem);
  text-align:center;
  pointer-events:auto;
  z-index:2;
}
.reveal-spot-content .eyebrow{ text-align:center; }
.reveal-spot-content h2{ max-width:720px; margin:0 auto 26px; font-size:clamp(3rem,6vw,6rem); }
.reveal-spot-content .body-text{ max-width:52ch; margin:0 auto; text-align:center; font-size:1.05rem; }
.script-text{
  font-family:'Alex Brush',cursive;
  font-style:normal;
  font-weight:400;
  letter-spacing:.01em;
  color:var(--gold-light);
  text-shadow:0 0 28px rgba(201,162,77,.22),0 8px 36px rgba(0,0,0,.65);
}
.reveal-spot-content .btn{ margin-top:34px !important; }

.events{ position:relative; background:linear-gradient(180deg,var(--bg),var(--bg-alt) 22%,var(--bg-alt) 82%,var(--bg)); }
.events .menu-head{ margin-bottom:clamp(3.5rem,7vw,6rem); padding-bottom:28px; border-bottom:1px solid rgba(232,200,119,.13); }
.events .section-title{ font-size:clamp(2.35rem,min(5vw,8svh),4.8rem); letter-spacing:-.025em; }
.text-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:10px 0;
  color:var(--gold-light);
  border-bottom:1px solid rgba(232,200,119,.42);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:color var(--duration-fast),border-color var(--duration-fast);
}
.text-link span{ font-size:1rem; transition:transform var(--duration-fast) var(--ease-premium); }
.text-link:hover{ color:var(--cream); border-color:var(--cream); }
.text-link:hover span{ transform:translate(2px,-2px); }
.events-grid{ gap:clamp(18px,1.25vw,28px); }
.event-card{ position:relative; background:transparent; border:1px solid rgba(232,200,119,.12); transition:transform var(--duration-medium) var(--ease-premium),border-color var(--duration-fast); }
.event-card:hover{ transform:translateY(-6px); border-color:rgba(232,200,119,.28); }
.event-card-media{ aspect-ratio:4/3; margin:0; }
.event-card-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(6,5,4,.55),transparent 55%); }
.event-card-media img{ filter:saturate(.76) contrast(1.05) brightness(.82); }
.event-card-body{ position:relative; min-height:285px; padding:30px 30px 32px; }
.event-index{ position:absolute; top:28px; right:28px; color:rgba(232,200,119,.38); font-family:var(--font-head); font-style:italic; }
.event-date{ padding-right:44px; }
.event-card-body h3{ max-width:85%; margin:16px 0 12px; font-size:clamp(1.35rem,2vw,1.7rem); }
.event-card-body p{ min-height:4.8em; }
.event-card .spin-badge{ display:none; }
.event-card .btn{ border:0; border-bottom:1px solid rgba(232,200,119,.35); padding:8px 0; border-radius:0; }
.event-card .btn:hover{ color:var(--cream); background:none; transform:none; border-color:var(--cream); }

.testimonials{
  background:
    radial-gradient(circle at 50% 0,rgba(115,40,33,.12),transparent 35%),
    var(--bg);
}
.testimonials .section-title{ margin-bottom:18px; font-size:clamp(2.8rem,5vw,4.5rem); }
.testimonials-intro{ text-align:center; margin-bottom:clamp(3.5rem,7vw,6rem); }
.testimonial-grid{ counter-reset:quote; gap:12px; }
.testimonial{
  counter-increment:quote;
  min-height:310px;
  padding:44px 36px 38px;
  background:rgba(16,13,11,.54);
  border:1px solid rgba(232,200,119,.11);
  border-top:1px solid rgba(232,200,119,.28);
}
.testimonial::after{
  content:"0" counter(quote);
  position:absolute; top:24px; right:28px;
  color:rgba(232,200,119,.3);
  font-family:var(--font-head);
  font-style:italic;
  font-size:.85rem;
}
.testimonial:nth-child(2){ transform:none; }
.testimonial-mark{ color:rgba(232,200,119,.52); font-size:3.8rem; }
.testimonial p{ font-size:clamp(1.08rem,1.6vw,1.28rem); line-height:1.65; }

.reserve{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 25%,rgba(115,40,33,.16),transparent 30%),
    linear-gradient(135deg,var(--bg-alt),var(--bg));
}
.reserve::before{
  content:"RESERVATIONS";
  position:absolute; left:-.02em; bottom:-.25em;
  color:rgba(243,234,217,.022);
  font-family:var(--font-head);
  font-size:clamp(6rem,15vw,16rem);
  line-height:1;
  letter-spacing:-.04em;
  pointer-events:none;
}
.reserve-grid{ position:relative; grid-template-columns:.8fr 1.1fr; gap:clamp(4rem,9vw,9rem); align-items:start; }
.reserve h2{ font-size:clamp(3rem,5vw,5rem); letter-spacing:-.03em; line-height:1; margin-bottom:30px; }
.reserve-info{ margin-top:42px; }
.reserve-info li{ display:grid; grid-template-columns:100px 1fr; gap:18px; padding:16px 0; }
.reserve-info span{ text-align:right; }
.reserve-assurance{ margin-top:28px; color:var(--cream-dim); font-family:var(--font-head); font-size:.96rem; font-style:italic; }
.reserve-form{ padding:clamp(2rem,4vw,3.5rem); background:rgba(16,13,11,.7); border-color:rgba(232,200,119,.16); box-shadow:0 28px 80px rgba(0,0,0,.24); }
.reserve-form input,
.reserve-form textarea,
.reserve-form select{ background:rgba(6,5,4,.58); border-color:rgba(243,234,217,.16); padding:14px 16px; }
.reserve-form .btn{ margin-top:8px; border-radius:0; }

.site-footer{ padding-top:110px; background:linear-gradient(180deg,#050403,var(--bg)); border-top:1px solid rgba(232,200,119,.1); }
.footer-grid{ padding-bottom:60px; }
.footer-brand-mark span{ font-size:1.35rem; }
.footer-links,.footer-social{ padding-top:18px; }
.footer-copy{ width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),var(--container)); margin:28px auto 0; padding-top:2px; }

@media (min-width:1680px){
  .nav-inner,
  .site-nav.is-scrolled .nav-inner{ max-width:1480px; }
  .gallery-head{ max-width:820px; }
  .events .menu-head{ align-items:center; }
  .event-card-body{ padding:34px 34px 36px; }
  .testimonial{ padding:50px 42px 44px; }
}

@media (max-width:980px){
  .site-nav,.site-nav.is-scrolled{ top:12px; padding:0 14px; }
  .nav-inner,.site-nav.is-scrolled .nav-inner{ padding:8px 12px 8px 16px; }
  .nav-links.is-open{ top:calc(100% + 10px); left:0; right:0; border:1px solid rgba(232,200,119,.16); border-radius:18px; }
  .cuisine-grid{ grid-auto-rows:clamp(240px,45vw,360px); }
  .cuisine-item:nth-child(1){ grid-column:span 12; grid-row:span 2; }
  .cuisine-item:nth-child(n+2){ grid-column:span 6; }
  .events-grid{ grid-template-columns:1fr; max-width:720px; margin:0 auto; }
  .event-card{ display:grid; grid-template-columns:.85fr 1fr; }
  .event-card-media{ height:100%; aspect-ratio:auto; }
  .testimonial-grid{ grid-template-columns:1fr; max-width:760px; margin:0 auto; }
  .testimonial{ min-height:0; }
  .reserve-grid{ grid-template-columns:1fr; gap:4rem; }
}

@media (max-width:620px){
  .nav-logo-text{ font-size:.82rem; letter-spacing:.1em; }
  .nav-logo-mark{ height:42px; }
  .gallery-head{ margin-bottom:4rem; }
  .gallery-sub-head{ display:block; }
  .gallery-sub-head span{ display:block; margin-top:8px; }
  .cuisine-grid{ display:grid; grid-template-columns:1fr; grid-auto-rows:auto; gap:8px; }
  .cuisine-item:nth-child(n){ grid-column:auto; grid-row:auto; aspect-ratio:4/5; }
  .cuisine-item:nth-child(2),.cuisine-item:nth-child(5){ aspect-ratio:4/3; }
  .experience-grid{ grid-template-columns:1fr; }
  .experience-item,.experience-item:last-child{ aspect-ratio:4/3; }
  .reveal-spot{ min-height:78svh; }
  .reveal-spot-media{ background-position:62% center; }
  .reveal-spot-overlay,.reveal-spot:hover .reveal-spot-overlay{ background:linear-gradient(0deg,rgba(6,5,4,.96),rgba(6,5,4,.18) 72%); }
  .reveal-spot-content{ width:calc(100% - 44px); padding-bottom:4rem; }
  .reveal-spot-content h2{ font-size:clamp(2.8rem,14vw,4.3rem); }
  .events .menu-head{ display:block; }
  .events .text-link{ margin-top:28px; }
  .event-card{ display:block; }
  .event-card-media{ aspect-ratio:4/3; }
  .event-card-body{ min-height:0; padding:26px 24px 28px; }
  .event-card-body p{ min-height:0; }
  .reserve h2{ font-size:clamp(2.8rem,14vw,4rem); }
  .reserve-info li{ grid-template-columns:1fr; gap:4px; }
  .reserve-info span{ text-align:left; }
}

/* Unified warm near-black surface system */
body,
.preloader,
.hero-sticky,
.marquee,
.chapter-divider,
.about,
.gallery,
.reveal-spot,
.events,
.testimonials,
.reserve,
.site-footer,
.page-hero,
.menu-page,
.cuisine-item,
.testimonial,
.reserve-form,
.reserve-form input,
.reserve-form textarea,
.reserve-form select{
  background-color:var(--bg);
}
.gallery,
.events,
.testimonials,
.testimonial,
.reserve,
.site-footer{
  background-image:none;
}

/* Seamless reservation-to-footer transition */
.reserve::before{ display:none; }
.reserve{ padding-bottom:clamp(80px,6vw,104px); }
.site-footer{
  padding-top:clamp(64px,5vw,84px);
  border-top:0;
}
.footer-watermark{
  top:54%;
  height:min(32vw,380px);
  opacity:.016;
}
.footer-grid{ padding-bottom:52px; }
.footer-copy{ margin-top:24px; }

@media (max-width:620px){
  .reserve{ padding-bottom:72px; }
  .site-footer{ padding-top:60px; }
  .footer-watermark{ height:280px; opacity:.013; }
}

/* ============ Final luxury refinement ============ */
::selection{ background:rgba(184,148,79,.32); color:var(--cream); }
html{ scroll-padding-top:116px; }
body{
  font-weight:400;
  line-height:1.72;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
section[id]{ scroll-margin-top:116px; }
h1,h2,h3{ text-wrap:balance; }
p{ text-wrap:pretty; }
.section-title{
  line-height:1.04;
  letter-spacing:-.025em;
}
.body-text{ line-height:1.78; }
.eyebrow,.kicker-text{ letter-spacing:.25em; }
.kicker{ margin-bottom:20px; }

.btn{
  min-height:48px;
  padding:14px 30px;
  transition:
    background-color var(--duration-fast) var(--ease-premium),
    color var(--duration-fast) var(--ease-premium),
    border-color var(--duration-fast) var(--ease-premium),
    transform var(--duration-fast) var(--ease-premium);
}
.btn:hover{ transform:translateY(-1px); }
.btn:active{ transform:translateY(0); }
.btn-gold{ background:#bd9955; }
.btn-gold:hover{ background:#d4b66f; }

.nav-inner,
.site-nav.is-scrolled .nav-inner{
  box-shadow:0 18px 48px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.015);
}
.site-nav.is-scrolled .nav-inner{ box-shadow:0 20px 58px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.018); }
.nav-links a{ font-weight:600; letter-spacing:.115em; }
.nav-logo-text{ font-weight:600; }

.reveal{ transform:translateY(20px); transition-duration:760ms; transition-timing-function:var(--ease-premium); }
.blur-in{ filter:blur(6px); transform:translateY(10px); transition-duration:900ms; }
.reveal-line span{ transition-duration:850ms; transition-timing-function:var(--ease-premium); }

.marquee{ padding:17px 0; }
.marquee-track{ animation-duration:42s; }
.marquee-track span{ font-size:1rem; color:rgba(207,195,172,.84); }
.chapter-divider{ padding:clamp(82px,8vw,112px) 0; gap:20px; }
.chapter-divider-line{ height:64px; }

.about-story{ max-width:620px; }
.story-heading{ letter-spacing:-.025em; }
.about-stats{ gap:clamp(28px,3vw,52px); }
.about-stats strong{ letter-spacing:-.025em; }

.gallery-sub-head h3{ letter-spacing:-.015em; }
.gallery .cuisine-item:hover img,
.experience-grid .experience-item:hover img{ transform:scale(1.025); }
.cuisine-item img,
.experience-item img,
.event-card-media img{ transition-duration:900ms; transition-timing-function:var(--ease-premium); }
.experience-item:first-child img{ object-position:center 24%; }
.experience-item:last-child img{ object-position:center 45%; }
.experience-caption strong{ font-size:clamp(1.2rem,1.7vw,1.55rem); }
.experience-caption span{ margin-top:4px; display:block; }

.reveal-spot-content h2{ line-height:.88; }
.reveal-spot-content .body-text{ color:rgba(243,234,217,.78); }

.event-card:hover{ transform:translateY(-3px); }
.event-card-body{ display:flex; flex-direction:column; }
.event-card-body p{ flex:1; }
.event-card .btn{ align-self:flex-start; min-height:40px; }
.event-date{ color:rgba(216,186,114,.9); }

.testimonials .section-inner{ max-width:1500px; }
.testimonial{ transition:border-color var(--duration-fast),transform var(--duration-medium) var(--ease-premium); }
.testimonial:hover{ border-color:rgba(216,186,114,.25); transform:translateY(-3px); }
.testimonial cite{ line-height:1.55; }

.reserve-copy .body-text{ max-width:58ch; }
.reserve-form{ gap:20px; }
.reserve-form label{ font-weight:600; }
.reserve-form input,
.reserve-form textarea,
.reserve-form select{
  transition:border-color var(--duration-fast),box-shadow var(--duration-fast),background-color var(--duration-fast);
}
.reserve-form input:hover,
.reserve-form textarea:hover,
.reserve-form select:hover{ border-color:rgba(216,186,114,.28); }
.reserve-form input::placeholder,
.reserve-form textarea::placeholder{ color:rgba(207,195,172,.52); }
.form-note{ margin-top:-4px; }

.footer-links a,.footer-social a{ position:relative; padding-bottom:5px; }
.footer-links a::after,.footer-social a::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:var(--gold-light);
  transition:right var(--duration-fast) var(--ease-premium);
}
.footer-links a:hover::after,.footer-social a:hover::after{ right:0; }

.menu-page > .section-inner{ counter-reset:menu-section; }
.menu-category{ counter-increment:menu-section; }
.menu-category-head::before{
  content:"0" counter(menu-section);
  flex:0 0 auto;
  color:rgba(216,186,114,.55);
  font-family:var(--font-head);
  font-size:.8rem;
  font-style:italic;
  letter-spacing:.08em;
}
.menu-category-head{ align-items:center; }
.menu-item{
  transition:border-color var(--duration-fast),transform var(--duration-fast) var(--ease-premium);
}
.menu-item:hover{ border-color:rgba(216,186,114,.3); transform:translateX(3px); }
.menu-item-name strong{ line-height:1.35; }
.menu-item-price{ color:var(--gold-light); }

@media (max-width:980px){
  html{ scroll-padding-top:96px; }
  section[id]{ scroll-margin-top:96px; }
  body.menu-open{ overflow:hidden; }
  .nav-links.is-open a{ min-height:48px; display:flex; align-items:center; }
  .event-card:hover,.testimonial:hover{ transform:none; }
}

@media (max-width:560px){
  .section-title{ letter-spacing:-.018em; }
  .menu-category-head{ align-items:flex-start; flex-wrap:wrap; gap:10px 14px; }
  .menu-category-head h2{ white-space:normal; width:calc(100% - 38px); line-height:1.2; }
  .menu-category-head .rule{ flex-basis:100%; }
  .menu-item:hover{ transform:none; }
  .about-stats{ gap:20px; }
  .about-stats span{ line-height:1.45; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .reveal,.blur-in,.reveal-line span,
  .reveal-media img,.gallery .reveal-media img,
  .experience-grid .reveal-media img,.events .reveal-media img{
    opacity:1 !important;
    filter:none !important;
    transform:none !important;
  }
  .event-card:hover,.testimonial:hover,.menu-item:hover,.btn:hover{ transform:none !important; }
}

/* ============ Editorial event showcase ============ */
.event-showcase{
  position:relative;
}
.events-grid[hidden]{ display:none !important; }
.event-stage{
  position:relative;
  height:clamp(460px,min(45vw,68svh),680px);
  overflow:hidden;
  background:#0b0907;
  border:1px solid rgba(216,186,114,.22);
  box-shadow:0 36px 100px rgba(0,0,0,.3);
}
.event-stage::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.025);
  box-shadow:inset 0 0 100px rgba(0,0,0,.2);
}
.event-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 850ms var(--ease-premium),visibility 0s linear 850ms;
}
.event-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition-delay:0s;
  z-index:1;
}
.event-slide > img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 46%;
  filter:saturate(.72) contrast(1.06) brightness(.72);
  transform:scale(1.035);
  transition:transform 1400ms var(--ease-premium),filter 600ms ease;
}
.event-slide:nth-child(2) > img{ object-position:center 52%; }
.event-slide:nth-child(3) > img{ object-position:center 58%; }
.event-slide.is-active > img{ transform:scale(1); }
.event-slide-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(6,5,4,.9) 0%,rgba(6,5,4,.38) 47%,rgba(6,5,4,.08) 76%),
    linear-gradient(180deg,rgba(6,5,4,.12) 20%,rgba(6,5,4,.18) 52%,rgba(6,5,4,.92) 100%);
}
.event-slide-copy{
  position:absolute;
  z-index:2;
  left:clamp(28px,5vw,90px);
  right:clamp(28px,5vw,90px);
  bottom:clamp(34px,6vw,88px);
  max-width:1050px;
}
.event-slide-count{
  display:block;
  margin-bottom:clamp(22px,3vw,42px);
  color:rgba(243,234,217,.62);
  font-family:var(--font-head);
  font-size:.8rem;
  font-style:italic;
  letter-spacing:.18em;
}
.event-slide .event-date{
  margin:0 0 13px;
  padding:0;
  color:var(--gold-light);
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.24em;
}
.event-slide h3{
  max-width:13ch;
  font-size:clamp(2.8rem,min(6.7vw,9svh),7.6rem);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.045em;
  text-shadow:0 12px 48px rgba(0,0,0,.5);
}
.event-slide p{
  max-width:54ch;
  margin-top:22px;
  color:rgba(243,234,217,.78);
  font-size:clamp(.94rem,1.15vw,1.08rem);
  line-height:1.7;
}
.event-slide-actions{
  display:flex;
  align-items:center;
  gap:30px;
  margin-top:30px;
}
.event-book-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid rgba(216,186,114,.46);
  color:var(--cream);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:border-color var(--duration-fast),color var(--duration-fast);
}
.event-book-link:hover{ color:var(--gold-light); border-color:var(--gold-light); }
.event-stage-controls{
  position:absolute;
  right:clamp(24px,3.5vw,62px);
  bottom:clamp(28px,4vw,62px);
  z-index:5;
  display:flex;
  gap:10px;
}
.event-arrow,
.event-modal-close{
  display:grid;
  place-items:center;
  width:50px;
  height:50px;
  padding:0;
  border:1px solid rgba(243,234,217,.28);
  border-radius:50%;
  background:rgba(6,5,4,.54);
  color:var(--cream);
  font:inherit;
  font-size:1.1rem;
  cursor:pointer;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transition:background-color var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast),transform var(--duration-fast) var(--ease-premium);
}
.event-arrow:hover,
.event-modal-close:hover{
  color:var(--gold-light);
  border-color:var(--gold-light);
  background:rgba(6,5,4,.82);
  transform:translateY(-1px);
}
.event-rail{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(10px,1.1vw,18px);
  margin-top:clamp(14px,1.4vw,22px);
}
.event-tab{
  position:relative;
  display:grid;
  grid-template-columns:minmax(110px,42%) 1fr;
  min-width:0;
  min-height:142px;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(243,234,217,.1);
  border-radius:0;
  background:rgba(14,11,9,.62);
  color:var(--cream);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:border-color var(--duration-fast),background-color var(--duration-fast),transform var(--duration-fast) var(--ease-premium);
}
.event-tab::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:0;
  height:2px;
  background:var(--gold-light);
  transition:right 500ms var(--ease-premium);
}
.event-tab:hover{
  border-color:rgba(216,186,114,.3);
  background:rgba(20,16,12,.82);
  transform:translateY(-2px);
}
.event-tab.is-active{
  border-color:rgba(216,186,114,.46);
  background:rgba(24,19,14,.86);
}
.event-tab.is-active::after{ right:0; }
.event-tab-media{ position:relative; min-width:0; overflow:hidden; }
.event-tab-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 58%,rgba(6,5,4,.55));
}
.event-tab-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.62) contrast(1.04) brightness(.72);
  transition:transform 700ms var(--ease-premium),filter 400ms ease;
}
.event-tab:hover img,
.event-tab.is-active img{ transform:scale(1.035); filter:saturate(.82) contrast(1.04) brightness(.84); }
.event-tab-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:20px clamp(16px,1.8vw,28px);
}
.event-tab-copy small{
  margin-bottom:9px;
  color:var(--gold-light);
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.event-tab-copy strong{
  font-family:var(--font-head);
  font-size:clamp(1rem,1.25vw,1.25rem);
  font-weight:500;
  line-height:1.18;
}
.event-tab-copy em{
  margin-top:10px;
  color:rgba(207,195,172,.65);
  font-size:.63rem;
  font-style:normal;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body.modal-open{ overflow:hidden; }
.event-modal[hidden]{ display:none; }
.event-modal{
  position:fixed;
  inset:0;
  z-index:9500;
  display:grid;
  place-items:center;
  padding:clamp(18px,4vw,56px);
  opacity:0;
  transition:opacity 280ms ease;
}
.event-modal.is-open{ opacity:1; }
.event-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,2,2,.86);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.event-modal-dialog{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);
  width:min(1080px,100%);
  max-height:min(800px,calc(100svh - 48px));
  overflow:hidden;
  border:1px solid rgba(216,186,114,.25);
  background:#080706;
  box-shadow:0 42px 140px rgba(0,0,0,.65);
  opacity:0;
  transform:translateY(18px) scale(.985);
  transition:opacity 360ms ease,transform 520ms var(--ease-premium);
}
.event-modal.is-open .event-modal-dialog{ opacity:1; transform:none; }
.event-modal-close{
  position:absolute;
  top:18px;
  right:18px;
  z-index:3;
  width:46px;
  height:46px;
  background:rgba(6,5,4,.76);
  font-size:1.45rem;
}
.event-modal-share{
  position:absolute;
  top:18px;
  right:76px;
  z-index:3;
  display:inline-flex;
  min-height:46px;
  align-items:center;
  gap:9px;
  padding:0 18px;
  border:1px solid rgba(243,234,217,.24);
  border-radius:999px;
  background:rgba(6,5,4,.76);
  color:var(--cream);
  font:inherit;
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  cursor:pointer;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transition:border-color var(--duration-fast),color var(--duration-fast),background-color var(--duration-fast);
}
.event-modal-share svg{
  width:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
}
.event-modal-share:hover,
.event-modal-share[aria-expanded="true"]{
  border-color:var(--gold-light);
  background:rgba(16,13,10,.92);
  color:var(--gold-light);
}
.event-share-panel[hidden]{ display:none !important; }
.event-share-panel{
  position:absolute;
  top:74px;
  right:18px;
  z-index:5;
  width:min(380px,calc(100% - 36px));
  padding:24px;
  border:1px solid rgba(216,186,114,.28);
  background:#0b0907;
  box-shadow:0 28px 90px rgba(0,0,0,.64);
}
.event-share-label{
  display:block;
  margin-bottom:16px;
  color:var(--gold-light);
  font-size:.63rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.event-share-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.event-share-options a,
.event-share-options button{
  display:flex;
  min-width:0;
  min-height:48px;
  align-items:center;
  gap:9px;
  padding:9px 11px;
  border:1px solid rgba(243,234,217,.12);
  border-radius:0;
  background:rgba(255,255,255,.018);
  color:var(--cream-dim);
  font:inherit;
  font-size:.7rem;
  text-align:left;
  cursor:pointer;
  transition:border-color var(--duration-fast),color var(--duration-fast),background-color var(--duration-fast);
}
.event-share-options a:hover,
.event-share-options button:hover{
  border-color:rgba(216,186,114,.46);
  background:rgba(184,148,79,.09);
  color:var(--cream);
}
.share-icon{
  display:grid;
  width:25px;
  height:25px;
  flex:0 0 25px;
  place-items:center;
  border:1px solid rgba(216,186,114,.3);
  border-radius:50%;
  color:var(--gold-light);
  font-size:.78rem;
  line-height:1;
}
.share-icon-small{ font-size:.52rem; font-weight:700; }
.event-share-status{
  min-height:1.25em;
  margin:14px 0 0;
  color:var(--gold-light);
  font-size:.7rem;
  line-height:1.45;
}
.event-modal.is-booking .event-modal-share,
.event-modal.is-booking .event-share-panel{ display:none; }
.event-modal-media{ min-height:0; overflow:hidden; background:#0b0907; }
.event-modal-media img{
  width:100%;
  height:100%;
  min-height:580px;
  object-fit:cover;
  object-position:center;
  filter:saturate(.76) contrast(1.04) brightness(.85);
}
.event-modal-content{
  min-width:0;
  min-height:0;
  padding:clamp(46px,6vw,82px);
  overflow-y:auto;
  overscroll-behavior:contain;
}
.event-modal-details{
  display:flex;
  min-height:100%;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.event-modal-details[hidden],
.event-modal-booking[hidden]{ display:none !important; }
.event-modal-details .event-date{ margin:0 0 18px; padding:0; }
.event-modal-details h3{
  font-size:clamp(2.6rem,4.4vw,5rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.04em;
}
.event-modal-details p{
  margin:28px 0 36px;
  color:rgba(243,234,217,.72);
  line-height:1.75;
}
.event-modal.is-booking .event-modal-dialog{
  grid-template-columns:minmax(0,1fr);
  width:min(720px,100%);
  height:min(760px,calc(100svh - clamp(36px,8vw,112px)));
}
.event-modal.is-booking .event-modal-media{ display:none; }
.event-modal-booking{ width:100%; }
.event-booking-back{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 0 22px;
  padding:0 0 6px;
  border:0;
  border-bottom:1px solid rgba(216,186,114,.34);
  background:transparent;
  color:rgba(243,234,217,.72);
  font:inherit;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  transition:color var(--duration-fast),border-color var(--duration-fast);
}
.event-booking-back:hover{ color:var(--gold-light); border-color:var(--gold-light); }
.event-booking-context{
  display:block;
  margin-bottom:8px;
  color:var(--gold-light);
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.event-modal-booking h3{
  margin-bottom:28px;
  font-size:clamp(2.25rem,4vw,3.6rem);
  font-weight:500;
  line-height:1;
  letter-spacing:-.035em;
}
.event-booking-form{
  display:flex;
  width:100%;
  flex-direction:column;
  gap:14px;
}
.event-booking-form .form-row{ gap:14px; }
.event-booking-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--cream-dim);
  font-size:.67rem;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.event-booking-form input,
.event-booking-form textarea,
.event-booking-form select{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid rgba(243,234,217,.16);
  border-radius:0;
  background:rgba(6,5,4,.72);
  color:var(--cream);
  font-family:var(--font-body);
  font-size:.9rem;
  resize:vertical;
  transition:border-color var(--duration-fast),box-shadow var(--duration-fast);
}
.event-booking-form input[type="date"],
.reserve-form input[type="date"]{
  color-scheme:dark;
  cursor:pointer;
}
.event-booking-form input[type="date"]::-webkit-calendar-picker-indicator,
.reserve-form input[type="date"]::-webkit-calendar-picker-indicator{
  padding:7px;
  border-radius:50%;
  opacity:.78;
  cursor:pointer;
  filter:sepia(.7) saturate(.7) brightness(1.35);
  transition:opacity var(--duration-fast),background-color var(--duration-fast);
}
.event-booking-form input[type="date"]:hover::-webkit-calendar-picker-indicator,
.reserve-form input[type="date"]:hover::-webkit-calendar-picker-indicator{
  opacity:1;
  background:rgba(216,186,114,.12);
}
.date-control{
  position:relative;
  width:100%;
}
.date-control input[type="date"]{
  width:100%;
  padding-right:50px;
}
.date-control input[type="date"]::-webkit-calendar-picker-indicator{
  width:0;
  padding:0;
  opacity:0;
  pointer-events:none;
}
.date-picker-trigger{
  position:absolute;
  top:1px;
  right:1px;
  bottom:1px;
  z-index:2;
  display:grid;
  width:44px;
  place-items:center;
  padding:0;
  border:0;
  border-left:1px solid rgba(243,234,217,.13);
  background:rgba(12,10,8,.86);
  color:var(--gold-light);
  cursor:pointer;
  transition:background-color var(--duration-fast),color var(--duration-fast);
}
.date-picker-trigger:hover,
.date-picker-trigger[aria-expanded="true"]{ background:rgba(184,148,79,.16); color:var(--cream); }
.date-picker-trigger svg{
  width:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.45;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.date-picker-popover[hidden]{ display:none !important; }
.date-picker-popover{
  position:fixed;
  top:0;
  left:0;
  z-index:9600;
  width:min(320px,calc(100vw - 44px));
  padding:18px;
  border:1px solid rgba(216,186,114,.28);
  background:#0b0907;
  box-shadow:0 24px 70px rgba(0,0,0,.62);
  color:var(--cream);
  font-size:.78rem;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}
.date-picker-header{
  display:grid;
  grid-template-columns:34px 1fr 34px;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
}
.date-picker-header strong{
  color:var(--cream);
  font-family:var(--font-head);
  font-size:1rem;
  font-weight:500;
  text-align:center;
  text-transform:capitalize;
}
.date-picker-nav{
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  padding:0;
  border:1px solid rgba(243,234,217,.14);
  border-radius:50%;
  background:transparent;
  color:var(--cream-dim);
  font:inherit;
  cursor:pointer;
}
.date-picker-nav:hover:not(:disabled){ border-color:var(--gold-light); color:var(--gold-light); }
.date-picker-nav:disabled{ opacity:.25; cursor:not-allowed; }
.date-picker-weekdays,
.date-picker-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px;
}
.date-picker-weekdays{ margin-bottom:5px; }
.date-picker-weekdays span{
  color:rgba(207,195,172,.55);
  font-size:.57rem;
  font-weight:700;
  letter-spacing:.08em;
  text-align:center;
  text-transform:uppercase;
}
.date-picker-empty,
.date-picker-day{ aspect-ratio:1; }
.date-picker-day{
  display:grid;
  place-items:center;
  min-width:0;
  padding:0;
  border:1px solid transparent;
  border-radius:50%;
  background:transparent;
  color:var(--cream-dim);
  font:inherit;
  font-size:.72rem;
  cursor:pointer;
  transition:background-color var(--duration-fast),border-color var(--duration-fast),color var(--duration-fast);
}
.date-picker-day:hover:not(:disabled){ border-color:rgba(216,186,114,.46); color:var(--cream); }
.date-picker-day.is-today{ border-color:rgba(216,186,114,.28); color:var(--gold-light); }
.date-picker-day.is-selected{ background:var(--gold); color:#17120c; font-weight:700; }
.date-picker-day:disabled{ color:rgba(207,195,172,.2); cursor:not-allowed; }
.event-booking-form textarea{ min-height:66px; }
.event-booking-form select{ color-scheme:dark; }
.event-booking-form input:focus,
.event-booking-form textarea:focus,
.event-booking-form select:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(184,148,79,.12);
}
.event-booking-form [aria-invalid="true"]{ border-color:#c67667; }
.event-booking-form .btn{ margin-top:3px; }
.event-booking-form .form-note{ min-height:1.2em; margin:0; }

@media (max-width:1100px){
  .event-stage{ height:clamp(460px,min(58vw,68svh),600px); }
  .event-slide h3{ font-size:clamp(2.8rem,min(8vw,8.5svh),6.4rem); }
  .event-tab{ grid-template-columns:1fr; min-height:0; }
  .event-tab-media{ aspect-ratio:16/9; }
  .event-tab-copy{ min-height:128px; }
  .event-modal-dialog{ grid-template-columns:minmax(0,1fr) minmax(300px,.85fr); }
}

@media (max-width:760px){
  .events{ padding-block:clamp(92px,20vw,126px); }
  .events .menu-head{ align-items:start; gap:22px; margin-bottom:42px; }
  .events .menu-head .text-link{ margin-top:5px; }
  .event-stage{ height:clamp(480px,76svh,610px); }
  .event-slide-shade{
    background:
      linear-gradient(90deg,rgba(6,5,4,.5),rgba(6,5,4,.1)),
      linear-gradient(180deg,rgba(6,5,4,.15) 16%,rgba(6,5,4,.28) 42%,rgba(6,5,4,.96) 100%);
  }
  .event-slide-copy{ bottom:32px; }
  .event-slide h3{ max-width:12ch; font-size:clamp(2.35rem,min(12vw,8.5svh),4.75rem); }
  .event-slide p{ max-width:39ch; }
  .event-stage-controls{ top:22px; right:22px; bottom:auto; }
  .event-arrow{ width:44px; height:44px; }
  .event-rail{
    display:grid;
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:minmax(250px,78vw);
    gap:12px;
    margin-right:calc(var(--page-gutter) * -1);
    padding-right:var(--page-gutter);
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .event-rail::-webkit-scrollbar{ display:none; }
  .event-tab{ grid-template-columns:110px 1fr; scroll-snap-align:start; }
  .event-tab-media{ aspect-ratio:auto; }
  .event-tab-copy{ min-height:128px; }
  .event-modal{ place-items:end center; padding:10px; }
  .event-modal-dialog{
    grid-template-columns:1fr;
    width:100%;
    max-height:calc(100svh - 20px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .event-modal.is-booking .event-modal-dialog{ height:calc(100svh - 20px); }
  .event-modal-media{ aspect-ratio:16/10; }
  .event-modal-media img{ min-height:0; }
  .event-modal-content{ padding:34px 26px 30px; }
  .event-modal-details h3{ padding-right:30px; font-size:clamp(2.35rem,11vw,3.5rem); }
  .event-modal-details p{ margin:20px 0 26px; }
  .event-modal-booking h3{ padding-right:30px; font-size:clamp(2.1rem,9vw,3rem); }
  .event-modal-share{ right:auto; left:18px; padding-inline:14px; }
  .event-share-panel{ right:12px; width:calc(100% - 24px); }
}

@media (max-width:520px){
  .events .menu-head{ grid-template-columns:1fr; }
  .events .section-title{ margin-bottom:0; }
  .event-stage{ height:clamp(480px,76svh,580px); }
  .event-slide-copy{ left:22px; right:22px; }
  .event-slide-count{ margin-bottom:20px; }
  .event-slide-actions{ align-items:stretch; flex-direction:column; gap:12px; margin-top:24px; }
  .event-slide-actions .btn{ width:100%; }
  .event-book-link{ align-self:center; }
  .event-tab{ grid-template-columns:104px 1fr; }
}

@media (prefers-reduced-motion:reduce){
  .event-slide,.event-slide > img,.event-tab,.event-tab img,
  .event-modal,.event-modal-dialog{ transition:none !important; }
}

/* ============ Menu experience ============ */
.menu-main{
  min-height:100vh;
  min-height:100svh;
  background:var(--bg);
}
.menu-hero-premium{
  position:relative;
  display:grid;
  min-height:clamp(650px,88svh,940px);
  place-items:center;
  overflow:hidden;
  isolation:isolate;
}
.menu-hero-media,
.menu-hero-shade{
  position:absolute;
  inset:0;
}
.menu-hero-media{ z-index:-2; }
.menu-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 58%;
  filter:saturate(.76) brightness(.68) contrast(1.06);
  animation:menu-hero-drift 16s var(--ease-premium) both;
}
.menu-hero-shade{
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(6,5,4,.42),rgba(6,5,4,.06) 33%,rgba(6,5,4,.3) 70%,var(--bg) 100%),
    radial-gradient(circle at 50% 48%,rgba(6,5,4,.02) 0,rgba(6,5,4,.2) 55%,rgba(6,5,4,.72) 110%);
}
.menu-hero-inner{
  display:flex;
  align-items:center;
  flex-direction:column;
  padding-top:clamp(92px,11vh,142px);
  text-align:center;
}
.menu-hero-eyebrow{
  margin-bottom:clamp(24px,3.4vh,40px);
  color:var(--gold-light);
  font-size:clamp(.64rem,.72vw,.78rem);
  font-weight:600;
  letter-spacing:.38em;
  text-transform:uppercase;
  text-shadow:0 3px 20px rgba(0,0,0,.8);
  animation:menu-copy-in 900ms var(--ease-premium) 120ms both;
}
.menu-hero-title{
  display:grid;
  justify-items:center;
  max-width:13ch;
  font-size:clamp(3.7rem,min(8.3vw,12vh),8.8rem);
  font-weight:500;
  line-height:.82;
  letter-spacing:-.035em;
  text-shadow:0 15px 50px rgba(0,0,0,.42);
}
.menu-hero-title span,
.menu-hero-title em{
  display:block;
  animation:menu-title-in 1150ms var(--ease-premium) both;
}
.menu-hero-title em{
  margin-top:.13em;
  color:var(--cream);
  font-weight:500;
  animation-delay:140ms;
}
.menu-hero-title span{ animation-delay:40ms; }
.menu-hero-lead{
  max-width:48ch;
  margin-top:clamp(28px,4vh,46px);
  color:rgba(243,234,217,.8);
  font-size:clamp(.95rem,1.25vw,1.12rem);
  line-height:1.65;
  text-shadow:0 5px 24px rgba(0,0,0,.8);
  animation:menu-copy-in 900ms var(--ease-premium) 500ms both;
}
.menu-hero-scroll{
  position:absolute;
  bottom:clamp(30px,5vh,54px);
  left:50%;
  display:flex;
  align-items:center;
  flex-direction:column;
  gap:13px;
  color:rgba(243,234,217,.68);
  font-size:.61rem;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
  transform:translateX(-50%);
}
.menu-hero-scroll i{
  position:relative;
  display:block;
  width:1px;
  height:44px;
  overflow:hidden;
  background:rgba(216,186,114,.28);
}
.menu-hero-scroll i::after{
  content:"";
  position:absolute;
  inset:-100% 0 100%;
  background:var(--gold-light);
  animation:menu-scroll-line 2.1s ease-in-out infinite;
}
@keyframes menu-title-in{
  from{ opacity:0; filter:blur(10px); transform:translateY(50px); }
  to{ opacity:1; filter:blur(0); transform:none; }
}
@keyframes menu-copy-in{
  from{ opacity:0; filter:blur(5px); transform:translateY(18px); }
  to{ opacity:1; filter:blur(0); transform:none; }
}
@keyframes menu-hero-drift{
  from{ transform:scale(1.07); }
  to{ transform:scale(1); }
}
@keyframes menu-scroll-line{
  0%{ transform:translateY(0); }
  70%,100%{ transform:translateY(200%); }
}

.menu-editorial{
  position:relative;
  padding-block:clamp(110px,13vw,200px);
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.menu-editorial-mark{
  position:absolute;
  top:50%;
  right:clamp(-90px,-2vw,-20px);
  width:min(43vw,650px);
  opacity:.025;
  filter:grayscale(1);
  transform:translateY(-50%);
  pointer-events:none;
}
.menu-editorial-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(230px,.62fr) minmax(0,1.38fr);
  gap:clamp(52px,9vw,160px);
  align-items:start;
}
.menu-editorial-grid .kicker{ margin-top:13px; }
.menu-editorial-copy h2{
  max-width:14ch;
  font-size:clamp(2.9rem,5.7vw,6.4rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.03em;
}
.menu-editorial-copy p{
  max-width:62ch;
  margin-top:clamp(34px,4vw,58px);
  padding-left:clamp(0px,7vw,120px);
  color:var(--cream-dim);
  font-size:clamp(.98rem,1.2vw,1.12rem);
  line-height:1.85;
}

.menu-portals{
  padding-block:clamp(90px,10vw,168px);
  overflow:hidden;
}
.menu-portal-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,3.2vw,56px);
  align-items:start;
}
.menu-portal-card{
  position:relative;
  display:block;
  min-height:clamp(500px,38vw,650px);
  padding:0;
  overflow:hidden;
  border:1px solid rgba(216,186,114,.22);
  border-radius:1px;
  background:#080706;
  color:var(--cream);
  font:inherit;
  text-align:left;
  cursor:pointer;
  isolation:isolate;
  transition:border-color 450ms var(--ease),transform 650ms var(--ease-premium),box-shadow 650ms var(--ease-premium);
}
.menu-portal-card--bar{
  min-height:clamp(500px,38vw,650px);
}
.menu-portal-card:hover,
.menu-portal-card:focus-visible{
  border-color:rgba(216,186,114,.62);
  box-shadow:0 36px 90px rgba(0,0,0,.38);
  transform:translateY(-7px);
}
.menu-portal-media,
.menu-portal-shade{
  position:absolute;
  inset:0;
}
.menu-portal-media{ z-index:-2; }
.menu-portal-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.72) brightness(.72);
  transition:filter 700ms var(--ease),transform 1s var(--ease-premium);
}
.menu-portal-card--wine .menu-portal-media img{ object-position:center 65%; }
.menu-portal-card--bar .menu-portal-media img{ object-position:center; }
.menu-portal-shade{
  z-index:-1;
  background:linear-gradient(180deg,rgba(6,5,4,.16),rgba(6,5,4,.2) 38%,rgba(6,5,4,.94) 100%);
}
.menu-portal-card:hover .menu-portal-media img,
.menu-portal-card:focus-visible .menu-portal-media img{
  filter:saturate(.9) brightness(.8);
  transform:scale(1.045);
}
.menu-portal-index{
  position:absolute;
  top:28px;
  right:30px;
  color:var(--gold-light);
  font-family:var(--font-head);
  font-size:.74rem;
  font-style:italic;
}
.menu-portal-document{
  position:absolute;
  top:26px;
  left:28px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:7px 10px;
  border:1px solid rgba(243,234,217,.2);
  background:rgba(6,5,4,.34);
  color:rgba(243,234,217,.78);
  font-size:.56rem;
  letter-spacing:.14em;
  backdrop-filter:blur(8px);
}
.menu-portal-document b{ color:var(--gold-light); font-weight:700; }
.menu-portal-document span{ color:rgba(243,234,217,.52); }
.menu-portal-copy{
  position:absolute;
  right:clamp(26px,4vw,58px);
  bottom:clamp(30px,4vw,62px);
  left:clamp(26px,4vw,58px);
  display:flex;
  align-items:flex-start;
  flex-direction:column;
}
.menu-portal-copy small{
  margin-bottom:14px;
  color:var(--gold-light);
  font-size:.64rem;
  font-weight:600;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.menu-portal-copy strong{
  font-family:var(--font-head);
  font-size:clamp(2.3rem,3.2vw,4rem);
  font-weight:500;
  line-height:1;
}
.menu-portal-card--bar .menu-portal-copy strong,
.menu-portal-card--wine .menu-portal-copy strong{ font-size:clamp(2.3rem,3.2vw,4rem); }
.menu-portal-copy > span{
  max-width:43ch;
  margin-top:20px;
  color:rgba(243,234,217,.74);
  font-size:.93rem;
  line-height:1.65;
}
.menu-portal-copy b{
  display:inline-flex;
  align-items:center;
  gap:18px;
  margin-top:30px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(216,186,114,.5);
  color:var(--gold-light);
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.menu-portal-copy b i{
  font-size:.9rem;
  font-style:normal;
  transition:transform 320ms var(--ease);
}
.menu-portal-card:hover .menu-portal-copy b i{ transform:translate(3px,-3px); }

.menu-catalogue-premium{
  position:relative;
  padding-block:clamp(110px,11vw,180px);
  border-top:1px solid var(--line);
  background:
    radial-gradient(circle at 8% 28%,rgba(184,148,79,.045),transparent 28%),
    var(--bg);
}
.menu-catalogue-head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.8fr);
  gap:clamp(40px,8vw,140px);
  align-items:end;
  margin-bottom:clamp(60px,7vw,96px);
}
.menu-catalogue-head h2{
  max-width:12ch;
  font-size:clamp(3rem,5.3vw,5.8rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.03em;
}
.menu-catalogue-head > p{
  max-width:52ch;
  padding-bottom:8px;
  color:var(--cream-dim);
  font-size:.98rem;
  line-height:1.8;
}
.menu-view-tabs{
  display:inline-flex;
  gap:0;
  margin-bottom:38px;
  border:1px solid rgba(243,234,217,.14);
  border-radius:999px;
  background:rgba(10,8,7,.72);
  padding:5px;
}
.menu-view-tabs button{
  min-width:clamp(136px,14vw,210px);
  padding:15px 24px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--cream-dim);
  font:inherit;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 320ms var(--ease),color 320ms var(--ease);
}
.menu-view-tabs button span{
  margin-right:12px;
  color:var(--gold);
  font-family:var(--font-head);
  font-style:italic;
}
.menu-view-tabs button[aria-selected="true"]{
  background:var(--cream);
  color:#17120d;
}
.menu-category-sticky{
  position:sticky;
  top:102px;
  z-index:30;
  margin-inline:calc(var(--page-gutter) * -.42);
  padding:10px calc(var(--page-gutter) * .42);
  border-top:1px solid rgba(243,234,217,.09);
  border-bottom:1px solid rgba(243,234,217,.09);
  background:rgba(6,5,4,.9);
  box-shadow:0 18px 45px rgba(0,0,0,.2);
  backdrop-filter:blur(16px);
}
.menu-category-strip{
  display:flex;
  gap:6px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
}
.menu-category-strip::-webkit-scrollbar{ display:none; }
.menu-category-strip button{
  flex:0 0 auto;
  padding:13px 18px;
  border:0;
  border-radius:1px;
  background:transparent;
  color:rgba(207,195,172,.65);
  font:inherit;
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 280ms var(--ease),color 280ms var(--ease);
}
.menu-category-strip button span{
  margin-right:9px;
  color:rgba(184,148,79,.64);
  font-family:var(--font-head);
  font-size:.65rem;
  font-style:italic;
}
.menu-category-strip button:hover{ color:var(--cream); }
.menu-category-strip button[aria-selected="true"]{
  background:rgba(184,148,79,.13);
  color:var(--gold-light);
}
.menu-category-panel{
  display:grid;
  grid-template-columns:minmax(250px,.52fr) minmax(0,1.48fr);
  gap:clamp(48px,7vw,120px);
  margin-top:clamp(62px,7vw,104px);
  padding-block:clamp(52px,6vw,88px);
  border-top:1px solid rgba(216,186,114,.25);
  border-bottom:1px solid rgba(243,234,217,.12);
}
.menu-category-intro{
  position:relative;
  align-self:start;
  min-height:260px;
  padding-right:clamp(20px,3vw,54px);
}
.menu-category-intro > span{
  display:block;
  margin-bottom:28px;
  color:var(--gold);
  font-family:var(--font-head);
  font-size:.88rem;
  font-style:italic;
}
.menu-category-intro h3{
  max-width:9ch;
  font-size:clamp(2.8rem,4.6vw,5.3rem);
  font-weight:500;
  line-height:.96;
  letter-spacing:-.03em;
}
.menu-category-intro p{
  margin-top:28px;
  color:rgba(207,195,172,.54);
  font-size:.63rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.menu-category-intro::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:1px;
  height:100%;
  background:linear-gradient(180deg,rgba(216,186,114,.34),transparent);
}
.menu-dishes{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(34px,4vw,72px);
  align-content:start;
}
.menu-dish{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
  min-width:0;
  padding:26px 0 30px;
  border-bottom:1px solid rgba(243,234,217,.1);
  opacity:0;
  animation:menu-dish-in 700ms var(--ease-premium) var(--dish-delay) forwards;
}
.menu-dish-number{
  padding-top:5px;
  color:rgba(184,148,79,.6);
  font-family:var(--font-head);
  font-size:.7rem;
  font-style:italic;
}
.menu-dish-copy h4{
  color:var(--cream);
  font-family:var(--font-head);
  font-size:clamp(1.06rem,1.5vw,1.3rem);
  font-weight:500;
  line-height:1.28;
}
.menu-dish-copy > p{
  margin-top:8px;
  color:rgba(207,195,172,.68);
  font-size:.84rem;
  line-height:1.58;
}
.menu-dish-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px 14px;
  margin-top:13px;
  color:rgba(207,195,172,.42);
  font-size:.58rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.menu-dish-price{
  display:flex;
  align-items:flex-end;
  flex-direction:column;
  min-width:76px;
  padding-top:1px;
  white-space:nowrap;
}
.menu-dish-price strong{
  color:var(--gold-light);
  font-family:var(--font-head);
  font-size:1.03rem;
  font-weight:500;
}
.menu-dish-price strong small{
  font-family:var(--font-body);
  font-size:.48rem;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.menu-dish-price > span{
  margin-top:3px;
  color:rgba(207,195,172,.48);
  font-size:.65rem;
}
.menu-allergen-note{
  max-width:74ch;
  margin:28px 0 0 auto;
  color:rgba(207,195,172,.45);
  font-size:.7rem;
  line-height:1.6;
  text-align:right;
}
@keyframes menu-dish-in{
  from{ opacity:0; filter:blur(4px); transform:translateY(18px); }
  to{ opacity:1; filter:blur(0); transform:none; }
}

.menu-reserve-banner{
  position:relative;
  display:grid;
  min-height:clamp(580px,67svh,760px);
  place-items:center;
  overflow:hidden;
  border-top:1px solid var(--line);
  isolation:isolate;
}
.menu-reserve-media,
.menu-reserve-shade{ position:absolute; inset:0; }
.menu-reserve-media{ z-index:-2; }
.menu-reserve-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.7) brightness(.64);
}
.menu-reserve-shade{
  z-index:-1;
  background:linear-gradient(90deg,rgba(6,5,4,.92),rgba(6,5,4,.35) 55%,rgba(6,5,4,.6));
}
.menu-reserve-inner{ text-align:center; }
.menu-reserve-inner .eyebrow{ margin-bottom:24px; }
.menu-reserve-inner h2{
  font-size:clamp(3rem,6.2vw,6.8rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.03em;
}
.menu-reserve-inner p:not(.eyebrow){
  max-width:52ch;
  margin:28px auto 36px;
  color:rgba(243,234,217,.76);
  font-size:1rem;
  line-height:1.75;
}

@media (max-width:1100px){
  .menu-editorial-grid{ grid-template-columns:1fr; gap:36px; }
  .menu-editorial-grid .kicker{ margin-top:0; }
  .menu-editorial-copy p{ padding-left:clamp(0px,8vw,80px); }
  .menu-portal-card{ min-height:610px; }
  .menu-portal-card--bar{ min-height:520px; }
  .menu-category-panel{ grid-template-columns:1fr; gap:24px; }
  .menu-category-intro{ min-height:0; padding:0 0 46px; }
  .menu-category-intro h3{ max-width:13ch; }
  .menu-category-intro::after{ top:auto; right:auto; bottom:0; left:0; width:min(220px,55vw); height:1px; background:linear-gradient(90deg,rgba(216,186,114,.34),transparent); }
}

@media (max-width:900px){
  .menu-portal-grid{ grid-template-columns:1fr; }
  .menu-portal-card,
  .menu-portal-card--wine,
  .menu-portal-card--bar{ min-height:clamp(500px,88vw,680px); }
}

@media (max-width:760px){
  .menu-hero-premium{ min-height:max(650px,91svh); }
  .menu-hero-media img{ object-position:58% center; }
  .menu-hero-inner{ padding-top:72px; }
  .menu-hero-eyebrow{ letter-spacing:.24em; }
  .menu-hero-title{ max-width:10ch; font-size:clamp(3.35rem,16vw,5.4rem); line-height:.88; }
  .menu-hero-lead{ max-width:34ch; }
  .menu-hero-scroll{ bottom:24px; }
  .menu-editorial{ padding-block:100px; }
  .menu-editorial-mark{ right:-90px; width:85vw; }
  .menu-editorial-copy h2{ font-size:clamp(2.75rem,12vw,4.6rem); }
  .menu-editorial-copy p{ padding-left:0; }
  .menu-portals{ padding-block:70px 108px; }
  .menu-portal-grid{ grid-template-columns:1fr; }
  .menu-portal-card,
  .menu-portal-card--bar{ min-height:clamp(470px,126vw,620px); margin-top:0; }
  .menu-portal-card--bar{ min-height:clamp(430px,112vw,560px); }
  .menu-catalogue-premium{ padding-block:96px 118px; }
  .menu-catalogue-head{ grid-template-columns:1fr; gap:28px; margin-bottom:52px; }
  .menu-catalogue-head h2{ font-size:clamp(2.75rem,12vw,4.6rem); }
  .menu-view-tabs{ display:flex; width:100%; }
  .menu-view-tabs button{ flex:1; min-width:0; padding-inline:12px; }
  .menu-category-sticky{ top:80px; margin-inline:calc(var(--page-gutter) * -1); padding-inline:var(--page-gutter); }
  .menu-category-strip{ margin-right:calc(var(--page-gutter) * -1); padding-right:var(--page-gutter); }
  .menu-category-panel{ margin-top:54px; padding-block:44px; }
  .menu-category-intro h3{ font-size:clamp(2.7rem,13vw,4.5rem); }
  .menu-dishes{ grid-template-columns:1fr; }
  .menu-dish{ grid-template-columns:26px minmax(0,1fr) auto; }
  .menu-allergen-note{ text-align:left; }
  .menu-reserve-banner{ min-height:620px; }
  .menu-reserve-shade{ background:linear-gradient(180deg,rgba(6,5,4,.62),rgba(6,5,4,.78)); }
}

@media (max-width:440px){
  .menu-hero-title{ font-size:clamp(3rem,15vw,4.25rem); }
  .menu-portal-copy > span{ display:none; }
  .menu-portal-copy strong{ font-size:clamp(2.65rem,13vw,3.8rem); }
  .menu-portal-copy b{ margin-top:22px; }
  .menu-dish{ grid-template-columns:22px minmax(0,1fr); }
  .menu-dish-price{ grid-column:2; align-items:flex-start; margin-top:12px; }
  .menu-dish-price strong{ font-size:.98rem; }
}

@media (prefers-reduced-motion:reduce){
  .menu-hero-media img,
  .menu-hero-title span,
  .menu-hero-title em,
  .menu-hero-eyebrow,
  .menu-hero-lead,
  .menu-hero-scroll i::after,
  .menu-dish{ animation:none !important; opacity:1; filter:none; transform:none; }
}

/* Mamzel-reference menu cards: minimal title, image, outlined action and traced frame. */
.menu-portals{
  padding-block:clamp(72px,7vw,112px) clamp(90px,10vw,168px);
}
.menu-portal-grid{
  width:100%;
  max-width:1620px;
  margin-inline:auto;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(40px,4vw,72px);
}
.menu-portal-card,
.menu-portal-card--wine,
.menu-portal-card--bar{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:clamp(22px,2.2vw,34px);
  align-items:center;
  justify-items:center;
  width:100%;
  min-height:0;
  aspect-ratio:.91;
  margin-top:0;
  padding:clamp(32px,3.1vw,48px) clamp(25px,2.6vw,39px) clamp(28px,2.7vw,40px);
  overflow:hidden;
  border:0;
  border-radius:15px;
  background:#050505;
  box-shadow:0 18px 55px rgba(0,0,0,.34);
  isolation:isolate;
  transition:opacity .9s var(--ease),transform 650ms var(--ease-premium),box-shadow 650ms var(--ease-premium);
}
.menu-portal-card.reveal:not(.is-visible){ transform:translateY(34px); }
.menu-portal-card.reveal.is-visible{ transform:none; }
.menu-portal-card.is-visible:hover,
.menu-portal-card.is-visible:focus-visible{
  border-color:transparent;
  box-shadow:0 28px 70px rgba(0,0,0,.48);
  transform:translateY(-5px);
}
@property --menu-border-angle{
  syntax:"<angle>";
  initial-value:0deg;
  inherits:false;
}
.menu-portal-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  padding:1.1px;
  border-radius:inherit;
  background:conic-gradient(from var(--menu-border-angle),transparent 0 70%,var(--menu-orbit-color,rgba(225,228,232,.5)) 70% 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  animation:menu-portal-orbit 8s linear infinite;
}
.menu-portal-card:hover,
.menu-portal-card:focus-visible{ --menu-orbit-color:rgba(238,240,242,.82); }
.menu-portal-title{
  position:relative;
  z-index:2;
  display:block;
  color:var(--cream);
  font-family:var(--font-body);
  font-size:clamp(.76rem,1.05vw,1rem);
  font-weight:600;
  line-height:1.2;
  letter-spacing:.42em;
  text-align:center;
  text-transform:uppercase;
}
.menu-portal-card .menu-portal-media{
  position:relative;
  inset:auto;
  z-index:1;
  display:block;
  align-self:stretch;
  width:100%;
  min-height:0;
  aspect-ratio:1.58;
  overflow:hidden;
  border-radius:10px;
  background:#0a0908;
}
.menu-portal-card .menu-portal-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.8) brightness(.78);
  transform:none;
  transition:filter 600ms var(--ease),transform 800ms var(--ease-premium);
}
.menu-portal-card--wine .menu-portal-media img{ object-position:center 64%; }
.menu-portal-card:hover .menu-portal-media img,
.menu-portal-card:focus-visible .menu-portal-media img{
  filter:saturate(.94) brightness(.86);
  transform:scale(1.025);
}
.menu-portal-action{
  position:relative;
  z-index:2;
  display:inline-flex;
  min-width:min(190px,78%);
  min-height:38px;
  align-items:center;
  justify-content:center;
  padding:9px 22px;
  border:0;
  border-radius:0;
  color:rgba(243,234,217,.94);
  font-size:clamp(.62rem,.75vw,.72rem);
  font-weight:600;
  letter-spacing:.34em;
  text-align:center;
  text-transform:uppercase;
  box-shadow:none;
  transition:color 300ms ease,transform 400ms var(--ease-premium);
}
.menu-portal-action::before{
  --hand-drawn-frame:url("../assets/ui/menu-button-frame.svg?v=20260804-1");
  content:"";
  position:absolute;
  inset:-1px;
  z-index:0;
  background:currentColor;
  opacity:.72;
  pointer-events:none;
  -webkit-mask:var(--hand-drawn-frame) center/100% 100% no-repeat;
  mask:var(--hand-drawn-frame) center/100% 100% no-repeat;
  transition:opacity 300ms ease,filter 300ms ease;
}
.menu-portal-card:nth-child(1) .menu-portal-action::before{ transform:rotate(.18deg) translateY(.15px); }
.menu-portal-card:nth-child(2) .menu-portal-action::before{ transform:rotate(-.22deg) translateX(.2px); }
.menu-portal-card:nth-child(3) .menu-portal-action::before{ transform:rotate(.1deg) scaleX(.997); }
.menu-portal-card:hover .menu-portal-action,
.menu-portal-card:focus-visible .menu-portal-action{
  background:transparent;
  color:var(--gold-light);
  transform:translateY(-1px);
}
.menu-portal-card:hover .menu-portal-action::before,
.menu-portal-card:focus-visible .menu-portal-action::before{
  opacity:.92;
  filter:drop-shadow(0 0 7px rgba(216,186,114,.16));
}
@keyframes menu-portal-orbit{
  from{ --menu-border-angle:0deg; }
  to{ --menu-border-angle:360deg; }
}

@media (max-width:900px){
  .menu-portal-grid{ max-width:620px; grid-template-columns:1fr; gap:38px; }
  .menu-portal-card,
  .menu-portal-card--wine,
  .menu-portal-card--bar{ min-height:0; aspect-ratio:.96; }
}
@media (max-width:440px){
  .menu-portal-card,
  .menu-portal-card--wine,
  .menu-portal-card--bar{ aspect-ratio:.88; padding:30px 25px 27px; gap:23px; }
  .menu-portal-title{ font-size:.72rem; letter-spacing:.32em; }
  .menu-portal-action{ min-height:38px; letter-spacing:.27em; }
}
@media (prefers-reduced-motion:reduce){
  .menu-portal-card::before{ animation:none !important; --menu-border-angle:28deg; }
}

/* Global dry-ink action system: imperfect frame + editorial hover underline. */
:is(.btn,.nav-cta){
  --ink-action-frame:url("../assets/ui/menu-button-frame.svg?v=20260804-2");
  position:relative;
  isolation:isolate;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(243,234,217,.94);
  box-shadow:none;
  font-weight:600;
  letter-spacing:.28em;
  transition:color 300ms ease,transform 400ms var(--ease-premium),filter 300ms ease;
}
:is(.btn,.nav-cta)::before{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:0;
  background:currentColor;
  opacity:.72;
  pointer-events:none;
  -webkit-mask:var(--ink-action-frame) center/100% 100% no-repeat;
  mask:var(--ink-action-frame) center/100% 100% no-repeat;
  transition:opacity 300ms ease,filter 300ms ease;
}
:is(.btn,.nav-cta):hover,
:is(.btn,.nav-cta):focus-visible{
  border:0;
  background:transparent;
  color:var(--gold-light);
  transform:translateY(-1px);
}
:is(.btn,.nav-cta):hover::before,
:is(.btn,.nav-cta):focus-visible::before{
  opacity:.94;
  filter:drop-shadow(0 0 8px rgba(216,186,114,.16));
}
:is(.btn,.nav-cta):focus-visible{
  outline:1px solid rgba(232,200,119,.54);
  outline-offset:5px;
}
.btn:active{ background:transparent; color:var(--gold); transform:none; }
.btn-sm{ min-height:38px; padding:9px 24px; }
.nav-cta{ min-height:38px; padding:9px 22px; }
.event-card .btn{ padding:9px 24px; border:0; }
.event-card .btn:hover,
.event-card .btn:focus-visible{ border:0; background:transparent; color:var(--gold-light); transform:translateY(-1px); }

:is(.text-link,.event-book-link,.event-booking-back){
  --ink-underline:url("../assets/ui/hand-drawn-underline.svg?v=20260804-1");
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 0 15px;
  border:0;
  background:transparent;
  color:rgba(243,234,217,.92);
  font-family:var(--font-body);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.32em;
  line-height:1.2;
  text-transform:uppercase;
  transition:color 300ms ease,transform 400ms var(--ease-premium);
}
:is(.text-link,.event-book-link,.event-booking-back)::after{
  content:"";
  position:absolute;
  right:0;
  bottom:3px;
  left:0;
  height:8px;
  background:currentColor;
  opacity:0;
  pointer-events:none;
  transform:scaleX(.28);
  transform-origin:left center;
  -webkit-mask:var(--ink-underline) center/100% 100% no-repeat;
  mask:var(--ink-underline) center/100% 100% no-repeat;
  transition:opacity 280ms ease,transform 520ms var(--ease-premium);
}
:is(.text-link,.event-book-link,.event-booking-back):hover,
:is(.text-link,.event-book-link,.event-booking-back):focus-visible{
  border:0;
  color:var(--gold-light);
  transform:translateY(-1px);
}
:is(.text-link,.event-book-link,.event-booking-back):hover::after,
:is(.text-link,.event-book-link,.event-booking-back):focus-visible::after{
  opacity:.88;
  transform:scaleX(1);
}
:is(.text-link,.event-book-link) > span[aria-hidden="true"]{ display:none; }

.nav-links a::after{
  right:0;
  bottom:-3px;
  left:0;
  height:7px;
  background:currentColor;
  opacity:0;
  transform:scaleX(.24);
  transform-origin:left center;
  -webkit-mask:url("../assets/ui/hand-drawn-underline.svg?v=20260804-1") center/100% 100% no-repeat;
  mask:url("../assets/ui/hand-drawn-underline.svg?v=20260804-1") center/100% 100% no-repeat;
  transition:opacity 260ms ease,transform 500ms var(--ease-premium);
}
.nav-links a:hover::after,
.nav-links a[aria-current="location"]::after{
  right:0;
  opacity:.78;
  transform:scaleX(1);
}

@media (prefers-reduced-motion:reduce){
  :is(.btn,.nav-cta,.text-link,.event-book-link,.event-booking-back){ transition:none !important; }
  :is(.text-link,.event-book-link,.event-booking-back)::after,
  .nav-links a::after{ transition:none !important; }
}

/* Reference-matched brush hamburger. */
.nav-burger{
  position:relative;
  width:46px;
  height:42px;
  padding:9px 7px;
  color:rgba(243,243,241,.94);
  transition:color 280ms ease,transform 420ms var(--ease-premium);
}
.nav-burger span{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
}
.nav-burger::before{
  content:"";
  display:block;
  width:32px;
  height:20px;
  background:currentColor;
  -webkit-mask:url("../assets/ui/hand-drawn-hamburger.svg?v=20260804-1") center/contain no-repeat;
  mask:url("../assets/ui/hand-drawn-hamburger.svg?v=20260804-1") center/contain no-repeat;
  transition:opacity 220ms ease,transform 480ms var(--ease-premium),-webkit-mask-image 0s 150ms;
}
.nav-burger:hover,
.nav-burger:focus-visible{ color:var(--gold-light); }
.nav-burger:focus-visible{ outline:1px solid rgba(232,200,119,.48); outline-offset:3px; }
.nav-burger[aria-expanded="true"]::before{
  -webkit-mask-image:url("../assets/ui/hand-drawn-close.svg?v=20260804-1");
  mask-image:url("../assets/ui/hand-drawn-close.svg?v=20260804-1");
  transform:rotate(90deg) scale(.92);
}
@media (prefers-reduced-motion:reduce){
  .nav-burger,.nav-burger::before{ transition:none !important; }
}

/* Full-screen editorial mobile navigation. */
.nav-primary-links{ display:contents; }
.nav-mobile-extras{ display:none; }

@media (max-width:980px){
  body.menu-open .site-nav,
  body.menu-open .site-nav.is-scrolled{
    top:10px;
    padding:0 14px;
  }
  body.menu-open .nav-inner,
  body.menu-open .site-nav.is-scrolled .nav-inner{
    max-width:none;
    padding:8px 12px 8px 16px;
    background:transparent;
    border-color:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .nav-logo,
  .nav-inner > .nav-language,
  .nav-burger{
    position:relative;
    z-index:3;
  }
  body.menu-open .nav-logo{
    position:fixed;
    top:max(18px,env(safe-area-inset-top));
    left:50%;
    margin:0;
    transform:translateX(-50%);
  }
  body.menu-open .nav-logo:hover .nav-logo-mark{ transform:none; }
  body.menu-open .nav-logo-mark{ height:42px; }
  body.menu-open .nav-logo-text{
    font-size:.76rem;
    letter-spacing:.12em;
    white-space:nowrap;
  }
  body.menu-open .nav-inner > .nav-language{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
  body.menu-open .nav-burger{ margin-left:auto; }

  .nav-links{
    display:flex;
    visibility:hidden;
    position:fixed;
    z-index:1;
    inset:0;
    width:100%;
    height:100dvh;
    min-height:100svh;
    padding:clamp(98px,13.5dvh,126px) 28px max(24px,env(safe-area-inset-bottom));
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:clamp(14px,2.2dvh,22px);
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:none;
    background:
      linear-gradient(180deg,rgba(3,3,3,.94) 0%,rgba(3,3,3,.87) 42%,rgba(3,3,3,.96) 100%),
      radial-gradient(circle at 53% 38%,rgba(115,75,29,.2),transparent 46%),
      url("../assets/images/party.jpg") 50% 50%/cover no-repeat;
    border:0;
    border-radius:0;
    opacity:0;
    pointer-events:none;
    clip-path:inset(0 0 100% 0);
    transition:clip-path 760ms var(--ease-premium),opacity 420ms ease,visibility 0s 760ms;
    isolation:isolate;
  }
  .nav-links::-webkit-scrollbar{ display:none; }
  .nav-links::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    background:
      linear-gradient(90deg,rgba(255,255,255,.018),transparent 18%,transparent 82%,rgba(255,255,255,.012)),
      radial-gradient(ellipse at 50% 18%,rgba(232,200,119,.08),transparent 32%);
    transform:scale(1.01);
    transition:transform 6s cubic-bezier(.2,.65,.25,1);
  }
  .nav-links::after{
    content:"";
    position:fixed;
    z-index:4;
    top:0;
    right:0;
    bottom:0;
    width:1px;
    background:linear-gradient(180deg,rgba(216,186,114,.72),rgba(216,186,114,.15) 72%,transparent);
    opacity:.72;
    pointer-events:none;
  }
  .nav-links.is-open{
    visibility:visible;
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    left:0;
    display:flex;
    padding:clamp(98px,13.5dvh,126px) 28px max(24px,env(safe-area-inset-bottom));
    background:
      linear-gradient(180deg,rgba(3,3,3,.94) 0%,rgba(3,3,3,.87) 42%,rgba(3,3,3,.96) 100%),
      radial-gradient(circle at 53% 38%,rgba(115,75,29,.2),transparent 46%),
      url("../assets/images/party.jpg") 50% 50%/cover no-repeat;
    border:0;
    border-radius:0;
    opacity:1;
    pointer-events:auto;
    clip-path:inset(0);
    transition:clip-path 760ms var(--ease-premium),opacity 420ms ease,visibility 0s;
  }
  .nav-links.is-open::before{ transform:scale(1.055); }

  .nav-primary-links{
    display:flex;
    width:min(100%,430px);
    flex:0 0 auto;
    flex-direction:column;
    align-items:center;
    gap:1px;
  }
  .nav-primary-links > a{
    --nav-delay:80ms;
    display:grid;
    width:100%;
    min-height:48px;
    place-items:center;
    padding:10px 16px;
    border:0;
    color:rgba(248,244,236,.92);
    font-family:var(--font-body);
    font-size:clamp(.9rem,3.8vw,1.06rem);
    font-weight:400;
    letter-spacing:.3em;
    line-height:1.2;
    text-align:center;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(17px);
    transition:color 280ms ease,letter-spacing 480ms var(--ease-premium),opacity 440ms ease var(--nav-delay),transform 650ms var(--ease-premium) var(--nav-delay);
  }
  .nav-primary-links > a::after{ display:none; }
  .nav-primary-links > a:nth-child(2){ --nav-delay:130ms; }
  .nav-primary-links > a:nth-child(3){ --nav-delay:180ms; }
  .nav-primary-links > a:nth-child(4){ --nav-delay:230ms; }
  .nav-primary-links > a:nth-child(5){ --nav-delay:280ms; }
  .nav-links.is-open .nav-primary-links > a{
    display:flex;
    align-items:center;
    justify-content:center;
    border-bottom:0;
    opacity:1;
    transform:translateY(0);
  }
  .nav-primary-links > a:hover,
  .nav-primary-links > a:focus-visible{
    color:var(--gold-light);
    letter-spacing:.34em;
  }
  .nav-primary-links > a:focus-visible{ outline:1px solid rgba(232,200,119,.45); outline-offset:-5px; }
  .nav-primary-links > a > span{ position:relative; }
  .nav-primary-links > a[aria-current] > span::after{
    content:"";
    position:absolute;
    right:calc(100% + 13px);
    top:50%;
    width:18px;
    height:1px;
    background:var(--gold-light);
    opacity:.82;
  }

  .nav-mobile-extras{
    display:flex;
    width:min(100%,360px);
    flex:0 0 auto;
    flex-direction:column;
    align-items:center;
    gap:clamp(8px,1.25dvh,12px);
    opacity:0;
    transform:translateY(18px);
    transition:opacity 440ms ease 310ms,transform 720ms var(--ease-premium) 310ms;
  }
  .nav-links.is-open .nav-mobile-extras{
    opacity:1;
    transform:translateY(0);
  }
  .nav-mobile-script{
    margin:0 0 -2px;
    color:var(--gold-light);
    font-family:"Alex Brush",cursive;
    font-size:clamp(1.8rem,7vw,2.25rem);
    line-height:1;
    transform:rotate(-3deg);
    text-shadow:0 4px 20px rgba(0,0,0,.55);
  }
  .nav-mobile-reserve{
    --ink-action-frame:url("../assets/ui/menu-button-frame.svg?v=20260804-2");
    position:relative;
    display:flex;
    width:min(100%,272px);
    min-height:44px;
    align-items:center;
    justify-content:center;
    padding:10px 22px;
    color:rgba(248,244,236,.96);
    font-size:.7rem;
    font-weight:600;
    letter-spacing:.31em;
    text-align:center;
    text-transform:uppercase;
  }
  .nav-links.is-open .nav-mobile-reserve{
    min-height:44px;
    justify-content:center;
    border-bottom:0;
  }
  .nav-mobile-reserve::before{
    content:"";
    position:absolute;
    inset:-1px;
    background:currentColor;
    opacity:.75;
    pointer-events:none;
    -webkit-mask:var(--ink-action-frame) center/100% 100% no-repeat;
    mask:var(--ink-action-frame) center/100% 100% no-repeat;
    transition:opacity 280ms ease,filter 280ms ease;
  }
  .nav-mobile-reserve::after{ display:none; }
  .nav-mobile-reserve:hover,
  .nav-mobile-reserve:focus-visible{ color:var(--gold-light); }
  .nav-mobile-reserve:hover::before,
  .nav-mobile-reserve:focus-visible::before{
    opacity:.98;
    filter:drop-shadow(0 0 8px rgba(216,186,114,.16));
  }
  .nav-mobile-reserve:focus-visible{ outline:1px solid rgba(232,200,119,.5); outline-offset:5px; }
  .nav-mobile-detail,
  .nav-mobile-footnote{
    margin:0;
    color:rgba(227,218,202,.58);
    font-size:.58rem;
    font-weight:600;
    letter-spacing:.15em;
    line-height:1.55;
    text-align:center;
    text-transform:uppercase;
  }
  .nav-mobile-detail i{ padding:0 .36em; color:rgba(216,186,114,.7); font-style:normal; }
  .nav-mobile-language{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:30px;
    color:rgba(243,234,217,.7);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.16em;
  }
  .nav-mobile-language > span[aria-current="true"]{ color:var(--gold-light); }
  .nav-mobile-language > i{ color:rgba(243,234,217,.28); font-style:normal; }
  .nav-language--mobile{
    display:inline-flex;
    min-width:auto;
    min-height:auto;
    padding:6px 2px;
    border:0;
    border-radius:0;
    color:rgba(243,234,217,.72);
    font-size:inherit;
    letter-spacing:inherit;
  }
  .nav-links.is-open .nav-language--mobile{
    min-height:auto;
    justify-content:center;
    border-bottom:0;
  }
  .nav-language--mobile::after{ display:none; }
  .nav-mobile-footnote{
    padding-top:8px;
    border-top:1px solid rgba(232,200,119,.14);
    font-size:.54rem;
    letter-spacing:.2em;
  }
  body.menu-open .nav-burger:focus-visible{ outline:0; }
}

/* Touch browsers can retain focus on the first link after navigation. Screen
   readers still have the main landmark; the visual skip control is keyboard-only. */
@media (hover:none), (pointer:coarse){
  .skip-link{ display:none !important; }
}

@media (max-width:980px) and (max-height:730px){
  .nav-links,
  .nav-links.is-open{
    padding-top:88px;
    padding-bottom:18px;
    justify-content:flex-start;
    gap:9px;
  }
  .nav-primary-links > a{ min-height:41px; padding:7px 14px; font-size:.86rem; }
  .nav-mobile-extras{ gap:6px; }
  .nav-mobile-script{ font-size:1.7rem; }
  .nav-mobile-reserve{ min-height:40px; }
  .nav-mobile-detail{ display:none; }
  .nav-mobile-footnote{ padding-top:5px; }
}

@media (prefers-reduced-motion:reduce){
  .nav-links,
  .nav-links::before,
  .nav-primary-links > a,
  .nav-mobile-extras{ transition:none !important; }
}

/* iPhone notch, Dynamic Island and home-indicator safe areas. */
.section-inner{
  padding-left:max(var(--page-gutter),calc(env(safe-area-inset-left) + 16px));
  padding-right:max(var(--page-gutter),calc(env(safe-area-inset-right) + 16px));
}
.site-footer{
  padding-bottom:calc(26px + env(safe-area-inset-bottom));
}

@media (max-width:980px){
  .site-nav,
  .site-nav.is-scrolled{
    top:max(12px,calc(env(safe-area-inset-top) + 8px));
    padding-left:max(14px,calc(env(safe-area-inset-left) + 14px));
    padding-right:max(14px,calc(env(safe-area-inset-right) + 14px));
  }
  body.menu-open .site-nav,
  body.menu-open .site-nav.is-scrolled{
    top:max(10px,calc(env(safe-area-inset-top) + 8px));
    padding-left:max(14px,calc(env(safe-area-inset-left) + 14px));
    padding-right:max(14px,calc(env(safe-area-inset-right) + 14px));
  }
  .nav-links,
  .nav-links.is-open{
    padding-top:max(clamp(98px,13.5dvh,126px),calc(env(safe-area-inset-top) + 82px));
    padding-right:max(28px,calc(env(safe-area-inset-right) + 22px));
    padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 18px));
    padding-left:max(28px,calc(env(safe-area-inset-left) + 22px));
  }
  .event-modal{
    padding-top:max(10px,env(safe-area-inset-top));
    padding-right:max(10px,env(safe-area-inset-right));
    padding-bottom:max(10px,env(safe-area-inset-bottom));
    padding-left:max(10px,env(safe-area-inset-left));
  }
}
