:root{--bg:#0f1226;--card:#181c38;--ink:#f3f4fb;--sub:#aab0d0;--acc:#ffd23f;--red:#e63946}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;line-height:1.8}
a{color:var(--acc)}.wrap{max-width:880px;margin:0 auto;padding:0 16px}
header{padding:20px 0;border-bottom:1px solid #2a2f55}header .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.logo{font-weight:900;font-size:20px;color:var(--ink);text-decoration:none}.logo span{color:var(--red)}
nav a{color:var(--sub);text-decoration:none;margin-left:16px;font-size:14px}
.hero{text-align:center;padding:40px 0 8px}.hero h1{font-size:clamp(26px,5vw,40px);margin:0 0 8px;line-height:1.3}.hero h1 b{color:var(--acc)}
.hero p{color:var(--sub);margin:0 0 20px}.hero img{width:100%;max-width:560px;height:auto}
.card{background:var(--card);border-radius:16px;padding:24px;margin:20px 0}.card h2{margin:0 0 12px;font-size:22px}
.chars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.chars div{background:#20254a;border-radius:12px;padding:16px}
.chars h3{margin:0 0 4px}.sns{display:flex;flex-wrap:wrap;gap:10px}.sns a{background:#20254a;padding:10px 16px;border-radius:999px;text-decoration:none;color:var(--ink)}
.soon{color:var(--sub);font-size:14px}footer{color:var(--sub);font-size:13px;text-align:center;padding:32px 0;border-top:1px solid #2a2f55;margin-top:32px}
.policy h2{font-size:19px;margin:28px 0 8px;border-left:4px solid var(--acc);padding-left:10px}.policy li{margin:4px 0}
.policy h1{font-size:clamp(22px,6vw,32px);margin:0 0 12px;line-height:1.4}
