:root {
  /* ── Greens: a mixed range, from forest ink to spring leaf ── */
  --green-950: #16241C;   /* forest ink — logo dark, primary text */
  --green-900: #22352B;
  --green-800: #2F4A3A;   /* primary brand green */
  --green-700: #3E6049;
  --green-600: #4F7A5B;
  --green-500: #6A9673;   /* leaf — accents, links on light */
  --green-400: #8FB394;
  --green-300: #B4CDB7;
  --green-200: #D3E2D4;   /* sage tint */
  --green-100: #E8EFE8;
  --green-050: #F1F5F0;

  /* ── Neutrals: warm paper, never pure white or black ── */
  --paper-000: #FBF9F4;   /* logo light — page ground */
  --paper-100: #F4F1EA;
  --paper-200: #ECE7DD;
  --paper-300: #DCD6C9;
  --stone-400: #B8B1A3;
  --stone-500: #8C8577;
  --stone-600: #6B655A;
  --stone-700: #4A463F;

  /* ── Clay: the single warm accent. Used sparingly — one dot of it per view ── */
  --clay-500: #C2704E;
  --clay-400: #D48A6A;
  --clay-100: #F3E2D9;

  /* ── Semantic ── */
  --success: #4F7A5B;
  --warning: #B98A3A;
  --error:   #A9443A;
  --info:    #4E6E8A;

  /* ── Aliases: light theme (default) ── */
  --bg-page:        var(--paper-000);
  --bg-subtle:      var(--paper-100);
  --bg-muted:       var(--paper-200);
  --bg-inverse:     var(--green-950);
  --bg-brand:       var(--green-800);
  --bg-brand-tint:  var(--green-100);
  --bg-accent-tint: var(--clay-100);

  --text-primary:   var(--green-950);
  --text-secondary: var(--stone-600);
  --text-tertiary:  var(--stone-500);
  --text-on-brand:  var(--paper-000);
  --text-on-inverse:var(--paper-000);
  --text-accent:    var(--clay-500);
  --text-link:      var(--green-700);
  --text-link-hover:var(--green-950);

  --line-hair:      var(--paper-300);   /* 1px rules, dividers */
  --line-strong:    var(--green-950);   /* 1px rules on emphasis */
  --line-on-inverse:rgba(251,249,244,0.28);

  --dot-brand:      var(--green-800);
  --dot-accent:     var(--clay-500);

  --surface-card:        var(--paper-000);
  --surface-card-border: var(--paper-300);
  --surface-overlay:     rgba(22,36,28,0.55);

  --focus-ring: 0 0 0 2px var(--paper-000), 0 0 0 4px var(--green-700);
}

/* Inverse theme: forest ground — used for manifesto / membership sections */
[data-theme="inverse"] {
  --bg-page:        var(--green-950);
  --bg-subtle:      var(--green-900);
  --bg-muted:       var(--green-800);
  --bg-brand:       var(--paper-000);
  --bg-brand-tint:  var(--green-800);
  --text-primary:   var(--paper-000);
  --text-secondary: var(--green-300);
  --text-tertiary:  var(--green-400);
  --text-on-brand:  var(--green-950);
  --text-link:      var(--green-300);
  --text-link-hover:var(--paper-000);
  --line-hair:      var(--line-on-inverse);
  --line-strong:    var(--paper-000);
  --dot-brand:      var(--paper-000);
  --surface-card:        var(--green-900);
  --surface-card-border: var(--green-800);
  --focus-ring: 0 0 0 2px var(--green-950), 0 0 0 4px var(--green-300);
}
