:root { --bg: #f4f6fa; --card: #fff; --line: #d9dfe9; --ink: #1f2a3c; --sub: #5d6a7e; --main: #2358b5; }
@media (prefers-color-scheme: dark) {
  :root { --bg: #1b2029; --card: #252b36; --line: #3b4453; --ink: #e8ecf3; --sub: #aab4c3; --main: #8db6ff; }
}
* { box-sizing: border-box; }
body { margin: 0; padding: 32px 16px; background: var(--bg); color: var(--ink); font-family: "Yu Gothic UI", "Hiragino Sans", "Meiryo", sans-serif; font-size: 16px; line-height: 1.8; }
main { max-width: 760px; margin: 0 auto; padding: 32px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; }
h1 { margin: 0 0 8px; font-size: 28px; line-height: 1.4; }
h2 { margin: 32px 0 8px; font-size: 20px; line-height: 1.5; scroll-margin-top: 16px; }
p { margin: 0 0 16px; }
ul, ol { margin: 0 0 16px; padding-left: 24px; }
a { color: var(--main); }
code { font-size: 14px; overflow-wrap: anywhere; }
.lead { font-size: 18px; font-weight: 600; }
.date, .back { color: var(--sub); font-size: 14px; }
.toc { margin-bottom: 4px; font-weight: 600; }
nav { padding: 16px 24px; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 8px; }
nav ol { margin: 0; }
@media (max-width: 480px) { main { padding: 24px 16px; } }
