/**
 * serve.lazare.ai — Brutalist Academic design tokens.
 * Single source of truth: every component reads var(--bru-*). Palette below is
 * the only thing to change to re-skin. Spacing / shadow / radius scales are the
 * brutalist signature — leave them intact.
 */

:root {
  /* ── PALETTE ─────────────────────────────────────────────────────────── */
  --bru-canvas:   #F4F1E9;  /* tinted paper, not pure white */
  --bru-ink:      #14110D;  /* structure: borders, text, HARD-SHADOW color */
  --bru-accent:   #E5421F;  /* vermilion — brand splash / editorial marks */
  --bru-action:   #1F5C54;  /* deep teal — filled interactive / CTA */
  --bru-critical: #4D1521;  /* destructive / truly critical */
  --bru-success:  #059669;
  --bru-warning:  #B45309;  /* amber/ochre channel — never accent/action */
  --bru-error:    #DC2626;

  --bru-canvas-rgb:   244 241 233;
  --bru-ink-rgb:      20 17 13;
  --bru-accent-rgb:   229 66 31;
  --bru-action-rgb:   31 92 84;
  --bru-critical-rgb: 77 21 33;
  --bru-warning-rgb:  180 83 9;

  /* ── DERIVED SURFACES ────────────────────────────────────────────────── */
  --bru-paper:        var(--bru-canvas);
  --bru-modal:        var(--bru-canvas);
  --bru-panel:        rgb(var(--bru-canvas-rgb) / 0.64);
  --bru-panel-muted:  rgb(var(--bru-canvas-rgb) / 0.38);
  --bru-button-primary-text: #FFFFFF;

  --bru-ink-05:     rgb(var(--bru-ink-rgb) / 0.05);
  --bru-ink-10:     rgb(var(--bru-ink-rgb) / 0.10);
  --bru-ink-20:     rgb(var(--bru-ink-rgb) / 0.20);
  --bru-ink-30:     rgb(var(--bru-ink-rgb) / 0.30);
  --bru-ink-40:     rgb(var(--bru-ink-rgb) / 0.40);
  --bru-ink-60:     rgb(var(--bru-ink-rgb) / 0.60);
  --bru-ink-70:     rgb(var(--bru-ink-rgb) / 0.70);
  --bru-action-05:  rgb(var(--bru-action-rgb) / 0.05);
  --bru-action-10:  rgb(var(--bru-action-rgb) / 0.10);
  --bru-action-20:  rgb(var(--bru-action-rgb) / 0.20);
  --bru-accent-10:  rgb(var(--bru-accent-rgb) / 0.10);
  --bru-warning-10: rgb(var(--bru-warning-rgb) / 0.10);
  --bru-warning-20: rgb(var(--bru-warning-rgb) / 0.20);

  --bru-text-primary:   var(--bru-ink);
  --bru-text-muted:     var(--bru-ink-60);
  --bru-border:         var(--bru-ink);
  --bru-border-subtle:  var(--bru-ink-30);

  /* ── TYPOGRAPHY ──────────────────────────────────────────────────────── */
  --bru-font-sans:  "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --bru-font-serif: "IBM Plex Serif", Georgia, "Times New Roman", serif;
  --bru-font-mono:  "IBM Plex Mono", ui-monospace, "Courier New", monospace;

  --bru-text-xs:   0.75rem;
  --bru-text-sm:   0.875rem;
  --bru-text-base: 1rem;
  --bru-text-lg:   1.125rem;
  --bru-text-xl:   1.25rem;
  --bru-text-2xl:  1.5rem;
  --bru-text-3xl:  1.875rem;
  --bru-text-4xl:  2.25rem;
  --bru-text-5xl:  3rem;
  --bru-text-6xl:  3.75rem;

  --bru-font-normal:    400;
  --bru-font-medium:    500;
  --bru-font-semibold:  600;
  --bru-font-bold:      700;
  --bru-font-extrabold: 800;

  --bru-tracking-tightest: -0.02em;
  --bru-tracking-tight:    -0.01em;
  --bru-tracking-normal:    0;
  --bru-tracking-label:     0.08em;
  --bru-tracking-wide:      0.1em;

  --bru-leading-tight:   1.05;
  --bru-leading-snug:    1.25;
  --bru-leading-normal:  1.5;
  --bru-leading-relaxed: 1.625;
  --bru-leading-loose:   2;

  /* ── SPACING (4px scale) ─────────────────────────────────────────────── */
  --bru-space-0: 0;
  --bru-space-1: 0.25rem;
  --bru-space-2: 0.5rem;
  --bru-space-3: 0.75rem;
  --bru-space-4: 1rem;
  --bru-space-5: 1.25rem;
  --bru-space-6: 1.5rem;
  --bru-space-8: 2rem;
  --bru-space-10: 2.5rem;
  --bru-space-12: 3rem;
  --bru-space-16: 4rem;
  --bru-space-20: 5rem;

  /* ── BORDERS & RADIUS ────────────────────────────────────────────────── */
  --bru-border-width:   1px;
  --bru-border-width-2: 2px;
  --bru-radius-none: 0;
  --bru-radius-sm:   2px;
  --bru-radius-md:   4px;
  --bru-radius-lg:   8px;
  --bru-radius-full: 9999px;

  /* ── SHADOWS (hard, 0 blur, ink) ─────────────────────────────────────── */
  --bru-shadow-brutal:    6px 6px 0 0 var(--bru-ink);
  --bru-shadow-brutal-sm: 4px 4px 0 0 var(--bru-ink);
  --bru-shadow-brutal-xs: 2px 2px 0 0 var(--bru-ink);
  --bru-shadow-brutal-action:   4px 4px 0 0 var(--bru-action);
  --bru-shadow-brutal-critical: 4px 4px 0 0 var(--bru-critical);

  /* ── MOTION ──────────────────────────────────────────────────────────── */
  --bru-duration-fast:    100ms;
  --bru-duration-default: 150ms;
  --bru-duration-slow:    300ms;
  --bru-ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --bru-hover-lift:        -2px;
  --bru-press-translation:  1px;

  /* ── LAYOUT ──────────────────────────────────────────────────────────── */
  --bru-prose-max:    40rem;
  --bru-header-height: 4rem;
  --bru-grid-size:    24px;

  --bru-z-dropdown: 10;
  --bru-z-sticky:   20;
  --bru-z-overlay:  30;
  --bru-z-modal:    40;
  --bru-z-popover:  50;
  --bru-z-tooltip:  60;
}
