:root{--ground:#F3F5F4;--surface:#FFFFFF;--ink:#15201E;--muted:#56635F;--line:#D5DDDA;--accent:#0E7361;--accent-ink:#FFFFFF;--accent-soft:#DCEFEA;--loss:#B4412F;--loss-soft:#F6E1DC;
--jp:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ground:#0F1615;--surface:#172120;--ink:#E6EEEB;--muted:#9AAAA5;--line:#2A3835;--accent:#3FB39C;--accent-ink:#06120F;--accent-soft:#16332D;--loss:#E0806F;--loss-soft:#3A201B}}
*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--jp);font-size:17px;line-height:1.95;margin:0;padding-inline:16px}
.wrap{max-width:760px;margin-inline:auto}
a{color:var(--accent)}
header.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}
header.top .brand{font-weight:900;text-decoration:none;color:var(--ink);font-size:18px}
header.top nav a{margin-left:16px;font-size:14px;color:var(--ink);text-decoration:none}
.crumb{font-size:13px;color:var(--muted);margin:18px 0 0}
.crumb a{color:var(--muted)}
h1{font-size:clamp(24px,5vw,32px);line-height:1.45;margin:10px 0 8px;font-weight:900}
.meta{font-size:13px;color:var(--muted);margin:0 0 24px}
.lead{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);padding:16px 18px;border-radius:8px}
h2{font-size:22px;line-height:1.5;margin:44px 0 12px;padding-bottom:6px;border-bottom:2px solid var(--line)}
h3{font-size:18px;margin:28px 0 8px}
.toc{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin:24px 0}
.toc p{margin:0 0 4px;font-weight:700}
.toc ol{margin:0;padding-left:1.4em}
figure{margin:24px 0;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}
figure svg{width:100%;height:auto;display:block}
figcaption{font-size:13px;color:var(--muted);margin-top:8px}
table{width:100%;border-collapse:collapse;font-size:15px;margin:16px 0;background:var(--surface)}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left}
th{background:var(--accent-soft)}
td.num{text-align:right;font-family:var(--mono)}
.note{font-size:14px;color:var(--muted)}
.cta{background:var(--accent);color:var(--accent-ink);border-radius:10px;padding:24px;margin:48px 0 24px}
.cta h2{border:0;margin:0 0 6px;padding:0;color:var(--accent-ink)}
.cta p{margin:0 0 14px}
.cta a{display:inline-block;background:var(--accent-ink);color:var(--accent);font-weight:700;padding:10px 18px;border-radius:999px;text-decoration:none}
.author{display:flex;gap:14px;align-items:flex-start;border-top:1px solid var(--line);padding-top:18px;font-size:14px;color:var(--muted)}
.author b{color:var(--ink)}
.cards{list-style:none;padding:0;margin:24px 0;display:grid;gap:14px}
.cards li{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}
.cards a{color:var(--ink);text-decoration:none;font-weight:700;font-size:18px}
.cards p{margin:6px 0 0;font-size:14px;color:var(--muted)}
footer{font-size:13px;color:var(--muted);padding:32px 0;border-top:1px solid var(--line);margin-top:40px}
svg text{font-family:var(--jp)}
.f-acc{fill:var(--accent)}.f-soft{fill:var(--accent-soft)}.f-loss{fill:var(--loss)}.f-ink{fill:var(--ink)}.f-mut{fill:var(--muted)}.s-line{stroke:var(--line)}.f-lsoft{fill:var(--loss-soft)}
figure svg{max-width:520px;margin-inline:auto}
