:root{
  --bg:#FBFAF7;--paper:#FFFFFF;--ink:#1B1B1A;--ink-2:#5C5B57;--line:#E3E0D8;
  --accent:#1F4E79;--accent-soft:#EAF0F7;
  --sans:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,-apple-system,sans-serif;
  --disp:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#161615;--paper:#1F1F1D;--ink:#ECEAE4;--ink-2:#A8A59D;--line:#33322F;
  --accent:#8FB4DE;--accent-soft:#233140;}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.9;padding-inline:20px;padding-block:0 80px;font-feature-settings:"palt"}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}
a:hover{border-bottom-color:currentColor}
.wrap{max-width:720px;margin:0 auto}
header.site{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:28px 0;flex-wrap:wrap}
.brand{font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:.02em;color:var(--ink)}
.brand small{display:block;font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.1em;color:var(--ink-2);text-transform:uppercase}
nav{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}
nav a{color:var(--ink-2)}
nav a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}
.hero{padding-block:88px 56px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin:0 0 18px}
h1{font-family:var(--disp);font-weight:700;font-size:34px;line-height:1.45;margin:0 0 20px;text-wrap:balance;letter-spacing:.01em}
.lede{font-size:17px;color:var(--ink-2);margin:0;max-width:34em}
section{padding-block:40px;border-top:1px solid var(--line)}
h2{font-family:var(--disp);font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0 0 24px}
h3{font-family:var(--disp);font-size:20px;font-weight:700;margin:0 0 8px;line-height:1.5}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px}
.card{display:flex;flex-direction:column;gap:6px}
.card .price{font-family:var(--mono);font-size:14px;color:var(--ink)}
.card .note{font-size:14px;color:var(--ink-2)}
.card .cta{margin-top:6px;font-size:14px}
dl.info{display:grid;grid-template-columns:9em 1fr;gap:12px 20px;margin:0}
dl.info dt{color:var(--ink-2);font-size:14px;padding-top:2px}
dl.info dd{margin:0}
.mono{font-family:var(--mono);font-size:14px}
.doc h1{font-size:28px;margin-top:64px}
.doc .meta{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin-bottom:40px}
.doc h2{font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink);margin:40px 0 12px;font-weight:700}
.doc ol,.doc ul{padding-left:1.4em;margin:0 0 1em}
.doc li{margin-bottom:.4em}
footer.site{margin-top:64px;padding-top:28px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px}
footer.site a{color:var(--ink-2)}
@media (max-width:540px){
  .grid{grid-template-columns:1fr}
  h1{font-size:26px}.hero{padding-block:56px 40px}
  dl.info{grid-template-columns:1fr;gap:4px 0}dl.info dt{margin-top:12px}
}
