:root {
  color-scheme: light;

  /* RGB triplets for alpha-friendly usage */
  --color-bg-rgb: 248 245 239;
  --color-surface-rgb: 255 255 255;
  --color-surface-muted-rgb: 242 237 225;
  --color-overlay-rgb: 5 7 10;
  --color-text-rgb: 28 27 25;
  --color-text-muted-rgb: 94 90 84;
  --color-border-rgb: 28 27 26;
  --color-accent-rgb: 231 168 88;
  --color-accent-contrast-rgb: 29 18 7;
  --color-success-rgb: 16 118 83;
  --color-warning-rgb: 202 118 14;
  --color-danger-rgb: 176 32 32;

  /* Hex fallbacks for environments without rgb(var()) support */
  --color-bg-hex: #f8f5ef;
  --color-surface-hex: #ffffff;
  --color-surface-muted-hex: #f2ede1;
  --color-overlay-hex: #05070a;
  --color-text-hex: #1c1b19;
  --color-text-muted-hex: #5e5a54;
  --color-border-hex: #1c1b1a;
  --color-accent-hex: #e7a858;
  --color-accent-contrast-hex: #1d1207;
  --color-success-hex: #107653;
  --color-warning-hex: #ca760e;
  --color-danger-hex: #b02020;

  /* Derived tokens */
  --color-bg: rgb(var(--color-bg-rgb));
  --color-surface: rgb(var(--color-surface-rgb));
  --color-surface-muted: rgb(var(--color-surface-muted-rgb));
  --color-overlay: rgba(var(--color-overlay-rgb) / 0.72);
  --color-text: rgb(var(--color-text-rgb));
  --color-text-muted: rgb(var(--color-text-muted-rgb));
  --color-border: rgba(var(--color-border-rgb) / 0.12);
  --color-chip-bg: rgb(var(--color-surface-muted-rgb));
  --color-chip-border: rgba(var(--color-border-rgb) / 0.18);
  --color-accent: rgb(var(--color-accent-rgb));
  --color-accent-contrast: rgb(var(--color-accent-contrast-rgb));
  --color-focus-ring: rgba(var(--color-accent-rgb) / 0.85);
  --color-ring-offset: rgb(255 255 255);
  --glow-ring-width: 2px;
  --glow-opacity-rest: 0.22;
  --glow-opacity-hover: 0.45;
  --glow-shadow-rest: 0 24px 55px -32px rgba(var(--color-border-rgb) / 0.45);
  --glow-shadow-hover: 0 36px 70px -30px rgba(var(--color-border-rgb) / 0.55);
  --card-glow-filter: url('#card-glow-warm');
  --glow-border: rgb(var(--color-accent-rgb));
  --glow-highlight: rgba(var(--color-accent-rgb) / 0.55);
  --glow-bg: rgba(var(--color-bg-rgb) / 0.75);
  --glow-overlay: rgba(255 255 255 / 0.35);
  --faq-circle-color: rgba(255 255 255 / 0.85);
  --faq-circle-overlay: rgba(231 168 88 / 0.35);

  --shadow-soft: 0 14px 30px -14px rgba(37 37 37 / 0.35), 0 12px 24px -8px rgba(198 139 61 / 0.35);
  --shadow-brand: 0 24px 60px -30px rgba(37 37 37 / 0.45);
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Poppins', 'Inter', sans-serif;
}

:root[data-theme='dark'] {
  color-scheme: dark;

  /* Brand-aligned dark neutrals (charcoal/graphite/steel) */
  --color-bg-rgb: 37 37 37; /* #252525 */
  --color-surface-rgb: 58 61 65; /* #3A3D41 */
  --color-surface-muted-rgb: 61 64 67; /* #3D4043 */
  --color-overlay-rgb: 0 0 0; /* overlay remains black for clarity */
  --color-text-rgb: 247 247 247; /* #F7F7F7 */
  --color-text-muted-rgb: 155 156 155; /* #9B9C9B */
  --color-border-rgb: 94 94 92; /* #5E5E5C */
  --color-accent-contrast-rgb: 27 18 6; /* #1B1206 */

  --color-bg-hex: #252525;
  --color-surface-hex: #3a3d41;
  --color-surface-muted-hex: #3d4043;
  --color-text-hex: #f7f7f7;
  --color-text-muted-hex: #9b9c9b;
  --color-border-hex: #5e5e5c;
  --color-accent-contrast-hex: #1b1206;

  --color-overlay: rgba(var(--color-overlay-rgb) / 0.8);
  --color-border: rgba(var(--color-border-rgb) / 0.35);
  --color-chip-bg: rgba(255 255 255 / 0.06);
  --color-chip-border: rgba(255 255 255 / 0.16);
  --color-ring-offset: rgb(37 37 37);
  --glow-ring-width: 2px;
  --glow-opacity-rest: 0.26;
  --glow-opacity-hover: 0.5;
  --glow-shadow-rest: 0 30px 60px -30px rgba(0 0 0 / 0.65);
  --glow-shadow-hover: 0 42px 80px -32px rgba(0 0 0 / 0.75);
  --card-glow-filter: url('#card-glow-warm');
  --glow-border: rgb(var(--color-accent-rgb));
  --glow-highlight: rgba(255 255 255 / 0.12);
  --glow-bg: rgba(var(--color-surface-rgb) / 0.45);
  --glow-overlay: rgba(255 255 255 / 0.12);
  --faq-circle-color: rgba(255 255 255 / 0.35);
  --faq-circle-overlay: rgba(231 168 88 / 0.25);

  --shadow-soft: 0 20px 45px -30px rgba(0 0 0 / 0.85);
  --shadow-brand: 0 40px 65px -35px rgba(0 0 0 / 0.8);
}

@media (prefers-contrast: more) {
  :root {
    --color-border: rgba(var(--color-border-rgb) / 0.24);
    --color-chip-border: rgba(var(--color-border-rgb) / 0.32);
    --color-focus-ring: rgba(var(--color-accent-rgb) / 1);
  }

  :root[data-theme='dark'] {
    --color-border: rgba(var(--color-border-rgb) / 0.55);
  }
}

@media (forced-colors: active) {
  :root {
    --color-bg: Canvas;
    --color-surface: Canvas;
    --color-surface-muted: Canvas;
    --color-overlay: rgba(0 0 0 / 0.5);
    --color-text: CanvasText;
    --color-text-muted: CanvasText;
    --color-border: CanvasText;
    --color-chip-bg: Canvas;
    --color-chip-border: CanvasText;
    --color-accent: Highlight;
    --color-accent-contrast: HighlightText;
    --color-focus-ring: Highlight;
    --color-ring-offset: Canvas;
    --shadow-soft: none;
    --shadow-brand: none;
  }
}
