@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[aria-disabled="true"] { cursor: default; }
.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"); }

.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; }
.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; }
.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; }
.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) {
  .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) {
  .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) {
  .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; }
img.is-missing { visibility:hidden; }
@media (forced-colors: active) {
  a, button { forced-color-adjust:auto; }
  .photo, .menu-page, .cocktail-photo { border:1px solid CanvasText; }
}
