/* Extracted from the :root block and the literal values in site/index.html. Components read only these
   properties; site/index.html keeps its own copy and is not wired to this file. */
/* Self-hosted (OFL, fonts/OFL-*.txt): a font CDN would send every visitor's IP to a third party (legal Q18). */
@font-face { font-family: "Geist"; src: url("fonts/geist-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Sora"; src: url("fonts/sora-latin-wght-normal.woff2") format("woff2"); font-weight: 100 800; font-style: normal; font-display: swap; }
:root {
  color-scheme: light dark;

  /* Public pages load ds/xo.css first; map marketing/auth semantics to xo tokens. */
  --cta: var(--accent);
  --cta-hi: var(--accent-hover);
  --on-cta: var(--on-accent);
  --bg: var(--paper);
  --surface: var(--paper-raised);
  --glass: color-mix(in srgb, var(--paper-raised) 62%, transparent);
  --field: var(--paper-sunk);
  --line-strong: var(--line-control);
  --text: var(--ink);
  --text-2: var(--ink-muted);
  --text-3: var(--ink-muted);
  --neb-1: 255 255 255;
  --scrim: color-mix(in srgb, var(--paper) 72%, transparent);
  --star-1: #e8e8ec;
  --star-2: #c8c8d0;
  --star-3: #a8a8b4;
  --star-4: #d0d0d8;
  --star-line: #8e8e9c;

  /* type */
  --font-body: "Geist", system-ui, sans-serif;
  --font-display: "Sora", "Geist", system-ui, sans-serif;
  --fs-xs: 13px;
  --fs-sm: 14px;
  --fs-body: 16px;
  --fs-md: 17px;
  --fs-lg: clamp(17px, 1.4vw, 20px);
  --fs-xl: 22px;
  --fs-2xl: 26px;
  --fs-price: clamp(30px, 3.4vw, 40px);
  --fs-h2: clamp(32px, 3.6vw, 52px);
  --fs-h1: clamp(32px, 4.6vw, 56px);
  --fs-display: clamp(40px, 5.4vw, 76px);
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --lh-tight: 1.08;
  --lh-snug: 1.2;
  --lh-body: 1.55;
  --ls-display: -0.045em;
  --ls-h2: -0.04em;
  --ls-h3: -0.03em;
  --ls-title: -0.02em;
  --ls-eyebrow: 0.12em;

  /* space */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  --pad: clamp(20px, 6vw, 96px);
  --sec: clamp(48px, 8vw, 112px);
  --max: 1200px;
  --tap: 44px;
  --control: 52px;
  --chrome-h: 40px;
  --dot: 10px;
  --w-narrow: 640px;
  --w-checkout: 760px;
  --w-measure: 620px;

  /* shape */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --border: 1px solid var(--line);
  --border-strong: 1px solid var(--line-strong);

  /* depth */
  --shadow-glow: 0 24px 80px rgb(var(--neb-1) / 0.16);
  --shadow-dock: 0 -12px 40px rgb(0 0 0 / 0.45);
  --blur: blur(14px);

  /* focus */
  --focus-ring: 2px solid var(--signal);
  --focus-offset: 2px;

  /* motion */
  --dur-fast: 120ms;
  --dur: 200ms;
  --dur-shimmer: 1600ms;
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Token contract: values mirror public/ds/xorion.tokens.json (admin spec 1.1-1.3); theme-tokens.test.js fails on drift. */
[data-theme="xorion-dark"] {
  --bg-0: #0B0B0D;
  --bg-1: #101012;
  --bg-2: #141417;
  --bg-3: #1A1A1E;
  --bg-4: #222227;
  --line-hair: #232328;
  --line: #2E2E35;
  --line-strong: #50505A;
  --line-input: #6B6B75;
  --focus: #FFFFFF;
  --text-1: #EDEDEF;
  --text-2: #A6A6AF;
  --text-3: #8B8B95;
  --text-disabled: #5C5C66;
  --accent: #FFFFFF;
  --accent-hover: #E4E4E7;
  --accent-fg: #0B0B0D;
  --status-blocked: #F5696E;
  --status-blocked-tint: #342023;
  --status-blocked-line: rgba(245,105,110,.32);
  --status-action: #F5A623;
  --status-action-tint: #342819;
  --status-action-line: rgba(245,166,35,.32);
  --status-info: #5AA2FF;
  --status-info-tint: #1E2837;
  --status-info-line: rgba(90,162,255,.32);
  --status-fine: #4CC46A;
  --status-fine-tint: #1C2D23;
  --status-fine-line: rgba(76,196,106,.32);
  --danger-solid: #C9302F;
}
[data-theme="print"] {
  --bg-0: #FFFFFF;
  --bg-1: #F6F6F7;
  --text-1: #111111;
  --text-2: #3F3F46;
  --text-3: #52525B;
  --line: #D4D4D8;
  --accent: #111111;
  --accent-fg: #FFFFFF;
  --status-blocked: #B42318;
  --status-action: #8A5200;
  --status-info: #1D5FBF;
  --status-fine: #1B6E32;
}
