:root {
  --color-primary: #1f7a66;
  --color-ink: #22252e;
  --color-muted: #5a5e6b;
  --color-paper: #fbfbf8;
  --color-panel: #ffffff;
  --color-line: #dddcd4;
  --font-body: system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-heading: Georgia, "Times New Roman", serif;
  --size-base: 17px;
  --size-gutter: 1.5rem;
  --size-measure: 68ch;
  --radius: 6px;
}

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

body {
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--size-base);
  line-height: 1.65;
  padding: calc(var(--size-gutter) * 2) var(--size-gutter);
}

main, body > * { max-width: var(--size-measure); margin-inline: auto; }

h1, h2, h3 {
  font-family: var(--font-heading);
  line-height: 1.2;
  margin-bottom: 0.6em;
}
h1 { font-size: 2.4rem; }
h2 { font-size: 1.7rem; margin-top: 1.6em; }
h3 { font-size: 1.3rem; margin-top: 1.4em; }

p, ul, ol, blockquote, figure, table { margin-bottom: 1.1em; }
ul, ol { padding-left: 1.3em; }

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

blockquote {
  border-left: 3px solid var(--color-primary);
  padding-left: var(--size-gutter);
  color: var(--color-muted);
  font-style: italic;
}

img { max-width: 100%; height: auto; border-radius: var(--radius); }

table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 0.5em 0.6em; border-bottom: 1px solid var(--color-line); }
th { font-weight: 600; }

hr { border: none; border-top: 1px solid var(--color-line); margin: 2em 0; }

code, pre {
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  font-size: 0.88em;
}
pre {
  background: var(--color-panel);
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  padding: 1em;
  overflow-x: auto;
}