:root {
  --ink: #050507;
  --paper: #f2efe7;
  --muted: #a9a8a4;
  --ember: #ff4d16;
  --amber: #ff9a1f;
  --electric: #20d6ff;
  --acid: #d7ff34;
  --panel-pad: clamp(24px, 6vw, 96px);
  --header-h: 104px;
  --mx: 50%;
  --my: 50%;
}

* { box-sizing: border-box; }

html {
  background: var(--ink);
  color-scheme: dark;
  scrollbar-width: none;
}

html::-webkit-scrollbar,
.horizontal-rail::-webkit-scrollbar { display: none; }

body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  overflow: hidden;
  overscroll-behavior: none;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: fixed;
  top: 12px; left: 12px;
  z-index: 1000;
  transform: translateY(-150%);
  padding: 12px 18px;
  background: var(--paper);
  color: var(--ink);
}
.skip-link:focus { transform: none; }

::selection { background: var(--ember); color: white; }

.site-loader {
  isolation: isolate;
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  place-content: center;
  gap: 22px;
  background: #030304;
  text-align: center;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .36em;
  transition: opacity .65s ease, visibility .65s ease;
}
.site-loader.is-gone { opacity: 0; visibility: hidden; }
.loader-orbit {
  width: 76px; height: 76px;
  margin: auto;
  border: 1px solid rgba(255,255,255,.16);
  border-top-color: var(--ember);
  border-right-color: var(--amber);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(255,77,22,.22);
  animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.ambient {
  position: fixed;
  inset: 0;
  z-index: 30;
  pointer-events: none;
  overflow: hidden;
  mix-blend-mode: screen;
}
.ambient-glow {
  position: absolute;
  width: 44vw; height: 44vw;
  min-width: 380px; min-height: 380px;
  border-radius: 50%;
  filter: blur(100px);
  opacity: .13;
  will-change: transform;
  transition: transform .22s ease-out;
}
.ambient-glow--orange {
  left: calc(var(--mx) - 22vw);
  top: calc(var(--my) - 22vw);
  background: var(--ember);
}
.ambient-glow--blue {
  right: -18vw; bottom: -22vw;
  background: var(--electric);
  animation: glow-drift 12s ease-in-out infinite alternate;
}
.smoke {
  position: absolute;
  width: 72vw; height: 50vh;
  border-radius: 50%;
  opacity: .1;
  filter: blur(80px);
  background: radial-gradient(ellipse, rgba(210,220,231,.8), transparent 68%);
  animation: smoke-drift 18s ease-in-out infinite alternate;
}
.smoke--one { left: -20vw; bottom: -23vh; transform: rotate(12deg); }
.smoke--two { right: -32vw; top: -20vh; animation-delay: -7s; animation-duration: 24s; }
.grain {
  position: absolute;
  inset: -50%;
  opacity: .055;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
  animation: grain .25s steps(2) infinite;
}
@keyframes grain { 0% { transform: translate(0); } 25% { transform: translate(3%, -2%); } 50% { transform: translate(-2%, 3%); } 75% { transform: translate(2%, 2%); } 100% { transform: translate(-3%, -1%); } }
@keyframes glow-drift { to { transform: translate(-16vw, -9vh) scale(1.18); } }
@keyframes smoke-drift { to { transform: translate(25vw, -9vh) rotate(-8deg) scale(1.2); } }

.site-header {
  position: fixed;
  z-index: 90;
  top: 0; left: 0; right: 0;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px clamp(22px, 4vw, 64px);
  background: linear-gradient(to bottom, rgba(3,3,4,.88), transparent);
  pointer-events: none;
}
.site-header a, .site-header button { pointer-events: auto; }
.brand { width: 94px; height: 62px; display: flex; align-items: center; }
.brand img { width: 100%; filter: drop-shadow(0 0 12px rgba(255,76,18,.35)); }
.desktop-nav { display: flex; align-items: center; gap: clamp(20px, 2.5vw, 42px); }
.desktop-nav a {
  position: relative;
  padding: 10px 0;
  color: rgba(255,255,255,.72);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: color .25s ease;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: 3px;
  height: 1px;
  background: var(--ember);
  box-shadow: 0 0 8px var(--ember);
  transition: right .3s ease;
}
.desktop-nav a:hover { color: white; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 22px; }
.app-link {
  padding: 13px 18px;
  border: 1px solid rgba(255,255,255,.22);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: border-color .25s, box-shadow .25s, color .25s;
}
.app-link:hover { color: var(--amber); border-color: var(--ember); box-shadow: 0 0 18px rgba(255,77,22,.26); }
.menu-toggle {
  display: none;
  width: 48px; height: 48px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: rgba(0,0,0,.25);
  place-content: center;
  gap: 4px;
  cursor: pointer;
}
.menu-toggle > span:not(.screen-reader-text) { display: block; width: 18px; height: 1px; background: white; transition: transform .3s, opacity .3s; }
.menu-open .menu-toggle > span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.menu-open .menu-toggle > span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle > span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  align-items: center;
  padding: 110px var(--panel-pad) 50px;
  background: rgba(4,4,6,.97);
  opacity: 0;
  visibility: hidden;
  transform: translateX(8%);
  transition: opacity .4s, transform .4s, visibility .4s;
}
.mobile-menu::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 50%, rgba(255,77,22,.16), transparent 45%); }
.mobile-menu__inner { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.mobile-menu__inner > a:not(.mobile-app) { font-size: clamp(36px, 8vw, 72px); font-weight: 900; line-height: 1; text-transform: uppercase; }
.mobile-menu__inner > a span { color: var(--ember); }
.mobile-app { margin-top: 20px; padding: 13px 18px; border: 1px solid var(--ember); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.menu-open .mobile-menu { opacity: 1; visibility: visible; transform: none; }

.scroll-progress {
  position: fixed;
  z-index: 95;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: rgba(255,255,255,.08);
}
.scroll-progress span {
  display: block;
  width: 100%; height: 100%;
  transform: scaleX(0);
  transform-origin: left;
  background: linear-gradient(90deg, var(--ember), var(--amber), var(--electric));
  box-shadow: 0 0 12px var(--ember);
}

.horizontal-rail {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100vw;
  height: 100svh;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  touch-action: pan-x;
}
.panel {
  position: relative;
  flex: 0 0 100vw;
  width: 100vw;
  height: 100svh;
  min-height: 640px;
  overflow: hidden;
  scroll-snap-align: start;
  isolation: isolate;
}
.panel::after {
  content: attr(data-panel);
  position: absolute;
  left: var(--panel-pad); bottom: 25px;
  z-index: 5;
  color: rgba(255,255,255,.42);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.full-bleed, .full-bleed img { width: 100%; height: 100%; object-fit: cover; }
.eyebrow {
  margin: 0 0 18px;
  color: var(--amber);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .3em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; display: inline-block; width: 26px; height: 1px; margin: 0 12px 3px 0; background: currentColor; box-shadow: 0 0 8px currentColor; }
h1, h2, h3, p { margin-top: 0; }
h2 {
  margin-bottom: 28px;
  font-size: clamp(52px, 7vw, 116px);
  font-weight: 950;
  line-height: .82;
  letter-spacing: -.065em;
  text-transform: uppercase;
}
h2 em { color: transparent; font-style: normal; -webkit-text-stroke: 1px rgba(255,255,255,.72); text-shadow: 0 0 26px rgba(255,77,22,.22); }
.neon-button, .outline-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 25px;
  border: 1px solid var(--ember);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: transform .25s, color .25s, background .25s, box-shadow .25s;
}
.neon-button { background: var(--ember); color: white; box-shadow: 0 0 28px rgba(255,77,22,.25), inset 0 0 16px rgba(255,190,80,.15); }
.neon-button span, .outline-button span { margin-left: 16px; font-size: 18px; line-height: 1; }
.neon-button:hover { transform: translateY(-3px); box-shadow: 0 0 42px rgba(255,77,22,.52); }
.outline-button { border-color: rgba(255,255,255,.34); background: rgba(0,0,0,.18); backdrop-filter: blur(8px); }
.outline-button:hover { border-color: var(--electric); color: var(--electric); box-shadow: 0 0 22px rgba(32,214,255,.18); }
.text-link, .social-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,.3);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.text-link span, .social-link span { color: var(--ember); font-size: 18px; transition: transform .25s; }
.text-link:hover span, .social-link:hover span { transform: translateX(6px); }

/* Hero */
.hero-panel { background: #050505; }
.hero-media { position: absolute; inset: 0; }
.hero-media img { filter: saturate(.82) contrast(1.12) brightness(.7); transform: scale(1.035); animation: hero-breathe 14s ease-in-out infinite alternate; }
@keyframes hero-breathe { to { transform: scale(1.095); } }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.83) 0%, rgba(0,0,0,.38) 47%, rgba(0,0,0,.18)), linear-gradient(0deg, rgba(0,0,0,.68), transparent 50%); }
.hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: min(760px, 75vw);
  height: 100%;
  padding: calc(var(--header-h) + 30px) 0 90px var(--panel-pad);
}
.hero-logo { width: clamp(330px, 40vw, 670px); max-height: 32vh; object-fit: contain; object-position: left; filter: drop-shadow(0 0 24px rgba(255,77,22,.2)); }
.hero-tagline { margin: 8px 0 28px; font-size: clamp(22px, 2.6vw, 42px); font-weight: 800; line-height: 1.03; letter-spacing: -.04em; text-transform: uppercase; }
.hero-ctas { display: flex; align-items: center; gap: 30px; }
.open-pill {
  position: absolute;
  z-index: 3;
  right: var(--panel-pad); bottom: 72px;
  padding: 12px 16px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(4,4,4,.5);
  backdrop-filter: blur(10px);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.open-pill span { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--acid); box-shadow: 0 0 12px var(--acid); animation: pulse 1.6s ease infinite; }
@keyframes pulse { 50% { opacity: .38; } }

/* Story */
.story-panel { display: grid; grid-template-columns: 46% 54%; align-items: center; padding: var(--header-h) var(--panel-pad) 60px; background: radial-gradient(circle at 34% 44%, #26100a, #080709 46%, #030304 75%); }
.story-number { position: absolute; left: 1vw; top: 12vh; color: rgba(255,255,255,.025); font-size: 42vw; font-weight: 950; line-height: .7; letter-spacing: -.12em; }
.story-copy { position: relative; z-index: 2; max-width: 660px; padding-right: 4vw; }
.story-copy > p:not(.eyebrow) { max-width: 520px; margin-bottom: 30px; color: #bdb8b0; font-size: clamp(15px, 1.3vw, 20px); line-height: 1.65; }
.stacked-visual { position: relative; justify-self: end; width: min(48vw, 720px); height: min(70vh, 760px); }
.stacked-visual picture { position: absolute; overflow: hidden; box-shadow: 0 28px 80px rgba(0,0,0,.48); }
.stacked-visual picture img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.stacked-visual:hover img { transform: scale(1.045); }
.stacked-visual__main { inset: 0 15% 8% 0; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); }
.stacked-visual__float { width: 42%; height: 44%; right: 0; bottom: 0; border: 6px solid #080709; }
.scribble { position: absolute; right: 4%; top: 10%; z-index: 3; transform: rotate(7deg); color: var(--amber); font-family: cursive; font-size: clamp(18px, 2vw, 28px); text-shadow: 0 0 12px rgba(255,154,31,.4); }

/* Taste */
.taste-panel { display: grid; grid-template-columns: 54% 46%; align-items: center; padding: var(--header-h) var(--panel-pad) 50px; background: linear-gradient(135deg, #100603, #060506 55%, #110b04); }
.taste-collage { position: relative; height: min(72vh, 740px); }
.taste-photo { position: absolute; overflow: hidden; }
.taste-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9) contrast(1.08); }
.taste-photo--one { inset: 3% 17% 4% 0; clip-path: polygon(0 0, 92% 0, 100% 88%, 14% 100%); }
.taste-photo--two { width: 37%; height: 39%; right: 1%; bottom: 4%; border: 5px solid #080607; transform: rotate(3deg); }
.taste-stamp { position: absolute; right: 4%; top: 5%; z-index: 3; display: grid; place-items: center; width: 118px; height: 118px; border: 1px solid var(--amber); border-radius: 50%; color: var(--amber); text-align: center; font-size: 14px; font-weight: 950; line-height: .9; letter-spacing: .14em; transform: rotate(10deg); box-shadow: 0 0 28px rgba(255,154,31,.12); }
.taste-copy { max-width: 650px; padding-left: 4vw; }
.taste-copy h2 span { color: var(--ember); text-shadow: 0 0 28px rgba(255,77,22,.3); }
.taste-copy > p:not(.eyebrow) { max-width: 520px; color: #bdb8b0; font-size: clamp(15px, 1.25vw, 19px); line-height: 1.65; }
.menu-buttons { display: flex; gap: 12px; margin-top: 32px; }

/* Play */
.play-panel { background: #050707; }
.play-photo { position: absolute; overflow: hidden; }
.play-photo img { width: 100%; height: 100%; object-fit: cover; }
.play-photo--main { inset: 0 47% 0 0; }
.play-photo--main::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 42%, #050707 100%), linear-gradient(0deg, rgba(0,0,0,.55), transparent 50%); }
.play-photo--detail { z-index: 2; width: 24vw; height: 37vh; right: 4.5vw; bottom: 8vh; transform: rotate(2.5deg); border: 5px solid #0b0d0d; box-shadow: 0 22px 70px rgba(0,0,0,.55); }
.play-photo--detail span { position: absolute; right: 15px; bottom: 12px; padding: 8px 10px; background: var(--acid); color: #10130a; font-family: cursive; font-size: 18px; transform: rotate(-4deg); }
.play-copy { position: absolute; z-index: 3; left: 42%; top: 50%; width: 44%; transform: translateY(-53%); }
.play-copy h2 em { -webkit-text-stroke-color: var(--electric); text-shadow: 0 0 25px rgba(32,214,255,.2); }
.play-copy p:not(.eyebrow) { max-width: 520px; color: #b4b9ba; font-size: clamp(15px, 1.2vw, 19px); line-height: 1.65; }
.pool-ball { position: absolute; z-index: 4; display: grid; place-items: center; border-radius: 50%; font-weight: 900; box-shadow: inset -12px -12px 22px rgba(0,0,0,.38), 0 20px 50px rgba(0,0,0,.45); animation: ball-float 5s ease-in-out infinite alternate; }
.pool-ball::after { content: ""; position: absolute; width: 46%; height: 46%; border-radius: 50%; background: #eee; z-index: -1; }
.pool-ball--8 { width: 78px; height: 78px; left: 34%; bottom: 12%; background: #111; color: #111; }
.pool-ball--3 { width: 54px; height: 54px; right: 34%; top: 19%; background: #e24724; color: #e24724; animation-delay: -2s; }
@keyframes ball-float { to { transform: translateY(-16px) rotate(12deg); } }

/* Live */
.live-panel { background: #050405; }
.live-backdrop { position: absolute; inset: 0 42% 0 0; }
.live-backdrop img { filter: brightness(.68) saturate(.85); }
.live-backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.2), #050405 96%); }
.live-copy { position: absolute; z-index: 3; left: 49%; top: 51%; width: 47%; transform: translateY(-50%); }
.live-copy h2 span { color: transparent; -webkit-text-stroke: 1px var(--ember); text-shadow: 0 0 30px rgba(255,77,22,.22); }
.live-copy > p:not(.eyebrow) { max-width: 520px; color: #bdb6b7; font-size: clamp(15px, 1.2vw, 19px); line-height: 1.65; }
.live-drum { position: absolute; z-index: 4; right: 3vw; bottom: 3vh; width: 19vw; height: 26vh; clip-path: polygon(9% 0, 100% 9%, 91% 100%, 0 91%); opacity: .7; mix-blend-mode: screen; }
.live-drum img { width: 100%; height: 100%; object-fit: cover; }
.equalizer { position: absolute; z-index: 2; left: 44%; bottom: 0; display: flex; align-items: flex-end; gap: 7px; height: 24vh; opacity: .15; }
.equalizer i { display: block; width: 5px; height: 50%; background: var(--ember); box-shadow: 0 0 8px var(--ember); animation: eq 1.1s ease-in-out infinite alternate; }
.equalizer i:nth-child(2n) { height: 85%; animation-delay: -.6s; }
.equalizer i:nth-child(3n) { height: 28%; animation-delay: -.2s; }
.equalizer i:nth-child(5n) { height: 100%; animation-delay: -.8s; }
@keyframes eq { to { height: 12%; } }
.social-link { margin-top: 15px; color: var(--amber); }

/* Gallery teaser */
.gallery-teaser { background: radial-gradient(circle at 50% 50%, #17100e, #050506 60%); }
.gallery-title { position: absolute; z-index: 5; left: var(--panel-pad); top: 51%; width: 36vw; transform: translateY(-50%); }
.gallery-shot { position: absolute; padding: 0; border: 0; overflow: hidden; background: #111; cursor: zoom-in; box-shadow: 0 24px 70px rgba(0,0,0,.48); }
.gallery-shot picture, .gallery-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s; }
.gallery-shot:hover img { transform: scale(1.06); filter: saturate(1.14); }
.gallery-shot--one { width: 36vw; height: 57vh; left: 38vw; top: 15vh; transform: rotate(-1.8deg); }
.gallery-shot--two { width: 24vw; height: 37vh; right: 2.7vw; top: 11vh; transform: rotate(2.7deg); }
.gallery-shot--three { width: 21vw; height: 31vh; right: 7vw; bottom: 5vh; transform: rotate(-3.2deg); }

/* Finale */
.finale-panel { background: #080505; }
.finale-image { position: absolute; inset: 0 0 0 54%; }
.finale-image picture, .finale-image img { width: 100%; height: 100%; object-fit: cover; }
.finale-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #080505, transparent 45%), linear-gradient(0deg, rgba(0,0,0,.5), transparent); }
.finale-glow { position: absolute; z-index: 2; left: -12vw; top: 18%; width: 56vw; height: 56vw; border-radius: 50%; border: 1px solid rgba(255,77,22,.2); box-shadow: 0 0 70px rgba(255,77,22,.15), inset 0 0 70px rgba(255,77,22,.08); }
.finale-copy { position: absolute; z-index: 3; left: var(--panel-pad); top: 48%; width: 50%; transform: translateY(-50%); }
.finale-copy h2 em { -webkit-text-stroke-color: var(--amber); }
.finale-actions { display: flex; gap: 12px; margin: 32px 0; }
.address { color: #9f9994; font-size: 12px; font-weight: 700; line-height: 1.7; letter-spacing: .08em; text-transform: uppercase; }
.panel-footer { position: absolute; z-index: 4; left: var(--panel-pad); right: var(--panel-pad); bottom: 22px; display: grid; grid-template-columns: 150px 1fr auto; align-items: end; gap: 40px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.13); color: #777; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.panel-footer img { width: 140px; opacity: .7; }
.panel-footer div { display: flex; gap: 22px; }
.panel-footer a:hover { color: var(--amber); }

.rail-hint {
  position: fixed;
  z-index: 45;
  left: 50%; bottom: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  transform: translateX(-50%);
  color: rgba(255,255,255,.48);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  pointer-events: none;
  transition: opacity .3s;
}
.rail-hint i { position: relative; width: 56px; height: 1px; background: rgba(255,255,255,.2); overflow: hidden; }
.rail-hint i::after { content: ""; position: absolute; left: -40%; width: 40%; height: 100%; background: var(--ember); box-shadow: 0 0 8px var(--ember); animation: hint 1.8s ease infinite; }
.rail-hint b { color: var(--ember); font-size: 18px; }
@keyframes hint { to { left: 110%; } }
.quick-actions { position: fixed; z-index: 46; right: 32px; bottom: 20px; display: flex; gap: 20px; }
.quick-actions a { font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.quick-actions a:hover { color: var(--amber); }

.lightbox {
  width: min(90vw, 1180px);
  height: min(88vh, 820px);
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  background: #050506;
  color: white;
  box-shadow: 0 40px 140px #000;
}
.lightbox::backdrop { background: rgba(0,0,0,.88); backdrop-filter: blur(12px); }
.lightbox img { width: 100%; height: calc(100% - 52px); object-fit: contain; }
.lightbox p { margin: 0; padding: 15px 22px; color: #aaa; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.lightbox__close { position: absolute; z-index: 2; right: 12px; top: 12px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(0,0,0,.55); font-size: 25px; cursor: pointer; }

/* Shared inner pages */
.inner-intro { display: grid; grid-template-columns: 48% 52%; align-items: center; padding: var(--header-h) var(--panel-pad) 55px; background: #060607; }
.inner-intro__copy { position: relative; z-index: 3; max-width: 680px; }
.inner-intro__copy h1 { margin: 0 0 25px; font-size: clamp(68px, 10vw, 160px); font-weight: 950; line-height: .78; letter-spacing: -.075em; text-transform: uppercase; }
.inner-intro__copy h1 em { color: transparent; font-style: normal; -webkit-text-stroke: 1px var(--ember); text-shadow: 0 0 30px rgba(255,77,22,.22); }
.inner-intro__copy > p:not(.eyebrow) { max-width: 570px; color: #b0aaa6; font-size: clamp(16px, 1.35vw, 21px); line-height: 1.65; }
.inner-intro__image { position: absolute; inset: 0 0 0 46%; }
.inner-intro__image picture, .inner-intro__image img { width: 100%; height: 100%; object-fit: cover; }
.inner-intro__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #060607 0, transparent 55%), linear-gradient(0deg, rgba(0,0,0,.55), transparent); }
.quote-panel { display: grid; place-items: center; padding: var(--header-h) var(--panel-pad) 60px; background: radial-gradient(circle, #271007, #050506 65%); text-align: center; }
.quote-panel blockquote { position: relative; z-index: 2; max-width: 1100px; margin: 0; font-size: clamp(42px, 7vw, 106px); font-weight: 950; line-height: .92; letter-spacing: -.055em; text-transform: uppercase; }
.quote-panel blockquote span { color: var(--amber); text-shadow: 0 0 25px rgba(255,154,31,.25); }
.facts-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: center; padding: var(--header-h) var(--panel-pad) 60px; background: #070708; }
.facts-panel__image { height: 65vh; overflow: hidden; clip-path: polygon(0 0, 100% 7%, 92% 100%, 5% 94%); }
.facts-panel__image picture, .facts-panel__image img { width: 100%; height: 100%; object-fit: cover; }
.facts-list { display: grid; gap: 26px; }
.fact { padding: 0 0 22px; border-bottom: 1px solid rgba(255,255,255,.13); }
.fact strong { display: block; color: var(--ember); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; }
.fact span { display: block; margin-top: 8px; font-size: clamp(22px, 2.6vw, 40px); font-weight: 850; text-transform: uppercase; }

/* Gallery page */
.gallery-cover { background: #050506; }
.gallery-cover__image { position: absolute; inset: 0; }
.gallery-cover__image picture, .gallery-cover__image img { width: 100%; height: 100%; object-fit: cover; }
.gallery-cover__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.85), rgba(0,0,0,.16)), linear-gradient(0deg, rgba(0,0,0,.65), transparent 55%); }
.gallery-cover__copy { position: absolute; z-index: 2; left: var(--panel-pad); top: 50%; transform: translateY(-50%); }
.gallery-cover__copy h1 { margin: 0; font-size: clamp(76px, 14vw, 230px); font-weight: 950; line-height: .78; letter-spacing: -.08em; text-transform: uppercase; }
.gallery-cover__copy h1 span { display: block; color: transparent; -webkit-text-stroke: 1px var(--amber); }
.gallery-wall { display: grid; grid-template-columns: repeat(12, 1fr); grid-template-rows: repeat(10, 1fr); gap: 16px; padding: calc(var(--header-h) + 16px) var(--panel-pad) 55px; background: #060607; }
.gallery-wall button { padding: 0; border: 0; overflow: hidden; background: #111; cursor: zoom-in; }
.gallery-wall button picture, .gallery-wall button img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s, filter .4s; }
.gallery-wall button:hover img { transform: scale(1.055); filter: saturate(1.2); }
.gallery-wall button:nth-of-type(1) { grid-area: 1 / 1 / 7 / 6; }
.gallery-wall button:nth-of-type(2) { grid-area: 1 / 6 / 5 / 10; }
.gallery-wall button:nth-of-type(3) { grid-area: 1 / 10 / 6 / 13; }
.gallery-wall button:nth-of-type(4) { grid-area: 7 / 1 / 11 / 5; }
.gallery-wall button:nth-of-type(5) { grid-area: 5 / 6 / 11 / 9; }
.gallery-wall button:nth-of-type(6) { grid-area: 6 / 9 / 11 / 13; }

/* Contact page */
.contact-panel { display: grid; grid-template-columns: 43% 57%; align-items: center; padding: var(--header-h) var(--panel-pad) 55px; background: radial-gradient(circle at 15% 50%, #2a1007, #060607 50%); }
.contact-copy h1 { margin: 0 0 28px; font-size: clamp(64px, 8vw, 132px); line-height: .82; letter-spacing: -.07em; text-transform: uppercase; }
.contact-copy h1 span { color: transparent; -webkit-text-stroke: 1px var(--ember); }
.contact-details { display: grid; gap: 18px; margin-top: 38px; }
.contact-details a, .contact-details p { margin: 0; color: #c2bdb8; font-size: clamp(14px, 1.1vw, 18px); line-height: 1.5; }
.contact-details strong { display: block; margin-bottom: 4px; color: var(--amber); font-size: 9px; letter-spacing: .2em; text-transform: uppercase; }
.contact-form-wrap { max-width: 720px; margin-left: 5vw; padding: clamp(26px, 4vw, 56px); border: 1px solid rgba(255,255,255,.12); background: rgba(4,4,5,.72); backdrop-filter: blur(16px); box-shadow: 0 30px 100px rgba(0,0,0,.4); }
.contact-form-wrap h2 { margin-bottom: 12px; font-size: clamp(34px, 4vw, 64px); }
.contact-form-wrap > p { color: #8f8d8a; }
.nub-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 30px; }
.form-field { display: grid; gap: 7px; }
.form-field--full { grid-column: 1 / -1; }
.form-field label { color: #aaa6a2; font-size: 9px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.form-field input, .form-field textarea, .form-field select { width: 100%; border: 0; border-bottom: 1px solid rgba(255,255,255,.22); border-radius: 0; padding: 12px 2px; background: transparent; color: white; outline: none; }
.form-field textarea { min-height: 85px; resize: vertical; }
.form-field select option { background: #111; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color: var(--ember); box-shadow: 0 5px 12px -10px var(--ember); }
.form-honeypot { position: absolute; left: -9999px; }
.form-submit { grid-column: 1 / -1; display: flex; align-items: center; gap: 20px; margin-top: 10px; }
.form-submit button { cursor: pointer; }
.form-status { color: #c9c5c0; font-size: 12px; }
.form-status.is-success { color: var(--acid); }
.form-status.is-error { color: #ff8465; }
.map-panel { background: #060607; }
.map-panel__image { position: absolute; inset: 0; }
.map-panel__image picture, .map-panel__image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.7) brightness(.55); }
.map-panel__image::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle, transparent, rgba(0,0,0,.65)); }
.map-card { position: absolute; z-index: 2; left: 50%; top: 50%; width: min(88vw, 650px); transform: translate(-50%, -50%); padding: clamp(30px, 5vw, 70px); background: rgba(4,4,5,.88); border: 1px solid rgba(255,77,22,.35); text-align: center; box-shadow: 0 0 70px rgba(255,77,22,.12); backdrop-filter: blur(16px); }
.map-card h2 { margin-bottom: 20px; font-size: clamp(48px, 6vw, 86px); }
.map-card p { color: #b3aeaa; line-height: 1.65; }

/* Reveal state */
.js .panel .reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s, transform .8s; }
.js .panel.is-active .reveal { opacity: 1; transform: none; }
.js .panel.is-active .reveal:nth-child(2) { transition-delay: .12s; }
.js .panel.is-active .reveal:nth-child(3) { transition-delay: .2s; }
.js .panel.is-active .reveal:nth-child(4) { transition-delay: .28s; }

@media (max-width: 1050px) {
  :root { --header-h: 88px; }
  .desktop-nav, .app-link { display: none; }
  .menu-toggle { display: grid; }
  .brand { width: 82px; }
  .story-panel, .taste-panel { grid-template-columns: 1fr 1fr; }
  .play-copy { left: 44%; width: 50%; }
  .live-copy { left: 45%; width: 52%; }
  .quick-actions { display: none; }
}

@media (max-width: 760px) {
  :root { --panel-pad: 22px; --header-h: 78px; }
  body { position: fixed; inset: 0; width: 100%; }
  .site-header { padding: 9px 16px; }
  .brand { width: 70px; height: 54px; }
  .menu-toggle { width: 44px; height: 44px; }
  .horizontal-rail { scroll-snap-stop: always; }
  .panel { min-height: 560px; }
  .panel::after { bottom: 14px; }
  .rail-hint { left: auto; right: 14px; bottom: 9px; transform: none; }
  .rail-hint span { display: none; }
  .rail-hint i { width: 38px; }
  .ambient-glow { opacity: .1; }
  .smoke { opacity: .07; }
  .eyebrow { margin-bottom: 12px; font-size: 9px; }
  h2 { font-size: clamp(46px, 14vw, 70px); }
  .neon-button, .outline-button { min-height: 48px; padding: 0 17px; font-size: 9px; }

  .hero-media img { object-position: 61% center; }
  .hero-shade { background: linear-gradient(0deg, rgba(0,0,0,.92), rgba(0,0,0,.15) 72%), linear-gradient(90deg, rgba(0,0,0,.55), transparent); }
  .hero-copy { width: 100%; justify-content: flex-end; padding: var(--header-h) var(--panel-pad) 92px; }
  .hero-logo { width: min(78vw, 430px); max-height: 23vh; }
  .hero-tagline { margin: 4px 0 20px; font-size: 24px; }
  .hero-ctas { gap: 18px; flex-wrap: wrap; }
  .hero-ctas .text-link { font-size: 9px; }
  .open-pill { right: auto; left: var(--panel-pad); bottom: 46px; padding: 8px 10px; font-size: 8px; }

  .story-panel { display: block; padding: var(--header-h) var(--panel-pad) 55px; }
  .story-copy { z-index: 4; width: 88%; padding: 0; margin-top: 4vh; }
  .story-copy h2 { margin-bottom: 18px; }
  .story-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.5; }
  .stacked-visual { position: absolute; right: -14vw; bottom: -5vh; width: 72vw; height: 52vh; opacity: .62; }
  .stacked-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #090708, transparent 50%); }
  .stacked-visual__float, .scribble { display: none; }
  .story-number { font-size: 100vw; top: 28%; }

  .taste-panel { display: block; padding: var(--header-h) var(--panel-pad) 55px; }
  .taste-collage { position: absolute; inset: 0 0 0 36%; height: auto; opacity: .54; }
  .taste-collage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #090605 0, transparent 70%), linear-gradient(0deg, #090605, transparent 45%); }
  .taste-photo--one { inset: 0; clip-path: none; }
  .taste-photo--two, .taste-stamp { display: none; }
  .taste-copy { position: relative; z-index: 3; width: 88%; padding: 8vh 0 0; }
  .taste-copy > p:not(.eyebrow) { font-size: 14px; line-height: 1.5; }
  .menu-buttons { flex-wrap: wrap; margin-top: 22px; }

  .play-photo--main { inset: 0; opacity: .46; }
  .play-photo--main::after { background: linear-gradient(0deg, #050707 10%, transparent 72%), linear-gradient(90deg, rgba(0,0,0,.7), transparent); }
  .play-copy { left: var(--panel-pad); top: 23%; width: 88%; transform: none; }
  .play-copy p:not(.eyebrow) { width: 82%; font-size: 14px; line-height: 1.5; }
  .play-photo--detail { right: 7vw; bottom: 9vh; width: 50vw; height: 27vh; }
  .pool-ball--8 { left: 11%; bottom: 16%; width: 62px; height: 62px; }
  .pool-ball--3 { right: 8%; top: 15%; }

  .live-backdrop { inset: 0; }
  .live-backdrop::after { background: linear-gradient(0deg, #050405 8%, rgba(5,4,5,.18) 75%), linear-gradient(90deg, rgba(0,0,0,.65), transparent); }
  .live-copy { left: var(--panel-pad); top: 23%; width: 90%; transform: none; }
  .live-copy > p:not(.eyebrow) { width: 88%; font-size: 14px; line-height: 1.5; }
  .live-drum { right: -4vw; bottom: 7vh; width: 58vw; height: 30vh; }
  .equalizer { left: 12%; height: 18vh; }

  .gallery-title { left: var(--panel-pad); top: 18%; width: 75vw; transform: none; }
  .gallery-title h2 { margin-bottom: 24px; }
  .gallery-shot--one { width: 60vw; height: 40vh; left: 7vw; top: 49vh; }
  .gallery-shot--two { width: 43vw; height: 28vh; right: -6vw; top: 36vh; }
  .gallery-shot--three { display: none; }

  .finale-image { inset: 0 0 0 30%; opacity: .5; }
  .finale-image::after { background: linear-gradient(90deg, #080505, transparent 70%), linear-gradient(0deg, #080505, transparent 60%); }
  .finale-copy { left: var(--panel-pad); top: 22%; width: 88%; transform: none; }
  .finale-actions { flex-wrap: wrap; margin: 22px 0; }
  .address { font-size: 9px; }
  .panel-footer { left: var(--panel-pad); right: var(--panel-pad); bottom: 42px; grid-template-columns: 86px 1fr; gap: 15px; }
  .panel-footer img { width: 82px; }
  .panel-footer span { display: none; }

  .inner-intro { display: block; padding: var(--header-h) var(--panel-pad) 55px; }
  .inner-intro__copy { margin-top: 9vh; width: 92%; }
  .inner-intro__copy h1 { font-size: 18vw; }
  .inner-intro__copy > p:not(.eyebrow) { font-size: 14px; }
  .inner-intro__image { inset: 0 0 0 20%; opacity: .48; }
  .inner-intro__image::after { background: linear-gradient(90deg, #060607, transparent 85%), linear-gradient(0deg, #060607, transparent 60%); }
  .quote-panel blockquote { font-size: 12vw; }
  .facts-panel { display: block; padding: var(--header-h) var(--panel-pad) 55px; }
  .facts-panel__image { position: absolute; inset: 0 28% 0 0; height: 100%; opacity: .32; clip-path: none; }
  .facts-panel__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, #070708); }
  .facts-list { position: relative; z-index: 2; width: 72%; margin: 8vh 0 0 auto; gap: 17px; }
  .fact { padding-bottom: 14px; }
  .fact span { font-size: 22px; }

  .gallery-cover__copy h1 { font-size: 19vw; }
  .gallery-wall { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 1fr); gap: 8px; padding: calc(var(--header-h) + 8px) 10px 42px; }
  .gallery-wall button:nth-of-type(n) { grid-area: auto; }

  .contact-panel { display: block; padding: var(--header-h) var(--panel-pad) 50px; overflow-y: auto; touch-action: pan-x pan-y; }
  .contact-copy { display: none; }
  .contact-form-wrap { width: 100%; margin: 0; padding: 20px; }
  .contact-form-wrap h2 { font-size: 34px; }
  .contact-form-wrap > p { font-size: 12px; }
  .nub-contact-form { grid-template-columns: 1fr; gap: 12px; margin-top: 18px; }
  .form-field--full, .form-submit { grid-column: auto; }
  .form-field input, .form-field textarea, .form-field select { padding: 9px 1px; }
  .form-field textarea { min-height: 60px; }
  .form-submit { align-items: flex-start; flex-direction: column; gap: 10px; }
  .map-card { padding: 28px 20px; }
}

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

/* ================================================================
   V2 — VERTICAL NIGHT / CONTINUOUS MOSAIC
   ================================================================ */

html {
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--ember) #080808;
}
html::-webkit-scrollbar { display: block; width: 7px; }
html::-webkit-scrollbar-track { background: #080808; }
html::-webkit-scrollbar-thumb { background: linear-gradient(var(--amber), var(--ember)); box-shadow: 0 0 12px var(--ember); }

body,
body.nub-horizontal-site {
  position: static;
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: visible;
  overscroll-behavior-y: none;
}

.horizontal-rail {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  scroll-snap-type: none;
  touch-action: pan-y;
}

.horizontal-rail .panel {
  width: 100%;
  height: auto;
  min-height: 100svh;
  overflow: hidden;
  scroll-snap-align: none;
}

/* Orange neon navigation, visible even before the room lights come up. */
.desktop-nav a {
  color: #ff792d;
  font-weight: 950;
  letter-spacing: .18em;
  text-shadow:
    0 0 3px #ff6a1a,
    0 0 9px rgba(255, 74, 18, .92),
    0 0 20px rgba(255, 74, 18, .58);
}
.desktop-nav a::after {
  height: 2px;
  background: #ff8b3d;
  box-shadow: 0 0 5px #ff6a1a, 0 0 15px #ff4d16, 0 0 25px rgba(255,77,22,.8);
}
.desktop-nav a:hover {
  color: #ffd0ae;
  text-shadow: 0 0 4px white, 0 0 10px #ff7a29, 0 0 28px #ff4d16;
}
.site-header::after {
  content: "";
  position: absolute;
  left: 4vw; right: 4vw; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,99,27,.3), transparent);
  box-shadow: 0 0 12px rgba(255,77,22,.2);
}

/* Cinematic intro. */
.site-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 58%, rgba(91, 24, 7, .42), transparent 32%),
    linear-gradient(#020203, #060303);
  transition: opacity .8s ease .18s, visibility .8s ease .18s, transform .95s cubic-bezier(.7,0,.2,1);
}
.site-loader::before,
.site-loader::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  width: 51%;
  z-index: 0;
  background: #030304;
  transition: transform 1.05s cubic-bezier(.76,0,.24,1);
}
.site-loader::before { left: 0; border-right: 1px solid rgba(255,80,20,.2); }
.site-loader::after { right: 0; border-left: 1px solid rgba(255,80,20,.2); }
.site-loader.is-gone::before { transform: translateX(-102%); }
.site-loader.is-gone::after { transform: translateX(102%); }
.site-loader.is-gone { transform: scale(1.035); }
.loader-logo {
  position: relative;
  z-index: 2;
  width: clamp(280px, 42vw, 650px);
  max-height: 34vh;
  object-fit: contain;
  opacity: 0;
  filter: brightness(1.25) drop-shadow(0 0 5px #ff6a1d) drop-shadow(0 0 24px rgba(255,65,12,.9));
  animation: intro-neon 1.45s .08s forwards;
}
.loader-copy {
  position: relative;
  z-index: 2;
  color: #ff9b58;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .42em;
  text-shadow: 0 0 8px #ff4d16;
  animation: loader-copy 1s .5s both;
}
.loader-line {
  position: relative;
  z-index: 2;
  width: min(420px, 66vw);
  height: 1px;
  overflow: visible;
  background: rgba(255,255,255,.1);
}
.loader-line i {
  display: block;
  width: 0; height: 2px;
  background: #ff7a25;
  box-shadow: 0 0 7px #ff5215, 0 0 20px #ff3d00, 0 0 36px rgba(255,61,0,.8);
  animation: loader-line 1.4s .2s cubic-bezier(.5,0,.15,1) forwards;
}
.loader-smoke {
  position: absolute;
  z-index: 1;
  width: 54vw; height: 54vw;
  border-radius: 50%;
  filter: blur(65px);
  opacity: .28;
  background: radial-gradient(circle, rgba(201,205,210,.62), rgba(120,80,70,.18) 42%, transparent 68%);
  animation: loader-smoke 3.2s ease-in-out infinite alternate;
}
.loader-smoke--one { left: -13vw; bottom: -28vw; }
.loader-smoke--two { right: -15vw; top: -30vw; animation-delay: -.9s; }
@keyframes intro-neon {
  0%, 12% { opacity: 0; filter: brightness(.2); }
  16% { opacity: .85; filter: brightness(2.4) drop-shadow(0 0 28px #ff4d16); }
  22% { opacity: .2; }
  28%, 38% { opacity: 1; }
  42% { opacity: .38; }
  48%, 100% { opacity: 1; filter: brightness(1.3) drop-shadow(0 0 7px #ff6a1d) drop-shadow(0 0 30px rgba(255,65,12,.9)); }
}
@keyframes loader-line { to { width: 100%; } }
@keyframes loader-copy { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes loader-smoke { to { transform: translate(16vw, -8vh) scale(1.25); opacity: .42; } }

.ambient { mix-blend-mode: screen; }
.smoke-canvas {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  opacity: .78;
  filter: blur(1px) contrast(1.08);
}
.smoke { opacity: .2; filter: blur(62px); }
.ambient-glow { opacity: .2; filter: blur(80px); }

/* A single uninterrupted home canvas. */
.vertical-page { position: relative; z-index: 1; width: 100%; overflow: clip; background: #050506; }
.mosaic-hero {
  position: relative;
  min-height: 112svh;
  overflow: hidden;
  background: #040405;
}
.mosaic-hero__backdrop { position: absolute; inset: 0; }
.mosaic-hero__backdrop picture,
.mosaic-hero__backdrop img { width: 100%; height: 100%; object-fit: cover; }
.mosaic-hero__backdrop img {
  object-position: center;
  filter: brightness(.55) contrast(1.18) saturate(.86);
  transform: scale(1.04);
  animation: hero-breathe 15s ease-in-out infinite alternate;
}
.mosaic-hero__shade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at var(--mx) var(--my), transparent 0, rgba(0,0,0,.08) 17%, rgba(0,0,0,.28) 44%),
    linear-gradient(90deg, rgba(0,0,0,.88), rgba(0,0,0,.23) 64%, rgba(0,0,0,.58)),
    linear-gradient(0deg, #050506 0, transparent 24%, rgba(0,0,0,.2));
}
.mosaic-hero__copy {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  width: min(760px, 66vw);
  min-height: 100svh;
  padding: calc(var(--header-h) + 32px) 0 8vh var(--panel-pad);
}
.mosaic-hero .hero-logo { width: clamp(340px, 43vw, 700px); max-height: 34vh; }
.hero-fragment {
  position: absolute;
  z-index: 4;
  margin: 0;
  overflow: hidden;
  border: 4px solid rgba(5,5,6,.9);
  box-shadow: 0 26px 80px rgba(0,0,0,.65), 0 0 24px rgba(255,77,22,.12);
}
.hero-fragment picture,
.hero-fragment img { width: 100%; height: 100%; object-fit: cover; }
.hero-fragment--pool { right: 5vw; top: 21vh; width: 21vw; height: 28vh; transform: rotate(3deg); }
.hero-fragment--sign { right: 14vw; bottom: 5vh; width: 16vw; height: 23vh; transform: rotate(-4deg); }
.mosaic-hero .open-pill { bottom: 10vh; }

.mosaic-canvas {
  position: relative;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: clamp(58px, 6.4vw, 104px);
  gap: clamp(10px, 1.2vw, 20px);
  width: min(100%, 1800px);
  margin: -9vh auto 0;
  padding: 0 clamp(18px, 4vw, 70px) 9vh;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,67,14,.1), transparent 20%),
    radial-gradient(circle at 83% 45%, rgba(32,214,255,.06), transparent 23%),
    radial-gradient(circle at 34% 78%, rgba(255,112,25,.08), transparent 24%);
}
.mosaic-canvas::before {
  content: "";
  position: absolute;
  left: 50%; top: 0; bottom: 0;
  width: 1px;
  background: linear-gradient(transparent, rgba(255,88,20,.2) 8%, transparent 38%, rgba(255,88,20,.16) 72%, transparent);
  box-shadow: 0 0 20px rgba(255,77,22,.12);
}
.mosaic-cell {
  position: relative;
  z-index: 2;
  margin: 0;
  min-height: 0;
  overflow: hidden;
  cursor: zoom-in;
  background: #101010;
  box-shadow: 0 28px 85px rgba(0,0,0,.55);
  opacity: .2;
  transform: translateY(65px) rotate(var(--tilt, 0deg));
  transition: opacity .9s ease, transform 1.15s cubic-bezier(.2,.8,.15,1), filter .5s;
}
.mosaic-cell.is-active { opacity: 1; transform: translateY(0) rotate(var(--tilt, 0deg)); }
.mosaic-cell picture,
.mosaic-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.8,.2,1), filter .6s; }
.mosaic-cell:hover img { transform: scale(1.055); filter: saturate(1.2) brightness(1.05); }
.mosaic-cell::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255,255,255,.08);
  pointer-events: none;
}
.mosaic-cell figcaption {
  position: absolute;
  z-index: 3;
  right: 16px; bottom: 14px;
  padding: 8px 11px;
  background: #ff601d;
  color: white;
  font-family: cursive;
  font-size: clamp(14px, 1.4vw, 22px);
  transform: rotate(-3deg);
  box-shadow: 0 0 20px rgba(255,77,22,.32);
}
.mosaic-copy {
  position: relative;
  z-index: 6;
  align-self: center;
  padding: clamp(18px, 2.3vw, 42px);
  text-shadow: 0 3px 24px #000;
}
.mosaic-copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -12%;
  background: radial-gradient(ellipse, rgba(5,5,6,.96) 0, rgba(5,5,6,.78) 48%, transparent 74%);
  filter: blur(10px);
}
.mosaic-copy h2 { font-size: clamp(46px, 5.6vw, 96px); }
.mosaic-copy h2 span { color: #ff6320; text-shadow: 0 0 13px rgba(255,77,22,.6), 0 0 35px rgba(255,77,22,.3); }
.mosaic-copy > p:not(.eyebrow):not(.address) { max-width: 560px; color: #b9b3ae; font-size: clamp(15px, 1.15vw, 19px); line-height: 1.65; }

.cell-a { grid-area: 1 / 1 / 8 / 8; --tilt: -1.2deg; clip-path: polygon(0 0, 96% 3%, 100% 92%, 4% 100%); }
.cell-b { grid-area: 3 / 9 / 7 / 13; --tilt: 2.2deg; }
.copy-about { grid-area: 7 / 7 / 13 / 12; }
.cell-c { grid-area: 10 / 1 / 16 / 6; --tilt: -2.3deg; }
.cell-d { grid-area: 14 / 6 / 19 / 10; --tilt: 2deg; clip-path: polygon(4% 0, 100% 5%, 94% 100%, 0 94%); }
.copy-taste { grid-area: 18 / 2 / 24 / 8; }
.cell-e { grid-area: 21 / 8 / 28 / 13; --tilt: -1.4deg; }
.cell-f { grid-area: 25 / 1 / 30 / 5; --tilt: 2.8deg; }
.mosaic-marquee {
  grid-area: 30 / 1 / 33 / 13;
  z-index: 5;
  align-self: center;
  width: 112%;
  margin-left: -6%;
  overflow: hidden;
  transform: rotate(-2deg);
  border-top: 1px solid rgba(255,96,28,.45);
  border-bottom: 1px solid rgba(255,96,28,.45);
  background: rgba(5,5,6,.78);
  box-shadow: 0 0 28px rgba(255,77,22,.08);
}
.mosaic-marquee div {
  width: max-content;
  padding: 15px 0;
  color: transparent;
  -webkit-text-stroke: 1px #ff6722;
  font-size: clamp(46px, 7vw, 112px);
  font-weight: 950;
  line-height: 1;
  letter-spacing: -.045em;
  text-transform: uppercase;
  text-shadow: 0 0 18px rgba(255,77,22,.35);
  animation: marquee 18s linear infinite;
}
@keyframes marquee { to { transform: translateX(-35%); } }
.cell-g { grid-area: 33 / 1 / 40 / 8; --tilt: 1deg; }
.cell-h { grid-area: 35 / 9 / 40 / 13; --tilt: -2.4deg; }
.copy-play { grid-area: 40 / 7 / 46 / 12; }
.cell-i { grid-area: 42 / 1 / 48 / 6; --tilt: -1.8deg; }
.cell-j { grid-area: 47 / 6 / 54 / 13; --tilt: 1.4deg; clip-path: polygon(3% 0, 100% 3%, 97% 100%, 0 94%); }
.copy-live { grid-area: 52 / 1 / 59 / 7; }
.cell-k { grid-area: 55 / 8 / 61 / 13; --tilt: -2deg; }
.cell-l { grid-area: 60 / 1 / 67 / 6; --tilt: 1.8deg; }
.copy-gallery { grid-area: 62 / 6 / 68 / 12; }
.cell-m { grid-area: 68 / 7 / 75 / 13; --tilt: -.9deg; }
.cell-n { grid-area: 69 / 1 / 74 / 5; --tilt: 2.4deg; }
.cell-o { grid-area: 75 / 2 / 82 / 8; --tilt: -1.5deg; }
.copy-visit { grid-area: 76 / 7 / 82 / 13; }

.mosaic-footer {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 150px 1fr auto auto;
  align-items: center;
  gap: 30px;
  min-height: 180px;
  padding: 45px var(--panel-pad);
  border-top: 1px solid rgba(255,99,29,.2);
  background: #030304;
  color: #85817e;
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.mosaic-footer img { width: 140px; opacity: .75; }
.mosaic-footer p { margin: 0; }
.mosaic-footer div { display: flex; gap: 22px; }
.mosaic-footer a { color: #ff7a2e; text-shadow: 0 0 9px rgba(255,77,22,.5); }

.rail-hint {
  left: auto;
  right: 24px;
  bottom: 24px;
  transform: none;
}
.rail-hint i { width: 1px; height: 48px; }
.rail-hint i::after { left: 0; top: -40%; width: 100%; height: 40%; animation: hint-vertical 1.8s ease infinite; }
@keyframes hint-vertical { to { top: 110%; } }

.js .mosaic-home .reveal {
  opacity: 0;
  transform: translateY(35px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1);
}
.js .mosaic-home .reveal.is-active,
.js .mosaic-home .mosaic-copy.is-active { opacity: 1; transform: none; }

@media (max-width: 1050px) {
  .mosaic-canvas { grid-auto-rows: clamp(54px, 7.4vw, 84px); }
  .mosaic-copy h2 { font-size: clamp(43px, 6.3vw, 76px); }
  .hero-fragment--pool { width: 25vw; }
}

@media (max-width: 760px) {
  body,
  body.nub-horizontal-site { position: static; inset: auto; overflow-y: visible; }
  .horizontal-rail { height: auto; overflow: visible; touch-action: pan-y; }
  .horizontal-rail .panel { min-height: 100svh; }
  .mobile-menu__inner > a:not(.mobile-app) { color: #ff7a2c; text-shadow: 0 0 12px rgba(255,77,22,.7); }
  .loader-logo { width: 78vw; }
  .loader-copy { max-width: 80vw; text-align: center; line-height: 1.8; }
  .loader-smoke { width: 110vw; height: 110vw; }
  .smoke-canvas { opacity: .62; }

  .mosaic-hero { min-height: 104svh; }
  .mosaic-hero__backdrop img { object-position: 61% center; }
  .mosaic-hero__shade {
    background: linear-gradient(0deg, #050506 0, rgba(0,0,0,.86) 27%, rgba(0,0,0,.16) 76%), linear-gradient(90deg, rgba(0,0,0,.55), transparent);
  }
  .mosaic-hero__copy { width: 100%; min-height: 100svh; justify-content: flex-end; padding: var(--header-h) var(--panel-pad) 15vh; }
  .mosaic-hero .hero-logo { width: min(82vw, 450px); }
  .hero-fragment--pool { right: -8vw; top: 18vh; width: 50vw; height: 24vh; opacity: .78; }
  .hero-fragment--sign { display: none; }
  .mosaic-hero .open-pill { left: var(--panel-pad); bottom: 7vh; }

  .mosaic-canvas {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    margin-top: -5vh;
    padding: 0 14px 70px;
    overflow: hidden;
  }
  .mosaic-canvas::before { left: 20px; }
  .mosaic-cell {
    flex: none;
    width: 92%;
    height: min(72vw, 430px);
    min-height: 250px;
    align-self: flex-start;
    clip-path: none;
  }
  .mosaic-cell:nth-of-type(2n) { width: 76%; align-self: flex-end; }
  .mosaic-cell:nth-of-type(3n) { width: 84%; align-self: center; }
  .mosaic-copy {
    width: 100%;
    min-height: 62vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 55px 12px;
  }
  .mosaic-copy h2 { font-size: clamp(46px, 14vw, 68px); }
  .mosaic-copy > p:not(.eyebrow):not(.address) { font-size: 14px; }
  .mosaic-copy::before { inset: 0 -20%; }
  .mosaic-marquee {
    flex: none;
    width: 120%;
    margin: 20px 0 20px -10%;
  }
  .mosaic-marquee div { font-size: 15vw; }
  .mosaic-footer { grid-template-columns: 90px 1fr; gap: 16px; min-height: 160px; padding: 35px 20px; }
  .mosaic-footer img { width: 88px; }
  .mosaic-footer div { grid-column: 1 / -1; }
  .mosaic-footer span { display: none; }
  .rail-hint { right: 12px; bottom: 10px; }
  .rail-hint span { display: none; }
  .quick-actions { display: none; }

  /* Inner pages also follow normal vertical scrolling now. */
  .contact-panel { overflow-y: visible; touch-action: pan-y; }
}

@media (prefers-reduced-motion: reduce) {
  .loader-logo, .loader-line i, .loader-copy, .loader-smoke,
  .mosaic-hero__backdrop img, .mosaic-marquee div,
  .mosaic-cell, .mosaic-cell.is-active {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ================================================================
   V3 — HORIZONTAL JOURNEY, DRIVEN BY THE VERTICAL MOUSE WHEEL
   ================================================================ */

html {
  overflow: hidden;
  scrollbar-width: none;
}
html::-webkit-scrollbar { display: none; }
body,
body.nub-horizontal-site {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.horizontal-rail,
.mosaic-home {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100vw;
  height: 100svh;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: none;
  scroll-behavior: auto;
  scrollbar-width: none;
  touch-action: pan-x;
  overscroll-behavior: none;
}
.horizontal-rail::-webkit-scrollbar,
.mosaic-home::-webkit-scrollbar { display: none; }
.horizontal-rail .panel {
  flex: 0 0 100vw;
  width: 100vw;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
}

.mosaic-hero {
  flex: 0 0 100vw;
  width: 100vw;
  height: 100svh;
  min-height: 0;
}
.mosaic-hero__copy { min-height: 100svh; }
.mosaic-hero .open-pill { bottom: 8vh; }

.mosaic-canvas {
  flex: 0 0 1120vw;
  display: grid;
  grid-template-columns: repeat(178, minmax(0, 1fr));
  grid-template-rows: repeat(12, minmax(0, 1fr));
  grid-auto-rows: unset;
  gap: clamp(8px, .75vw, 15px);
  width: 1120vw;
  height: 100svh;
  margin: 0 0 0 -4vw;
  padding: calc(var(--header-h) + 10px) 3vw 4vh;
  overflow: visible;
  background:
    radial-gradient(circle at 12% 30%, rgba(255,67,14,.11), transparent 8%),
    radial-gradient(circle at 38% 65%, rgba(32,214,255,.07), transparent 9%),
    radial-gradient(circle at 64% 25%, rgba(255,112,25,.1), transparent 9%),
    radial-gradient(circle at 88% 62%, rgba(255,67,14,.09), transparent 8%),
    #050506;
}
.mosaic-canvas::before {
  left: 0; right: 0; top: 54%; bottom: auto;
  width: auto; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,88,20,.18) 8%, transparent 23%, rgba(255,88,20,.14) 52%, transparent 72%, rgba(255,88,20,.18), transparent);
}
.mosaic-cell { min-height: 0; }
.mosaic-copy { min-width: 0; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.mosaic-copy h2 { margin-bottom: 20px; font-size: clamp(40px, 4.5vw, 84px); }
.mosaic-copy > p:not(.eyebrow):not(.address) { font-size: clamp(14px, 1vw, 18px); }

.cell-a { grid-area: 2 / 1 / 13 / 10; }
.cell-b { grid-area: 1 / 9 / 7 / 15; }
.copy-about { grid-area: 2 / 14 / 12 / 25; }
.cell-c { grid-area: 1 / 24 / 9 / 32; }
.cell-d { grid-area: 7 / 30 / 13 / 37; }
.copy-taste { grid-area: 2 / 36 / 12 / 47; }
.cell-e { grid-area: 1 / 46 / 10 / 56; }
.cell-f { grid-area: 8 / 54 / 13 / 61; }
.mosaic-marquee { grid-area: 4 / 60 / 8 / 73; align-self: center; width: 112%; margin-left: -6%; }
.mosaic-marquee div { font-size: clamp(50px, 6.7vw, 108px); }
.cell-g { grid-area: 1 / 72 / 10 / 83; }
.cell-h { grid-area: 7 / 81 / 13 / 89; }
.copy-play { grid-area: 2 / 88 / 12 / 99; }
.cell-i { grid-area: 1 / 98 / 9 / 106; }
.cell-j { grid-area: 6 / 104 / 13 / 115; }
.copy-live { grid-area: 2 / 114 / 12 / 125; }
.cell-k { grid-area: 1 / 123 / 8 / 132; }
.cell-l { grid-area: 7 / 130 / 13 / 139; }
.copy-gallery { grid-area: 2 / 137 / 12 / 148; }
.cell-m { grid-area: 1 / 146 / 10 / 156; }
.cell-n { grid-area: 8 / 154 / 13 / 162; }
.cell-o { grid-area: 1 / 160 / 9 / 170; }
.copy-visit { grid-area: 2 / 168 / 12 / 179; }

.mosaic-footer {
  flex: 0 0 72vw;
  width: 72vw;
  height: 100svh;
  grid-template-columns: 150px 1fr;
  grid-template-rows: 1fr auto auto 1fr;
  align-content: center;
  align-items: end;
  padding: var(--header-h) 6vw 7vh;
  border-top: 0;
  border-left: 1px solid rgba(255,99,29,.2);
  background:
    radial-gradient(circle at 15% 50%, rgba(255,77,22,.12), transparent 36%),
    #030304;
}
.mosaic-footer img { grid-row: 2; width: min(240px, 18vw); }
.mosaic-footer p { grid-row: 2; font-size: 12px; }
.mosaic-footer div { grid-column: 1 / -1; grid-row: 3; margin-top: 30px; }
.mosaic-footer span { grid-column: 1 / -1; grid-row: 4; align-self: end; }

.rail-hint {
  left: 50%; right: auto; bottom: 20px;
  transform: translateX(-50%);
  flex-direction: row;
}
.rail-hint i { width: 56px; height: 1px; }
.rail-hint i::after { left: -40%; top: 0; width: 40%; height: 100%; animation: hint 1.8s ease infinite; }

@media (max-width: 1050px) {
  .mosaic-canvas { flex-basis: 1450vw; width: 1450vw; }
  .mosaic-copy h2 { font-size: clamp(38px, 5.8vw, 66px); }
}

@media (max-width: 760px) {
  body,
  body.nub-horizontal-site { position: fixed; inset: 0; overflow: hidden; }
  .horizontal-rail,
  .mosaic-home { display: flex; width: 100vw; height: 100svh; overflow-x: auto; overflow-y: hidden; touch-action: pan-x; }
  .horizontal-rail .panel { flex: 0 0 100vw; width: 100vw; height: 100svh; min-height: 560px; }
  .mosaic-hero { flex: 0 0 100vw; width: 100vw; height: 100svh; min-height: 0; }
  .mosaic-hero__copy { min-height: 100svh; }
  .mosaic-canvas {
    flex: 0 0 1760vw;
    display: grid;
    grid-template-columns: repeat(178, minmax(0, 1fr));
    grid-template-rows: repeat(12, minmax(0, 1fr));
    gap: 8px;
    width: 1760vw;
    height: 100svh;
    margin: 0 0 0 -8vw;
    padding: calc(var(--header-h) + 8px) 20px 42px;
  }
  .mosaic-cell {
    width: auto;
    height: auto;
    min-height: 0;
    align-self: stretch;
    clip-path: none;
  }
  .mosaic-cell:nth-of-type(n) { width: auto; align-self: stretch; }
  .mosaic-copy {
    width: auto;
    min-height: 0;
    padding: 16px;
  }
  .mosaic-copy h2 { font-size: clamp(42px, 12vw, 62px); }
  .mosaic-marquee { width: 112%; margin: 0 0 0 -6%; }
  .mosaic-marquee div { font-size: 13vw; }
  .mosaic-footer {
    flex: 0 0 92vw;
    width: 92vw;
    height: 100svh;
    grid-template-columns: 90px 1fr;
    padding: var(--header-h) 24px 45px;
  }
  .mosaic-footer img { width: 86px; }
  .mosaic-footer div { grid-column: 1 / -1; }
  .rail-hint { left: 50%; right: auto; bottom: 8px; transform: translateX(-50%); }
  .rail-hint i { width: 42px; height: 1px; }
  .contact-panel { overflow-y: hidden; touch-action: pan-x; }
}

/* Performance pass: preserve the atmosphere without repainting the whole rail. */
.ambient {
  contain: strict;
  mix-blend-mode: normal;
}
.smoke-canvas {
  opacity: .62;
  filter: none;
}
.ambient .smoke { display: none; }
.ambient-glow {
  opacity: .18;
  filter: none;
  background: radial-gradient(circle, rgba(255,77,22,.34), rgba(255,77,22,.08) 38%, transparent 70%);
}
.ambient-glow--blue {
  background: radial-gradient(circle, rgba(32,214,255,.2), rgba(32,214,255,.045) 40%, transparent 70%);
}
.grain {
  inset: 0;
  opacity: .025;
  animation: none;
}
.mosaic-hero__backdrop img { animation: none; }
.mosaic-canvas {
  contain: layout paint style;
  background: #050506;
}
.mosaic-cell {
  content-visibility: auto;
  contain: layout paint;
  contain-intrinsic-size: 560px 680px;
  box-shadow: 0 16px 42px rgba(0,0,0,.44);
  transition: opacity .35s ease, transform .45s cubic-bezier(.2,.8,.15,1);
}
.mosaic-cell picture,
.mosaic-cell img { transition-duration: .45s; }
.nub-lazy {
  opacity: .08;
  transition: opacity .35s ease;
}
.nub-lazy.is-loaded { opacity: 1; }
.site-header,
.open-pill,
.outline-button { backdrop-filter: none; }

@media (max-width: 760px) {
  .smoke-canvas { opacity: .5; }
  .ambient-glow { opacity: .1; filter: none; }
  .ambient-glow--blue { animation: none; }
  .mosaic-canvas { flex-basis: 1450vw; width: 1450vw; }
  .mosaic-cell { box-shadow: 0 10px 24px rgba(0,0,0,.36); }
}

/* Complete shared footer and repaired inner-page layouts. */
.hero-hotel {
  margin: -10px 0 24px;
  color: #d6c7bc;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .16em;
  line-height: 1.5;
  text-transform: uppercase;
  text-shadow: 0 0 14px rgba(255,77,22,.3);
}
.site-footer-panel,
.mosaic-footer.site-footer-panel {
  position: relative;
  flex: 0 0 100vw;
  display: grid;
  grid-template-columns: minmax(280px, 34%) 1fr;
  grid-template-rows: 1fr auto;
  gap: 35px 7vw;
  width: 100vw;
  height: 100svh;
  min-height: 620px;
  padding: calc(var(--header-h) + 30px) var(--panel-pad) 42px;
  overflow: hidden;
  border: 0;
  border-left: 1px solid rgba(255,99,29,.2);
  background:
    radial-gradient(circle at 15% 45%, rgba(255,77,22,.14), transparent 34%),
    radial-gradient(circle at 85% 20%, rgba(32,214,255,.055), transparent 26%),
    #030304;
  color: var(--paper);
  text-transform: none;
}
.site-footer-panel::before {
  content: "THE NIGHT STARTS HERE";
  position: absolute;
  right: -1vw; bottom: -3vh;
  color: rgba(255,255,255,.025);
  font-size: clamp(70px, 11vw, 190px);
  font-weight: 950;
  line-height: .75;
  letter-spacing: -.06em;
  white-space: nowrap;
}
.site-footer-panel__brand {
  position: relative;
  z-index: 2;
  align-self: center;
}
.mosaic-footer.site-footer-panel > .site-footer-panel__brand,
.site-footer-panel > .site-footer-panel__brand { grid-column: 1; grid-row: 1; margin-top: 0; }
.site-footer-panel__logo {
  width: min(420px, 28vw) !important;
  max-height: 25vh;
  object-fit: contain;
  object-position: left;
  opacity: 1 !important;
  filter: drop-shadow(0 0 20px rgba(255,77,22,.35));
}
.site-footer-panel__brand p {
  max-width: 430px;
  margin: 22px 0 32px;
  color: #aaa39e;
  font-size: clamp(14px, 1.15vw, 18px);
  line-height: 1.65;
}
.site-footer-panel__atico {
  width: min(210px, 17vw) !important;
  opacity: .78 !important;
}
.site-footer-panel__links {
  position: relative;
  z-index: 2;
  align-self: center;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 4vw, 70px);
}
.mosaic-footer.site-footer-panel > .site-footer-panel__links,
.site-footer-panel > .site-footer-panel__links { grid-column: 2; grid-row: 1; margin-top: 0; }
.site-footer-panel__links > div { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; }
.site-footer-panel__links strong {
  margin-bottom: 7px;
  color: #ff7a2d;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-shadow: 0 0 11px rgba(255,77,22,.55);
}
.site-footer-panel__links a,
.site-footer-panel__links span {
  color: #bbb5b0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .035em;
}
.site-footer-panel__links a { transition: color .2s, transform .2s; }
.site-footer-panel__links a:hover { color: #fff; transform: translateX(4px); }
.site-footer-panel__bottom {
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.11);
  color: #736f6b;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.mosaic-footer.site-footer-panel > .site-footer-panel__bottom,
.site-footer-panel > .site-footer-panel__bottom { grid-column: 1 / -1; grid-row: 2; margin-top: 0; }

.is-inner .horizontal-rail > .panel:not(.site-footer-panel) {
  content-visibility: auto;
  contain: layout paint;
  contain-intrinsic-size: 100vw 100svh;
}
.contact-form-wrap {
  max-height: calc(100svh - var(--header-h) - 45px);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--ember) transparent;
}
.gallery-wall button { content-visibility: auto; contain: layout paint; }

/* ATICO / AlQasr page. */
.atico-hotel-panel {
  display: grid;
  grid-template-columns: 52% 48%;
  align-items: center;
  padding: var(--header-h) var(--panel-pad) 55px;
  background: radial-gradient(circle at 75% 45%, #281007, #060607 55%);
}
.atico-hotel-panel__image { height: 72vh; overflow: hidden; clip-path: polygon(0 3%, 94% 0, 100% 94%, 6% 100%); }
.atico-hotel-panel__image picture,
.atico-hotel-panel__image img { width: 100%; height: 100%; object-fit: cover; }
.atico-hotel-panel__copy { position: relative; z-index: 2; padding-left: 5vw; }
.atico-hotel-panel__copy h2 { font-size: clamp(48px, 6vw, 98px); }
.atico-hotel-panel__copy > p:not(.eyebrow) { max-width: 540px; color: #b7b0ab; font-size: clamp(15px, 1.2vw, 19px); line-height: 1.65; }
.atico-group-panel { display: grid; place-items: center; padding: var(--header-h) var(--panel-pad) 55px; background: #050506; text-align: center; }
.atico-group-panel__glow { position: absolute; width: 62vh; height: 62vh; border: 1px solid rgba(255,77,22,.24); border-radius: 50%; box-shadow: 0 0 80px rgba(255,77,22,.1), inset 0 0 70px rgba(255,77,22,.07); }
.atico-group-panel__content { position: relative; z-index: 2; max-width: 1050px; }
.atico-group-panel__content > img { width: min(360px, 34vw); margin: 0 auto 28px; opacity: .85; }
.atico-group-panel__content h2 { margin-bottom: 20px; }
.atico-group-panel__content > p:not(.eyebrow) { max-width: 690px; margin: 0 auto 28px; color: #aaa49f; font-size: clamp(15px, 1.25vw, 19px); line-height: 1.65; }
.atico-group-panel .finale-actions { justify-content: center; }

@media (max-width: 760px) {
  .hero-hotel { max-width: 80vw; margin-bottom: 18px; font-size: 8px; }
  .site-footer-panel,
  .mosaic-footer.site-footer-panel {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 26px;
    padding: calc(var(--header-h) + 12px) 22px 34px;
    overflow-y: auto;
    touch-action: pan-x pan-y;
  }
  .site-footer-panel__logo { width: 190px !important; max-height: 14vh; }
  .mosaic-footer.site-footer-panel > .site-footer-panel__brand,
  .site-footer-panel > .site-footer-panel__brand { grid-column: 1; grid-row: 1; }
  .mosaic-footer.site-footer-panel > .site-footer-panel__links,
  .site-footer-panel > .site-footer-panel__links { grid-column: 1; grid-row: 2; }
  .mosaic-footer.site-footer-panel > .site-footer-panel__bottom,
  .site-footer-panel > .site-footer-panel__bottom { grid-column: 1; grid-row: 3; }
  .site-footer-panel__brand p { margin: 12px 0 16px; font-size: 12px; }
  .site-footer-panel__atico { width: 112px !important; }
  .site-footer-panel__links { grid-template-columns: 1fr 1fr; gap: 22px 28px; align-self: start; }
  .site-footer-panel__links > div:last-child { display: none; }
  .site-footer-panel__links a,
  .site-footer-panel__links span { font-size: 10px; }
  .site-footer-panel__bottom { flex-direction: column; gap: 6px; font-size: 7px; }
  .contact-panel { overflow-y: auto; touch-action: pan-x pan-y; }
  .contact-form-wrap { max-height: none; overflow: visible; }
  .atico-hotel-panel { display: block; padding: var(--header-h) var(--panel-pad) 50px; }
  .atico-hotel-panel__image { position: absolute; inset: 0; height: 100%; opacity: .42; clip-path: none; }
  .atico-hotel-panel__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,5,6,.95), rgba(5,5,6,.25)); }
  .atico-hotel-panel__copy { padding: 10vh 0 0; }
  .atico-hotel-panel__copy h2 { font-size: 12vw; }
  .atico-group-panel__content > img { width: 55vw; }
}

