@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Manrope:wght@400;500;600;700&display=swap");

:root {
  --ink: #0c0809;
  --wine: #25090f;
  --burgundy: #4a0b18;
  --red: #e41f39;
  --lipstick: #ff334d;
  --cream: #f3e9dc;
  --muted: #c2aca6;
  --gold: #b99765;
  --line: rgba(243, 233, 220, .18);
  --display: "Cormorant Garamond", Georgia, serif;
  --body: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--cream);
  background:
    radial-gradient(circle at 12% 20%, rgba(157, 18, 40, .13), transparent 29rem),
    linear-gradient(180deg, #0b0708, #13090b 55%, #090607);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.65;
  overflow-x: clip;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 20;
  opacity: .16;
  pointer-events: none;
  background:
    repeating-radial-gradient(circle at 17% 31%, transparent 0 1px, rgba(255,255,255,.055) 1px 2px, transparent 2px 4px);
  background-size: 7px 9px;
  mix-blend-mode: soft-light;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--lipstick); outline-offset: 4px; }
img { display: block; max-width: 100%; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 10px 14px; background: var(--cream); color: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 10;
  min-height: 96px;
  padding: 18px 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; text-transform: uppercase; letter-spacing: .18em; font-size: .67rem; }
.brand img { width: 52px; height: 62px; object-fit: cover; object-position: center; border: 1px solid var(--line); }
.main-menu { display: flex; gap: 34px; align-items: center; }
.main-menu a { position: relative; text-decoration: none; text-transform: uppercase; letter-spacing: .18em; font-size: .7rem; }
.main-menu a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--red); transition:right .3s ease; }
.main-menu a:hover::after, .main-menu a:focus-visible::after { right:0; }
.menu-toggle { display: none; color: var(--cream); background: transparent; border: 0; min-width: 48px; min-height: 48px; }

.social-rail {
  position: fixed;
  z-index: 18;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  border: 1px solid rgba(255, 84, 111, .38);
  border-right: 0;
  background: rgba(14, 6, 8, .9);
  box-shadow: -16px 18px 52px rgba(0, 0, 0, .4), 0 0 32px rgba(228, 31, 57, .09);
  backdrop-filter: blur(14px);
}
.social-caption {
  padding: 14px 8px 12px;
  color: #d7babf;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  text-transform: uppercase;
  letter-spacing: .2em;
  font-size: .53rem;
}
.social-rail a {
  position: relative;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-top: 1px solid rgba(255, 84, 111, .19);
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.social-rail a:hover,
.social-rail a:focus-visible {
  z-index: 2;
  background: rgba(228, 31, 57, .2);
  box-shadow: inset 3px 0 var(--lipstick), 0 0 28px rgba(255, 51, 77, .18);
  transform: translateX(-3px);
}
.social-rail a:focus-visible {
  outline: 2px solid #ff8196;
  outline-offset: -3px;
}
.social-rail a[aria-disabled="true"] { cursor: default; display:none; }
.social-rail a::after {
  content: attr(data-tooltip);
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  width: max-content;
  max-width: 190px;
  padding: 7px 10px;
  color: #f7e8e7;
  background: #290a11;
  border: 1px solid rgba(255, 84, 111, .32);
  font-size: .66rem;
  letter-spacing: .07em;
  transform: translate(6px, -50%);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.social-rail a:hover::after,
.social-rail a:focus-visible::after {
  opacity: 1;
  transform: translate(0, -50%);
}
.platform-icon {
  width: 22px;
  height: 22px;
  display: block;
  background: linear-gradient(145deg, #ff8196 0%, #ff2948 55%, #c80e2f 100%);
  filter: drop-shadow(0 0 7px rgba(255, 48, 79, .23));
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}
.platform-icon.instagram { -webkit-mask-image: url("../icons/instagram.svg"); mask-image: url("../icons/instagram.svg"); }
.platform-icon.facebook { -webkit-mask-image: url("../icons/facebook.svg"); mask-image: url("../icons/facebook.svg"); }
.platform-icon.threads { -webkit-mask-image: url("../icons/threads.svg"); mask-image: url("../icons/threads.svg"); }
.platform-icon.tiktok { -webkit-mask-image: url("../icons/tiktok.svg"); mask-image: url("../icons/tiktok.svg"); }

.hero { min-height: 920px; height: 100svh; position: relative; display: grid; align-items: center; isolation: isolate; }
.hero-image { position: absolute; inset: 0; z-index: -3; background: url("../images/nep-bar-hero.jpg") center 58%/cover no-repeat; }
.hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(7,3,4,.96) 0%, rgba(12,4,6,.79) 35%, rgba(12,4,6,.22) 70%, rgba(7,3,4,.67)), linear-gradient(0deg, rgba(9,4,5,.85), transparent 45%); }
.hero-content { width: min(1180px, calc(100% - 84px)); margin-inline: auto; padding-top: 100px; }
.eyebrow { margin: 0 0 18px; color: var(--muted); text-transform: uppercase; letter-spacing: .23em; font-size: .72rem; font-weight: 700; }
.eyebrow.red { color: #ff6c7e; }
.hero-logo { width: 105px; height: 138px; object-fit: cover; object-position: center; margin-bottom: 20px; box-shadow: 0 20px 60px rgba(0,0,0,.35); }
h1, h2 { margin: 0; font-family: var(--display); line-height: .91; font-weight: 500; letter-spacing: -.03em; }
h1 { font-size: clamp(4rem, 7.6vw, 8.5rem); max-width: 760px; }
h2 { font-size: clamp(3.3rem, 6.2vw, 7rem); }
h1 em, h2 em { color: var(--lipstick); font-weight: 500; }
.hero-title-story { max-width: 870px; font-size: clamp(4rem, 6.15vw, 7.2rem); line-height: .86; }
.hero-intro { width: min(510px, 100%); margin: 28px 0 30px; color: #dfd0cc; font-size: clamp(1rem, 1.35vw, 1.2rem); }
.hero-invite { margin: -16px 0 28px; color: #f6c8ce; font-family: var(--display); font-size: 1.25rem; font-style: italic; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; text-decoration: none; text-transform: uppercase; letter-spacing: .13em; font-size: .72rem; font-weight: 700; border: 1px solid transparent; transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--red); box-shadow: 0 14px 40px rgba(228,31,57,.22); }
.button-primary:hover { background: var(--lipstick); }
.button-quiet { border-color: rgba(255,255,255,.4); background: rgba(0,0,0,.18); backdrop-filter: blur(8px); }

.floor-selector { position: absolute; right: clamp(24px, 5vw, 92px); top: 50%; width: 250px; transform: translateY(-45%); }
.floor-selector > p { margin: 0 0 12px; color: #e7d7d1; text-transform: uppercase; text-align: right; letter-spacing: .18em; font-size: .64rem; }
.building { border: 1px solid rgba(185,151,101,.48); box-shadow: 0 30px 80px rgba(0,0,0,.45); background: rgba(13,6,8,.77); backdrop-filter: blur(12px); }
.floor { position: relative; min-height: 77px; display: grid; grid-template-columns: 45px 1fr auto; align-items: center; gap: 10px; padding: 12px 16px; text-decoration: none; border-bottom: 1px solid rgba(185,151,101,.28); transition: background .25s ease; }
.floor:last-child { border-bottom: 0; }
a.floor:hover { background: rgba(228,31,57,.12); }
.floor-no { color: var(--gold); font-family: var(--display); font-size: 1.55rem; }
.floor-name { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; }
.floor-name small { display: block; margin-top: 2px; color: #ffc6ce; font-size: .57rem; letter-spacing: .13em; }
.floor.is-current { background: linear-gradient(90deg, rgba(143,13,34,.76), rgba(228,31,57,.2)); box-shadow: inset 3px 0 var(--lipstick); }
.floor.is-current i { width: 7px; height: 7px; border-radius: 50%; background: var(--lipstick); box-shadow: 0 0 0 4px rgba(255,51,77,.14); }
.foundation { display:block; width:108%; height:6px; margin-left:-4%; background:linear-gradient(90deg,transparent,var(--gold) 12% 88%,transparent); opacity:.6; }
.scroll-cue { position: absolute; left: 42px; bottom: 28px; text-decoration: none; text-transform: uppercase; letter-spacing: .19em; font-size: .63rem; }
.scroll-cue span { margin-left: 10px; color: var(--lipstick); }

.intro { padding: 150px 0 160px; }
.intro-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10vw; align-items: end; }
.intro-copy { border-left: 1px solid var(--line); padding-left: clamp(28px,5vw,68px); color: #cfbbb6; font-size: 1.06rem; }
.intro-copy p:first-child { margin-top: 0; color: var(--cream); font-size: 1.18rem; }
.intro-mission { margin-top:42px;padding-top:36px;border-top:1px solid rgba(255,75,104,.38); }
.intro-mission .eyebrow { margin:0 0 20px;font-size:.64rem !important; }
.intro-mission blockquote { margin:0 0 24px;color:var(--cream);font-family:var(--display);font-size:clamp(2rem,3.25vw,3.4rem);font-style:italic;line-height:1; }
.intro-mission p:not(.eyebrow) { color:var(--muted);font-size:1rem; }
.intro-mission strong { display:block;margin-top:22px;color:#ff8395;font-family:var(--display);font-size:1.35rem;font-style:italic;font-weight:500; }
.story-pillars { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:72px; border-block:1px solid var(--line); }
.story-pillars article { min-width:0; padding:38px 34px 40px 0; }
.story-pillars article + article { padding-left:34px; border-left:1px solid var(--line); }
.story-pillars span { color:#ff6c7e; font-size:.62rem; font-weight:700; letter-spacing:.18em; }
.story-pillars h3 { margin:14px 0 12px; color:var(--cream); font-family:var(--display); font-size:clamp(1.85rem,2.6vw,2.7rem); font-weight:500; line-height:1; }
.story-pillars p { margin:0; color:var(--muted); font-size:.92rem; }
.manifesto { display:grid; grid-template-columns:.35fr 1.25fr .62fr; gap:clamp(32px,5vw,70px); align-items:start; margin-top:100px; padding:58px 0 0; border-top:1px solid rgba(255,75,104,.38); }
.manifesto blockquote { margin:0; color:var(--cream); font-family:var(--display); font-size:clamp(2.4rem,4.2vw,4.5rem); font-style:italic; line-height:.98; }
.manifesto > div { padding-top:8px; color:var(--muted); }
.manifesto > div p { margin-top:0; }
.manifesto strong { display:block; margin-top:28px; color:#ff8395; font-family:var(--display); font-size:1.35rem; font-style:italic; font-weight:500; }

.moments { padding: 150px 0; }
.section-heading { margin-bottom: 54px; }
.section-heading > p:last-child { max-width: 440px; color: var(--muted); }
.focused-gallery { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.gallery-main { display:block; width:100%; height:clamp(500px,60vw,720px); padding:7px; overflow:hidden; border:1px solid rgba(255,75,104,.5); background:#19080c; cursor:zoom-in; box-shadow:0 30px 90px rgba(0,0,0,.52),0 0 32px rgba(228,31,57,.08); transition:border-color .3s ease,box-shadow .3s ease; }
.gallery-main:hover,.gallery-main:focus-visible { border-color:#ff536d; box-shadow:0 34px 96px rgba(0,0,0,.58),0 0 38px rgba(228,31,57,.18); }
.gallery-main img { width:100%;height:100%;object-fit:cover;object-position:center 32%;opacity:1;transform:scale(1);transition:opacity .24s ease,transform .5s ease; }
.gallery-main.is-changing img { opacity:.18;transform:scale(1.008); }
.gallery-strip { display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:12px;align-items:center;margin-top:16px; }
.gallery-thumbnails { display:flex;gap:10px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#8f2335 #18090c;padding:5px 3px 12px; }
.gallery-thumb { flex:0 0 112px;height:82px;padding:3px;overflow:hidden;scroll-snap-align:center;border:1px solid rgba(255,255,255,.12);background:#17080b;cursor:pointer;opacity:.62;transition:opacity .25s ease,border-color .25s ease,box-shadow .25s ease,transform .25s ease; }
.gallery-thumb img { width:100%;height:100%;object-fit:cover; }
.gallery-thumb:hover,.gallery-thumb:focus-visible { opacity:1;transform:translateY(-2px);border-color:rgba(255,83,109,.7); }
.gallery-thumb[aria-pressed="true"] { opacity:1;border-color:#ff3858;box-shadow:0 0 0 2px rgba(255,56,88,.28),0 0 20px rgba(228,31,57,.2); }
.gallery-arrow { min-width:48px;min-height:48px;border:1px solid rgba(255,75,104,.32);background:#19090d;color:#ff7d91;font-size:1.2rem;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease; }
.gallery-arrow:hover,.gallery-arrow:focus-visible { background:#361019;border-color:#ff536d;transform:translateY(-1px); }

.section-heading.split { display:grid; grid-template-columns:1.2fr .5fr; align-items:end; gap:10vw; }

.menu-section { padding: 150px 0; background: radial-gradient(circle at 72% 50%, rgba(228,31,57,.16), transparent 34%), #100709; border-top: 1px solid var(--line); }
.menu-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:7vw; align-items:center; }
.menu-copy > p:not(.eyebrow) { max-width:360px; color:var(--muted); margin:24px 0; }
.menu-showcase { min-height:560px; display:grid; grid-template-columns:1.08fr .92fr; border:1px solid rgba(185,151,101,.42); background:linear-gradient(145deg,rgba(49,10,17,.82),rgba(14,7,8,.9)); box-shadow:0 28px 80px rgba(0,0,0,.34); }
.menu-showcase-image { min-width:0; min-height:560px; padding:7px; overflow:hidden; border:0; border-right:1px solid rgba(185,151,101,.3); background:#16080b; cursor:zoom-in; }
.menu-showcase-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease,filter .35s ease; }
.menu-showcase-image:hover img,.menu-showcase-image:focus-visible img { transform:scale(1.025); filter:saturate(1.08); }
.menu-offerings { display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,4vw,54px); }
.menu-offerings > p { margin:0 0 24px; color:var(--gold); text-transform:uppercase; letter-spacing:.18em; font-size:.65rem; font-weight:700; }
.menu-offerings ul { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.12); }
.menu-offerings li { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:21px 0; border-bottom:1px solid rgba(255,255,255,.12); color:#f0dfe0; font-family:var(--display); font-size:clamp(1.3rem,2vw,1.75rem); line-height:1.1; }
.menu-offerings li span { color:#ff6c7e; font-family:var(--body); font-size:.59rem; letter-spacing:.15em; }
.menu-offerings small { margin-top:28px; color:#a98c91; text-transform:uppercase; letter-spacing:.13em; font-size:.59rem; }
.cocktail-selector { display:grid;border-top:1px solid rgba(255,255,255,.12); }
.cocktail-selector button { position:relative;width:100%;padding:20px 34px 20px 0;border:0;border-bottom:1px solid rgba(255,255,255,.12);background:transparent;color:#bca6aa;font-family:var(--display);font-size:clamp(1.25rem,1.75vw,1.65rem);line-height:1.1;text-align:left;cursor:pointer;transition:color .25s ease,padding-left .25s ease; }
.cocktail-selector button::after { content:"↗";position:absolute;right:2px;top:50%;transform:translateY(-50%);color:#ff6c7e;font-family:var(--body);font-size:.72rem;opacity:0;transition:opacity .25s ease; }
.cocktail-selector button:hover,.cocktail-selector button:focus-visible,.cocktail-selector button.is-active { padding-left:12px;color:var(--cream); }
.cocktail-selector button.is-active::after { opacity:1; }
.menu-showcase-image img.is-changing { opacity:.25;transform:scale(.985); }
.menu-pages { min-height:520px; display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.menu-placeholder { grid-column:1 / -1; min-height:520px; display:grid; place-content:center; justify-items:center; padding:48px; text-align:center; border:1px solid rgba(185,151,101,.42); background:linear-gradient(145deg,rgba(49,10,17,.82),rgba(14,7,8,.88)); box-shadow:0 28px 80px rgba(0,0,0,.34), inset 0 0 0 8px rgba(255,255,255,.015); }
.menu-placeholder > span { width:92px; height:92px; display:grid; place-items:center; margin-bottom:24px; border:1px solid rgba(255,51,77,.55); border-radius:50%; color:var(--lipstick); font-family:var(--display); font-size:4rem; font-style:italic; }
.menu-placeholder p { margin:0; font-family:var(--display); font-size:clamp(2.8rem,5vw,5rem); line-height:.92; }
.menu-placeholder em { color:var(--lipstick); }
.menu-placeholder small { margin-top:22px; color:#927b7d; letter-spacing:.12em; text-transform:uppercase; font-size:.6rem; }
.menu-page { min-height:520px; padding:0; overflow:hidden; border:1px solid rgba(185,151,101,.42); background:#190a0d; cursor:zoom-in; }
.menu-page img { width:100%; height:100%; object-fit:contain; }
.full-menu { margin-top:clamp(70px,9vw,120px); }
.menu-book { overflow:hidden; border:1px solid rgba(185,151,101,.48); background:radial-gradient(circle at 50% 40%,rgba(85,24,31,.42),transparent 52%),#090506; box-shadow:0 34px 100px rgba(0,0,0,.48); }
.menu-book-toolbar { min-height:86px; display:flex; justify-content:space-between; align-items:center; gap:30px; padding:0 clamp(22px,4vw,54px); border-bottom:1px solid rgba(185,151,101,.25); }
.menu-book-tabs { display:flex; align-items:stretch; gap:clamp(18px,4vw,58px); min-width:0; }
.menu-book-tab,.menu-book-open { min-height:48px; border:0; background:transparent; color:var(--gold); font-family:var(--body); text-transform:uppercase; letter-spacing:.13em; font-size:.66rem; cursor:pointer; }
.menu-book-tab { position:relative; padding:4px 2px; color:#bca4a8; }
.menu-book-tab::after { content:""; position:absolute; left:0; right:100%; bottom:0; height:2px; background:var(--lipstick); transition:right .25s ease; }
.menu-book-tab.is-active { color:#fff1e7; }
.menu-book-tab.is-active::after { right:0; }
.menu-book-tools { display:flex; align-items:center; gap:24px; flex:0 0 auto; color:var(--gold); }
.menu-book-count { font-family:var(--display); font-size:1rem; color:#d7b377; white-space:nowrap; }
.menu-book-open { display:inline-flex; gap:8px; align-items:center; }
.menu-book-tab:hover,.menu-book-tab:focus-visible,.menu-book-open:hover,.menu-book-open:focus-visible { color:#fff; }
.menu-book-stage { position:relative; min-height:clamp(560px,68vw,850px); display:grid; place-items:center; overflow:hidden; padding:clamp(28px,4vw,58px) 7vw; perspective:1400px; }
.full-menu .menu-pages { position:relative; width:min(42vw,530px); min-height:0; aspect-ratio:1111/2000; display:block; overflow:visible; }
.full-menu .menu-placeholder { position:absolute; inset:0; min-height:0; }
.full-menu .menu-page { position:absolute; inset:0; min-height:0; width:100%; height:100%; aspect-ratio:1111/2000; padding:8px; border:1px solid rgba(185,151,101,.52); background:#f8f4e9; box-shadow:0 24px 70px rgba(0,0,0,.62); opacity:0; pointer-events:none; transform:translateX(0) scale(.84); transition:transform .45s ease,opacity .35s ease,filter .35s ease; }
.full-menu .menu-page img { display:block; width:100%; height:100%; object-fit:contain; }
.full-menu .menu-page.is-active { z-index:3; opacity:1; pointer-events:auto; transform:none; }
.full-menu .menu-page.is-before { z-index:1; opacity:.56; transform:translateX(-86%) scale(.82) rotateY(5deg); filter:brightness(.58); }
.full-menu .menu-page.is-after { z-index:1; opacity:.56; transform:translateX(86%) scale(.82) rotateY(-5deg); filter:brightness(.58); }
.menu-book-arrow { position:absolute; z-index:5; top:50%; width:52px; height:52px; display:grid; place-items:center; padding:0; border:1px solid rgba(213,167,92,.7); border-radius:50%; background:rgba(12,6,7,.78); color:#e3b864; font-size:1.3rem; cursor:pointer; transform:translateY(-50%); }
.menu-book-arrow:hover,.menu-book-arrow:focus-visible { background:var(--lipstick); color:white; border-color:var(--lipstick); }
.menu-book-prev { left:clamp(15px,3vw,48px); }
.menu-book-next { right:clamp(15px,3vw,48px); }
.menu-book-footer { min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px clamp(22px,4vw,54px); border-top:1px solid rgba(185,151,101,.25); }
.menu-book-footer p { display:flex; align-items:baseline; gap:14px; margin:0; }
.menu-book-footer strong { color:#e5bb70; text-transform:uppercase; letter-spacing:.13em; font-size:.64rem; }
.menu-book-footer span { color:#9f858a; font-size:.76rem; }
.menu-book-dots { display:flex; gap:9px; }
.menu-book-dot { width:44px; height:44px; position:relative; padding:0; border:0; background:transparent; cursor:pointer; }
.menu-book-dot::after { content:""; position:absolute; width:7px; height:7px; left:50%; top:50%; border-radius:50%; background:#765e61; transform:translate(-50%,-50%); }
.menu-book-dot.is-active::after { width:22px; border-radius:5px; background:var(--lipstick); }
.visit-details { display:grid;gap:0;margin:30px 0;max-width:520px;border-top:1px solid rgba(185,151,101,.32); }
.visit-details > div { display:grid;gap:5px;padding:17px 0;border-bottom:1px solid rgba(185,151,101,.32); }
.visit-details span { color:#b99765;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase; }
.visit-details strong,.visit-details a { color:#f5ece8;font-size:1rem;font-weight:600; }
.visit-details a { text-decoration:none; }
.visit-details small { color:#aa9196; }
.visit-actions { display:flex;flex-wrap:wrap;gap:12px;align-items:center; }
.cocktail-block { margin-top:110px; padding-top:80px; border-top:1px solid rgba(185,151,101,.25); }
.cocktail-heading { display:grid; grid-template-columns:1.15fr .55fr; align-items:end; gap:8vw; margin-bottom:48px; }
.cocktail-heading > p { max-width:360px; margin:0 0 10px; color:var(--muted); }
.cocktail-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cocktail-placeholder, .cocktail-photo { position:relative; min-width:0; aspect-ratio:4 / 5; overflow:hidden; border:1px solid rgba(185,151,101,.32); background:linear-gradient(145deg,#2b0a11,#100709 72%); box-shadow:0 22px 60px rgba(0,0,0,.3); }
.cocktail-placeholder:nth-child(2) { aspect-ratio:1 / 1.15; margin-top:42px; }
.cocktail-placeholder::before { content:""; position:absolute; inset:12px; border:1px solid rgba(255,255,255,.045); }
.cocktail-placeholder i { position:absolute; left:50%; top:52%; width:82px; height:150px; transform:translate(-50%,-50%); border:1px solid rgba(255,69,96,.32); border-radius:16px 16px 34px 34px; box-shadow:0 0 48px rgba(228,31,57,.14), inset 0 -30px 40px rgba(228,31,57,.12); }
.cocktail-placeholder i::before { content:""; position:absolute; left:50%; bottom:100%; width:1px; height:76px; background:linear-gradient(var(--gold),transparent); transform:rotate(15deg); transform-origin:bottom; }
.cocktail-photo { padding:0; color:inherit; cursor:zoom-in; transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease; }
.cocktail-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease,filter .35s ease; }
.cocktail-photo:nth-child(2) { margin-top:42px; }
.cocktail-photo:hover, .cocktail-photo:focus-visible { transform:translateY(-7px); border-color:rgba(255,69,96,.72); box-shadow:0 28px 70px rgba(0,0,0,.4),0 0 30px rgba(228,31,57,.16); }
.cocktail-photo:hover img, .cocktail-photo:focus-visible img { transform:scale(1.035); filter:saturate(1.08); }

.visit { position:relative;padding:130px 0;background:radial-gradient(circle at 80% 20%,rgba(228,31,57,.14),transparent 30%),linear-gradient(145deg,#080405,#17080c);color:var(--cream);border-block:1px solid rgba(255,58,88,.2); }
.visit-grid { display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(48px,8vw,110px);align-items:center; }
.visit .eyebrow { color:#ff7187; }
.visit h2 em { color:#ff3858; }
.visit-copy > p:not(.eyebrow) { max-width:420px;margin:24px 0 28px;color:#c8aeb3; }
.social-links { display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:28px; }
.social-links a { color:#ff8295;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;text-underline-offset:4px; }
.nep-map-card { position:relative;padding:18px;background:linear-gradient(145deg,#250a10,#100608);border:1px solid rgba(255,64,94,.48);box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 36px rgba(228,31,57,.11); }
.nep-map-card::before { content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.04);pointer-events:none; }
.nep-map-label { position:relative;display:flex;align-items:end;justify-content:space-between;gap:20px;padding:2px 4px 16px;border-bottom:1px solid rgba(255,74,102,.22); }
.nep-map-label span { color:#a98c91;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase; }
.nep-map-label strong { color:#ffdbe1;font-family:var(--display);font-size:1.45rem;font-weight:400;font-style:italic; }
.map-frame { position:relative;height:360px;margin-top:14px;padding:6px;border:1px solid rgba(255,82,109,.38);background:#2a1116;box-shadow:inset 0 0 24px rgba(255,38,72,.08); }
.map-frame iframe { width:100%; height:100%; border:0; }
.map-frame:focus-within { outline:3px solid rgba(255,76,104,.45);outline-offset:3px; }

.footer { padding:90px 0 28px; background:#070405; border-top:1px solid var(--line); }
.footer-grid { display:grid; grid-template-columns:1.2fr .7fr .7fr; gap:9vw; }
.footer-brand { display:grid; grid-template-columns:74px 1fr; gap:24px; align-items:center; }
.footer-brand img { width:74px; height:98px; object-fit:cover; }
.footer-brand p { margin:0; font-family:var(--display); font-size:2rem; line-height:1; }
.footer-brand em { color:var(--lipstick); }
.footer nav, .footer-grid > div:last-child { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.footer nav p, .footer-grid > div:last-child p { color:var(--gold); text-transform:uppercase; letter-spacing:.16em; font-size:.66rem; }
.footer nav a, .footer nav span, .footer-grid > div:last-child a, .footer-grid > div:last-child span { color:#cab5b0; text-decoration:none; font-size:.82rem; }
.footer nav span { color:#ff8998; }
.copyright { width:min(1180px,calc(100% - 48px)); margin:70px auto 0; padding-top:20px; border-top:1px solid var(--line); color:#765e62; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }

.lightbox { width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:rgba(5,2,3,.96); color:white; overflow:hidden; }
.lightbox::backdrop { background:rgba(5,2,3,.96); }
.lightbox[open] { display:grid; grid-template-columns:72px 1fr 72px; align-items:center; }
.lightbox-stage { height:100dvh; padding:54px 12px; display:grid; place-items:center; }
.lightbox-stage img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; box-shadow:0 24px 80px rgba(0,0,0,.5); }
.lightbox-close, .lightbox-nav, .lightbox-zoom { min-width:48px; min-height:48px; border:1px solid rgba(255,255,255,.25); color:white; background:rgba(255,255,255,.05); cursor:pointer; font-size:1.4rem; }
.lightbox-close { position:absolute; top:18px; right:18px; z-index:2; font-size:2rem; }
.lightbox-zoom { position:absolute; top:18px; right:78px; z-index:2; }
.lightbox-nav { margin:auto; }
.lightbox-stage { overflow:hidden; }
.lightbox-stage.is-zoomed { display:block; overflow:auto; text-align:center; }
.lightbox-stage.is-zoomed img { max-width:none; max-height:none; margin:auto; cursor:zoom-out; }

@media (max-width: 980px) {
  .menu-book-stage { min-height:700px; }
  .site-header { padding-inline:24px; }
  .hero { min-height:900px; }
  .hero-content { width:calc(100% - 48px); padding-bottom:250px; }
  .floor-selector { top:auto; bottom:72px; right:24px; width:min(320px,calc(100% - 48px)); transform:none; }
  .scroll-cue { display:none; }
  .intro-grid, .visit-grid { grid-template-columns:1fr; gap:60px; }
  .intro-copy { max-width:680px; }
  .manifesto { grid-template-columns:.35fr 1.4fr; }
  .manifesto > div { grid-column:2; }
  .menu-layout { grid-template-columns:1fr; }
  .cocktail-heading { grid-template-columns:1fr .65fr; }
}

@media (max-width: 1100px) {
  .hero .floor-selector--nep { margin-top: 64px; }
  .social-rail {
    top: auto;
    right: 50%;
    bottom: calc(12px + env(safe-area-inset-bottom));
    transform: translateX(50%);
    flex-direction: row;
    border: 1px solid rgba(255, 84, 111, .38);
    border-radius: 4px;
    overflow: visible;
  }
  .social-caption { display: none; }
  .social-rail a {
    width: 48px;
    height: 48px;
    border-top: 0;
    border-left: 1px solid rgba(255, 84, 111, .19);
  }
  .social-rail a:first-of-type { border-left: 0; }
  .social-rail a:hover,
  .social-rail a:focus-visible {
    transform: translateY(-3px);
    box-shadow: inset 0 -3px var(--lipstick), 0 0 28px rgba(255, 51, 77, .18);
  }
  .social-rail a::after {
    right: 50%;
    top: auto;
    bottom: calc(100% + 9px);
    transform: translate(50%, 6px);
  }
  .social-rail a:hover::after,
  .social-rail a:focus-visible::after { transform: translate(50%, 0); }
  .footer { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
}

@media (max-width: 720px) {
  .menu-book-toolbar { min-height:0; padding:14px 16px 10px; flex-direction:column; align-items:stretch; gap:4px; }
  .menu-book-tabs { width:100%; gap:4px; overflow:visible; }
  .menu-book-tab { flex:1 1 0; min-width:0; min-height:44px; padding:0 4px; letter-spacing:.08em; font-size:.58rem; text-align:center; }
  .menu-book-tools { width:100%; min-height:44px; justify-content:space-between; gap:8px; border-top:1px solid rgba(185,151,101,.16); }
  .menu-book-open { min-width:44px; justify-content:flex-end; }
  .menu-book-stage { min-height:0; padding:26px 54px; }
  .full-menu .menu-pages { width:min(70vw,430px); }
  .full-menu .menu-page.is-before { transform:translateX(-42%) scale(.88); opacity:.2; }
  .full-menu .menu-page.is-after { transform:translateX(42%) scale(.88); opacity:.2; }
  .menu-book-arrow { width:44px; height:44px; }
  .menu-book-prev { left:7px; }
  .menu-book-next { right:7px; }
  .menu-book-footer { min-height:64px; padding:10px 16px; }
  .menu-book-footer p { display:block; }
  .menu-book-footer span { display:none; }
  .shell { width:calc(100% - 32px); }
  .site-header { min-height:78px; padding:12px 16px; }
  .brand span { display:none; }
  .brand img { width:44px; height:52px; }
  .menu-toggle { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:5px; position:relative; z-index:2; }
  .menu-toggle span { width:24px; height:1px; background:currentColor; }
  .menu-toggle b { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .main-menu { position:absolute; top:0; left:0; right:0; padding:90px 24px 28px; flex-direction:column; align-items:flex-start; gap:18px; background:rgba(10,5,6,.98); border-bottom:1px solid var(--line); transform:translateY(-105%); transition:transform .3s ease; }
  .main-menu.is-open { transform:none; }
  .hero { min-height:0; height:auto; padding-bottom:30px; }
  .hero-content { width:calc(100% - 32px); padding:130px 0 38px; }
  .hero-image { background-position:58% center; }
  .hero-shade { background:linear-gradient(180deg,rgba(7,3,4,.6),rgba(7,3,4,.88) 57%,#090405); }
  .hero-logo { width:76px; height:104px; }
  h1 { font-size:clamp(3.6rem,16vw,5.3rem); }
  .hero-title-story { font-size:clamp(3.35rem,13.5vw,4.65rem); }
  h2 { font-size:clamp(3.15rem,15vw,5rem); }
  .floor-selector { position:relative; top:auto; bottom:auto; left:auto; right:auto; width:auto; margin:0 16px 28px; transform:none; }
  .floor-selector > p { text-align:left; }
  .floor { min-height:65px; }
  .intro { padding:100px 0; }
  .intro-grid { gap:48px; }
  .intro-copy { padding-left:22px; }
  .story-pillars { grid-template-columns:1fr; margin-top:44px; }
  .story-pillars article { padding:28px 0 30px; }
  .story-pillars article + article { padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .manifesto { grid-template-columns:1fr; gap:28px; margin-top:72px; padding-top:42px; }
  .manifesto > div { grid-column:auto; }
  .manifesto > div p { max-width:520px; }
  .moments { padding-bottom:100px; }
  .focused-gallery { width:calc(100% - 24px); }
  .gallery-main { height:clamp(360px,105vw,560px);padding:4px; }
  .gallery-strip { grid-template-columns:46px minmax(0,1fr) 46px;gap:7px; }
  .gallery-thumb { flex-basis:88px;height:68px; }
  .section-heading.split { grid-template-columns:1fr; gap:30px; }
  .menu-section { padding:100px 0; }
  .menu-showcase { min-height:0; grid-template-columns:1fr; }
  .menu-showcase-image { min-height:500px; border-right:0; border-bottom:1px solid rgba(185,151,101,.3); }
  .menu-placeholder, .menu-pages { min-height:430px; }
  .menu-page { min-height:430px; }
  .cocktail-block { margin-top:80px; padding-top:60px; }
  .cocktail-heading { grid-template-columns:1fr; gap:24px; }
  .cocktail-gallery { display:flex; width:100%; gap:12px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; padding:4px 4px 24px; }
  .cocktail-placeholder, .cocktail-photo { flex:0 0 min(76vw,360px); margin-top:0 !important; scroll-snap-align:center; }
  .visit { padding:90px 0; }
  .nep-map-card { padding:12px; }
  .nep-map-label { display:block; }
  .nep-map-label strong { display:block;margin-top:5px; }
  .map-frame { height:270px;padding:5px; }
  .footer { padding-top:72px; }
  .footer-grid { grid-template-columns:1fr; gap:50px; }
  .lightbox[open] { grid-template-columns:58px 1fr 58px; }
  .lightbox-stage { padding:70px 0; }
}

@media (max-width: 440px) {
  .editorial-gallery { grid-template-columns:1fr 1fr; grid-auto-rows:190px; }
  .photo-tall { grid-row:span 2; }
  .menu-pages { grid-template-columns:1fr; }
  .button { width:100%; }
  .lightbox[open] { grid-template-columns:1fr; }
  .lightbox-nav { position:absolute; bottom:18px; z-index:3; }
  .lightbox-nav.prev { left:18px; }
  .lightbox-nav.next { right:18px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* Accessibility refinements */
.copyright { color:#a99195; }
.main-menu a, .scroll-cue, .social-links a, .footer a { min-height:44px; display:inline-flex; align-items:center; }

/* NẾP editorial story */
.nep-story{padding:clamp(110px,10vw,170px) 0;background:#12090b}
.nep-story-lead{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(56px,9vw,130px);align-items:start;padding-bottom:clamp(80px,8vw,130px)}
.nep-story-lead>.eyebrow,.nep-story-lead>h2{grid-column:1}
.nep-story-lead>h2{font-size:clamp(3.8rem,6vw,7rem)}
.nep-story-lead>div{grid-column:2;grid-row:1/3;padding-left:clamp(28px,4vw,58px);border-left:1px solid var(--line)}
.nep-story-lead>div p{margin:0 0 20px;color:#cfbbb6;font-size:1.04rem}
.nep-story-lead>div p:first-child{color:var(--cream);font-size:1.22rem}
.nep-story-chapters{border-top:1px solid var(--line)}
.nep-story-chapters article{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(46px,8vw,120px);padding:clamp(70px,7vw,110px) 0;border-bottom:1px solid var(--line)}
.nep-story-chapters article>.eyebrow,.nep-story-chapters article>h3{grid-column:1}
.nep-story-chapters h3{margin:0;color:var(--cream);font:500 clamp(2.7rem,4vw,4.8rem)/.98 var(--display)}
.chapter-copy{grid-column:2;grid-row:1/3;columns:2;column-gap:44px}
.chapter-copy p{break-inside:avoid;margin:0 0 20px;color:#c8b2b7}
.chapter-copy p:first-child{color:#f0dfe0;font-size:1.1rem}
.nep-story-close{max-width:980px;margin:clamp(80px,8vw,125px) auto 0;text-align:center}
.nep-story-close blockquote{margin:22px 0 28px;color:var(--cream);font:italic 500 clamp(2.5rem,4.5vw,5rem)/1 var(--display)}
.nep-story-close>p:last-child{max-width:650px;margin-inline:auto;color:#c8b2b7}
@media(max-width:900px){
  .nep-story-lead,.nep-story-chapters article{grid-template-columns:1fr;gap:34px}
  .nep-story-lead>.eyebrow,.nep-story-lead>h2,.nep-story-lead>div,.nep-story-chapters article>.eyebrow,.nep-story-chapters article>h3,.chapter-copy{grid-column:1;grid-row:auto}
  .nep-story-lead>div{padding:32px 0 0;border-left:0;border-top:1px solid var(--line)}
}
@media(max-width:650px){
  .nep-story{padding:92px 0}
  .nep-story-lead{padding-bottom:70px}
  .nep-story-lead>h2{font-size:clamp(3.2rem,14vw,4.8rem)}
  .chapter-copy{columns:1}
  .nep-story-chapters article{padding:62px 0}
  .nep-story-chapters h3{font-size:clamp(2.5rem,11vw,3.8rem)}
}

/* Compact story chooser */
.nep-story .nep-story-lead{max-width:900px;grid-template-columns:1fr;padding-bottom:clamp(58px,6vw,90px)}
.nep-story-chooser{display:grid;grid-template-columns:.42fr 1fr;width:100%;min-width:0;max-width:100%;margin-top:clamp(70px,7vw,110px);overflow:hidden;border:1px solid rgba(185,151,101,.34);background:#0d0608}
.nep-story-chooser>header{min-width:0;max-width:100%;padding:clamp(34px,4vw,58px);border-right:1px solid rgba(185,151,101,.28);background:#19090d}
.nep-story-chooser>header h3{margin:0;color:var(--cream);font:500 clamp(2.7rem,4vw,4.6rem)/.96 var(--display)}
.nep-story-chooser>header h3 em{color:#ff6c7e}
.story-choice-tabs{display:grid;margin-top:46px;border-top:1px solid rgba(255,255,255,.13)}
.story-choice-tabs button{display:grid;grid-template-columns:34px 1fr;align-items:center;min-height:68px;padding:14px 0;border:0;border-bottom:1px solid rgba(255,255,255,.13);background:transparent;color:#bca6ab;font:600 .72rem var(--body);letter-spacing:.12em;text-align:left;text-transform:uppercase;cursor:pointer;transition:color .2s ease,padding-left .2s ease,background .2s ease}
.story-choice-tabs button span{color:#ff6c7e;font-size:.6rem}
.story-choice-tabs button:hover,.story-choice-tabs button:focus-visible{color:#fff;padding-left:8px}
.story-choice-tabs button[aria-selected=true]{padding-left:12px;background:rgba(255,74,102,.1);color:#fff}
.story-choice-tabs button:nth-child(2){line-height:1.35}
.story-choice-panels{min-width:0;padding:clamp(38px,6vw,82px)}
.story-choice-panels article[hidden]{display:none}
.story-choice-panels h4{margin:0 0 42px;color:var(--cream);font:500 clamp(3rem,4.8vw,5.7rem)/.95 var(--display)}
.story-choice-panels .chapter-copy{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;columns:auto}
.story-choice-panels .chapter-copy p{margin-bottom:18px}
@media(max-width:900px){
  .nep-story-chooser{grid-template-columns:1fr}
  .nep-story-chooser>header{border-right:0;border-bottom:1px solid rgba(185,151,101,.28)}
  .story-choice-tabs{grid-template-columns:repeat(5,1fr)}
  .story-choice-tabs button{grid-template-columns:1fr;gap:4px;padding:16px 12px;text-align:center}
  .story-choice-tabs button:hover,.story-choice-tabs button:focus-visible,.story-choice-tabs button[aria-selected=true]{padding-left:12px}
}
@media(max-width:650px){
  .nep-story-chooser>header{padding:28px 20px 0}
  .story-choice-tabs{display:flex;width:100%;max-width:100%;margin-top:30px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#8f2335 #18090c}
  .story-choice-tabs button{flex:0 0 132px;min-width:0;scroll-snap-align:start;padding:14px 8px}
  .story-choice-tabs button:hover,.story-choice-tabs button:focus-visible,.story-choice-tabs button[aria-selected=true]{padding-left:8px}
  .story-choice-panels{padding:34px 22px}
  .story-choice-panels h4{font-size:clamp(2.7rem,12vw,4rem)}
  .story-choice-panels .chapter-copy{grid-template-columns:1fr}
}

/* Cute editorial welcome feature — styling only */
.nep-story .nep-story-lead{
  position:relative;
  max-width:1080px;
  display:block;
  margin:0 auto;
  padding:clamp(54px,7vw,92px) clamp(28px,7vw,100px);
  overflow:hidden;
  border:1px solid rgba(231,154,166,.36);
  border-radius:42px;
  background:linear-gradient(145deg,rgba(78,19,31,.78),rgba(34,9,15,.92));
  box-shadow:0 34px 90px rgba(0,0,0,.3),inset 0 0 0 8px rgba(255,255,255,.015);
  text-align:center
}
.nep-story .nep-story-lead::before,.nep-story .nep-story-lead::after{
  content:"";
  position:absolute;
  width:150px;
  height:150px;
  border:1px solid rgba(231,154,166,.2);
  border-radius:50%;
  pointer-events:none
}
.nep-story .nep-story-lead::before{left:-78px;top:-82px;box-shadow:0 0 0 24px rgba(231,154,166,.035)}
.nep-story .nep-story-lead::after{right:-78px;bottom:-82px;box-shadow:0 0 0 24px rgba(185,151,101,.035)}
.nep-story .nep-story-lead .eyebrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 28px;
  padding:10px 18px;
  border:1px solid rgba(255,131,149,.46);
  border-radius:999px;
  background:rgba(255,108,126,.1);
  color:#ff9aaa;
  letter-spacing:.19em
}
.nep-story .nep-story-lead h2{
  max-width:900px;
  margin:0 auto;
  color:#f8ebdf;
  font-size:clamp(3.8rem,6.8vw,7.6rem);
  line-height:.9;
  letter-spacing:-.045em
}
.nep-story .nep-story-lead h2 em{
  display:block;
  margin-top:14px;
  color:#ff8295;
  font-size:.82em;
  line-height:.95;
  text-shadow:0 8px 30px rgba(255,62,91,.16)
}
.nep-story .nep-story-lead h2 em::after{
  content:"";
  display:block;
  width:88px;
  height:2px;
  margin:34px auto 0;
  background:#b99765
}
.nep-story-chooser{margin-top:clamp(48px,6vw,82px)}
@media(max-width:650px){
  .nep-story .nep-story-lead{padding:48px 20px;border-radius:26px}
  .nep-story .nep-story-lead h2{font-size:clamp(3.1rem,14vw,4.6rem)}
  .nep-story .nep-story-lead h2 em{margin-top:10px}
}
img.is-missing { visibility:hidden; }
@media (forced-colors: active) {
  a, button { forced-color-adjust:auto; }
  .photo, .menu-page, .cocktail-photo { border:1px solid CanvasText; }
}
