:root {
  --velour: #0B2019;
  --velour-deep: #07150F;
  --velour-soft: #143629;
  --sand: #EFE7DB;
  --sand-2: #E5DACA;
  --cream: #F7F2EA;
  --gold: #C4A46A;
  --gold-light: #E2CC98;
  --gold-deep: #8A6A33;
  --pink: #EA3A93;
  --pink-hot: #FF4FA3;
  --night: #0B0D0C;

  --f-display: 'Archivo', 'Arial Narrow', sans-serif;
  --f-body: 'Geist', 'Helvetica Neue', Arial, sans-serif;

  --maxw: 1520px;
  --gutter: clamp(20px, 3.4vw, 56px);
  --section: clamp(96px, 12vw, 190px);
  --radius: 14px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --neon: drop-shadow(0 0 1.5px #FF9CCD) drop-shadow(0 0 6px var(--pink-hot)) drop-shadow(0 0 16px var(--pink)) drop-shadow(0 0 38px rgba(234, 58, 147, .7));
  interpolate-size: allow-keywords;
}

.velour, .footer { --fg: var(--sand); --muted: rgba(239, 231, 219, .66); --faint: rgba(239, 231, 219, .4); --line: rgba(226, 204, 152, .2); --accent: var(--gold-light); }
.footer { --line: rgba(239, 231, 219, .12); }
.light { --fg: var(--velour); --muted: rgba(11, 32, 25, .7); --faint: rgba(11, 32, 25, .45); --line: rgba(11, 32, 25, .15); --accent: var(--gold-deep); }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body {
  margin: 0; background: var(--velour); color: var(--sand);
  font-family: var(--f-body); font-size: 16px; line-height: 1.55; letter-spacing: -.005em;
  -webkit-font-smoothing: antialiased; overflow-x: clip;
}
body::after { content: ""; position: fixed; inset: 0; z-index: 400; pointer-events: none; background: url(../img/grain.png) 0 0 / 128px; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, p, ol, ul, dl, dd, figure { margin: 0; }
ol, ul { list-style: none; padding: 0; }
[hidden] { display: none !important; }
::selection { background: var(--pink); color: var(--velour-deep); }
:focus, :focus-visible { outline: none; }
.nowrap { white-space: nowrap; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; z-index: 500; left: 12px; top: -60px; padding: 10px 16px; border-radius: 999px; background: var(--pink); color: var(--velour-deep); }
.skip:focus { top: 12px; }
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }

.light { background: var(--sand); color: var(--fg); }
.velour { position: relative; isolation: isolate; color: var(--fg); background: radial-gradient(120% 90% at 50% 0%, var(--velour-soft) 0%, var(--velour) 45%, var(--velour-deep) 100%); }
.velour { overflow: clip; }
.velour__bg, .menu__bg { content: ""; position: absolute; inset: -180px -90px; z-index: -1; pointer-events: none; background: url(../img/palm-damask.png) 0 0 / 560px; opacity: .05; animation: sway 26s ease-in-out infinite alternate; will-change: transform; }
.velour:not(.is-inview) .velour__bg { animation-play-state: paused; }
@keyframes sway { from { translate: -40px -14px; } to { translate: 40px 16px; } }

.display {
  font-family: var(--f-display); font-stretch: 62%; font-weight: 900; text-transform: uppercase;
  font-size: clamp(60px, 8.4vw, 136px); line-height: .84; letter-spacing: -.005em;
}
.display--md { font-size: clamp(48px, 5.4vw, 88px); }
.display--lg { font-size: clamp(64px, 9.6vw, 160px); line-height: .82; }
.display--xl { font-size: clamp(76px, 15vw, 248px); line-height: .8; letter-spacing: -.012em; }
.display .line-mask { padding-top: .34em; margin-top: -.34em; }
.head .display, .faq__head .display { margin-top: .16em; }
.link { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 500; transition: color .3s; }
.link svg { width: 18px; height: 18px; transition: transform .5s var(--ease); }
.link:hover svg { transform: translateX(5px); }
.link:hover { color: var(--pink); }
.link--light { color: var(--sand); }
.btn__icon { width: 20px; height: 20px; margin-right: 10px; flex: none; }

.head, .faq__head { position: relative; }
.head::before, .faq__head::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--accent); transform: scaleX(var(--rule, 1)); transform-origin: left; }
.head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-top: 22px; margin-bottom: clamp(28px, 3.4vw, 52px); }
.head--sm { padding-top: 18px; margin-bottom: clamp(24px, 2.6vw, 40px); align-items: center; }

.btn {
  position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; overflow: hidden;
  height: 54px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 500; letter-spacing: -.01em; white-space: nowrap;
  transition: color .35s ease .06s, box-shadow .35s ease;
}
.btn__roll { display: inline-block; line-height: 1.2; text-shadow: 0 2.4em currentColor; transition: transform .55s var(--ease); }
.btn:hover .btn__roll { transform: translateY(-2.4em); }
.btn--pink { background: var(--pink); color: var(--velour-deep); }
.btn--ghost { box-shadow: inset 0 0 0 1px rgba(239, 231, 219, .4); color: var(--sand); }
.btn--line { box-shadow: inset 0 0 0 1px var(--accent); color: var(--fg); }

.btn__fill { position: absolute; z-index: -1; left: 0; top: 0; width: 0; height: 0; border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%) scale(0); transition: transform .7s cubic-bezier(.22, .7, .25, 1); will-change: transform; }
.btn__fill.on { transform: translate(-50%, -50%) scale(1); transition-duration: 1s; }
.btn--pink .btn__fill { background: #F67BB8; }
.btn--ghost .btn__fill, .btn--line .btn__fill { background: #fff; }
.btn--ghost.is-filled, .btn--line.is-filled, .header .btn--ghost.is-filled { color: var(--velour); box-shadow: inset 0 0 0 1px transparent; }
@media not (hover: hover) { .btn__fill { display: none; } }
.btn--sm { height: 42px; padding: 0 20px; font-size: 14px; }
.btn--head { height: 48px; padding: 0 24px; font-size: 15px; }

.cursor { position: fixed; z-index: 350; left: 0; top: 0; width: 96px; height: 96px; margin: -48px 0 0 -48px; pointer-events: none; transform: translate3d(-200px, -200px, 0); }
.cursor__ball { width: 100%; height: 100%; border-radius: 50%; background: var(--velour); color: var(--sand); box-shadow: 0 18px 40px -16px rgba(7, 21, 15, .6); display: grid; place-items: center; transform: scale(0); transition: transform .45s var(--ease); }
.cursor.is-on .cursor__ball { transform: scale(1); }
.cursor__label { font-size: 13px; font-weight: 600; letter-spacing: -.01em; }
.peek { position: fixed; z-index: 340; left: 0; top: 0; width: clamp(240px, 22vw, 360px); aspect-ratio: 4 / 5; pointer-events: none; transform: translate3d(-600px, -600px, 0); }
.peek__frame { position: absolute; inset: 0; translate: -50% -50%; border-radius: 12px; overflow: hidden; clip-path: inset(50% 50% 50% 50% round 12px); transition: clip-path .7s var(--ease); background: var(--velour-deep); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); }
.peek__frame img { width: 100%; height: 100%; object-fit: cover; scale: 1.25; transition: scale 1s var(--ease); }
.peek.is-on .peek__frame { clip-path: inset(0 0 0 0 round 12px); }
.peek.is-on .peek__frame img { scale: 1; }
@media (hover: hover) and (pointer: fine) { .pill { cursor: none; } }
@media not (hover: hover) { .cursor { display: none; } }

@keyframes flicker {
  0%, 4% { opacity: 0; } 5% { opacity: 1; } 8% { opacity: .15; } 11% { opacity: 1; } 13% { opacity: .2; }
  21% { opacity: .2; } 22% { opacity: 1; } 25% { opacity: .5; } 27%, 100% { opacity: 1; }
}

.curtain { position: fixed; z-index: 260; inset: 0; pointer-events: none; transform: translate3d(0, -101%, 0); transition: transform .9s cubic-bezier(.76, 0, .24, 1); }
.curtain.is-down, .curtain-in .curtain { transform: none; pointer-events: auto; }
.curtain-in .curtain { transition: none; }
.curtain-in .curtain__b, .curtain.is-arriving .curtain__b { opacity: 1; animation: none; }
html.is-locked { overflow: hidden; }
.curtain__cloth {
  position: absolute; inset: 0; box-shadow: 0 40px 80px rgba(5, 14, 11, .55);
  background:
    repeating-linear-gradient(90deg, rgba(0, 0, 0, .34) 0, rgba(0, 0, 0, .08) 26px, rgba(255, 255, 255, .045) 48px, rgba(0, 0, 0, .08) 70px, rgba(0, 0, 0, .34) 96px),
    radial-gradient(120% 80% at 50% 30%, var(--velour-soft), var(--velour) 55%, var(--velour-deep));
}
.curtain__cloth::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 22%; background: linear-gradient(0deg, rgba(0, 0, 0, .35), transparent); }
.curtain__b { position: absolute; left: 50%; top: 50%; width: clamp(64px, 7vw, 96px); height: auto; translate: -50% -50%; overflow: visible; filter: var(--neon); opacity: 0; }
.curtain.is-lit .curtain__b { animation: flicker 1.2s linear forwards; }

.header {
  --h-fg: var(--sand); --h-line: rgba(239, 231, 219, .4);
  position: fixed; z-index: 100; top: 0; left: 0; right: 0; height: 84px; padding-inline: var(--gutter);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: var(--h-fg);
  transition: transform .6s var(--ease), background-color .5s, color .5s;
}
.header::before { content: ""; position: absolute; inset: 0 0 -40px; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(7, 21, 15, .55), transparent); transition: opacity .5s; }
.header.is-solid::before, .header.is-light::before { opacity: 0; }
.header.is-solid { background: rgba(11, 32, 25, .74); -webkit-backdrop-filter: blur(18px) saturate(1.3); backdrop-filter: blur(18px) saturate(1.3); }
.header.is-light { --h-fg: var(--velour); --h-line: rgba(11, 32, 25, .35); }
.header.is-light.is-solid { background: rgba(239, 231, 219, .82); }
.header.is-hidden { transform: translateY(-100%); }
.header.is-menu { --h-fg: var(--sand); --h-line: rgba(239, 231, 219, .4); background: transparent !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
.header.is-menu::before { opacity: 0; }
.header__nav { display: flex; gap: clamp(20px, 2vw, 32px); font-size: 14.5px; font-weight: 500; }
.header__nav a { position: relative; padding: 6px 0; white-space: nowrap; }
.header__nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease); }
.header__nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header__nav a[aria-current]::after { transform: scaleX(1); background: var(--pink); }
.menu__nav a[aria-current] { color: var(--pink); }
.footer__cols a[aria-current] { color: var(--pink-hot); }
.header__menu { display: none; position: relative; width: 44px; height: 44px; margin-right: -10px; }
.header__menu i { position: absolute; left: 11px; right: 11px; height: 1.5px; background: currentColor; transition: transform .5s var(--ease), top .5s var(--ease); }
.header__menu i:first-child { top: 17px; }
.header__menu i:last-child { top: 25px; }
.header__menu[aria-expanded="true"] i:first-child { top: 21px; transform: rotate(45deg); }
.header__menu[aria-expanded="true"] i:last-child { top: 21px; transform: rotate(-45deg); }
.header__logo { color: var(--pink); }
.header__logo svg { width: 178px; height: 41px; }
.header__end { justify-self: end; display: flex; align-items: center; gap: 10px; }
.header__lang { font-size: 13px; font-weight: 600; letter-spacing: .04em; padding: 8px 10px; margin-right: 4px; opacity: .8; transition: opacity .3s; }
.header__lang:hover { opacity: 1; }
.header__cart { position: relative; width: 48px; height: 48px; margin-right: 2px; border-radius: 50%; display: grid; place-items: center; color: inherit; transition: background-color .3s; }
.header__cart:not([hidden]) { animation: cartIn .6s var(--ease); }
.header__cart:hover { background: rgba(239, 231, 219, .08); }
.header.is-light .header__cart:hover { background: rgba(11, 32, 25, .06); }
.header__cart svg { width: 24px; height: 24px; }
.header__count { position: absolute; top: 5px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--pink); color: var(--velour-deep); font-size: 11px; font-weight: 600; line-height: 18px; text-align: center; }
.header__cart.is-bump .header__count { animation: bump .6s var(--ease); }
@keyframes cartIn { from { opacity: 0; transform: scale(.6); } }
@keyframes bump { 40% { transform: scale(1.5); } }
.header .btn--ghost { color: var(--h-fg); box-shadow: inset 0 0 0 1px var(--h-line); }

.menu { position: fixed; z-index: 90; inset: 0; background: var(--velour); color: var(--sand); display: flex; flex-direction: column; justify-content: space-between; padding: 108px var(--gutter) calc(28px + env(safe-area-inset-bottom)); }
.menu { overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.menu > * { position: relative; }
.menu.is-open { animation: menuIn .7s cubic-bezier(.76, 0, .24, 1); }
@keyframes menuIn { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
.menu.is-closing { animation: menuOut .65s cubic-bezier(.76, 0, .24, 1) forwards; }
.menu.is-closing .menu__nav a, .menu.is-closing .menu__foot { animation: down .4s var(--ease) forwards; }
@keyframes menuOut { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(0 0 100% 0); } }
@keyframes down { to { opacity: 0; transform: translateY(-24%); } }
.menu__nav { display: flex; flex-direction: column; }
.menu__nav a { font-family: var(--f-display); font-stretch: 62%; font-weight: 900; text-transform: uppercase; font-size: clamp(38px, 10.2vw, 96px); line-height: .92; padding: 14px 0 10px; border-bottom: 1px solid rgba(226, 204, 152, .16); }
.menu.is-open .menu__nav a { animation: up .9s var(--ease) both; }
.menu.is-open .menu__nav a:nth-child(2) { animation-delay: .05s; }
.menu.is-open .menu__nav a:nth-child(3) { animation-delay: .1s; }
.menu.is-open .menu__nav a:nth-child(4) { animation-delay: .15s; }
.menu.is-open .menu__nav a:nth-child(5) { animation-delay: .2s; }
@keyframes up { from { opacity: 0; transform: translateY(40%); } to { opacity: 1; transform: none; } }
.menu__foot { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; }
.menu__foot .header__lang { margin-left: -10px; }
.socials { display: flex; gap: 2px; }
.socials a { width: 42px; height: 42px; display: grid; place-items: center; opacity: .7; transition: opacity .3s, color .3s; }
.socials a:hover { opacity: 1; color: var(--pink-hot); }
.socials svg { width: 20px; height: 20px; }

.hero__stage { position: relative; height: 100vh; height: 100svh; min-height: 560px; overflow: hidden; background: var(--velour-deep); color: var(--sand); }
.hero__media { position: absolute; inset: 0; overflow: hidden; }

.js .hero__stage:not(.is-keyed) :is(.hero__media, .hero__title, .hero__neon, .hero__content, .hero__shade) { visibility: hidden; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; transform: scale(1.3); transform-origin: 50% 45%; will-change: transform; }
.hero__shade { position: absolute; inset: 0; opacity: 0; will-change: opacity; background: linear-gradient(180deg, rgba(7, 21, 15, .5) 0%, transparent 22%, transparent 42%, rgba(7, 21, 15, .72) 76%, rgba(7, 21, 15, .95) 100%); }
.hero__wall { position: absolute; inset: 0; background: radial-gradient(75% 75% at 50% 46%, var(--velour-soft), var(--velour) 55%, var(--velour-deep)); }
.hero__wall::after { content: ""; position: absolute; inset: 0; background: url(../img/palm-damask.png) 50% 50% / 560px; opacity: .055; }
.hero__neon { position: absolute; left: 0; top: 0; pointer-events: none; will-change: transform, opacity; }
.hero__neon svg { width: 100%; height: 100%; overflow: visible; filter: var(--neon); opacity: 0; }
.hero.is-lit .hero__neon svg { animation: flicker 1.8s linear forwards; }
.hero__title { position: absolute; inset: 0; pointer-events: none; }
.hero__word { position: absolute; left: 0; top: 0; font-family: var(--f-display); font-stretch: 62%; font-weight: 900; text-transform: uppercase; line-height: .74; letter-spacing: -.01em; white-space: nowrap; will-change: transform, opacity; padding-top: .04em; color: var(--cream); }
.hero__meta { position: absolute; bottom: clamp(22px, 3vw, 36px); font-size: 13px; font-weight: 500; line-height: 1.4; color: rgba(239, 231, 219, .72); }
.hero__meta--l { left: var(--gutter); }
.hero__meta--r { right: var(--gutter); text-align: right; }
.hero__hint { position: absolute; left: 50%; bottom: clamp(22px, 3vw, 36px); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: 12px; font-weight: 500; color: rgba(239, 231, 219, .72); }
.hero__hint i { position: relative; width: 1px; height: 38px; background: rgba(226, 204, 152, .3); overflow: hidden; }
.hero__hint i::after { content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 45%; background: var(--gold-light); animation: hint 1.8s var(--ease) infinite; }
@keyframes hint { from { transform: translateY(-100%); } to { transform: translateY(240%); } }
.hero__content { position: absolute; left: var(--gutter); right: var(--gutter); bottom: clamp(28px, 4vw, 56px); opacity: 0; transform: translateY(36px); will-change: transform, opacity; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; pointer-events: none; }
.hero__content.is-live { pointer-events: auto; }
.hero__lede { max-width: 26ch; font-size: clamp(20px, 2vw, 30px); line-height: 1.18; letter-spacing: -.025em; font-weight: 500; }
.hero__cta { display: flex; gap: 10px; flex-wrap: wrap; }

.dancers { padding: var(--section) 0; }
.dancers .head .display { font-size: clamp(34px, 3.4vw, 56px); line-height: .9; }
.dancers .head { align-items: center; }
.dancers__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
.dancers__list { border-bottom: 1px solid var(--line); }
.dancer a { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); padding: clamp(6px, .7vw, 12px) 0 0; }
.dancer:first-child a { border-top: 0; }
.dancer__img { display: none; }
.dancer__name {
  font-family: var(--f-display); font-stretch: 62%; font-weight: 900; text-transform: uppercase;
  font-size: clamp(76px, 11.2vw, 184px); line-height: .8; letter-spacing: -.01em;
  transition: font-stretch .7s var(--ease), color .5s var(--ease);
}
.dancers__list:hover .dancer__name { color: rgba(11, 32, 25, .14); }
.dancers__list .dancer a:hover .dancer__name { color: var(--pink); font-stretch: 78%; }
.dancer__go { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; opacity: 0; transform: translateX(-10px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.dancer__go svg { width: 18px; height: 18px; }
.dancer a:hover .dancer__go { opacity: 1; transform: none; }
@media (hover: hover) and (pointer: fine) { .dancer__go { display: none; } .dancer a, .lounge__img { cursor: none; } }
.dancers__frame { position: sticky; top: 110px; aspect-ratio: 3 / 4; border-radius: var(--radius); overflow: hidden; background: var(--sand-2); }
.dancers__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(100% 0 0 0); transform: scale(1.18); transition: clip-path 1s cubic-bezier(.76, 0, .24, 1), transform 1.4s var(--ease); }
.dancers__frame img.is-active { clip-path: inset(0 0 0 0); transform: scale(1); z-index: 1; }
.dancers__frame img.is-leaving { clip-path: inset(0 0 0 0); z-index: 0; }

.club { padding: var(--section) 0; }
.club__text { font-size: clamp(34px, 5vw, 84px); line-height: 1.04; letter-spacing: -.045em; font-weight: 500; max-width: 17em; }
.pill { display: inline-block; position: relative; width: 1.9em; height: .8em; margin: 0 .04em; border-radius: 999px; overflow: hidden; vertical-align: -.06em; background: var(--velour-soft); }
.pill img { width: 100%; height: 100%; object-fit: cover; }

.rooms { margin-top: clamp(80px, 9vw, 150px); }
.rooms__pin { height: 100vh; height: 100svh; display: flex; align-items: center; overflow: hidden; }
.rooms__track { display: flex; align-items: center; gap: clamp(24px, 3.2vw, 60px); padding-inline: var(--gutter); height: 84vh; will-change: transform; }
.rooms__intro { flex: none; width: min(30vw, 440px); align-self: center; }
.rooms__track::after { content: ""; flex: none; width: 1px; }
.rooms__intro p { margin-top: 26px; max-width: 26ch; font-size: clamp(18px, 1.5vw, 22px); line-height: 1.3; letter-spacing: -.02em; color: var(--muted); }
.room { flex: none; margin: 0; }
.room__img { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--velour-soft); }
.room__img img { width: 118%; max-width: none; height: 100%; margin-left: -9%; object-fit: cover; }
.room--tall .room__img { height: 62vh; aspect-ratio: 3 / 4; }
.room--wide .room__img { height: 46vh; aspect-ratio: 3 / 2; }
.room--low { align-self: flex-end; }
.room--high { align-self: flex-start; }
.room figcaption { margin-top: 14px; font-size: 14px; font-weight: 500; color: var(--muted); }

.lounge { padding: var(--section) 0; }
.lounge__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 6vw, 110px); align-items: center; }
.lounge__img { display: block; aspect-ratio: 4 / 5; border-radius: var(--radius); overflow: hidden; }
.lounge__img img { width: 100%; height: 118%; object-fit: cover; will-change: transform; transition: scale 1.2s var(--ease); }
.lounge__img:hover img { scale: 1.04; }
.lounge__copy .display { font-size: clamp(56px, 7vw, 120px); }
.lounge__text { max-width: 30ch; margin: 32px 0 36px; font-size: clamp(19px, 1.7vw, 26px); line-height: 1.25; letter-spacing: -.025em; font-weight: 500; }
.lounge__facts { border-top: 1px solid var(--accent); margin-bottom: 40px; }
.lounge__facts li { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.lounge__facts li span:last-child { color: var(--muted); }
.lounge__cta { display: flex; gap: 10px; flex-wrap: wrap; }

.events { --fg: var(--sand); --muted: rgba(239, 231, 219, .7); --line: rgba(226, 204, 152, .24); position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: min(96vh, 920px); padding: var(--section) 0; background: var(--velour-deep); color: var(--fg); }
.events__media { position: absolute; z-index: -1; top: 0; right: 0; bottom: 0; width: 66%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 18%, #000 42%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .55) 18%, #000 42%); }
.events__media img { width: 100%; height: 116%; object-fit: cover; object-position: 62% 70%; will-change: transform; }
.events__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, var(--velour-deep), transparent 30%), linear-gradient(180deg, var(--velour-deep), transparent 22%); }
.events__copy { width: min(100%, 540px); }
.events__lede { margin: 30px 0 0; font-size: clamp(19px, 1.7vw, 26px); line-height: 1.25; letter-spacing: -.025em; font-weight: 500; }
.events__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; margin: 44px 0 44px; }
.events__cols > div { padding-top: 16px; border-top: 1px solid var(--gold-light); }
.events__cols h3 { font-size: 17px; font-weight: 600; letter-spacing: -.015em; margin-bottom: 6px; }
.events__cols p { font-size: 15px; line-height: 1.5; color: var(--muted); }

.visit { padding: var(--section) 0; }
.visit__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px clamp(40px, 7vw, 140px); }
.hours > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: clamp(16px, 1.3vw, 19px); }
.hours dd { font-variant-numeric: tabular-nums; }
.hours .is-closed { color: var(--faint); }
.visit__addr { font-size: clamp(30px, 3.4vw, 54px); line-height: 1.02; letter-spacing: -.04em; font-weight: 500; margin-bottom: 28px; }
.map { position: relative; isolation: isolate; aspect-ratio: 16 / 10; border-radius: var(--radius); overflow: hidden; margin-bottom: 28px; background: var(--velour-deep); }
.map iframe { position: absolute; inset: -60px 0 0; width: 100%; height: calc(100% + 60px); border: 0; filter: grayscale(1) invert(.9) contrast(1.15) brightness(.9); }
.map::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--velour); mix-blend-mode: color; }
.map::before { content: ""; position: absolute; z-index: 2; left: 50%; top: calc(50% - 30px); width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 6px rgba(234, 58, 147, .22); pointer-events: none; }

.faq { padding: var(--section) 0; }
.faq__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px clamp(40px, 7vw, 140px); align-items: start; }
.faq__head { padding-top: 22px; }
.faq__head .display { margin-bottom: 30px; }
.qa { border-bottom: 1px solid var(--line); }
.qa:first-child { border-top: 1px solid var(--accent); }
.qa summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; font-size: clamp(18px, 1.6vw, 23px); font-weight: 500; letter-spacing: -.02em; transition: color .3s; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary:hover { color: var(--pink); }
.qa summary i { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1px var(--line); transition: transform .6s var(--ease), background-color .4s, color .4s; }
.qa summary i svg { width: 16px; height: 16px; }
.qa[open] summary i { transform: rotate(135deg); background: var(--velour); color: var(--sand); box-shadow: none; }
.qa::details-content { block-size: 0; overflow: clip; transition: block-size .6s var(--ease), content-visibility .6s allow-discrete; }
.qa[open]::details-content { block-size: auto; }
.qa__a p { padding: 0 60px 26px 0; color: var(--muted); max-width: 56ch; }
.seo { margin-top: clamp(80px, 9vw, 140px); padding-top: 40px; border-top: 1px solid var(--line); }
.seo__inner { max-height: 12em; overflow: hidden; -webkit-mask-image: linear-gradient(180deg, #000 40%, transparent); mask-image: linear-gradient(180deg, #000 40%, transparent); transition: max-height .9s var(--ease); }
.seo.is-open .seo__inner { max-height: 140em; -webkit-mask-image: none; mask-image: none; }
.seo__cols { columns: 3 280px; column-gap: 48px; font-size: 14px; line-height: 1.7; color: var(--muted); }
.seo__cols :is(h2, h3, h4, h5, h6) { font-size: 15px; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; color: var(--fg); margin: 22px 0 6px; break-after: avoid; }
.seo__cols h2 { margin-top: 0; }
.seo__cols p { break-inside: avoid; margin-bottom: 12px; }
.seo__toggle { margin-top: 10px; font-size: 14px; font-weight: 500; border-bottom: 1px solid var(--line); padding-bottom: 3px; }

#main { position: relative; z-index: 1; box-shadow: 0 50px 90px -30px rgba(0, 0, 0, .55); }
.footer { position: sticky; z-index: 0; bottom: min(0px, calc(100vh - var(--fh, 0px))); bottom: min(0px, calc(100svh - var(--fh, 0px))); }
.footer { background: var(--night); color: var(--sand); padding: clamp(88px, 10vw, 150px) 0 calc(28px + env(safe-area-inset-bottom)); }
.footer__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px clamp(40px, 7vw, 120px); align-items: center; padding-bottom: clamp(64px, 7vw, 104px); border-bottom: 1px solid var(--line); }
.footer__guest .display { margin-bottom: 18px; }
.footer__sub { color: rgba(239, 231, 219, .66); max-width: 40ch; margin-bottom: 30px; }
.signup { position: relative; display: flex; align-items: center; gap: 8px; max-width: 480px; padding: 6px 6px 6px 22px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(239, 231, 219, .22); transition: box-shadow .3s; }
.signup:focus-within { box-shadow: inset 0 0 0 1px var(--pink); }
.signup input { flex: 1; min-width: 0; height: 42px; padding: 0; background: none; border: 0; color: var(--sand); font: inherit; font-size: 15px; }
.signup input::placeholder { color: rgba(239, 231, 219, .4); }
.signup input:focus { outline: none; }
.signup__ok { display: none; position: absolute; inset: 0; align-items: center; padding: 0 22px; border-radius: inherit; background: var(--night); }
.signup.is-done .signup__ok { display: flex; }
.footer__sign { text-align: center; }
.footer__logo { width: 100%; max-width: 560px; height: auto; aspect-ratio: 398 / 98; margin: 0 auto; overflow: visible; color: #FFE3F1; filter: var(--neon); }
.footer__logo.is-flicker { animation: flicker 2.4s linear forwards; }
.footer__addr { margin-top: 24px; font-size: 13px; font-weight: 500; color: rgba(239, 231, 219, .4); }
.footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 24px; padding-block: clamp(48px, 5vw, 72px); }
.footer__cols h3 { font-size: 13px; font-weight: 500; color: rgba(239, 231, 219, .4); margin-bottom: 16px; }
.footer__cols nav { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.footer__cols a, .footer__cols p { font-size: 15px; color: rgba(239, 231, 219, .86); }
.footer__cols p { line-height: 1.75; }
.footer__cols a { transition: color .3s; }
.footer__cols a:hover { color: var(--pink-hot); }
.footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 13px; color: rgba(239, 231, 219, .4); }
.footer__credit { display: inline-flex; align-items: center; gap: 6px; color: rgba(239, 231, 219, .6); transition: color .3s; }
.footer__credit:hover { color: var(--sand); }

@media (max-width: 1240px) {
  .header__nav { gap: 18px; font-size: 14px; }
  .header__logo svg { width: 150px; height: 35px; }
  .header__end .header__lang { display: none; }
}

@media (min-width: 1000px) and (max-width: 1099px) {
  .header__nav { gap: 14px; font-size: 13.5px; }
  .header__logo svg { width: 136px; height: 32px; }
}

@media (max-width: 999px) {
  .header { height: 66px; }
  .header { grid-template-columns: auto 1fr auto; }
  .header__nav, .header__contact { display: none; }
  .header__logo { grid-column: 1; grid-row: 1; }
  .header__end { grid-column: 3; gap: 6px; }
  .header__cart { width: 42px; height: 42px; margin-right: 0; }
  .header__menu { display: block; }
  .header__logo svg { width: 132px; height: 30px; }
  .btn--head { height: 42px; padding: 0 18px; font-size: 14px; }

  .dancers__grid { display: block; }
  .dancers__frame { display: none; }
  .dancers__list { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); border: 0; }
  .dancers__list::-webkit-scrollbar { display: none; }
  .dancer { flex: none; width: min(74vw, 340px); scroll-snap-align: start; }
  .dancer a { display: block; border: 0; padding: 0; }
  .dancer__img { display: block; position: relative; aspect-ratio: 3 / 4; border-radius: var(--radius); overflow: hidden; background: var(--sand-2); }
  .dancer__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(7, 21, 15, .75)); }
  .dancer__img img { width: 100%; height: 100%; object-fit: cover; }
  .dancer__name { position: absolute; z-index: 2; left: 16px; bottom: 12px; font-size: clamp(56px, 16vw, 84px); color: var(--cream); }
  .dancers__list:hover .dancer__name { color: var(--cream); }
  .dancer__go { display: none; }

  .lounge__grid, .visit__grid, .faq__grid { grid-template-columns: 1fr; }

  .club { padding-bottom: 0; }
  .rooms { margin-top: 64px; }
  .rooms__pin { padding-top: 66px; }
  .rooms__track { height: auto; gap: 20px; }
  .rooms__intro { width: 78vw; }
  .room--tall .room__img { height: 56vh; }
  .room--wide .room__img { height: 30vh; }

  .events { display: block; min-height: 0; padding: 0 0 88px; }
  .events__media { position: relative; width: 100%; height: auto; aspect-ratio: 4 / 3; -webkit-mask-image: linear-gradient(0deg, transparent 0%, #000 45%); mask-image: linear-gradient(0deg, transparent 0%, #000 45%); }
  .events__media::after { display: none; }
  .events__media img { object-position: 64% 70%; }
  .events__copy { margin-top: -24px; }
  .lounge__img { aspect-ratio: 4 / 3; }
  .footer__top { grid-template-columns: 1fr; }
  .footer__sign { order: -1; }
  .footer__cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .btn { height: 50px; padding: 0 22px; }
  .btn--head { height: 42px; padding: 0 18px; }
  .hero__content { flex-direction: column; align-items: flex-start; gap: 22px; }
  .hero__cta { width: 100%; }
  .hero__cta .btn { flex: 1; }
  .hero__meta { font-size: 12px; }
  .hero__hint span { display: none; }
  .head { align-items: flex-start; flex-direction: column; gap: 16px; }
  .head--sm, .dancers .head { flex-direction: row; align-items: center; flex-wrap: wrap; justify-content: space-between; }
  .club__text { font-size: clamp(30px, 8.6vw, 44px); line-height: 1.16; letter-spacing: -.04em; }
  .lounge__cta .btn { flex: 1; }
  .qa summary { padding: 20px 0; }
  .qa__a p { padding-right: 0; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .rooms__pin { height: auto; }
  .rooms__track { overflow-x: auto; scroll-snap-type: x mandatory; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
