:root {
  color-scheme: light dark;

  --bg: #f4f4ef;
  --text: #3f4a42;
  --heading: #202820;
  --muted: #7b867d;
  --accent: #087f5b;
  --accent-hover: #00a86b;
  --border: #cdd3cc;
  --code-bg: #e8ece7;

  --font: "Courier New", Courier, monospace;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #090c0a;
    --text: #a8b8ad;
    --heading: #d4e8da;
    --muted: #657269;
    --accent: #5cff9a;
    --accent-hover: #8affb8;
    --border: #26332b;
    --code-bg: #101611;
  }
}

* {
  box-sizing: border-box;
}

html {
  background: var(--bg);
}

body {
  max-width: 900px;
  margin: 0 auto;
  padding: 60px 24px;

  background: var(--bg);
  color: var(--text);

  font-family: var(--font);
  font-size: 18px;
  line-height: 1.7;

  -webkit-font-smoothing: antialiased;
}

/* links */

a {
  color: var(--accent);
  text-decoration: none;
  transition: color 120ms ease;
}

a:hover {
  color: var(--accent-hover);
  text-shadow: 0 0 6px color-mix(in srgb, var(--accent) 45%, transparent);
}

/* headings */

h1,
h2,
h3 {
  color: var(--heading);
  font-weight: normal;
  line-height: 1.3;
}

h1 {
  margin: 0 0 2rem;
  font-size: 1.6rem;
}

h2 {
  margin-top: 2.5rem;
  font-size: 1.25rem;
}

/* navigation */

nav {
  margin-bottom: 3rem;
}

nav a {
  color: var(--muted);
}

nav a::before {
  content: "[ ";
}

nav a::after {
  content: " ]";
}

nav a:hover {
  color: var(--accent);
}

/* homepage */

ul {
  padding-left: 1.5rem;
}

li {
  margin: 0.45rem 0;
}

li::marker {
  color: var(--muted);
}

time {
  color: var(--muted);
  margin-left: 1rem;
  font-size: 0.85em;
}

/* article */

article p {
  margin: 0 0 1.4rem;
}

hr {
  margin: 2.5rem 0;
  border: 0;
  border-top: 1px dashed var(--border);
}

blockquote {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 2px solid var(--accent);
  color: var(--muted);
}

/* code */

code {
  padding: 0.1em 0.35em;
  background: var(--code-bg);
  border: 1px solid var(--border);
  font-size: 0.9em;
}

pre {
  padding: 1rem;
  overflow-x: auto;
  background: var(--code-bg);
  border: 1px solid var(--border);
}

pre code {
  padding: 0;
  border: 0;
  background: none;
}