:root { --bg:#fff; --fg:#1b1f24; --muted:#586069; --accent:#1a56db; --on-accent:#fff; --line:#d8dee4; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#10141a; --fg:#e6e9ee; --muted:#9aa4b2; --accent:#7aa7ff; --on-accent:#0b1020; --line:#2a313c; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:17px/1.6 system-ui, sans-serif; }
header, footer { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; padding:1rem max(16px, calc((100% - 46rem)/2)); }
header { border-bottom:1px solid var(--line); }
footer { border-top:1px solid var(--line); margin-top:3rem; justify-content:flex-start; color:var(--muted); }
nav { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
main { max-width:46rem; margin:0 auto; padding:0 16px; }
a { color:var(--accent); }
a:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.brand { font-weight:700; text-decoration:none; color:var(--fg); }
nav a[aria-current] { color:var(--fg); font-weight:600; text-decoration:none; }
.button { display:inline-block; padding:.5rem 1rem; border-radius:6px; background:var(--accent); color:var(--on-accent); text-decoration:none; font-weight:600; }
.hero { padding:3rem 0 1rem; }
.hero h1 { font-size:2.4rem; line-height:1.2; margin:0 0 .5rem; }
.lead { font-size:1.2rem; color:var(--muted); }
.meta { color:var(--muted); margin-top:-.5rem; }
.skip { position:absolute; left:-999px; }
.skip:focus { left:8px; top:8px; background:var(--bg); padding:.5rem; z-index:1; }
h2 { margin-top:2rem; }
.credit { margin-left:auto; }
