:root{--ink:#2a1f3d;--mut:#6d6283;--bg:#fff8fb;--g1:#ff7eb6;--g2:#ffb38a;--b1:#5b8cff;--b2:#8a6cff;--a1:var(--g1);--a2:var(--g2)}
body.boys{--a1:var(--b1);--a2:var(--b2);--bg:#f6f8ff}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:"Hiragino Sans","Noto Sans JP","Yu Gothic",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;transition:background .4s}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;max-width:1080px;margin:0 auto}
.logo{font-weight:900;font-size:22px;letter-spacing:.02em;text-decoration:none}
.logo b{background:linear-gradient(90deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;color:transparent}
.logo small{font-size:12px;color:var(--mut);margin-left:6px;font-weight:600}
.lang a{font-size:13px;margin-left:10px;color:var(--mut);text-decoration:none}.lang a.on{color:var(--ink);font-weight:800}
.hero{text-align:center;padding:28px 0 8px}
.kicker{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;padding:4px 12px;border-radius:99px;background:#fff;box-shadow:0 2px 10px #0001;color:var(--a1)}
h1{font-size:clamp(30px,7.5vw,56px);line-height:1.2;margin:14px 0 10px;font-weight:900}
h1 span{background:linear-gradient(90deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{color:var(--mut);max-width:560px;margin:0 auto;font-size:16px}
.toggle{display:inline-flex;background:#fff;border-radius:99px;padding:5px;margin:26px 0 6px;box-shadow:0 4px 18px #0001}
.toggle button{border:0;background:none;font:inherit;font-weight:800;font-size:15px;padding:10px 22px;border-radius:99px;cursor:pointer;color:var(--mut)}
.toggle button[aria-pressed=true]{background:linear-gradient(90deg,var(--a1),var(--a2));color:#fff}
.hint{font-size:12px;color:var(--mut)}
.fan{position:relative;height:250px;margin:18px auto 0;max-width:560px}main{overflow-x:hidden}
.card{position:absolute;bottom:0;left:50%;width:120px;aspect-ratio:416/608;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 12px 30px #2a1f3d26;border:3px solid #fff;transition:transform .5s,opacity .3s}
.card img{width:100%;height:100%;object-fit:cover;display:block}
.card:after{content:"";position:absolute;inset:0;border-radius:13px;box-shadow:inset 0 0 0 2px var(--a1);opacity:.5}
.fan .card:nth-child(1){transform:translateX(-150%) rotate(-14deg) translateY(18px)}
.fan .card:nth-child(2){transform:translateX(-100%) rotate(-6deg)}
.fan .card:nth-child(3){transform:translateX(-50%) translateY(-14px);z-index:2;width:140px}
.fan .card:nth-child(4){transform:translateX(0%) rotate(6deg)}
.fan .card:nth-child(5){transform:translateX(50%) rotate(14deg) translateY(18px)}
.set{display:none}.set.on{display:block}
.badges{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:30px 0 8px}
.badge{display:flex;align-items:center;gap:10px;background:#111;color:#fff;border-radius:12px;padding:9px 16px;text-decoration:none;min-width:170px;opacity:.9}
.badge svg{width:24px;height:24px;fill:#fff}.badge small{display:block;font-size:10px;opacity:.75}.badge strong{font-size:15px}
.soon{font-size:12px;color:var(--mut);text-align:center}
section{padding:56px 0 8px}
h2{font-size:clamp(22px,5vw,32px);text-align:center;margin-bottom:24px;font-weight:900}
.feat{display:grid;gap:14px;grid-template-columns:1fr}
.f{background:#fff;border-radius:20px;padding:20px;box-shadow:0 6px 24px #2a1f3d10}
.f i{font-style:normal;font-size:26px}.f h3{font-size:17px;margin:6px 0 4px}.f p{color:var(--mut);font-size:14px}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gal img{width:100%;border-radius:14px;background:#fff;box-shadow:0 6px 18px #2a1f3d14;aspect-ratio:416/608;object-fit:cover}
.cta{text-align:center;background:linear-gradient(120deg,var(--a1),var(--a2));color:#fff;border-radius:28px;padding:34px 20px;margin:56px 0 0}
.cta h2{margin-bottom:8px}.cta .badge{background:#fff;color:#111}.cta .badge svg{fill:#111}
footer{padding:40px 20px;text-align:center;font-size:13px;color:var(--mut)}footer a{margin:0 8px}
.doc{max-width:760px;margin:0 auto;padding:10px 20px 40px}.doc h1{font-size:30px}.doc h2{text-align:left;font-size:20px;margin:26px 0 8px}.doc p,.doc li{color:#3d3352;font-size:15px}.doc ul{padding-left:20px}
@media(min-width:760px){.feat{grid-template-columns:repeat(3,1fr)}.gal{grid-template-columns:repeat(6,1fr)}.fan{height:330px}.card{width:180px}.fan .card:nth-child(3){width:205px}}
