:root {
  color-scheme: light;
  --paper: #faf9f6;
  --surface: #fffefa;
  --ink: #252b30;
  --muted: #677078;
  --line: #e2e3df;
  --accent: #285d87;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
a { color: var(--accent); text-decoration: none; text-underline-offset: .22em; transition: color 160ms ease, background-color 160ms ease; }
a:hover { text-decoration: underline; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; border-radius: 2px; }
a:active { color: var(--ink); }
img { max-width: 100%; vertical-align: middle; }
h1, h2, p { margin-top: 0; }
h1 { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 700; line-height: 1.2; letter-spacing: -.035em; margin-bottom: 20px; text-wrap: balance; overflow-wrap: anywhere; }
h2 { font-size: 1.4rem; font-weight: 650; line-height: 1.4; letter-spacing: -.025em; }
p { text-wrap: pretty; }
main { min-height: 60vh; padding-bottom: 48px; }
section { min-width: 0; }
.muted, .metadata, .page-summary { color: var(--muted); }
.page-summary { max-width: 65ch; }
.empty-state { color: var(--muted); padding: 24px 0; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 5; padding: 12px 20px; background: var(--surface); }
.skip-link:focus { top: 12px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
