:root{
  --bg:#f5f7f3;
  --surface:#ffffff;
  --ink:#102019;
  --muted:#66736c;
  --line:#dce3dd;
  --accent:#0f6b4b;
  --accent-2:#d8f55f;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.7;
}
a{color:inherit}
img{max-width:100%}
.shell{width:min(calc(100% - 32px),var(--max));margin-inline:auto}
.notice{
  background:var(--ink);color:#fff;font-size:.78rem;text-align:center;padding:9px 16px;
}
.site-header{
  position:sticky;top:0;z-index:20;background:rgba(245,247,243,.92);
  border-bottom:1px solid var(--line);backdrop-filter:blur(14px);
}
.nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{text-decoration:none;font-weight:900;letter-spacing:-.04em;font-size:1.05rem}
.brand span{display:inline-block;background:var(--accent-2);padding:2px 7px;margin-left:4px;border-radius:6px}
.links{display:flex;gap:24px;align-items:center;font-size:.88rem;font-weight:700}
.links a{text-decoration:none;color:var(--muted)}
.links a:hover{color:var(--ink)}
.hero{padding:84px 0 56px}
.eyebrow{font-size:.8rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--accent)}
h1,h2,h3{line-height:1.13;letter-spacing:-.04em;margin-top:0}
h1{font-size:clamp(2.8rem,8vw,6rem);max-width:900px;margin-bottom:24px}
h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:18px}
h3{font-size:1.2rem}
.lead{font-size:clamp(1.05rem,2vw,1.25rem);max-width:720px;color:var(--muted);margin:0 0 30px}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;padding:13px 20px;font-weight:800;border:1px solid var(--ink)}
.button.primary{background:var(--ink);color:#fff}
.button.secondary{background:transparent}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px}
.card .num{font:800 1.6rem ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent);margin-bottom:12px}
.card p{margin:0;color:var(--muted)}
.section{padding:64px 0}
.section.alt{background:#edf1ec;border-block:1px solid var(--line)}
.metric{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;color:var(--muted)}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px}
table{border-collapse:collapse;width:100%;min-width:680px}
th,td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}
th{background:#f8faf7;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
td.muted{color:var(--muted)}
.status{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:800;color:var(--accent)}
.status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 3px rgba(216,245,95,.3)}
.article-list{display:grid;gap:12px}
.article-link{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;text-decoration:none}
.article-link:hover{border-color:#a7b4aa}
.article-link small{color:var(--muted);white-space:nowrap}
.page{padding:64px 0 90px}
.prose{max-width:780px}
.prose h1{font-size:clamp(2.4rem,7vw,4.5rem)}
.prose h2{font-size:1.7rem;margin-top:48px}
.prose h3{margin-top:34px}
.prose p,.prose li{color:#33423a}
.prose strong{color:var(--ink)}
.callout{border-left:4px solid var(--accent);background:#eaf3ee;padding:18px 20px;border-radius:0 12px 12px 0;margin:28px 0}
.formula{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#102019;color:#fff;padding:18px 20px;border-radius:12px;overflow:auto}
.footer{border-top:1px solid var(--line);padding:34px 0 48px;color:var(--muted);font-size:.82rem}
.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-links{display:flex;flex-wrap:wrap;gap:16px}
.footer a{text-decoration:none}
@media (max-width:760px){
  .links{display:none}
  .hero{padding:58px 0 42px}
  .grid{grid-template-columns:1fr}
  .section{padding:48px 0}
  .article-link{align-items:flex-start;flex-direction:column}
}
