:root {
  --bg:      #faf8f5;
  --text:    #302b26;
  --muted:   #7a6e63;
  --accent:  #2d5f49;
  --heading: #1a3d5c;
  --border:  #d0c8bc;
  --code-bg: #ede7df;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: var(--bg);
  color: var(--text);
  font: 1.05rem/1.75 Georgia, "Times New Roman", serif;
  padding: 1.5rem 1rem;
}

body > header, main, body > footer { max-width: 40rem; margin-inline: auto; }

body > header {
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 2.5rem;
}

body > header h1 { font-size: 1.3rem; }
body > header a { color: var(--text); text-decoration: none; }
body > header p { color: var(--muted); font-family: system-ui, sans-serif; font-size: .9rem; margin-top: .35rem; }

main { min-height: 60vh; }

article {
  padding-bottom: 2.25rem;
  margin-bottom: 2.25rem;
  border-bottom: 1px solid var(--border);
}
article:last-of-type { border-bottom: none; }
article > header { margin-bottom: .75rem; }

h1 { font-size: 1.9rem; line-height: 1.25; margin-bottom: .5rem; color: var(--heading); }
h2 { font-size: 1.45rem; line-height: 1.3; margin-bottom: .2rem; }
h2 a { color: var(--heading); text-decoration: none; }
h2 a:hover { color: var(--accent); }
h3, h4 { margin-top: 1.4rem; margin-bottom: .3rem; }

p { margin-top: .9rem; }
article > header + p, article > header ~ p:first-of-type { margin-top: 0; }

a { color: var(--accent); }
a:hover { text-decoration: none; }

time, .tags { color: var(--muted); font-family: system-ui, sans-serif; font-size: .85rem; }

.tag { margin-right: .5rem; }
.tag::before { content: "#"; opacity: .6; }

.read-more { display: inline-block; margin-top: .75rem; font-family: system-ui, sans-serif; font-size: .9rem; }

code { font-family: "Courier New", monospace; background: var(--code-bg); border-radius: 3px; font-size: .88em; padding: .1em .35em; }
pre { background: var(--code-bg); border-radius: 4px; padding: .9rem 1.1rem; overflow-x: auto; margin: 1.1rem 0; }
pre > code { padding: 0; background: none; }

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

ul, ol { padding-left: 1.4rem; margin-top: .9rem; }
li + li { margin-top: .3rem; }

body > footer {
  border-top: 1px solid var(--border);
  margin-top: 3rem;
  padding-top: 1.25rem;
  color: var(--muted);
  font-family: system-ui, sans-serif;
  font-size: .85rem;
}

nav { margin-top: 2rem; font-family: system-ui, sans-serif; font-size: .9rem; }
