:root{--bg:#F1F5F3;--card:#FBFCFB;--ink:#1C262B;--ink2:#4A585E;--rule:#CBD5D1;--accent:#2F5D62;--accent-ink:#FFFFFF;--soft:#E2ECEA;--warn:#8A3B2F}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#121819;--card:#1A2224;--ink:#E3EAE8;--ink2:#A9B6B3;--rule:#2E3A3C;--accent:#7FB5B0;--accent-ink:#0F1617;--soft:#203033;--warn:#E09A8C}}
:root[data-theme="dark"]{--bg:#121819;--card:#1A2224;--ink:#E3EAE8;--ink2:#A9B6B3;--rule:#2E3A3C;--accent:#7FB5B0;--accent-ink:#0F1617;--soft:#203033;--warn:#E09A8C}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans JP",system-ui,sans-serif;line-height:1.8;font-size:16px}
main{max-width:720px;margin:0 auto;padding:40px 16px 64px}
h1,h2,h3{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;line-height:1.4;text-wrap:balance}
h1{font-size:28px;margin:0 0 8px}
h2{font-size:20px;margin:40px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--rule)}
.lead{color:var(--ink2);margin:0 0 24px}
.eyebrow{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;letter-spacing:.12em;color:var(--accent);font-size:13px;margin:0 0 12px}
.book{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:20px;margin:16px 0}
.book h3{margin:0 0 4px;font-size:18px}
.book .by{color:var(--ink2);font-size:14px;margin:0 0 14px}
.dl{display:flex;flex-direction:column;gap:10px}
.dl a{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;
  background:var(--accent);color:var(--accent-ink);padding:12px 16px;border-radius:8px;font-weight:700}
.dl a.sub{background:var(--soft);color:var(--ink)}
.dl a span{font-weight:400;font-size:13px;opacity:.85;white-space:nowrap}
.dl a:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
ul{padding-left:1.3em}
li{margin:4px 0}
.note{font-size:14px;color:var(--ink2)}
.warn{color:var(--warn)}
table{border-collapse:collapse;width:100%;font-size:15px;font-variant-numeric:tabular-nums}
.tbl{overflow-x:auto}
th,td{border:1px solid var(--rule);padding:6px 10px;text-align:right}
th:first-child,td:first-child{text-align:left}
th{background:var(--soft);white-space:nowrap;font-size:13px}
footer{border-top:1px solid var(--rule);margin-top:48px;padding-top:16px;font-size:13px;color:var(--ink2)}
a{color:var(--accent)}
