:root {
  --bg: #fbfaf7;
  --text: #1f1d1a;
  --muted: #6b665e;
  --line: #e4e0d8;
  --accent: #2f5d50;
  --soft: #eef3f0;
  --warn: #8a4b12;
  --warn-bg: #fbf0e3;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #161514;
    --text: #ece8e1;
    --muted: #a39d93;
    --line: #34312d;
    --accent: #8cc3b2;
    --soft: #1f2a26;
    --warn: #f0b47a;
    --warn-bg: #2d2116;
  }
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font: 18px/1.65 Georgia, "Times New Roman", serif; }
a { color: var(--accent); }
header.site, footer.site, main { max-width: 42rem; margin: 0 auto; padding: 0 16px; }
header.site { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: baseline; justify-content: space-between; padding-top: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); font-family: system-ui, sans-serif; font-size: .9rem; }
header.site .brand { font-weight: 700; color: var(--text); text-decoration: none; letter-spacing: .02em; }
header.site nav { display: flex; gap: 1rem; flex-wrap: wrap; }
header.site nav a { color: var(--muted); text-decoration: none; }
footer.site { margin-top: 4rem; padding-top: 1rem; padding-bottom: 3rem; border-top: 1px solid var(--line); color: var(--muted); font: .85rem/1.5 system-ui, sans-serif; }
h1 { font-size: 2rem; line-height: 1.2; margin: .5rem 0; }
h2 { font: 600 1rem/1.4 system-ui, sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-top: 2.5rem; }
.question { font-style: italic; color: var(--muted); margin-top: 0; }
.bottom-line { background: var(--soft); border-left: 4px solid var(--accent); padding: .25rem 1.25rem 1rem; margin: 1.5rem 0 2rem; }
.bottom-line h2 { margin-top: .75rem; }
.bottom-line p { font-size: 1.1rem; margin: 0; }
.interp { border: 1px dashed var(--line); padding: .5rem 1.25rem; margin: 1.5rem 0; }
.interp .label, .level, .tag, .meta, .stamp { font-family: system-ui, sans-serif; }
.interp .label { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: .5rem 0 0; }
.level { display: inline-block; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--accent); margin: 2rem 0 0; }
.ref a { text-decoration: none; font-family: system-ui, sans-serif; font-size: .7rem; padding: 0 .15rem; }
.claims > li { margin-bottom: 1.25rem; scroll-margin-top: 1rem; }
.claims > li:target { background: var(--soft); }
.claims p { margin: 0; }
.meta { font-size: .8rem; color: var(--muted); margin: .25rem 0; }
.tag { display: inline-block; border: 1px solid var(--line); border-radius: 3px; padding: 0 .4rem; font-size: .75rem; }
.cites { font-size: .9rem; color: var(--muted); padding-left: 1.1rem; margin: .25rem 0 0; }
.cites a, .sources a { word-break: break-all; }
.stamp { font-size: .8rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 2.5rem; }
.notice { font-family: system-ui, sans-serif; font-size: .9rem; background: var(--warn-bg); color: var(--warn); padding: .75rem 1rem; margin-top: 1.5rem; }
.notice.draft { font-weight: 700; }
.hero { padding: 2rem 0 1rem; }
.hero p:first-of-type { font-size: 1.2rem; }
.index { list-style: none; padding: 0; }
.index li { border-top: 1px solid var(--line); }
.index a { display: block; padding: 1.25rem 0; text-decoration: none; color: var(--text); }
.index .level { margin: 0 0 .25rem; display: block; }
.index strong { display: block; font-size: 1.25rem; line-height: 1.3; margin-bottom: .35rem; }
.index span:last-child { color: var(--muted); font-size: 1rem; }
.index a:hover strong { color: var(--accent); }
.sources li { margin-bottom: 1rem; }
@media (max-width: 480px) { body { font-size: 17px; } h1 { font-size: 1.6rem; } }
