/* MOONGENZ SHARED BASE
body Global fixes that should apply to every page in every language.
   Loaded before page CSS so pages can still override deliberately. */

/* Tap targets. Footer and inline nav links were rendering 9-16px tall, body which is
   well under the 48px Google recommends and hard to hit on a phone. Padding the
   hit area does not change the visual size of the text. */
@media (max-width: 900px) {
body footer a, body .mg-topbar a, body .risk-banner a, body .mg-brand, body .mg-lang-menu a {
    display: inline-block;
    padding: 10px 8px;
    min-height: 24px;
    line-height: 1.4;
  }
body footer a { margin: 2px 0; }
}

/* Never let a page scroll sideways on a phone. */
html, body { max-width: 100%; overflow-x: hidden; }

/* Respect reduced motion everywhere, not just where individual components remember to. */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Visible keyboard focus. Several pages removed outlines for looks, which makes
body the site unusable by keyboard. */
a:focus-visible, body button:focus-visible, body input:focus-visible, body [tabindex]:focus-visible {
  outline: 3px solid #ff2da8;
  outline-offset: 2px;
}

/* Remaining small targets: inline links inside content blocks and the address
body rows on the transparency page. Same treatment, body padded hit area only. */
@media (max-width: 900px) {
body .addr-row a, body .info-line a, body .site-disclaimer a, body .sec-text a, body .section-sub a, body p a[href^="http"], body p a[href^="/"] {
    display: inline-block;
    padding: 8px 6px;
    min-height: 24px;
  }
body .addr-row a { padding: 10px 12px; }
}


/* Skip link: first thing a keyboard or screen reader user hits. */
body .mg-skip {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: #ffcc1a; color: #14132e; border: 3px solid #14132e;
  font-family: 'Press Start 2P', monospace; font-size: 10px;
  padding: 14px 18px; min-height: 28px; text-decoration: none;
}
body .mg-skip:focus { left: 8px; top: 8px; }


/* Gold text: --gold-text (#8a5c00) is tuned for light surfaces. On the dark ink
   background it fails, so anything sitting on ink gets the lighter gold, which
   reaches 8.6:1 there. Scoped by ancestor rather than by guessing per element. */
body .mg-header [style*="--gold-text"],
body footer p, body footer div, body footer span,
body .site-disclaimer,
body #trust-bar p, body #trust-bar div, body #trust-bar span,
body .connect-bar .status,
body .stat, body .stat .sub, body .card .stat,
body .dash-card, body .dash-card .unit, body .dash-card .label,
body [style*="background: var(--ink)"] p,
body [style*="background:var(--ink)"] p {
  --gold-text: #ffcc1a;
}


/* kicker on gold: magenta on gold is 2.24:1. Ink on gold is 11.96:1 and keeps
   the same block look. */
body .kicker, body .postcard .kicker, body .hero .kicker { color: #14132e; }

/* Press Start 2P wraps badly: its glyph box is tall and the default line-height
   stacks wrapped lines on top of each other. Anything in that font that can
   wrap gets room. Targets the shared classes plus inline-styled instances. */
body .hero-sub,
body .page-title,
body .section-title,
body .arc-title,
body .card h2, body .card h3,
body th,
body p[style*="Press Start"],
body div[style*="Press Start"],
body strong[style*="Press Start"] {
  line-height: 1.6;
}
@media (max-width: 600px) {
  body .hero-sub { font-size: 13px; letter-spacing: 1px; line-height: 1.7; padding: 0 8px; }
  body #trust-bar p[style*="Press Start"] { letter-spacing: 2px; line-height: 1.9; padding: 0 12px; }
  body th { letter-spacing: 0.5px; line-height: 1.6; padding: 10px 6px; font-size: 9px; }
  body table { font-size: 15px; }
}
