/* Shipyard design tokens — generated from tokens.json. Themes: light, dark (default: light).
   Switch theme with <html data-theme="dark">. */
:root, [data-theme="light"] {
  --page: #ecede9;
  --page-mark: #d7d9d3;
  --surface: #fbfbf9;
  --surface-sunk: #e3e5e0;
  --ink: #0f1215;
  --ink-soft: #4f555d;
  --line: #d3d6cf;
  --line-strong: #7b8189;
  --slot: #c6c9c2;
  --signal: #ff5000;
  --on-signal: #0f1215;
  --signal-ink: #ad3700;
  --signal-tint: #ffe3d4;
  --deck: #111418;
  --on-deck: #f1f1ee;
  --on-deck-soft: #a3a9b1;
  --success: #1c7a4a;
  --danger: #c42b2b;
  --shadow-hair: 0 1px 0 rgba(15, 18, 21, 0.06);
  --shadow-card: 0 1px 2px rgba(15, 18, 21, 0.06), 0 14px 28px -18px rgba(15, 18, 21, 0.28);
  --shadow-float: 0 2px 6px rgba(15, 18, 21, 0.08), 0 18px 40px -14px rgba(15, 18, 21, 0.32);
  --shadow-modal: 0 40px 90px -30px rgba(15, 18, 21, 0.5);
  --shadow-well: inset 0 1px 2px rgba(15, 18, 21, 0.14);
  --shadow-seat: inset 0 2px 0 rgba(15, 18, 21, 0.16);
  color-scheme: light;
}
[data-theme="dark"] {
  --page: #0d0f12;
  --page-mark: #1b1f24;
  --surface: #15181c;
  --surface-sunk: #0a0c0e;
  --ink: #f1f1ee;
  --ink-soft: #a3a9b1;
  --line: #272c33;
  --line-strong: #6d757f;
  --slot: #050607;
  --signal: #ff5a1a;
  --on-signal: #0f1215;
  --signal-ink: #ff7a45;
  --signal-tint: #341709;
  --deck: #1b1f25;
  --on-deck: #f1f1ee;
  --on-deck-soft: #a9afb7;
  --success: #43d083;
  --danger: #ff6f62;
  --shadow-hair: 0 1px 0 rgba(0, 0, 0, 0.5);
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.5), 0 14px 28px -18px rgba(0, 0, 0, 0.8);
  --shadow-float: 0 2px 6px rgba(0, 0, 0, 0.5), 0 18px 40px -14px rgba(0, 0, 0, 0.85);
  --shadow-modal: 0 40px 90px -30px rgba(0, 0, 0, 0.9);
  --shadow-well: inset 0 1px 2px rgba(0, 0, 0, 0.7);
  --shadow-seat: inset 0 2px 0 rgba(0, 0, 0, 0.6);
  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;
  --space-24: 96px;
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --radius-full: 9999px;
  --dur-seat: 90ms;
  --dur-hover: 160ms;
  --dur-release: 220ms;
  --dur-glide: 280ms;
  --dur-stack: 460ms;
  --dur-stage: 720ms;
  --dur-roll: 1200ms;
  --ease-seat: cubic-bezier(.4, 0, .9, .6);
  --ease-release: cubic-bezier(.25, 1.55, .45, 1);
  --ease-glide: cubic-bezier(.2, .8, .2, 1);
  --ease-stack: cubic-bezier(.2, 1.18, .38, 1);
  --ease-exit: cubic-bezier(.4, 0, 1, 1);
  --font-sans: "Mona Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Spline Sans Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --type-display-family: var(--font-sans);
  --type-display-size: 76px;
  --type-display-line: 72px;
  --type-display-weight: 800;
  --type-display-tracking: -0.035em;
  --type-title-family: var(--font-sans);
  --type-title-size: 44px;
  --type-title-line: 46px;
  --type-title-weight: 760;
  --type-title-tracking: -0.025em;
  --type-heading-family: var(--font-sans);
  --type-heading-size: 22px;
  --type-heading-line: 28px;
  --type-heading-weight: 680;
  --type-heading-tracking: -0.01em;
  --type-number-family: var(--font-sans);
  --type-number-size: 56px;
  --type-number-line: 56px;
  --type-number-weight: 820;
  --type-number-tracking: -0.03em;
  --type-body-family: var(--font-sans);
  --type-body-size: 17px;
  --type-body-line: 27px;
  --type-body-weight: 400;
  --type-small-family: var(--font-sans);
  --type-small-size: 14px;
  --type-small-line: 21px;
  --type-small-weight: 450;
  --type-label-family: var(--font-sans);
  --type-label-size: 15px;
  --type-label-line: 20px;
  --type-label-weight: 620;
  --type-label-tracking: 0.005em;
  --type-meta-family: var(--font-mono);
  --type-meta-size: 12px;
  --type-meta-line: 16px;
  --type-meta-weight: 500;
  --type-meta-tracking: 0.06em;
  --type-log-family: var(--font-mono);
  --type-log-size: 13px;
  --type-log-line: 20px;
  --type-log-weight: 400;
}
/* 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-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); letter-spacing: var(--type-heading-tracking); }
.type-number { font-family: var(--type-number-family); font-size: var(--type-number-size); line-height: var(--type-number-line); font-weight: var(--type-number-weight); letter-spacing: var(--type-number-tracking); }
.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); }
.type-meta { font-family: var(--type-meta-family); font-size: var(--type-meta-size); line-height: var(--type-meta-line); font-weight: var(--type-meta-weight); letter-spacing: var(--type-meta-tracking); }
.type-log { font-family: var(--type-log-family); font-size: var(--type-log-size); line-height: var(--type-log-line); font-weight: var(--type-log-weight); }
