:root{
  /* ---- Base palette (from the brand sheet) ---- */
  --ep-black:#000000;
  --ep-yellow:#E6E600;      /* Jaune Empire — RVB 230 230 0 */
  --ep-red:#E10600;         /* Rouge — RVB 225 6 0 */
  --ep-grey:#E5E5E5;        /* Gris — RVB 229 229 229 */
  --ep-white:#FFFFFF;

  /* ---- Neutral ramp (black-first interface) ---- */
  --n-0:#000000;
  --n-1:#0A0A0A;
  --n-2:#121212;
  --n-3:#1C1C1C;
  --n-4:#262626;
  --n-5:#3A3A3A;
  --n-6:#585858;
  --n-7:#8A8A8A;
  --n-8:#B4B4B4;
  --n-9:#D2D2D2;
  --n-10:#E5E5E5;
  --n-11:#F2F2F2;
  --n-12:#FFFFFF;

  /* ---- Accent shades (hover / press only — never new hues) ---- */
  --yellow-bright:#F2F200;
  --yellow-deep:#C4C400;
  --red-bright:#FF2015;
  --red-deep:#B00500;

  /* ---- Semantic: surfaces ---- */
  --surface-page:#FFFFFF;
  --surface-page-inverse:#000000;
  --surface-card:#FFFFFF;
  --surface-card-inverse:#0A0A0A;
  --surface-sunken:#F2F2F2;
  --surface-raised-inverse:#1C1C1C;
  --surface-accent:#E6E600;
  --surface-danger:#E10600;
  --surface-overlay:rgba(0,0,0,.86);

  /* ---- Semantic: text ---- */
  --text-body:#1C1C1C;
  --text-strong:#000000;
  --text-muted:#585858;
  --text-faint:#8A8A8A;
  --text-inverse:#FFFFFF;
  --text-inverse-muted:#B4B4B4;
  --text-accent:#C4C400;        /* yellow readable on white */
  --text-accent-inverse:#E6E600; /* yellow on black */
  --text-danger:#E10600;
  --text-on-accent:#000000;
  --text-on-danger:#FFFFFF;

  /* ---- Semantic: lines ---- */
  --line-hair:#D2D2D2;
  --line-strong:#000000;
  --line-hair-inverse:#3A3A3A;
  --line-strong-inverse:#FFFFFF;
  --line-accent:#E6E600;
  --line-danger:#E10600;
  --line-blueprint:rgba(0,0,0,.10);
  --line-blueprint-inverse:rgba(230,230,0,.14);

  /* ---- Semantic: states ---- */
  --state-focus:#E6E600;
  --state-disabled-bg:#E5E5E5;
  --state-disabled-text:#8A8A8A;
  --state-success:#1C1C1C;   /* the system has no green: success reads as solid ink + check */
  --state-warning:#E6E600;
  --state-error:#E10600;
}
