:root {
  --bg: #010E14;
  --panel: #071923;
  --panel-2: #0B2430;
  --text: #ffffff;
  --muted: #B7CED7;
  --line: rgba(255,255,255,.14);
  --brand: #3685A4;
  --brand-2: #4CC9EF;
  --brand-3: #D7F7FF;
  --ink: #010E14;
  --red: var(--brand);
  --red-2: var(--brand-2);
  --blue: var(--brand-2);
  --max: 1180px;
  --radius: 22px;
  --shadow: 0 20px 80px rgba(0,0,0,.44);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background:
    radial-gradient(circle at 12% 12%, rgba(54,133,164,.28), transparent 28rem),
    radial-gradient(circle at 86% 2%, rgba(76,201,239,.20), transparent 25rem),
    linear-gradient(180deg, #010E14 0%, #03151D 45%, #010E14 100%);
  color: var(--text);
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.skip-link { position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { left: 1rem; top: 1rem; width:auto; height:auto; background:#fff; color:#000; z-index:9999; padding:.6rem 1rem; }
.alert-banner { background: linear-gradient(90deg, #010E14, #123D50 35%, #3685A4 50%, #123D50 65%, #010E14); color:#fff; text-align:center; font-weight:900; letter-spacing:.08em; text-transform:uppercase; font-size:.82rem; border-bottom:1px solid rgba(76,201,239,.28); }
.alert-banner a { display:block; padding:.8rem 1rem; }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(1,14,20,.9); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.header-shell { max-width: 1320px; margin:auto; padding: 1rem 4vw; display:grid; grid-template-columns: auto 1fr auto; align-items:center; gap: 1.2rem; }
.brand { display:flex; align-items:center; gap:.75rem; font-weight: 950; text-transform:uppercase; letter-spacing:.03em; line-height:1.05; }
.brand em { display:block; color:var(--blue); font-style: normal; font-size:.78em; letter-spacing:.16em; }
.brand-logo-shell { width: 190px; height: 78px; display:inline-flex; align-items:center; justify-content:center; background:transparent; border-radius:0; padding:0; box-shadow:none; }
.brand-logo { width:100%; height:100%; object-fit:contain; }
.brand-location { display:inline-flex; align-items:center; min-height:44px; padding-left:.75rem; border-left:1px solid rgba(255,255,255,.18); color:var(--brand-3); font-size:.82rem; letter-spacing:.16em; white-space:nowrap; }
.brand-mark { width: 42px; height: 42px; display:grid; place-items:center; border:2px solid var(--blue); color: var(--blue); border-radius: 12px; box-shadow: 0 0 30px rgba(76,201,239,.25); }
.site-nav { display:flex; justify-content:center; align-items:center; gap:.25rem; flex-wrap:wrap; }
.site-nav a { padding:.6rem .75rem; border-radius:999px; color:var(--muted); font-size:.86rem; font-weight:800; text-transform:uppercase; }
.site-nav a:hover, .site-nav a.active { color:#fff; background: rgba(76,201,239,.13); }
.utility-links { display:flex; align-items:center; gap:.7rem; font-size:.82rem; color:var(--muted); white-space:nowrap; }
.utility-links a:hover, .footer-grid a:hover, .text-link:hover { color:var(--blue); }
.menu-toggle { display:none; border:1px solid var(--line); background:transparent; color:#fff; border-radius:10px; padding:.45rem .65rem; font-size:1.25rem; cursor:pointer; }
.hero { min-height: 68vh; display:grid; place-items:center; text-align:center; padding: 7rem 4vw; position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero::before { content:""; position:absolute; inset:0; background:
  linear-gradient(rgba(1,14,20,.68), rgba(1,14,20,.92)),
  repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 100px),
  repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 100px),
  radial-gradient(circle at center, rgba(54,133,164,.38), transparent 26rem); }
.hero::after { content:""; position:absolute; width:54rem; height:54rem; border-radius:50%; border:1px solid rgba(76,201,239,.26); box-shadow: inset 0 0 120px rgba(76,201,239,.08), 0 0 120px rgba(54,133,164,.18); transform: rotate(18deg); }
.hero-content { position:relative; z-index:1; max-width: 980px; }
.hero h1 { margin:.2rem 0; font-size: clamp(3rem, 9vw, 8.6rem); line-height:.88; text-transform:uppercase; letter-spacing:-.06em; }
.hero-small { min-height: 46vh; }
.hero-small h1 { font-size: clamp(2.7rem, 7vw, 6.5rem); }
.eyebrow { color: var(--blue); text-transform: uppercase; font-weight: 950; letter-spacing: .18em; font-size: .82rem; margin: 0 0 .8rem; }
.lead { font-size: clamp(1.1rem, 2vw, 1.55rem); color:#e8f7fb; font-weight:800; text-transform:uppercase; max-width:820px; margin: 1rem auto; }
.location { color:var(--muted); margin-top:1.2rem; font-weight:700; }
.hero-partner-logo-link { display:inline-flex; justify-content:center; align-items:center; margin-top:.65rem; max-width:min(540px, 78vw); }
.hero-partner-logo { display:block; width:100%; height:auto; object-fit:contain; }

.cta-row { display:flex; justify-content:center; gap:.85rem; flex-wrap:wrap; margin-top:1.65rem; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; border-radius:999px; padding:.9rem 1.25rem; font-weight:950; text-transform:uppercase; letter-spacing:.04em; border:1px solid transparent; cursor:pointer; }
.btn.primary { background: linear-gradient(135deg, var(--brand-2), #ffffff); color:var(--ink); box-shadow: 0 12px 36px rgba(76,201,239,.28); }
.btn.primary:hover { background: linear-gradient(135deg, #ffffff, var(--brand-2)); }
.btn.secondary { background:#fff; color:#010E14; }
.btn.ghost { background:rgba(255,255,255,.08); border-color:var(--line); }
.section { max-width: var(--max); margin: 0 auto; padding: 5rem 4vw; }
.section h2 { font-size: clamp(2rem, 5vw, 4.2rem); line-height:.96; margin:.2rem 0 1rem; text-transform:uppercase; letter-spacing:-.04em; }
.section h3 { font-size:1.35rem; margin:.2rem 0 .75rem; }
.section p { color: var(--muted); }
.center { text-align:center; }
.narrow { max-width: 850px; }
.split { display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:2rem; align-items:center; }
.reverse > :first-child { order:2; }
.feature-panel, .event-card, .cards article, .price-card, .step, details, .details-box { background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.035)); border:1px solid var(--line); border-radius:var(--radius); padding:2rem; box-shadow: var(--shadow); }
.feature-panel { min-height: 320px; display:flex; flex-direction:column; justify-content:center; background: linear-gradient(145deg, rgba(54,133,164,.24), rgba(76,201,239,.08)); }
.check-list, .numbered { padding-left:1.1rem; color:#e6f7fb; }
.image-card { border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow: var(--shadow); background:#081923; }
.image-card img { width:100%; height:100%; object-fit:cover; }
.press-card { max-width:850px; margin:1.4rem auto 0; border-radius:var(--radius); padding:1rem; background:#000; border:1px solid var(--line); }
.press-img { width:100%; border-radius:16px; }
.step-grid, .game-grid, .pricing-layout, .cards { display:grid; gap:1.3rem; }
.step-grid { grid-template-columns: repeat(4, 1fr); }
.step span { display:inline-grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--brand); font-weight:950; margin-bottom:1rem; }
.two-col { grid-template-columns: repeat(2, 1fr); }
.three-col { grid-template-columns: repeat(3, 1fr); }
.event-card { min-height: 360px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.price { color: var(--brand-2); font-size:1.15rem; font-weight:950; }
.price.big { font-size:2rem; }
.text-link { color: var(--blue); font-weight:900; text-transform:uppercase; font-size:.85rem; }
.newsletter { padding:5rem 4vw; background: linear-gradient(135deg, rgba(54,133,164,.22), rgba(76,201,239,.1)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.newsletter-inner { max-width: 850px; margin:auto; text-align:center; }
.newsletter h2 { font-size: clamp(2rem, 5vw, 4rem); line-height:1; margin:.2rem 0 1rem; text-transform:uppercase; }
form { display:flex; align-items:center; justify-content:center; gap:.7rem; flex-wrap:wrap; margin-top:1.4rem; }
input { min-width:min(320px,100%); background:#010E14; color:#fff; border:1px solid var(--line); border-radius:999px; padding:1rem 1.1rem; outline:none; }
input:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(76,201,239,.12); }
.form-message { width:100%; color:var(--blue)!important; font-weight:900; }
.pricing-layout { grid-template-columns: 1.2fr 1fr 1fr; align-items:stretch; }
.price-card.featured { grid-row: span 2; background: linear-gradient(145deg, rgba(54,133,164,.26), rgba(255,255,255,.05)); }
.huge { font-size:4rem; line-height:1; color:#fff!important; font-weight:950; margin:.5rem 0 0!important; }
.huge.small { font-size:3rem; }
.price-card ul { padding:0; list-style:none; margin:1rem 0 0; }
.price-card li { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 0; border-top:1px solid var(--line); color:#fff; }
.game-grid { grid-template-columns: repeat(2, 1fr); }
.game-card { border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--panel); box-shadow:var(--shadow); }
a.game-card { display:block; color:inherit; text-decoration:none; transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
a.game-card:hover, a.game-card:focus-visible { transform:translateY(-4px); border-color:rgba(79, 241, 255, .55); box-shadow:0 20px 55px rgba(0,0,0,.45); }
a.game-card:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.game-media { aspect-ratio:16/9; background:#051923; }
.game-media img { width:100%; height:100%; object-fit:cover; }
.gradient-media { height:100%; display:grid; place-items:center; padding:1rem; text-align:center; background: radial-gradient(circle at 20% 20%, rgba(76,201,239,.30), transparent 16rem), linear-gradient(135deg, rgba(54,133,164,.34), rgba(1,14,20,.95)); }
.gradient-media span { font-size:1.6rem; font-weight:950; text-transform:uppercase; }
.game-copy { padding:1.4rem; }
.staff-list { display:grid; gap:2rem; }
.staff-card { display:grid; grid-template-columns: 360px minmax(0,1fr); gap:2rem; align-items:center; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); padding:1.5rem; }
.staff-card.reverse { grid-template-columns: minmax(0,1fr) 360px; }
.staff-card.reverse .staff-photo { order:2; }
.staff-photo { border-radius:18px; overflow:hidden; align-self:stretch; min-height:380px; background:#071923; }
.staff-photo img { width:100%; height:100%; object-fit:cover; }
.social-row { display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1rem; }
.social-row a { color:var(--blue); font-weight:900; }
.faq-list { max-width: 900px; }
details { margin-bottom:1rem; }
summary { cursor:pointer; font-size:1.15rem; font-weight:950; text-transform:uppercase; }
details p { margin-bottom:0; }
.details-box { margin-top:1.5rem; }
.site-footer { border-top:1px solid var(--line); background:#010E14; padding:4rem 4vw 2rem; }
.footer-grid { max-width:var(--max); margin:auto; display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; }
.footer-grid p { color:var(--muted); max-width:420px; }
.footer-grid h3 { text-transform:uppercase; letter-spacing:.12em; color:var(--blue); font-size:.9rem; }
.footer-grid a { display:block; color:var(--muted); margin:.45rem 0; }
.footer-brand { margin-bottom:1rem; justify-content:flex-start; }
.footer-bottom { max-width:var(--max); margin:2rem auto 0; padding-top:1.2rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; color:var(--muted); font-size:.9rem; }
@media (max-width: 980px) {
  .header-shell { grid-template-columns: auto auto; }
  .menu-toggle { display:block; justify-self:end; }
  .site-nav { display:none; grid-column:1/-1; justify-content:flex-start; }
  .site-nav.open { display:flex; }
  .utility-links { grid-column:1/-1; justify-content:flex-start; }
  .split, .staff-card, .staff-card.reverse, .pricing-layout { grid-template-columns:1fr; }
  .reverse > :first-child, .staff-card.reverse .staff-photo { order:0; }
  .step-grid, .game-grid, .two-col, .three-col, .footer-grid { grid-template-columns:1fr; }
  .hero { min-height:58vh; }
}
@media (max-width: 560px) {
  .header-shell { padding: .9rem 1rem; }
  .brand { font-size:.86rem; gap:.55rem; }
  .brand-logo-shell { width:145px; height:58px; padding:.25rem .35rem; }
  .brand-location { min-height:36px; padding-left:.55rem; font-size:.68rem; letter-spacing:.12em; }
  .utility-links { flex-wrap:wrap; }
  .section, .newsletter { padding:3.5rem 1rem; }
  .hero { padding:5rem 1rem; }
  .event-card, .feature-panel, .step, details, .details-box { padding:1.35rem; }
    .staff-photo { min-height:300px; }
}

/* Supplied Zero Latency VR photo placements */
.hero-home::before {
  background:
    linear-gradient(rgba(1,14,20,.38), rgba(1,14,20,.82)),
    radial-gradient(circle at 50% 44%, rgba(54,133,164,.18), transparent 28rem),
    url("assets/zl-photo-header.jpg") center center / cover no-repeat;
}
.hero-home { min-height: 82vh; }
.photo-card, .wide-photo { position: relative; min-height: 360px; }
.photo-card img, .wide-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.video-card {
  background: #000;
}
.video-card iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: 0;
  border-radius: inherit;
}
@media (max-width: 980px) {
  .video-card iframe { min-height: 230px; }
}

.home-what-photo { aspect-ratio: 16 / 9; }
.lowdown-photo { aspect-ratio: 16 / 9; }
.what-share-section { padding-top: 0; }
.wide-photo { aspect-ratio: 16 / 9; max-width: 1100px; margin: 0 auto; }
.photo-callout {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 6rem 4vw;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.photo-callout::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(1,14,20,.40), rgba(1,14,20,.82)),
    url("assets/zl-main-page-experiences.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.photo-callout-content {
  position: relative;
  z-index: 1;
  max-width: 900px;
  margin: auto;
}
.photo-callout h2, .pricing-intro h1 {
  font-size: clamp(2.4rem, 6vw, 5.8rem);
  line-height: .94;
  margin: .2rem 0 1rem;
  text-transform: uppercase;
  letter-spacing: -.05em;
}
.photo-callout p:not(.eyebrow) { color: #e8f7fb; font-weight: 700; }
.pricing-intro { align-items: center; padding-top: 4rem; }
.pricing-photo-card { aspect-ratio: 1 / 1; max-width: 560px; width: 100%; justify-self: center; }
.pricing-photo-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 980px) {
  .hero-home { min-height: 70vh; }
  .photo-callout { min-height: 460px; }
  .pricing-intro h1 { font-size: clamp(2.2rem, 9vw, 4.8rem); }
}
@media (max-width: 560px) {
  .hero-home::before { background-position: center top; }
  .photo-card, .wide-photo { min-height: 230px; }
  .photo-callout { min-height: 420px; }
}
.what-lowdown-section { padding-top: 0; }

/* Additional Zero Latency VR photo galleries */
.photo-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.3rem;
  align-items: stretch;
  margin-top: 2rem;
}
.photo-gallery.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.photo-gallery .gallery-photo {
  margin: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
}
.photo-gallery .gallery-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.photo-gallery .gallery-photo.square img {
  aspect-ratio: 1 / 1;
}
.photo-gallery .gallery-photo.portrait img {
  aspect-ratio: 3 / 4;
}
.photo-gallery .gallery-photo.wide {
  grid-column: 1 / -1;
}
.photo-gallery .gallery-photo.wide img {
  aspect-ratio: 21 / 9;
}
.photo-gallery figcaption {
  padding: .85rem 1rem 1rem;
  color: var(--muted);
  text-align: left;
  font-weight: 800;
  font-size: .92rem;
}
.photo-gallery.tight {
  margin-top: 1.25rem;
}
@media (max-width: 980px) {
  .photo-gallery, .photo-gallery.two {
    grid-template-columns: 1fr;
  }
  .photo-gallery .gallery-photo.wide {
    grid-column: auto;
  }
  .photo-gallery .gallery-photo.wide img {
    aspect-ratio: 16 / 9;
  }
}


/* What To Expect header photo */
.what-expect-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.42), rgba(1,14,20,.84)),
    radial-gradient(circle at 62% 45%, rgba(76,201,239,.16), transparent 24rem),
    url("assets/zl-what-to-expect-header-friends.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.what-expect-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
@media (max-width: 560px) {
  .what-expect-hero::before { background-position: center center; }
}

/* Parties & Events header photo */
.parties-events-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.44), rgba(1,14,20,.86)),
    radial-gradient(circle at 54% 48%, rgba(76,201,239,.18), transparent 26rem),
    url("assets/zl-parties-events-header.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.parties-events-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
@media (max-width: 560px) {
  .parties-events-hero::before { background-position: center center; }
}


/* Experiences header photo */
.experiences-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.44), rgba(1,14,20,.86)),
    radial-gradient(circle at 54% 48%, rgba(76,201,239,.18), transparent 26rem),
    url("assets/zl-venue-gamemaster-pr.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.experiences-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
@media (max-width: 560px) {
  .experiences-hero::before { background-position: center center; }
}


/* Corporate Team Building header photo */
.corporate-team-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.40), rgba(1,14,20,.84)),
    radial-gradient(circle at 56% 42%, rgba(76,201,239,.16), transparent 24rem),
    url("assets/corporate-team-header.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.corporate-team-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
.corporate-bottom-cards {
  justify-content: center;
  grid-template-columns: repeat(2, minmax(280px, 420px));
}
@media (max-width: 980px) {
  .corporate-bottom-cards {
    grid-template-columns: 1fr;
  }
}

/* Corporate Team Building gallery card layout */
.corporate-gallery {
  grid-template-columns: repeat(2, minmax(320px, 540px));
  justify-content: center;
}
.corporate-gallery .gallery-photo:not(.wide) {
  max-width: 540px;
  width: 100%;
  justify-self: center;
}
.corporate-gallery .gallery-photo:not(.wide) img {
  aspect-ratio: 16 / 10;
}
@media (max-width: 980px) {
  .corporate-gallery {
    grid-template-columns: 1fr;
  }
  .corporate-gallery .gallery-photo:not(.wide) {
    max-width: 680px;
  }
}


/* Birthday & Private header photo */
.birthday-private-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.38), rgba(1,14,20,.84)),
    radial-gradient(circle at 54% 44%, rgba(76,201,239,.16), transparent 24rem),
    url("assets/birthday-private-header.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.birthday-private-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
@media (max-width: 560px) {
  .birthday-private-hero::before { background-position: center center; }
}

/* Birthday/Private equal image sizing */
.birthday-party-gallery .gallery-photo img {
  width: 100%;
  height: 320px;
  aspect-ratio: auto;
  object-fit: cover;
}
@media (max-width: 980px) {
  .birthday-party-gallery .gallery-photo img {
    height: 360px;
  }
}
@media (max-width: 560px) {
  .birthday-party-gallery .gallery-photo img {
    height: 260px;
  }
}

/* Card intro animations */
@keyframes cardIntro {
  from {
    opacity: 0;
    transform: translateY(26px) scale(.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.feature-panel,
.event-card,
.cards article,
.price-card,
.step,
.details-box,
.image-card,
.game-card,
.staff-card,
.press-card,
.photo-callout,
.newsletter-inner {
  opacity: 0;
  animation: cardIntro .72s ease-out forwards;
  animation-delay: calc(var(--card-order, 0) * 90ms);
  will-change: opacity, transform;
}

@media (prefers-reduced-motion: reduce) {
  .feature-panel,
  .event-card,
  .cards article,
  .price-card,
  .step,
  .details-box,
  .image-card,
  .game-card,
  .staff-card,
  .press-card,
  .photo-callout,
  .newsletter-inner {
    opacity: 1;
    animation: none;
    transform: none;
  }
}

/* Home page image and card intro animations */
@keyframes homeCardIntro {
  from {
    opacity: 0;
    transform: translateY(30px) scale(.97);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

.home-page .photo-card,
.home-page .wide-photo,
.home-page .image-card,
.home-page .feature-panel,
.home-page .event-card,
.home-page .price-card,
.home-page .step,
.home-page .game-card,
.home-page .press-card,
.home-page .newsletter-inner {
  opacity: 0;
  animation: homeCardIntro .82s cubic-bezier(.2, .8, .2, 1) forwards;
  animation-delay: calc(var(--card-order, 0) * 110ms);
  will-change: opacity, transform, filter;
}

.home-page .photo-card:hover,
.home-page .wide-photo:hover,
.home-page .image-card:hover,
.home-page .event-card:hover,
.home-page .game-card:hover {
  transform: translateY(-5px);
  transition: transform .22s ease, box-shadow .22s ease;
}

@media (prefers-reduced-motion: reduce) {
  .home-page .photo-card,
  .home-page .wide-photo,
  .home-page .image-card,
  .home-page .feature-panel,
  .home-page .event-card,
  .home-page .price-card,
  .home-page .step,
  .home-page .game-card,
  .home-page .press-card,
  .home-page .newsletter-inner {
    opacity: 1;
    animation: none;
    transform: none;
    filter: none;
  }
}

/* Scroll-triggered image and card reveal animations */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(34px) scale(.97);
  filter: blur(4px);
  transition:
    opacity .78s ease,
    transform .78s cubic-bezier(.2, .8, .2, 1),
    filter .78s ease;
  transition-delay: calc(var(--card-order, 0) * 80ms);
  will-change: opacity, transform, filter;
}

.reveal-on-scroll.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* Override earlier load-only animations so cards reveal as they enter the viewport */
.feature-panel.reveal-on-scroll,
.event-card.reveal-on-scroll,
.cards article.reveal-on-scroll,
.price-card.reveal-on-scroll,
.step.reveal-on-scroll,
.details-box.reveal-on-scroll,
.image-card.reveal-on-scroll,
.game-card.reveal-on-scroll,
.staff-card.reveal-on-scroll,
.press-card.reveal-on-scroll,
.photo-callout.reveal-on-scroll,
.newsletter-inner.reveal-on-scroll,
.photo-card.reveal-on-scroll,
.wide-photo.reveal-on-scroll {
  animation: none;
}

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

/* Coming Soon page */
.coming-soon-grid .game-card {
  cursor: default;
}

.coming-soon-grid .game-card:hover {
  transform: translateY(-6px);
}


/* Coming Soon header photo */
.coming-soon-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.42), rgba(1,14,20,.84)),
    radial-gradient(circle at 54% 44%, rgba(76,201,239,.16), transparent 24rem),
    url("assets/coming-soon-header.jpg") center center / cover no-repeat;
  transform: scale(1.01);
}
.coming-soon-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
@media (max-width: 560px) {
  .coming-soon-hero::before { background-position: center center; }
}


/* Meet the Staff and FAQ header backgrounds */
.meet-staff-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.34), rgba(1,14,20,.78)),
    radial-gradient(circle at 56% 44%, rgba(76,201,239,.14), transparent 24rem),
    url("assets/geo-waves4-22.png") center center / cover no-repeat;
  transform: scale(1.01);
}
.faq-hero::before {
  background:
    linear-gradient(rgba(1,14,20,.34), rgba(1,14,20,.78)),
    radial-gradient(circle at 56% 44%, rgba(76,201,239,.14), transparent 24rem),
    url("assets/geo-waves4-21.png") center center / cover no-repeat;
  transform: scale(1.01);
}
.meet-staff-hero .hero-content,
.faq-hero .hero-content {
  text-shadow: 0 8px 34px rgba(0,0,0,.78);
}
@media (max-width: 560px) {
  .meet-staff-hero::before,
  .faq-hero::before { background-position: center center; }
}

.partner-section { padding:5rem 4vw; }
.partner-inner { display:flex; flex-direction:column; align-items:center; gap:1.5rem; }
.partner-logo-link { display:inline-flex; justify-content:center; align-items:center; max-width:min(680px, 92vw); }
.partner-logo { display:block; width:100%; max-width:680px; height:auto; object-fit:contain; }
.partner-copy { max-width:780px; margin:0; color:var(--muted); font-size:clamp(1.05rem, 2.5vw, 1.45rem); line-height:1.6; font-weight:700; }


/* Find Us page */
.find-us-intro h1 {
  font-size: clamp(2.8rem, 8vw, 6rem);
  line-height: .92;
  margin: .2rem 0 1rem;
  text-transform: uppercase;
  letter-spacing: -.05em;
}
.find-us-location-grid-section { padding-top: 1rem; }
.find-us-location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
}
.find-us-side-card,
.find-us-map-card {
  min-height: 620px;
}
.find-us-side-card {
  background: #000;
  overflow: hidden;
}
.find-us-side-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.find-us-map-card {
  background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.2rem;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}
.find-us-map-frame {
  width: 100%;
  flex: 1;
  min-height: 0;
  border: 0;
  border-radius: 18px;
  background: #071923;
}
.map-button { margin: 1rem 0 0; align-self: flex-start; }
@media (max-width: 980px) {
  .find-us-location-grid { grid-template-columns: 1fr; }
  .find-us-side-card,
  .find-us-map-card { min-height: auto; }
  .find-us-side-card img { height: auto; object-fit: contain; }
  .find-us-map-frame { min-height: 420px; }
}
@media (max-width: 560px) {
  .find-us-map-frame { min-height: 320px; }
}
