/* generated by build_tokens.py from tokens.json - do not edit by hand */
:root {
  color-scheme: light;
  --bg: #f3f5f4;
  --surface: #ffffff;
  --surface-sunken: #e8ecea;
  --border: #dde3e0;
  --border-strong: #c3ccc8;
  --border-input: #7c8984;
  --edge: #c9d1cd;
  --text: #1d2925;
  --text-muted: #55625d;
  --text-subtle: #66726e;
  --accent: #1f6b63;
  --accent-hover: #18574f;
  --on-accent: #ffffff;
  --focus: #1f6b63;
  --danger: #b42318;
  --danger-soft: #fde8e6;
  --success: #1d7044;
  --hit: #8fd6a8;
  --on-hit: #123222;
  --miss: #f4a39a;
  --on-miss: #3d1410;
  --near: #f6d58b;
  --on-near: #3a2a05;
  --game-rankle: #ffb8a1;
  --game-geodle: #9fd8e2;
  --game-connections: #bcc4ff;
  --game-decide: #ffd8a8;
  --game-paint: #e6bfe8;
  --on-game: #1d2925;
  --group-1: #f6d58b;
  --group-2: #8fd6a8;
  --group-3: #9fd8e2;
  --group-4: #d1b8f5;
  --overlay: #1d2925;
  --font-sans: Rubik, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --font-numeric: Rubik, system-ui, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --fs-2xs: 0.6875rem;
  --lh-2xs: 1.273;
  --fw-2xs: 700;
  --fs-xs: 0.75rem;
  --lh-xs: 1.333;
  --fw-xs: 500;
  --fs-sm: 0.875rem;
  --lh-sm: 1.429;
  --fw-sm: 500;
  --fs-base: 1rem;
  --lh-base: 1.500;
  --fw-base: 400;
  --fs-lg: 1.25rem;
  --lh-lg: 1.300;
  --fw-lg: 700;
  --fs-xl: 1.75rem;
  --lh-xl: 1.214;
  --fw-xl: 700;
  --fs-display: 3rem;
  --lh-display: 1.083;
  --fw-display: 800;
  --space-0: 0rem;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 2rem;
  --space-8: 3rem;
  --space-9: 4rem;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --edge-card: 2px;
  --edge-button: 4px;
  --edge-pressed: 1px;
  --shadow-card: 0 2px 0 var(--edge);
  --shadow-button: 0 4px 0 var(--edge);
  --shadow-pop: 0 16px 40px rgba(16,24,20,.18);
  --motion-fast: 120ms;
  --motion-base: 200ms;
  --motion-slow: 360ms;
  --motion-ease: cubic-bezier(.2,.8,.2,1);
  --motion-spring: cubic-bezier(.34,1.56,.64,1);
  --content-max: 480px;
  --content-wide: 720px;
  --header-h: 56px;
  --gutter: 16px;
  --tile-min: 72px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #141a18;
    --surface: #1e2623;
    --surface-sunken: #101513;
    --border: #2f3a36;
    --border-strong: #43514c;
    --border-input: #7f8d88;
    --edge: #0b0f0e;
    --text: #e9efec;
    --text-muted: #a9b6b1;
    --text-subtle: #94a29d;
    --accent: #5fc4b6;
    --accent-hover: #7fd3c7;
    --on-accent: #0b1d1a;
    --focus: #5fc4b6;
    --danger: #ff8a7f;
    --danger-soft: #3a1d1a;
    --success: #6ad49a;
    --hit: #2f7a52;
    --on-hit: #effaf3;
    --miss: #9c3b33;
    --on-miss: #fff1ef;
    --near: #8a6a1c;
    --on-near: #fff8e6;
    --game-rankle: #7a4335;
    --game-geodle: #2f6670;
    --game-connections: #454e8f;
    --game-decide: #7a5a2c;
    --game-paint: #6b4370;
    --on-game: #f3f7f5;
    --group-1: #7a6420;
    --group-2: #276a46;
    --group-3: #2f6670;
    --group-4: #5a4785;
    --overlay: #000000;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #141a18;
  --surface: #1e2623;
  --surface-sunken: #101513;
  --border: #2f3a36;
  --border-strong: #43514c;
  --border-input: #7f8d88;
  --edge: #0b0f0e;
  --text: #e9efec;
  --text-muted: #a9b6b1;
  --text-subtle: #94a29d;
  --accent: #5fc4b6;
  --accent-hover: #7fd3c7;
  --on-accent: #0b1d1a;
  --focus: #5fc4b6;
  --danger: #ff8a7f;
  --danger-soft: #3a1d1a;
  --success: #6ad49a;
  --hit: #2f7a52;
  --on-hit: #effaf3;
  --miss: #9c3b33;
  --on-miss: #fff1ef;
  --near: #8a6a1c;
  --on-near: #fff8e6;
  --game-rankle: #7a4335;
  --game-geodle: #2f6670;
  --game-connections: #454e8f;
  --game-decide: #7a5a2c;
  --game-paint: #6b4370;
  --on-game: #f3f7f5;
  --group-1: #7a6420;
  --group-2: #276a46;
  --group-3: #2f6670;
  --group-4: #5a4785;
  --overlay: #000000;
}
/* breakpoints (use literally in media queries): sm 640px, md 960px */
