*{box-sizing:border-box;margin:0;padding:0}
:root{--accent:#ff4f8b;--bg:#fafafa;--fg:#1d1d1f;--muted:#6e6e73}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP","Segoe UI",Roboto,sans-serif;line-height:1.7;color:var(--fg);background:var(--bg)}
a{color:var(--accent)}
.wrap{max-width:880px;margin:0 auto;padding:0 20px}
header.hero{background:linear-gradient(160deg,var(--accent),#ffb347);color:#fff;padding:64px 0 56px;text-align:center}
.icon{width:128px;height:128px;border-radius:28px;box-shadow:0 8px 24px rgba(0,0,0,.25);background:#fff}
h1{font-size:2rem;margin:20px 0 8px;line-height:1.3}
.tag{font-size:1.05rem;opacity:.95;max-width:34em;margin:0 auto 24px}
.badge{display:inline-block;background:#000;color:#fff;text-decoration:none;border-radius:12px;padding:10px 22px;border:1px solid #a6a6a6;font-weight:600}
.badge small{display:block;font-size:.7rem;font-weight:400;letter-spacing:.04em}
.badge.soon{background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.6)}
section{padding:44px 0}
h2{font-size:1.4rem;margin-bottom:18px;border-left:5px solid var(--accent);padding-left:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;list-style:none}
.grid li{background:#fff;border-radius:14px;padding:18px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.grid strong{display:block;margin-bottom:4px}
section.en{background:#fff}
section.en p,section.en li{color:#333}
footer{background:#1d1d1f;color:#d2d2d7;padding:32px 0;font-size:.9rem;text-align:center}
footer a{color:#fff;margin:0 10px}
footer p{margin-top:12px;color:#a1a1a6}
.legal{max-width:800px;margin:0 auto;padding:40px 20px;background:#fff;min-height:100vh}
.legal h1{font-size:1.8rem;text-align:center;color:var(--fg);margin:0 0 24px}
.legal h2{font-size:1.2rem;margin:28px 0 12px;border:0;padding:0}
.legal p{margin-bottom:14px}.legal ul,.legal ol{margin:0 0 14px 1.5em}.legal li{margin-bottom:6px}
.legal .muted{color:var(--muted);font-size:.9rem}
.backlink{display:block;max-width:800px;margin:0 auto;padding:16px 20px 0}
@media(max-width:560px){h1{font-size:1.6rem}header.hero{padding:44px 0 40px}}
