/* ============================================================
   YoGamezXR Arena — global theme tokens
   ZAS 2026 VR Gaming Tournament

   Single source of truth for text colour, type scale and weight across the
   arena screen, the player page and the admin console. Loaded before each
   page's own <style>, so pages consume these rather than redefining them.

   Contrast: every text token below is measured against the --black canvas
   (#000405) and clears WCAG AAA (7:1). The previous build leaned on very low
   alpha values — micro-labels sat between 1.3:1 and 3.4:1, i.e. legible on a
   designer's monitor and invisible on a trade-stand LED in daylight.

     token          composite     ratio
     --text         #FFFFFF       20.6:1
     --text-body    #F5F5F5       18.9:1
     --text-2       .86 white     15.0:1
     --text-3       .74 white     11.0:1
     --blue         #4DD9E8       12.2:1
     --gold         #FFD54A       14.6:1
     --silver       #D8D8D8       14.5:1
     --bronze       #E3A063        9.3:1
     --red          #FF6B6B        7.4:1
     --violet       #B98CFF        8.1:1
     --orange       #FF8A5C        8.9:1

   Accents are for highlights, numerals and short labels only — never for
   running text.
   ============================================================ */

:root {
  /* ── Surfaces ─────────────────────────────────────────── */
  --black:      #000405;
  --dim:        #07131A;
  --panel:      rgba(62,184,213,.055);
  --border:     rgba(62,184,213,.16);

  /* ── Accents ──────────────────────────────────────────── */
  /* --blue is the text/highlight cyan, brightened from the brand value.
     --blue-deep keeps the original brand cyan for fills, borders and glows,
     where it is a surface rather than something to be read. */
  --blue:       #4DD9E8;
  --blue-deep:  #3EB8D5;
  --gold:       #FFD54A;
  --silver:     #D8D8D8;
  --bronze:     #E3A063;
  --red:        #FF6B6B;
  --green:      #5BFF3D;
  --violet:     #B98CFF;   /* Fireworks effect button — 8.1:1 */
  --orange:     #FF8A5C;   /* Crowd Boost effect button — 8.9:1 */

  /* ── Text ramp ────────────────────────────────────────── */
  --text:       #FFFFFF;   /* headings, table headers, primary numerals */
  --text-body:  #F5F5F5;   /* running copy */
  --text-2:     rgba(255,255,255,.86);  /* secondary labels */
  --text-3:     rgba(255,255,255,.74);  /* faintest permitted — fine print */

  /* ── Type scale ───────────────────────────────────────── */
  /* 12px is a hard floor; nothing on any screen may go below it. */
  --fs-micro:   12px;   /* step numbers, fine print, badges */
  --fs-label:   14px;   /* labels, table headers, nav */
  --fs-body:    16px;   /* primary content */
  --fs-h3:      18px;
  --fs-h2:      22px;
  --fs-h1:      28px;

  /* ── Weights ──────────────────────────────────────────── */
  --fw-body:    400;
  --fw-med:     600;
  --fw-bold:    700;
  --fw-black:   900;

  /* ── Families ─────────────────────────────────────────── */
  /* Nunito is the brand face (the closest freely available match to the
     YoGamezXR manual's VAG Rounded) and is a clean, high-legibility
     humanist sans. It is kept as the primary, with a system stack behind
     it; the legibility problem was weight, size and opacity, not family. */
  --font: 'Nunito', 'Segoe UI', Roboto, system-ui, -apple-system, sans-serif;
  --mono: 'Share Tech Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
}
