:root{color-scheme:light;--ink:#172b43;--muted:#596878;--paper:#f5f0e7;--white:#fffdf9;--brass:#a97835;--line:#d8cebd}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.8 system-ui,-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif}
a{color:#155a78;text-underline-offset:.18em}
.masthead,.page,.footer{width:min(100% - 32px,900px);margin-inline:auto}
.masthead{padding:22px 0 12px;display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid var(--line)}
.brand{font-weight:750;color:var(--ink);text-decoration:none}
.crumbs{font-size:.88rem;color:var(--muted)}
.page{padding:30px 0 64px}
.eyebrow{margin:0 0 8px;color:var(--brass);font-size:.78rem;font-weight:750;letter-spacing:.12em}
h1,h2,h3{line-height:1.35;color:var(--ink)}
h1{max-width:780px;margin:.2rem 0 1rem;font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.025em}
h2{margin:2.5rem 0 .75rem;font-size:1.5rem}
h3{margin:.3rem 0 .4rem;font-size:1.08rem}
.lead{max-width:760px;color:#30465e;font-size:1.12rem}
.note,.callout{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.callout{border-left:5px solid var(--brass)}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--white)}
table{width:100%;border-collapse:collapse;min-width:650px;font-variant-numeric:tabular-nums}
caption{text-align:left;padding:12px 14px;font-weight:700}
th,td{padding:10px 12px;text-align:left;border-top:1px solid #e7dfd2}
th{font-size:.9rem;background:#f1eadf}
td.num{text-align:right;white-space:nowrap}
.steps{padding-left:1.3rem}
.steps li{padding:0 0 .65rem .25rem}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}
.card{padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
.card p:last-child{margin-bottom:0}
.tool-link{display:inline-block;margin:18px 0;padding:10px 16px;border-radius:8px;background:var(--ink);color:white;font-weight:700;text-decoration:none}
.footer{padding:20px 0 34px;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.footer p{margin:.35rem 0}
@media(max-width:560px){.masthead{align-items:flex-start;flex-direction:column}.page{padding-top:22px}h2{font-size:1.3rem}}
