/* Generated from tokens.json by tools/build-tokens.py. Do not edit by hand. */
:root {
  /* color */
  --c-void: #070B1F;
  --c-void-raised: #0D1130;
  --c-obsidian: #1A1C2C;
  --c-obsidian-hi: #26293D;
  --c-pearl: #EDEBF5;
  --c-gold: #FFD27A;
  --c-gold-deep: #E8B04F;
  --c-violet-deep: #5B3FD9;
  --c-basalt: #2B2833;
  --c-text: #EDEBF5;
  --c-text-2: #B9B8D6;
  --c-text-3: #9696BA;
  --c-text-on-gold: #070B1F;
  --c-line: rgba(255, 210, 122, 0.22);
  --c-line-strong: rgba(255, 210, 122, 0.55);
  --c-line-neutral: rgba(237, 235, 245, 0.14);
  --c-glass: rgba(13, 17, 48, 0.74);
  --c-glass-strong: rgba(10, 13, 38, 0.9);
  --c-scrim: rgba(7, 11, 31, 0.78);
  --c-focus: #9FD3FF;
  --c-success: #80ED99;
  --c-warning: #FFB86B;
  --c-danger: #FF6E7F;
  --c-heal: #FFD27A;
  --c-primary: #FFD27A;
  --c-primary-pressed: #E8B04F;
  --c-on-primary: #070B1F;
  /* resource */
  --c-alloy: #2EC4B6;
  --c-alloy-rgb: 46 196 182;
  --c-power: #FFD27A;
  --c-power-rgb: 255 210 122;
  --c-ordnance: #8B6CFF;
  --c-ordnance-rgb: 139 108 255;
  /* structure */
  --c-habitat: #FFD27A;
  --c-armour: #2EC4B6;
  /* seat */
  --seat-p1: #3FA7FF;
  --seat-p1-rgb: 63 167 255;
  --seat-p2: #FF4D5E;
  --seat-p2-rgb: 255 77 94;
  --seat-p3: #9EEA4A;
  --seat-p3-rgb: 158 234 74;
  --seat-p4: #E046F5;
  --seat-p4-rgb: 224 70 245;
  /* font */
  --font-display: "Space Grotesk", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  /* font-size */
  --fs-caption: 11px;
  --lh-caption: 1.35;
  --fs-label: 12px;
  --lh-label: 1.35;
  --fs-small: 13px;
  --lh-small: 1.45;
  --fs-body: 15px;
  --lh-body: 1.5;
  --fs-body-lg: 17px;
  --lh-body-lg: 1.5;
  --fs-h3: 19px;
  --lh-h3: 1.25;
  --fs-h2: 23px;
  --lh-h2: 1.2;
  --fs-h1: 29px;
  --lh-h1: 1.15;
  --fs-display: 40px;
  --lh-display: 1.05;
  /* fill */
  --fill-primary: var(--c-primary);
  --fill-primary-hover: #FFDC93;
  /* rgb */
  --fg-rgb: 237 235 245;
  --bg-rgb: 7 11 31;
  --raised-rgb: 13 17 48;
  --signal-rgb: 255 210 122;
  --danger-rgb: 255 110 127;
  --warning-rgb: 255 184 107;
  --success-rgb: 128 237 153;
  --glow-rgb: 91 63 217;
  /* letter-spacing */
  --ls-caps: 0.18em;
  --ls-tight: -0.01em;
  /* space */
  --sp-0: 2px;
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 32px;
  --sp-8: 40px;
  --sp-9: 56px;
  --sp-10: 72px;
  /* radius */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --r-xl: 24px;
  --r-pill: 999px;
  /* shadow */
  --sh-1: 0 1px 2px rgba(0, 0, 0, 0.45);
  --sh-2: 0 6px 18px rgba(3, 5, 18, 0.55);
  --sh-3: 0 18px 48px rgba(3, 5, 18, 0.72);
  --sh-glow-gold: 0 0 0 1px rgba(255, 210, 122, 0.9), 0 0 18px rgba(255, 210, 122, 0.45);
  --sh-glow-danger: 0 0 0 1px rgba(255, 110, 127, 0.9), 0 0 18px rgba(255, 110, 127, 0.45);
  --sh-inset-line: inset 0 1px 0 rgba(237, 235, 245, 0.06);
  --sh-primary: 0 0 22px rgba(255, 210, 122, 0.25);
  --sh-primary-hover: 0 0 28px rgba(255, 210, 122, 0.4);
  /* blur */
  --blur-glass: 14px;
  /* duration */
  --dur-instant: 80ms;
  --dur-fast: 140ms;
  --dur-base: 220ms;
  --dur-slow: 360ms;
  --dur-deliberate: 600ms;
  --dur-dramatic: 1200ms;
  /* easing */
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-hit: cubic-bezier(0.7, 0, 0.84, 0);
  --ease-linear: linear;
  /* z */
  --z-board: 0;
  --z-hud: 10;
  --z-hand: 20;
  --z-banner: 30;
  --z-overlay: 40;
  --z-modal: 50;
  --z-toast: 60;
  /* size */
  --tap: 44px;
  --card-w: 168px;
  --card-ratio: 168 / 236;
  --icon-sm: 16px;
  --icon-md: 20px;
  --icon-lg: 24px;
  --icon-stroke: 1.5;
  --icon-bg: var(--c-void);
}
@media (min-width: 900px) {
  :root {
    --fs-h1: 36px;
    --fs-display: 56px;
  }
}
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-instant: 1ms;
    --dur-fast: 1ms;
    --dur-base: 1ms;
    --dur-slow: 1ms;
    --dur-deliberate: 1ms;
    --dur-dramatic: 1ms;
  }
}
/* Seat helper: set data-seat="p1..p4" on any element to get --seat / --seat-rgb for it. */
[data-seat="p1"] { --seat: var(--seat-p1); --seat-rgb: var(--seat-p1-rgb); }
[data-seat="p2"] { --seat: var(--seat-p2); --seat-rgb: var(--seat-p2-rgb); }
[data-seat="p3"] { --seat: var(--seat-p3); --seat-rgb: var(--seat-p3-rgb); }
[data-seat="p4"] { --seat: var(--seat-p4); --seat-rgb: var(--seat-p4-rgb); }
