@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&family=Exo:ital,wght@0,100..900;1,100..900&family=Inconsolata:wdth,wght@50..200,200..900&display=swap');
@tailwind base;
@tailwind components;
@tailwind utilities;

:root {
  --font-inter: 'Inter Tight', ui-sans-serif, system-ui;
  --font-exo: 'Exo', 'Inter Tight', ui-sans-serif, system-ui;
  --font-mono: 'Inconsolata', ui-monospace, monospace;

  /* CHORUS Brand CSS Variables - Ultra-Minimalist Implementation */
  /* Core Brand Colors */
  --color-carbon: #000000;
  --color-mulberry: #0b0213;
  --color-walnut: #403730;
  --color-nickel: #c1bfb1;
  
  /* CHORUS Semantic Color Tokens - 8 Color System */
  --chorus-primary: #0b0213;       /* carbon-950 */
  --chorus-secondary: #0b0213;     /* mulberry-950 */
  --chorus-accent: #403730;        /* walnut-900 */
  --chorus-neutral: #c1bfb1;       /* nickel-500 */
  --chorus-info: #3a4654;          /* ocean-900 */
  --chorus-success: #3a4540;       /* eucalyptus-900 */
  --chorus-warning: #6a5c46;       /* sand-900 */
  --chorus-danger: #3e2d2c;        /* coral-900 */
  
  /* Light Theme Variables */
  --bg-primary: #FFFFFF;
  --bg-secondary: #CCCCCC;
  --bg-tertiary: #AAAAAA;
  --bg-accent: #F7F7E2;
  
  --text-primary: #000000;
  --text-secondary: #1A1A1A;
  --text-tertiary: #333333;
  --text-subtle: #666666;
  --text-ghost: #999999;
  
  --border-invisible: #FAFAFA;
  --border-subtle: #F0F0F0;
  --border-defined: #E5E5E5;
  --border-emphasis: #CCCCCC;
  
  --accent-primary: #0b0213; /* Mulberry */
  --accent-secondary: #403730; /* Walnut */
  --accent-system: #5a6c80; /* Ocean */
  
  /* Spacing System */
  --space-micro: 0.25rem; /* 8px */
  --space-sm: 0.5rem; /* 16px */
  --space-md: 1rem; /* 32px */
  --space-lg: 2rem; /* 64px */
  --space-xl: 4rem; /* 128px */
  --space-xxl: 8rem;  /* 256px */
}

/* Dark Theme Variables */
.dark {
  --bg-primary: #000000;
  --bg-secondary: #333333;
  --bg-tertiary: #555555; /* Mulberry */
  --bg-accent: #1a1426;
  
  --text-primary: #FFFFFF;
  --text-secondary: #E0E0E0;
  --text-tertiary: #C0C0C0;
  --text-subtle: #A0A0A0;
  --text-ghost: #808080;
  
  --border-invisible: #1a1a1a;
  --border-subtle: #2a2a2a;
  --border-defined: #3a3a3a;
  --border-emphasis: #4a4a4a;
  
  --accent-primary: #F5F5DC; /* Sand */
  --accent-secondary: #c1bfb1; /* Nickel */
}

/* CHORUS Accessibility Theme System - Complete Color Adaptations */

/* Protanopia (Red-blind) - Ocean/Sand adaptations for maximum clarity */
[data-theme="protanopia"] {
  /* Logo material override */
  --color-ring-primary: #1e40af; /* Blue-800 */
  
  /* Primary brand colors adapted for red-blindness */
  --chorus-primary: #3a4654;       /* ocean-900 replaces carbon */
  --chorus-secondary: #3a4654;     /* ocean-900 replaces mulberry */
  --chorus-accent: #6a5c46;        /* sand-900 warm neutral */
  --chorus-neutral: #c1bfb1;       /* nickel-500 unchanged */
  --chorus-info: #1e40af;          /* ocean-800 enhanced */
  --chorus-success: #6a5c46;       /* sand-900 replaces eucalyptus */
  --chorus-warning: #D0C9BF;       /* sand-400 enhanced */
  --chorus-danger: #4a5867;        /* ocean-800 replaces coral */

  /* Semantic color reassignments */
  --accent-primary: #3a4654;       /* Ocean replaces Mulberry */
  --accent-secondary: #6a5c46;     /* Sand replaces Walnut */
  --accent-system: #1e40af;        /* Enhanced Ocean blue */
}

/* Deuteranopia (Green-blind) - Blue/Yellow enhanced contrast */
[data-theme="deuteranopia"] {
  /* Logo material override */
  --color-ring-primary: #6b21a8; /* Purple-800 */
  
  /* Primary brand colors adapted for green-blindness */
  --chorus-primary: #0b0213;       /* mulberry-950 enhanced */
  --chorus-secondary: #6b21a8;     /* purple-800 distinct */
  --chorus-accent: #1e40af;        /* blue-800 replaces walnut */
  --chorus-neutral: #c1bfb1;       /* nickel-500 unchanged */
  --chorus-info: #1e40af;          /* blue-800 enhanced */
  --chorus-success: #6b21a8;       /* purple-800 replaces eucalyptus */
  --chorus-warning: #F1F0EF;       /* sand-100 high contrast */
  --chorus-danger: #991b1b;        /* red-800 enhanced */

  /* Semantic color reassignments */
  --accent-primary: #6b21a8;       /* Purple primary */
  --accent-secondary: #1e40af;     /* Blue secondary */
  --accent-system: #991b1b;        /* Red system alerts */
}

/* Tritanopia (Blue-blind) - Coral/Eucalyptus substitutions */
[data-theme="tritanopia"] {
  /* Logo material override */
  --color-ring-primary: #991b1b; /* Red-800 */
  
  /* Primary brand colors adapted for blue-blindness */
  --chorus-primary: #000000;       /* carbon-950 unchanged */
  --chorus-secondary: #403730;     /* walnut-900 enhanced */
  --chorus-accent: #991b1b;        /* red-800 replaces blue elements */
  --chorus-neutral: #c1bfb1;       /* nickel-500 unchanged */
  --chorus-info: #991b1b;          /* red-800 replaces ocean */
  --chorus-success: #6a5c46;       /* sand-900 natural green replacement */
  --chorus-warning: #D0C9BF;       /* sand-400 warm warning */
  --chorus-danger: #403730;        /* walnut-900 dark contrast */

  /* Semantic color reassignments */
  --accent-primary: #991b1b;       /* Red replaces blue elements */
  --accent-secondary: #6a5c46;     /* Sand warm accent */
  --accent-system: #403730;        /* Walnut system elements */
}

/* Achromatopsia (Complete color blindness) - High contrast grayscale only */
[data-theme="achromatopsia"] {
  /* Logo material override */
  --color-ring-primary: #374151; /* Gray-700 */
  
  /* Complete grayscale adaptation */
  --chorus-primary: #000000;       /* Pure black */
  --chorus-secondary: #1a1a1a;     /* Carbon-800 */
  --chorus-accent: #666666;        /* Mid gray */
  --chorus-neutral: #808080;       /* Neutral mid-gray */
  --chorus-info: #374151;          /* Gray-700 */
  --chorus-success: #2a2a2a;       /* Dark gray for success */
  --chorus-warning: #a0a0a0;       /* Light gray for warnings */
  --chorus-danger: #1a1a1a;        /* Very dark gray for danger */

  /* High contrast grayscale system */
  --accent-primary: #000000;       /* Pure black */
  --accent-secondary: #666666;     /* Mid-gray */
  --accent-system: #374151;        /* System gray */

  /* Enhanced contrast overrides for all text and UI elements */
  --bg-primary: #ffffff;
  --bg-secondary: #f0f0f0;
  --bg-tertiary: #e0e0e0;
  --bg-accent: #c0c0c0;
  
  --text-primary: #000000;
  --text-secondary: #1a1a1a;
  --text-tertiary: #333333;
  --text-subtle: #666666;
  --text-ghost: #999999;
  
  --border-invisible: #f8f8f8;
  --border-subtle: #e0e0e0;
  --border-defined: #c0c0c0;
  --border-emphasis: #808080;
}



html {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  scroll-behavior: smooth;
}

body {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


/* CHORUS Blog Typography */
.prose {
  @apply max-w-none text-carbon-950 dark:text-carbon-100;
}

.prose h1 {
  @apply text-h2 font-sans font-thin text-carbon-950 dark:text-mulberry-100 mb-8;
}

.prose h2 {
  @apply text-h3 font-logo text-carbon-950 dark:text-mulberry-200 mb-6 mt-12;
}

.prose h3 {
  @apply text-h4 font-sans text-carbon-950 dark:text-mulberry-300 mb-4 mt-8;
}

.prose h4 {
  @apply text-h5 font-sans text-carbon-800 dark:text-mulberry-400 mb-3 mt-6;
}

.prose h5 {
  @apply text-h6 font-sans text-carbon-700 dark:text-mulberry-500 mb-3 mt-6;
}

.prose h6 {
  @apply text-h7 font-sans text-carbon-600 dark:text-mulberry-600 mb-2 mt-4;
}

.prose p {
  @apply text-base leading-relaxed mb-6 text-carbon-800 dark:text-carbon-200;
}

.prose a {
  @apply text-ocean-600 dark:text-ocean-400 hover:text-ocean-800 dark:hover:text-ocean-300 transition-colors underline decoration-ocean-500/30 hover:decoration-ocean-600/50 dark:hover:decoration-ocean-400/50;
}

.prose strong {
  @apply text-carbon-950 dark:text-carbon-100 font-semibold;
}

.prose code {
  @apply bg-carbon-200 dark:bg-carbon-800 text-eucalyptus-700 dark:text-eucalyptus-400 px-2 py-1 rounded-sm font-mono text-sm;
}

.prose pre {
  @apply bg-carbon-100 dark:bg-carbon-900 border border-carbon-300 dark:border-carbon-700 rounded-lg overflow-x-auto p-4 mb-6;
}

.prose pre code {
  @apply bg-transparent text-carbon-950 dark:text-carbon-200 p-0;
}

.prose blockquote {
  @apply border-l-4 border-carbon-400 dark:border-mulberry-600 pl-6 italic text-carbon-600 dark:text-carbon-300 my-6;
}

.prose ul {
  @apply list-disc pl-6 mb-6 space-y-2;
}

.prose ol {
  @apply list-decimal pl-6 mb-6 space-y-2;
}

.prose li {
  @apply text-carbon-800 dark:text-carbon-200;
}

/* Blog-specific utilities */
.blog-container {
  @apply max-w-4xl mx-auto px-4 sm:px-6 lg:px-8;
}

.blog-meta {
  @apply text-sm text-carbon-600 dark:text-carbon-500 flex items-center space-x-4;
}

.blog-tag {
  @apply inline-block bg-carbon-200 dark:bg-mulberry-800 text-carbon-700 dark:text-mulberry-200 px-3 py-1 rounded-full text-xs font-medium;
}

/* Reading progress indicator */
.reading-progress {
  @apply fixed top-0 left-0 w-full h-1 bg-ocean-600 dark:bg-mulberry-600 transform origin-left scale-x-0 transition-transform z-50;
}

a {
  text-decoration: none;
  text-decoration-line: none;
}

/* Utilities */
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
