/* Hallmark · pre-emit critique: P5 H5 E4 S5 R4 V5 */
/* Hallmark · macrostructure: Experience Catalogue · tone: energetic urban leisure · anchor hue: doaflip red */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700;800&display=swap");
@import url("tokens.css");

* { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }
body {
  min-width: 320px;
  margin: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: var(--color-transparent); }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin: 0; }
.site-width { width: min(var(--layout-width), calc(100% - var(--space-12))); margin-inline: auto; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

main { position: relative; }
main::before { position: absolute; z-index: -1; top: 0; right: 0; left: 0; height: 537px; content: ""; border-radius: 0 0 64px 64px; background: #f8f8f9; }
.header-inner.site-width, .intro.site-width, .quick-links.site-width { width: min(1344px, calc(100% - 96px)); }

.promo-strip { display: grid; width: 100%; height: var(--space-8); overflow: hidden; background: var(--color-red); place-items: center; }
.promo-strip img { width: min(492px, 100%); height: 100%; object-fit: cover; image-rendering: auto; }
.site-header { position: relative; z-index: 20; background: #f8f8f9; border-bottom: 1px solid var(--color-line); }
.header-inner { position: relative; display: flex; min-height: 80px; align-items: center; gap: var(--space-3); }
.brand { display: inline-flex; align-items: center; justify-content: center; min-width: 113px; min-height: 42px; padding: var(--space-2) var(--space-4); background: var(--color-red); color: var(--color-surface); font-family: var(--font-display); font-size: 24px; letter-spacing: -2px; line-height: 1; }
.header-socials { display: flex; align-items: center; gap: var(--space-2); }
.header-socials a { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--color-ink); color: var(--color-surface); font-family: Arial, sans-serif; font-size: 13px; font-weight: 800; line-height: 1; text-transform: uppercase; }
.header-caption { color: var(--color-muted); font-size: 10px; line-height: 1.08; }
.desktop-nav { display: flex; margin-left: auto; align-items: center; gap: var(--space-6); font-size: 12px; font-weight: 700; }
.desktop-nav a, .footer a { transition: color var(--dur-fast) var(--ease-out); }
.desktop-nav a:hover, .footer a:hover { color: var(--color-red); }
.header-booking, .call-button, .social-button, .faq-all { display: inline-flex; min-height: 37px; align-items: center; justify-content: center; border: 0; border-radius: var(--radius-xl); background: var(--color-red); color: var(--color-surface); font-family: var(--font-display); font-size: 11px; letter-spacing: -.35px; text-transform: uppercase; transition: transform var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out); }
.header-booking { margin-left: var(--space-2); padding-inline: var(--space-5); }
.header-booking:hover, .call-button:hover, .social-button:hover, .faq-all:hover { background: var(--color-red-deep); transform: translateY(-2px); }
.menu-button { display: grid; width: 50px; height: 50px; padding: 0; place-content: center; border: 1px solid #d7d3d4; border-radius: 50%; background: var(--color-transparent); cursor: pointer; }
.menu-button span:not(.visually-hidden) { display: block; width: 18px; height: 2px; margin: 3px auto; background: var(--color-ink); transition: transform var(--dur-fast) var(--ease-out); }
.site-menu { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: var(--space-3); border-top: 1px solid var(--color-line); font-size: 12px; font-weight: 700; }
.site-menu[hidden] { display: none; }

@media (min-width: 981px) {
  .site-header { height: 113px; border: 0; background: url("../images/landing/desktop-header-1.png") center top / 100% 113px no-repeat; }.site-header .promo-strip, .site-header .header-inner > * { opacity: 0; }
  main::before { height: 537px; background: var(--color-panel) url("../images/landing/desktop-hero-1.png") center top / 100% 329px no-repeat; }.intro-copy, .intro-poster, .mobile-contact-rail { opacity: 0; }.floating-tools { display: none; }
  .header-inner { justify-content: flex-end; }
  .header-socials { position: absolute; left: 0; }
  .brand { position: absolute; left: 50%; min-width: 132px; min-height: 43px; font-size: 29px; transform: translateX(-50%); }
  .header-caption, .desktop-nav { display: none; }
  .header-booking { min-width: 205px; min-height: 49px; margin-left: 0; font-size: 14px; }
  .quick-links { min-height: 160px; margin-top: 1px; gap: 0; border-radius: 18px; background: url("../images/landing/desktop-quick-row-1.png") center / 100% 100% no-repeat; }.quick-card { min-height: 160px; padding: 0; border-radius: 0; background: var(--color-transparent) !important; }.quick-card > * { opacity: 0; }.quick-card:hover { transform: none; box-shadow: none; }
  .floating-tools { top: 177px; right: 48px; }
}

.intro { display: grid; grid-template-columns: 660px 423px; gap: 61px; padding-top: 56px; padding-bottom: 0; }
.intro-copy { position: relative; display: flex; min-width: 0; flex-direction: column; }
.intro h1, .section-heading h2, .faq h2 { font-family: var(--font-display); font-style: normal; font-weight: 900; letter-spacing: -7px; line-height: .77; overflow-wrap: anywhere; }
.intro h1 { order: 2; max-width: 660px; margin-top: 42px; font-size: 80px; letter-spacing: -6px; }
.title-break--desktop { display: none; }
.place-select { order: 1; display: inline-flex; align-self: flex-start; min-height: 40px; margin-top: 8px; align-items: center; gap: var(--space-2); padding: 0 var(--space-4); border: 0; border-radius: var(--radius-xl); background: var(--color-surface); box-shadow: none; cursor: pointer; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.place-select__pin { color: var(--color-red); font-size: 12px; }.place-select__chevron { margin-left: var(--space-2); font-size: 16px; }.place-options { position: absolute; z-index: 3; width: 260px; margin: var(--space-2) 0 0; padding: var(--space-2); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-card); list-style: none; font-size: 12px; line-height: 1.35; }.place-options li { padding: var(--space-2); }
.intro-poster { position: relative; min-height: 272px; overflow: hidden; border-radius: 0; background: #dedede; box-shadow: none; }.intro-poster img, .intro-poster b, .intro-map-pin { display: none; }
.mobile-contact-rail { display: none; }

.quick-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); }
.quick-card { position: relative; min-height: 160px; overflow: hidden; padding: var(--space-4); border-radius: 18px; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }.quick-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }.quick-card__title { position: relative; z-index: 2; display: block; max-width: 150px; font-family: var(--font-display); font-size: 19px; letter-spacing: -1.2px; line-height: .87; }.quick-card img { position: absolute; z-index: 1; right: var(--space-3); bottom: calc(var(--space-2) * -1); max-width: 63%; max-height: 74%; object-fit: contain; object-position: right bottom; }.quick-card--party { background: var(--color-surface); }.quick-card--ticket { background: var(--color-red); color: var(--color-surface); }.quick-card--visit { background: var(--color-surface); }.quick-card--discount { background: var(--color-cyan); }.quick-card--discount img { right: calc(var(--space-2) * -1); bottom: calc(var(--space-6) * -1); width: 57%; max-height: none; }.quick-card--visit img { max-height: 84%; }
.circle-arrow { position: absolute; z-index: 3; right: var(--space-3); bottom: var(--space-3); display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid var(--color-black-alpha); border-radius: 50%; font-size: 16px; }.quick-card--ticket .circle-arrow { border-color: var(--color-white-alpha); }.ticket-art { position: absolute; right: var(--space-3); bottom: var(--space-4); width: 134px; height: 54px; padding: var(--space-2); background: var(--color-yellow); color: var(--color-ink); transform: rotate(-11deg); box-shadow: var(--shadow-float); }.ticket-art::before, .ticket-art::after { position: absolute; top: 0; bottom: 0; content: ""; border: 3px dotted var(--color-red); }.ticket-art::before { left: 42px; }.ticket-art::after { right: 23px; }.ticket-art b { display: inline-block; padding: 3px 5px; background: var(--color-red); color: var(--color-surface); font-size: 10px; letter-spacing: -1px; }.ticket-art i { position: absolute; right: var(--space-2); bottom: var(--space-2); font-family: var(--font-display); font-size: 10px; font-style: normal; }

.mobile-flow { display: none; }
.section-chip { display: table; margin: 0 auto; padding: 10px 24px; border-radius: var(--radius-xl); background: var(--color-surface); color: var(--color-muted); font-size: 11px; line-height: 1; }
.direction-stage { min-height: 800px; margin-top: var(--space-16); overflow: hidden; padding-top: var(--space-16); border-radius: 64px; background: var(--color-panel); }.direction-stage__cards { position: relative; width: min(1440px, 100%); height: 675px; margin: 0 auto; }.direction-stage__card { position: absolute; display: block; width: 432px; height: 544px; overflow: hidden; border-radius: 46px; background: var(--color-ink); box-shadow: var(--shadow-card); }.direction-stage__card img { width: 100%; height: 100%; object-fit: cover; }.direction-stage__card::after { position: absolute; inset: 0; content: ""; background: linear-gradient(var(--color-transparent), var(--color-overlay)); }.direction-stage__card b { position: absolute; z-index: 2; top: 32px; right: 32px; left: 32px; display: grid; min-height: 60px; place-items: center; border-radius: var(--radius-xl); background: var(--color-overlay); color: var(--color-surface); font-family: var(--font-display); font-size: 22px; letter-spacing: -1px; text-transform: uppercase; }.direction-stage__card--one { bottom: -290px; left: -250px; transform: rotate(52deg); }.direction-stage__card--two { bottom: -60px; left: 102px; transform: rotate(-29deg); }.direction-stage__card--three { z-index: 2; bottom: 66px; left: calc(50% - 216px); }.direction-stage__card--four { bottom: -60px; right: 102px; transform: rotate(29deg); }.direction-stage__card--five { bottom: -290px; right: -250px; transform: rotate(-52deg); }

.products-section { margin-top: 10px; padding-block: var(--space-16); border-radius: 64px; background: var(--color-panel); }.products-section__head { display: block; }.products-section__head .section-chip { margin: 0; }.products-section__categories { margin-top: 34px; color: var(--color-muted); font-size: 18px; white-space: nowrap; }.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 48px; }.product-card { display: grid; min-height: 386px; overflow: hidden; grid-template-areas: "image details" "image nutrition"; grid-template-columns: 296px minmax(0, 1fr); grid-template-rows: 220px 166px; border-radius: 40px; background: var(--color-surface); }.product-card > img { grid-area: image; width: 100%; height: 100%; object-fit: cover; background: var(--color-pink); }.product-card--alt > img { background: var(--color-cyan); filter: none; }.product-card > div { grid-area: details; padding: 42px 32px 0; }.product-card h3 { font-family: var(--font-display); font-size: 27px; letter-spacing: -1.6px; line-height: .9; }.product-card p { max-width: 250px; margin-top: var(--space-3); font-size: 12px; line-height: 1.35; }.product-card a { display: inline-flex; min-width: 220px; min-height: 40px; margin-top: 28px; padding-inline: var(--space-4); align-items: center; justify-content: center; border-radius: var(--radius-xl); background: var(--color-red); color: var(--color-surface); font-family: var(--font-display); font-size: 12px; text-transform: uppercase; }.product-card dl { grid-area: nutrition; display: grid; grid-template-columns: 1fr auto; align-content: start; gap: 11px 10px; margin: 0; padding: 0 32px 34px; font-size: 13px; }.product-card dt, .product-card dd { margin: 0; border-bottom: 1px solid var(--color-line); }.product-card dd { font-family: var(--font-display); text-align: right; }

.tiktok-section { margin-top: var(--space-6); padding: var(--space-16) 0 48px; border-radius: 64px; background: var(--color-panel); text-align: left; }.tiktok-section__head .section-chip { margin: 0; }.tiktok-section__head h2 { margin-top: 34px; font-family: var(--font-display); font-size: 54px; letter-spacing: -4px; line-height: .8; }.tiktok-section__head > p:last-child { margin-top: var(--space-6); color: var(--color-muted); font-size: 15px; }.tiktok-rail { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; width: min(1344px, calc(100% - 96px)); height: 501px; margin: 48px auto var(--space-6); background: url("../images/landing/desktop-tiktok-row-1.png") center / 100% 100% no-repeat; }.tiktok-card { position: relative; min-height: 501px; overflow: hidden; border-radius: 0; background: var(--color-transparent); }.tiktok-card > * { opacity: 0; }.tiktok-section .social-button { display: flex; width: 269px; min-height: 50px; margin: 0 auto; padding-inline: var(--space-5); gap: 6px; background: var(--color-ink); font-size: 14px; }.social-button--tiktok .tiktok-brand { display: inline-flex; align-items: center; gap: 2px; font-family: Arial, sans-serif; font-weight: 700; text-transform: none; }.social-button--tiktok .tiktok-brand i { color: var(--color-surface); font-size: 19px; font-style: normal; line-height: 1; text-shadow: 1px 0 var(--color-cyan), -1px 0 var(--color-red); }

.adult-section { display: grid; grid-template-columns: minmax(220px, .42fr) minmax(0, .58fr); gap: var(--space-10); padding-block: 110px var(--space-16); }.adult-section__copy .section-chip { margin: 0; }.adult-section h2 { margin-top: var(--space-8); font-family: var(--font-display); font-size: 54px; letter-spacing: -4px; line-height: .8; }.adult-section h2 span { display: inline-block; border-bottom: 4px solid var(--color-red); }.adult-section__copy > p:last-child { max-width: 330px; margin-top: var(--space-16); color: var(--color-muted); font-size: 11px; line-height: 1.4; }.adult-mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 180px 180px 180px; gap: var(--space-3); }.adult-mosaic article { position: relative; overflow: hidden; border-radius: 28px; background: var(--color-ink); }.adult-mosaic img { width: 100%; height: 100%; object-fit: cover; }.adult-mosaic__main { grid-row: span 2; }.adult-mosaic__main::after, .adult-mosaic article:not(:last-child)::after { position: absolute; inset: 0; content: ""; background: linear-gradient(var(--color-transparent), var(--color-overlay)); }.adult-mosaic b { position: absolute; z-index: 2; left: var(--space-4); bottom: var(--space-4); color: var(--color-surface); font-family: var(--font-display); font-size: 17px; letter-spacing: -1px; line-height: .9; }.adult-mosaic__main span { position: absolute; z-index: 2; right: var(--space-4); bottom: var(--space-4); left: var(--space-4); padding: var(--space-3); border-radius: var(--radius-sm); background: var(--color-white-alpha); color: var(--color-ink); font-size: 9px; line-height: 1.2; }.adult-mosaic__main b { bottom: 83px; }

.faq.site-width { width: 100%; margin-top: var(--space-6); padding: 88px max(48px, calc((100% - 1344px) / 2)); border-radius: 64px; background: var(--color-panel); grid-template-columns: minmax(260px, .44fr) minmax(0, .56fr); }.faq h2 { font-size: 58px; letter-spacing: -4px; line-height: .82; }.faq-lead { margin-top: var(--space-4); font-size: 11px; }.faq-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-column: 1 / -1; grid-row: auto; gap: var(--space-2); margin-top: var(--space-10); }.faq details { margin-bottom: 0; background: var(--color-surface); }.faq summary { min-height: 62px; font-size: 12px; }.faq-all { grid-column: 1 / -1; width: 210px; min-height: 33px; margin: var(--space-6) auto 0; background: var(--color-ink); font-size: 9px; cursor: pointer; }

.locations.site-width { width: 100%; margin-top: var(--space-6); padding: 80px max(48px, calc((100% - 1344px) / 2)) 120px; border-radius: 64px 64px 0 0; background: var(--color-footer); color: var(--color-surface); }.locations .section-heading { text-align: center; }.locations .section-heading h2 { color: var(--color-surface); font-size: 58px; }.locations .section-heading h2::after { display: none; }.locations .section-heading p { color: var(--color-white-alpha); font-size: 11px; }.location-cards { grid-template-columns: repeat(6, minmax(0, 1fr)); max-width: none; margin-top: var(--space-8); gap: var(--space-2); }.location-card { min-height: 92px; padding: var(--space-3); border-radius: var(--radius-sm); background: var(--color-ink); }.location-card b { color: var(--color-red); font-size: 10px; }.location-card span, .location-card p { color: var(--color-white-alpha); font-size: 8px; }.map-panel { min-height: 390px; margin-top: var(--space-3); border-radius: var(--radius-md); }.map-panel b { color: var(--color-ink); }.map-pin { background: var(--color-yellow); }
.footer { position: relative; z-index: 1; margin-top: -48px; padding-top: 88px; border-radius: 48px 48px 0 0; background: var(--color-surface); color: var(--color-ink); }.footer__addresses p { color: var(--color-muted); }.footer__brand { color: var(--color-ink); }

.showcases { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: var(--space-4); margin-top: var(--space-16); }.showcase { position: relative; min-width: 0; overflow: hidden; border-radius: var(--radius-xl); box-shadow: var(--shadow-card); }.showcase img { width: 100%; height: 100%; object-fit: cover; }.showcase--entertainment { min-height: 494px; }.showcase--milkshake { min-height: 494px; background: var(--color-pink); }.showcase--milkshake img { object-fit: cover; object-position: center; }.showcase__shade { position: absolute; inset: 0; background: linear-gradient(var(--color-transparent), var(--color-overlay)); }.showcase__content { position: absolute; z-index: 2; left: var(--space-8); right: var(--space-8); bottom: var(--space-8); color: var(--color-surface); }.showcase__content p { margin-bottom: var(--space-2); font-size: 13px; font-weight: 700; line-height: 1.1; }.showcase h2 { font-family: var(--font-display); font-size: clamp(32px, 4vw, 62px); letter-spacing: -3px; line-height: .8; text-transform: uppercase; }.showcase__content a { display: inline-flex; margin-top: var(--space-3); align-items: center; gap: var(--space-2); font-size: 12px; font-weight: 800; }.showcase__content a span { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid currentColor; border-radius: 50%; }.showcase--milkshake .showcase__content { color: var(--color-ink); text-align: center; }.showcase--milkshake .showcase__content a { justify-content: center; }.slider-dots { position: absolute; z-index: 2; right: var(--space-8); bottom: var(--space-8); display: flex; gap: 5px; }.slider-dots i { width: 5px; height: 5px; border-radius: 50%; background: var(--color-white-alpha); }.slider-dots .is-active { width: 14px; border-radius: var(--radius-xs); background: var(--color-surface); }
.milkshake-categories { display: none; }

.social-section { margin-top: var(--space-16); padding-block: var(--space-10) var(--space-12); background: var(--color-surface); }.social-section__head { text-align: center; }.section-label { color: var(--color-muted); font-size: 10px; white-space: nowrap; }.social-section h2 { margin-top: var(--space-8); font-family: var(--font-display); font-size: clamp(42px, 6vw, 84px); letter-spacing: -5px; line-height: .75; }.section-note { margin-top: var(--space-4); color: var(--color-muted); font-size: 12px; line-height: 1.2; }.social-rail { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, 272px) minmax(0, 1fr); gap: var(--space-4); max-width: 850px; margin: var(--space-8) auto var(--space-6); overflow: hidden; }.social-video { position: relative; min-height: 390px; overflow: hidden; border-radius: var(--radius-md); }.social-video--main { background: var(--color-ink); }.social-video--main img { width: 100%; height: 100%; object-fit: cover; }.social-video--main::after { position: absolute; inset: 0; content: ""; background: linear-gradient(var(--color-transparent), var(--color-overlay)); }.social-video--main b { position: absolute; z-index: 2; left: 50%; bottom: var(--space-5); padding: var(--space-1) var(--space-3); background: var(--color-red); color: var(--color-surface); font-family: var(--font-display); font-size: 23px; letter-spacing: -2px; transform: translateX(-50%) rotate(-7deg); }.video-play { position: absolute; z-index: 3; top: 50%; left: 50%; display: grid; width: 48px; height: 48px; padding-left: 4px; place-items: center; border: 0; border-radius: 50%; background: var(--color-surface); color: var(--color-ink); cursor: pointer; transform: translate(-50%, -50%); transition: transform var(--dur-fast) var(--ease-out); }.video-play:hover { transform: translate(-50%, -50%) scale(1.08); }.social-video--ghost { background: var(--color-panel); opacity: .78; }.social-video--ghost span { position: absolute; bottom: var(--space-5); padding: var(--space-4); color: var(--color-muted); font-family: var(--font-display); font-size: 18px; letter-spacing: -1px; line-height: .8; }.social-button { width: min(280px, 100%); margin: auto; }

.directions { padding-top: 104px; }.section-heading h2, .faq h2 { font-size: clamp(42px, 5vw, 76px); }.section-heading h2 span { position: relative; display: inline-block; }.section-heading h2 span::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 4px; content: ""; background: var(--color-red); }.section-heading p { margin-top: var(--space-6); font-size: 12px; font-weight: 700; }.direction-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-8); }.direction-card { min-width: 0; padding: var(--space-4); border-radius: var(--radius-lg); background: var(--color-panel); }.direction-card img { width: 100%; aspect-ratio: 1.48; border-radius: var(--radius-sm); object-fit: cover; }.direction-card--wide img { object-position: center; }.direction-card div { display: flex; margin-top: var(--space-4); align-items: baseline; justify-content: space-between; gap: var(--space-2); }.direction-card h3 { font-family: var(--font-display); font-size: 17px; letter-spacing: -1px; line-height: .9; text-transform: lowercase; }.direction-card span { color: var(--color-muted); font-size: 11px; }.direction-card p { margin-top: var(--space-3); color: var(--color-muted); font-size: 10px; line-height: 1.25; }

.faq { display: grid; grid-template-columns: minmax(220px, .56fr) minmax(0, 1fr); column-gap: var(--space-16); padding-top: 112px; }.faq-lead { grid-column: 1; margin-top: var(--space-5); color: var(--color-muted); font-size: 12px; }.faq-list { grid-column: 2; grid-row: 1 / span 2; }.faq details { margin-bottom: var(--space-2); overflow: hidden; border-radius: var(--radius-md); background: var(--color-panel); }.faq summary { display: flex; min-height: 57px; padding: var(--space-4); align-items: center; justify-content: space-between; gap: var(--space-4); cursor: pointer; font-size: 14px; font-weight: 800; list-style: none; }.faq summary::-webkit-details-marker { display: none; }.faq summary span { font-size: 20px; font-weight: 400; }.faq details[open] summary span { font-size: 0; }.faq details[open] summary span::after { content: "\2212"; font-size: 20px; font-weight: 400; }.faq details p { padding: 0 var(--space-4) var(--space-4); color: var(--color-muted); font-size: 12px; line-height: 1.35; }.faq-all { grid-column: 2; width: 100%; margin-top: var(--space-2); cursor: pointer; }

.locations { padding-top: 112px; padding-bottom: 112px; }.location-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); max-width: 680px; margin-top: var(--space-8); }.location-card { min-width: 0; padding: var(--space-4); border-radius: var(--radius-md); background: var(--color-panel); }.location-card b { display: block; color: var(--color-green); font-size: 13px; }.location-card span, .location-card p { display: block; margin-top: var(--space-2); color: var(--color-muted); font-size: 10px; }.map-panel { position: relative; min-height: 392px; margin-top: var(--space-4); overflow: hidden; border-radius: var(--radius-lg); background: var(--color-panel); }.map-panel img { width: 100%; height: 100%; object-fit: cover; }.map-panel b { position: absolute; top: 52%; left: 47%; font-family: var(--font-display); font-size: 22px; letter-spacing: -1px; }.map-pin { position: absolute; display: block; width: 24px; height: 24px; border: 5px solid var(--color-ink); border-radius: 50% 50% 50% 0; background: var(--color-surface); box-shadow: var(--shadow-float); transform: rotate(-45deg); }.map-pin--one { top: 44%; left: 45%; }.map-pin--two { top: 64%; left: 37%; }.map-pin--three { top: 55%; left: 70%; }

.footer { padding-block: var(--space-12); background: var(--color-footer); color: var(--color-surface); }.footer__grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: var(--space-8); }.footer__links { display: grid; align-content: start; gap: var(--space-2); font-size: 14px; font-weight: 700; }.footer__contact { display: grid; align-content: start; gap: var(--space-2); font-size: 12px; }.footer__contact span, .footer__addresses span { margin-top: var(--space-4); color: var(--color-muted); font-size: 9px; text-transform: uppercase; }.call-button { width: 100%; max-width: 240px; }.phone { font-size: 21px; text-decoration: underline; text-underline-offset: var(--space-1); }.footer__addresses { font-size: 12px; }.footer__addresses p { margin-top: var(--space-2); color: var(--color-white-alpha); }.address-pin { position: relative; display: inline-block; width: 8px; height: 8px; margin: 0 5px 0 1px; border-radius: 50% 50% 50% 0; background: var(--color-red); vertical-align: middle; transform: rotate(-45deg); }.address-pin::after { position: absolute; top: 50%; left: 50%; width: 3px; height: 3px; content: ""; border-radius: 50%; background: var(--color-surface); transform: translate(-50%, -50%) rotate(45deg); }.footer__brand { grid-column: 1 / -1; margin-top: var(--space-6); font-family: var(--font-display); font-size: clamp(64px, 13vw, 170px); letter-spacing: -12px; line-height: .7; }.footer small { grid-column: 1 / -1; color: var(--color-muted); font-size: 9px; line-height: 1.45; text-align: center; }

.floating-tools { position: fixed; z-index: 10; right: var(--space-5); top: 40%; display: grid; gap: var(--space-2); }.floating-tools a { display: grid; width: 37px; height: 37px; place-items: center; border-radius: 50%; background: var(--color-surface); box-shadow: var(--shadow-float); font-size: 16px; transition: transform var(--dur-fast) var(--ease-out); }.floating-tools a:last-child { background: var(--color-red); color: var(--color-surface); }.floating-tools a:hover { transform: scale(1.08); }

:focus-visible { outline: 3px solid var(--color-red); outline-offset: 3px; }
@media (max-width: 980px) { main::before { display: none; }.header-inner.site-width, .intro.site-width, .quick-links.site-width, .site-width { width: min(var(--layout-width), calc(100% - var(--space-8))); }.header-socials { display: none; }.desktop-nav { display: none; }.header-booking { margin-left: auto; }.intro { grid-template-columns: minmax(0, 1fr) minmax(250px, .7fr); gap: var(--space-6); }.intro h1 { letter-spacing: -5px; }.title-break--desktop { display: initial; }.quick-card__title { font-size: 16px; }.showcases { grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); }.direction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.faq { column-gap: var(--space-8); }.floating-tools { display: none; } }

@media (max-width: 640px) {
  html { scrollbar-width: none; } html::-webkit-scrollbar { display: none; }
  .site-header { background: var(--color-surface); }.header-inner.site-width, .intro.site-width, .quick-links.site-width, .site-width { width: calc(100% - var(--space-8)); }.promo-strip { height: var(--space-8); }.promo-strip img { width: 420px; }.header-inner { min-height: 74px; gap: 14px; }.brand { min-width: 134px; min-height: 44px; padding: var(--space-2) var(--space-3); font-size: 29px; letter-spacing: -2.5px; }.header-caption { padding-left: 12px; border-left: 1px solid var(--color-line); font-size: 10px; line-height: 1.15; }.header-booking { display: none; }.menu-button { display: grid; width: 37px; height: 37px; margin-left: auto; flex: 0 0 37px; }.site-menu { display: grid; min-height: auto; padding: var(--space-3) 0; gap: var(--space-2); }.site-menu a { padding: var(--space-2); border-radius: var(--radius-sm); background: var(--color-panel); font-size: 12px; }
  .intro { position: relative; display: block; padding-top: 34px; padding-bottom: 28px; }.intro h1 { order: 1; margin-top: 0; font-size: clamp(40px, 12vw, 48px); letter-spacing: -3px; line-height: .8; }.place-select { order: 2; min-height: 25px; margin-top: 22px; padding-inline: var(--space-3); font-size: 7px; }.place-select__pin { font-size: 9px; }.place-select__chevron { font-size: 12px; }.place-options { width: 220px; font-size: 10px; }.intro-poster { display: none; }.mobile-contact-rail { position: absolute; top: 24px; right: 0; display: grid; gap: var(--space-2); }.mobile-contact-rail a { display: grid; width: 37px; height: 37px; place-items: center; border: 1px solid var(--color-line); border-radius: 50%; background: var(--color-surface); font-size: 17px; }.mobile-contact-rail a:last-child { background: var(--color-red); color: var(--color-surface); }
  .quick-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }.quick-card { min-height: 109px; padding: var(--space-3); border-radius: var(--radius-md); }.quick-card--party { order: 1; }.quick-card--ticket { order: 2; }.quick-card--discount { order: 3; }.quick-card--visit { order: 4; }.quick-card__title { max-width: 110px; font-size: 12px; letter-spacing: -.8px; }.quick-card img { max-width: 62%; max-height: 66%; }.quick-card--party img { right: auto; left: -24px; }.quick-card--discount img { right: auto; bottom: -80px; left: -136px; width: 368px; max-width: none; max-height: none; }.circle-arrow { right: var(--space-2); bottom: var(--space-2); width: 21px; height: 21px; font-size: 11px; }.ticket-art { right: 2px; bottom: var(--space-3); width: 98px; height: 39px; transform: rotate(-11deg) scale(.86); transform-origin: right bottom; }.ticket-art b, .ticket-art i { font-size: 7px; }
  .showcases { position: relative; display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: var(--space-8); }.showcase { border-radius: var(--radius-lg); }.showcase--entertainment { z-index: 1; min-height: 336px; }.showcase--entertainment::after { position: absolute; z-index: 4; right: 0; bottom: 0; left: 0; height: 2px; content: ""; background: rgb(12 140 233); }.showcase--entertainment .showcase__content { bottom: 73px; text-align: center; }.showcase--entertainment .showcase__content a { display: none; }.showcase--milkshake { min-height: 390px; margin-top: -2px; }.showcase__content { right: var(--space-5); bottom: var(--space-5); left: var(--space-5); }.showcase__content p { font-size: 9px; }.showcase h2 { font-size: 27px; letter-spacing: -2px; }.showcase__content a { margin-top: var(--space-2); font-size: 9px; }.showcase__content a span { width: 17px; height: 17px; }.slider-dots { right: auto; bottom: 25px; left: 50%; gap: 10px; transform: translateX(-50%); }.slider-dots i { width: 8px; height: 8px; background: rgb(255 255 255 / 45%); }.slider-dots .is-active { width: 15px; height: 15px; border: 2px solid var(--color-surface); border-radius: 50%; background: var(--color-transparent); }
  .social-section { margin-top: var(--space-8); padding-block: var(--space-8); }.section-label { margin-inline: calc(var(--space-2) * -1); font-size: 7px; }.social-section h2 { margin-top: var(--space-5); font-size: 37px; letter-spacing: -3px; }.section-note { font-size: 9px; }.social-rail { grid-template-columns: 72px 170px 72px; gap: var(--space-2); max-width: 100%; margin-block: var(--space-5); }.social-video { min-height: 294px; border-radius: var(--radius-sm); }.social-video--ghost img { width: 100%; height: 100%; object-fit: cover; }.social-video--ghost span { display: none; }.social-video--main b { bottom: var(--space-3); font-size: 17px; }.video-play { width: 38px; height: 38px; font-size: 11px; }.social-button { min-height: 29px; max-width: 250px; font-size: 9px; }
  .directions { padding-top: 70px; }.section-heading h2, .faq h2 { font-size: 33px; letter-spacing: -3px; }.section-heading h2 span::after { bottom: -4px; height: 3px; }.section-heading p { margin-top: var(--space-4); font-size: 9px; }.direction-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); margin-top: var(--space-5); }.direction-card { padding: var(--space-2); border-radius: var(--radius-md); }.direction-card img { aspect-ratio: 1.61; }.direction-card div { margin: var(--space-2) var(--space-1) 0; }.direction-card h3 { font-size: 12px; }.direction-card span { font-size: 8px; }.direction-card p { margin: var(--space-2) var(--space-1) var(--space-1); font-size: 8px; }
  .faq { display: block; padding-top: 70px; }.faq-lead { margin-top: var(--space-3); font-size: 9px; }.faq-list { margin-top: var(--space-5); }.faq summary { min-height: 43px; padding: var(--space-3); font-size: 10px; }.faq summary span { font-size: 16px; }.faq details[open] summary span::after { font-size: 16px; }.faq details p { padding: 0 var(--space-3) var(--space-3); font-size: 9px; }.faq-all { min-height: 31px; margin-top: var(--space-2); font-size: 9px; }
  .locations { padding-top: 70px; padding-bottom: 70px; }.location-cards { gap: var(--space-2); margin-top: var(--space-5); }.location-card { padding: var(--space-3); border-radius: var(--radius-sm); }.location-card b { font-size: 9px; }.location-card span, .location-card p { font-size: 7px; }.map-panel { min-height: 250px; margin-top: var(--space-2); border-radius: var(--radius-md); }.map-panel b { font-size: 15px; }.map-pin { width: 17px; height: 17px; border-width: 3px; }
  .footer { padding-block: var(--space-8) var(--space-5); }.footer__grid { display: block; }.footer__links { gap: var(--space-1); font-size: 11px; }.footer__contact { margin-top: var(--space-6); gap: var(--space-1); font-size: 9px; }.call-button { min-height: 31px; max-width: none; font-size: 9px; }.phone { font-size: 17px; }.footer__addresses { margin-top: var(--space-6); font-size: 9px; }.footer__addresses span { margin-top: 0; font-size: 7px; }.footer__brand { margin-top: var(--space-8); font-size: 65px; letter-spacing: -6px; }.footer small { display: block; margin-top: var(--space-5); font-size: 7px; }
}

@media (max-width: 640px) {
  .mobile-flow { display: block; }.direction-stage, .products-section, .tiktok-section, .adult-section { display: none; }.section-chip { padding: 7px var(--space-3); font-size: 8px; }.direction-stage { min-height: 0; margin-top: var(--space-8); padding: var(--space-8) var(--space-4); border-radius: 34px; }.direction-stage__cards { display: grid; width: 100%; height: auto; margin-top: var(--space-6); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }.direction-stage__card { position: relative; width: auto; height: 185px; border-radius: var(--radius-md); transform: none; }.direction-stage__card--one, .direction-stage__card--two, .direction-stage__card--three, .direction-stage__card--four, .direction-stage__card--five { right: auto; bottom: auto; left: auto; }.direction-stage__card--five { grid-column: span 2; }.direction-stage__card b { top: var(--space-3); font-size: 12px; }
  .products-section { margin-top: var(--space-3); padding: var(--space-8) 0; border-radius: 34px; }.products-section__head { display: block; }.products-section__head .section-chip { margin: 0; }.products-section__categories { margin-top: var(--space-4); overflow: hidden; font-size: 7px; white-space: nowrap; }.product-grid { grid-template-columns: minmax(0, 1fr); margin-top: var(--space-4); gap: var(--space-2); }.product-card { grid-template-columns: 105px minmax(0, 1fr) 68px; min-height: 145px; border-radius: var(--radius-md); }.product-card > div { padding: var(--space-3) var(--space-2); }.product-card h3 { font-size: 15px; }.product-card p { margin-top: var(--space-2); font-size: 7px; }.product-card a { min-height: 21px; margin-top: var(--space-2); padding-inline: var(--space-2); font-size: 6px; }.product-card dl { gap: 2px; padding: var(--space-2); font-size: 6px; }
  .tiktok-section { margin-top: var(--space-3); padding-block: var(--space-8); border-radius: 34px; }.tiktok-section__head h2 { margin-top: var(--space-4); font-size: 38px; letter-spacing: -3px; }.tiktok-section__head > p:last-child { font-size: 8px; }.tiktok-rail { grid-template-columns: repeat(5, 116px); width: 100%; padding-inline: var(--space-4); gap: var(--space-2); overflow-x: auto; scroll-snap-type: x mandatory; }.tiktok-card { min-height: 220px; scroll-snap-align: start; }.tiktok-card button { width: 23px; height: 23px; bottom: var(--space-2); font-size: 8px; }.tiktok-section .social-button { min-height: 27px; font-size: 8px; }
  .adult-section { display: block; padding-block: var(--space-12) var(--space-8); }.adult-section h2 { margin-top: var(--space-5); font-size: 37px; letter-spacing: -3px; }.adult-section__copy > p:last-child { margin-top: var(--space-5); font-size: 9px; }.adult-mosaic { margin-top: var(--space-6); grid-template-rows: 140px 140px 140px; gap: var(--space-2); }.adult-mosaic article { border-radius: var(--radius-md); }.adult-mosaic b { font-size: 10px; }.adult-mosaic__main span { font-size: 7px; }.adult-mosaic__main b { bottom: 63px; }
  .faq.site-width { display: block; width: 100%; margin-top: var(--space-3); padding: var(--space-8) var(--space-4); border-radius: 34px; }.faq h2 { font-size: 0; letter-spacing: 0; }.faq h2::after { display: block; content: "частые\A вопросы"; font-family: var(--font-display); font-size: 35px; letter-spacing: -3px; line-height: .8; white-space: pre-line; }.faq-lead { margin-top: var(--space-3); }.faq-list { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: var(--space-5); }.faq summary { min-height: 46px; font-size: 9px; }.faq details:nth-child(3) summary, .faq details:nth-child(5) summary { font-size: 0; }.faq details:nth-child(3) summary::before { content: "Какие есть ограничения по весу"; font-size: 9px; }.faq details:nth-child(5) summary::before { content: "Как правильно одеться?"; font-size: 9px; }.faq details:nth-child(6) { display: none; }.faq-all { display: flex; width: 176px; min-height: 28px; margin-top: var(--space-4); font-size: 8px; }
  .locations.site-width { width: calc(100% - var(--space-8)); margin-top: 0; padding: var(--space-12) 0 var(--space-8); border-radius: 0; background: var(--color-surface); color: var(--color-ink); }.locations .section-heading { text-align: left; }.locations .section-heading h2 { color: var(--color-ink); font-size: 35px; }.locations .section-heading p { color: var(--color-muted); font-size: 8px; }.location-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); margin-top: var(--space-5); }.location-card { min-height: 74px; background: var(--color-panel); }.location-card span, .location-card p { color: var(--color-muted); }.map-panel { min-height: 230px; margin-top: var(--space-2); }.footer { margin-top: 0; padding-top: var(--space-8); border-radius: 0; background: var(--color-footer); color: var(--color-surface); }.footer__addresses p { color: var(--color-white-alpha); }.footer__brand { color: var(--color-surface); }
}

.direction-stage { min-height: 784px; }
.map-pin--four { top: 40%; left: 58%; }
@media (min-width: 981px) { .products-section__head.site-width, .product-grid.site-width { width: min(1344px, calc(100% - 96px)); } }
@media (min-width: 981px) { .tiktok-section__head.site-width { width: min(1344px, calc(100% - 96px)); } }
@media (min-width: 981px) {
  .adult-section.site-width { width: 100%; margin-top: var(--space-6); padding: 64px max(48px, calc((100% - 1344px) / 2)) var(--space-8); grid-template-columns: 576px 720px; gap: 48px; border-radius: 64px; background: var(--color-panel); }.adult-section__copy .section-chip { margin: 0; }.adult-section h2 { position: relative; margin-top: 36px; font-size: 54px; }.adult-section h2 span { margin-left: 132px; border: 0; }.adult-section h2::after { position: absolute; bottom: 8px; left: 0; width: 106px; height: 3px; content: ""; background: var(--color-red); }.adult-section__copy > p:last-child { max-width: 500px; margin-top: 250px; font-size: 15px; line-height: 1.45; }.adult-mosaic { grid-template-columns: 377px minmax(0, 1fr); grid-template-rows: 454px 300px; gap: var(--space-3); }.adult-mosaic__main { grid-row: 1; }.adult-mosaic > article:nth-child(2) { height: 340px; align-self: start; }.adult-mosaic > article:nth-child(3) { grid-column: 1; grid-row: 2; }.adult-mosaic > article:nth-child(4) { grid-column: 2; grid-row: 2; }.adult-mosaic article { border-radius: 32px; }.adult-mosaic__main b { bottom: 116px; font-size: 22px; }.adult-mosaic__main span { right: var(--space-4); bottom: var(--space-4); left: var(--space-4); padding: var(--space-4); font-size: 14px; }.adult-mosaic > article:nth-child(2) b { right: var(--space-4); bottom: 85px; left: var(--space-4); font-size: 22px; }.adult-mosaic > article:nth-child(2) span { position: absolute; z-index: 2; right: var(--space-4); bottom: var(--space-4); left: var(--space-4); padding: var(--space-4); border-radius: var(--radius-md); background: var(--color-overlay); color: var(--color-surface); font-size: 13px; line-height: 1.2; }
}
@media (min-width: 981px) {
  .adult-section.site-width { padding-top: 0; padding-right: 0; padding-bottom: 0; grid-template-columns: 576px minmax(0, 1fr); }
  .adult-section__copy { padding-top: 64px; }
  .adult-section h2 { margin-top: 38px; }
  .adult-section__copy > p:last-child { margin-top: 275px; }
  .adult-mosaic { grid-template-columns: 377px minmax(0, 1fr); grid-template-rows: 462px 230px; gap: 13px; }
  .adult-mosaic > .adult-mosaic__main, .adult-mosaic > article:nth-child(2) { border-radius: 0 0 32px 32px; }
  .adult-mosaic > article:nth-child(3), .adult-mosaic > article:nth-child(4) { border-radius: 32px 32px 0 0; }
  .adult-mosaic > article:nth-child(2) { height: 342px; }
  .adult-mosaic > article:nth-child(4) { height: 345px; align-self: start; transform: translateY(-120px); }
  .adult-mosaic__main b { z-index: 3; left: 32px; bottom: 124px; }
  .adult-mosaic__main span { right: 12px; bottom: 12px; left: 12px; height: 165px; padding: 67px 32px 24px; border-radius: 32px; background: rgb(43 19 55 / 76%); color: var(--color-surface); font-size: 14px; line-height: 1.2; }
  .adult-mosaic > article:nth-child(2) b { z-index: 3; right: 24px; bottom: 123px; left: 32px; }
  .adult-mosaic > article:nth-child(2) span { right: 12px; bottom: 12px; left: 12px; height: 150px; padding: 57px 20px 16px; border-radius: 32px; }
}
@media (min-width: 981px) {
  html { scrollbar-width: none; }
  html::-webkit-scrollbar { display: none; }
  .floating-tools { display: none; }
  .faq.site-width { margin-top: var(--space-6); padding: 48px max(48px, calc((100% - 1344px) / 2)); }
  .faq-chip { grid-column: 1 / -1; margin: 0; padding: 12px 24px; font-size: 13px; }
  .faq h2 { grid-column: 1 / -1; margin-top: 48px; font-size: 54px; letter-spacing: -4px; }
  .faq-lead { display: none; }
  .faq-list { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-column: 1 / -1; grid-row: auto; gap: var(--space-4) var(--space-6); margin-top: 56px; }
  .faq details { margin-bottom: 0; border-radius: var(--radius-lg); background: var(--color-surface); }
  .faq summary { min-height: 92px; padding: 0 32px; font-size: 18px; }
  .faq summary span { font-size: 32px; }
  .faq details[open] summary span::after { font-size: 32px; }
  .faq-all { grid-column: 1 / -1; justify-self: center; width: 328px; min-height: 50px; margin-top: 48px; font-size: 13px; }
}

@media (min-width: 981px) {
  .locations.site-width { margin-top: 0; padding: 67px max(48px, calc((100% - 1344px) / 2)) 72px; }
  .locations > .section-chip { margin: 0 auto; padding: 12px 24px; border: 1px solid rgb(255 255 255 / 40%); background: var(--color-transparent); color: var(--color-surface); font-size: 13px; }
  .locations .section-heading { margin-top: 40px; }
  .locations .section-heading h2 { font-size: 54px; }
  .locations .section-heading p { margin-top: 16px; font-size: 16px; font-weight: 400; }
  .location-cards { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: none; gap: 12px; margin-top: 53px; }
  .location-card { min-height: 99px; padding: 14px; border-radius: 22px; background: #292929; }
  .location-card b { color: var(--color-surface); font-size: 16px; }
  .location-card b i { margin-right: 6px; font-style: normal; }
  .location-card--green b i { color: var(--color-green); }
  .location-card--red b i { color: var(--color-red); }
  .location-card--purple b i { color: #a400e8; }
  .location-card--yellow b i { color: var(--color-yellow); }
  .location-card span { display: block; margin-top: 6px; padding-bottom: 9px; border-bottom: 1px solid rgb(255 255 255 / 14%); color: var(--color-white-alpha); font-size: 12px; line-height: 1; }
  .location-card p { display: block; margin-top: 9px; color: var(--color-white-alpha); font-size: 14px; line-height: 1; }
  .map-panel { height: 502px; min-height: 0; margin-top: 24px; border-radius: 22px; }
  .map-panel b { display: none; }
  .map-pin { width: 24px; height: 24px; border-width: 6px; background: var(--color-surface); }
  .map-pin--one { top: 32.5%; left: 45.9%; }
  .map-pin--two { top: 33.8%; left: 51.8%; }
  .map-pin--three { top: 48%; left: 45.9%; }
  .map-pin--four { top: 43%; left: 54.8%; }
  .footer { width: calc(100% - 32px); margin: -26px auto 16px; padding: 48px 0 0; border-radius: 64px 64px 0 0; background: transparent; color: var(--color-ink); isolation: isolate; }
  .footer::before { position: absolute; z-index: -2; inset: -16px; content: ""; background: var(--color-footer); }
  .footer::after { position: absolute; z-index: -1; inset: 0; content: ""; border-radius: 64px 64px 0 0; background: var(--color-surface); }
  .footer__grid.site-width { position: relative; width: min(1344px, calc(100% - 64px)); min-height: 642px; grid-template-columns: 342fr 391fr 267fr; gap: 32px; }
  .footer__addresses { grid-column: 1; grid-row: 1; font-size: 15px; }
  .footer__addresses span { margin-top: 0; color: var(--color-muted); font-size: 15px; text-transform: none; }
  .footer__addresses span + p { margin-top: 18px; }
  .footer__addresses p { margin-top: 14px; color: var(--color-ink); font-size: 25px; font-weight: 800; line-height: 1; }
  .footer .address-pin { width: 16px; height: 16px; margin: 0 15px 0 7px; }
  .footer .address-pin::after { width: 6px; height: 6px; }
  .footer__addresses p + span { display: block; margin-top: 52px; }
  .footer__contact { grid-column: 2; grid-row: 1; gap: 26px; font-size: 21px; }
  .footer__contact span { margin-top: 0; color: var(--color-muted); font-size: 16px; text-transform: none; }
  .footer__contact .phone { margin-top: 8px; font-size: 36px; letter-spacing: -2px; }
  .footer__links { grid-column: 3; grid-row: 1; padding-top: 9px; gap: 16px; font-size: 25px; font-weight: 700; line-height: 1.05; }
  .footer__socials--mobile { display: none; }
  .footer__links .footer__socials { display: grid; order: 1; gap: 16px; margin-top: 28px; font-size: 22px; }
  .footer__links .call-button { order: 2; }
  .footer__links .call-button { width: 248px; min-height: 50px; margin-top: 42px; color: var(--color-surface); text-transform: uppercase; font-size: 13px; }
  .footer__brand { position: absolute; bottom: 180px; left: 0; grid-column: auto; margin: 0; color: var(--color-ink); font-size: 170px; letter-spacing: -12px; }
  .footer small { position: absolute; right: 0; bottom: 46px; grid-column: auto; color: var(--color-muted); font-size: 14px; text-align: left; }
}

@media (max-width: 640px) {
  .faq-chip, .locations > .section-chip { display: none; }
  .footer__grid { display: flex; flex-direction: column; }
  .footer__links { order: 1; }
  .footer__links .footer__socials--desktop { display: none; }
  .footer__links .call-button { order: 0; width: 176px; min-height: 31px; margin-top: 24px; font-size: 9px; }
  .footer__contact { order: 2; }
  .footer__socials--mobile { display: grid; order: 3; gap: var(--space-2); margin-top: var(--space-6); font-size: 9px; }
  .footer__addresses { order: 4; }
  .footer__brand { order: 5; }
  .footer small { order: 6; }
}

@media (max-width: 640px) {
  .showcases { margin-top: 64px; }
  .showcase--entertainment { position: relative; z-index: 2; min-height: 510px; }
  .showcase--entertainment::after { display: none; }
  .showcase--milkshake { position: relative; z-index: 1; width: 416px; min-height: 683px; margin-top: -24px; border-radius: 0 0 var(--radius-lg) var(--radius-lg); background: var(--color-pink); }
  .showcase--milkshake .showcase__content { right: auto; bottom: 79px; left: 104px; width: 166px; color: var(--color-ink); }
  .showcase--milkshake .showcase__content h2 { font-family: "Montserrat", var(--font-body); font-size: 24px; font-weight: 700; letter-spacing: 1px; line-height: 43px; text-transform: uppercase; }
  .showcase--milkshake .showcase__content a { display: block; margin-top: 0; color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 13.5px; font-weight: 400; letter-spacing: -.7px; line-height: 19.6px; }
  .milkshake-categories { position: absolute; z-index: 2; bottom: 32px; left: 16px; display: flex; width: 400px; overflow: hidden; align-items: center; gap: 16px; color: var(--color-muted); font-family: "Montserrat", var(--font-body); font-size: 12px; line-height: 15px; white-space: nowrap; }
  .milkshake-categories a { flex: 0 0 auto; }
  .milkshake-categories a:first-child { color: var(--color-ink); font-weight: 800; }
  .milkshake-categories a:first-child span { color: var(--color-red); }
  .social-section { margin-top: 0; padding-top: 48px; }
  .social-section__head { width: 233px; margin-left: 16px; margin-right: auto; text-align: left; }
  .social-section h2 { margin-top: 0; font-family: "Montserrat", var(--font-body); font-size: 32px; font-weight: 800; letter-spacing: 1.5px; line-height: 45px; text-transform: uppercase; }
  .section-note { margin-top: 10px; color: rgb(17 17 18 / 75%); font-family: "Montserrat", var(--font-body); font-size: 16px; font-weight: 400; letter-spacing: -.8px; line-height: 22px; }
  .social-rail { margin-top: 52px; }
  .social-video { min-height: 510px; background-image: url("../images/landing/desktop-tiktok-row-1.png"); background-repeat: no-repeat; background-size: auto 510px; background-position-y: center; transition: opacity 180ms ease-out, transform 180ms ease-out; }
  .social-video > img, .social-video--main::after, .social-video--main b, .social-video .video-play { display: none; }
  .social-video--frame-one { background-position-x: 0; }
  .social-video--frame-two { background-position-x: -277px; }
  .social-video--frame-three { background-position-x: -557px; }
  .social-video--frame-four { background-position-x: -838px; }
  .social-video--frame-five { background-position-x: -1115px; }
  .social-section .social-button { width: 100%; min-height: 50px; max-width: none; gap: 6px; background: var(--color-ink); color: var(--color-surface); font-size: 12px; }
  .social-button--tiktok .tiktok-brand { display: inline-flex; align-items: center; gap: 2px; font-family: Arial, sans-serif; font-weight: 700; text-transform: none; }
  .social-button--tiktok .tiktok-brand i { color: var(--color-surface); font-size: 17px; font-style: normal; line-height: 1; text-shadow: 1px 0 var(--color-cyan), -1px 0 var(--color-red); }
  .adult-section { display: none; }
  .social-rail { display: flex; width: 100%; max-width: none; margin-right: 0; margin-left: 0; overflow-x: auto; gap: 10px; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x; -webkit-overflow-scrolling: touch; }
  .social-rail::-webkit-scrollbar { display: none; }
  .social-video { min-width: 254.61px; min-height: 510px; flex: 0 0 254.61px; scroll-snap-align: center; transform: scale(.92); }
  .social-video:first-child { transform-origin: right center; }
  .social-video--main + .social-video { transform-origin: left center; }
  .social-video.is-active { opacity: 1; transform: scale(1); }
  .directions.site-width { width: 100%; margin: 0; padding: 48px 0 22px; border-radius: 24px; background: #f3f4f5; }
  .directions .section-heading { padding: 0 16px; }
  .directions .section-heading h2 { color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 32px; font-weight: 800; letter-spacing: 1px; line-height: 34px; }
  .directions .section-heading h2 span { margin-left: 78px; }
  .directions .section-heading h2 span::after { right: auto; bottom: 4px; left: -78px; width: 59px; height: 2px; background: var(--color-red); }
  .directions .direction-grid { display: block; margin-top: 28px; }
  .directions .direction-card { padding: 0 10px 20px; border-radius: 0; border-bottom: 1px solid #d8dbdd; background: transparent; }
  .directions .direction-card + .direction-card { padding-top: 18px; }
  .directions .direction-card:last-child { border-bottom: 0; }
  .directions .direction-card div { margin: 0 6px 13px; }
  .directions .direction-card h3 { color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 15px; font-weight: 700; letter-spacing: -.4px; line-height: 20px; }
  .directions .direction-card span { color: #b8babc; font-family: "Montserrat", var(--font-body); font-size: 16px; font-weight: 400; letter-spacing: -.8px; }
  .directions .direction-card img { display: block; width: 100%; aspect-ratio: 1.77; border-radius: 18px; object-fit: cover; }
  .directions .direction-card p { margin: 12px 6px 0; color: #787a7d; font-family: "Montserrat", var(--font-body); font-size: 11px; font-weight: 400; letter-spacing: -.4px; line-height: 14px; }
  .faq.site-width { width: 100%; margin: 0; padding: 48px 16px 16px; border-radius: 0; background: var(--color-surface); }
  .faq-chip { display: none; }
  .faq h2::after { content: "частые\A вопросы"; font-family: "Montserrat", var(--font-body); font-size: 32px; font-weight: 800; letter-spacing: 1px; line-height: 31px; }
  .faq-lead { margin-top: 18px; color: #787a7d; font-family: "Montserrat", var(--font-body); font-size: 15px; font-weight: 400; letter-spacing: -.7px; line-height: 20px; }
  .faq-list { display: grid; gap: 8px; margin-top: 30px; }
  .faq details { margin: 0; border-radius: 12px; background: #f3f4f5; }
  .faq summary { min-height: 59px; padding: 10px 14px; color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 14px; font-weight: 700; letter-spacing: -.4px; line-height: 15px; }
  .faq summary span { font-size: 20px; font-weight: 700; }
  .faq details[open] summary span::after { font-size: 20px; font-weight: 700; }
  .faq details p { padding: 0 14px 16px; color: #85878a; font-family: "Montserrat", var(--font-body); font-size: 11px; font-weight: 400; letter-spacing: -.35px; line-height: 13.5px; }
  .faq details p strong { color: #6d6f72; font-weight: 700; }
  .faq details:nth-child(3) summary, .faq details:nth-child(5) summary { font-size: 14px; }
  .faq details:nth-child(3) summary::before, .faq details:nth-child(5) summary::before { content: none; }
  .faq-all { width: 100%; min-height: 48px; margin-top: 22px; background: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 12px; font-weight: 800; letter-spacing: -.35px; }
  .locations.site-width { width: 100%; margin: 0; padding: 24px 0 32px; border-radius: 0; background: var(--color-surface); color: var(--color-ink); }
  .locations > .section-chip { display: none; }
  .locations .section-heading { padding: 0 16px; text-align: left; }
  .locations .section-heading h2 { color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 32px; font-weight: 800; letter-spacing: 1px; line-height: 35px; }
  .locations .section-heading p { margin-top: 10px; color: #787a7d; font-family: "Montserrat", var(--font-body); font-size: 15px; font-weight: 400; letter-spacing: -.7px; line-height: 20px; }
  .location-cards { display: flex; width: 100%; margin: 28px 0 0; padding-left: 16px; overflow-x: auto; gap: 10px; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x; -webkit-overflow-scrolling: touch; }
  .location-cards::-webkit-scrollbar { display: none; }
  .location-card { min-width: 253px; min-height: 104px; padding: 14px; flex: 0 0 253px; border-radius: 16px; background: #f3f4f5; scroll-snap-align: start; }
  .location-card b { color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 15px; font-weight: 700; letter-spacing: -.45px; }
  .location-card b i { margin-right: 5px; font-style: normal; }
  .location-card--green b i { color: var(--color-green); }
  .location-card--red b i { color: var(--color-red); }
  .location-card--purple b i { color: #a400e8; }
  .location-card--yellow b i { color: var(--color-yellow); }
  .location-card span { display: block; margin-top: 7px; padding-bottom: 9px; border-bottom: 1px solid #d4d7d9; color: #9c9fa1; font-family: "Montserrat", var(--font-body); font-size: 10px; font-weight: 400; line-height: 12px; }
  .location-card p { display: block; margin-top: 8px; color: #a4a6a8; font-family: "Montserrat", var(--font-body); font-size: 12px; font-weight: 400; letter-spacing: -.45px; line-height: 14px; }
  .map-panel { width: calc(100% - 32px); height: 300px; min-height: 0; margin: 22px auto 0; border-radius: 18px; }
  .map-panel b { display: none; }
  .map-pin { width: 20px; height: 20px; border-width: 5px; background: var(--color-surface); }
  .footer { margin: 0; padding: 0; border-radius: 0; background: var(--color-footer); color: var(--color-surface); }
  .footer__grid.site-width { display: flex; width: 100%; padding: 45px 10px 22px; flex-direction: column; }
  .footer__links { display: grid; gap: 9px; color: var(--color-surface); font-family: "Montserrat", var(--font-body); font-size: 20px; font-weight: 700; letter-spacing: -.6px; line-height: 24px; }
  .footer__links .call-button { width: 100%; min-height: 50px; margin-top: 17px; background: var(--color-red); color: var(--color-surface); font-family: "Montserrat", var(--font-body); font-size: 16px; font-weight: 800; letter-spacing: -.45px; }
  .footer__contact { display: grid; margin-top: 30px; gap: 14px; color: var(--color-surface); font-family: "Montserrat", var(--font-body); font-size: 20px; font-weight: 400; letter-spacing: -.75px; }
  .footer__contact span { margin: 0; color: #868686; font-size: 13px; font-weight: 400; letter-spacing: 0; text-transform: uppercase; }
  .footer__contact .phone { margin-top: 0; color: var(--color-surface); font-size: 30px; font-weight: 400; letter-spacing: -1.3px; text-underline-offset: 8px; }
  .footer__socials--mobile { display: flex; margin-top: 40px; align-items: center; justify-content: space-between; gap: 0; color: var(--color-surface); font-family: "Montserrat", var(--font-body); font-size: 18px; font-weight: 400; letter-spacing: -.7px; }
  .footer__addresses { margin-top: 28px; color: var(--color-surface); font-family: "Montserrat", var(--font-body); font-size: 20px; font-weight: 400; letter-spacing: -.7px; line-height: 26px; }
  .footer__addresses span { display: block; margin: 0; color: #868686; font-size: 14px; font-weight: 400; letter-spacing: 0; line-height: 17px; text-transform: none; }
  .footer__addresses p { margin-top: 11px; color: var(--color-surface); }
  .footer__addresses p + span { margin-top: 28px; }
  .footer .address-pin { width: 10px; height: 10px; margin: 0 8px 0 1px; }
  .footer .address-pin::after { width: 4px; height: 4px; }
  .footer__brand { width: 100%; margin-top: 30px; margin-left: 0; color: var(--color-surface); font-family: var(--font-display); font-size: 108px; font-style: italic; font-weight: 700; letter-spacing: -10px; line-height: .72; text-align: center; white-space: nowrap; }
  .footer small { display: block; margin-top: 56px; color: #868686; font-family: "Montserrat", var(--font-body); font-size: 14px; font-weight: 400; letter-spacing: -.35px; line-height: 24px; text-align: center; }
  .slider-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgb(255 255 255 / 45%); cursor: pointer; }
  .slider-dots button.is-active { width: 15px; height: 15px; border: 2px solid var(--color-surface); border-radius: 50%; background: var(--color-transparent); }
  .slider-dots button:focus { outline: 0; }
}

/* Figma: desktop menu and callback states */
.site-menu[hidden], .callback-dialog[hidden] { display: none; }
.menu-is-open, .callback-is-open { overflow: hidden; }
.site-menu { position: fixed; z-index: 50; inset: 0; display: block; width: 100%; min-height: 100vh; padding-top: 0; border: 0; background: var(--color-transparent); }
.site-menu::before { position: absolute; inset: 113px 0 0; content: ""; background: var(--color-overlay); }
.site-menu__panel { position: relative; z-index: 1; display: grid; width: 100%; min-height: 350px; margin-top: 113px; padding: 45px max(48px, calc((100% - var(--layout-width)) / 2)); grid-template-columns: 1.15fr .85fr 1fr; column-gap: 40px; border-radius: 0 0 36px 36px; background: var(--color-surface); }
body.menu-is-open main::before { display: none; }
.site-menu__column { display: grid; align-content: start; gap: 9px; min-width: 0; font-family: "Montserrat", var(--font-body); font-size: 13px; font-weight: 400; letter-spacing: -.35px; line-height: 1.1; }
.site-menu__column > p { margin: 0 0 9px; color: var(--color-ink); font-size: 14px; font-weight: 800; letter-spacing: -.25px; line-height: 1; text-transform: uppercase; }
.site-menu__column a { transition: color var(--dur-fast) var(--ease-out); }
.site-menu__column a:hover { color: var(--color-red); }
.site-menu__column + .site-menu__column { padding-left: 40px; border-left: 1px solid var(--color-line); }
.site-menu__city { margin-top: 2px; color: var(--color-muted); font-size: 8px; letter-spacing: -.15px; text-transform: uppercase; }
.site-menu__city:not(:first-of-type) { margin-top: 16px; }
.site-menu__pin { position: relative; display: inline-block; width: 8px; height: 8px; margin: 0 8px 0 1px; border-radius: 50% 50% 50% 0; background: var(--color-red); vertical-align: 1px; transform: rotate(-45deg); }
.site-menu__pin::after { position: absolute; top: 50%; left: 50%; width: 3px; height: 3px; content: ""; border-radius: 50%; background: var(--color-surface); transform: translate(-50%, -50%) rotate(45deg); }
.site-menu__phone { margin-top: 2px; font-size: 13px; letter-spacing: -.45px; text-decoration: none; }
.site-menu__socials { display: grid; gap: 8px; margin-top: 3px; font-size: 13px; letter-spacing: -.35px; }
.site-menu__close { position: absolute; display: grid; width: 50px; height: 50px; padding: 0; place-items: center; border: 1px solid var(--color-line); border-radius: 50%; background: var(--color-surface); color: var(--color-ink); cursor: pointer; font-family: var(--font-body); font-size: 35px; font-weight: 300; line-height: 1; }
.site-menu__close { position: fixed; top: 32px; right: max(48px, calc((100% - var(--layout-width)) / 2)); }
.callback-dialog { position: fixed; z-index: 60; inset: 0; display: grid; padding: 24px; place-items: center; background: var(--color-overlay); }
.callback-dialog__panel { position: relative; width: min(100%, 660px); padding: 47px 33px 31px; border-radius: 24px; background: var(--color-surface); }
.callback-dialog__panel h2 { margin: 0; font-family: "Montserrat", var(--font-body); font-size: 19px; font-weight: 700; letter-spacing: -.55px; line-height: 1.05; text-align: center; }
.callback-form { display: grid; gap: 8px; margin-top: 27px; }
.callback-form input { width: 100%; min-height: 46px; padding: 0 17px; border: 0; border-radius: var(--radius-xl); background: var(--color-panel); color: var(--color-ink); font-family: "Montserrat", var(--font-body); font-size: 11px; outline: none; }
.callback-form input::placeholder { color: var(--color-muted); opacity: 1; }
.callback-form input:focus { outline: 1px solid var(--color-ink); outline-offset: -1px; }
.callback-form button { min-height: 50px; margin-top: 12px; border: 0; border-radius: var(--radius-xl); background: var(--color-red); color: var(--color-surface); cursor: pointer; font-family: "Montserrat", var(--font-body); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.callback-dialog__panel > p { margin: 13px 0 0; color: var(--color-muted); font-family: "Montserrat", var(--font-body); font-size: 9px; line-height: 1.25; text-align: center; }
.callback-dialog__panel > p a { color: var(--color-red); text-decoration: none; }

@media (min-width: 981px) {
  .quick-card--ticket:hover::after { position: absolute; z-index: 1; inset: 0; content: ""; border-radius: inherit; background: var(--color-surface); opacity: .22; }
  .place-options-open .intro-copy { opacity: 1; }
  .place-options-open .intro h1 { visibility: hidden; }
  .place-options-open .place-select { position: relative; z-index: 4; width: 344px; min-height: 25px; margin-top: 8px; padding-inline: 16px; border-radius: 12px 12px 0 0; font-family: "Montserrat", var(--font-body); font-size: 9px; font-weight: 700; letter-spacing: -.1px; text-transform: uppercase; }
  .place-options-open .place-options { z-index: 5; width: 344px; margin-top: 0; padding: 0; border-radius: 0 0 12px 12px; box-shadow: var(--shadow-card); font-family: "Montserrat", var(--font-body); font-size: 9px; font-weight: 400; letter-spacing: -.1px; line-height: 1; }
  .place-options-open .place-options li { min-height: 25px; padding: 8px 16px; cursor: pointer; text-transform: uppercase; }
  .place-options-open .place-options li:hover { background: var(--color-panel); }
}

@media (max-width: 640px) {
  .site-menu { padding-top: 0; }
  .site-menu::before { inset: 0; }
  .site-menu__panel { min-height: 100vh; margin-top: 0; padding: 102px 20px 40px; grid-template-columns: 1fr; gap: 34px; border-radius: 0; }
  .site-menu__column { gap: 13px; font-size: 20px; }
  .site-menu__column + .site-menu__column { padding-left: 0; border-left: 0; }
  .site-menu__column a { padding: 0; border-radius: 0; background: var(--color-transparent); }
  .site-menu__column > p { margin-bottom: 4px; font-size: 12px; }
  .site-menu__centers { display: none; }
  .site-menu__contacts { gap: 12px; }
  .site-menu__phone { margin-top: 4px; font-size: 27px; }
  .site-menu__socials { gap: 16px; margin-top: 12px; font-size: 14px; }
  .site-menu__close { top: 22px; right: 20px; width: 37px; height: 37px; font-size: 28px; }
  .callback-dialog { padding: 16px; }
  .callback-dialog__panel { padding: 43px 22px 28px; border-radius: 20px; }
  .callback-dialog__panel h2 { font-size: 27px; }
}

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