:root {
  color-scheme: light;

  /* Paper V3 · Product System & Truth States */
  --color-ground: #fbfcf8;
  --color-surface: #ffffff;
  --color-mist: #ddf1ec;
  --color-border: #cad8d4;
  --color-muted: #667b78;
  --color-ink: #073a36;
  --color-primary: #073a36;
  --color-primary-soft: #ddf1ec;
  --color-accent: #b8ff67;
  --color-info: #7cc8da;
  --color-success: #178a68;
  --color-warning: #d6a23d;
  --color-danger: #d95c68;

  --font-sans: Geist, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", "SFMono-Regular", Consolas, monospace;
  --text-xs: 12px;
  --text-sm: 14px;
  --text-body: 16px;
  --text-lead: 20px;
  --text-h3: 24px;
  --text-h2: 36px;
  --text-h1: 52px;
  --text-display: 72px;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-display: 750;
  --tracking-display: -0.03em;
  --tracking-tight: -0.01em;
  --tracking-label: 0.08em;
  --leading-xs: 16px;
  --leading-sm: 20px;
  --leading-body: 24px;
  --leading-lead: 28px;
  --leading-h3: 30px;
  --leading-h2: 42px;
  --leading-h1: 56px;
  --leading-display: 72px;

  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-pill: 999px;
  --breakpoint-mobile: 760px;
  --breakpoint-tablet: 1024px;
  --container-content: 1280px;

  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-right: env(safe-area-inset-right, 0px);
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --safe-area-left: env(safe-area-inset-left, 0px);

  /* Compatibility aliases for the existing fail-closed browser presenters. */
  --jm-color-bg: var(--color-ground);
  --jm-color-bg-elevated: var(--color-surface);
  --jm-color-surface: var(--color-surface);
  --jm-color-surface-strong: var(--color-surface);
  --jm-color-border: var(--color-border);
  --jm-color-text: var(--color-ink);
  --jm-color-muted: var(--color-muted);
  --jm-color-subtle: #82928f;
  --jm-color-accent: var(--color-primary);
  --jm-color-accent-strong: var(--color-primary);
  --jm-color-warning: var(--color-warning);
  --jm-color-warning-surface: #fff4d8;
  --jm-shadow-panel: 0 12px 32px rgba(7, 58, 54, 0.08);
  --jm-shadow-focus: 0 0 0 3px rgba(184, 255, 103, 0.82);
  --jm-focus-ring: var(--jm-shadow-focus);
  --jm-radius-panel: var(--radius-md);
  --jm-radius-card: var(--radius-sm);
  --jm-radius-pill: var(--radius-pill);
  --jm-space-xs: var(--space-2);
  --jm-space-sm: var(--space-3);
  --jm-space-md: 18px;
  --jm-space-lg: var(--space-6);
  --jm-space-xl: var(--space-8);
  --jm-space-shell-block: clamp(20px, 4vw, 44px);
  --jm-space-shell-inline: clamp(16px, 4vw, 44px);
  --jm-space-shell: var(--jm-space-shell-block);
  --jm-space-panel: clamp(18px, 3vw, 32px);
  --jm-layout-gap: clamp(14px, 2vw, 22px);
  --jm-safe-area-top: var(--safe-area-top);
  --jm-safe-area-right: var(--safe-area-right);
  --jm-safe-area-bottom: var(--safe-area-bottom);
  --jm-safe-area-left: var(--safe-area-left);
  --jm-mini-app-content: 390px;
  --jm-telegram-viewport: var(--jm-mini-app-content);
  --jm-desktop-content: var(--container-content);
  --jm-desktop-rail-min: 280px;
  --jm-desktop-rail-max: 420px;
  --jm-breakpoint-mini-app: var(--breakpoint-mobile);
  --jm-breakpoint-desktop: 960px;
  --jm-font-sans: var(--font-sans);
  --jm-font-mono: var(--font-mono);
}
