/**
 * letbe-ds — Theme tokens
 * GENERATED FILE — edit tokens/source-tokens.json and run `node scripts/build-tokens.js`
 */

:root {

  /* ─── L1 — Color primitives ─── */
  --lb-neutral-50: #f7f5f1;
  --lb-neutral-100: #edebe6;
  --lb-neutral-200: #dfdcd7;
  --lb-neutral-300: #cdcac4;
  --lb-neutral-400: #aeaaa4;
  --lb-neutral-500: #898580;
  --lb-neutral-600: #66635e;
  --lb-neutral-700: #45423e;
  --lb-neutral-800: #272522;
  --lb-neutral-900: #13110e;
  --lb-neutral-950: #060504;
  --lb-red-50: #faf3f2;
  --lb-red-100: #fae6e5;
  --lb-red-200: #ffcecf;
  --lb-red-300: #ffb0b4;
  --lb-red-400: #ff7c89;
  --lb-red-500: #e63d5c;
  --lb-red-600: #b5173e;
  --lb-red-700: #800026;
  --lb-red-800: #4e0012;
  --lb-red-900: #270208;
  --lb-red-950: #100102;
  --lb-green-50: #f0f8f0;
  --lb-green-100: #def1e1;
  --lb-green-200: #bfe9c7;
  --lb-green-300: #97dea9;
  --lb-green-400: #54c579;
  --lb-green-500: #00a34a;
  --lb-green-600: #007c2c;
  --lb-green-700: #005515;
  --lb-green-800: #003108;
  --lb-green-900: #001804;
  --lb-green-950: #000702;
  --lb-yellow-50: #fff9f0;
  --lb-yellow-100: #fff2de;
  --lb-yellow-200: #ffe8bc;
  --lb-yellow-300: #ffd687;
  --lb-yellow-400: #ffc14b;
  --lb-yellow-500: #ffa700;
  --lb-yellow-600: #d78700;
  --lb-yellow-700: #a36200;
  --lb-yellow-800: #643a00;
  --lb-yellow-900: #321b00;
  --lb-yellow-950: #0f0600;
  --lb-blue-50: #f2f5f9;
  --lb-blue-100: #e2ecf9;
  --lb-blue-200: #c6dffe;
  --lb-blue-300: #a3ceff;
  --lb-blue-400: #6badff;
  --lb-blue-500: #2079dc;
  --lb-blue-600: #0055ac;
  --lb-blue-700: #00377c;
  --lb-blue-800: #001f4c;
  --lb-blue-900: #000d26;
  --lb-blue-950: #010510;
  --lb-violet-50: #f5f4f9;
  --lb-violet-100: #ece9f8;
  --lb-violet-200: #ded6fb;
  --lb-violet-300: #cebfff;
  --lb-violet-400: #b298f8;
  --lb-violet-500: #855dd8;
  --lb-violet-600: #623ca8;
  --lb-violet-700: #422378;
  --lb-violet-800: #261249;
  --lb-violet-900: #110724;
  --lb-violet-950: #06030f;
  --lb-orange-50: #fbf3ec;
  --lb-orange-100: #f9e7d0;
  --lb-orange-200: #fbd1a3;
  --lb-orange-300: #fab572;
  --lb-orange-400: #f59137;
  --lb-orange-500: #d96d0a;
  --lb-orange-600: #a75406;
  --lb-orange-700: #783c04;
  --lb-orange-800: #451e02;
  --lb-orange-900: #260f01;
  --lb-orange-950: #110501;
  --lb-cyan-50: #eef8fa;
  --lb-cyan-100: #d8eff3;
  --lb-cyan-200: #b3dde6;
  --lb-cyan-300: #82c8d6;
  --lb-cyan-400: #43adc1;
  --lb-cyan-500: #15879f;
  --lb-cyan-600: #0c697d;
  --lb-cyan-700: #084e5d;
  --lb-cyan-800: #042d36;
  --lb-cyan-900: #02181d;
  --lb-cyan-950: #010a0d;

  /* ─── L1 — Size primitives (spacing) ─── */
  --lb-size-0: 0px;
  --lb-size-hairline: 1px;
  --lb-size-theme: 1.6px;
  --lb-size-0-5x: 2px;
  --lb-size-1x: 4px;
  --lb-size-1-5x: 6px;
  --lb-size-2x: 8px;
  --lb-size-3x: 12px;
  --lb-size-3-5x: 14px;
  --lb-size-4x: 16px;
  --lb-size-5x: 20px;
  --lb-size-6x: 24px;
  --lb-size-8x: 32px;
  --lb-size-10x: 40px;
  --lb-size-12x: 48px;
  --lb-size-16x: 64px;
  --lb-size-20x: 80px;
  --lb-size-24x: 96px;

  /* ─── L1 — Font primitives ─── */
  --lb-font-family-1: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lb-font-family-2: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lb-font-family-3: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --lb-font-family-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lb-font-size-2xs: 11px;
  --lb-font-size-xs: 12px;
  --lb-font-size-s: 14px;
  --lb-font-size-m: 16px;
  --lb-font-size-l: 18px;
  --lb-font-size-xl: 20px;
  --lb-font-size-2xl: 24px;
  --lb-font-size-3xl: 30px;
  --lb-font-size-4xl: 36px;
  --lb-font-size-5xl: 48px;
  --lb-font-size-6xl: 60px;
  --lb-font-size-7xl: 72px;
  --lb-font-size-8xl: 96px;
  --lb-font-weight-regular: 400;
  --lb-font-weight-medium: 500;
  --lb-font-weight-semibold: 600;
  --lb-font-weight-bold: 700;
  --lb-font-line-height-2xs: 16px;
  --lb-font-line-height-xs: 16px;
  --lb-font-line-height-s: 20px;
  --lb-font-line-height-m: 24px;
  --lb-font-line-height-l: 28px;
  --lb-font-line-height-xl: 28px;
  --lb-font-line-height-2xl: 32px;
  --lb-font-line-height-3xl: 36px;
  --lb-font-line-height-4xl: 40px;
  --lb-font-line-height-5xl: 52px;
  --lb-font-line-height-6xl: 64px;
  --lb-font-line-height-7xl: 80px;
  --lb-font-line-height-8xl: 104px;
  --lb-font-letter-spacing-tight: -0.02em;
  --lb-font-letter-spacing-normal: 0em;
  --lb-font-letter-spacing-slightly-wide: 0.01em;
  --lb-font-letter-spacing-wide: 0.02em;
  --lb-font-letter-spacing-caps: 0.04em;
  --lb-font-letter-spacing-spaced: 0.45em;
  --lb-font-base-S: 16px;
  --lb-font-base-M: 16px;
  --lb-font-base-L: 16px;
  --lb-font-scale-ratio-S: 1.25;
  --lb-font-scale-ratio-M: 1.25;
  --lb-font-scale-ratio-L: 1.25;
  /* Step aliases — derived from font.base.S × font.scale-ratio.S */
  --lb-font-size-step-n2: 10px;
  --lb-font-line-height-step-n2: 12px;
  --lb-font-size-step-n1: 13px;
  --lb-font-line-height-step-n1: 16px;
  --lb-font-size-step-0: 16px;
  --lb-font-line-height-step-0: 24px;
  --lb-font-size-step-1: 20px;
  --lb-font-line-height-step-1: 28px;
  --lb-font-size-step-2: 25px;
  --lb-font-line-height-step-2: 36px;
  --lb-font-size-step-3: 31px;
  --lb-font-line-height-step-3: 40px;
  --lb-font-size-step-4: 39px;
  --lb-font-line-height-step-4: 48px;
  --lb-font-size-step-5: 49px;
  --lb-font-line-height-step-5: 56px;
  --lb-font-size-step-6: 61px;
  --lb-font-line-height-step-6: 68px;
  --lb-font-size-step-7: 76px;
  --lb-font-line-height-step-7: 84px;
  --lb-font-size-step-8: 95px;
  --lb-font-line-height-step-8: 100px;

  /* ─── L1 — Radius primitives ─── */
  --lb-radius-0: 0px;
  --lb-radius-2: 2px;
  --lb-radius-4: 4px;
  --lb-radius-8: 8px;
  --lb-radius-12: 12px;
  --lb-radius-16: 16px;
  --lb-radius-9999: 9999px;

  /* ─── L1 — Opacity primitives ─── */
  --lb-opacity-0: 0;
  --lb-opacity-5: 0.05;
  --lb-opacity-10: 0.1;
  --lb-opacity-20: 0.2;
  --lb-opacity-40: 0.4;
  --lb-opacity-60: 0.6;
  --lb-opacity-80: 0.8;
  --lb-opacity-100: 1;

  /* ─── L1 — Duration primitives ─── */
  --lb-duration-0: 0ms;
  --lb-duration-50: 50ms;
  --lb-duration-100: 100ms;
  --lb-duration-150: 150ms;
  --lb-duration-200: 200ms;
  --lb-duration-300: 300ms;
  --lb-duration-500: 500ms;

  /* ─── L1 — Ease primitives ─── */
  --lb-ease-linear: cubic-bezier(0, 0, 1, 1);
  --lb-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --lb-ease-decelerate: cubic-bezier(0, 0, 0, 1);
  --lb-ease-accelerate: cubic-bezier(0.3, 0, 1, 1);
  --lb-ease-spring: cubic-bezier(0.2, 1.4, 0.4, 1);

  /* ─── L1 — Z-index primitives ─── */
  --lb-z-0: 0;
  --lb-z-1: 1;
  --lb-z-2: 10;
  --lb-z-3: 100;
  --lb-z-4: 200;
  --lb-z-5: 300;
  --lb-z-6: 400;
  --lb-z-7: 500;

  /* ─── L1 — Shadow primitives ─── */
  --lb-shadow-1: 0 1px 2px 0 color-mix(in srgb, var(--lb-neutral-900) 8%, transparent);
  --lb-shadow-2: 0 2px 6px 0 color-mix(in srgb, var(--lb-neutral-900) 10%, transparent);
  --lb-shadow-3: 0 4px 12px 0 color-mix(in srgb, var(--lb-neutral-900) 12%, transparent);
  --lb-shadow-4: 0 8px 24px 0 color-mix(in srgb, var(--lb-neutral-900) 16%, transparent);
  --lb-shadow-ring: 0 0 0 3px color-mix(in srgb, var(--lb-blue-500) 40%, transparent);

  /* ─── L2 — Semantic light: fg ─── */
  --lb-fg-default: var(--lb-neutral-900);
  --lb-fg-muted: var(--lb-neutral-600);
  --lb-fg-subtle: var(--lb-neutral-700);
  --lb-fg-inverse: var(--lb-neutral-50);
  --lb-fg-inverse-muted: var(--lb-neutral-300);
  --lb-fg-inverse-strong: var(--lb-neutral-50);
  --lb-fg-accent: var(--lb-violet-600);
  --lb-fg-accent-muted: var(--lb-violet-600);
  --lb-fg-accent-subtle: var(--lb-violet-700);
  --lb-fg-disabled: var(--lb-neutral-600);
  --lb-fg-success: var(--lb-green-600);
  --lb-fg-danger: var(--lb-red-600);
  --lb-fg-warning: var(--lb-yellow-800);
  --lb-fg-info: var(--lb-blue-600);
  --lb-fg-success-muted: var(--lb-green-500);
  --lb-fg-warning-muted: var(--lb-yellow-600);
  --lb-fg-danger-muted: var(--lb-red-400);
  --lb-fg-info-muted: var(--lb-blue-400);

  /* ─── L2 — Semantic light: bg ─── */
  --lb-bg-default: var(--lb-neutral-50);
  --lb-bg-strong: var(--lb-neutral-100);
  --lb-bg-bolder: var(--lb-neutral-200);
  --lb-bg-inverse: var(--lb-neutral-900);
  --lb-bg-accent-subtle: var(--lb-violet-50);
  --lb-bg-accent-muted: var(--lb-violet-200);
  --lb-bg-accent: var(--lb-violet-600);
  --lb-bg-accent-strong: var(--lb-violet-700);
  --lb-bg-accent-bolder: var(--lb-violet-800);
  --lb-bg-accent-value: var(--lb-violet-600);
  --lb-bg-success-value: var(--lb-green-600);
  --lb-bg-warning-value: var(--lb-yellow-700);
  --lb-bg-danger-value: var(--lb-red-600);
  --lb-bg-disabled: var(--lb-neutral-100);
  --lb-bg-overlay: var(--lb-neutral-900);
  --lb-bg-success: var(--lb-green-500);
  --lb-bg-danger: var(--lb-red-600);
  --lb-bg-warning: var(--lb-yellow-500);
  --lb-bg-info: var(--lb-blue-500);
  --lb-bg-success-muted: var(--lb-green-200);
  --lb-bg-success-subtle: var(--lb-green-50);
  --lb-bg-warning-muted: var(--lb-yellow-200);
  --lb-bg-warning-subtle: var(--lb-yellow-100);
  --lb-bg-danger-muted: var(--lb-red-200);
  --lb-bg-danger-subtle: var(--lb-red-50);
  --lb-bg-danger-strong: var(--lb-red-700);
  --lb-bg-danger-bolder: var(--lb-red-800);
  --lb-bg-info-muted: var(--lb-blue-200);
  --lb-bg-info-subtle: var(--lb-blue-50);

  /* ─── L2 — Semantic light: border ─── */
  --lb-border-default: var(--lb-neutral-300);
  --lb-border-muted: var(--lb-neutral-200);
  --lb-border-strong: var(--lb-neutral-500);
  --lb-border-bolder: var(--lb-neutral-500);
  --lb-border-focus: var(--lb-blue-500);
  --lb-border-accent: var(--lb-violet-600);
  --lb-border-disabled: var(--lb-neutral-200);
  --lb-border-success: var(--lb-green-500);
  --lb-border-danger: var(--lb-red-500);
  --lb-border-warning: var(--lb-yellow-500);
  --lb-border-info: var(--lb-blue-500);
  --lb-border-success-muted: var(--lb-green-300);
  --lb-border-success-subtle: var(--lb-green-200);
  --lb-border-warning-muted: var(--lb-yellow-300);
  --lb-border-warning-subtle: var(--lb-yellow-200);
  --lb-border-danger-muted: var(--lb-red-300);
  --lb-border-danger-subtle: var(--lb-red-200);
  --lb-border-info-muted: var(--lb-blue-300);
  --lb-border-info-subtle: var(--lb-blue-200);

  /* ─── L2 — Semantic light: data ─── */
  --lb-data-1: var(--lb-violet-500);
  --lb-data-2: var(--lb-blue-500);
  --lb-data-3: var(--lb-green-500);
  --lb-data-4: var(--lb-yellow-500);
  --lb-data-5: var(--lb-red-500);
  --lb-data-6: var(--lb-neutral-500);
  --lb-data-7: var(--lb-orange-500);
  --lb-data-8: var(--lb-cyan-500);

  /* ─── L2 — Semantic light: code ─── */
  --lb-code-1: var(--lb-violet-600);
  --lb-code-2: var(--lb-blue-600);
  --lb-code-3: var(--lb-green-600);
  --lb-code-4: var(--lb-yellow-600);
  --lb-code-5: var(--lb-red-600);
  --lb-code-6: var(--lb-neutral-600);
  --lb-code-7: var(--lb-orange-600);
  --lb-code-8: var(--lb-cyan-600);

  /* ─── L2 — Typography family aliases ─── */
  --lb-typography-family-display: var(--lb-font-family-1);
  --lb-typography-family-heading: var(--lb-font-family-1);
  --lb-typography-family-body: var(--lb-font-family-1);
  --lb-typography-family-action: var(--lb-font-family-2);
  --lb-typography-family-label: var(--lb-font-family-1);
  --lb-typography-family-caption: var(--lb-font-family-1);
  --lb-typography-family-code: var(--lb-font-family-3);

  /* ─── L2 — Typography (flattened per property) ─── */
  --lb-t-display-xl-font-family: var(--lb-typography-family-display);
  --lb-t-display-xl-font-size: var(--lb-font-size-8xl);
  --lb-t-display-xl-font-weight: var(--lb-font-weight-bold);
  --lb-t-display-xl-line-height: var(--lb-font-line-height-8xl);
  --lb-t-display-xl-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-display-l-font-family: var(--lb-typography-family-display);
  --lb-t-display-l-font-size: var(--lb-font-size-7xl);
  --lb-t-display-l-font-weight: var(--lb-font-weight-bold);
  --lb-t-display-l-line-height: var(--lb-font-line-height-7xl);
  --lb-t-display-l-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-display-m-font-family: var(--lb-typography-family-display);
  --lb-t-display-m-font-size: var(--lb-font-size-6xl);
  --lb-t-display-m-font-weight: var(--lb-font-weight-bold);
  --lb-t-display-m-line-height: var(--lb-font-line-height-6xl);
  --lb-t-display-m-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-display-s-font-family: var(--lb-typography-family-display);
  --lb-t-display-s-font-size: var(--lb-font-size-5xl);
  --lb-t-display-s-font-weight: var(--lb-font-weight-bold);
  --lb-t-display-s-line-height: var(--lb-font-line-height-5xl);
  --lb-t-display-s-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-display-xs-font-family: var(--lb-typography-family-display);
  --lb-t-display-xs-font-size: var(--lb-font-size-4xl);
  --lb-t-display-xs-font-weight: var(--lb-font-weight-bold);
  --lb-t-display-xs-line-height: var(--lb-font-line-height-4xl);
  --lb-t-display-xs-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-heading-xl-font-family: var(--lb-typography-family-heading);
  --lb-t-heading-xl-font-size: var(--lb-font-size-3xl);
  --lb-t-heading-xl-font-weight: var(--lb-font-weight-semibold);
  --lb-t-heading-xl-line-height: var(--lb-font-line-height-3xl);
  --lb-t-heading-xl-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-heading-l-font-family: var(--lb-typography-family-heading);
  --lb-t-heading-l-font-size: var(--lb-font-size-2xl);
  --lb-t-heading-l-font-weight: var(--lb-font-weight-semibold);
  --lb-t-heading-l-line-height: var(--lb-font-line-height-2xl);
  --lb-t-heading-l-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-heading-m-font-family: var(--lb-typography-family-heading);
  --lb-t-heading-m-font-size: var(--lb-font-size-xl);
  --lb-t-heading-m-font-weight: var(--lb-font-weight-semibold);
  --lb-t-heading-m-line-height: var(--lb-font-line-height-xl);
  --lb-t-heading-m-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-heading-s-font-family: var(--lb-typography-family-heading);
  --lb-t-heading-s-font-size: var(--lb-font-size-l);
  --lb-t-heading-s-font-weight: var(--lb-font-weight-semibold);
  --lb-t-heading-s-line-height: var(--lb-font-line-height-l);
  --lb-t-heading-s-letter-spacing: var(--lb-font-letter-spacing-tight);
  --lb-t-heading-xs-font-family: var(--lb-typography-family-heading);
  --lb-t-heading-xs-font-size: var(--lb-font-size-s);
  --lb-t-heading-xs-font-weight: var(--lb-font-weight-semibold);
  --lb-t-heading-xs-line-height: var(--lb-font-line-height-s);
  --lb-t-heading-xs-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-heading-2xs-font-family: var(--lb-typography-family-heading);
  --lb-t-heading-2xs-font-size: var(--lb-font-size-xs);
  --lb-t-heading-2xs-font-weight: var(--lb-font-weight-semibold);
  --lb-t-heading-2xs-line-height: var(--lb-font-line-height-xs);
  --lb-t-heading-2xs-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-body-xl-font-family: var(--lb-typography-family-body);
  --lb-t-body-xl-font-size: var(--lb-font-size-xl);
  --lb-t-body-xl-font-weight: var(--lb-font-weight-regular);
  --lb-t-body-xl-line-height: var(--lb-font-line-height-xl);
  --lb-t-body-xl-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-body-l-font-family: var(--lb-typography-family-body);
  --lb-t-body-l-font-size: var(--lb-font-size-l);
  --lb-t-body-l-font-weight: var(--lb-font-weight-regular);
  --lb-t-body-l-line-height: var(--lb-font-line-height-l);
  --lb-t-body-l-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-body-m-font-family: var(--lb-typography-family-body);
  --lb-t-body-m-font-size: var(--lb-font-size-m);
  --lb-t-body-m-font-weight: var(--lb-font-weight-regular);
  --lb-t-body-m-line-height: var(--lb-font-line-height-m);
  --lb-t-body-m-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-body-s-font-family: var(--lb-typography-family-body);
  --lb-t-body-s-font-size: var(--lb-font-size-s);
  --lb-t-body-s-font-weight: var(--lb-font-weight-regular);
  --lb-t-body-s-line-height: var(--lb-font-line-height-s);
  --lb-t-body-s-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-body-xs-font-family: var(--lb-typography-family-body);
  --lb-t-body-xs-font-size: var(--lb-font-size-xs);
  --lb-t-body-xs-font-weight: var(--lb-font-weight-regular);
  --lb-t-body-xs-line-height: var(--lb-font-line-height-xs);
  --lb-t-body-xs-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-action-l-font-family: var(--lb-typography-family-action);
  --lb-t-action-l-font-size: var(--lb-font-size-m);
  --lb-t-action-l-font-weight: var(--lb-font-weight-medium);
  --lb-t-action-l-line-height: var(--lb-font-line-height-m);
  --lb-t-action-l-letter-spacing: var(--lb-font-letter-spacing-slightly-wide);
  --lb-t-action-m-font-family: var(--lb-typography-family-action);
  --lb-t-action-m-font-size: var(--lb-font-size-s);
  --lb-t-action-m-font-weight: var(--lb-font-weight-medium);
  --lb-t-action-m-line-height: var(--lb-font-line-height-s);
  --lb-t-action-m-letter-spacing: var(--lb-font-letter-spacing-slightly-wide);
  --lb-t-action-s-font-family: var(--lb-typography-family-action);
  --lb-t-action-s-font-size: var(--lb-font-size-xs);
  --lb-t-action-s-font-weight: var(--lb-font-weight-medium);
  --lb-t-action-s-line-height: var(--lb-font-line-height-xs);
  --lb-t-action-s-letter-spacing: var(--lb-font-letter-spacing-wide);
  --lb-t-label-l-font-family: var(--lb-typography-family-label);
  --lb-t-label-l-font-size: var(--lb-font-size-m);
  --lb-t-label-l-font-weight: var(--lb-font-weight-medium);
  --lb-t-label-l-line-height: var(--lb-font-line-height-m);
  --lb-t-label-l-letter-spacing: var(--lb-font-letter-spacing-slightly-wide);
  --lb-t-label-m-font-family: var(--lb-typography-family-label);
  --lb-t-label-m-font-size: var(--lb-font-size-s);
  --lb-t-label-m-font-weight: var(--lb-font-weight-medium);
  --lb-t-label-m-line-height: var(--lb-font-line-height-s);
  --lb-t-label-m-letter-spacing: var(--lb-font-letter-spacing-slightly-wide);
  --lb-t-label-s-font-family: var(--lb-typography-family-label);
  --lb-t-label-s-font-size: var(--lb-font-size-xs);
  --lb-t-label-s-font-weight: var(--lb-font-weight-medium);
  --lb-t-label-s-line-height: var(--lb-font-line-height-xs);
  --lb-t-label-s-letter-spacing: var(--lb-font-letter-spacing-wide);
  --lb-t-caption-m-font-family: var(--lb-typography-family-caption);
  --lb-t-caption-m-font-size: var(--lb-font-size-xs);
  --lb-t-caption-m-font-weight: var(--lb-font-weight-regular);
  --lb-t-caption-m-line-height: var(--lb-font-line-height-xs);
  --lb-t-caption-m-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-caption-s-font-family: var(--lb-typography-family-caption);
  --lb-t-caption-s-font-size: var(--lb-font-size-2xs);
  --lb-t-caption-s-font-weight: var(--lb-font-weight-regular);
  --lb-t-caption-s-line-height: var(--lb-font-line-height-2xs);
  --lb-t-caption-s-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-overline-font-family: var(--lb-typography-family-label);
  --lb-t-overline-font-size: var(--lb-font-size-xs);
  --lb-t-overline-font-weight: var(--lb-font-weight-medium);
  --lb-t-overline-line-height: var(--lb-font-line-height-xs);
  --lb-t-overline-letter-spacing: var(--lb-font-letter-spacing-caps);
  --lb-t-code-s-font-family: var(--lb-typography-family-code);
  --lb-t-code-s-font-size: var(--lb-font-size-2xs);
  --lb-t-code-s-font-weight: var(--lb-font-weight-regular);
  --lb-t-code-s-line-height: var(--lb-font-line-height-2xs);
  --lb-t-code-s-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-code-m-font-family: var(--lb-typography-family-code);
  --lb-t-code-m-font-size: var(--lb-font-size-s);
  --lb-t-code-m-font-weight: var(--lb-font-weight-regular);
  --lb-t-code-m-line-height: var(--lb-font-line-height-s);
  --lb-t-code-m-letter-spacing: var(--lb-font-letter-spacing-normal);
  --lb-t-code-l-font-family: var(--lb-typography-family-code);
  --lb-t-code-l-font-size: var(--lb-font-size-xl);
  --lb-t-code-l-font-weight: var(--lb-font-weight-regular);
  --lb-t-code-l-line-height: var(--lb-font-line-height-xl);
  --lb-t-code-l-letter-spacing: var(--lb-font-letter-spacing-spaced);

  /* ─── L2 — Radius semantic ─── */
  --lb-radius-none: var(--lb-radius-0);
  --lb-radius-interactive: var(--lb-radius-4);
  --lb-radius-field: var(--lb-radius-4);
  --lb-radius-surface: var(--lb-radius-8);
  --lb-radius-overlay: var(--lb-radius-12);
  --lb-radius-badge: var(--lb-radius-9999);
  --lb-radius-media: var(--lb-radius-8);
  --lb-radius-full: var(--lb-radius-9999);

  /* ─── L2 — Opacity semantic ─── */
  --lb-opacity-hidden: var(--lb-opacity-0);
  --lb-opacity-faint: var(--lb-opacity-5);
  --lb-opacity-subtle: var(--lb-opacity-10);
  --lb-opacity-light: var(--lb-opacity-20);
  --lb-opacity-medium: var(--lb-opacity-40);
  --lb-opacity-heavy: var(--lb-opacity-60);
  --lb-opacity-strong: var(--lb-opacity-80);
  --lb-opacity-opaque: var(--lb-opacity-100);

  /* ─── L2 — Animation semantic ─── */
  --lb-animation-dur-instant: var(--lb-duration-0);
  --lb-animation-dur-micro: var(--lb-duration-50);
  --lb-animation-dur-fast: var(--lb-duration-100);
  --lb-animation-dur-normal: var(--lb-duration-150);
  --lb-animation-dur-gentle: var(--lb-duration-200);
  --lb-animation-dur-slow: var(--lb-duration-300);
  --lb-animation-dur-collapse: var(--lb-duration-500);
  --lb-animation-ease-ui: var(--lb-ease-standard);
  --lb-animation-ease-in: var(--lb-ease-decelerate);
  --lb-animation-ease-out: var(--lb-ease-accelerate);
  --lb-animation-ease-bounce: var(--lb-ease-spring);

  /* ─── L2 — Border-width semantic ─── */
  --lb-border-width-none: var(--lb-size-0);
  --lb-border-width-thin: var(--lb-size-hairline);
  --lb-border-width-action: var(--lb-size-theme);
  --lb-border-width-medium: var(--lb-size-0-5x);

  /* ─── L2 — Stroke semantic ─── */
  --lb-stroke-icon: var(--lb-size-theme);

  /* ─── L2 — Component-size semantic ─── */

  /* ─── L2 — Elevation semantic ─── */

  /* ─── L2 — Shadow semantic ─── */
  --lb-shadow-card: var(--lb-shadow-2);
  --lb-shadow-dropdown: var(--lb-shadow-3);
  --lb-shadow-modal: var(--lb-shadow-4);
  --lb-shadow-tooltip: var(--lb-shadow-3);
  --lb-shadow-focus: var(--lb-shadow-ring);

  /* ─── L3 — Action ─── */
  --lb-action-bg-primary-default: var(--lb-bg-accent);
  --lb-action-bg-primary-hover: var(--lb-bg-accent-strong);
  --lb-action-bg-primary-pressed: var(--lb-bg-accent-bolder);
  --lb-action-bg-primary-disabled: var(--lb-bg-disabled);
  --lb-action-fg-primary-default: var(--lb-fg-inverse-strong);
  --lb-action-fg-primary-hover: var(--lb-fg-inverse-strong);
  --lb-action-fg-primary-pressed: var(--lb-fg-inverse-strong);
  --lb-action-fg-primary-disabled: var(--lb-fg-inverse-muted);
  --lb-action-border-primary-default: var(--lb-bg-accent);
  --lb-action-border-primary-hover: var(--lb-bg-accent-strong);
  --lb-action-border-primary-pressed: var(--lb-bg-accent-bolder);
  --lb-action-border-primary-disabled: var(--lb-border-disabled);
  --lb-action-bg-secondary-default: var(--lb-bg-default);
  --lb-action-bg-secondary-hover: var(--lb-bg-strong);
  --lb-action-bg-secondary-pressed: var(--lb-bg-bolder);
  --lb-action-bg-secondary-disabled: var(--lb-bg-disabled);
  --lb-action-fg-secondary-default: var(--lb-fg-default);
  --lb-action-fg-secondary-hover: var(--lb-fg-default);
  --lb-action-fg-secondary-pressed: var(--lb-fg-default);
  --lb-action-fg-secondary-disabled: var(--lb-fg-disabled);
  --lb-action-border-secondary-default: var(--lb-border-strong);
  --lb-action-border-secondary-hover: var(--lb-border-bolder);
  --lb-action-border-secondary-pressed: var(--lb-border-bolder);
  --lb-action-border-secondary-disabled: var(--lb-border-disabled);
  --lb-action-bg-danger-default: var(--lb-bg-danger);
  --lb-action-bg-danger-hover: var(--lb-bg-danger-strong);
  --lb-action-bg-danger-pressed: var(--lb-bg-danger-bolder);
  --lb-action-bg-danger-disabled: var(--lb-bg-disabled);
  --lb-action-fg-danger-default: var(--lb-fg-inverse-strong);
  --lb-action-fg-danger-hover: var(--lb-fg-inverse-strong);
  --lb-action-fg-danger-pressed: var(--lb-fg-inverse-strong);
  --lb-action-fg-danger-disabled: var(--lb-fg-inverse-muted);
  --lb-action-border-danger-default: var(--lb-bg-danger);
  --lb-action-border-danger-hover: var(--lb-bg-danger-strong);
  --lb-action-border-danger-pressed: var(--lb-bg-danger-bolder);
  --lb-action-border-danger-disabled: var(--lb-border-disabled);
  --lb-action-bg-ghost-default: var(--lb-bg-default);
  --lb-action-bg-ghost-hover: var(--lb-bg-strong);
  --lb-action-bg-ghost-pressed: var(--lb-bg-bolder);
  --lb-action-bg-ghost-disabled: var(--lb-bg-disabled);
  --lb-action-fg-ghost-default: var(--lb-fg-default);
  --lb-action-fg-ghost-hover: var(--lb-fg-default);
  --lb-action-fg-ghost-pressed: var(--lb-fg-default);
  --lb-action-fg-ghost-disabled: var(--lb-fg-disabled);
  --lb-action-fg-link-default: var(--lb-fg-accent);
  --lb-action-fg-link-hover: var(--lb-fg-accent-muted);
  --lb-action-fg-link-pressed: var(--lb-fg-accent-subtle);
  --lb-action-fg-link-disabled: var(--lb-fg-disabled);
  --lb-action-bg-selected: var(--lb-bg-accent-muted);
  --lb-action-fg-selected: var(--lb-fg-accent);
  --lb-action-border-selected: var(--lb-border-accent);
  --lb-action-border-focus: var(--lb-border-focus);

  /* ─── L3 — Field ─── */
  --lb-field-fg-default: var(--lb-fg-default);
  --lb-field-fg-placeholder: var(--lb-fg-subtle);
  --lb-field-fg-label: var(--lb-fg-default);
  --lb-field-fg-hint: var(--lb-fg-muted);
  --lb-field-fg-error: var(--lb-fg-danger);
  --lb-field-fg-success: var(--lb-fg-success);
  --lb-field-fg-disabled: var(--lb-fg-disabled);
  --lb-field-bg-default: var(--lb-bg-default);
  --lb-field-bg-hover: var(--lb-bg-strong);
  --lb-field-bg-disabled: var(--lb-bg-disabled);
  --lb-field-border-default: var(--lb-border-strong);
  --lb-field-border-hover: var(--lb-border-bolder);
  --lb-field-border-focus: var(--lb-border-focus);
  --lb-field-border-error: var(--lb-border-danger);
  --lb-field-border-success: var(--lb-border-success);
  --lb-field-border-disabled: var(--lb-border-disabled);

  /* ─── L3 — Surface ─── */
  --lb-surface-bg-default: var(--lb-bg-default);
  --lb-surface-bg-elevated: var(--lb-bg-strong);
  --lb-surface-bg-overlay: var(--lb-bg-default);
  --lb-surface-bg-backdrop: var(--lb-bg-overlay);
  --lb-surface-border-default: var(--lb-border-default);
  --lb-surface-border-elevated: var(--lb-border-muted);
  --lb-surface-border-overlay: var(--lb-border-default);
  --lb-surface-border-cutout: var(--lb-bg-default);
  --lb-surface-border-cutout-elevated: var(--lb-bg-strong);
}

/* ─── Dark mode: manual override via data-theme attribute ─── */

[data-theme="dark"] {
  --lb-fg-default: var(--lb-neutral-100);
  --lb-fg-muted: var(--lb-neutral-400);
  --lb-fg-subtle: var(--lb-neutral-400);
  --lb-fg-inverse: var(--lb-neutral-900);
  --lb-fg-inverse-muted: var(--lb-neutral-700);
  --lb-fg-inverse-strong: var(--lb-neutral-50);
  --lb-fg-accent: var(--lb-violet-400);
  --lb-fg-accent-muted: var(--lb-violet-300);
  --lb-fg-accent-subtle: var(--lb-violet-200);
  --lb-fg-disabled: var(--lb-neutral-400);
  --lb-fg-success: var(--lb-green-400);
  --lb-fg-danger: var(--lb-red-400);
  --lb-fg-warning: var(--lb-yellow-400);
  --lb-fg-info: var(--lb-blue-400);
  --lb-fg-success-muted: var(--lb-green-500);
  --lb-fg-warning-muted: var(--lb-yellow-500);
  --lb-fg-danger-muted: var(--lb-red-500);
  --lb-fg-info-muted: var(--lb-blue-500);
  --lb-bg-default: var(--lb-neutral-950);
  --lb-bg-strong: var(--lb-neutral-900);
  --lb-bg-bolder: var(--lb-neutral-800);
  --lb-bg-inverse: var(--lb-neutral-50);
  --lb-bg-accent-subtle: var(--lb-violet-950);
  --lb-bg-accent-muted: var(--lb-violet-800);
  --lb-bg-accent: var(--lb-violet-600);
  --lb-bg-accent-strong: var(--lb-violet-700);
  --lb-bg-accent-bolder: var(--lb-violet-800);
  --lb-bg-accent-value: var(--lb-violet-400);
  --lb-bg-success-value: var(--lb-green-400);
  --lb-bg-warning-value: var(--lb-yellow-400);
  --lb-bg-danger-value: var(--lb-red-400);
  --lb-bg-disabled: var(--lb-neutral-800);
  --lb-bg-overlay: var(--lb-neutral-900);
  --lb-bg-success: var(--lb-green-500);
  --lb-bg-danger: var(--lb-red-600);
  --lb-bg-warning: var(--lb-yellow-500);
  --lb-bg-info: var(--lb-blue-500);
  --lb-bg-success-muted: var(--lb-green-800);
  --lb-bg-success-subtle: var(--lb-green-950);
  --lb-bg-warning-muted: var(--lb-yellow-800);
  --lb-bg-warning-subtle: var(--lb-yellow-950);
  --lb-bg-danger-muted: var(--lb-red-800);
  --lb-bg-danger-subtle: var(--lb-red-950);
  --lb-bg-danger-strong: var(--lb-red-700);
  --lb-bg-danger-bolder: var(--lb-red-800);
  --lb-bg-info-muted: var(--lb-blue-800);
  --lb-bg-info-subtle: var(--lb-blue-950);
  --lb-border-default: var(--lb-neutral-800);
  --lb-border-muted: var(--lb-neutral-800);
  --lb-border-strong: var(--lb-neutral-600);
  --lb-border-bolder: var(--lb-neutral-500);
  --lb-border-focus: var(--lb-blue-400);
  --lb-border-accent: var(--lb-violet-400);
  --lb-border-disabled: var(--lb-neutral-700);
  --lb-border-success: var(--lb-green-500);
  --lb-border-danger: var(--lb-red-500);
  --lb-border-warning: var(--lb-yellow-500);
  --lb-border-info: var(--lb-blue-500);
  --lb-border-success-muted: var(--lb-green-700);
  --lb-border-success-subtle: var(--lb-green-800);
  --lb-border-warning-muted: var(--lb-yellow-700);
  --lb-border-warning-subtle: var(--lb-yellow-800);
  --lb-border-danger-muted: var(--lb-red-700);
  --lb-border-danger-subtle: var(--lb-red-800);
  --lb-border-info-muted: var(--lb-blue-700);
  --lb-border-info-subtle: var(--lb-blue-800);
  --lb-data-1: var(--lb-violet-400);
  --lb-data-2: var(--lb-blue-400);
  --lb-data-3: var(--lb-green-400);
  --lb-data-4: var(--lb-yellow-400);
  --lb-data-5: var(--lb-red-400);
  --lb-data-6: var(--lb-neutral-400);
  --lb-data-7: var(--lb-orange-400);
  --lb-data-8: var(--lb-cyan-400);
  --lb-code-1: var(--lb-violet-300);
  --lb-code-2: var(--lb-blue-300);
  --lb-code-3: var(--lb-green-300);
  --lb-code-4: var(--lb-yellow-300);
  --lb-code-5: var(--lb-red-300);
  --lb-code-6: var(--lb-neutral-300);
  --lb-code-7: var(--lb-orange-300);
  --lb-code-8: var(--lb-cyan-300);

  /* Re-declared aliases — force re-substitution against the dark L2
     values above so SECTION-SCOPED dark theming works (not just :root).
     Same var() references as :root; no new tokens. */
  --lb-action-bg-primary-default: var(--lb-bg-accent);
  --lb-action-bg-primary-hover: var(--lb-bg-accent-strong);
  --lb-action-bg-primary-pressed: var(--lb-bg-accent-bolder);
  --lb-action-bg-primary-disabled: var(--lb-bg-disabled);
  --lb-action-fg-primary-default: var(--lb-fg-inverse-strong);
  --lb-action-fg-primary-hover: var(--lb-fg-inverse-strong);
  --lb-action-fg-primary-pressed: var(--lb-fg-inverse-strong);
  --lb-action-fg-primary-disabled: var(--lb-fg-inverse-muted);
  --lb-action-border-primary-default: var(--lb-bg-accent);
  --lb-action-border-primary-hover: var(--lb-bg-accent-strong);
  --lb-action-border-primary-pressed: var(--lb-bg-accent-bolder);
  --lb-action-border-primary-disabled: var(--lb-border-disabled);
  --lb-action-bg-secondary-default: var(--lb-bg-default);
  --lb-action-bg-secondary-hover: var(--lb-bg-strong);
  --lb-action-bg-secondary-pressed: var(--lb-bg-bolder);
  --lb-action-bg-secondary-disabled: var(--lb-bg-disabled);
  --lb-action-fg-secondary-default: var(--lb-fg-default);
  --lb-action-fg-secondary-hover: var(--lb-fg-default);
  --lb-action-fg-secondary-pressed: var(--lb-fg-default);
  --lb-action-fg-secondary-disabled: var(--lb-fg-disabled);
  --lb-action-border-secondary-default: var(--lb-border-strong);
  --lb-action-border-secondary-hover: var(--lb-border-bolder);
  --lb-action-border-secondary-pressed: var(--lb-border-bolder);
  --lb-action-border-secondary-disabled: var(--lb-border-disabled);
  --lb-action-bg-danger-default: var(--lb-bg-danger);
  --lb-action-bg-danger-hover: var(--lb-bg-danger-strong);
  --lb-action-bg-danger-pressed: var(--lb-bg-danger-bolder);
  --lb-action-bg-danger-disabled: var(--lb-bg-disabled);
  --lb-action-fg-danger-default: var(--lb-fg-inverse-strong);
  --lb-action-fg-danger-hover: var(--lb-fg-inverse-strong);
  --lb-action-fg-danger-pressed: var(--lb-fg-inverse-strong);
  --lb-action-fg-danger-disabled: var(--lb-fg-inverse-muted);
  --lb-action-border-danger-default: var(--lb-bg-danger);
  --lb-action-border-danger-hover: var(--lb-bg-danger-strong);
  --lb-action-border-danger-pressed: var(--lb-bg-danger-bolder);
  --lb-action-border-danger-disabled: var(--lb-border-disabled);
  --lb-action-bg-ghost-default: var(--lb-bg-default);
  --lb-action-bg-ghost-hover: var(--lb-bg-strong);
  --lb-action-bg-ghost-pressed: var(--lb-bg-bolder);
  --lb-action-bg-ghost-disabled: var(--lb-bg-disabled);
  --lb-action-fg-ghost-default: var(--lb-fg-default);
  --lb-action-fg-ghost-hover: var(--lb-fg-default);
  --lb-action-fg-ghost-pressed: var(--lb-fg-default);
  --lb-action-fg-ghost-disabled: var(--lb-fg-disabled);
  --lb-action-fg-link-default: var(--lb-fg-accent);
  --lb-action-fg-link-hover: var(--lb-fg-accent-muted);
  --lb-action-fg-link-pressed: var(--lb-fg-accent-subtle);
  --lb-action-fg-link-disabled: var(--lb-fg-disabled);
  --lb-action-bg-selected: var(--lb-bg-accent-muted);
  --lb-action-fg-selected: var(--lb-fg-accent);
  --lb-action-border-selected: var(--lb-border-accent);
  --lb-action-border-focus: var(--lb-border-focus);
  --lb-field-fg-default: var(--lb-fg-default);
  --lb-field-fg-placeholder: var(--lb-fg-subtle);
  --lb-field-fg-label: var(--lb-fg-default);
  --lb-field-fg-hint: var(--lb-fg-muted);
  --lb-field-fg-error: var(--lb-fg-danger);
  --lb-field-fg-success: var(--lb-fg-success);
  --lb-field-fg-disabled: var(--lb-fg-disabled);
  --lb-field-bg-default: var(--lb-bg-default);
  --lb-field-bg-hover: var(--lb-bg-strong);
  --lb-field-bg-disabled: var(--lb-bg-disabled);
  --lb-field-border-default: var(--lb-border-strong);
  --lb-field-border-hover: var(--lb-border-bolder);
  --lb-field-border-focus: var(--lb-border-focus);
  --lb-field-border-error: var(--lb-border-danger);
  --lb-field-border-success: var(--lb-border-success);
  --lb-field-border-disabled: var(--lb-border-disabled);
  --lb-surface-bg-default: var(--lb-bg-default);
  --lb-surface-bg-elevated: var(--lb-bg-strong);
  --lb-surface-bg-overlay: var(--lb-bg-default);
  --lb-surface-bg-backdrop: var(--lb-bg-overlay);
  --lb-surface-border-default: var(--lb-border-default);
  --lb-surface-border-elevated: var(--lb-border-muted);
  --lb-surface-border-overlay: var(--lb-border-default);
  --lb-surface-border-cutout: var(--lb-bg-default);
  --lb-surface-border-cutout-elevated: var(--lb-bg-strong);
}

/* ─── Dark mode: automatic via OS preference (when no data-theme set) ─── */
@media (prefers-color-scheme: dark) {

  :root:not([data-theme="light"]) {
    --lb-fg-default: var(--lb-neutral-100);
    --lb-fg-muted: var(--lb-neutral-400);
    --lb-fg-subtle: var(--lb-neutral-400);
    --lb-fg-inverse: var(--lb-neutral-900);
    --lb-fg-inverse-muted: var(--lb-neutral-700);
    --lb-fg-inverse-strong: var(--lb-neutral-50);
    --lb-fg-accent: var(--lb-violet-400);
    --lb-fg-accent-muted: var(--lb-violet-300);
    --lb-fg-accent-subtle: var(--lb-violet-200);
    --lb-fg-disabled: var(--lb-neutral-400);
    --lb-fg-success: var(--lb-green-400);
    --lb-fg-danger: var(--lb-red-400);
    --lb-fg-warning: var(--lb-yellow-400);
    --lb-fg-info: var(--lb-blue-400);
    --lb-fg-success-muted: var(--lb-green-500);
    --lb-fg-warning-muted: var(--lb-yellow-500);
    --lb-fg-danger-muted: var(--lb-red-500);
    --lb-fg-info-muted: var(--lb-blue-500);
    --lb-bg-default: var(--lb-neutral-950);
    --lb-bg-strong: var(--lb-neutral-900);
    --lb-bg-bolder: var(--lb-neutral-800);
    --lb-bg-inverse: var(--lb-neutral-50);
    --lb-bg-accent-subtle: var(--lb-violet-950);
    --lb-bg-accent-muted: var(--lb-violet-800);
    --lb-bg-accent: var(--lb-violet-600);
    --lb-bg-accent-strong: var(--lb-violet-700);
    --lb-bg-accent-bolder: var(--lb-violet-800);
    --lb-bg-accent-value: var(--lb-violet-400);
    --lb-bg-success-value: var(--lb-green-400);
    --lb-bg-warning-value: var(--lb-yellow-400);
    --lb-bg-danger-value: var(--lb-red-400);
    --lb-bg-disabled: var(--lb-neutral-800);
    --lb-bg-overlay: var(--lb-neutral-900);
    --lb-bg-success: var(--lb-green-500);
    --lb-bg-danger: var(--lb-red-600);
    --lb-bg-warning: var(--lb-yellow-500);
    --lb-bg-info: var(--lb-blue-500);
    --lb-bg-success-muted: var(--lb-green-800);
    --lb-bg-success-subtle: var(--lb-green-950);
    --lb-bg-warning-muted: var(--lb-yellow-800);
    --lb-bg-warning-subtle: var(--lb-yellow-950);
    --lb-bg-danger-muted: var(--lb-red-800);
    --lb-bg-danger-subtle: var(--lb-red-950);
    --lb-bg-danger-strong: var(--lb-red-700);
    --lb-bg-danger-bolder: var(--lb-red-800);
    --lb-bg-info-muted: var(--lb-blue-800);
    --lb-bg-info-subtle: var(--lb-blue-950);
    --lb-border-default: var(--lb-neutral-800);
    --lb-border-muted: var(--lb-neutral-800);
    --lb-border-strong: var(--lb-neutral-600);
    --lb-border-bolder: var(--lb-neutral-500);
    --lb-border-focus: var(--lb-blue-400);
    --lb-border-accent: var(--lb-violet-400);
    --lb-border-disabled: var(--lb-neutral-700);
    --lb-border-success: var(--lb-green-500);
    --lb-border-danger: var(--lb-red-500);
    --lb-border-warning: var(--lb-yellow-500);
    --lb-border-info: var(--lb-blue-500);
    --lb-border-success-muted: var(--lb-green-700);
    --lb-border-success-subtle: var(--lb-green-800);
    --lb-border-warning-muted: var(--lb-yellow-700);
    --lb-border-warning-subtle: var(--lb-yellow-800);
    --lb-border-danger-muted: var(--lb-red-700);
    --lb-border-danger-subtle: var(--lb-red-800);
    --lb-border-info-muted: var(--lb-blue-700);
    --lb-border-info-subtle: var(--lb-blue-800);
    --lb-data-1: var(--lb-violet-400);
    --lb-data-2: var(--lb-blue-400);
    --lb-data-3: var(--lb-green-400);
    --lb-data-4: var(--lb-yellow-400);
    --lb-data-5: var(--lb-red-400);
    --lb-data-6: var(--lb-neutral-400);
    --lb-data-7: var(--lb-orange-400);
    --lb-data-8: var(--lb-cyan-400);
    --lb-code-1: var(--lb-violet-300);
    --lb-code-2: var(--lb-blue-300);
    --lb-code-3: var(--lb-green-300);
    --lb-code-4: var(--lb-yellow-300);
    --lb-code-5: var(--lb-red-300);
    --lb-code-6: var(--lb-neutral-300);
    --lb-code-7: var(--lb-orange-300);
    --lb-code-8: var(--lb-cyan-300);

    /* Re-declared aliases — force re-substitution against the dark L2
       values above so SECTION-SCOPED dark theming works (not just :root).
       Same var() references as :root; no new tokens. */
    --lb-action-bg-primary-default: var(--lb-bg-accent);
    --lb-action-bg-primary-hover: var(--lb-bg-accent-strong);
    --lb-action-bg-primary-pressed: var(--lb-bg-accent-bolder);
    --lb-action-bg-primary-disabled: var(--lb-bg-disabled);
    --lb-action-fg-primary-default: var(--lb-fg-inverse-strong);
    --lb-action-fg-primary-hover: var(--lb-fg-inverse-strong);
    --lb-action-fg-primary-pressed: var(--lb-fg-inverse-strong);
    --lb-action-fg-primary-disabled: var(--lb-fg-inverse-muted);
    --lb-action-border-primary-default: var(--lb-bg-accent);
    --lb-action-border-primary-hover: var(--lb-bg-accent-strong);
    --lb-action-border-primary-pressed: var(--lb-bg-accent-bolder);
    --lb-action-border-primary-disabled: var(--lb-border-disabled);
    --lb-action-bg-secondary-default: var(--lb-bg-default);
    --lb-action-bg-secondary-hover: var(--lb-bg-strong);
    --lb-action-bg-secondary-pressed: var(--lb-bg-bolder);
    --lb-action-bg-secondary-disabled: var(--lb-bg-disabled);
    --lb-action-fg-secondary-default: var(--lb-fg-default);
    --lb-action-fg-secondary-hover: var(--lb-fg-default);
    --lb-action-fg-secondary-pressed: var(--lb-fg-default);
    --lb-action-fg-secondary-disabled: var(--lb-fg-disabled);
    --lb-action-border-secondary-default: var(--lb-border-strong);
    --lb-action-border-secondary-hover: var(--lb-border-bolder);
    --lb-action-border-secondary-pressed: var(--lb-border-bolder);
    --lb-action-border-secondary-disabled: var(--lb-border-disabled);
    --lb-action-bg-danger-default: var(--lb-bg-danger);
    --lb-action-bg-danger-hover: var(--lb-bg-danger-strong);
    --lb-action-bg-danger-pressed: var(--lb-bg-danger-bolder);
    --lb-action-bg-danger-disabled: var(--lb-bg-disabled);
    --lb-action-fg-danger-default: var(--lb-fg-inverse-strong);
    --lb-action-fg-danger-hover: var(--lb-fg-inverse-strong);
    --lb-action-fg-danger-pressed: var(--lb-fg-inverse-strong);
    --lb-action-fg-danger-disabled: var(--lb-fg-inverse-muted);
    --lb-action-border-danger-default: var(--lb-bg-danger);
    --lb-action-border-danger-hover: var(--lb-bg-danger-strong);
    --lb-action-border-danger-pressed: var(--lb-bg-danger-bolder);
    --lb-action-border-danger-disabled: var(--lb-border-disabled);
    --lb-action-bg-ghost-default: var(--lb-bg-default);
    --lb-action-bg-ghost-hover: var(--lb-bg-strong);
    --lb-action-bg-ghost-pressed: var(--lb-bg-bolder);
    --lb-action-bg-ghost-disabled: var(--lb-bg-disabled);
    --lb-action-fg-ghost-default: var(--lb-fg-default);
    --lb-action-fg-ghost-hover: var(--lb-fg-default);
    --lb-action-fg-ghost-pressed: var(--lb-fg-default);
    --lb-action-fg-ghost-disabled: var(--lb-fg-disabled);
    --lb-action-fg-link-default: var(--lb-fg-accent);
    --lb-action-fg-link-hover: var(--lb-fg-accent-muted);
    --lb-action-fg-link-pressed: var(--lb-fg-accent-subtle);
    --lb-action-fg-link-disabled: var(--lb-fg-disabled);
    --lb-action-bg-selected: var(--lb-bg-accent-muted);
    --lb-action-fg-selected: var(--lb-fg-accent);
    --lb-action-border-selected: var(--lb-border-accent);
    --lb-action-border-focus: var(--lb-border-focus);
    --lb-field-fg-default: var(--lb-fg-default);
    --lb-field-fg-placeholder: var(--lb-fg-subtle);
    --lb-field-fg-label: var(--lb-fg-default);
    --lb-field-fg-hint: var(--lb-fg-muted);
    --lb-field-fg-error: var(--lb-fg-danger);
    --lb-field-fg-success: var(--lb-fg-success);
    --lb-field-fg-disabled: var(--lb-fg-disabled);
    --lb-field-bg-default: var(--lb-bg-default);
    --lb-field-bg-hover: var(--lb-bg-strong);
    --lb-field-bg-disabled: var(--lb-bg-disabled);
    --lb-field-border-default: var(--lb-border-strong);
    --lb-field-border-hover: var(--lb-border-bolder);
    --lb-field-border-focus: var(--lb-border-focus);
    --lb-field-border-error: var(--lb-border-danger);
    --lb-field-border-success: var(--lb-border-success);
    --lb-field-border-disabled: var(--lb-border-disabled);
    --lb-surface-bg-default: var(--lb-bg-default);
    --lb-surface-bg-elevated: var(--lb-bg-strong);
    --lb-surface-bg-overlay: var(--lb-bg-default);
    --lb-surface-bg-backdrop: var(--lb-bg-overlay);
    --lb-surface-border-default: var(--lb-border-default);
    --lb-surface-border-elevated: var(--lb-border-muted);
    --lb-surface-border-overlay: var(--lb-border-default);
    --lb-surface-border-cutout: var(--lb-bg-default);
    --lb-surface-border-cutout-elevated: var(--lb-bg-strong);
  }
}

/* ─── Responsive typography: S ((max-width: 600px)) ─── */
@media (max-width: 600px) {
  html:not([data-typo-preview]) {
    --lb-t-display-xl-font-size: var(--lb-font-size-6xl);
    --lb-t-display-xl-line-height: var(--lb-font-line-height-6xl);
    --lb-t-display-l-font-size: var(--lb-font-size-5xl);
    --lb-t-display-l-line-height: var(--lb-font-line-height-5xl);
    --lb-t-display-m-font-size: var(--lb-font-size-4xl);
    --lb-t-display-m-line-height: var(--lb-font-line-height-4xl);
    --lb-t-display-s-font-size: var(--lb-font-size-3xl);
    --lb-t-display-s-line-height: var(--lb-font-line-height-3xl);
    --lb-t-display-xs-font-size: var(--lb-font-size-2xl);
    --lb-t-display-xs-line-height: var(--lb-font-line-height-2xl);
    --lb-t-heading-xl-font-size: var(--lb-font-size-2xl);
    --lb-t-heading-xl-line-height: var(--lb-font-line-height-2xl);
    --lb-t-heading-l-font-size: var(--lb-font-size-xl);
    --lb-t-heading-l-line-height: var(--lb-font-line-height-xl);
    --lb-t-heading-m-font-size: var(--lb-font-size-l);
    --lb-t-heading-m-line-height: var(--lb-font-line-height-l);
  }
}
