:root{--bg:#f7f5ef;--card:#fff;--ink:#1b2540;--sub:#5d6985;--ln:#e2dfd3;--ac:#2f6bff;--ac2:#0fae8f;--warn:#c2412d;--side:#efece2}
@media(prefers-color-scheme:dark){:root{--bg:#10141f;--card:#171d2c;--ink:#e8ecf6;--sub:#9aa6c3;--ln:#2a3248;--side:#131928;--ac:#7aa2ff;--ac2:#3fd1b3;--warn:#ff8a73}}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.95 -apple-system,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--ac)}.dead{color:var(--warn)}
.draft{background:#fff4d6;color:#6b4e00;font-size:12.5px;text-align:center;padding:7px 12px}
.draft a{color:#6b4e00}
.hd{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--ln);background:var(--card)}
.brand{font-weight:800;text-decoration:none;color:var(--ink);letter-spacing:.03em}.brand small{font-weight:500;color:var(--sub);margin-left:6px}
.back{font-size:13px;text-decoration:none}
.lay{display:grid;grid-template-columns:260px minmax(0,1fr);max-width:1180px;margin:0 auto}
.side{background:var(--side);border-right:1px solid var(--ln);padding:16px;font-size:14px;line-height:1.6;position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto}
#q{width:100%;padding:8px 10px;border:1px solid var(--ln);border-radius:8px;background:var(--card);color:var(--ink);margin-bottom:10px}
.side ul{list-style:none;margin:0 0 6px;padding:0}.side li a,.side .home{display:block;padding:3px 8px;border-radius:6px;text-decoration:none;color:var(--ink)}
.side a:hover{background:var(--card)}.side a.cur{background:var(--ac);color:#fff}
.cat{font-size:11.5px;font-weight:700;letter-spacing:.1em;color:var(--sub);margin:12px 8px 4px}
.art{padding:28px 36px 60px;min-width:0}
.crumb{font-size:12px;color:var(--sub);letter-spacing:.1em}
h1{font:800 32px/1.4 "Hiragino Mincho ProN","Noto Serif JP",serif;margin:.2em 0 .3em}
.lead{font-size:17px;color:var(--sub);border-left:4px solid var(--ac2);padding-left:14px;margin:0 0 20px}
h2{font:700 22px/1.5 "Hiragino Mincho ProN","Noto Serif JP",serif;border-bottom:1px solid var(--ln);padding-bottom:6px;margin:2em 0 .6em}
h3{font-size:17px;margin:1.4em 0 .4em}
.toc{background:var(--card);border:1px solid var(--ln);border-radius:10px;padding:10px 18px;display:inline-block;min-width:260px;margin:0 0 10px;font-size:14px}
.toc ol{margin:6px 0 0;padding-left:20px}.toc li{margin:2px 0}
table{border-collapse:collapse;width:100%;font-size:14.5px;margin:12px 0;background:var(--card)}
th,td{border:1px solid var(--ln);padding:8px 10px;vertical-align:top;text-align:left}th{background:var(--side)}
.note,.warn,.quote,.key{border-radius:10px;padding:12px 16px;margin:16px 0;font-size:15px}
.note{background:#eaf3ff;border:1px solid #c6dcff;color:#12306b}
.warn{background:#fff1ee;border:1px solid #f4c6bd;color:#7a2418}
.key{background:#e8f7f3;border:1px solid #b4e3d8;color:#0b4a3e}
.quote{background:var(--card);border-left:4px solid var(--ac);font-family:"Hiragino Mincho ProN","Noto Serif JP",serif;font-size:16.5px}
@media(prefers-color-scheme:dark){.note{background:#14284d;border-color:#27427a;color:#cfe0ff}.warn{background:#3a1913;border-color:#6b2e24;color:#ffd2c8}.key{background:#0f3029;border-color:#1d5a4c;color:#c5f2e7}}
figure{margin:18px 0;background:var(--card);border:1px solid var(--ln);border-radius:12px;padding:10px}
.fig{width:100%;height:auto;display:block}
.rel{margin-top:28px;border-top:1px solid var(--ln);padding-top:6px}.rel ul{columns:2;padding-left:18px}
.pn{display:flex;justify-content:space-between;margin-top:30px;font-size:14px}
.ft{max-width:1180px;margin:0 auto;padding:18px 24px 40px;color:var(--sub);font-size:12.5px;border-top:1px solid var(--ln)}
.hero{padding:34px 0 10px}.kick{letter-spacing:.3em;font-size:12px;color:var(--ac2);font-weight:700}
.hero h1{font-size:40px}.cta a{display:inline-block;margin:6px 10px 0 0;padding:10px 18px;border-radius:999px;background:var(--ac);color:#fff;text-decoration:none;font-weight:700;font-size:14px}
.cta a.ghost{background:transparent;color:var(--ac);border:1px solid var(--ac)}
.stats{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0}.stats div{background:var(--card);border:1px solid var(--ln);border-radius:10px;padding:10px 18px;font-size:13px;color:var(--sub)}.stats b{font-size:24px;color:var(--ink);margin-right:4px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--ln);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--ink);line-height:1.6}
.card b{display:block;margin-bottom:4px}.card span{font-size:12.5px;color:var(--sub);display:block}.card:hover{border-color:var(--ac)}
.small{font-size:13px;color:var(--sub);margin-top:30px}
.band{background:var(--card);border:1px solid var(--ln);border-radius:12px;padding:14px;margin:16px 0}
.band .row{margin:10px 0}.band .lab{font-size:13px;display:flex;justify-content:space-between;gap:10px}
.band .bar{height:16px;background:#e5e9f4;border-radius:4px;position:relative;overflow:visible}
@media(prefers-color-scheme:dark){.band .bar{background:#262f47}}
.band .need{position:absolute;right:0;top:-6px;bottom:-6px;background:var(--warn);min-width:2px;border-radius:1px}
@media(max-width:820px){.lay{display:block}.side{position:static;max-height:none;border-right:0;border-bottom:1px solid var(--ln)}.art{padding:20px 16px 40px}h1{font-size:26px}.hero h1{font-size:30px}.rel ul{columns:1}}
.xl{font-size:.8em;opacity:.7}
.mirror{background:var(--card);border:1px solid var(--ln);border-radius:10px;padding:6px 16px 10px}
.mirror ul{columns:2}
