html body .zova-age-gate {
  padding: 14px !important;
  place-items: center !important;
  align-items: center !important;
  overflow: auto !important;
}

html body .zova-age-card {
  width: min(620px, 100%) !important;
  border-radius: 18px !important;
  gap: 14px !important;
  padding: 22px !important;
}

html body .zova-age-card__brand {
  justify-self: center !important;
  display: grid !important;
  place-items: center !important;
}

html body .zova-age-card__brand img {
  width: 142px !important;
  height: auto !important;
}

html body .zova-age-card h2 {
  font-size: clamp(30px, 4vw, 42px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.04em !important;
}

html body .zova-age-card__intro {
  font-size: 17px !important;
  line-height: 1.42 !important;
}

html body .zova-age-card__rules {
  background: #f7fbfc !important;
  border: 1px solid #e2e7ef !important;
  border-radius: 16px !important;
  display: grid !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  list-style: none !important;
}

html body .zova-age-card__rules li {
  color: #344054 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}

html body .zova-age-card__rules li::before {
  content: "" !important;
  display: inline-block !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 99px !important;
  background: #007f96 !important;
  margin-right: 9px !important;
  vertical-align: 1px !important;
}

html body .zova-age-check {
  grid-template-columns: 30px minmax(0, 1fr) !important;
  gap: 12px !important;
  min-height: 54px !important;
  padding: 12px 14px !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
  border-radius: 14px !important;
}

html body .zova-age-check input {
  width: 26px !important;
  height: 26px !important;
  border-width: 2px !important;
  border-radius: 8px !important;
}

html body .zova-age-check input:checked::after {
  width: 7px !important;
  height: 13px !important;
  border-width: 0 2px 2px 0 !important;
}

html body .zova-age-submit {
  min-height: 48px !important;
  font-size: 16px !important;
  order: 20 !important;
}

html body .zova-age-card__fine {
  font-size: 12px !important;
  line-height: 1.38 !important;
}

@media (max-width: 640px) {
  html body .zova-age-gate {
    padding: 10px !important;
  }

  html body .zova-age-card {
    width: min(340px, 100%) !important;
    border-radius: 14px !important;
    gap: 8px !important;
    padding: 12px !important;
  }

  html body .zova-age-card__brand img {
    width: 108px !important;
  }

  html body .zova-age-card h2 {
    font-size: 22px !important;
    line-height: 1.03 !important;
  }

  html body .zova-age-card__intro {
    font-size: 12.5px !important;
    line-height: 1.3 !important;
  }

  html body .zova-age-card__rules {
    gap: 5px !important;
    padding: 8px 9px !important;
    border-radius: 11px !important;
  }

  html body .zova-age-card__rules li {
    font-size: 10.5px !important;
    line-height: 1.25 !important;
  }

  html body .zova-age-check {
    grid-template-columns: 22px minmax(0, 1fr) !important;
    gap: 8px !important;
    min-height: 42px !important;
    padding: 8px 9px !important;
    font-size: 12.5px !important;
    line-height: 1.22 !important;
    border-radius: 11px !important;
  }

  html body .zova-age-check input {
    width: 20px !important;
    height: 20px !important;
    border-radius: 6px !important;
  }

  html body .zova-age-check input:checked::after {
    width: 6px !important;
    height: 10px !important;
  }

  html body .zova-age-submit {
    min-height: 40px !important;
    font-size: 13px !important;
  }

  html body .zova-age-card__fine {
    font-size: 10px !important;
    line-height: 1.28 !important;
  }
}

/* Paint stability (2026-08-06): the gate is light-themed from the very first
   frame, even if a stale baked chunk carrying the old dark #081318ad rule is
   served. researcher-gate-v6.js renders the complete gate immediately and
   sets data-zova-gate-ready on <html> in the same task, so the pre-veil below
   hands off to the gate with no gap and no dark flash.
   Z-order (2026-08-06, gate-race repair): the gate sits at the z-index maximum
   so it ALWAYS paints above the pre-veil. Tonight's first cut had the veil at
   2147483646 ABOVE the gate's 2147483000, so whenever React hydration wiped
   data-zova-gate-ready the re-engaged veil buried the gate and deadlocked
   fresh visitors. With the gate topmost, a lingering veil can never block
   the gate's taps or hide it. */
html body .zova-age-gate {
  z-index: 2147483647 !important;
  background: linear-gradient(180deg, #f5fafb 0%, #eef8fa 100%) !important;
  position: fixed !important;
  inset: 0 !important;
}

/* Pre-veil: cover page content from first paint until researcher-gate-v6.js
   marks the document ready (complete gate in the DOM, or valid verification
   already stored). Every page that loads this stylesheet also loads the
   script, so the veil is always lifted. The script also keeps
   data-zova-gate-ready re-asserted through React hydration via a
   MutationObserver, so a hydration commit that strips the attribute is
   repaired in a microtask, before the next paint — this veil never
   re-engages on a painted frame. It stays one step BELOW the gate
   (2147483646 < 2147483647): it only ever covers page content, never the
   gate itself. */
html:not([data-zova-gate-ready])::before {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483646 !important;
  background: linear-gradient(180deg, #f5fafb 0%, #eef8fa 100%) !important;
}

/* Foreign-gate mask (2026-08-06, bare-gate race): the compiled React AgeGate
   (chunk module 19088) still mounts its bare card on some fresh visits and
   wins ~0.3s of paint before researcher-gate-v6.js sweeps it. v6 owns the
   gate now, so any .zova-age-gate it did NOT build (no data-zova-gate-owner
   marker) must never paint at all. Fail-closed holds: if v6 never runs, no
   gate shows and the pre-veil stays up — page content is never exposed. */
html body .zova-age-gate:not([data-zova-gate-owner]) {
  display: none !important;
}
