:root {
  /*
   * Colours from nintendo.com/us inline theme ("Nintendo Light Theme", 2025).
   * Primary red aligns with public brand specs (≈ Pantone 485 C / #E60012; white secondary).
   * This page uses a dark “corporate night” interpretation of those tokens.
   */
  --nintendo-primary: #e60012;
  --nintendo-primary-hover: #ac000d;
  --nintendo-primary-light: #fde6e7;
  --nintendo-focus: #3946a0;
  --nintendo-secondary: #3946a0;
  --nintendo-secondary-hover: #2a3477;
  --nintendo-secondary-light: #bdc3e8;
  --nintendo-black: #000000;
  --nintendo-white: #ffffff;
  --nintendo-dark-gray-1: #242424;
  --nintendo-dark-gray-2: #484848;
  --nintendo-dark-gray-3: #727272;
  --nintendo-dark-gray-4: #969696;
  --nintendo-light-gray-1: #c8c8c8;
  --nintendo-light-gray-2: #dadada;
  --nintendo-light-gray-3: #efefef;
  --nintendo-light-gray-4: #f8f8f8;
  --nintendo-ui-line: #dadada;
  --nintendo-ui-accent: #e60012;

  --font-sans: "Geologica", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  /* Short labels / stage-select chrome (16-bit menu energy, used sparingly) */
  --font-pixel: "Press Start 2P", ui-monospace, monospace;

  /* Dark layout — SNES-era purple-gray “plastic console” menu blacks */
  --bg-deep: #161222;
  --bg-surface: #1e1a2e;
  --bg-card: #252136;
  --bg-elevated: #2d2840;
  --snes-window-border: #a8a4c0;
  --snes-window-mid: #6b6588;
  --snes-select-yellow: #fce000;
  --snes-select-yellow-dim: rgba(252, 224, 0, 0.22);
  --border-subtle: rgba(107, 101, 136, 0.28);
  --border-mid: rgba(168, 164, 192, 0.42);
  --text-primary: var(--nintendo-light-gray-4);
  --text-secondary: var(--nintendo-light-gray-1);
  --text-muted: var(--nintendo-dark-gray-4);
  --nintendo-red: var(--nintendo-primary);
  --nintendo-red-dim: #8a0009;
  --nintendo-red-glow: rgba(230, 0, 18, 0.12);
  --coin-gold: #ffd60a;
  --coin-gold-dim: rgba(255, 214, 10, 0.14);
  --pipe-green: #3ddc84;
  --pipe-green-dim: rgba(61, 220, 132, 0.14);
  --sky-blue: #63b3ed;
  --sky-blue-dim: rgba(99, 179, 237, 0.12);
  --mario-sky: #5c94fc;
  --mario-sky-deep: #2038ec;
  --ground-moss: #0d7c1a;
  --violet: #b794f4;
  --violet-dim: rgba(183, 148, 244, 0.12);
  /* GameCube menu void + cube purple (marketing / system UI) */
  --gcn-purple-deep: #1a0d2e;
  --gcn-purple-mid: #4a2d7a;
  --gcn-purple-bright: #7b5cbf;
  --gcn-purple-glow: rgba(100, 65, 180, 0.4);
  --gcn-panel-tint: rgba(45, 40, 72, 0.55);
  --star-white: #ffffff;
  --block-gold: #ffc400;
  --block-gold-mid: #e8a200;
  --block-gold-shadow: #8a5a00;
  /* SNES stage-select coin chip (readable on gold) */
  --stage-coin-ink: #2a2210;
  --stage-coin-rim: #b86a08;

  /* Motion — short, purposeful (150–300ms); pair with prefers-reduced-motion overrides */
  --ease-snap: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-plastic: cubic-bezier(0.34, 1.2, 0.64, 1);
  --dur-instant: 0.1s;
  --dur-fast: 0.18s;
  --dur-med: 0.28s;
  --dur-slow: 0.42s;

  /* WCAG-ish minimum touch target (2024–2026 guidance) */
  --touch-target-min: 44px;

  /* Switch / eShop-ish radii */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --radius-pill: 999px;

  --topbar-total: calc(48px + env(safe-area-inset-top, 0px));
  /* Fixed stage-select dock (thumb zone + safe area) */
  --journey-dock-h: calc(3.75rem + 3px + env(safe-area-inset-bottom, 0px));

  --hud-gloss: inset 0 1px 0 rgba(255, 255, 255, 0.18);
  --hud-glow: var(--hud-gloss), 0 4px 24px rgba(0, 0, 0, 0.4);
  --shadow-float: 0 12px 40px rgba(0, 0, 0, 0.45), 0 4px 12px rgba(0, 0, 0, 0.25);
  --shadow-panel: 0 0 0 1px rgba(255, 255, 255, 0.08), var(--shadow-float);

  /* Per-world section accent system */
  --world-1-accent: var(--nintendo-red);
  --world-1-glow: rgba(230, 0, 18, 0.15);
  --world-2-accent: #4fc3f7;
  --world-2-glow: rgba(79, 195, 247, 0.15);
  --world-3-accent: var(--pipe-green);
  --world-3-glow: rgba(61, 220, 132, 0.15);
  --world-4-accent: var(--snes-select-yellow);
  --world-4-glow: rgba(252, 224, 0, 0.15);
  --world-5-accent: var(--violet);
  --world-5-glow: rgba(183, 148, 244, 0.15);
}
