:root {
  color-scheme: light dark;
  --bg: #ffffff; --text: #1d1d1f; --muted: #6e6e73; --line: #e5e5e7; --code: #f5f5f7; --accent: #b93a1e;
  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s6: 24px; --s8: 32px; --s12: 48px;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #1c1c1e; --text: #f2f2f7; --muted: #a1a1a6; --line: #3a3a3c; --code: #2c2c2e; --accent: #ff9478; }
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--text);
  font: 400 16px/1.7 -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  -webkit-text-size-adjust: 100%; overflow-wrap: anywhere;
}
a { color: var(--accent); }
header, main, footer { max-width: 680px; margin: 0 auto; padding-left: var(--s4); padding-right: var(--s4); }
header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2) var(--s6); padding-top: var(--s6); padding-bottom: var(--s6); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: var(--s2); color: var(--text); font-weight: 600; text-decoration: none; }
.brand img { display: block; width: 24px; height: 24px; }
nav { display: flex; flex-wrap: wrap; gap: var(--s4); font-size: 14px; }
nav a { color: var(--muted); text-decoration: none; }
nav a:hover { text-decoration: underline; }
nav a[aria-current] { color: var(--text); font-weight: 500; }
main { padding-top: var(--s8); padding-bottom: var(--s12); }
h1 { margin: 0 0 var(--s2); font-size: 28px; line-height: 1.3; font-weight: 600; }
.meta { margin: 0; color: var(--muted); font-size: 14px; }
.lang { display: flex; gap: var(--s3); margin: var(--s4) 0 0; font-size: 14px; }
section { margin-top: var(--s12); padding-top: var(--s8); border-top: 1px solid var(--line); scroll-margin-top: var(--s4); }
h2 { margin: 0; font-size: 22px; line-height: 1.4; font-weight: 600; }
h3 { margin: var(--s8) 0 var(--s2); font-size: 18px; line-height: 1.4; font-weight: 600; scroll-margin-top: var(--s4); }
h4 { margin: var(--s6) 0 var(--s1); font-size: 16px; line-height: 1.6; font-weight: 500; }
p { margin: var(--s2) 0 0; }
ol { margin: var(--s2) 0 0; padding-left: var(--s6); }
code { padding: 0 var(--s1); background: var(--code); border-radius: 4px; font: 14px ui-monospace, SFMono-Regular, Menlo, monospace; }
footer { padding-top: var(--s4); padding-bottom: var(--s8); border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; }
