:root{
  --pink:#ff4f9a;--pink-2:#ff86bf;--violet:#8757ff;
  --night:#150b22;--night-2:#1e1030;--night-3:#2a1742;
  --line:rgba(214,190,255,.16);--text:#f4ecff;--muted:#b7a6cf;
  --grad:linear-gradient(115deg,#ff5fa2 0%,#d56cff 52%,#8757ff 100%);
  --f:'M PLUS Rounded 1c','Hiragino Maru Gothic ProN','Hiragino Sans','Yu Gothic',sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--night);color:var(--text);font-family:var(--f);line-height:1.75;-webkit-text-size-adjust:100%}
a{color:var(--pink-2)}
img{max-width:100%;height:auto;display:block}
[hidden]{display:none!important}

.hd{position:sticky;top:0;z-index:10;background:rgba(21,11,34,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-in{max-width:1120px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-weight:800}
.logo img{border-radius:50%}
.nav{display:flex;gap:14px;font-size:.88rem}
.nav a{color:var(--muted);text-decoration:none}
.nav a:hover{color:var(--text)}

.wrap{max-width:1120px;margin:0 auto;padding:24px 16px 48px}
.hero{text-align:center;padding:28px 0 20px}
.hero-sub{margin:0;color:var(--muted);font-size:.9rem}
.hero h1{margin:4px 0 10px;font-size:clamp(1.6rem,4vw,2.4rem);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-text{margin:0 auto;max-width:640px;color:var(--muted)}
.hero-count{margin-top:10px;font-size:.85rem;color:var(--muted)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:20px}
.card{background:var(--night-2);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;border-top:3px solid var(--c,var(--pink))}
.card-img{display:block;aspect-ratio:4/3;background:var(--night-3)}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.card-chara{margin:0;font-size:.8rem;font-weight:800;color:var(--c,var(--pink))}
.card-title{margin:4px 0 6px;font-size:1rem;line-height:1.5}
.card-title a{color:var(--text);text-decoration:none}
.card-syn{margin:0 0 8px;font-size:.86rem;color:var(--muted)}
.tags{margin:0 0 6px;display:flex;flex-wrap:wrap;gap:6px}
.tags span{font-size:.75rem;padding:1px 9px;border-radius:99px;background:var(--night-3);color:var(--text)}
.meta{margin:0 0 12px;font-size:.8rem;color:var(--muted)}
.rate{color:#ffc94d;font-weight:800}
.rev{margin-left:4px}
.card-btns{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;border-radius:99px;font-weight:800;text-decoration:none;border:0;cursor:pointer;font-family:inherit;font-size:.95rem}
.btn-fanza{background:var(--grad);color:#fff;box-shadow:0 6px 20px rgba(255,79,154,.3)}
.btn-fanza:hover{filter:brightness(1.08)}
.btn-sub{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-sub:hover{border-color:var(--pink-2)}

.crumb{font-size:.82rem;color:var(--muted);margin:0 0 14px}
.crumb a{color:var(--muted)}
.lp-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.lp-thumb{border-radius:16px;border:1px solid var(--line);width:100%}
.lp-info h1{margin:0 0 10px;font-size:clamp(1.2rem,2.6vw,1.6rem);line-height:1.5}
.lp-syn{color:var(--muted)}
.badge{display:inline-block;margin:0 0 8px;padding:2px 12px;border-radius:99px;background:var(--c,var(--pink));color:#fff;font-size:.8rem;font-weight:800}
.spec{width:100%;border-collapse:collapse;margin:10px 0 18px;font-size:.9rem}
.spec th,.spec td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}
.spec th{width:7em;color:var(--muted);font-weight:500}
.lp-info .btn-fanza{width:100%;padding:15px}
.sample{margin-top:40px;text-align:center}
.sample h2,.others h2{font-size:1.2rem;border-left:4px solid var(--c,var(--pink));padding-left:10px;text-align:left}
.pages{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.pages img{width:100%;border-radius:6px;background:var(--night-3)}
.sample-more{color:var(--muted);margin:18px 0 10px}
.sample .btn-fanza{min-width:280px;padding:15px}
.others{margin-top:48px}

.doc{max-width:760px}
.doc h1{font-size:1.5rem}
.doc h2{font-size:1.05rem;margin-top:28px;border-left:4px solid var(--pink);padding-left:10px}

.ft{border-top:1px solid var(--line);background:var(--night-2)}
.ft-in{max-width:1120px;margin:0 auto;padding:22px 16px;font-size:.8rem;color:var(--muted);text-align:center}
.ft-in a{color:var(--muted)}
.ft-pr{margin-top:0}
.ft-c{margin-bottom:0}

.gate{position:fixed;inset:0;z-index:100;background:var(--night);display:flex;align-items:center;justify-content:center;padding:16px}
.gate-box{max-width:420px;width:100%;text-align:center;background:var(--night-2);border:1px solid var(--line);border-radius:20px;padding:30px 22px}
.gate-icon{margin:0 auto 10px;border-radius:50%}
.gate-badge{display:inline-block;margin:0;padding:2px 12px;border-radius:99px;background:var(--pink);color:#fff;font-size:.8rem;font-weight:800}
.gate-box h1{margin:8px 0;font-size:1.4rem}
.gate-box p{color:var(--muted);font-size:.92rem}
.gate-btns{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.gate-no{color:var(--muted);font-size:.88rem}

@media (max-width:760px){
  .lp-hero{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .nav{gap:10px;font-size:.8rem}
}
.gate-box .gate-badge{color:#fff}
.nav a{white-space:nowrap}
@media (max-width:480px){.logo span{font-size:.88rem}.logo img{width:28px;height:28px}.hd-in{padding:8px 12px}}
