:root{
  --bg:#ffffff; --surface:#f7f8fa; --border:#e3e6ea;
  --text:#1c2024; --muted:#5b636b; --accent:#c8541f; --accent-soft:#fdf3ee;
  --max:760px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#15181c; --surface:#1d2126; --border:#2c3238;
    --text:#e8eaed; --muted:#a2abb4; --accent:#f08a52; --accent-soft:#26201c;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",Meiryo,sans-serif;
  line-height:1.85; font-size:16px;
}
.wrap{max-width:var(--max); margin:0 auto; padding:0 20px}
a{color:var(--accent)}
header.site{border-bottom:1px solid var(--border); padding:18px 0; position:sticky; top:0; background:var(--bg); z-index:10}
header.site .wrap{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap}
.logo{font-size:20px; font-weight:700; letter-spacing:.04em; text-decoration:none; color:var(--text)}
.logo span{color:var(--accent)}
.byline{font-size:13px; color:var(--muted)}
nav.site{margin-left:auto; display:flex; gap:16px; font-size:14px}
nav.site a{color:var(--muted); text-decoration:none}
nav.site a:hover{color:var(--accent)}
.hero{padding:56px 0 40px; border-bottom:1px solid var(--border)}
.hero h1{font-size:28px; line-height:1.5; margin:0 0 16px}
.hero p{color:var(--muted); margin:0; font-size:17px}
main{padding:8px 0 40px}
section{padding:38px 0; border-bottom:1px solid var(--border)}
section:last-of-type{border-bottom:none}
h2{font-size:20px; margin:0 0 18px; padding-left:12px; border-left:4px solid var(--accent)}
h3{font-size:16px; margin:26px 0 8px}
p{margin:0 0 14px}
ul,ol{margin:0 0 14px; padding-left:1.4em}
li{margin-bottom:6px}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px}
.card{background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:18px 20px}
.card h3{margin:0 0 8px; font-size:15px; color:var(--accent)}
.card p{margin:0; font-size:14px; color:var(--muted); line-height:1.7}
.note{background:var(--accent-soft); border:1px solid var(--border); border-radius:10px; padding:18px 20px; margin:18px 0}
.note p:last-child{margin-bottom:0}
.tblwrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
table{border-collapse:collapse; width:100%; font-size:14px; min-width:420px}
th,td{border:1px solid var(--border); padding:10px 12px; text-align:left; vertical-align:top}
th{background:var(--surface); font-weight:600; white-space:nowrap}
footer.site{border-top:1px solid var(--border); padding:28px 0 44px; font-size:13px; color:var(--muted)}
footer.site nav{display:flex; gap:18px; flex-wrap:wrap; margin-bottom:14px}
footer.site a{color:var(--muted)}
.legal h2{font-size:17px; margin-top:32px}
.legal ol{padding-left:1.6em}
.updated{font-size:13px; color:var(--muted); margin-top:32px}
@media (max-width:560px){
  .hero{padding:40px 0 32px}
  .hero h1{font-size:23px}
  nav.site{width:100%; margin-left:0}
}
