/* shikotan — baseline (足場用)。最終デザインは frontend ステップで差し替え */
:root{
  --bg:#0c0d10;
  --bg-elev:#15171c;
  --line:#23262e;
  --ink:#eceef2;
  --ink-dim:#9aa0ad;
  --accent:#e8c15a;        /* 抑制した一点アクセント */
  --accent-ink:#1a1a1a;
  --ok:#5ad08a;
  --ng:#e06464;
  --radius:14px;
  --maxw:1040px;
  --font-disp:"Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--font-body);line-height:1.6;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100vh;
}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.site-head{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.25rem;border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.brand{font-family:var(--font-disp);font-weight:800;font-size:1.35rem;letter-spacing:.01em}
.brand-mark{color:var(--accent)}
.lang-switch{display:flex;flex-wrap:wrap;gap:.35rem .6rem}
.lang-item{font-size:.82rem;color:var(--ink-dim);padding:.15rem .3rem;border-radius:6px}
.lang-item.is-active{color:var(--accent)}
.lang-item:hover{color:var(--ink)}

.site-main{flex:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:2rem 1.25rem}

.hero{padding:2.5rem 0 1.5rem}
.hero-eyebrow{color:var(--accent);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin:0 0 .6rem}
.hero-title{font-family:var(--font-disp);font-size:clamp(2rem,6vw,3.4rem);line-height:1.05;margin:0 0 .8rem}
.hero-sub{color:var(--ink-dim);max-width:46ch;margin:0}

.panel{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;margin-top:1.5rem}
.panel-title{font-family:var(--font-disp);font-size:1.05rem;margin:0 0 1rem}
.status{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.status .ok{color:var(--ok)}
.status .ng{color:var(--ng)}
.counts{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.9rem}
.counts td{border-top:1px solid var(--line);padding:.5rem .25rem}
.counts td:last-child{text-align:right;color:var(--accent)}
.hint{color:var(--ink-dim);font-size:.85rem;margin:1.2rem 0 0}

.site-foot{border-top:1px solid var(--line);padding:1.25rem;text-align:center;color:var(--ink-dim);font-size:.8rem}

/* 18禁ゲート */
.gate{min-height:60vh;display:flex;align-items:center;justify-content:center}
.gate-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:2.5rem 2rem;max-width:520px;text-align:center}
.gate-eyebrow{color:var(--accent);font-size:.72rem;letter-spacing:.22em;margin:0 0 1rem}
.gate-title{font-family:var(--font-disp);font-size:1.6rem;margin:0 0 1rem}
.gate-lead{color:var(--ink-dim);margin:0 0 1.5rem}
.gate-region{color:var(--ink-dim);font-size:.8rem;margin:0 0 1rem}
.gate-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;padding:.7rem 1.4rem;border-radius:999px;font-weight:700;font-size:.95rem;border:1px solid transparent}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{filter:brightness(1.06)}
.btn-ghost{border-color:var(--line);color:var(--ink-dim)}
.btn-ghost:hover{color:var(--ink);border-color:var(--ink-dim)}

[dir="rtl"] .site-head{flex-direction:row-reverse}

@media (max-width:560px){
  .site-main{padding:1.25rem}
  .gate-card{padding:1.75rem 1.25rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ============ フロント（一覧・詳細） ============ */
.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;width:100%}
.main-nav{display:flex;gap:1.25rem;margin-top:.9rem;flex-wrap:wrap}
.main-nav a{color:var(--ink-dim);font-size:.92rem;padding-bottom:.2rem;border-bottom:2px solid transparent}
.main-nav a:hover{color:var(--ink)}
.main-nav a.is-active{color:var(--accent);border-color:var(--accent)}

.block{margin-top:2rem}
.block-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.block-title{font-family:var(--font-disp);font-size:1.2rem;margin:0}
.block-title .count{color:var(--ink-dim);font-size:.85rem;font-weight:400}
.block-more{color:var(--accent);font-size:.85rem}
.empty{color:var(--ink-dim);padding:1.5rem 0}

/* グリッド/カード */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.1rem}
.grid-sm{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.card{display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card-thumb{position:relative;aspect-ratio:16/11;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:cover}
.card-noimg{color:var(--ink-dim);font-size:.8rem}
.card-time{position:absolute;right:.4rem;bottom:.4rem;background:rgba(0,0,0,.72);color:#fff;font-size:.72rem;padding:.1rem .4rem;border-radius:4px}
.card-body{padding:.6rem .7rem}
.card-title{margin:0;font-size:.86rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-perf{margin:.35rem 0 0;font-size:.76rem;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 出演者グリッド */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}
.pcard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem}
.pcard-img{width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--bg-elev);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.pcard-img img{width:100%;height:100%;object-fit:cover}
.pcard-init{font-family:var(--font-disp);font-size:1.6rem;color:var(--ink-dim)}
.pcard-name{font-size:.84rem}
.pcard-count{font-size:.72rem;color:var(--accent)}

/* chips / filters / tags */
.filters,.chips{display:flex;gap:.5rem;flex-wrap:wrap}
.chips{margin:.9rem 0}
.chip{display:inline-block;background:var(--bg-elev);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:.3rem .8rem;font-size:.82rem}
.chip:hover{border-color:var(--accent)}
.chip.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chip-static{cursor:default}
.chips-dim .chip{color:var(--ink-dim)}
.taglist{display:flex;flex-wrap:wrap;gap:.6rem}
.tag{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;padding:.45rem .8rem;font-size:.85rem}
.tag:hover{border-color:var(--accent)}
.tag-n{color:var(--accent);font-size:.75rem;margin-left:.3rem}
.search input{background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:.45rem .9rem;font-size:.85rem;min-width:200px}
.search input:focus{outline:none;border-color:var(--accent)}

/* 詳細 */
.detail-top{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:1.8rem}
.detail-art img{width:100%;border-radius:12px;border:1px solid var(--line)}
.detail-title{font-family:var(--font-disp);font-size:1.5rem;line-height:1.3;margin:0 0 1rem}
.meta-list{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0 0 1rem;font-size:.88rem}
.meta-list dt{color:var(--ink-dim)}.meta-list dd{margin:0}
.detail-cta{margin-top:.6rem}
.pdetail-head{display:flex;gap:1.5rem;align-items:center;margin-bottom:1rem}
.pdetail-img{width:120px;height:120px;border-radius:50%;overflow:hidden;border:1px solid var(--line);background:var(--bg-elev);display:flex;align-items:center;justify-content:center;flex:none}
.pdetail-img img{width:100%;height:100%;object-fit:cover}
.dim{color:var(--ink-dim)}

/* シーン: シグネチャのタイムライン */
.scenes,.appear,.goods{margin-top:2.2rem}
.scene-gate{background:var(--bg-elev);border:1px dashed var(--line);border-radius:12px;padding:1.4rem;color:var(--ink-dim)}
.timeline{position:relative;height:30px;background:#000;border:1px solid var(--line);border-radius:6px;margin:0 0 1.2rem;overflow:hidden}
.seg{position:absolute;top:0;height:100%;opacity:.92}
.scene-list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.scene-row{display:flex;align-items:center;gap:1rem;padding:.55rem .6rem;border-radius:8px}
.scene-row:nth-child(odd){background:var(--bg-elev)}
.scene-time{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.85rem;min-width:8.5rem}
.scene-type{font-size:.9rem;font-weight:600}
.scene-note{color:var(--ink-dim);font-size:.82rem}
.seg-dot{position:relative;padding-left:1rem}
.seg-dot::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:.6rem;height:.6rem;border-radius:2px;background:var(--ink-dim)}
/* 分類カラー（コード別） */
.seg-intro,.seg-dot.seg-intro::before{background:#5b8def}
.seg-interview,.seg-dot.seg-interview::before{background:#7d6cf0}
.seg-travel,.seg-dot.seg-travel::before{background:#3fb6a8}
.seg-changing,.seg-dot.seg-changing::before{background:#d98cc0}
.seg-foreplay,.seg-dot.seg-foreplay::before{background:#e8a23c}
.seg-main,.seg-dot.seg-main::before{background:#e0556b}
.seg-ending,.seg-dot.seg-ending::before{background:#8a93a3}

/* ページネーション */
.pagination{display:flex;gap:.35rem;justify-content:center;margin:2rem 0;flex-wrap:wrap}
.pg{display:inline-flex;min-width:2.2rem;height:2.2rem;align-items:center;justify-content:center;padding:0 .5rem;border:1px solid var(--line);border-radius:8px;color:var(--ink-dim);font-size:.85rem}
.pg:hover{border-color:var(--accent);color:var(--ink)}
.pg.is-cur{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pg-gap{color:var(--ink-dim);padding:0 .2rem;align-self:center}

@media (max-width:680px){
  .detail-top{grid-template-columns:1fr}
  .detail-art{max-width:280px}
  .scene-time{min-width:7rem}
}

/* ============ 会員UI ============ */
.user-nav{display:flex;gap:.8rem;align-items:center;margin-left:auto}
.user-link{font-size:.85rem;color:var(--ink-dim)}
.user-link:hover{color:var(--ink)}
.user-link.accent{color:var(--accent)}
.user-credit{color:var(--accent);font-size:.78rem}

.auth{max-width:420px;margin:2rem auto}
.auth h1{font-family:var(--font-disp);font-size:1.4rem;margin:0 0 1.2rem}
.form label{display:block;font-size:.85rem;color:var(--ink-dim);margin-bottom:1rem}
.form input,.form select{display:block;width:100%;margin-top:.3rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.6rem .7rem;font-size:.95rem}
.form .req{color:var(--accent)}
.form-err{color:var(--ng);background:rgba(224,100,100,.1);border-radius:8px;padding:.7rem 1rem;margin:0 0 1rem}
.form-err li{margin-left:1rem}
.auth-alt{margin-top:1.2rem;color:var(--ink-dim);font-size:.88rem}
.auth-alt a{color:var(--accent)}

.acct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem}
.acct-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:1.2rem;display:flex;flex-direction:column;gap:.3rem}
.acct-n{font-family:var(--font-disp);font-size:1.7rem;color:var(--accent)}
.acct-card span:last-child{font-size:.8rem;color:var(--ink-dim)}

.rate-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin:0 0 1rem}
.rate-avg{color:var(--accent);font-size:.95rem}
.rate-form select,.comment-form textarea{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.35rem .5rem}
.btn-fav-on{background:var(--accent);color:var(--accent-ink);border:none}

.sub-h{font-size:1rem;margin:1.4rem 0 .6rem;color:var(--ink-dim)}
.submit-box{margin-top:2.2rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:1.4rem}
.submit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.sform-mini{display:flex;flex-direction:column;gap:.5rem;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:1rem}
.sform-mini h4{margin:0 0 .2rem;font-size:.9rem}
.sform-mini input,.sform-mini select{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.5rem .6rem;font-size:.88rem}
.sform-mini .row2{display:flex;gap:.5rem}
.sform-mini .row2 input{width:100%}
.req-form{margin-top:1rem}
.req-form input{background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.5rem .6rem;min-width:260px}

.comments{margin-top:2.2rem}
.comment-form{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:1rem}
.comment-form textarea{flex:1;border-radius:8px;font-family:inherit}
.comment-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.comment-list li{border-bottom:1px solid var(--line);padding-bottom:.8rem}
.c-name{font-weight:600;font-size:.9rem}.c-date{font-size:.78rem;margin-left:.6rem}
.c-body{margin:.3rem 0 0;font-size:.92rem}
.chk{font-size:.82rem;color:var(--ink-dim);display:inline-flex;align-items:center;gap:.3rem}

/* 課金プラン */
.plan-box{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;padding:1.6rem;text-align:center}
.plan-price{font-family:var(--font-disp);font-size:2rem;color:var(--accent);margin:.2rem 0 1rem}
.plan-feat{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.5rem}
.plan-feat li{color:var(--ink-dim)}
.plan-feat li::before{content:"✓ ";color:var(--ok)}
.plan-on{color:var(--ok);font-weight:600}
.small{font-size:.8rem}

/* 広告枠 */
.ad{display:block;margin:1.2rem auto;text-align:center;max-width:100%}
.ad img{max-width:100%;height:auto;border-radius:8px}
.ad-header,.ad-footer{margin:1rem auto}
.ad-list_top,.ad-detail_top,.ad-detail_bottom{margin:1.5rem auto}

/* ランキング */
.rank-h{font-family:var(--font-disp);font-size:1.05rem;margin:1.8rem 0 .8rem;border-left:3px solid var(--accent);padding-left:.6rem}
.grid-rank .card{position:relative}
.rank-no{position:absolute;top:.4rem;left:.4rem;z-index:2;min-width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-weight:800;font-size:.8rem;background:rgba(0,0,0,.72);color:#fff}
.rank-no.rank-1{background:var(--accent);color:var(--accent-ink)}
.rank-no.rank-2{background:#c9ccd4;color:#1a1a1a}
.rank-no.rank-3{background:#d08a4a;color:#1a1a1a}
.rank-metric{position:absolute;top:.4rem;right:.4rem;z-index:2;background:rgba(0,0,0,.72);color:var(--accent);font-size:.74rem;padding:.1rem .4rem;border-radius:4px}
.pcard-img{position:relative}

/* フィルタバー */
.filterbar{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin:0 0 1.2rem;padding:.6rem .8rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:10px}
.fb-item{font-size:.82rem;color:var(--ink-dim);display:inline-flex;align-items:center;gap:.4rem}
.fb-item select{background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.35rem .5rem;font-size:.85rem}
.fb-clear{font-size:.8rem;color:var(--accent);margin-left:auto}

/* 2カラム + サイドバー */
.layout-2col{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start}
.col-main{min-width:0}
.col-side{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1.2rem}
.side-search input{width:100%;background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:.5rem .9rem;font-size:.85rem}
.side-search input:focus{outline:none;border-color:var(--accent)}
.side-box{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}
.side-h{font-family:var(--font-disp);font-size:.92rem;margin:0 0 .7rem;color:var(--ink)}
.side-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.side-list li{font-size:.85rem;display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.side-list a{color:var(--ink-dim)}
.side-list a:hover{color:var(--accent)}
.side-n{color:var(--accent);font-size:.75rem;white-space:nowrap}
.side-more{margin:0}.side-more a{color:var(--accent);font-size:.85rem}
.col-side .ad{margin:0}
@media (max-width:860px){
  .layout-2col{grid-template-columns:1fr}
  .col-side{position:static;flex-direction:row;flex-wrap:wrap}
  .col-side .side-box,.col-side .side-search{flex:1 1 240px}
}

.fb-sel{background:var(--bg-elev);border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.3rem .5rem;font-size:.82rem}
.related{margin-top:2.2rem}

.form-ok{color:var(--ok);background:rgba(90,208,138,.12);border-radius:8px;padding:.7rem 1rem;margin:0 0 1rem}
.auth-sub{font-family:var(--font-disp);font-size:1.05rem;margin:1.8rem 0 .8rem;border-top:1px solid var(--line);padding-top:1.2rem}

/* 横断検索 */
.search-big{display:flex;gap:.6rem;margin:0 0 1.2rem}
.search-big input{flex:1;background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;color:var(--ink);padding:.7rem 1.1rem;font-size:.95rem}
.search-big input:focus{outline:none;border-color:var(--accent)}

.auth-narrow{max-width:420px}
.auth-note{color:var(--ink-dim);font-size:.9rem;margin:0 0 1rem}
