:root{--bg:#fbf8fc;--surface:#fff;--text:#2c1c38;--muted:#75677d;--line:#eadff0;--primary:#8c3fb0;--accent:#e94f91;--danger:#a5283a;--shadow:0 8px 28px rgba(68,31,83,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.75}a{color:#703096;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{text-decoration-thickness:2px}img{max-width:100%;height:auto}button,input{font:inherit}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-100px;z-index:100;background:#fff;padding:10px 14px}.skip-link:focus{top:12px}.site-header{background:#fff;border-bottom:1px solid var(--line)}.site-header__inner,.search-area,.container,.site-footer__inner{width:min(1120px,calc(100% - 32px));margin-inline:auto}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:12px}.site-logo{display:inline-flex;align-items:center;flex-shrink:0;line-height:0}.site-logo img{display:block;width:120px;height:auto;max-width:100%}.favorite-link{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid #dfcde8;border-radius:999px;background:#fff;text-decoration:none;font-weight:700}.favorite-link>span:first-child{color:var(--accent)}.favorite-count{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#f3e8f7;font-size:.78rem}.search-area{padding:18px 0 0}.site-search{display:flex;gap:9px}.site-search input{min-width:0;flex:1;padding:14px 16px;border:1px solid #d8c7e1;border-radius:11px;background:#fff;font-size:16px;box-shadow:0 2px 10px rgba(67,37,78,.03)}.site-search input:focus{outline:3px solid rgba(140,63,176,.15);border-color:var(--primary)}.site-search button{min-width:96px;border:0;border-radius:11px;padding:0 22px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--primary));font-weight:800;cursor:pointer}.container{margin-top:32px;margin-bottom:56px}.page-intro{padding:8px 2px 4px}.page-intro h1,.prose h1{margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.35}.page-intro p{margin:0;color:var(--muted)}.notice{margin:22px 0 0;padding:12px 16px;border:1px solid #f0c5cf;border-radius:10px;background:#fff1f4;color:#8c2943}.content-section{margin-top:28px;padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px;border-bottom:2px solid #f0e6f3;padding-bottom:11px}.section-heading h2,.content-section>h1,.search-result-group h2{margin:0;line-height:1.4}.section-heading h2{font-size:clamp(1.3rem,3vw,1.65rem);border-left:5px solid var(--accent);padding-left:12px}.section-heading>a{white-space:nowrap;font-size:.92rem}.card-grid{display:grid;gap:18px}.card-grid--works{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card{display:grid;grid-template-columns:150px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.card-image{display:grid;place-items:center;min-height:150px;background:#f7f0f9;color:var(--muted);text-decoration:none}.card-image img{width:100%;height:100%;object-fit:cover}.card-body{padding:15px}.card-body h3,.series-card h3,.review-card h3{margin:0 0 8px;font-size:1.03rem;line-height:1.55}.card-meta{margin:0;color:var(--muted);font-size:.88rem}.series-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.series-card{padding:17px;border:1px solid var(--line);border-radius:12px;background:#fdfbfe}.series-card p{margin:0;color:var(--muted);font-size:.9rem}.name-link-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0;padding:0;list-style:none}.name-link-list li{display:flex;justify-content:space-between;gap:8px;padding:11px 12px;border-bottom:1px dotted #d8c8df}.name-link-list span{color:var(--muted);font-size:.82rem;white-space:nowrap}.review-list,.comment-list{display:grid;gap:12px}.review-card,.comment-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fdfbfe}.review-card p,.comment-card p{margin:7px 0}.comment-target{font-weight:700}.comment-card time{color:var(--muted);font-size:.82rem}.empty-state{margin:0;padding:24px;text-align:center;border:1px dashed #cfb8da;border-radius:11px;background:#fcf9fd;color:var(--muted)}.narrow-page{max-width:860px}.prose h2{margin-top:32px;font-size:1.35rem}.search-result-group{margin-top:26px}.search-result-group ul{padding-left:1.4em}.site-footer{margin-top:60px;border-top:1px solid #dfcfe8;background:#f3eaf7;color:#4d3658}.site-footer__inner{padding:30px 0;text-align:center}.footer-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 24px}.footer-nav a{color:#5f287f;font-weight:600}.footer-nav a:hover{color:#7d34a5}.copyright{margin:20px 0 0;color:#75677d;font-size:.85rem}.catalog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:22px 0 0;padding:0;list-style:none}.catalog-list li{padding:11px 4px;border-bottom:1px dotted #d8c8df}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 15px;border:1px solid transparent;border-radius:8px;text-decoration:none;font-weight:700;cursor:pointer}.button--primary{background:var(--primary);color:#fff}.button--secondary{background:#fff;border-color:#cfbdd8;color:var(--text)}.button--danger{background:var(--danger);color:#fff}.button--small{min-height:34px;padding:5px 11px;font-size:.84rem}.button--affiliate{background:#fff;color:#111;border-color:#fff}.favorite-toggle{border:1px solid #ddd;background:#fff;border-radius:7px;padding:6px 11px;font-weight:700;cursor:pointer}.favorite-toggle[aria-pressed="true"]{border-color:#ef93b9;background:#fff0f6;color:#a52159}.favorite-toggle--card{margin-top:12px;font-size:.82rem}.sample-player{overflow:hidden;background:#050505;color:#fff;border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.2)}.sample-player:focus{outline:3px solid rgba(233,79,145,.55);outline-offset:3px}.sample-player__topbar,.sample-player__titlebar,.sample-player__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.sample-player__topbar{border-bottom:1px solid #333}.sample-player__topbar strong{font-size:1.08rem}.sample-player__titlebar{background:#262626}.sample-player__titlebar h3{margin:0;font-size:.95rem;line-height:1.5}.sample-player__media{position:relative;background:#000}.sample-player video{display:block;width:100%;max-height:min(68vh,680px);background:#000}.sample-nav{position:absolute;top:50%;width:46px;height:64px;transform:translateY(-50%);border:0;background:rgba(0,0,0,.45);color:#fff;font-size:2.2rem;cursor:pointer}.sample-nav:hover{background:rgba(0,0,0,.7)}.sample-nav--prev{left:0;border-radius:0 9px 9px 0}.sample-nav--next{right:0;border-radius:9px 0 0 9px}.sample-player__footer{background:#262626}.sample-player__meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:#ddd;font-size:.88rem}.sample-player--compact video{max-height:560px}.favorite-tools{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.import-mode{display:flex;flex-wrap:wrap;gap:10px 22px;margin:18px 0 0;padding:14px;border:1px solid var(--line);border-radius:10px}.import-mode legend{padding:0 7px;font-weight:700}.form-message{min-height:1.8em;margin-bottom:0;font-weight:700}.form-note{color:var(--muted);font-size:.88rem}.favorite-id-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.favorite-id-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:9px}.favorite-page-count{color:var(--muted);font-weight:700}.danger-zone{border-color:#efc4ca}
@media(min-width:768px){.site-logo img{width:136px}}
@media(max-width:800px){.card-grid--works{grid-template-columns:1fr}.name-link-list{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header__inner{min-height:0}.favorite-link{padding:8px 10px;font-size:.88rem}.content-section{padding:19px}.section-heading{align-items:flex-start}.work-card{grid-template-columns:125px minmax(0,1fr)}.sample-player__footer{align-items:flex-start;flex-direction:column}.sample-player__footer .button{width:100%}}
@media(max-width:600px){.catalog-list{grid-template-columns:1fr}}
@media(max-width:520px){.site-header__inner,.search-area,.container,.site-footer__inner{width:min(100% - 22px,1120px)}.site-search{gap:6px}.site-search input{padding:12px}.site-search button{min-width:76px;padding:0 14px}.page-intro h1{font-size:1.7rem}.content-section{margin-top:20px;padding:16px;border-radius:13px}.section-heading{display:block}.section-heading>a{display:inline-block;margin:9px 0 0}.series-grid,.name-link-list{grid-template-columns:1fr}.work-card{grid-template-columns:110px minmax(0,1fr)}.card-image{min-height:125px}.card-body{padding:12px}.favorite-link{font-size:0;width:43px;height:43px;justify-content:center;padding:0}.favorite-link span{font-size:1rem}.favorite-link .favorite-count{position:absolute;margin:0 0 31px 31px;font-size:.7rem}.sample-player__topbar,.sample-player__titlebar{align-items:flex-start}.sample-player__topbar strong{font-size:.95rem}.sample-player__titlebar h3{font-size:.84rem}.sample-nav{width:38px;height:55px}.favorite-toggle{font-size:.78rem}.favorite-id-list li{align-items:flex-start;flex-direction:column}.favorite-id-list .button{width:100%}}

/* Series public pages v0.4.8 */
.series-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.series-catalog-card{display:grid;grid-template-columns:180px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.series-catalog-card__image{display:grid;place-items:center;min-height:180px;background:#f7f0f9;color:var(--muted);text-decoration:none}.series-catalog-card__image img{width:100%;height:100%;object-fit:cover}.series-catalog-card__body{padding:17px}.series-catalog-card__body h2{margin:0 0 6px;font-size:1.15rem;line-height:1.5}.series-catalog-card__body p{margin:8px 0;color:var(--muted)}.series-detail-link{display:inline-block;margin-top:4px;font-weight:700}.public-breadcrumb{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0 0 18px;color:var(--muted);font-size:.9rem}.series-detail__header{display:grid;grid-template-columns:minmax(220px,360px) minmax(0,1fr);align-items:center;gap:28px;padding:26px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.series-detail__image{overflow:hidden;border-radius:12px;background:#f7f0f9}.series-detail__image img{display:block;width:100%;max-height:420px;object-fit:cover}.series-detail__heading h1{margin:0;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.35}.series-detail__kana{margin:8px 0 0;color:var(--muted)}.series-detail__count{display:inline-block;margin:18px 0 0;padding:6px 12px;border-radius:999px;background:#f3e8f7;font-weight:700}.series-description{overflow-wrap:anywhere}.series-description>:first-child{margin-top:0}.series-description>:last-child{margin-bottom:0}@media(max-width:900px){.series-catalog-grid{grid-template-columns:1fr}}@media(max-width:700px){.series-catalog-card{grid-template-columns:125px minmax(0,1fr)}.series-catalog-card__image{min-height:140px}.series-detail__header{grid-template-columns:1fr;padding:18px}.series-detail__image{max-width:420px}.series-detail__heading h1{font-size:1.8rem}}@media(max-width:480px){.series-catalog-card{grid-template-columns:1fr}.series-catalog-card__image{max-height:260px}.series-catalog-card__body{padding:14px}}


/* v0.7.0 作品一覧・詳細 */
.work-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.work-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:18px;border:1px solid #eadcf0;border-radius:14px;background:#fff}.work-card-image{display:grid;place-items:center;min-height:190px;border-radius:10px;overflow:hidden;background:#faf6fc}.work-card-image img{width:100%;height:100%;max-height:230px;object-fit:cover}.work-card h2{margin:4px 0 12px;font-size:20px}.work-detail{display:grid;gap:28px}.work-detail-hero{display:grid;grid-template-columns:minmax(220px,360px) minmax(0,1fr);gap:30px;padding:28px;border:1px solid #eadcf0;border-radius:18px;background:#fff}.work-detail-hero>img{width:100%;max-height:520px;object-fit:contain;border-radius:12px}.work-detail-hero h1{margin:0;font-size:clamp(16.8px,2.1vw,25.2px);line-height:1.45;overflow-wrap:anywhere}.work-meta{display:grid;gap:8px;margin-top:22px}.work-meta div{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #eee}.work-meta dt{font-weight:700}.work-tags{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.work-tags strong{min-width:90px}.work-tags a,.work-tags span{padding:5px 10px;border-radius:999px;background:#f6ecfa}
@media(max-width:800px){.work-card-grid{grid-template-columns:1fr}.work-detail-hero{grid-template-columns:1fr}.work-detail-hero>img{max-width:480px;margin:auto}}@media(max-width:520px){.work-card{grid-template-columns:105px 1fr;padding:12px}.work-card-image{min-height:145px}.work-card h2{font-size:17px}}

.actress-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.actress-catalog-card{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center;padding:16px;border:1px solid #eadcf0;border-radius:14px;background:#fff}.actress-catalog-image{display:grid;place-items:center;width:110px;height:110px;border-radius:50%;overflow:hidden;background:#faf6fc}.actress-catalog-image img{width:100%;height:100%;object-fit:cover}.actress-catalog-card h2{margin:0 0 5px;font-size:19px}.actress-kana,.actress-size{color:var(--muted)}.actress-detail{display:grid;gap:24px}.actress-detail-hero{display:grid;grid-template-columns:minmax(200px,320px) minmax(0,1fr);gap:30px;padding:28px;border:1px solid #eadcf0;border-radius:18px;background:#fff}.actress-detail-image{display:grid;place-items:center;overflow:hidden;border-radius:14px;background:#faf6fc;min-height:280px}.actress-detail-image img{width:100%;max-height:460px;object-fit:contain}.actress-detail-hero h1{margin:0;font-size:clamp(28px,4vw,44px)}.actress-profile-list{display:grid;gap:0;margin-top:20px}.actress-profile-list div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid #eee}.actress-profile-list dt{font-weight:700;white-space:nowrap}.actress-profile-list dd{margin:0}.actress-description{overflow-wrap:anywhere}@media(max-width:1000px){.actress-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.actress-catalog-grid{grid-template-columns:1fr}.actress-detail-hero{grid-template-columns:1fr;padding:18px}.actress-detail-image{max-width:420px}.actress-catalog-card{grid-template-columns:88px 1fr}.actress-catalog-image{width:88px;height:88px}}


/* v0.9.4 レビュー・コメント */
.work-review .review-rating{font-size:20px;letter-spacing:2px}.public-comment-form{display:grid;gap:10px;margin:16px 0 22px}.public-comment-form label{display:grid;gap:7px;font-weight:700}.public-comment-form textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #ccc;border-radius:6px;font:inherit}.public-comment-form small{color:#666}.comment-list{display:grid;gap:12px}.comment-list article{padding:14px;border:1px solid #e2e2e2;border-radius:7px;background:#fff}.comment-list article p{margin:0 0 8px;line-height:1.8}.comment-list time{color:#777;font-size:12px}.notice-success-public,.notice-error-public{padding:10px 12px;border-radius:6px}.notice-success-public{background:#edf9f0;color:#146b2d}.notice-error-public{background:#fff1f1;color:#9b1c1c}.public-comments-index h2{margin:0 0 8px;font-size:18px}

/* v0.10.0 サンプル動画館 */
.sample-video-filter{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.sample-filter-form{display:grid;grid-template-columns:1.25fr 1fr 1fr .75fr auto;gap:12px;align-items:end}
.sample-filter-field{display:grid;gap:6px;min-width:0}
.sample-filter-field>span{font-size:.83rem;font-weight:700;color:var(--muted)}
.sample-filter-field input,.sample-filter-field select{width:100%;min-width:0;height:44px;padding:8px 11px;border:1px solid #d8c7e1;border-radius:9px;background:#fff;color:var(--text);font:inherit}
.sample-filter-field input:focus,.sample-filter-field select:focus{outline:3px solid rgba(140,63,176,.15);border-color:var(--primary)}
.sample-filter-actions{display:flex;gap:8px;white-space:nowrap}
.sample-player__titlebar h2{margin:0;font-size:1rem;line-height:1.55}
.sample-player__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sample-player__position{color:#ddd;font-size:.88rem}
.sample-title-list{padding:16px;background:#fff;color:var(--text)}
.sample-title-list h3{margin:0 0 10px;font-size:1rem}
.sample-title-list ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:0;padding:0;list-style:none}
.sample-title-list li{min-width:0;border-bottom:1px dotted var(--line)}
.sample-title-list button{display:block;width:100%;padding:10px 4px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sample-title-list button:hover,.sample-title-list button[aria-current="true"]{color:var(--primary);font-weight:700}
.favorite-sale-note{margin:20px 0 0;padding:12px 15px;border:1px solid #ead9b1;border-radius:10px;background:#fffaf0;color:#6b5521}
@media(max-width:900px){.sample-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.sample-filter-actions{grid-column:1/-1}.sample-filter-actions .button{flex:1}}
@media(max-width:520px){.sample-filter-form{grid-template-columns:1fr}.sample-filter-actions{grid-column:auto}.sample-title-list ol{grid-template-columns:1fr}.sample-nav{display:none}.sample-player__footer{gap:10px}.sample-player__actions{width:100%;justify-content:space-between}.sample-player__titlebar h2{font-size:.9rem}}
.favorite-work-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.favorite-work-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:9px}
.favorite-work-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
@media(max-width:520px){.favorite-work-list li{align-items:stretch;flex-direction:column}.favorite-work-list .button{width:100%}}


/* v0.10.2 サンプル動画館: PC表示サイズ・再生エラー表示 */
@media(min-width:801px){.sample-player{width:min(800px,100%);margin-inline:auto}.sample-player video{width:100%;aspect-ratio:3/2;height:auto;max-height:none;object-fit:contain}}
.sample-video-error{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);width:min(86%,560px);margin:0;padding:12px 14px;border-radius:8px;background:rgba(0,0,0,.78);color:#fff;text-align:center;font-size:.9rem}
@media(max-width:800px){.sample-player video{width:100%;aspect-ratio:3/2;height:auto;object-fit:contain}}

/* v0.10.3 sample video player */
.home-sample-video-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:0;padding:0;list-style:none}
.home-sample-video-list li{min-width:0;border-bottom:1px dotted var(--line)}
.home-sample-video-list a{display:block;padding:11px 4px;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-sample-video-list a:hover{color:var(--primary);text-decoration:underline}
.sample-player{width:min(720px,100%);margin-inline:auto}
.sample-player__media{aspect-ratio:16/9;overflow:hidden}
.sample-player video{display:block;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain;background:#000}
@media(max-width:800px){.sample-player{width:100%}.sample-player__media{aspect-ratio:16/9}.sample-player video{height:100%;aspect-ratio:auto}}
@media(max-width:520px){.home-sample-video-list{grid-template-columns:1fr}}

/* v0.10.4 FANZA litevideo embed */
.sample-player__media{aspect-ratio:3/2;background:#111;overflow:hidden}
.sample-player iframe[data-video-frame]{display:block;width:100%;height:100%;border:0;background:#111}
.sample-mobile-swipe{display:none}
@media(min-width:801px){.sample-player{width:min(720px,100%);margin-inline:auto}}
@media(max-width:800px){.sample-player{width:100%}.sample-player__media{aspect-ratio:3/2}.sample-mobile-swipe{display:flex;align-items:center;justify-content:center;gap:22px;min-height:44px;padding:8px 14px;background:#1f1f1f;border-top:1px solid #333;color:#eee;touch-action:pan-y;user-select:none}.sample-mobile-swipe strong{font-size:.82rem;font-weight:700}}

/* sample video pagination v0.10.5 */
.sample-result-summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:14px 0 10px;color:var(--muted,#666);font-size:.92rem}
.sample-result-summary strong{color:var(--text);font-size:1.05rem}
.sample-pagination{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0 6px}
.sample-pagination__pages{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.sample-pagination a,.sample-pagination__number,.sample-pagination__prev,.sample-pagination__next{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-decoration:none}
.sample-pagination__number{min-width:40px;padding-left:8px;padding-right:8px}
.sample-pagination a:hover{border-color:var(--primary);color:var(--primary)}
.sample-pagination .is-current{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:700}
.sample-pagination .is-disabled{opacity:.4;cursor:default}
.sample-pagination__ellipsis{padding:0 2px;color:var(--muted,#666)}
.sample-pagination__status{margin:0 0 24px;text-align:center;color:var(--muted,#666);font-size:.88rem}
@media(max-width:520px){.sample-pagination{gap:8px}.sample-pagination__pages{order:3;width:100%;gap:5px}.sample-pagination__prev,.sample-pagination__next{flex:1;max-width:160px}.sample-pagination__number{min-width:38px;min-height:38px;padding:6px}.sample-result-summary{justify-content:center;text-align:center}}
/* sample video pagination responsive page range v0.10.6 */
.sample-pagination__pages--mobile{display:none}
@media(max-width:520px){
  .sample-pagination__pages--desktop{display:none}
  .sample-pagination__pages--mobile{display:flex}
}


/* v0.10.7 共通「上へ戻る」 */
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:80;width:48px;height:48px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:var(--primary);color:#fff;font-size:24px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(55,20,70,.24);opacity:0;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease}
.back-to-top.is-visible{opacity:.94;transform:translateY(0)}
.back-to-top:hover{opacity:1}.back-to-top:focus-visible{outline:3px solid rgba(140,63,176,.28);outline-offset:3px}
@media(max-width:520px){.back-to-top{right:14px;bottom:14px;width:42px;height:42px;font-size:21px}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}

/* v0.10.8 actress provisional profile */
.actress-profile-pending{border-style:dashed;background:#fcf9fd}.actress-profile-pending h2{margin:0 0 8px;font-size:1.25rem}.actress-profile-pending p{margin:0;color:var(--muted)}.actress-sample-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0;padding:0;list-style:none}.actress-sample-list li{padding:10px 4px;border-bottom:1px dotted #d8c8df}.actress-sample-list a{display:block;overflow-wrap:anywhere}@media(max-width:720px){.actress-sample-list{grid-template-columns:1fr}}


/* v0.11.5 ジャンル一覧 */
.public-catalog-sort{display:flex;align-items:center;gap:10px;margin:18px 0 22px}.public-catalog-sort label{font-weight:700}.public-catalog-sort select{min-width:180px;height:42px;padding:7px 34px 7px 11px;border:1px solid #d8c7e1;border-radius:8px;background:#fff;color:var(--text);font:inherit}.genre-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}.genre-catalog-card{min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:#fff}.genre-catalog-card h2{margin:0 0 8px;font-size:1.12rem;line-height:1.45}.genre-catalog-card p{margin:0 0 10px;color:var(--muted);font-size:.9rem}.genre-catalog-card .text-link{font-size:.9rem}@media(max-width:900px){.genre-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.genre-catalog-grid{grid-template-columns:1fr}.public-catalog-sort{align-items:stretch;flex-direction:column}.public-catalog-sort select{width:100%}}

/* actress profile enhancements v0.11.6 */
.actress-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.actress-gallery-grid a{display:block;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:#faf6fc}.actress-gallery-grid img{width:100%;height:100%;object-fit:cover}.actress-frequent-genres{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.actress-frequent-genres a{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none}.actress-frequent-genres strong{white-space:nowrap;font-size:.85rem;color:var(--muted)}.actress-gallery-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.actress-gallery-admin-slot{display:grid;gap:8px;padding:12px;border:1px solid #ddd;border-radius:10px}.actress-gallery-admin-slot img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;background:#f5f5f5}
@media(max-width:900px){.actress-frequent-genres{grid-template-columns:repeat(2,minmax(0,1fr))}.actress-gallery-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.actress-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.actress-frequent-genres{grid-template-columns:1fr}.actress-gallery-admin-grid{grid-template-columns:1fr 1fr}}

/* v0.11.12 public taxonomy navigation */
.taxonomy-detail__stats{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.taxonomy-detail__stats .series-detail__count{margin:0}.taxonomy-detail__action{margin:18px 0 0}.taxonomy-detail__action .button{display:inline-flex;text-decoration:none}.maker-detail-page .taxonomy-detail__header{grid-template-columns:1fr}

/* v0.11.13 advanced search */
.search-area{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}.advanced-search-link{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:0 15px;border:1px solid #cfbdd8;border-radius:11px;background:#fff;font-weight:700;text-decoration:none;white-space:nowrap}.advanced-search-panel .section-heading{margin-bottom:10px}.advanced-search-panel .section-heading h1{margin:0;font-size:clamp(1.5rem,3vw,1.9rem);border-left:5px solid var(--accent);padding-left:12px}.advanced-search-lead{margin:0 0 18px;color:var(--muted)}.advanced-search-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.advanced-search-form label{display:grid;gap:6px;font-weight:700}.advanced-search-form input,.advanced-search-form select{width:100%;min-width:0;padding:11px 12px;border:1px solid #d8c7e1;border-radius:9px;background:#fff;font:inherit}.advanced-search-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;margin-top:3px}.advanced-search-page .section-heading>span{color:var(--muted);font-weight:700;white-space:nowrap}@media(max-width:800px){.advanced-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.search-area{grid-template-columns:1fr}.advanced-search-link{min-height:42px}.advanced-search-form{grid-template-columns:1fr}.advanced-search-actions .button{flex:1}}


/* v0.11.17: text-link states */
a[href]:not(.button):not(.favorite-link):not(.site-logo):link{color:#2457a7}
a[href]:not(.button):not(.favorite-link):not(.site-logo):visited{color:#6b3f8c}
a[href]:not(.button):not(.favorite-link):not(.site-logo):hover{color:#c13f87;text-decoration-thickness:2px}
a[href]:not(.button):not(.favorite-link):not(.site-logo):focus-visible{outline:3px solid rgba(193,63,135,.22);outline-offset:3px;border-radius:3px}
.provisional-work-notice{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 18px;padding:12px 15px;border:1px dashed #d8bfdc;border-radius:10px;background:#fcf8fd;color:var(--muted)}
.provisional-work-notice strong{color:var(--text)}
.work-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}


/* v0.11.18: work detail / actress detail refinements */
@media(max-width:700px){
  .work-detail-hero h1{font-size:clamp(15.4px,4.9vw,21px)}
}


/* v0.11.19: sample video related navigation */
.sample-player__meta{display:grid;gap:8px;padding:14px 16px;border-top:1px solid #e7dde9;background:#fff}
.sample-player__meta-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start}
.sample-player__meta-row strong{font-size:.9rem}
.sample-player__meta-row span{overflow-wrap:anywhere}
@media(max-width:560px){.sample-player__meta-row{grid-template-columns:1fr;gap:2px}}

/* v0.12.2 review preview */
.review-public-preview-page{padding-bottom:42px}
.review-preview-admin-note{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 18px;padding:12px 16px;border:1px dashed #d8bfdc;border-radius:10px;background:#fcf8fd}
.review-preview-admin-note strong{color:var(--text)}
.review-preview-admin-note a{margin-left:auto}
.review-public-preview{display:grid;gap:20px}
.review-preview-no-image{display:grid;place-items:center;min-height:320px;border-radius:12px;background:#f4eff6;color:var(--muted);font-weight:700}
.review-preview-video{width:min(720px,100%);margin-inline:auto;aspect-ratio:3/2;background:#111;border-radius:12px;overflow:hidden}
.review-preview-video iframe{display:block;width:100%;height:100%;border:0}
.review-preview-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--line)}
.review-preview-kicker{margin:0 0 5px;color:var(--muted);font-weight:700}
.review-preview-heading h2{margin:0}
.review-preview-rating{display:grid;gap:2px;text-align:right;white-space:nowrap}
.review-preview-rating span{font-size:1.2rem;letter-spacing:.04em;color:#d69b00}
.review-preview-prose{line-height:1.9}
.review-preview-prose ul,.work-review .prose ul{padding-left:1.6em}
.review-preview-prose li,.work-review .prose li{margin:.45em 0}
.review-recommended-box{margin-top:24px;padding:16px 18px;border:1px solid #ead99d;border-radius:10px;background:#fffbed}
.review-recommended-box h3{margin-top:0}
.review-preview-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:700px){
  .review-preview-admin-note a{margin-left:0}
  .review-preview-heading{display:grid}
  .review-preview-rating{text-align:left}
}

/* v0.12.3 review integration */
.review-public-preview .work-detail-hero h1{font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.55}
.work-review-gallery{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.work-review-gallery h3{margin-top:0}
.work-review-gallery__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.work-review-gallery__grid a{display:block;border-radius:10px;overflow:hidden;background:#f5f5f5}
.work-review-gallery__grid img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}
@media(max-width:620px){.work-review-gallery__grid{grid-template-columns:1fr}}

/* v0.12.6 actual work-page review preview */
.review-live-preview-banner{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 18px;padding:12px 16px;border:1px dashed #caa8d0;border-radius:10px;background:#fcf8fd}
.review-live-preview-banner strong{color:var(--text)}
.review-live-preview-banner a{margin-left:auto;font-weight:700}
@media(max-width:700px){.review-live-preview-banner a{margin-left:0}}


/* v0.12.7 review display tuning */
.review-recommended-box{
  margin-top:24px;
  padding:18px 20px;
  border:1px solid #e3cf86;
  border-radius:12px;
  background:#fff9df;
}
.review-recommended-box h3{
  margin:0 0 10px;
}
.review-recommended-box .prose > :first-child{
  margin-top:0;
}
.review-recommended-box .prose > :last-child{
  margin-bottom:0;
}


/* v0.12.8 review layout / CTA */
.review-rating{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin:12px 0 20px;
}
.review-rating__stars{
  color:#d8a000;
  font-size:1.35rem;
  letter-spacing:.08em;
  line-height:1;
}
.review-rating strong{
  color:var(--text);
  font-size:1rem;
}
.review-fanza-cta{
  display:flex;
  justify-content:center;
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--line);
}
.review-fanza-cta .button{
  min-width:220px;
  text-align:center;
  font-weight:700;
}


/* v0.12.9 FANZA button unify */
.work-detail-actions .button--secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border:1px solid #b987c2;
  border-radius:8px;
  background:#fff;
  font-weight:700;
  text-decoration:none;
}
.work-detail-actions .button--secondary:hover{
  background:#f8f1fa;
}

/* v0.13.0 genre / maker sample routing */
.work-card-actions{margin-top:12px}
.work-card-actions .button{width:100%}


/* v0.13.1 actress sample button / no-sample state */
.work-card--no-sample{
  background:#f7f7f8;
}
.work-card--no-sample .work-card-image,
.work-card--no-sample .card-image{
  background:#efeff1;
}
.work-card-actions{
  margin-top:12px;
}
.work-card-actions .button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 14px;
  border-radius:7px;
  text-decoration:none;
  font-weight:700;
}


/* v0.13.6 review image lightbox */
.review-lightbox-trigger{
  display:block;
  cursor:zoom-in;
}
.review-lightbox{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.88);
}
.review-lightbox[hidden]{
  display:none;
}
.review-lightbox__stage{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  cursor:zoom-out;
}
.review-lightbox__image{
  display:block;
  max-width:min(1200px,96vw);
  max-height:92vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:4px;
  box-shadow:0 10px 40px rgba(0,0,0,.35);
  cursor:zoom-out;
  user-select:none;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
}
.review-lightbox__close{
  position:absolute;
  top:max(12px,env(safe-area-inset-top));
  right:max(12px,env(safe-area-inset-right));
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#222;
  font-size:32px;
  line-height:1;
  cursor:pointer;
}
body.review-lightbox-open{
  overflow:hidden;
}
@media (max-width:640px){
  .review-lightbox{
    padding:10px;
  }
  .review-lightbox__image{
    max-width:100%;
    max-height:88vh;
  }
  .review-lightbox__close{
    width:44px;
    height:44px;
    font-size:30px;
  }
}

/* v0.13.7 work title size fix */
.work-detail-hero h1{font-size:clamp(16.8px,2.1vw,25.2px)!important}
@media(max-width:700px){
  .work-detail-hero h1{font-size:clamp(15.4px,4.9vw,21px)!important}
}

.comment-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.comment-public-meta{display:flex;flex-wrap:wrap;gap:10px;color:#777;font-size:13px;margin-bottom:7px}


/* v0.14.2 optional comment name */
.public-comment-form input[name="display_name"]{width:100%;max-width:360px}
.comment-public-meta strong{color:var(--text)}


/* v0.14.6 actress comment pagination */
.comment-pagination{margin-top:18px}


/* v0.15.0 actress gallery: 8 images, full thumbnail, lightbox */
.actress-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.actress-gallery-grid a{
  display:grid;
  place-items:center;
  aspect-ratio:4/3;
  padding:6px;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#faf6fc;
}
.actress-gallery-grid img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
@media(max-width:620px){
  .actress-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .actress-gallery-grid a{aspect-ratio:1/1}
}

/* v0.15.6 女優プロフィール項目名を1行表示 */
@media(max-width:480px){.actress-profile-list div{grid-template-columns:165px minmax(0,1fr);gap:8px}.actress-profile-list dt{font-size:14px}}


/* v0.15.8 スマホ公開カード縦型統一 */
@media(max-width:520px){
  .card-grid--works .work-card,.work-card-grid .work-card{display:block;padding:0;overflow:hidden}
  .card-grid--works .card-image,.work-card-grid .work-card-image{display:grid;place-items:center;width:100%;height:300px;min-height:300px;padding:10px;background:#faf6fc;overflow:hidden}
  .card-grid--works .card-image img,.work-card-grid .work-card-image img{display:block;width:100%;height:100%;max-height:none;object-fit:contain}
  .card-grid--works .card-body{padding:14px}
  .work-card-grid .work-card>:not(.work-card-image){padding:14px}
  .card-grid--works .card-body h3,.work-card-grid .work-card h2,.work-card-grid .work-card h3{margin-top:0}
  .work-card-actions .button,.favorite-toggle--card{width:100%}
  .series-catalog-card{display:block}
  .series-catalog-card__image{width:100%;height:300px;min-height:300px;max-height:none;padding:10px;overflow:hidden;background:#faf6fc}
  .series-catalog-card__image img{display:block;width:100%;height:100%;object-fit:contain}
}

/* v0.15.14 favorites thumbnails / pagination */
.favorite-work-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.favorite-work-list li{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.favorite-work-thumb{display:flex;align-items:center;justify-content:center;width:130px;height:100px;overflow:hidden;border-radius:8px;background:#f7f7f7;text-decoration:none;color:var(--muted);font-size:.75rem}
.favorite-work-thumb img{display:block;width:100%;height:100%;object-fit:contain}
.favorite-work-body{min-width:0}
.favorite-work-title{display:inline-block;font-weight:700;line-height:1.55}
.favorite-work-meta{margin:6px 0 0;color:var(--muted);font-size:.9rem}
.favorite-work-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.favorite-pagination{margin-top:20px}
@media(max-width:520px){.favorite-work-list li{grid-template-columns:100px minmax(0,1fr);align-items:start;gap:11px}.favorite-work-thumb{width:100px;height:90px}.favorite-work-actions{grid-column:1/-1}.favorite-work-actions .button{width:auto;flex:1 1 130px}}


/* v0.15.15 作品詳細のお気に入り導線 */
.favorite-toggle--work-detail{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-color:#b987c2;
  border-radius:8px;
  background:#fff;
  color:var(--text);
  font-weight:700;
}
.favorite-toggle--work-detail:hover{background:#f8f1fa}
.favorite-toggle--work-detail[aria-pressed="true"]{border-color:#ef93b9;background:#fff0f6;color:#a52159}
@media(max-width:520px){
  .work-detail-actions .button,.favorite-toggle--work-detail{width:100%}
}

/* v0.15.18 latest sample video list */
.latest-sample-card-title{margin:0 0 10px;font-size:1.05rem;line-height:1.55}
.latest-sample-card-actions{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin-top:14px}
.latest-sample-card-actions .button,.latest-sample-card-actions .favorite-toggle{flex:1 1 180px;text-align:center;justify-content:center}
@media(max-width:520px){.latest-sample-card-actions{display:grid;grid-template-columns:1fr}.latest-sample-card-actions .button,.latest-sample-card-actions .favorite-toggle{width:100%}}


/* v0.15.19 最新レズサンプル動画一覧をTOPカード表示へ統一 */
.latest-sample-list-page .work-card{align-items:start}
.latest-sample-list-page .card-image{align-self:start;width:150px;height:150px;min-height:150px;padding:0;overflow:hidden}
.latest-sample-list-page .card-image img{display:block;width:100%;height:100%;object-fit:cover}
.latest-sample-list-page .latest-sample-card-title{margin:0 0 8px;font-size:1.03rem;line-height:1.55}
@media(max-width:520px){
  .latest-sample-list-page .work-card{display:block}
  .latest-sample-list-page .card-image{width:100%;height:300px;min-height:300px;padding:10px}
  .latest-sample-list-page .card-image img{object-fit:contain}
  .latest-sample-list-page .latest-sample-card-title{margin-top:0;font-size:1.03rem}
}

/* v0.15.20 About FANZA API表記・フッター視認性改善 */

/* v0.15.21 お気に入り長文タイトルのはみ出し修正 */
.favorite-work-body{
  min-width:0;
  overflow:hidden;
}
.favorite-work-title{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  word-break:break-word;
}
