:root {
  /* Color Palette */
  --ruby-red: #E0115F;
  --forest-green: #228B22;
  --walnut-brown: #5D4037;
  --cream: #F4F1DE;
  --soft-orange: #E6B89C;
  --deep-green: #1E453E;

  /* Zinc shades */
  --zinc-50: #FAFAFA;
  --zinc-100: #F4F4F5;
  --zinc-200: #E4E4E7;
  --zinc-400: #A1A1AA;
  --zinc-500: #71717A;
  --zinc-600: #52525B;
  --zinc-800: #27272A;
  --zinc-950: #09090B;

  /* Blue shades */
  --blue-100: #DBEAFE;
  --blue-300: #93C5FD;
  --blue-700: #1D4ED8;
  --blue-800: #1E40AF;
  --blue-950: #172554;

  /* Sky shade */
  --sky-400: #38BDF8;

  /* Red shades */
  --red-400: #F87171;
  --red-600: #DC2626;

  /* Green shades */
  --green-400: #4ADE80;
  --green-600: #16A34A;

  /* Abstractions */
  --color-bg: var(--cream);
  --color-text: var(--walnut-brown);
  --color-text-reversed: var(--cream);
  --color-text-subtle: var(--zinc-500);
  --color-link: var(--deep-green);
  --color-border-light: var(--soft-orange);
  --color-border: var(--walnut-brown);
  --color-border-dark: var(--deep-green);
  --color-selected: var(--blue-100);
  --color-selected-dark: var(--blue-300);

  /* Accent colors */
  --color-primary: var(--forest-green);
  --color-secondary: var(--soft-orange);
  --color-negative: var(--ruby-red);
  --color-positive: var(--forest-green);

  /* SVG color values (unchanged) */
  --color-filter-text: invert(2%) sepia(3%) saturate(3904%) hue-rotate(201deg) brightness(98%) contrast(97%);
  --color-filter-text-reversed: invert(100%);
  --color-filter-text-subtle: invert(46%) sepia(8%) saturate(371%) hue-rotate(202deg) brightness(93%) contrast(85%);
  --color-filter-negative: invert(22%) sepia(85%) saturate(1790%) hue-rotate(339deg) brightness(105%) contrast(108%);
  --color-filter-positive: invert(44%) sepia(89%) saturate(409%) hue-rotate(89deg) brightness(94%) contrast(97%);

  @media (prefers-color-scheme: dark) {
    /* Abstractions */
    --color-bg: var(--zinc-950);
    --color-text: var(--cream);
    --color-text-reversed: var(--zinc-950);
    --color-text-subtle: var(--zinc-400);
    --color-link: var(--soft-orange);
    --color-border-light: var(--zinc-800);
    --color-border: var(--walnut-brown);
    --color-border-dark: var(--cream);
    --color-selected: var(--blue-950);
    --color-selected-dark: var(--blue-800);

    /* Accent colors */
    --color-primary: var(--forest-green);
    --color-secondary: var(--zinc-800);
    --color-negative: var(--ruby-red);
    --color-positive: var(--forest-green);

    /* SVG color values (unchanged) */
    --color-filter-text: invert(100%);
    --color-filter-text-reversed: invert(2%) sepia(3%) saturate(3904%) hue-rotate(201deg) brightness(98%) contrast(97%);
    --color-filter-text-subtle: invert(76%) sepia(8%) saturate(230%) hue-rotate(201deg) brightness(84%) contrast(87%);
    --color-filter-negative: invert(16%) sepia(62%) saturate(2100%) hue-rotate(337deg) brightness(92%) contrast(100%);
    --color-filter-positive: invert(21%) sepia(62%) saturate(549%) hue-rotate(91deg) brightness(101%) contrast(91%);
  }
}

* {
  border-color: var(--color-border);
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-synthesis-weight: none;
  text-rendering: optimizeLegibility;
  font-family: var(--font-monospace-slab-serif);
}

::selection {
  background-color: var(--color-selected);
}

h1 {
  color: var(--color-primary);
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
}

h2 {
  color: var(--color-primary);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
}

.demote-headings-1 {
  h1 {
    font-size: var(--text-xl);
    font-weight: var(--font-bold);
  }

  h2 {
    font-size: var(--text-lg);
    font-weight: var(--font-bold);
  }
}

.title {
  font-size: var(--text-3xl);
  font-weight: var(--font-light);
}
