/* iromoe.com（色萌え）モック用：萌え.com の site.css / moe.css をそのまま使い、色だけ夜の配色に差し替える */
:root,:root[data-theme="light"],:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#1B1225; --surface:#261A33; --ink:#F5EAF6; --muted:#B9A3C4; --line:#3D2B4D;
  --moe:#FF6FAE; --moe-soft:#3F2240; --denno:#9D7BFF; --denno-soft:#2A2145;
  --up:#FF7A9A; --down:#9D7BFF; --stage:#33213F; --stage2:#2B1C3A;
  --led-bg:#120B18; --led:#FF9ACB;
}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){color-scheme:dark}}
body{background:radial-gradient(1200px 600px at 80% -10%,#3A1F4D 0,transparent 60%),var(--ground)}
.iro-logo .nm{color:var(--ink)}
.iro-logo .nm span{color:var(--moe)}
.r18{display:inline-block;font-family:var(--f-dot);font-size:11px;padding:1px 7px;border-radius:4px;background:var(--moe);color:#1B1225;margin-left:8px;vertical-align:middle}
.sister-iro{display:flex;justify-content:center;gap:14px;align-items:center;flex-wrap:wrap;font-size:12px;padding:6px 16px;background:#120B18;color:var(--muted)}
.sister-iro a{color:var(--ink);text-decoration:none;padding:2px 10px;border-radius:999px;border:1px solid var(--line)}
.sister-iro a.me{background:var(--moe);color:#1B1225;border-color:var(--moe)}

/* ヒーロー：裏りんかの横長画像を主役に */
.iro-hero{position:relative;border-radius:24px;overflow:hidden;border:2px solid var(--line);margin:8px 0 18px;min-height:340px;display:grid;align-items:end}
.iro-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%}
.iro-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,18,37,.95) 0,rgba(27,18,37,.75) 38%,transparent 70%)}
.iro-hero-text{position:relative;z-index:1;padding:28px;max-width:560px}
.iro-hero h1{font-family:var(--f-display);font-weight:400;font-size:clamp(30px,4.6vw,48px);line-height:1.2;margin:4px 0 10px}
.iro-hero h1 em{font-style:normal;color:var(--moe)}
.iro-hero .lead{font-size:14.5px;margin:0 0 14px;color:var(--ink)}
.iro-hero .bubble{background:rgba(38,26,51,.92)}

/* 入口（ドア） */
.iro-doors{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:8px}
.iro-door{display:grid;gap:4px;text-decoration:none;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--c)}
.iro-door b{font-family:var(--f-display);font-weight:400;font-size:19px;color:var(--c)}
.iro-door span{font-size:12.5px;color:var(--muted)}

/* 作品カード（画像は公式サンプルが入る位置） */
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.wcard{text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.wcard .ph{position:relative;aspect-ratio:4/3;background:repeating-linear-gradient(45deg,#2E1F3C 0 10px,#33223F 10px 20px);display:grid;place-items:center;color:var(--muted);font-size:11.5px;font-family:var(--f-dot)}
.wcard .body{padding:10px 12px 12px;display:grid;gap:3px}
.wcard small{font-size:11.5px;color:var(--muted)}
.wcard b{font-size:13.5px;line-height:1.45}
.wcard .price{font-family:var(--f-dot);font-size:14px}
.wcard .price s{color:var(--muted);font-size:12px;margin-right:4px}
.badge{position:absolute;left:8px;top:8px;font-family:var(--f-dot);font-size:12px;padding:1px 8px;border-radius:999px;background:var(--moe);color:#1B1225}
.badge.off{background:#FFD166}
.badge.left{left:auto;right:8px;background:#120B18;color:var(--led);border:1px solid var(--led)}
.store{display:inline-block;font-size:10.5px;font-weight:700;padding:0 6px;border-radius:4px;background:#3D2B4D;color:var(--ink);margin-right:4px}

/* ランキング（順位の上下つき） */
.rank{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rank li a{display:grid;grid-template-columns:44px 72px minmax(0,1fr) auto;gap:12px;align-items:center;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.rank .no{font-family:var(--f-display);font-size:24px;text-align:center;color:var(--moe)}
.rank .th{aspect-ratio:4/3;border-radius:6px;background:repeating-linear-gradient(45deg,#2E1F3C 0 8px,#33223F 8px 16px)}
.rank b{display:block;font-size:14px;line-height:1.4}
.rank small{font-size:11.5px;color:var(--muted)}
.mv{font-family:var(--f-dot);font-size:13px;padding:1px 8px;border-radius:6px;white-space:nowrap}
.mv.up{background:#3B1E2E;color:#FF7A9A}.mv.down{background:#221F3D;color:#9D7BFF}.mv.new{background:#FFD166;color:#1B1225}.mv.stay{color:var(--muted)}

/* 発売予定カレンダー */
.cal2{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cal2 li{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.cal2 time{font-family:var(--f-dot);font-size:18px;color:var(--moe);line-height:1.2}
.cal2 time small{display:block;font-size:11px;color:var(--muted)}
.cal2 b{display:block;font-size:14px}
.cal2 small{font-size:12px;color:var(--muted)}
.gcal2{font-size:12px;font-weight:700;color:#8AB4F8;text-decoration:none;white-space:nowrap}

/* 声優・サークル */
.people2{display:flex;flex-wrap:wrap;gap:8px}
.people2 a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;padding:6px 14px 6px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:14px;font-weight:700}
.people2 a i{width:30px;height:30px;border-radius:50%;background:var(--stage);display:inline-block}
.people2 a small{font-weight:400;color:var(--muted);font-size:11.5px}

/* 萌え.net（一般向け）への大きな案内 */
.to-moe{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;text-decoration:none;padding:20px 24px;border-radius:22px;background:linear-gradient(120deg,#FFE1EC,#FFF5F8);color:#2B1D2A;border:2px solid #EE5C97}
.to-moe .label{font-family:var(--f-dot);font-size:12px;color:#EE5C97;letter-spacing:.1em}
.to-moe b{display:block;font-family:var(--f-display);font-weight:400;font-size:26px;color:#EE5C97;line-height:1.3}
.to-moe p{margin:4px 0 0;font-size:14px}
.to-moe .go{font-weight:700;background:#EE5C97;color:#fff;padding:10px 18px;border-radius:999px;white-space:nowrap}

/* 年齢確認 */
.gate{min-height:100vh;display:grid;place-items:center;padding:24px}
.gate-card{max-width:560px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.gate-card .top{position:relative;aspect-ratio:1200/520;overflow:hidden}
.gate-card .top img{width:100%;height:100%;object-fit:cover;object-position:60% 30%;filter:saturate(.9)}
.gate-card .in{padding:22px 24px 26px;display:grid;gap:12px;text-align:center}
.gate-card h1{font-family:var(--f-display);font-weight:400;font-size:26px;margin:0}
.gate-card p{margin:0;font-size:14px;color:var(--muted)}
.gate-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.gate-btns a{text-decoration:none;font-weight:700;padding:12px;border-radius:14px;font-size:15px}
.gate-btns .yes{background:var(--moe);color:#1B1225}
.gate-btns .no{background:#FFE1EC;color:#2B1D2A}
.gate small{font-size:12px;color:var(--muted)}
@media (max-width:760px){.iro-hero::after{background:linear-gradient(0deg,rgba(27,18,37,.96) 0,rgba(27,18,37,.7) 55%,transparent 90%)}.iro-hero{min-height:460px}.rank li a{grid-template-columns:34px 60px minmax(0,1fr)}.rank .mv{grid-column:3}.to-moe{grid-template-columns:1fr}.cal2 li{grid-template-columns:56px minmax(0,1fr)}.cal2 .gcal2{grid-column:2}}

/* 年齢確認（本文の上に重ねる。確認済みなら html に age-ok が付いて消える） */
.agegate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(18,11,24,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:auto}
html.age-ok .agegate{display:none}
html:not(.age-ok) body{overflow:hidden}
.gate-btns button{font:inherit;font-weight:700;padding:12px;border-radius:14px;font-size:15px;border:0;cursor:pointer}
.gate-btns a{display:grid;place-items:center}
.iro-hero .comment p{background:rgba(38,26,51,.92)}
.rank .th{overflow:hidden}
.rank .th img,.wcard .ph img{width:100%;height:100%;object-fit:cover;display:block}
.wcard .ph img{position:absolute;inset:0}
.fd .gallery .main.wide{aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:var(--stage)}
.fd .gallery .main.wide img{width:100%;height:100%;object-fit:contain}
.fd .thumbs a{display:block}
/* アダルトゲームの発売日カレンダー */
.gcal-list .grow{grid-template-columns:62px 96px minmax(0,1fr);align-items:start}
.gth{display:block;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:var(--stage)}
.gth img{width:100%;height:100%;object-fit:cover;display:block}
.gtags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.gtags i{font-style:normal;font-size:11px;padding:0 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.gbtns{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:8px}
.gbuy{font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;background:var(--moe);color:#1B1225;text-decoration:none}
@media (max-width:760px){.gcal-list .grow{grid-template-columns:48px 72px minmax(0,1fr)}.gcal-list .grow .gcal2{grid-column:auto}}
.wcard .ph.tall{aspect-ratio:3/4}
.gtitle{color:inherit;text-decoration:none}
.gtitle:hover b{text-decoration:underline}
.fd .shops td:first-child{font-size:13px}

/* セールのバナー（各ページの上部） */
.salebar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;text-decoration:none;margin:10px 0 14px;padding:12px 16px;border-radius:18px;
  background:linear-gradient(110deg,#FF3D7F,#FF8A3D 55%,#FFD166);color:#1B1225;box-shadow:0 6px 24px rgba(255,61,127,.35);border:2px solid #FFE1EC}
.salebar .sb-tag{font-family:var(--f-display);font-size:22px;background:#1B1225;color:#FFD166;padding:4px 12px;border-radius:10px;letter-spacing:.06em}
.salebar .sb-main b{display:block;font-size:19px;line-height:1.35}
.salebar .sb-main small{display:block;font-size:12.5px;font-weight:700;opacity:.85}
.salebar .sb-thumbs{display:flex;gap:6px}
.salebar .sb-thumbs img{width:54px;height:54px;object-fit:cover;border-radius:8px;border:2px solid #fff}
.salebar .sb-go{font-weight:700;background:#1B1225;color:#fff;padding:8px 14px;border-radius:999px;white-space:nowrap;text-decoration:none;font-size:13.5px}
.salebar.solo{grid-template-columns:auto minmax(0,1fr) auto}
@media (max-width:760px){.salebar{grid-template-columns:auto minmax(0,1fr)}.salebar .sb-thumbs{display:none}.salebar .sb-go{grid-column:1/-1;text-align:center}.salebar.solo{grid-template-columns:auto minmax(0,1fr)}}

/* 作品ページのギャラリー：PC でもサムネイルが見えるよう、枠の大きさを固定する */
.fd .gallery .main.wide{display:block;width:100%;padding:0;border:2px solid var(--line);cursor:zoom-in}
.fd .thumbs{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
.fd .thumbs button{display:block;aspect-ratio:4/3;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:var(--stage);cursor:zoom-in}
.fd .thumbs button:hover{border-color:var(--moe)}
.fd .thumbs img{width:100%;height:100%;object-fit:cover}
.fd .gallery .zoom{position:absolute;right:10px;bottom:10px;font-size:12px;font-weight:700;background:rgba(18,11,24,.75);color:#fff;padding:3px 10px;border-radius:999px}
/* 拡大表示（lightbox） */
.lbx{position:fixed;inset:0;z-index:900;background:rgba(10,6,14,.94);display:grid;place-items:center;touch-action:pan-y}
.lbx[hidden]{display:none}
html.lbx-open body{overflow:hidden}
.lbx img{max-width:min(96vw,1400px);max-height:88vh;object-fit:contain;cursor:pointer;user-select:none;-webkit-user-drag:none}
.lbx button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;font:inherit}
.lbx-prev,.lbx-next{top:50%;transform:translateY(-50%);width:52px;height:72px;font-size:40px;line-height:1;border-radius:14px}
.lbx-prev{left:12px}.lbx-next{right:12px}
.lbx-close{top:12px;right:12px;width:48px;height:48px;font-size:30px;border-radius:50%}
.lbx-count{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);color:#fff;font-family:var(--f-dot);font-size:14px;background:rgba(0,0,0,.4);padding:3px 12px;border-radius:999px}
.lbx button:hover{background:rgba(255,255,255,.28)}
@media (max-width:760px){.lbx-prev,.lbx-next{width:40px;height:60px;font-size:32px;background:rgba(255,255,255,.1)}.lbx img{max-width:100vw;max-height:80vh}}

/* ジャンル・タグのリンク */
.chip.link{text-decoration:none;cursor:pointer;border:1px solid var(--moe)}
.chip.link:hover{background:var(--moe);color:#1B1225}

/* セールのカウントダウン（秒単位）。24時間を切るとバナーが脈打ち、1時間を切ると点滅する */
.salebar .cd{display:inline-block;margin-top:4px;font-family:var(--f-dot);font-size:20px;letter-spacing:.04em;background:#1B1225;color:#FFD166;padding:2px 12px;border-radius:8px;font-variant-numeric:tabular-nums}
.salebar .cd.hot{color:#FF6FAE}
.salebar .cd.fire{color:#fff;background:#E5352B;animation:cdblink 1s steps(2,end) infinite}
.salebar .cd.over{color:#B9A3C4;background:rgba(27,18,37,.6)}
.salebar.hot{animation:cdpulse 1.6s ease-in-out infinite}
@keyframes cdpulse{0%,100%{box-shadow:0 6px 24px rgba(255,61,127,.35)}50%{box-shadow:0 6px 38px rgba(255,61,127,.85),0 0 0 4px rgba(255,209,102,.6)}}
@keyframes cdblink{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.salebar.hot,.salebar .cd.fire{animation:none}}
@media (max-width:760px){.salebar .cd{font-size:17px}}

/* 人気のジャンル（絞り込み） */
.genrebar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 6px}
.genrebar .gb-label{font-family:var(--f-dot);font-size:12px;color:var(--muted);margin-right:4px}
.genrebar .chip.link{font-size:13px;padding:3px 12px}
/* サンプルを読む・立ち読み */
.readbtn{display:grid;gap:2px;width:100%;margin:12px 0 0;padding:12px 16px;border-radius:14px;border:2px solid var(--moe);background:var(--moe-soft);color:var(--ink);font:inherit;font-weight:700;font-size:16px;text-align:center;text-decoration:none;cursor:pointer}
.readbtn small{font-size:12px;font-weight:500;color:var(--muted)}
.readbtn.out{border-color:var(--line);background:var(--surface)}
/* サンプル動画（押したときに読み込む） */
.movie{position:relative;width:100%;max-width:720px;aspect-ratio:720/480;border-radius:16px;overflow:hidden;background:#000;border:2px solid var(--line)}
.movie iframe,.movie-play{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.movie-play{padding:0;background:#000;cursor:pointer;color:#fff;font:inherit}
.movie-play img{width:100%;height:100%;object-fit:cover;opacity:.55}
.movie-play i{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(255,111,174,.92)}
.movie-play i::after{content:"";position:absolute;left:30px;top:22px;border-style:solid;border-width:16px 0 16px 26px;border-color:transparent transparent transparent #fff}
.movie-play span{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-weight:700;font-size:14px;text-shadow:0 1px 4px #000}
