:root {
    /* Primary colors - Deep abyssal blue-green (Cthulhu's domain) */
    --color-primary-50: #E6F7F7;
    --color-primary-100: #C0EAE9;
    --color-primary-200: #93D9DA;
    --color-primary-300: #64C8C8;
    --color-primary-400: #3EAFB0;
    --color-primary-500: #1A9697;
    --color-primary-600: #137C7D;
    --color-primary-700: #0D6364;
    --color-primary-800: #074A4B;
    --color-primary-900: #043233;
    --color-primary-950: #021A1A;

    /* Secondary colors - Aged parchment/manuscript tones */
    --color-secondary-50: #FCFAF6;
    --color-secondary-100: #F7F2E8;
    --color-secondary-200: #F0E6D1;
    --color-secondary-300: #E5D3B3;
    --color-secondary-400: #D4BA8C;
    --color-secondary-500: #C3A06C;
    --color-secondary-600: #A88552;
    --color-secondary-700: #8C6D3F;
    --color-secondary-800: #71562F;
    --color-secondary-900: #574222;
    --color-secondary-950: #2B2113;

    /* Accent colors - Eldritch purple (cosmic energy) */
    --color-accent-50: #F5EEFA;
    --color-accent-100: #E9D5F4;
    --color-accent-200: #D9B6ED;
    --color-accent-300: #C28EE3;
    --color-accent-400: #A95FD6;
    --color-accent-500: #8F3BC7;
    --color-accent-600: #752DB3;
    --color-accent-700: #5C2090;
    --color-accent-800: #45186D;
    --color-accent-900: #30104A;
    --color-accent-950: #1A0827;

    /* Status colors */
    --color-success-50: #EDF9F0;
    --color-success-100: #D2EDD9;
    --color-success-200: #A9DDB7;
    --color-success-300: #7CC993;
    --color-success-400: #4FB26C;
    --color-success-500: #2C9D49;
    --color-success-600: #218239;
    --color-success-700: #17682B;
    --color-success-800: #104F1F;
    --color-success-900: #0A3614;
    --color-success-950: #051D0A;

    --color-warning-50: #FDF4E7;
    --color-warning-100: #FBE3C2;
    --color-warning-200: #F6CA8B;
    --color-warning-300: #F2AE54;
    --color-warning-400: #ED9220;
    --color-warning-500: #D97706;
    --color-warning-600: #B36306;
    --color-warning-700: #8C4E05;
    --color-warning-800: #663904;
    --color-warning-900: #402302;
    --color-warning-950: #221301;

    --color-error-50: #FBECEC;
    --color-error-100: #F6D0D1;
    --color-error-200: #EEA7A8;
    --color-error-300: #E67779;
    --color-error-400: #DD4548;
    --color-error-500: #C71D20;
    --color-error-600: #A8191B;
    --color-error-700: #891416;
    --color-error-800: #680F11;
    --color-error-900: #460A0B;
    --color-error-950: #250506;

    --color-info-50: #EEF3FB;
    --color-info-100: #D5E3F6;
    --color-info-200: #AECCEF;
    --color-info-300: #82AFE6;
    --color-info-400: #5690DB;
    --color-info-500: #2A6BC9;
    --color-info-600: #2158AF;
    --color-info-700: #194492;
    --color-info-800: #112F70;
    --color-info-900: #0A1E4A;
    --color-info-950: #050F27;

    /* Typography variables */
    --font-family-primary: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --font-family-serif: 'Bookman Old Style', 'Book Antiqua', 'Palatino Linotype', Georgia, serif;
    --font-family-mono: 'JetBrains Mono', 'Courier New', Courier, monospace;

    /* Font sizes */
    --font-size-xs: 0.75rem; /* 12px */
    --font-size-sm: 0.875rem; /* 14px */
    --font-size-base: 1rem; /* 16px */
    --font-size-lg: 1.125rem; /* 18px */
    --font-size-xl: 1.25rem; /* 20px */
    --font-size-2xl: 1.5rem; /* 24px */
    --font-size-3xl: 1.875rem; /* 30px */
    --font-size-4xl: 2.25rem; /* 36px */
    --font-size-5xl: 3rem; /* 48px */

    /* Line heights */
    --line-height-none: 1;
    --line-height-tight: 1.25;
    --line-height-snug: 1.375;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.625;
    --line-height-loose: 2;

    /* Font weights */
    --font-weight-thin: 100;
    --font-weight-extralight: 200;
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --font-weight-black: 900;

    /* Letter spacing */
    --letter-spacing-tighter: -0.05em;
    --letter-spacing-tight: -0.025em;
    --letter-spacing-normal: 0em;
    --letter-spacing-wide: 0.025em;
    --letter-spacing-wider: 0.05em;
    --letter-spacing-widest: 0.1em;
}

/* Semantic color variables */
:root {
    /* Background colors */
    --bg-primary: var(--color-primary-500);
    --bg-secondary: var(--color-secondary-500);
    --bg-accent: var(--color-accent-500);
    --bg-success: var(--color-success-500);
    --bg-warning: var(--color-warning-500);
    --bg-error: var(--color-error-500);
    --bg-info: var(--color-info-500);

    /* Text colors */
    --text-primary: var(--color-primary-950);
    --text-secondary: var(--color-secondary-950);
    --text-accent: var(--color-accent-500);
    --text-success: var(--color-success-500);
    --text-warning: var(--color-warning-500);
    --text-error: var(--color-error-500);
    --text-info: var(--color-info-500);

    /* Border colors */
    --border-primary: var(--color-primary-500);
    --border-secondary: var(--color-secondary-500);
    --border-accent: var(--color-accent-500);
    --border-success: var(--color-success-500);
    --border-warning: var(--color-warning-500);
    --border-error: var(--color-error-500);
    --border-info: var(--color-info-500);
}

/* Additional semantic UI variables for navigation and components */
:root {
    /* Layout and spacing */
    --cm-spacing-1: 0.25rem;
    --cm-spacing-2: 0.5rem;
    --cm-spacing-3: 0.75rem;
    --cm-spacing-4: 1rem;
    --cm-spacing-6: 1.5rem;
    --cm-spacing-8: 2rem;

    /* Border radius */
    --cm-radius-sm: 0.125rem;
    --cm-radius-md: 0.375rem;
    --cm-radius-lg: 0.5rem;
    --cm-radius-xl: 0.75rem;
    --cm-radius-full: 9999px;

    /* Shadows */
    --cm-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --cm-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --cm-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --cm-shadow-error: 0 4px 12px rgba(199, 29, 32, 0.25);

    /* UI semantic colors */
    --cm-background: #ffffff;
    --cm-background-alpha: rgba(255, 255, 255, 0.95);
    --cm-bg-card: #ffffff;
    --cm-bg-muted: #f8fafc;
    --cm-text-foreground: #0f172a;
    --cm-text-muted: #64748b;
    --cm-border-color: #e2e8f0;
    --cm-border-color-hover: #cbd5e1;
    --cm-overlay: rgba(0, 0, 0, 0.5);

    /* Gradients */
    --cm-gradient-primary: linear-gradient(135deg, var(--color-primary-500) 0%, var(--color-accent-500) 100%);
    --cm-gradient-error: linear-gradient(135deg, var(--color-error-600) 0%, var(--color-error-500) 100%);
}

/* Utility classes for design system tokens */
.cm-text-foreground {
    color: var(--cm-text-foreground);
}

.cm-text-muted {
    color: var(--cm-text-muted);
}

.cm-text-primary {
    color: var(--color-primary-500);
}

.cm-text-primary-dark {
    color: var(--color-primary-700);
}

.cm-bg-card {
    background-color: var(--cm-bg-card);
}

.cm-bg-muted {
    background-color: var(--cm-bg-muted);
}

.cm-border-color {
    border-color: var(--cm-border-color);
}

.cm-shadow-sm {
    box-shadow: var(--cm-shadow-sm);
}

.cm-shadow-lg {
    box-shadow: var(--cm-shadow-lg);
}

.cm-text-gradient-primary {
    background: var(--cm-gradient-primary);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Typography Classes */

/* Heading Classes */
.cm-h1 {
    font-family: var(--font-family-serif);
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-tight);
    margin-bottom: 1rem;
    color: var(--color-primary-950);
}

.cm-h2 {
    font-family: var(--font-family-serif);
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-tight);
    margin-bottom: 0.875rem;
    color: var(--color-primary-950);
}

.cm-h3 {
    font-family: var(--font-family-serif);
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-snug);
    margin-bottom: 0.75rem;
    color: var(--color-primary-950);
}

.cm-h4 {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-snug);
    margin-bottom: 0.75rem;
    color: var(--color-primary-950);
}

.cm-h5 {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
    margin-bottom: 0.5rem;
    color: var(--color-primary-950);
}

.cm-h6 {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
    margin-bottom: 0.5rem;
    color: var(--color-primary-950);
}

/* Text Size Classes */
.cm-text-xs {
    font-size: var(--font-size-xs);
    line-height: var(--line-height-normal);
}

.cm-text-sm {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-normal);
}

.cm-text-base {
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
}

.cm-text-lg {
    font-size: var(--font-size-lg);
    line-height: var(--line-height-normal);
}

.cm-text-xl {
    font-size: var(--font-size-xl);
    line-height: var(--line-height-normal);
}

/* Text Style Classes */
.cm-text-body {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-relaxed);
    color: #000000;
}

.cm-text-body-lg {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-lg);
    line-height: var(--line-height-relaxed);
    color: #000000;
}

.cm-text-subtle {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-normal);
    color: #000000;
}

.cm-text-emphasis {
    font-weight: var(--font-weight-semibold);
}

.cm-text-accent {
    color: var(--color-accent-600);
    font-weight: var(--font-weight-medium);
}

.cm-text-code {
    font-family: var(--font-family-mono);
    font-size: var(--font-size-sm);
    background-color: var(--color-secondary-100);
    padding: 0.125rem 0.25rem;
    border-radius: 0.25rem;
}

.cm-caption {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-snug);
    color: #000000;
}

/* Responsive Typography - Mobile First */
@media screen and (max-width: 640px) {
    .cm-h1 {
        font-size: var(--font-size-4xl);
    }

    .cm-h2 {
        font-size: var(--font-size-3xl);
    }

    .cm-h3 {
        font-size: var(--font-size-2xl);
    }

    .cm-h4 {
        font-size: var(--font-size-xl);
    }

    .cm-h5 {
        font-size: var(--font-size-lg);
    }

    .cm-h6 {
        font-size: var(--font-size-base);
    }
}
