:root {
  --dark0_hard: #1d2021;
  --dark0: #282828;
  --dark0-soft: #32302f;
  --dark1: #3c3836;
  --dark2: #504945;
  --dark3: #665c54;
  --dark4: #7c6f64;

  --light0_hard: #f9f5d7;
  --light0:       #fbf1c7;
  --light0_soft: #f2e5bc;
  --light1:       #ebdbb2;
  --light2:       #d5c4a1;
  --light3:       #bdae93;
  --light4:       #a89984;

  --bright_red:    #fb4934;
  --bright_green:  #b8bb26;
  --bright_yellow: #fabd2f;
  --bright_blue:   #83a598;
  --bright_purple: #d3869b;
  --bright_aqua:   #8ec07c;
  --bright_orange: #fe8019;

  --neutral_red:    #cc241d;
  --neutral_green:  #98971a;
  --neutral_yellow: #d79921;
  --neutral_blue:   #458588;
  --neutral_purple: #b16286;
  --neutral_aqua:   #689d6a;
  --neutral_orange: #d65d0e;

  --faded_red:    #9d0006;
  --faded_green:  #79740e;
  --faded_yellow: #b57614;
  --faded_blue:   #076678;
  --faded_purple: #8f3f71;
  --faded_aqua:   #427b58;
  --faded_orange: #af3a03;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg0: var(--dark0);
    --bg1: var(--dark1);
    --bg2: var(--dark2);
    --bg3: var(--dark3);
    --bg4: var(--dark4);

    --fg0: var(--light0);
    --fg1: var(--light1);
    --fg2: var(--light2);
    --fg3: var(--light3);
    --fg4: var(--light4);

    --red:    var(--bright_red);
    --green:  var(--bright_green);
    --yellow: var(--bright_yellow);
    --blue:   var(--bright_blue);
    --purple: var(--bright_purple);
    --aqua:   var(--bright_aqua);
    --orange: var(--bright_orange);
  }
}

@media (prefers-color-scheme: light) {
  :root {
    --bg0: var(--light0);
    --bg1:  var(--light1);
    --bg2:  var(--light2);
    --bg3:  var(--light3);
    --bg4:  var(--light4);
    --fg0: var(--dark0);
    --fg1: var(--dark1);
    --fg2: var(--dark2);
    --fg3: var(--dark3);
    --fg4: var(--dark4);
    --red:    var(--faded_red);
    --green:  var(--faded_green);
    --yellow: var(--faded_yellow);
    --blue:   var(--faded_blue);
    --purple: var(--faded_purple);
    --aqua:   var(--faded_aqua);
    --orange: var(--faded_orange);
  }
}

@media (prefers-color-scheme: dark) and (prefers-contrast: less) {
  :root {
    --bg0: var(--dark0_soft);
  }
}

@media (prefers-color-scheme: dark) and (prefers-contrast: more) {
  :root {
    --bg0: var(--dark0_hard);
  }
}

@media (prefers-color-scheme: light) and (prefers-contrast: less) {
  :root {
    --bg0: var(--light0_soft);
  }
}

@media (prefers-color-scheme: light) and (prefers-contrast: more) {
  :root {
    --bg0: var(--light0_hard);
  }
}
