/* Tabletop design tokens — generated from tokens.json. Themes: light, dark (default: light).
   Switch theme with <html data-theme="dark">. */
:root, [data-theme="light"] {
  --table: #e8d9bd;
  --table-ink: #2b1d14;
  --table-ink-soft: #6b5442;
  --board: #fbf6ea;
  --board-sunk: #f1e6d0;
  --board-ink: #2b1d14;
  --board-ink-soft: #6b5442;
  --line: #dccaa8;
  --card: #fffaf0;
  --ink: #2b1d14;
  --ink-soft: #6b5442;
  --teal: #0f8178;
  --tomato: #f0603f;
  --mustard: #f2b632;
  --plum: #7a3577;
  --forest: #2e7046;
  --accent-ink: #0a645d;
  --alert-ink: #a9321d;
  --shadow-board: 0 3px 0 #d6c19b, 0 14px 26px -12px #4a321a59;
  --shadow-piece: 0 2px 3px #2b1d1459;
  --shadow-card: 0 1px 2px #2b1d1426, 0 6px 14px -4px #2b1d1440;
  --shadow-lift: 0 3px 0 #d6c19b, 0 22px 34px -14px #4a321a73;
  --shadow-deal: 0 2px 4px #2b1d1426, 0 28px 48px -16px #2b1d1480;
  --shadow-inset: inset 0 2px 3px #2b1d1426;
  color-scheme: light;
}
[data-theme="dark"] {
  --table: #123a33;
  --table-ink: #f6ecd9;
  --table-ink-soft: #b5cbbf;
  --board: #2a231f;
  --board-sunk: #1e1916;
  --board-ink: #f6ecd9;
  --board-ink-soft: #c9b9a6;
  --line: #4a3d33;
  --card: #fffaf0;
  --ink: #2b1d14;
  --ink-soft: #6b5442;
  --teal: #0f8178;
  --tomato: #f0603f;
  --mustard: #f2b632;
  --plum: #7a3577;
  --forest: #2e7046;
  --accent-ink: #6fd6ca;
  --alert-ink: #ff8f73;
  --shadow-board: 0 3px 0 #15100d, 0 16px 30px -12px #000000a6;
  --shadow-piece: 0 2px 4px #00000099;
  --shadow-card: 0 1px 2px #00000059, 0 8px 18px -6px #000000a6;
  --shadow-lift: 0 3px 0 #15100d, 0 24px 38px -14px #000000bf;
  --shadow-deal: 0 2px 4px #00000066, 0 30px 52px -16px #000000cc;
  --shadow-inset: inset 0 2px 4px #00000080;
  color-scheme: dark;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-card: 16px;
  --radius-board: 22px;
  --radius-full: 9999px;
  --dur-press: 90ms;
  --dur-hover: 160ms;
  --dur-place: 320ms;
  --dur-hop: 200ms;
  --dur-deal: 480ms;
  --dur-flip: 600ms;
  --dur-roll: 1100ms;
  --ease-press: cubic-bezier(.4, 0, .6, 1);
  --ease-place: cubic-bezier(.3, 1.45, .5, 1);
  --ease-hop: cubic-bezier(.35, 0, .25, 1);
  --ease-deal: cubic-bezier(.16, .84, .3, 1);
  --ease-flip: cubic-bezier(.45, .05, .2, 1.05);
  --ease-roll: cubic-bezier(.12, .62, .22, 1);
  --font-display: "Luckiest Guy", "Arial Black", ui-rounded, system-ui, sans-serif;
  --font-body: "Baloo 2", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;
  --type-display-family: var(--font-display);
  --type-display-size: 56px;
  --type-display-line: 56px;
  --type-display-weight: 400;
  --type-display-tracking: 0.01em;
  --type-title-family: var(--font-display);
  --type-title-size: 32px;
  --type-title-line: 36px;
  --type-title-weight: 400;
  --type-title-tracking: 0.01em;
  --type-score-family: var(--font-display);
  --type-score-size: 22px;
  --type-score-line: 24px;
  --type-score-weight: 400;
  --type-score-tracking: 0.02em;
  --type-heading-family: var(--font-body);
  --type-heading-size: 22px;
  --type-heading-line: 28px;
  --type-heading-weight: 800;
  --type-subheading-family: var(--font-body);
  --type-subheading-size: 18px;
  --type-subheading-line: 24px;
  --type-subheading-weight: 700;
  --type-body-family: var(--font-body);
  --type-body-size: 16px;
  --type-body-line: 24px;
  --type-body-weight: 500;
  --type-small-family: var(--font-body);
  --type-small-size: 14px;
  --type-small-line: 20px;
  --type-small-weight: 500;
  --type-label-family: var(--font-body);
  --type-label-size: 12px;
  --type-label-line: 16px;
  --type-label-weight: 800;
  --type-label-tracking: 0.08em;
}
/* Type styles as utility classes (optional) */
.type-display { font-family: var(--type-display-family); font-size: var(--type-display-size); line-height: var(--type-display-line); font-weight: var(--type-display-weight); letter-spacing: var(--type-display-tracking); }
.type-title { font-family: var(--type-title-family); font-size: var(--type-title-size); line-height: var(--type-title-line); font-weight: var(--type-title-weight); letter-spacing: var(--type-title-tracking); }
.type-score { font-family: var(--type-score-family); font-size: var(--type-score-size); line-height: var(--type-score-line); font-weight: var(--type-score-weight); letter-spacing: var(--type-score-tracking); }
.type-heading { font-family: var(--type-heading-family); font-size: var(--type-heading-size); line-height: var(--type-heading-line); font-weight: var(--type-heading-weight); }
.type-subheading { font-family: var(--type-subheading-family); font-size: var(--type-subheading-size); line-height: var(--type-subheading-line); font-weight: var(--type-subheading-weight); }
.type-body { font-family: var(--type-body-family); font-size: var(--type-body-size); line-height: var(--type-body-line); font-weight: var(--type-body-weight); }
.type-small { font-family: var(--type-small-family); font-size: var(--type-small-size); line-height: var(--type-small-line); font-weight: var(--type-small-weight); }
.type-label { font-family: var(--type-label-family); font-size: var(--type-label-size); line-height: var(--type-label-line); font-weight: var(--type-label-weight); letter-spacing: var(--type-label-tracking); }
