:root{
  --bg:#ffffff; --ink:#171717; --muted:#6b6b6b; --line:#ececec;
  --accent:#00CFBB; --card:#fafafa;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#000000; --ink:#f2f2f2; --muted:#9a9a9a; --line:#242424; --card:#111111; }
}
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Segoe UI",Roboto,sans-serif;
  line-height:1.85; font-size:16px; word-break:break-word;
}
.wrap{ max-width:720px; margin:0 auto; padding:28px 20px 80px; }
header.site{ display:flex; align-items:center; gap:10px; padding:18px 20px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--bg); }
header.site a.brand{ color:var(--ink); text-decoration:none; font-weight:800; font-size:18px; letter-spacing:.02em; }
header.site .dot{ width:22px; height:22px; border-radius:7px; background:var(--accent); display:inline-block; }
h1{ font-size:24px; font-weight:800; margin:8px 0 4px; }
h2{ font-size:18px; font-weight:700; margin:32px 0 8px; padding-top:6px; }
h3{ font-size:16px; font-weight:700; margin:20px 0 6px; }
p,li{ font-size:15.5px; }
.meta{ color:var(--muted); font-size:13px; margin:0 0 24px; }
ul,ol{ padding-left:1.3em; }
li{ margin:4px 0; }
a{ color:var(--accent); }
strong{ font-weight:700; }
hr{ border:none; border-top:1px solid var(--line); margin:28px 0; }
table{ width:100%; border-collapse:collapse; font-size:14px; margin:10px 0; }
th,td{ border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
th{ background:var(--card); }
.nav{ display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 8px; }
.nav a{ text-decoration:none; border:1px solid var(--line); border-radius:999px; padding:8px 14px; color:var(--ink); font-size:14px; }
footer.site{ border-top:1px solid var(--line); color:var(--muted); font-size:13px; padding:24px 20px; text-align:center; }
.card{ background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; }
