:root {
  --bg: #f7f8fb;
  --fg: #16181d;
  --muted: #5b6170;
  --line: #dfe2ea;
  --fi: #1565c0;
  --sw: #d32f2f;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #101216; --fg: #eceef2; --muted: #a2a8b6; --line: #2a2e37; --fi: #6ea8ef; --sw: #f07a7a; color-scheme: dark; }
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font-family: "Hiragino Sans", "Noto Sans JP", "Yu Gothic", system-ui, sans-serif;
  font-size: 16px; line-height: 1.8;
  border-left: 6px solid var(--fi); border-right: 6px solid var(--sw);
  min-height: 100vh;
}
main { max-width: 720px; margin: 0 auto; padding: 48px 20px 80px; }
header { display: grid; gap: 16px; margin-bottom: 32px; }
header img.logo { width: min(360px, 100%); height: auto; }
h1 { font-size: 1.7rem; line-height: 1.4; margin: 0; }
h2 { font-size: 1.15rem; margin: 40px 0 8px; padding-top: 16px; border-top: 1px solid var(--line); }
p, li { margin: 0 0 10px; }
ul { padding-left: 1.2em; }
.muted { color: var(--muted); font-size: 0.9rem; }
a { color: var(--fi); }
nav { display: flex; gap: 20px; flex-wrap: wrap; font-size: 0.95rem; }
.box { border: 1px solid var(--line); border-radius: 12px; padding: 16px 20px; }
footer { margin-top: 56px; color: var(--muted); font-size: 0.85rem; }
