    :root {
      --ink: #090909;
      --ink-soft: #111112;
      --paper: #f0ece3;
      --gold: #d5ad5c;
      --gold-light: #e3c47f;
      --muted-light: rgba(255,255,255,.62);
      --muted-dark: rgba(9,9,9,.62);
      --line-light: rgba(255,255,255,.16);
      --line-dark: rgba(9,9,9,.16);
      --edge: clamp(22px, 5.5vw, 92px);
      --header: 82px;
      --brand-image: url("logo-labyrint.png");
      --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Arial, sans-serif;
      --serif: Georgia, "Times New Roman", serif;
    }

    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { background: var(--ink); color: #fff; font-family: var(--sans); margin: 0; overflow-x: hidden; text-rendering: optimizeLegibility; }
    html.menu-open, body.menu-open { overflow: hidden; overscroll-behavior: none; }
    body.menu-open::before { background: rgba(0,0,0,.58); content: ""; inset: var(--header) 0 0; position: fixed; z-index: 90; }
    a { color: inherit; }
    button, a { -webkit-tap-highlight-color: transparent; }
    svg { display: block; }
    .gtm-noscript { display: none; visibility: hidden; }
    .svg-defs { height: 0; overflow: hidden; position: absolute; width: 0; }
    .skip { background: var(--gold); color: var(--ink); left: 16px; padding: 12px 16px; position: fixed; top: -80px; z-index: 1000; }
    .skip:focus { top: 16px; }

    .brand-symbol { background: var(--brand-image) center / contain no-repeat; display: block; flex: 0 0 auto; height: 50px; width: 50px; }
    .brand-lockup { align-items: center; display: inline-flex; gap: 13px; min-width: max-content; text-decoration: none; }
    .brand-name { display: grid; line-height: 1; }
    .brand-name strong { font-size: 17px; letter-spacing: .18em; }
    .brand-name small { color: var(--gold); font-size: 9px; letter-spacing: .32em; margin-top: 7px; }

    .site-header {
      align-items: center;
      background: rgba(9,9,9,.96);
      border-bottom: 1px solid var(--line-light);
      display: grid;
      grid-template-columns: auto 1fr auto auto;
      height: var(--header);
      left: 0;
      padding: 0 var(--edge);
      position: fixed;
      right: 0;
      top: 0;
      z-index: 100;
    }
    .main-nav { align-items: center; display: flex; gap: clamp(20px, 2.5vw, 42px); justify-content: center; }
    .main-nav > a { color: rgba(255,255,255,.72); font-size: 14px; text-decoration: none; }
    .main-nav > a:hover, .main-nav > a:focus-visible { color: var(--gold); }
    .social-nav { align-items: center; display: flex; gap: 8px; margin-right: 18px; }
    .social-nav a { align-items: center; border: 1px solid var(--line-light); border-radius: 50%; display: inline-flex; height: 38px; justify-content: center; transition: background .2s, border-color .2s; width: 38px; }
    .social-nav a:hover, .social-nav a:focus-visible { background: var(--gold); border-color: var(--gold); }
    .social-nav svg { height: 17px; width: 17px; }
    .social-nav path, .social-nav circle, .social-nav rect { transition: stroke .2s, fill .2s; }

    .button { align-items: center; background: var(--gold); border: 1px solid var(--gold); color: var(--ink); display: inline-flex; font-size: 14px; font-weight: 700; gap: 30px; justify-content: center; min-height: 52px; padding: 14px 20px; text-decoration: none; transition: background .2s, border-color .2s, color .2s, transform .2s; }
    .button:hover, .button:focus-visible { background: var(--gold-light); border-color: var(--gold-light); transform: translateY(-2px); }
    .button.button-dark { background: var(--ink); border-color: var(--ink); color: #fff; }
    .button.button-dark:hover { background: #242425; border-color: #242425; }
    .text-link { font-size: 14px; font-weight: 700; text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 1px; text-underline-offset: 8px; }
    .text-link:hover, .text-link:focus-visible { opacity: .72; }
    .menu-button { background: none; border: 0; color: #fff; display: none; height: 46px; padding: 10px; width: 46px; }
    .menu-button span { background: currentColor; display: block; height: 1px; margin: 7px 0; transition: transform .2s; width: 25px; }

    .eyebrow { color: var(--gold); font-size: 11px; font-weight: 800; letter-spacing: .24em; margin: 0 0 24px; text-transform: uppercase; }
    h1, h2, h3, p { overflow-wrap: break-word; }
    h1, h2 { font-weight: 700; letter-spacing: -.048em; line-height: 1.01; margin: 0; }
    h1 { font-size: clamp(58px, 7.6vw, 126px); }
    h1 em { color: var(--gold); font-family: var(--serif); font-weight: 400; }
    h2 { font-size: clamp(48px, 6.4vw, 102px); }

    .hero {
      align-items: center;
      background:
        radial-gradient(circle at 80% 42%, rgba(213,173,92,.12), transparent 28%),
        var(--ink);
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
      min-height: 100svh;
      overflow: hidden;
      padding: calc(var(--header) + 66px) var(--edge) 72px;
      position: relative;
    }
    .hero::after { border: 1px solid rgba(213,173,92,.18); border-radius: 50%; content: ""; height: min(62vw, 820px); pointer-events: none; position: absolute; right: -15vw; top: 10%; width: min(62vw, 820px); }
    .hero-copy { position: relative; z-index: 2; }
    .hero-lead { color: var(--muted-light); font-size: clamp(17px, 1.6vw, 22px); line-height: 1.65; margin: 34px 0; max-width: 680px; }
    .hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 28px; }
    .hero-brand { align-items: center; display: flex; flex-direction: column; justify-content: center; min-width: 0; position: relative; text-align: center; z-index: 2; }
    .hero-brand .brand-symbol { filter: drop-shadow(0 22px 46px rgba(0,0,0,.45)); height: min(36vw, 430px); width: min(36vw, 430px); }
    .hero-brand strong { font-size: clamp(23px, 3vw, 40px); letter-spacing: .25em; margin-left: .25em; margin-top: -18px; }
    .hero-brand small { color: var(--gold); font-size: 11px; letter-spacing: .7em; margin-left: .7em; margin-top: 12px; }
    .hero-address { color: rgba(255,255,255,.85); font-size: 12px; letter-spacing: .14em; margin: 32px 0 8px; text-transform: uppercase; }
    .hero-hours { color: var(--gold); font-size: 13px; margin: 0; }
    .scroll-cue { align-items: center; bottom: 28px; color: rgba(255,255,255,.45); display: flex; font-size: 10px; gap: 13px; left: var(--edge); letter-spacing: .22em; position: absolute; text-decoration: none; text-transform: uppercase; }
    .scroll-cue::before { background: var(--gold); content: ""; height: 1px; width: 44px; }

    .section { padding: clamp(82px, 10vw, 150px) var(--edge); }
    section[id], article[id] { scroll-margin-top: var(--header); }
    .section-head[id] { scroll-margin-top: calc(var(--header) + 18px); }
    .section-head { display: grid; gap: 30px; grid-template-columns: 1fr 1fr; margin-bottom: clamp(56px, 7vw, 105px); }
    .section-head .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
    .section-head > p:last-child { align-self: end; font-size: 17px; line-height: 1.7; margin: 0; max-width: 500px; padding-left: clamp(0px, 4vw, 70px); }

    .venues { background: #0d0d0e; }
    .venues .section-head > p:last-child { color: var(--muted-light); }
    .venue-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .venue-card { border: 1px solid var(--line-light); display: flex; flex-direction: column; min-height: 490px; overflow: hidden; padding: clamp(30px, 4.5vw, 68px); position: relative; }
    .venue-card::after { border: 1px solid rgba(213,173,92,.13); border-radius: 50%; content: ""; height: 360px; pointer-events: none; position: absolute; right: -180px; top: -180px; width: 360px; }
    .venue-bar { background: #151516; }
    .venue-games { background: linear-gradient(145deg, #19150e 0%, #0f0f10 66%); border-color: rgba(213,173,92,.45); }
    .venue-number { color: rgba(255,255,255,.34); font-size: 11px; letter-spacing: .18em; margin-bottom: clamp(52px, 7vw, 100px); }
    .venue-card .eyebrow { margin-bottom: 16px; }
    .venue-card h3 { font-size: clamp(38px, 4.7vw, 72px); letter-spacing: -.05em; line-height: 1; margin: 0 0 25px; }
    .venue-card > p:not(.eyebrow) { color: var(--muted-light); font-size: 16px; line-height: 1.7; margin: 0; max-width: 580px; }
    .venue-meta { align-items: end; border-top: 1px solid var(--line-light); display: flex; justify-content: space-between; margin-top: auto; padding-top: 25px; }
    .venue-meta span { color: var(--muted-light); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
    .venue-meta strong { color: var(--gold); font-size: 20px; }
    .venue-card .text-link { align-self: flex-start; margin-top: 30px; }

    .food { background: var(--paper); color: var(--ink); }
    .food .section-head > p:last-child { color: var(--muted-dark); }
    .food-list { border-top: 1px solid var(--line-dark); display: grid; grid-template-columns: repeat(4, 1fr); }
    .food-item { border-right: 1px solid var(--line-dark); min-height: 310px; padding: 28px 24px 34px; }
    .food-item:last-child { border-right: 0; }
    .food-item > span { color: #8b6b2c; font-size: 11px; }
    .food-item h3 { font-size: clamp(24px, 2.25vw, 36px); letter-spacing: -.035em; line-height: 1.08; margin: 78px 0 18px; }
    .food-item p { color: var(--muted-dark); line-height: 1.65; margin: 0; }
    .bar-strip { align-items: center; background: var(--gold); display: grid; gap: 28px; grid-template-columns: 1fr 1fr auto; margin-top: 24px; padding: 26px 30px; }
    .bar-strip p { display: grid; margin: 0; }
    .bar-strip span { font-size: 10px; letter-spacing: .18em; margin-bottom: 7px; text-transform: uppercase; }
    .bar-strip strong { font-size: 17px; }
    .bar-strip small { font-size: 12px; margin-top: 6px; opacity: .72; }
    .bar-strip .text-link,
    .bar-strip .text-link:link,
    .bar-strip .text-link:visited,
    .bar-strip .text-link:hover,
    .bar-strip .text-link:focus-visible,
    .bar-strip .text-link:active {
      color: var(--ink);
      -webkit-text-fill-color: var(--ink);
      opacity: 1;
      text-decoration-color: var(--ink);
    }
    .bar-strip .text-link:hover,
    .bar-strip .text-link:focus-visible {
      text-decoration-thickness: 2px;
    }

    .story { background: #0d0d0e; overflow: hidden; }
    .story .section-head > p:last-child { color: var(--muted-light); }
    .photo-grid { align-items: start; display: grid; gap: clamp(14px, 2vw, 28px); grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .photo-card, .owner-card { margin: 0; min-width: 0; }
    .photo-card { position: relative; }
    .photo-card:nth-child(2), .photo-card:nth-child(3) { margin-top: 0; }
    .photo-card img { aspect-ratio: 2 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
    .photo-card::after { background: linear-gradient(transparent 55%, rgba(0,0,0,.82)); content: ""; inset: 0; pointer-events: none; position: absolute; }
    .photo-card figcaption { bottom: 0; color: #fff; font-size: clamp(15px, 1.4vw, 20px); font-weight: 650; left: 0; line-height: 1.3; padding: clamp(20px, 2.5vw, 34px); position: absolute; right: 0; z-index: 1; }
    .team-head { align-items: end; border-top: 1px solid var(--line-light); display: grid; gap: 40px; grid-template-columns: 1fr 1fr; margin-top: clamp(88px, 11vw, 170px); padding-top: clamp(60px, 7vw, 100px); }
    .team-head .eyebrow { margin-bottom: 24px; }
    .team-head h3 { font-size: clamp(42px, 5.5vw, 84px); letter-spacing: -.048em; line-height: 1.01; margin: 0; }
    .team-head > p { color: var(--muted-light); font-size: 17px; line-height: 1.7; margin: 0; max-width: 540px; padding-left: clamp(0px, 4vw, 70px); }
    .owner-grid { display: grid; gap: clamp(16px, 2vw, 30px); grid-template-columns: 1fr 1fr; margin-top: clamp(46px, 6vw, 82px); }
    .owner-card { background: #151516; border: 1px solid var(--line-light); display: grid; grid-template-columns: minmax(0, 1fr); }
    .owner-card img { aspect-ratio: 4 / 5; display: block; height: auto; object-fit: cover; object-position: center 24%; width: 100%; }
    .owner-card figcaption { display: grid; gap: 6px; padding: 22px 24px 24px; }
    .owner-card figcaption strong { font-size: 17px; }
    .owner-card figcaption span { color: var(--gold); font-size: 10px; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }

    .games { background: #080808; position: relative; }
    .games::before { background: linear-gradient(90deg, transparent, rgba(213,173,92,.12), transparent); content: ""; height: 1px; left: var(--edge); position: absolute; right: var(--edge); top: 0; }
    .games .section-head > p:last-child { color: var(--muted-light); }
    .games-brand { align-items: center; display: inline-grid; grid-template-columns: auto auto; margin-bottom: clamp(58px, 7vw, 90px); }
    .games-brand .brand-symbol { grid-row: 1 / 3; height: 68px; margin-right: 16px; width: 68px; }
    .games-brand strong { font-size: 20px; letter-spacing: .2em; }
    .games-brand small { color: var(--gold); font-size: 9px; letter-spacing: .48em; margin-top: 8px; }
    .games-tools { align-items: end; display: grid; gap: clamp(18px, 3vw, 34px); grid-template-columns: minmax(0, 1.65fr) minmax(240px, .75fr); margin: 42px 0 22px; }
    .games-tools label { color: var(--gold); display: flex; flex-direction: column; font-size: 13px; font-weight: 700; gap: 11px; letter-spacing: .04em; min-width: 0; }
    .games-tools input, .games-tools select { appearance: none; background: #171717; border: 1px solid rgba(255,255,255,.32); border-radius: 0; box-sizing: border-box; color: #fff; display: block; font: inherit; height: 58px; line-height: normal; margin: 0; min-width: 0; padding: 0 18px; width: 100%; }
    .games-tools select { background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%); background-position: calc(100% - 21px) 25px, calc(100% - 15px) 25px; background-repeat: no-repeat; background-size: 6px 6px, 6px 6px; cursor: pointer; padding-right: 48px; }
    .games-tools input::placeholder { color: rgba(255,255,255,.5); }
    .games-tools input:hover, .games-tools select:hover { border-color: rgba(213,173,92,.75); }
    .games-tools input:focus-visible, .games-tools select:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
    .games-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 28px; }
    .game-card { background: #151515; border-top: 1px solid var(--gold); overflow-wrap: anywhere; padding: 30px; }
    .game-card h3 { color: #fff; font-size: clamp(23px, 2.4vw, 32px); letter-spacing: normal; line-height: 1.25; margin: 0 0 18px; }
    .game-card .eyebrow { line-height: 1.5; margin-bottom: 18px; }
    .game-meta { color: var(--gold-light); font-size: 14px; line-height: 1.7; }
    .game-description { color: #d0d0d0; line-height: 1.7; white-space: pre-line; }
    #games-status { color: #ccc; line-height: 1.6; }
    #games-status button { background: none; border: 0; color: var(--gold); cursor: pointer; font: inherit; }
    .games-salon { align-items: center; border: 1px solid rgba(213,173,92,.4); display: grid; gap: clamp(28px, 4vw, 64px); grid-template-columns: minmax(280px, 1fr) minmax(280px, .8fr) auto; margin-top: clamp(72px, 8vw, 118px); padding: clamp(28px, 4vw, 54px); }
    .games-salon .eyebrow { margin-bottom: 16px; }
    .games-salon h3 { font-size: clamp(31px, 3.8vw, 56px); letter-spacing: -.045em; line-height: 1.06; margin: 0; }
    .games-salon > p { color: var(--muted-light); line-height: 1.7; margin: 0; }
    .games-salon .button { white-space: nowrap; }

    .events { background: var(--ink-soft); }
    .events .section-head > p:last-child { color: var(--muted-light); }
    .planned-events { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: clamp(82px, 9vw, 132px); }
    .event-card { background: #181819; border: 1px solid var(--line-light); display: grid; grid-template-columns: 92px minmax(0, 1fr); min-height: 250px; overflow: hidden; position: relative; }
    .event-card-date { align-items: center; background: var(--gold); color: var(--ink); display: flex; flex-direction: column; justify-content: center; padding: 24px 12px; text-align: center; }
    .event-card-date strong { font-size: 44px; line-height: .95; }
    .event-card-date span { font-size: 12px; font-weight: 700; letter-spacing: .12em; margin-top: 9px; text-transform: uppercase; }
    .event-card-date small { font-size: 10px; margin-top: 7px; opacity: .68; text-transform: uppercase; }
    .event-card-body { display: flex; flex-direction: column; min-width: 0; padding: 28px 25px 25px; }
    .event-card-category { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .18em; margin: 0 0 13px; text-transform: uppercase; }
    .event-card h3 { font-size: clamp(24px, 2.1vw, 34px); letter-spacing: -.035em; line-height: 1.08; margin: 0; }
    .event-card-time { color: rgba(255,255,255,.78); font-size: 13px; font-weight: 600; margin: 14px 0 0; }
    .event-card-description { color: var(--muted-light); font-size: 14px; line-height: 1.55; margin: 16px 0 0; }
    .event-card-action { align-self: flex-start; color: #fff; font-size: 13px; font-weight: 700; margin-top: auto; padding-top: 24px; text-decoration-color: var(--gold); text-underline-offset: 7px; }
    .event-card-action:hover, .event-card-action:focus-visible { color: var(--gold); }
    .events-loading, .events-empty, .events-error { border: 1px solid var(--line-light); color: var(--muted-light); grid-column: 1 / -1; line-height: 1.7; margin: 0; padding: 38px; text-align: center; }
    .events-empty strong { color: #fff; display: block; font-size: 21px; margin-bottom: 6px; }
    .events-empty a { color: var(--gold); }
    .regular-events-head { align-items: end; display: flex; gap: 32px; justify-content: space-between; margin-bottom: 28px; }
    .regular-events-head .eyebrow { margin: 0; }
    .regular-events-head h3 { font-size: clamp(24px, 3vw, 42px); letter-spacing: -.035em; margin: 0; }
    .event-list { border-top: 1px solid var(--line-light); list-style: none; margin: 0; padding: 0; }
    .event-list li { align-items: center; border-bottom: 1px solid var(--line-light); display: grid; gap: 22px; grid-template-columns: 64px 1fr auto; min-height: 108px; transition: color .2s, padding .2s; }
    .event-list li:hover { color: var(--gold); padding-left: 12px; }
    .event-list span, .event-list small { color: rgba(255,255,255,.42); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
    .event-list strong { font-size: clamp(26px, 3vw, 46px); font-weight: 600; letter-spacing: -.025em; }

    .booking { background: var(--gold); color: var(--ink); }
    .booking .eyebrow { color: var(--ink); opacity: .68; }
    .booking .section-head > p:last-child { color: rgba(9,9,9,.68); }
    .booking-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .booking-choice { background: var(--ink); color: #fff; display: flex; flex-direction: column; min-height: 370px; overflow: hidden; padding: clamp(30px, 4vw, 58px); position: relative; text-decoration: none; transition: background .2s, transform .2s; }
    .booking-choice:hover { background: #1a1a1b; transform: translateY(-5px); }
    .booking-choice > span { color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
    .booking-choice h3 { font-size: clamp(32px, 3.2vw, 54px); letter-spacing: -.05em; margin: 18px 0; }
    .booking-choice p { color: var(--muted-light); line-height: 1.65; margin: 0; max-width: 410px; }
    .booking-choice b { margin-top: auto; position: relative; text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 8px; z-index: 2; }
    .ps5-mark, .d20-mark { bottom: 22px; color: rgba(213,173,92,.12); font-size: clamp(74px, 10vw, 150px); font-weight: 850; letter-spacing: -.08em; position: absolute; right: 28px; transform: rotate(-7deg); }

    .contact { background: var(--ink); }
    .contact .section-head > p:last-child { color: var(--muted-light); }
    .contact-grid { border-top: 1px solid var(--line-light); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .contact-cell { border-right: 1px solid var(--line-light); display: flex; flex-direction: column; min-height: 190px; padding: 28px 22px; position: relative; text-decoration: none; }
    .contact-cell:last-child { border-right: 0; }
    .contact-cell > span { color: var(--gold); font-size: 10px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
    .contact-cell strong { font-size: clamp(17px, 1.7vw, 25px); line-height: 1.38; margin-top: 28px; }
    a.contact-cell::after { bottom: 24px; color: var(--gold); content: "↗"; position: absolute; right: 24px; }
    a.contact-cell:hover strong { color: var(--gold); }
    .contact-socials { align-items: center; border-top: 1px solid var(--line-light); display: flex; gap: 28px; margin-top: 26px; padding-top: 26px; }
    .contact-socials > span { color: rgba(255,255,255,.42); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
    .contact-socials a { align-items: center; display: inline-flex; gap: 9px; text-decoration: none; }
    .contact-socials a:hover { color: var(--gold); }
    .contact-socials svg { height: 18px; width: 18px; }

    .map { background: var(--ink-soft); display: grid; grid-template-columns: minmax(390px, .7fr) minmax(0, 1.3fr); }
    .map-copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: 72px var(--edge); }
    .map-copy h2 { font-size: clamp(44px, 4.2vw, 70px); }
    .map-copy h2 span { white-space: nowrap; }
    .map-copy > p:not(.eyebrow) { color: var(--muted-light); line-height: 1.7; margin: 30px 0; max-width: 390px; }
    .map-frame { min-height: 590px; position: relative; }
    .map-frame iframe { border: 0; height: 100%; inset: 0; position: absolute; width: 100%; }
    .map-click { inset: 0; position: absolute; z-index: 2; }

    .footer { align-items: center; background: #050505; border-top: 1px solid var(--line-light); display: grid; gap: 28px; grid-template-columns: auto 1fr auto; padding: 28px var(--edge); }
    .footer .brand-symbol { height: 46px; width: 46px; }
    .footer nav { display: flex; flex-wrap: wrap; gap: 24px; justify-content: center; }
    .footer nav a { color: rgba(255,255,255,.58); font-size: 12px; text-decoration: none; }
    .footer nav a:hover { color: var(--gold); }
    .footer-legal { color: rgba(255,255,255,.34); font-size: 11px; line-height: 1.5; margin: 0; text-align: right; }
    .footer-legal span { color: rgba(255,255,255,.52); display: block; margin-top: 5px; }

    .reveal { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s ease; }
    .reveal.visible { opacity: 1; transform: none; }

    @media (max-width: 1120px) {
      .site-header { grid-template-columns: auto 1fr auto auto; }
      .main-nav { display: none; }
      .menu-button { display: block; }
      .menu-button[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
      .menu-button[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
      .main-nav.open { align-items: stretch; background: var(--ink); border-bottom: 1px solid var(--line-light); box-shadow: 0 24px 48px rgba(0,0,0,.38); display: flex; flex-direction: column; gap: 0; left: 0; max-height: calc(100svh - var(--header)); overflow-y: auto; overscroll-behavior: contain; padding: 16px var(--edge) 28px; position: absolute; right: 0; top: 100%; z-index: 2; }
      .main-nav.open > a { border-bottom: 1px solid var(--line-light); font-size: 16px; padding: 17px 0; }
      .mobile-only-socials { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 18px; }
      .mobile-only-socials a { border: 1px solid var(--line-light); justify-content: center; min-height: 46px; padding: 10px 12px; text-decoration: none; }
      .food-list { grid-template-columns: 1fr 1fr; }
      .food-item:nth-child(2) { border-right: 0; }
      .food-item:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
      .venue-grid { grid-template-columns: 1fr 1fr; }
      .photo-grid { grid-template-columns: 1fr 1fr; }
      .games-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .games-salon { grid-template-columns: 1fr 1fr; }
      .games-salon .button { grid-column: 1 / -1; justify-self: start; }
      .booking-grid { grid-template-columns: 1fr 1fr; }
      .booking-choice:last-child { grid-column: 1 / -1; }
      .contact-grid { grid-template-columns: 1fr 1fr; }
      .contact-cell { border-bottom: 1px solid var(--line-light); }
      .contact-cell:nth-child(even) { border-right: 0; }
      .contact-cell:last-child { border-bottom: 0; border-right: 0; grid-column: 1 / -1; }
      .planned-events { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .team-head { gap: 32px; }
      .section { padding-bottom: clamp(78px, 9vw, 112px); padding-top: clamp(78px, 9vw, 112px); }
      .section-head { gap: clamp(26px, 4vw, 48px); }
    }

    .mobile-only-socials { display: none; }
    .mobile-only-socials a { align-items: center; display: inline-flex; gap: 10px; }
    .mobile-only-socials svg { flex: 0 0 auto; height: 19px; width: 19px; }

    @media (max-width: 900px) {
      .header-booking { display: none; }
      .site-header { grid-template-columns: auto 1fr auto; }
      .social-nav { justify-self: end; }
    }

    @media (max-width: 760px) {
      :root { --header: 72px; }
      .site-header { grid-template-columns: 1fr auto auto; padding-left: 18px; padding-right: 10px; }
      .brand-symbol { height: 42px; width: 42px; }
      .brand-name strong { font-size: 14px; }
      .brand-name small { font-size: 8px; }
      .social-nav { gap: 5px; margin-right: 2px; }
      .social-nav a { height: 34px; width: 34px; }
      .hero { grid-template-columns: 1fr; min-height: auto; padding-bottom: 90px; padding-top: calc(var(--header) + 64px); }
      .hero::after { height: 110vw; right: -55vw; top: 48%; width: 110vw; }
      .hero-brand { margin-top: 58px; }
      .hero-brand .brand-symbol { height: min(76vw, 340px); width: min(76vw, 340px); }
      .hero-brand strong { margin-top: -12px; }
      .hero-address { margin-top: 26px; }
      h1 { font-size: clamp(50px, 16vw, 70px); }
      h2 { font-size: clamp(42px, 13vw, 64px); }
      .section { padding-bottom: 74px; padding-top: 74px; }
      .section-head { display: block; margin-bottom: 52px; }
      .section-head .eyebrow { margin-bottom: 24px; }
      .section-head > p:last-child { margin-top: 28px; padding-left: 0; }
      .food-list, .venue-grid, .games-tools, .games-grid, .games-salon, .booking-grid, .contact-grid { grid-template-columns: 1fr; }
      .food-item { border-bottom: 1px solid var(--line-dark); border-right: 0; min-height: 245px; }
      .food-item h3 { margin-top: 48px; }
      .bar-strip { align-items: flex-start; grid-template-columns: 1fr; padding: 24px 22px; }
      .photo-grid, .owner-grid { grid-template-columns: 1fr; }
      .photo-grid { gap: 18px; }
      .photo-card:nth-child(2), .photo-card:nth-child(3) { margin-top: 0; }
      .photo-card img, .owner-card img { aspect-ratio: 4 / 5; }
      .team-head { align-items: start; grid-template-columns: 1fr; }
      .team-head > p { padding-left: 0; }
      .venue-card { min-height: 430px; }
      .games-salon .button, .booking-choice:last-child, .contact-cell:last-child { grid-column: auto; }
      .games-salon .button { justify-self: stretch; }
      .planned-events { grid-template-columns: 1fr; margin-bottom: 72px; }
      .event-card { min-height: 220px; }
      .regular-events-head { align-items: flex-start; flex-direction: column; gap: 12px; }
      .event-list li { grid-template-columns: 42px 1fr; padding: 18px 0; }
      .event-list small { grid-column: 2; }
      .booking-choice { min-height: 310px; }
      .contact-cell { border-bottom: 1px solid var(--line-light); border-right: 0; min-height: 150px; }
      .contact-socials { align-items: flex-start; flex-direction: column; gap: 16px; }
      .map { grid-template-columns: 1fr; }
      .map-copy { padding-bottom: 60px; padding-top: 72px; }
      .map-copy h2 { font-size: clamp(38px, 11vw, 54px); }
      .map-frame { min-height: 430px; }
      .footer { grid-template-columns: 1fr; text-align: center; }
      .footer .brand-lockup { justify-self: center; }
      .footer nav { gap: 16px; }
      .footer-legal { text-align: center; }
    }

    @media (max-width: 520px) {
      .social-nav { display: none; }
      .site-header { grid-template-columns: 1fr auto; }
      .brand-lockup { gap: 10px; }
      .main-nav.open { padding-left: 20px; padding-right: 20px; }
      .mobile-only-socials { grid-template-columns: 1fr; }
      .hero-actions { align-items: stretch; flex-direction: column; gap: 24px; }
      .hero-actions .button { width: 100%; }
      .hero-actions .text-link { align-self: flex-start; }
      .event-list strong { font-size: clamp(24px, 8vw, 34px); }
      .event-card { grid-template-columns: 78px minmax(0, 1fr); }
      .event-card-date strong { font-size: 38px; }
      .event-card-body { padding: 24px 20px 22px; }
      .booking-choice { min-height: 290px; padding: 28px 24px; }
      .contact-socials { width: 100%; }
      .contact-socials a { min-height: 38px; }
      .map-copy { padding-left: 22px; padding-right: 22px; }
    }

    @media (hover: none) {
      .button:hover, .button:focus-visible { transform: none; }
      .booking-choice:hover { transform: none; }
      .event-list li:hover { padding-left: 0; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      .reveal { opacity: 1; transform: none; transition: none; }
    }
