:root {
    /* Typography */
    --font-family-base: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --font-family-heading: 'Times New Roman', Times, serif;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* Type scale */
    --font-size-2xs: 12px; /* captions, badges */
    --font-size-xs: 13px;  /* secondary labels */
    --font-size-sm: 14px;  /* body text, form labels */
    --font-size-md: 16px;  /* comfortable body */
    --font-size-lg: 18px;  /* section helpers */
    --font-size-xl: 20px;  /* minor headings */
    --font-size-2xl: 24px; /* card titles */
    --font-size-3xl: 28px; /* section headings */
    --font-size-4xl: 32px; /* page headings */
    --font-size-5xl: 36px; /* hero subheadings */
    --font-size-6xl: 48px; /* hero headings */
    --font-size-7xl: 64px; /* display hero */

    /* Line heights */
    --line-height-tight: 1.1;
    --line-height-snug: 1.3;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.6;
    --line-height-loose: 1.7;
    --line-height-base: var(--line-height-relaxed);
    --line-height-heading: var(--line-height-tight);

    /* Layout */
    --layout-max-width: 1200px;

    /* Spacing */
    --spacing-3xs: 2px;
    --spacing-2xs: 4px;
    --spacing-xs: 8px;
    --spacing-sm: 12px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-2xl: 40px;
    --spacing-3xl: 48px;
    --spacing-4xl: 64px;
    --spacing-5xl: 80px;

    /* Radii */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-pill: 999px;

    /* Base palette */
    --color-surface: #ffffff;
    --color-surface-rgb: 255, 255, 255;
    --color-surface-muted: #f8f9fa;
    --color-surface-muted-rgb: 248, 249, 250;
    --color-surface-ghost: #f8fafc;
    --color-surface-faint: #fcfcfc;
    --color-surface-alt: #f6f8fa;
    --color-surface-soft: #ecf0f1;
    --color-surface-quiet: #f3f4f6;
    --color-surface-hover: #f5f7fa;

    --color-border: #e0e6ed;
    --color-border-subtle: #e6e8eb;
    --color-border-contrast: #d0d7de;
    --color-border-muted: #ddd;
    --color-border-alt: #e9ecef;
    --color-divider: #f1f3f4;

    --color-ink: #2c3e50;
    --color-ink-rgb: 44, 62, 80;
    --color-ink-deep: #34495e;
    --color-ink-deep-rgb: 52, 73, 94;
    --color-ink-calm: #4b5563;
    --color-ink-muted: #7f8c8d;
    --color-ink-muted-rgb: 127, 140, 141;
    --color-ink-tertiary: #6c757d;
    --color-ink-soft: #95a5a6;
    --color-ink-inverse: #ffffff;

    --color-primary: #3498db;
    --color-primary-rgb: 52, 152, 219;
    --color-primary-strong: #2980b9;
    --color-primary-deep: #1e3a8a;
    --color-primary-surface: #e8f4fd;
    --color-primary-tint: #eef5ff;
    --gradient-accent-start: #667eea;
    --gradient-accent-end: #764ba2;

    --color-success: #27ae60;
    --color-success-rgb: 39, 174, 96;
    --color-warning: #f39c12;
    --color-warning-rgb: 243, 156, 18;
    --color-danger: #e74c3c;
    --color-danger-rgb: 231, 76, 60;
    --color-danger-strong: #c0392b;
    --color-disabled: #bdc3c7;

    --color-success-bg: #d4edda;
    --color-success-border: #c3e6cb;
    --color-success-text: #155724;
    --color-success-soft: #e8f5e8;

    --color-danger-bg: #f8d7da;
    --color-danger-border: #f5c6cb;
    --color-danger-text: #721c24;

    --color-warning-bg: #fff3cd;
    --color-warning-border: #ffeaa7;
    --color-warning-text: #856404;

    --color-info-bg: #d1ecf1;
    --color-info-border: #bee5eb;
    --color-info-text: #0c5460;

    --color-trial-bg: #fff5e6;
    --color-trial-hover: #ffe9cc;
    --color-trial-border: #f5cba7;
    --color-trial-text: #d35400;
    --color-trial-text-strong: #c0392b;

    --color-code-surface: #f4f6f8;

    /* Shadows */
    --shadow-xs: 0 1px 2px rgba(17, 24, 39, 0.06);
    --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 20px rgba(var(--color-primary-rgb), 0.1);
    --shadow-lg: 0 10px 24px rgba(0, 0, 0, 0.12);
    --shadow-focus-primary: 0 0 0 3px rgba(var(--color-primary-rgb), 0.1);

    /* Motion */
    --transition-base: 0.3s ease;
}
