:root { color-scheme: dark; --bg:#0c0c0d; --panel:#171719; --soft:#252529; --text:#f5f1e8; --muted:#aaa5a0; --accent:#e9a84c; --line:#363238; }
* { box-sizing:border-box; }
body { margin:0; background:radial-gradient(circle at 80% 0,#2b1e14 0,transparent 34rem),var(--bg); color:var(--text); font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif; line-height:1.65; }
a { color:inherit; }
.site-header { min-height:70px; padding:18px clamp(20px,5vw,72px); display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid var(--line); }
.brand { text-decoration:none; text-transform:uppercase; letter-spacing:.16em; font-weight:800; }
.site-nav { display:flex; align-items:center; gap:14px; }
.site-nav a { color:var(--muted); text-decoration:none; font-size:.9rem; font-weight:700; }
.site-nav a:hover,.site-nav a:focus-visible { color:var(--accent); }
.badge,.eyebrow { color:var(--accent); font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
main { width:min(1120px,calc(100% - 36px)); margin:auto; padding:clamp(36px,7vw,88px) 0; }
.hero { max-width:760px; padding:6vh 0 9vh; }
h1 { font-size:clamp(2.2rem,7vw,5.2rem); line-height:1.05; letter-spacing:-.04em; margin:.2em 0 .35em; }
h2 { font-size:clamp(1.35rem,3vw,2rem); margin:.2em 0 .65em; }
h3 { font-size:1rem; line-height:1.5; }
.hero>p:not(.eyebrow),.page-head>p:not(.eyebrow) { color:var(--muted); font-size:1.08rem; max-width:680px; }
.hero-actions,.page-actions { display:flex; flex-wrap:wrap; gap:10px; }
.topic-links { margin-top:42px; }
.topic-link-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); gap:10px; }
.topic-link-grid a { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:12px 15px; border:1px solid var(--line); border-radius:12px; background:var(--panel); text-decoration:none; font-weight:700; }
.topic-link-grid a::after { content:"›"; color:var(--accent); font-size:1.5rem; line-height:1; }
.topic-link-grid a:hover,.topic-link-grid a:focus-visible { border-color:var(--accent); background:var(--soft); }
.actress-section { margin:54px 0 72px; padding-top:20px; border-top:1px solid var(--line); }
.actress-heading { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.actress-heading h2 { margin:0; }
.actress-image { width:96px; height:96px; flex:0 0 96px; border-radius:50%; object-fit:cover; object-position:top center; background:var(--panel); border:1px solid var(--line); }
.actress-works { grid-template-columns:repeat(3,minmax(0,1fr)); }
.actress-heading h2 a { color:inherit; text-decoration:none; }
.actress-heading h2 a:hover,.text-link:hover { text-decoration:underline; }
.text-link { color:var(--accent); font-weight:700; }
.actress-profile-head { display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; align-items:start; margin-bottom:32px; }
.actress-profile-image { width:180px; aspect-ratio:1; object-fit:cover; object-position:top; border-radius:50%; background:var(--panel); border:1px solid var(--line); }
.profile-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.profile-biography { max-width:58rem; margin:0 0 32px; padding:22px; border:1px solid var(--line); border-radius:18px; background:var(--panel); }
.source-note { font-size:.85rem; color:var(--muted); }
.button,button { display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:.7rem 1rem; background:var(--soft); color:var(--text); text-decoration:none; cursor:pointer; font:inherit; font-weight:700; }
.button.primary,.button.official { background:var(--accent); color:#1a1208; border-color:var(--accent); }
.info-grid,.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; }
.info-grid article,.card,.filter-panel,.work-head { background:color-mix(in srgb,var(--panel) 92%,transparent); border:1px solid var(--line); border-radius:18px; padding:22px; }
.card { display:flex; flex-direction:column; min-height:220px; }
.card h3 { flex:1; }
.product-image { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; background:#0a0a0b; border-radius:12px; margin-bottom:16px; }
.meta { color:var(--muted); font-size:.85rem; }
.preference-labels { display:flex; flex-wrap:wrap; gap:6px; margin:.2rem 0 .8rem; }
.preference-labels span { color:var(--accent); border:1px solid color-mix(in srgb,var(--accent) 50%,transparent); border-radius:999px; padding:.18rem .5rem; font-size:.72rem; }
.pagination { display:flex; justify-content:center; align-items:center; gap:14px; margin-top:32px; }
.page-head { margin-bottom:34px; }
.filter-panel { margin:24px 0 46px; }
.facet-panel { padding:0; overflow:hidden; }
.facet-summary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; padding:16px 18px; cursor:pointer; font-size:clamp(1.05rem,2.4vw,1.3rem); font-weight:800; list-style:none; }
.facet-summary::-webkit-details-marker { display:none; }
.facet-summary:hover,.facet-summary:focus-visible { background:var(--soft); }
.facet-summary-icon { display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:50%; background:var(--accent); color:#1a1208; font-size:1.65rem; line-height:1; }
.facet-summary-icon::before { content:"＋"; transform:translateY(-1px); }
.facet-panel[open] .facet-summary-icon::before { content:"−"; }
.facet-summary-hint { color:var(--accent); font-size:.78rem; white-space:nowrap; }
.facet-panel-body { padding:4px 20px 22px; border-top:1px solid var(--line); }
.filter-help { color:var(--muted); margin:-.35rem 0 1rem; }
.chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { background:transparent; }
.chip.active { background:var(--accent); color:#1a1208; border-color:var(--accent); }
.filter-status,.section-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:20px; }
.text-button { background:none; border:0; color:var(--muted); text-decoration:underline; padding:0; }
.selected-facets { position:sticky; top:0; z-index:3; display:flex; flex-wrap:wrap; gap:8px; min-height:44px; padding:10px 0; background:var(--panel); }
.selected-facet { padding:.45rem .7rem; border-color:var(--accent); color:var(--accent); background:transparent; }
.selected-facet.excluded { border-style:dashed; color:var(--text); }
.muted { color:var(--muted); }
.facet-list { display:grid; gap:8px; margin:18px 0; }
.facet-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:8px; padding:9px 10px; border:1px solid var(--line); border-radius:12px; }
.facet-row.included { border-color:var(--accent); }
.facet-row.excluded { border-style:dashed; }
.facet-name { overflow-wrap:anywhere; }
.facet-count { color:var(--muted); font-variant-numeric:tabular-nums; }
.facet-action { padding:.4rem .65rem; font-size:.82rem; }
.facet-action.exclude { background:transparent; }
.facet-action:disabled { opacity:.35; cursor:not-allowed; }
.facet-more-toggle { margin-top:4px; }
.facet-more { margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
.facet-more label { display:block; margin-bottom:6px; font-weight:700; }
.facet-more input { width:100%; border:1px solid var(--line); border-radius:12px; padding:.75rem .9rem; background:var(--bg); color:var(--text); font:inherit; }
.empty { color:var(--muted); border:1px dashed var(--line); padding:24px; border-radius:14px; }
.crumb { display:flex; gap:9px; color:var(--muted); font-size:.9rem; margin-bottom:24px; }
.work-head { margin-bottom:30px; }
.work-head-grid { display:grid; grid-template-columns:minmax(180px,32%) 1fr; gap:28px; align-items:start; }
.work-head-grid .product-image { margin:0; }
.work-head h1 { font-size:clamp(1.8rem,5vw,3.5rem); }
.recommendation-section { margin-top:54px; }
.collage-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:18px; }
.collage-card { display:flex; flex-direction:column; gap:14px; padding:14px; background:var(--panel); border:1px solid var(--line); border-radius:18px; }
.collage-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; aspect-ratio:1; overflow:hidden; border-radius:12px; background:#080809; }
.collage-grid img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:cover; }
.preview-genres { display:flex; flex-wrap:wrap; gap:6px; }
.preview-genres a { color:var(--accent); border:1px solid color-mix(in srgb,var(--accent) 50%,transparent); border-radius:999px; padding:.18rem .5rem; font-size:.72rem; text-decoration:none; }
.preview-genres a:hover,.preview-genres a:focus-visible { background:var(--accent); color:#1a1208; }
.collage-grid.single { display:block; }
.collage-grid.single .product-image { width:100%; height:100%; margin:0; border-radius:0; object-fit:contain; }
.collage-grid.empty-image { border:1px dashed var(--line); }
.collage-card .meta { margin:0; }
.collage-card .button { margin-top:auto; justify-content:center; }
.sample-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr)); gap:16px; }
.sample-full { display:block; width:100%; height:auto; object-fit:contain; background:#080809; border-radius:12px; }
footer { border-top:1px solid var(--line); padding:30px clamp(20px,5vw,72px); color:var(--muted); font-size:.8rem; }
dialog { border:1px solid var(--line); border-radius:20px; background:var(--panel); color:var(--text); padding:0; width:min(460px,calc(100% - 32px)); }
dialog::backdrop { background:rgba(0,0,0,.82); backdrop-filter:blur(8px); }
.gate-card { padding:30px; }
.gate-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
[hidden] { display:none !important; }
@media (max-width:600px) { main { width:min(100% - 24px,1120px); } .site-header { align-items:flex-start; } .site-nav { gap:9px; flex-wrap:wrap; justify-content:flex-end; } .site-nav a { font-size:.8rem; } .card { min-height:0; } .section-heading { align-items:flex-end; } .work-head-grid { grid-template-columns:1fr; } .work-head-grid .product-image { max-height:60vh; } .facet-summary { grid-template-columns:auto minmax(0,1fr); } .facet-summary-hint { grid-column:2; } .facet-panel-body { padding-inline:12px; } .facet-row { grid-template-columns:minmax(0,1fr) auto; } .facet-row .facet-action { grid-row:2; } .facet-row .facet-action:first-of-type { grid-column:1; } .facet-row .facet-action:last-of-type { grid-column:2; } .actress-works { grid-template-columns:1fr; } .actress-profile-head { grid-template-columns:1fr; } .actress-profile-image { width:130px; } }
