:root { color-scheme: light; --ink:#172033; --muted:#526077; --line:#dce3ee; --brand:#4f46e5; --soft:#eef2ff; --warn:#fff7ed; }
* { box-sizing: border-box; }
body { margin:0; font-family:"Noto Sans JP",system-ui,sans-serif; color:var(--ink); background:#f8fafc; line-height:1.85; }
a { color:#3730a3; }
header, footer { background:#fff; border-color:var(--line); }
header { border-bottom:1px solid var(--line); padding:15px 22px; }
header a { display:inline-flex; align-items:center; }
header img { height:32px; width:auto; }
main { max-width:900px; margin:0 auto; padding:28px 22px 72px; }
.crumb { font-size:.82rem; color:var(--muted); margin-bottom:24px; }
h1 { font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.35; margin:0 0 12px; }
h2 { font-size:1.35rem; margin:42px 0 12px; padding-bottom:8px; border-bottom:2px solid var(--line); }
h3 { font-size:1.05rem; margin:28px 0 8px; }
p, li { font-size:.98rem; }
.lead { color:var(--muted); font-size:1.05rem; }
.meta { color:var(--muted); font-size:.84rem; }
.notice { background:var(--soft); border-left:4px solid var(--brand); padding:14px 18px; border-radius:6px; margin:24px 0; }
.warning { background:var(--warn); border-left-color:#ea580c; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; margin:22px 0; }
.card { display:block; background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px; text-decoration:none; color:inherit; }
.card:hover { border-color:#818cf8; box-shadow:0 6px 20px rgba(30,41,59,.08); }
.card strong { color:#312e81; }
table { width:100%; border-collapse:collapse; background:#fff; font-size:.92rem; }
th, td { border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; }
th { background:#f1f5f9; }
code, .formula { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.formula { background:#111827; color:#f8fafc; padding:14px 16px; border-radius:8px; overflow:auto; }
.source-list li { margin-bottom:12px; }
footer { border-top:1px solid var(--line); padding:26px 22px; text-align:center; color:var(--muted); font-size:.82rem; }
footer a { margin:0 7px; }
@media (max-width:640px) { main { padding-inline:16px; } table { display:block; overflow-x:auto; white-space:normal; } }
