:root {
  --ink: #1d1f21;
  --muted: #6b7076;
  --line: #e2e4e7;
  --accent: #2f6f4f;
  --paper: #fbfbf9;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  padding: 0 20px 64px;
  background: var(--paper);
  color: var(--ink);
  font: 17px/1.65 Georgia, "Times New Roman", serif;
}

.wrap { max-width: 680px; margin: 0 auto; }

header {
  display: flex;
  align-items: baseline;
  gap: 18px;
  flex-wrap: wrap;
  padding: 28px 0 18px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 28px;
}

header .logo {
  font-size: 21px;
  font-weight: bold;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: var(--ink);
}

nav a {
  margin-right: 14px;
  font-size: 15px;
  color: var(--muted);
  text-decoration: none;
  border-bottom: 1px dotted var(--line);
}

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

h1 { font-size: 27px; line-height: 1.25; margin: 0 0 10px; }
h2 { font-size: 20px; margin: 32px 0 8px; }

.lead { color: var(--muted); font-style: italic; margin-top: 0; }

article.card {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

article.card h3 { margin: 0 0 4px; font-size: 19px; }
article.card h3 a { color: var(--ink); text-decoration: none; }
article.card h3 a:hover { color: var(--accent); }
article.card p { margin: 0; color: var(--muted); font-size: 16px; }

time { display: block; font-size: 13px; color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; }

pre {
  background: #f2f2ee;
  border-left: 3px solid var(--accent);
  padding: 12px 14px;
  overflow-x: auto;
  font: 14px/1.5 "SFMono-Regular", Consolas, monospace;
}

code { font: 14px/1.4 "SFMono-Regular", Consolas, monospace; background: #f2f2ee; padding: 1px 4px; }
pre code { background: none; padding: 0; }

blockquote { margin: 20px 0; padding-left: 16px; border-left: 3px solid var(--line); color: var(--muted); }

footer {
  margin-top: 44px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 14px;
  color: var(--muted);
}

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