:root { --bg:#f7f6f2; --fg:#1d1d1b; --muted:#5f5e58; --rule:#d9d7cf; --accent:#1f4e79; --panel:#efede6; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#151614; --fg:#ecece6; --muted:#a3a29a; --rule:#33342f; --accent:#8fb8de; --panel:#1d1e1b; }
}
* { box-sizing:border-box; }
html,body { margin:0; background:var(--bg); color:var(--fg); }
body { font-family: Georgia, "Times New Roman", serif; line-height:1.6; min-height:100vh; display:flex; flex-direction:column; }
a { color:var(--accent); }
a:hover { text-decoration:none; }
a:focus-visible, button:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.skip { position:absolute; left:-999px; top:0; background:var(--accent); color:var(--bg); padding:8px 12px; }
.skip:focus { left:8px; top:8px; }
header.site { border-bottom:1px solid var(--rule); }
.wrap { max-width:880px; margin:0 auto; padding:0 16px; }
header.site .wrap { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 24px; padding-top:18px; padding-bottom:14px; }
.brand { font-size:1.5rem; letter-spacing:.02em; color:var(--fg); text-decoration:none; }
nav ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 20px; }
nav a { text-decoration:none; font-size:.98rem; }
nav a[aria-current="page"] { color:var(--fg); border-bottom:2px solid var(--accent); }
main { flex:1; padding:40px 0 56px; }
h1 { font-size:2.2rem; font-weight:normal; margin:0 0 6px; line-height:1.2; }
h2 { font-size:1.35rem; font-weight:normal; margin:40px 0 12px; padding-bottom:6px; border-bottom:1px solid var(--rule); }
h3 { font-size:1.08rem; margin:0 0 6px; }
.tag { color:var(--muted); font-size:.92rem; margin:0 0 28px; letter-spacing:.08em; text-transform:uppercase; }
.lead { font-size:1.15rem; }
p, li { font-size:1.03rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:16px; margin:16px 0; }
.box { background:var(--panel); border:1px solid var(--rule); padding:16px 18px; border-radius:4px; }
.box p { margin:0; font-size:.98rem; color:var(--fg); }
table { border-collapse:collapse; width:100%; margin:12px 0; font-size:.98rem; }
th, td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--rule); vertical-align:top; }
th { font-weight:normal; color:var(--muted); width:38%; }
.note { color:var(--muted); font-size:.92rem; }
footer.site { border-top:1px solid var(--rule); color:var(--muted); font-size:.86rem; padding:18px 0; }
footer.site .wrap { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 20px; }
footer.site a { color:var(--muted); }
@media (max-width:520px) { h1 { font-size:1.8rem; } th { width:45%; } }
