:root {
    --bg: #0f1117;
    --panel: #171a23;
    --panel2: #202432;
    --text: #f4f6fb;
    --muted: #aab2c8;
    --line: #303648;
    --accent: #4f8cff;
    --ok: #29c26a;
    --ng: #ff5f57;
}
* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: radial-gradient(circle at top, #1e2638 0, var(--bg) 48%);
    color: var(--text);
    line-height: 1.7;
}
a { color: inherit; }
.container { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.site-header { border-bottom: 1px solid var(--line); background: rgba(15,17,23,.85); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 10; }
.header-inner { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; }
.brand { font-size: 24px; font-weight: 800; letter-spacing: .08em; text-decoration: none; }
.nav { display: flex; gap: 18px; color: var(--muted); }
.nav a { text-decoration: none; }
.main { padding: 56px 0; }
.hero, .page-title { padding: 48px; border: 1px solid var(--line); background: linear-gradient(135deg, rgba(79,140,255,.18), rgba(23,26,35,.95)); border-radius: 24px; }
.hero.compact { padding: 54px 48px; }
.badge { display: inline-block; margin: 0 0 14px; padding: 4px 12px; border: 1px solid rgba(79,140,255,.5); color: #bcd1ff; border-radius: 999px; font-size: 13px; }
h1 { margin: 0 0 14px; font-size: clamp(36px, 6vw, 72px); line-height: 1.05; }
h2 { margin-top: 0; }
.hero p, .page-title p { color: var(--muted); max-width: 720px; }
.actions { margin-top: 24px; display: flex; gap: 12px; flex-wrap: wrap; }
.button { display: inline-flex; padding: 12px 20px; background: var(--accent); color: white; border-radius: 12px; text-decoration: none; font-weight: 700; }
.button.secondary { background: #252d3e; color: #d9e5ff; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 24px; }
.card { padding: 24px; border: 1px solid var(--line); background: var(--panel); border-radius: 18px; }
.card p { color: var(--muted); }
.health-table { width: 100%; margin-top: 24px; border-collapse: collapse; background: var(--panel); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
th, td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--line); }
th { background: var(--panel2); }
.status { display: inline-flex; padding: 3px 10px; border-radius: 999px; font-weight: 800; font-size: 12px; }
.status.ok { background: rgba(41,194,106,.14); color: var(--ok); }
.status.ng { background: rgba(255,95,87,.14); color: var(--ng); }
.note { margin-top: 18px; color: var(--muted); }
code { background: rgba(255,255,255,.08); padding: 2px 6px; border-radius: 6px; }
.site-footer { border-top: 1px solid var(--line); color: var(--muted); padding: 24px 0; }
.section-head { display:flex; justify-content:space-between; align-items:end; gap: 18px; margin:32px 0 18px; }
.section-head h2 { font-size:30px; margin:6px 0; }
.muted { color:#aeb8d0; }
.alert { border:1px solid #f0c36a; background:#2c2415; color:#ffe5a3; padding:14px 16px; border-radius:12px; margin:16px 0; }
.empty-box { border:1px solid #2b3448; background:#151a26; border-radius:18px; padding:28px; }
.source-pill { display:inline-flex; align-items:center; gap:6px; border:1px solid #31405c; border-radius:999px; padding:6px 10px; color:#b9c7e6; background:#101827; }

/* v0.5 card layout */
.video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 20px;
    margin: 22px 0 48px;
    align-items: stretch;
}
.video-grid.small {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.video-card {
    min-width: 0;
    background: #171c28;
    border: 1px solid #2a3347;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
    display: flex;
    flex-direction: column;
}
.video-card > a:first-child {
    display: block;
    background: #0d111b;
}
.video-card img,
.video-thumb {
    width: 100%;
    height: auto;
    max-width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center;
    background: #0d111b;
    display: block;
}
.no-image {
    aspect-ratio: 3 / 4;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#0d111b;
    color:#7f8aa3;
    font-weight: 800;
}
.video-body { padding: 14px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.video-body h3 {
    font-size: 14px;
    line-height: 1.45;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 4.35em;
}
.video-body dl { display:grid; grid-template-columns:58px 1fr; gap:5px 8px; font-size:12px; color:#c5cee3; margin:0; }
.video-body dt { color:#7f8aa3; }
.video-body dd { margin:0; min-width: 0; overflow-wrap: anywhere; }
.text-link { color:#9fc0ff; text-decoration:none; font-weight:700; margin-top: auto; }

.table-wrap { overflow:auto; background:#171c28; border:1px solid #2a3347; border-radius:16px; margin:24px 0; }
.table-wrap table { width:100%; border-collapse:collapse; }
.table-wrap th,.table-wrap td { padding:15px 18px; border-bottom:1px solid #2a3347; text-align:left; vertical-align: top; }
.table-wrap th { background:#202637; color:#fff; }
.debug-table td { font-size: 13px; color: #cad3e8; }
.debug-url { max-width: 360px; overflow-wrap: anywhere; color: #9fc0ff; }
.search-form { display:flex; gap:10px; margin-top:26px; max-width:680px; }
.search-form input { flex:1; padding:16px 18px; border-radius:14px; border:1px solid #33405a; background:#0e1320; color:#f5f7fb; font-size:16px; }
.search-form input:focus { outline:2px solid #4f8cff; border-color:#4f8cff; }
.search-form button { padding:16px 22px; border:0; border-radius:14px; background:#4f8cff; color:white; font-weight:800; font-size:16px; cursor:pointer; }
@media (max-width: 900px) {
    .cards { grid-template-columns: 1fr; }
    .section-head { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 640px) {
    .container { width: min(100% - 24px, 1120px); }
    .header-inner { align-items: flex-start; gap: 12px; flex-direction: column; }
    .nav { flex-wrap: wrap; }
    .hero, .page-title, .hero.compact { padding: 28px; }
    .health-table { font-size: 14px; }
    .search-form { flex-direction: column; }
    .search-form button { width:100%; }
    .video-grid, .video-grid.small { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .video-body { padding: 12px; }
    .video-body dl { grid-template-columns: 1fr; }
}

/* v0.6: product grid hardening */
.latest-section,
.search-results-section,
.preview-section {
    width: 100%;
}
.video-grid {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important;
    gap: 22px !important;
    margin: 24px 0 56px !important;
}
.video-grid.small {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
}
.video-card {
    width: 100% !important;
    max-width: 260px;
    justify-self: stretch;
}
.video-card img,
.video-thumb,
.video-card .no-image {
    width: 100% !important;
    height: auto !important;
    max-height: 330px;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
}
.video-card .video-body p {
    margin: 0;
}
.debug-thumb {
    width: 90px !important;
    height: 120px !important;
    object-fit: cover !important;
    border-radius: 8px;
}
.image-candidates {
    margin: 0;
    padding-left: 18px;
    max-width: 480px;
}
.image-candidates li {
    margin-bottom: 8px;
    overflow-wrap: anywhere;
}
@media (max-width: 640px) {
    .video-grid,
    .video-grid.small {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .video-card {
        max-width: none;
    }
}

/* v0.7 detail page */
.detail-layout {
    display: grid;
    grid-template-columns: minmax(220px, 360px) 1fr;
    gap: 28px;
    margin: 28px 0 54px;
    align-items: start;
}
.detail-cover {
    background: #171c28;
    border: 1px solid #2a3347;
    border-radius: 20px;
    overflow: hidden;
}
.detail-cover img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
}
.detail-info {
    background: #171c28;
    border: 1px solid #2a3347;
    border-radius: 20px;
    padding: 28px;
}
.detail-info h2 {
    font-size: clamp(24px, 4vw, 42px);
    line-height: 1.25;
    margin: 10px 0 20px;
}
.detail-dl {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 12px 18px;
    margin: 0;
}
.detail-dl dt { color: #7f8aa3; }
.detail-dl dd { margin: 0; overflow-wrap: anywhere; }
.video-card .text-link + .text-link { margin-top: 4px; }
@media (max-width: 760px) {
    .detail-layout { grid-template-columns: 1fr; }
}

/* v0.7 safety: prevent any raw API image from becoming oversized */
.latest-section img,
.search-results-section img,
.preview-section img,
.debug-table img,
main img {
    max-width: 100%;
}
.video-grid > img,
.latest-section > img,
.search-results-section > img {
    width: 180px !important;
    max-width: 180px !important;
    height: 240px !important;
    object-fit: cover !important;
    display: block !important;
}
.debug-thumb {
    width: 90px !important;
    max-width: 90px !important;
    height: 120px !important;
    object-fit: cover !important;
}

/* v0.8 image direction tuning */
.video-card img,
.video-thumb,
.video-card .no-image {
    object-position: center right !important;
}
.detail-layout {
    grid-template-columns: minmax(360px, 560px) 1fr !important;
    gap: 34px !important;
}
.detail-cover {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0d111b !important;
    padding: 0;
}
.detail-cover img {
    width: 100% !important;
    height: auto !important;
    max-height: 720px !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #0d111b !important;
}
.detail-cover .no-image {
    width: 100%;
    min-height: 480px;
    aspect-ratio: 4 / 3;
}
@media (max-width: 900px) {
    .detail-layout {
        grid-template-columns: 1fr !important;
    }
    .detail-cover img {
        max-height: none !important;
    }
    .detail-cover .no-image {
        min-height: 320px;
    }
}

/* v0.9 search and card refinements */
.video-grid {
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}
.video-body h3 {
    -webkit-line-clamp: 4;
    min-height: 5.8em;
}
.video-body dl {
    grid-template-columns: 64px 1fr;
}
.search-form.enhanced {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 140px 110px auto;
    align-items: stretch;
    max-width: 920px;
}
.search-form select {
    padding: 0 14px;
    border-radius: 14px;
    border: 1px solid #33405a;
    background: #0e1320;
    color: #f5f7fb;
    font-size: 15px;
}
.quick-searches {
    margin-top: 28px;
    padding: 26px;
    border: 1px solid #2a3347;
    background: rgba(23, 28, 40, .72);
    border-radius: 18px;
}
.tag-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.tag-links a {
    display: inline-flex;
    padding: 8px 13px;
    border: 1px solid #31405c;
    background: #101827;
    color: #cfe0ff;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
}
.pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 12px 0 48px;
}
.pager a, .pager span {
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid #31405c;
    color: #dbe7ff;
    background: #101827;
    text-decoration: none;
    font-weight: 700;
}
.pager a {
    background: #244a8f;
    border-color: #4f8cff;
}
.button.fanza {
    background: linear-gradient(135deg, #ff8a2b, #ff4d4d);
}
@media (max-width: 720px) {
    .search-form.enhanced {
        grid-template-columns: 1fr;
    }
}

/* v1.0 usability refinements */
.hero-search {
    margin-top: 22px;
    display: grid;
    grid-template-columns: minmax(280px, 1fr) auto;
    max-width: 720px;
}
.video-grid {
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}
.video-body h3 {
    font-size: 15px;
    line-height: 1.42;
    -webkit-line-clamp: 4;
}
.card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
}
.favorite-button {
    border: 1px solid #405071;
    background: #111a2b;
    color: #d7e4ff;
    border-radius: 999px;
    padding: 8px 11px;
    font-weight: 800;
    cursor: pointer;
    font-size: 12px;
    white-space: nowrap;
}
.favorite-button:hover,
.favorite-button.saved {
    border-color: #ffd166;
    color: #ffd166;
    background: rgba(255,209,102,.12);
}
.favorite-button.remove {
    border-color: #56333b;
    color: #ff9aa9;
    background: rgba(255,95,87,.08);
}
.meta-link {
    color: #a8c8ff;
    text-decoration: none;
    border-bottom: 1px dotted rgba(168,200,255,.55);
}
.meta-link:hover {
    color: #fff;
}
.detail-actions {
    align-items: center;
}
.favorites-grid .empty-box,
.full-width {
    grid-column: 1 / -1;
}
.history-head {
    margin-top: 46px;
}
.favorite-card [data-no-image] {
    min-height: 270px;
}
@media (min-width: 1100px) {
    .video-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .hero-search {
        grid-template-columns: 1fr;
    }
    .card-actions {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* v1.1 compact header / title refinements */
.main {
    padding: 34px 0 46px;
}
.hero,
.page-title {
    padding: 28px 34px;
    border-radius: 20px;
}
.hero.compact {
    padding: 24px 34px;
}
.hero .badge,
.page-title .badge,
.page-banner .badge {
    margin-bottom: 8px;
    padding: 3px 10px;
    font-size: 12px;
}
h1 {
    font-size: clamp(32px, 4.2vw, 54px);
    line-height: 1.08;
    margin-bottom: 10px;
}
.hero p,
.page-title p {
    margin: 0;
}
.hero .actions {
    margin-top: 16px;
}
.hero-search {
    margin-top: 16px;
}
.button {
    padding: 10px 18px;
    border-radius: 11px;
}
.quick-searches {
    margin-top: 22px;
    padding: 20px 24px;
}
.quick-searches h2,
.section-head h2 {
    font-size: 24px;
    margin-bottom: 8px;
}
.section-head {
    margin: 28px 0 16px;
}
.page-banner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
    padding: 22px 28px;
    border: 1px solid var(--line);
    background: linear-gradient(135deg, rgba(79,140,255,.14), rgba(23,26,35,.92));
    border-radius: 18px;
}
.page-banner h1 {
    font-size: clamp(30px, 3.6vw, 46px);
    margin: 0;
}
.page-banner p {
    margin: 0;
    color: var(--muted);
    max-width: 520px;
    text-align: right;
}
.detail-layout {
    margin-top: 0 !important;
}
.detail-info h2 {
    font-size: clamp(26px, 3.2vw, 40px);
    line-height: 1.22;
}
@media (max-width: 760px) {
    .main { padding: 24px 0 36px; }
    .hero, .page-title { padding: 24px; }
    .page-banner {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }
    .page-banner p { text-align: left; }
}


/* v1.2 compact UI and search refinements */
.container { width: min(1280px, calc(100% - 36px)); }
.main { padding: 34px 0 48px; }
.hero.site-hero {
    padding: 28px 32px;
    border-radius: 20px;
    max-width: 980px;
    margin: 0 auto 18px;
}
.hero.site-hero h1 { font-size: clamp(30px, 4vw, 52px); margin-bottom: 8px; }
.hero.site-hero p { margin: 0 0 12px; }
.hero.site-hero .badge { font-size: 11px; margin-bottom: 8px; }
.hero-mini-actions { margin-top: 12px; }
.hero-mini-actions .button { padding: 9px 14px; border-radius: 10px; font-size: 13px; }
.home-tags { padding: 22px 28px !important; max-width: 980px; margin: 0 auto 24px; }
.home-tags h2 { font-size: 20px; margin-bottom: 12px; }
.section-head { margin-top: 22px; }
.section-head h2 { font-size: 25px; }
.video-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)) !important; gap: 22px !important; }
.video-card { max-width: none; }
.video-body h3 { font-size: 14px; line-height: 1.42; -webkit-line-clamp: 4; min-height: 5.6em; }
.video-body dl { font-size: 12.5px; }
.favorite-button.saved { border-color: rgba(255, 120, 95, .8); color: #ffc6bb; background: rgba(255, 102, 66, .13); }
.compact-detail-banner {
    padding: 24px 32px !important;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.compact-detail-banner h1 { font-size: clamp(30px, 4vw, 48px); }
.compact-detail-banner p { margin: 0; }
.back-link { color: #bcd1ff; text-decoration: none; border: 1px solid #304466; padding: 8px 13px; border-radius: 999px; }
.meta-link { color: #dce7ff; text-decoration: none; border-bottom: 1px solid rgba(159,192,255,.35); }
.meta-link:hover { color: #9fc0ff; border-color: #9fc0ff; }
.tag-links a, .related-tags a { min-height: 38px; display: inline-flex; align-items: center; }
.search-hero { padding: 30px 34px !important; }
.search-hero h1 { font-size: clamp(28px, 4vw, 48px); }
.advanced-search {
    display: grid !important;
    grid-template-columns: 1.5fr 1fr 1fr 1fr auto auto auto;
    gap: 10px;
    max-width: none;
}
.advanced-search input, .advanced-search select {
    min-width: 0;
    padding: 13px 14px;
    border-radius: 12px;
    border: 1px solid #33405a;
    background: #0e1320;
    color: #f5f7fb;
    font-size: 14px;
}
.pager { display:flex; align-items:center; justify-content:center; gap:14px; margin: 20px 0 60px; }
.pager a, .pager span { border:1px solid #31405c; border-radius:999px; padding:9px 16px; color:#dce7ff; text-decoration:none; background:#111827; }
@media (max-width: 1100px) {
    .advanced-search { grid-template-columns: 1fr 1fr; }
    .advanced-search button { grid-column: span 2; }
}
@media (max-width: 700px) {
    .container { width: min(100% - 24px, 1280px); }
    .hero.site-hero, .home-tags, .compact-detail-banner { padding: 22px !important; }
    .advanced-search { grid-template-columns: 1fr; }
    .advanced-search button { grid-column: auto; }
    .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
}


/* v1.3 density and readability refinements */
.container { width: min(1360px, calc(100% - 40px)); }
.main { padding: 26px 0 40px; }
.site-header .header-inner { padding: 13px 0; }
.brand { font-size: 23px; }
.nav { gap: 16px; font-size: 14px; }
.hero.site-hero {
    max-width: 960px;
    padding: 22px 28px;
    margin-bottom: 14px;
}
.hero.site-hero h1 {
    font-size: clamp(28px, 3.3vw, 42px);
    letter-spacing: .02em;
    margin: 0 0 12px;
}
.hero.site-hero .badge { margin-bottom: 6px; }
.hero-search {
    margin-top: 8px;
    grid-template-columns: minmax(260px, 1fr) 112px;
    max-width: 720px;
}
.search-form input,
.search-form button,
.advanced-search input,
.advanced-search select,
.advanced-search button {
    padding: 11px 14px;
    border-radius: 11px;
}
.search-form button { font-size: 14px; }
.home-tags {
    max-width: 960px;
    padding: 16px 22px !important;
    margin-bottom: 18px;
}
.home-tags h2,
.quick-searches h2 {
    font-size: 18px;
    margin: 0 0 10px;
}
.tag-links { margin-top: 8px; gap: 8px; }
.tag-links a { min-height: 34px; padding: 6px 12px; font-size: 13px; }
.section-head.latest-head {
    margin: 18px 0 14px;
}
.section-head.latest-head h2 {
    display: inline-block;
    margin: 0 18px 0 0;
    font-size: 24px;
}
.section-head.latest-head .muted {
    display: inline-block;
    margin: 0;
    font-size: 13px;
}
.video-grid {
    grid-template-columns: repeat(auto-fill, minmax(218px, 1fr)) !important;
    gap: 20px !important;
    margin-top: 18px !important;
}
.video-card {
    border-radius: 15px;
}
.video-card img,
.video-thumb,
.video-card .no-image {
    max-height: 310px;
}
.video-body {
    padding: 13px 14px 14px;
    gap: 9px;
}
.video-body h3 {
    font-size: 15.5px;
    line-height: 1.42;
    min-height: 4.25em;
    -webkit-line-clamp: 3;
}
.video-body dl {
    grid-template-columns: 58px 1fr;
    font-size: 13px;
    line-height: 1.55;
    gap: 4px 8px;
}
.text-link { font-size: 13px; }
.favorite-button { font-size: 12px; padding: 7px 10px; }
/* compact detail header */
.compact-detail-banner {
    padding: 13px 24px !important;
    margin-bottom: 24px;
    border-radius: 16px;
}
.compact-detail-banner h1 {
    font-size: clamp(24px, 2.6vw, 34px);
    margin: 0;
}
.back-link {
    padding: 7px 13px;
    font-size: 14px;
}
.detail-layout {
    gap: 28px !important;
    margin-bottom: 44px;
}
.detail-info {
    padding: 24px 28px;
    border-radius: 18px;
}
.detail-info h2 {
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.22;
    margin: 10px 0 20px;
}
.detail-dl {
    gap: 10px 18px;
    font-size: 16px;
}
.detail-actions {
    margin-top: 22px;
    gap: 12px;
}
.detail-actions .button {
    padding: 11px 17px;
}
.related-search-box {
    padding: 18px 24px;
    margin-top: 24px;
}
.related-search-box h2 {
    margin-bottom: 12px;
}
.site-footer { padding: 18px 0; }
@media (min-width: 1280px) {
    .video-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}
@media (max-width: 900px) {
    .hero-search { grid-template-columns: 1fr; }
    .compact-detail-banner { align-items: center; flex-direction: row; }
}
@media (max-width: 700px) {
    .container { width: min(100% - 24px, 1360px); }
    .hero.site-hero { padding: 20px !important; }
    .video-body h3 { font-size: 14px; }
    .video-body dl { font-size: 12px; grid-template-columns: 1fr; }
    .compact-detail-banner { align-items: flex-start; flex-direction: column; }
}


/* v1.4 mobile density refinements */
@media (max-width: 700px) {
    .container { width: min(100% - 18px, 1360px); }
    .main { padding: 16px 0 28px; }
    .site-header .header-inner { padding: 10px 0; }
    .brand { font-size: 20px; }
    .nav { gap: 11px; font-size: 12px; }

    .hero.site-hero {
        padding: 14px 16px !important;
        margin-bottom: 10px;
        border-radius: 14px;
    }
    .hero.site-hero .badge { font-size: 10px; padding: 3px 8px; }
    .hero.site-hero h1 { font-size: 26px; margin: 4px 0 6px; line-height: 1.05; }
    .hero.site-hero p { font-size: 12px; line-height: 1.45; margin: 0 0 8px; }
    .hero-search { margin-top: 8px; gap: 8px; }
    .search-form input,
    .search-form button { padding: 10px 11px; font-size: 13px; border-radius: 10px; }
    .hero-mini-actions { margin-top: 8px; gap: 8px; }
    .hero-mini-actions .button { padding: 7px 10px; font-size: 12px; }

    .home-tags {
        padding: 12px 14px !important;
        margin-bottom: 12px;
        border-radius: 14px;
    }
    .home-tags .badge { display: none; }
    .home-tags h2 { font-size: 15px; margin-bottom: 8px; }
    .tag-links { gap: 6px; }
    .tag-links a { min-height: 30px; padding: 5px 9px; font-size: 12px; }

    .section-head.latest-head { margin: 12px 0 10px; }
    .section-head.latest-head h2 { font-size: 20px; display: block; margin: 0 0 3px; }
    .section-head.latest-head .muted { font-size: 11px; }

    .video-grid,
    .video-grid.small {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        margin-top: 12px !important;
    }
    .video-card { border-radius: 13px; }
    .video-card img,
    .video-thumb,
    .video-card .no-image {
        width: 100% !important;
        height: clamp(165px, 56vw, 245px) !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: cover !important;
        object-position: right center !important;
        border-radius: 12px 12px 0 0;
    }
    .video-body { padding: 9px 10px 10px; gap: 7px; }
    .video-body h3 {
        font-size: 12.5px;
        line-height: 1.42;
        min-height: 3.6em;
        -webkit-line-clamp: 3;
    }
    .video-body dl { font-size: 11.5px; line-height: 1.45; gap: 3px; }
    .card-actions { gap: 6px; }
    .text-link, .favorite-button { font-size: 11.5px; }
    .favorite-button { padding: 5px 8px; }

    .compact-detail-banner {
        padding: 11px 16px !important;
        margin-bottom: 16px;
        border-radius: 14px;
    }
    .compact-detail-banner .badge { display: none; }
    .compact-detail-banner h1 { font-size: 25px; }
    .back-link { padding: 6px 10px; font-size: 12px; }
    .detail-layout { grid-template-columns: 1fr !important; gap: 16px !important; margin-bottom: 24px; }
    .detail-cover img,
    .detail-cover .no-image {
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: contain !important;
        object-position: center !important;
        border-radius: 14px;
    }
    .detail-info { padding: 18px 18px; border-radius: 15px; }
    .detail-info h2 { font-size: 24px; line-height: 1.22; margin: 8px 0 16px; }
    .detail-dl { grid-template-columns: 78px 1fr; font-size: 14px; gap: 8px 12px; }
    .detail-actions { gap: 8px; margin-top: 16px; }
    .detail-actions .button { padding: 9px 12px; font-size: 13px; }
    .related-search-box { padding: 14px 16px; margin-top: 16px; }
    .related-search-box h2 { font-size: 18px; }
}


/* v1.5 mobile list density tuning */
@media (max-width: 700px) {
    .container { width: calc(100% - 18px) !important; }
    .main { padding: 16px 0 22px !important; }

    .site-header { position: sticky; top: 0; }
    .header-inner { padding: 12px 0 !important; gap: 8px !important; }
    .brand { font-size: 22px !important; }
    .nav { gap: 12px !important; font-size: 13px !important; overflow-x: auto; padding-bottom: 2px; }

    .hero.site-hero { padding: 16px 16px 14px !important; margin-bottom: 10px !important; }
    .hero.site-hero h1 { font-size: 28px !important; margin: 2px 0 6px !important; }
    .hero.site-hero p:not(.badge) { font-size: 12px !important; margin-bottom: 8px !important; }
    .hero-search { margin-top: 8px !important; }
    .hero-search input { min-width: 0; }
    .hero-mini-actions { margin-top: 8px !important; }

    .home-tags { padding: 10px 12px !important; margin: 8px 0 12px !important; }
    .home-tags h2 { font-size: 14px !important; margin: 0 0 7px !important; }
    .tag-links { gap: 5px !important; }
    .tag-links a { min-height: 28px !important; padding: 4px 8px !important; font-size: 11.5px !important; }

    .section-head.latest-head { margin: 10px 0 8px !important; }
    .section-head.latest-head h2 { font-size: 20px !important; margin-bottom: 2px !important; }
    .section-head.latest-head .muted { font-size: 10.5px !important; line-height: 1.4 !important; }

    .video-grid,
    .video-grid.small,
    .latest-section,
    .search-results-section {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-top: 10px !important;
    }
    .video-card {
        border-radius: 12px !important;
    }
    .video-card img,
    .video-thumb,
    .video-card .no-image {
        height: clamp(160px, 55vw, 235px) !important;
        object-fit: cover !important;
        object-position: right center !important;
        border-radius: 12px 12px 0 0 !important;
    }
    .video-body {
        padding: 8px 8px 9px !important;
        gap: 6px !important;
    }
    .video-body h3 {
        font-size: 13px !important;
        line-height: 1.34 !important;
        min-height: 2.68em !important;
        max-height: 2.68em !important;
        -webkit-line-clamp: 2 !important;
        overflow: hidden !important;
    }
    .video-body dl {
        font-size: 10.8px !important;
        line-height: 1.35 !important;
        grid-template-columns: 42px 1fr !important;
        gap: 2px 5px !important;
    }
    .video-body dt, .video-body dd {
        line-height: 1.35 !important;
    }
    .card-actions {
        align-items: center !important;
        gap: 5px !important;
        margin-top: 2px !important;
    }
    .text-link, .favorite-button {
        font-size: 11.3px !important;
    }
    .favorite-button {
        padding: 4px 7px !important;
    }

    .compact-detail-banner {
        padding: 10px 14px !important;
        margin-bottom: 14px !important;
        align-items: center !important;
    }
    .compact-detail-banner h1 {
        font-size: 24px !important;
    }
    .compact-detail-banner .back-link {
        padding: 6px 9px !important;
        font-size: 12px !important;
    }
    .detail-layout {
        gap: 14px !important;
    }
    .detail-cover img,
    .detail-cover .no-image {
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
        object-position: center !important;
    }
}

@media (max-width: 390px) {
    .container { width: calc(100% - 14px) !important; }
    .video-grid,
    .video-grid.small,
    .latest-section,
    .search-results-section { gap: 7px !important; }
    .video-card img,
    .video-thumb,
    .video-card .no-image { height: clamp(150px, 54vw, 210px) !important; }
    .video-body h3 { font-size: 12.3px !important; }
    .video-body dl { font-size: 10.2px !important; grid-template-columns: 38px 1fr !important; }
}


/* v1.6 mobile compact list cards */
@media (max-width: 700px) {
    .video-grid,
    .video-grid.small,
    .latest-section,
    .search-results-section {
        gap: 6px !important;
        margin-top: 8px !important;
    }
    .video-card {
        border-radius: 11px !important;
        overflow: hidden !important;
    }
    .video-card img,
    .video-thumb,
    .video-card .no-image {
        height: clamp(135px, 47vw, 198px) !important;
        object-fit: cover !important;
        object-position: right center !important;
    }
    .video-body {
        padding: 7px 7px 8px !important;
        gap: 5px !important;
    }
    .video-body h3 {
        font-size: 12.6px !important;
        line-height: 1.32 !important;
        min-height: 2.64em !important;
        max-height: 2.64em !important;
        -webkit-line-clamp: 2 !important;
        overflow: hidden !important;
        margin-bottom: 1px !important;
    }
    .video-body dl {
        font-size: 10.6px !important;
        line-height: 1.3 !important;
        grid-template-columns: 36px 1fr !important;
        gap: 1px 4px !important;
        margin-top: 0 !important;
    }
    .video-body dl dt:nth-of-type(n+3),
    .video-body dl dd:nth-of-type(n+3) {
        display: none !important;
    }
    .video-body dt { opacity: .78; }
    .card-actions {
        justify-content: space-between !important;
        margin-top: 3px !important;
    }
    .text-link {
        font-size: 11px !important;
        padding: 3px 0 !important;
    }
    .favorite-button {
        font-size: 10.8px !important;
        padding: 3px 7px !important;
        border-radius: 999px !important;
        min-height: 24px !important;
    }
    .hero.site-hero {
        padding: 13px 14px 12px !important;
    }
    .hero.site-hero h1 {
        font-size: 25px !important;
    }
    .home-tags {
        padding: 9px 11px !important;
    }
}

@media (max-width: 390px) {
    .video-card img,
    .video-thumb,
    .video-card .no-image {
        height: clamp(128px, 46vw, 180px) !important;
    }
    .video-body h3 {
        font-size: 12px !important;
    }
    .video-body dl {
        font-size: 10px !important;
        grid-template-columns: 34px 1fr !important;
    }
}


/* v1.7 ranking page and compact navigation refinements */
.nav a[href="/ranking.php"] {
    color: #dbe7ff;
    font-weight: 700;
}
.ranking-hero {
    min-height: 0;
    padding: 24px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.ranking-hero h1 {
    font-size: clamp(28px, 3.4vw, 46px);
    margin: 0;
}
.ranking-control {
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
}
.ranking-control label {
    display: grid;
    gap: 6px;
    color: #aeb8d0;
    font-size: 13px;
}
.ranking-control select,
.ranking-control button {
    height: 42px;
    border-radius: 12px;
    border: 1px solid #33405a;
    background: #0e1320;
    color: #f5f7fb;
    padding: 0 14px;
    font-weight: 700;
}
.ranking-control button {
    background: #4f8cff;
    border-color: #4f8cff;
    color: #fff;
    cursor: pointer;
}
.ranking-card {
    position: relative;
}
.rank-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff8a3d, #ff4f63);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 8px 22px rgba(0,0,0,.25);
}
.quick-searches {
    position: relative;
}
.quick-ranking-link {
    position: absolute;
    right: 24px;
    top: 24px;
    color: #9fc0ff;
    text-decoration: none;
    font-weight: 800;
    font-size: 13px;
}
.quick-ranking-link::after { content: ' →'; }
@media (max-width: 640px) {
    .nav { gap: 12px; font-size: 14px; }
    .ranking-hero { padding: 18px; align-items: flex-start; flex-direction: column; }
    .ranking-control, .ranking-control label, .ranking-control select, .ranking-control button { width: 100%; }
    .quick-ranking-link { position: static; display: inline-flex; margin: 4px 0 10px; }
    .rank-badge { min-width: 44px; height: 24px; font-size: 11px; top: 8px; left: 8px; }
}


/* v1.8 directory pages */
.directory-banner {
    min-height: 92px;
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(320px, 560px);
    align-items: center;
    gap: 20px;
}
.directory-banner h1 { font-size: clamp(26px, 3vw, 42px); margin: 0; }
.directory-mini-search {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
}
.directory-mini-search input {
    width: 100%;
    min-height: 44px;
    border: 1px solid #33405a;
    border-radius: 12px;
    padding: 0 14px;
    background: #0e1320;
    color: #f5f7fb;
}
.directory-mini-search button {
    min-height: 44px;
    border: 0;
    border-radius: 12px;
    padding: 0 18px;
    background: #4f8cff;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}
.directory-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 22px 0;
}
.directory-card, .directory-guide {
    background: #151b28;
    border: 1px solid #2b3448;
    border-radius: 18px;
    padding: 22px;
}
.directory-card.wide { grid-column: 1 / -1; }
.directory-card h2, .directory-guide h2 { margin: 0 0 8px; font-size: 24px; }
.directory-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}
.directory-tags a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #101827;
    border: 1px solid #31405c;
    color: #d9e6ff;
    text-decoration: none;
    font-weight: 800;
}
.directory-tags a:hover { border-color: #4f8cff; color: #fff; }
.quick-searches .directory-link { right: 150px; }
@media (max-width: 700px) {
    .directory-banner {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 16px;
    }
    .directory-mini-search { grid-template-columns: 1fr; }
    .directory-grid { grid-template-columns: 1fr; gap: 12px; }
    .directory-card, .directory-guide { padding: 16px; border-radius: 14px; }
    .directory-card h2, .directory-guide h2 { font-size: 20px; }
    .directory-tags { gap: 8px; }
    .directory-tags a { min-height: 34px; padding: 7px 12px; font-size: 13px; }
    .quick-searches .directory-link { right: auto; }
}

/* v1.9 service-style home and card refinements */
.video-card {
    position: relative;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
@media (hover: hover) {
    .video-card:hover {
        transform: translateY(-3px);
        border-color: rgba(79, 140, 255, .55);
        box-shadow: 0 18px 38px rgba(0, 0, 0, .32);
    }
    .video-card:hover h3 { color: #dce8ff; }
}
.video-body h3 {
    min-height: 2.9em !important;
    max-height: 2.9em;
    -webkit-line-clamp: 2 !important;
}
.video-body dl dt:nth-of-type(n+3),
.video-body dl dd:nth-of-type(n+3) {
    display: none;
}
.video-body dl {
    grid-template-columns: 54px 1fr;
}
.new-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    background: linear-gradient(135deg, #29c26a, #4f8cff);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .04em;
    box-shadow: 0 8px 22px rgba(0,0,0,.28);
}
.ranking-card .new-badge { top: 42px; left: 10px; right: auto; }
.ranking-preview-head {
    border-top: 1px solid rgba(48,54,72,.75);
    padding-top: 24px;
}
.section-more {
    color: #9fc0ff;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}
.section-more:hover { color: #fff; }
.ranking-preview-section {
    margin-bottom: 28px !important;
}
.card-actions {
    flex-direction: row !important;
    align-items: center !important;
}
.text-link {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
}
@media (min-width: 1280px) {
    .video-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
}
@media (max-width: 700px) {
    .video-body h3 {
        min-height: 2.64em !important;
        max-height: 2.64em !important;
    }
    .video-body dl {
        display: block !important;
        font-size: 10.5px !important;
        line-height: 1.35 !important;
    }
    .video-body dl dt { display: none !important; }
    .video-body dl dd {
        display: block !important;
        margin: 0 !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .video-body dl dd:nth-of-type(n+3) { display: none !important; }
    .card-actions {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px !important;
        align-items: center !important;
    }
    .text-link {
        min-height: 25px !important;
        justify-content: center;
        border: 1px solid rgba(79,140,255,.35);
        border-radius: 999px;
        background: rgba(79,140,255,.08);
        padding: 3px 7px !important;
        white-space: nowrap;
    }
    .favorite-button {
        min-height: 25px !important;
        white-space: nowrap;
    }
    .new-badge {
        top: 7px;
        right: 7px;
        height: 21px;
        padding: 0 7px;
        font-size: 9.5px;
    }
    .rank-badge {
        height: 22px !important;
        min-width: 40px !important;
        font-size: 10px !important;
    }
    .ranking-card .new-badge { top: 34px; left: 7px; }
    .section-more { font-size: 12px; }
}


/* v2.0 public readiness: legal pages, footer links, age confirmation */
.footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.footer-links {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 12px;
}
.footer-links a {
    color: #9fb3d9;
    text-decoration: none;
}
.footer-links a:hover { color: #fff; }
.legal-banner {
    min-height: 120px !important;
    padding: 26px 32px !important;
}
.legal-card {
    border: 1px solid rgba(88, 119, 174, .35);
    background: rgba(19, 25, 38, .88);
    border-radius: 18px;
    padding: 28px;
    margin-top: 20px;
    color: #d8e4ff;
}
.legal-card h2 {
    margin: 0 0 10px;
    font-size: 20px;
}
.legal-card h2:not(:first-child) { margin-top: 24px; }
.legal-card p {
    line-height: 1.85;
    color: #b9c8e8;
}
.age-gate[hidden] { display: none !important; }
.age-gate {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(5, 8, 14, .86);
    backdrop-filter: blur(8px);
}
.age-gate-box {
    width: min(520px, 100%);
    border: 1px solid rgba(88, 119, 174, .5);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(31, 45, 72, .98), rgba(14, 19, 30, .98));
    padding: 30px;
    box-shadow: 0 28px 80px rgba(0,0,0,.55);
}
.age-gate-box h2 {
    margin: 12px 0;
    font-size: 30px;
}
.age-gate-box p {
    color: #c5d2ec;
    line-height: 1.75;
}
.age-gate-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}
.age-gate-open { overflow: hidden; }
@media (max-width: 700px) {
    .footer-inner { align-items: flex-start; }
    .footer-links { gap: 10px 12px; }
    .legal-banner { min-height: 90px !important; padding: 20px !important; }
    .legal-card { padding: 20px; border-radius: 16px; }
    .age-gate-box { padding: 22px; }
    .age-gate-box h2 { font-size: 24px; }
    .age-gate-actions .button { width: 100%; justify-content: center; }
}

/* v2.1 admin dashboard */
.panel{background:rgba(17,24,39,.82);border:1px solid rgba(96,130,190,.25);border-radius:24px;padding:28px;box-shadow:0 18px 60px rgba(0,0,0,.18)}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}
.admin-card h2,.admin-table-wrap h2,.admin-log-wrap h2{margin:0 0 14px;font-size:22px}
.admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.admin-actions form{margin:0}
.admin-link-list{display:flex;flex-wrap:wrap;gap:12px}
.admin-link-list a{display:inline-flex;padding:10px 14px;border:1px solid rgba(82,139,255,.35);border-radius:999px;color:#dbeafe;text-decoration:none;background:rgba(20,36,64,.55)}
.admin-table{width:100%;border-collapse:collapse;font-size:14px}
.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid rgba(148,163,184,.16);text-align:left;vertical-align:top}
.admin-table th{color:#b7c7e7;font-weight:700;background:rgba(15,23,42,.45)}
.admin-log{max-height:360px;overflow:auto;background:#060b16;border:1px solid rgba(96,130,190,.25);border-radius:16px;padding:18px;color:#b7c7e7;font-size:12px;line-height:1.7;white-space:pre-wrap}
.alert.success{border-color:rgba(34,197,94,.4);background:rgba(22,101,52,.18)}
.admin-token-form{max-width:620px}
@media (max-width: 720px){.admin-grid{grid-template-columns:1fr;gap:14px}.panel{padding:18px;border-radius:18px}.admin-table{font-size:12px}.admin-table th,.admin-table td{padding:9px 6px}.admin-actions .button{padding:10px 12px}}

/* v2.2 admin login/session dashboard */
.admin-hero{display:flex;align-items:center;justify-content:space-between;gap:16px}
.admin-logout-form{margin:0}.button.ghost{background:transparent;border:1px solid rgba(108,151,255,.45);color:#dbeafe}
.admin-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-kv-table th{width:220px;color:#93a7cc}.admin-kv-table td{font-weight:700;color:#eaf1ff}
.admin-login h2{margin-top:0}.admin-login .muted{max-width:760px}.admin-token-form input{min-width:280px}
@media (max-width: 920px){.admin-grid-3{grid-template-columns:1fr}.admin-hero{align-items:flex-start;flex-direction:column}.admin-kv-table th{width:42%}}
@media (max-width: 520px){.admin-token-form{display:grid!important;grid-template-columns:1fr!important}.admin-token-form input{min-width:0}.admin-kv-table th,.admin-kv-table td{display:block;width:100%}.admin-kv-table th{border-bottom:0;padding-bottom:2px}.admin-kv-table td{padding-top:2px}}

/* v3.4 pagination summary */
.pager .pager-summary {
    min-width: 260px;
    text-align: center;
    background: rgba(15, 23, 42, 0.88);
}
.pager .pager-disabled {
    opacity: .42;
    cursor: not-allowed;
}
@media (max-width: 640px) {
    .pager {
        flex-wrap: wrap;
    }
    .pager .pager-summary {
        width: 100%;
        min-width: 0;
        font-size: 12px;
    }
}


/* v3.5 API debug / search transparency */
.search-breakdown{margin-top:6px;font-size:13px;color:#9fb3d8}.api-debug-card{grid-column:span 2}.admin-debug-form{display:grid;gap:10px;margin-top:14px}.admin-debug-form input,.admin-debug-form select{width:100%;padding:11px 12px;border-radius:12px;border:1px solid rgba(148,163,184,.25);background:#0b1020;color:#edf4ff}.admin-debug-row{display:grid;grid-template-columns:1fr 1fr 120px;gap:10px}.api-debug-result h3{margin:22px 0 10px;font-size:17px}.debug-url{word-break:break-all;font-size:12px;color:#9fc0ff}@media(max-width:920px){.api-debug-card{grid-column:auto}.admin-debug-row{grid-template-columns:1fr}}


/* v4.4 discovery and topic hub */
.home-discovery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 20px auto 28px;
    max-width: 980px;
}
.home-discovery article,
.topic-card,
.seo-guide-box {
    border: 1px solid #2a3347;
    background: linear-gradient(135deg, rgba(23, 28, 40, .98), rgba(13, 17, 27, .96));
    border-radius: 18px;
    padding: 22px;
}
.home-discovery h2,
.topic-card h2 {
    margin: 0 0 8px;
    font-size: 20px;
}
.home-discovery p,
.topic-card p {
    margin: 0 0 14px;
}
.topic-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 18px;
    margin: 24px 0 34px;
}
.topic-tag {
    color: #9fc0ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.topic-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 14px;
    border-radius: 999px;
    background: #1a2740;
    color: #dce7ff;
    text-decoration: none;
    font-weight: 800;
}
.topic-link:hover,
.home-discovery .section-more:hover {
    color: #fff;
}
@media (max-width: 760px) {
    .home-discovery {
        grid-template-columns: 1fr;
        gap: 12px;
        margin: 14px 0 22px;
    }
    .home-discovery article,
    .topic-card,
    .seo-guide-box {
        padding: 18px;
    }
    .topic-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}


/* v4.4 alpha02: compact home discovery links */
.home-tags.compact-home-links {
    padding: 18px 22px !important;
    margin-bottom: 18px !important;
}
.home-tags-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}
.home-tags-head h2 {
    margin: 0 !important;
}
.home-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.home-shortcuts a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 6px 11px;
    border: 1px solid #31405c;
    border-radius: 999px;
    background: #101827;
    color: #bcd1ff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}
.home-shortcuts a:hover {
    border-color: #4f8cff;
    color: #fff;
}
@media (max-width: 640px) {
    .hero.site-hero {
        margin-bottom: 12px;
    }
    .home-tags.compact-home-links {
        padding: 16px 18px !important;
        margin-bottom: 16px !important;
    }
    .home-tags-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
    .home-shortcuts {
        justify-content: flex-start;
        gap: 8px;
    }
    .home-shortcuts a {
        font-size: 12px;
        min-height: 34px;
    }
    .compact-home-links .tag-links {
        gap: 8px;
        margin-top: 8px;
    }
    .compact-home-links .tag-links a {
        padding: 7px 11px;
        min-height: 34px;
    }
}


/* v4.5 alpha01: retention and compact discovery improvements */
.v45-hero .hero-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}
.v45-hero .hero-copy {
    color: #b9c8e6;
    font-size: 14px;
    margin: 0 0 4px;
}
.site-stats {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
    color: #b9c8e6;
    font-size: 12px;
}
.site-stats span {
    border: 1px solid rgba(89, 137, 221, .45);
    background: rgba(15, 25, 43, .72);
    border-radius: 999px;
    padding: 7px 10px;
    white-space: nowrap;
}
.site-stats strong {
    color: #ffffff;
    font-size: 14px;
    margin-right: 3px;
}
.v45-shortcuts {
    margin-bottom: 22px;
}
.recently-viewed-head {
    margin-top: 10px;
    margin-bottom: 12px;
}
.home-history-grid {
    margin-bottom: 28px;
}
.compact-history-card .video-body h3 {
    -webkit-line-clamp: 2;
    min-height: 2.85em;
}
.compact-history-card dl {
    display: none;
}
.compact-history-card .card-actions {
    margin-top: 8px;
}
.video-card img {
    content-visibility: auto;
}
@media (min-width: 1100px) {
    .home-history-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .v45-hero .hero-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
    .v45-hero .hero-copy {
        font-size: 12px;
    }
    .site-stats {
        justify-content: flex-start;
        gap: 6px;
    }
    .site-stats span {
        padding: 5px 8px;
        font-size: 11px;
    }
    .site-stats strong {
        font-size: 12px;
    }
    .recently-viewed-head {
        margin-top: 6px;
    }
    .home-history-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-bottom: 20px;
    }
}

/* v5.0 preview: retention-oriented home layout */
.v50-hero {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
}
.v50-hero h1 {
    font-size: clamp(30px, 5vw, 52px) !important;
    margin-bottom: 8px !important;
}
.v50-hero .badge {
    margin-bottom: 8px !important;
}
.v50-hero .hero-search {
    margin-top: 16px;
}
.v50-shortcuts {
    position: relative;
}
.home-band {
    margin: 10px 0 28px;
}
.home-band .section-head,
.compact-head {
    margin: 20px 0 12px !important;
}
.compact-head h2 {
    font-size: clamp(22px, 3vw, 30px) !important;
    margin: 0 0 4px !important;
}
.v50-feature-grid {
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}
.feature-card {
    border-color: rgba(255, 181, 72, .35);
    box-shadow: 0 14px 38px rgba(0,0,0,.24);
}
.home-bottom-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0 36px;
}
.home-bottom-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 1px solid #2a3347;
    background: #131a28;
    border-radius: 16px;
    padding: 15px 16px;
    text-decoration: none;
}
.home-bottom-links strong {
    color: #fff;
    font-size: 15px;
}
.home-bottom-links span {
    color: #9fb0d0;
    font-size: 12px;
    white-space: nowrap;
}
.video-card:hover {
    transform: translateY(-2px);
    border-color: rgba(79, 140, 255, .55);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
    box-shadow: 0 18px 42px rgba(0,0,0,.26);
}
.video-card {
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
@media (max-width: 720px) {
    .v50-hero {
        padding: 18px !important;
    }
    .v50-hero h1 {
        font-size: 30px !important;
    }
    .v50-hero .hero-copy {
        font-size: 12px;
    }
    .v50-hero .hero-search {
        margin-top: 12px;
    }
    .home-band {
        margin: 4px 0 18px;
    }
    .home-band .section-head,
    .compact-head {
        margin: 16px 0 10px !important;
    }
    .compact-head h2 {
        font-size: 20px !important;
    }
    .v50-feature-grid,
    .latest-section,
    .ranking-preview-section {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .feature-card .video-body h3,
    .latest-section .video-body h3,
    .ranking-preview-section .video-body h3 {
        -webkit-line-clamp: 2;
        min-height: 2.85em;
    }
    .home-bottom-links {
        grid-template-columns: 1fr;
        gap: 8px;
        margin: 14px 0 24px;
    }
    .home-bottom-links a {
        padding: 12px 14px;
    }
    .home-bottom-links strong {
        font-size: 14px;
    }
}


/* v5.0 preview02: mobile-first compact top and hamburger navigation */
.mobile-icon-button,
.mobile-search-panel,
.mobile-drawer {
    display: none;
}
.mobile-icon-button {
    border: 1px solid #2f3b56;
    background: #111827;
    color: #dce7ff;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    font-size: 18px;
    line-height: 1;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}
.mobile-search-panel,
.mobile-drawer {
    border-top: 1px solid var(--line);
    background: rgba(12, 15, 23, .98);
}
.mobile-search-form {
    width: min(1120px, calc(100% - 24px));
    margin: 0 auto;
    padding: 10px 0 12px;
    display: grid;
    grid-template-columns: 1fr 72px;
    gap: 8px;
}
.mobile-search-form input {
    min-width: 0;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid #33405a;
    background: #0e1320;
    color: var(--text);
    font-size: 15px;
}
.mobile-search-form button {
    border: 0;
    border-radius: 12px;
    background: var(--accent);
    color: white;
    font-weight: 800;
}
.mobile-drawer {
    width: min(1120px, calc(100% - 24px));
    margin: 0 auto;
    padding: 8px 0 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    border-top: 0;
}
.mobile-drawer a {
    display: block;
    padding: 11px 12px;
    border: 1px solid #2a3347;
    border-radius: 12px;
    background: #121927;
    color: #d7e3ff;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
}
.mobile-search-panel:not([hidden]) {
    display: block;
}
.mobile-drawer:not([hidden]) {
    display: grid;
}
@media (max-width: 720px) {
    .site-header {
        position: sticky;
        top: 0;
        z-index: 100;
    }
    .header-inner {
        display: grid !important;
        grid-template-columns: 44px 1fr 44px;
        align-items: center !important;
        gap: 6px !important;
        padding: 8px 0 !important;
        min-height: 56px;
    }
    .desktop-nav {
        display: none !important;
    }
    .mobile-icon-button {
        display: inline-flex;
    }
    .brand {
        justify-self: center;
        font-size: 22px !important;
        letter-spacing: .09em;
    }
    .main {
        padding-top: 10px !important;
    }
    /* The large PC hero consumes too much first-view height on phones. */
    .v50-hero {
        display: none !important;
    }
    .v50-shortcuts,
    .quick-searches {
        margin: 8px 0 10px !important;
        padding: 10px 0 6px !important;
        border: 0 !important;
        background: transparent !important;
    }
    .home-tags-head {
        display: none !important;
    }
    .tag-links {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        gap: 8px !important;
        padding: 2px 2px 8px;
        margin: 0 !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .tag-links::-webkit-scrollbar {
        display: none;
    }
    .tag-links a {
        white-space: nowrap;
        flex: 0 0 auto;
        padding: 8px 12px !important;
        font-size: 13px !important;
        border-radius: 999px !important;
    }
    .home-band {
        margin: 4px 0 12px !important;
    }
    .compact-head {
        margin: 8px 0 8px !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 10px !important;
    }
    .compact-head h2 {
        font-size: 18px !important;
        margin: 0 !important;
    }
    .compact-head .muted {
        display: none !important;
    }
    .section-more {
        font-size: 12px !important;
        white-space: nowrap;
    }
    .v50-feature-grid {
        display: flex !important;
        gap: 10px !important;
        overflow-x: auto;
        padding-bottom: 8px;
        margin: 8px 0 14px !important;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
    }
    .v50-feature-grid .video-card {
        flex: 0 0 46% !important;
        max-width: none !important;
        scroll-snap-align: start;
    }
    .latest-head {
        margin-top: 10px !important;
    }
    .latest-section,
    .ranking-preview-section,
    .home-history-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        margin-top: 8px !important;
    }
    .video-body {
        padding: 9px !important;
        gap: 7px !important;
    }
    .video-body h3 {
        font-size: 12px !important;
        line-height: 1.35 !important;
        -webkit-line-clamp: 2 !important;
        min-height: 2.7em !important;
    }
    .video-body dl {
        grid-template-columns: 42px 1fr !important;
        gap: 3px 6px !important;
        font-size: 10.5px !important;
        line-height: 1.45 !important;
    }
    .card-actions {
        gap: 6px !important;
    }
    .text-link,
    .favorite-button {
        font-size: 11px !important;
    }
    .home-bottom-links {
        display: none !important;
    }
}

/* v5.0 RC1: public-launch polish */
.v50-rc-hero {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
}
.v50-rc-hero .hero-row {
    align-items: center;
}
.v50-rc-hero h1 {
    font-size: clamp(28px, 3.2vw, 40px) !important;
    margin: 0 0 6px !important;
    letter-spacing: .02em;
}
.v50-rc-hero .hero-copy {
    margin: 0;
    font-size: 13px;
}
.v50-rc-hero .hero-search {
    margin-top: 14px !important;
}
.v50-rc-hero .badge {
    margin-bottom: 8px !important;
}
.v50-rc-hero .site-stats {
    align-items: center;
}
.site-stats .today-updated {
    color: #9fd7ff;
    border-color: rgba(89, 137, 221, .35);
}
.back-to-top {
    position: fixed;
    right: 18px;
    bottom: 22px;
    z-index: 120;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1px solid rgba(89, 137, 221, .5);
    background: rgba(14, 21, 34, .92);
    color: #dce7ff;
    font-weight: 900;
    font-size: 20px;
    box-shadow: 0 12px 30px rgba(0,0,0,.28);
    cursor: pointer;
}
.back-to-top:hover {
    border-color: rgba(79, 140, 255, .85);
}
@media (max-width: 720px) {
    .mobile-drawer a {
        font-size: 13px;
        padding: 10px 10px;
    }
    .back-to-top {
        right: 12px;
        bottom: 14px;
        width: 40px;
        height: 40px;
        font-size: 18px;
    }
}


/* v5.0 RC2: tighter public-launch hero and mobile tag spacing */
.v50-rc2-hero {
    padding: 18px 34px !important;
}
.v50-rc2-hero .hero-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}
.v50-rc2-hero .hero-copy {
    margin: 0 !important;
    max-width: none;
    font-size: 15px;
    color: #c9d6ef;
}
.v50-rc2-hero .compact-stats {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.v50-rc2-hero .hero-search {
    margin-top: 0 !important;
}
@media (max-width: 920px) {
    .v50-rc2-hero .hero-line {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
    .v50-rc2-hero .compact-stats {
        justify-content: flex-start;
    }
}
@media (max-width: 720px) {
    .tag-links {
        gap: 6px !important;
        padding: 0 2px 4px !important;
    }
    .tag-links a {
        padding: 6px 10px !important;
        font-size: 12px !important;
    }
    .v50-shortcuts,
    .quick-searches {
        margin: 4px 0 8px !important;
        padding: 6px 0 2px !important;
    }
    .home-band {
        margin-top: 2px !important;
    }
}

/* v5.0 RC3: detail media gallery */
.media-gallery {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.media-stage {
    position: relative;
    width: 100%;
    background: #070b13;
    border: 1px solid #25304a;
    border-radius: 18px;
    overflow: hidden;
    min-height: 220px;
}
.media-slide {
    margin: 0;
    width: 100%;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #070b13;
}
.media-slide[hidden] { display: none; }
.media-slide img {
    width: 100%;
    height: auto;
    max-height: 620px;
    object-fit: contain;
    display: block;
    background: #070b13;
}
.sample-video-wrap {
    width: 100%;
    aspect-ratio: 16 / 9;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #050813;
}
.sample-video,
.sample-video-frame {
    width: 100%;
    height: 100%;
    border: 0;
    background: #050813;
    display: block;
}
.media-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 56px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(5,8,19,.72);
    color: #fff;
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    display: grid;
    place-items: center;
    backdrop-filter: blur(6px);
}
.media-nav:hover { background: rgba(79,140,255,.38); }
.media-prev { left: 12px; }
.media-next { right: 12px; }
.media-count {
    position: absolute;
    right: 12px;
    bottom: 12px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(5,8,19,.76);
    color: #eaf0ff;
    font-size: 12px;
    font-weight: 800;
    z-index: 2;
}
.media-thumbs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 2px 2px 6px;
    scrollbar-width: thin;
}
.media-thumb {
    flex: 0 0 58px;
    width: 58px;
    height: 42px;
    border: 1px solid #2a344c;
    border-radius: 10px;
    background: #0b1020;
    overflow: hidden;
    cursor: pointer;
    color: #dfe8ff;
    font-weight: 900;
    display: grid;
    place-items: center;
    opacity: .72;
}
.media-thumb.active {
    border-color: #f8a33a;
    box-shadow: 0 0 0 2px rgba(248,163,58,.18);
    opacity: 1;
}
.media-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center right;
    display: block;
}
.media-thumb-video { font-size: 18px; }
.media-thumb-empty { font-size: 11px; color: #7f8aa3; }
.genre-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.genre-tag {
    display: inline-flex;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(79,140,255,.12);
    border: 1px solid rgba(79,140,255,.24);
    color: #d7e4ff;
    text-decoration: none;
    font-size: 12px;
    line-height: 1.35;
}
.genre-tag:hover { background: rgba(79,140,255,.22); }
@media (max-width: 720px) {
    .media-stage { border-radius: 14px; min-height: 180px; }
    .media-slide { min-height: 180px; }
    .media-slide img { max-height: 360px; }
    .media-nav { width: 36px; height: 48px; font-size: 28px; }
    .media-prev { left: 8px; }
    .media-next { right: 8px; }
    .media-count { right: 10px; bottom: 10px; }
    .media-thumb { flex-basis: 52px; width: 52px; height: 38px; }
}


/* v5.0 RC4: media and search-page refinements */
.compact-search-hero {
    display: block;
    padding: 16px 22px !important;
    margin-bottom: 18px !important;
}
.compact-search-hero .search-intro {
    margin: 0 0 10px !important;
    max-width: none;
    text-align: left;
    color: #c9d6ef;
    font-size: 14px;
}
.compact-search-hero .advanced-search {
    margin-top: 0;
}
.media-thumb-video {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 42px;
    font-size: 20px;
}
@media (max-width: 720px) {
    .compact-search-hero {
        padding: 12px 14px !important;
        margin-bottom: 12px !important;
    }
    .compact-search-hero .search-intro {
        font-size: 12px;
        margin-bottom: 8px !important;
    }
}


/* v5.0 RC6: gallery usability and mobile CTA refinements */
.media-stage { overflow: hidden; }
.media-slide img[data-media-img] { max-width: 100%; }
.media-nav {
    top: 0;
    bottom: 0;
    transform: none;
    width: 24%;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: transparent;
    opacity: 0;
    transition: opacity .18s ease, background .18s ease;
    backdrop-filter: none;
}
.media-stage:hover .media-nav,
.media-nav:focus-visible {
    opacity: 1;
}
.media-nav:hover {
    background: rgba(5,8,19,.30);
}
.media-prev {
    left: 0;
    justify-content: flex-start;
    padding-left: 16px;
}
.media-next {
    right: 0;
    justify-content: flex-end;
    padding-right: 16px;
}
.media-thumbs {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    padding: 7px 8px 8px;
}
.media-thumb {
    scroll-snap-align: start;
    border-radius: 8px;
}
.detail-meta-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.mobile-fanza-top { display: none; }
.compact-search-hero h1,
.search-hero h1 { display: none !important; }
@media (max-width: 720px) {
    .media-nav {
        opacity: 0;
        width: 30%;
    }
    .media-stage:active .media-nav,
    .media-stage:hover .media-nav,
    .media-nav:focus-visible {
        opacity: 1;
    }
    .media-prev { padding-left: 8px; }
    .media-next { padding-right: 8px; }
    .media-thumb {
        flex: 0 0 58px;
        width: 58px;
        height: 42px;
        border-radius: 7px;
    }
    .media-thumb img { border-radius: 0; }
    .detail-meta-bar {
        flex-wrap: nowrap;
        align-items: center;
    }
    .mobile-fanza-top {
        display: inline-flex;
        width: auto;
        min-width: 112px;
        padding: 8px 12px;
        font-size: 12px;
        white-space: nowrap;
        flex: 0 0 auto;
    }
    .detail-actions .button.fanza:not(.mobile-fanza-top) {
        display: none;
    }
}

/* v5.0 RC7: gallery stability and hover-only navigation */
.media-stage {
    height: min(620px, 52vw);
    min-height: 420px;
    max-height: 620px;
}
.media-slide {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}
.media-slide img[data-media-img] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center center;
}
.media-stage:not(:hover) .media-nav {
    opacity: 0 !important;
    background: transparent !important;
    pointer-events: none;
}
.media-stage:hover .media-nav,
.media-nav:focus-visible {
    opacity: 1 !important;
    pointer-events: auto;
}
.media-nav {
    color: transparent;
    text-shadow: none;
}
.media-stage:hover .media-nav,
.media-nav:focus-visible {
    color: #fff;
}
.media-nav:hover {
    background: rgba(5,8,19,.32) !important;
}
.media-thumbs {
    width: 100%;
    max-width: 100%;
    flex-wrap: nowrap;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    cursor: grab;
}
.media-thumbs.dragging { cursor: grabbing; }
.media-thumb { flex-shrink: 0; }
.mobile-fanza-top { margin-left: 10px; }
@media (max-width: 720px) {
    .media-stage {
        height: min(72vw, 430px);
        min-height: 230px;
    }
    .media-slide img[data-media-img] {
        max-height: 100%;
    }
    .mobile-fanza-top { margin-left: 12px; }
}


/* v5.0 RC9: enforce mobile detail header single row and CTA centering */
@media (max-width: 720px) {
    .compact-detail-banner {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0 !important;
        padding: 10px 12px !important;
        margin: 10px 12px 12px !important;
        min-height: 58px !important;
        height: 58px !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }
    .compact-detail-banner h1 {
        position: static !important;
        display: block !important;
        width: auto !important;
        margin: 0 auto !important;
        padding: 0 !important;
        font-size: 22px !important;
        line-height: 1 !important;
        text-align: center !important;
        white-space: nowrap !important;
        transform: none !important;
    }
    .compact-detail-banner .back-link {
        position: absolute !important;
        left: 12px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 7px 10px !important;
        min-height: 32px !important;
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
        z-index: 2 !important;
    }
    .compact-detail-banner::after {
        content: none !important;
        display: none !important;
    }
    .detail-meta-bar {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 18px !important;
    }
    .detail-meta-bar .badge {
        margin: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        min-height: 42px !important;
        line-height: 1 !important;
    }
    .mobile-fanza-top {
        margin: 0 0 0 18px !important;
        min-width: 136px !important;
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 18px !important;
        box-sizing: border-box !important;
        font-size: 16px !important;
        line-height: 1 !important;
        font-weight: 800 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        white-space: nowrap !important;
        vertical-align: middle !important;
    }
}
@media (max-width: 390px) {
    .compact-detail-banner { height: 54px !important; min-height: 54px !important; padding: 9px 10px !important; }
    .compact-detail-banner h1 { font-size: 20px !important; }
    .compact-detail-banner .back-link { left: 10px !important; padding: 6px 8px !important; font-size: 11px !important; min-height: 30px !important; }
    .detail-meta-bar { gap: 12px !important; }
    .mobile-fanza-top { margin-left: 12px !important; min-width: 124px !important; height: 42px !important; min-height: 42px !important; padding: 0 14px !important; font-size: 14px !important; }
}


/* v5.0 RC10: thumbnail click/scroll reliability */
.media-thumbs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x proximity !important;
    touch-action: pan-x !important;
}
.media-thumb {
    flex: 0 0 64px !important;
    width: 64px !important;
    min-width: 64px !important;
    height: 46px !important;
    scroll-snap-align: start !important;
    cursor: pointer !important;
    user-select: none !important;
    -webkit-user-select: none !important;
}
.media-thumbs.dragging .media-thumb { cursor: grabbing !important; }
@media (max-width: 720px) {
    .media-thumb {
        flex-basis: 62px !important;
        width: 62px !important;
        min-width: 62px !important;
        height: 44px !important;
    }
}

/* v5.0 RC11: thumbnail click reliability */
.media-thumbs,
.media-thumbs * {
    pointer-events: auto !important;
}
.media-thumb {
    position: relative !important;
    z-index: 5 !important;
}
.media-thumb img,
.media-thumb span {
    pointer-events: none !important;
}
.media-stage .media-nav {
    z-index: 4 !important;
}


/* v5.0 RC12: PC thumbnail click hardening */
.media-gallery .media-thumbs {
    position: relative !important;
    z-index: 20 !important;
    pointer-events: auto !important;
}
.media-gallery .media-thumb {
    position: relative !important;
    z-index: 21 !important;
    pointer-events: auto !important;
}
.media-gallery .media-thumb::before,
.media-gallery .media-thumb::after {
    pointer-events: none !important;
}

/* v5.0 RC13 entity heading copy refinement */
.entity-banner > div {
    min-width: 0;
    flex: 1 1 auto;
}
.entity-banner .muted {
    max-width: none;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 760px) {
    .entity-banner .muted {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
}

/* v5.0 Stable beta: final public polish */
.media-stage,
.media-slide {
    overflow: hidden !important;
}
.media-slide img[data-media-img],
.sample-video,
.sample-video-frame {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 560px !important;
    object-fit: contain !important;
    background: #05070d !important;
    display: block;
    margin: 0 auto;
}
.sample-video-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 260px;
    background: #05070d;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sample-video-poster {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    margin: 0;
    cursor: pointer;
    background: #05070d;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4;
}
.sample-video-poster.is-hidden { display: none; }
.sample-video-poster img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: .92;
}
.sample-video-play-icon {
    position: absolute;
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    border-radius: 999px;
    background: rgba(0,0,0,.56);
    color: #fff;
    font-size: 34px;
    line-height: 1;
    padding-left: 5px;
    box-shadow: 0 14px 36px rgba(0,0,0,.45);
}
.sample-video-poster:hover .sample-video-play-icon {
    background: rgba(234,94,35,.9);
}
.media-nav {
    opacity: 0 !important;
    background: transparent !important;
    color: transparent !important;
    transition: opacity .18s ease, background .18s ease, color .18s ease;
}
.media-stage:hover .media-nav,
.media-nav:focus-visible {
    opacity: 1 !important;
    color: #fff !important;
    background: rgba(0,0,0,.24) !important;
}
.media-stage:hover .media-nav:hover {
    background: rgba(0,0,0,.42) !important;
}
.media-thumbs {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    flex-wrap: nowrap !important;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}
.media-thumb {
    flex: 0 0 92px !important;
    scroll-snap-align: start;
}
.media-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
@media (max-width: 720px) {
    .sample-video-wrap { min-height: 190px; }
    .media-slide img[data-media-img],
    .sample-video,
    .sample-video-frame {
        max-height: 360px !important;
        object-fit: contain !important;
    }
    .media-thumb {
        flex-basis: 58px !important;
        width: 58px !important;
        height: 44px !important;
        border-radius: 8px !important;
    }
    .media-thumb img { border-radius: 6px !important; }
    .sample-video-play-icon {
        width: 58px;
        height: 58px;
        font-size: 26px;
    }
}


/* v5.0 Stable beta hotfix: keep video poster/playback in the same 16:9 area without vertical clipping */
.media-gallery.media-active-video .media-stage {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
}
.media-gallery.media-active-video .media-slide {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .sample-video-wrap {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery.media-active-video .sample-video-poster img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
}
@media (max-width: 720px) {
    .media-gallery.media-active-video .sample-video-wrap {
        min-height: 0 !important;
    }
}

/* v5.0 Stable Beta Hotfix 2: video gallery natural aspect and no clipping */
.media-gallery.media-active-video .media-stage,
.media-gallery.media-active-video .media-slide,
.media-gallery.media-active-video .sample-video-wrap {
    aspect-ratio: var(--jav89-video-aspect, 3 / 2) !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery.media-active-video .sample-video-wrap {
    position: relative !important;
    display: block !important;
}
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery.media-active-video .sample-video-poster {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    background: #05070d !important;
}
.media-gallery.media-active-video .sample-video-poster img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    max-height: none !important;
}
@media (max-width: 720px) {
    .media-gallery.media-active-video .media-stage,
    .media-gallery.media-active-video .media-slide,
    .media-gallery.media-active-video .sample-video-wrap {
        aspect-ratio: var(--jav89-video-aspect, 3 / 2) !important;
        min-height: 0 !important;
        height: auto !important;
    }
}


/* v5.0 Stable Beta Hotfix 3: PC gallery video aspect and age button balance */
.media-gallery.media-active-video .media-stage,
.media-gallery.media-active-video .media-slide,
.media-gallery.media-active-video .sample-video-wrap {
    aspect-ratio: var(--jav89-video-aspect, 16 / 9) !important;
}
.media-gallery.media-active-video .sample-video-poster img,
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame {
    object-fit: contain !important;
    object-position: center center !important;
}
.age-gate-actions .button {
    font-size: 18px;
    font-weight: 900;
    min-height: 54px;
}
@media (max-width: 700px) {
    .age-gate-actions .button {
        font-size: 18px !important;
        min-height: 56px !important;
    }
}


/* v5.0 Stable Beta Hotfix 4: PC video gallery true aspect and mobile search-result compaction */
.media-gallery.media-active-video .media-stage,
.media-stage:has(.media-slide-video.active) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .media-slide,
.media-stage:has(.media-slide-video.active) .media-slide-video.active {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .sample-video-wrap,
.media-slide-video.active .sample-video-wrap {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: var(--jav89-video-aspect, 476 / 306) !important;
    display: block !important;
    position: relative !important;
    background: #05070d !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery.media-active-video .sample-video-poster,
.media-slide-video.active .sample-video,
.media-slide-video.active .sample-video-frame,
.media-slide-video.active .sample-video-poster {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #05070d !important;
    border: 0 !important;
}
.media-gallery.media-active-video .sample-video-poster img,
.media-slide-video.active .sample-video-poster img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
}
@media (min-width: 721px) {
    .media-slide-video.active .sample-video-wrap {
        max-height: 620px !important;
    }
}
@media (max-width: 720px) {
    .search-hero-result {
        display: none !important;
    }
}


/* v5.0 Stable Beta Hotfix 5: cache-busted final gallery video sizing + mobile result cleanup */
/* PC/スマホ共通：動画スライドは固定高さを完全に解除し、動画/ポスター比率で高さを決める */
.media-gallery.media-active-video .media-stage,
.media-gallery .media-stage:has(.media-slide-video.active) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .media-slide-video.active,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-wrap {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: var(--jav89-video-aspect, 476 / 306) !important;
    background: #05070d !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .media-slide-video.active .sample-video,
.media-gallery.media-active-video .media-slide-video.active .sample-video-frame,
.media-gallery.media-active-video .media-slide-video.active .sample-video-poster,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-frame,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-poster {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #05070d !important;
    border: 0 !important;
}
.media-gallery.media-active-video .media-slide-video.active .sample-video-poster img,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-poster img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #05070d !important;
}
/* 動画以外の画像スライドは従来の見やすい高さを維持 */
.media-gallery:not(.media-active-video) .media-stage:not(:has(.media-slide-video.active)) {
    height: min(620px, 52vw) !important;
    min-height: 420px !important;
    max-height: 620px !important;
}
@media (max-width: 720px) {
    .search-hero-result,
    .compact-search-hero.search-hero-result,
    body .rc5-search-hero.search-hero-result {
        display: none !important;
    }
    .media-gallery:not(.media-active-video) .media-stage:not(:has(.media-slide-video.active)) {
        height: min(72vw, 430px) !important;
        min-height: 230px !important;
    }
}


/* v5.0 Stable Beta Hotfix 6: restore unified gallery frame and remove video clipping */
.media-gallery {
    --jav89-gallery-pc-height: clamp(430px, 52vw, 620px);
    --jav89-gallery-mobile-height: clamp(240px, 62vw, 420px);
}
.media-gallery .media-stage {
    position: relative !important;
    width: 100% !important;
    height: var(--jav89-gallery-pc-height) !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery .media-slide,
.media-gallery.media-active-video .media-slide,
.media-gallery .media-slide-video.active,
.media-gallery.media-active-video .media-slide-video.active {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery .media-slide[hidden] {
    display: none !important;
}
.media-gallery .sample-video-wrap,
.media-gallery.media-active-video .sample-video-wrap,
.media-gallery .media-slide-video.active .sample-video-wrap,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-wrap {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery .sample-video,
.media-gallery .sample-video-frame,
.media-gallery .sample-video-poster,
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery.media-active-video .sample-video-poster,
.media-gallery .media-slide-video.active .sample-video,
.media-gallery .media-slide-video.active .sample-video-frame,
.media-gallery .media-slide-video.active .sample-video-poster {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    border: 0 !important;
    background: #05070d !important;
}
.media-gallery .sample-video,
.media-gallery .sample-video-frame {
    object-fit: contain !important;
    object-position: center center !important;
}
.media-gallery .sample-video-poster {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    cursor: pointer !important;
}
.media-gallery .sample-video-poster.is-hidden {
    display: none !important;
}
.media-gallery .sample-video-poster img,
.media-gallery.media-active-video .sample-video-poster img,
.media-gallery .media-slide-video.active .sample-video-poster img,
.media-gallery .media-slide img[data-media-img] {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #05070d !important;
    display: block !important;
}
.media-gallery .sample-video::-webkit-media-controls,
.media-gallery .sample-video::-webkit-media-controls-panel {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.media-gallery .media-nav {
    width: 12% !important;
}
.media-gallery .media-prev { padding-left: 10px !important; }
.media-gallery .media-next { padding-right: 10px !important; }
.media-gallery .media-thumbs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    align-items: center !important;
}
@media (max-width: 720px) {
    .media-gallery .media-stage {
        height: var(--jav89-gallery-mobile-height) !important;
        min-height: 0 !important;
        max-height: none !important;
    }
    .media-gallery .media-nav {
        width: 15% !important;
    }
    .media-gallery .media-prev { padding-left: 6px !important; }
    .media-gallery .media-next { padding-right: 6px !important; }
}

/* v5.0 Stable Beta Hotfix 7: final gallery video frame correction.
   For video slides, use the FANZA player/video URL aspect ratio instead of the poster/package image.
   This prevents top/bottom clipping on PC and keeps poster/playback the same size. */
.media-gallery.media-active-video .media-stage,
.media-gallery .media-stage:has(.media-slide-video.active) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: var(--jav89-video-aspect, 476 / 306) !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery.media-active-video .media-slide-video.active,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active,
.media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-wrap {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: var(--jav89-video-aspect, 476 / 306) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    background: #05070d !important;
}
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery.media-active-video .sample-video-poster,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-frame,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-poster {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #05070d !important;
    border: 0 !important;
}
.media-gallery.media-active-video .sample-video-poster img,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-poster img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #05070d !important;
}
/* Narrower left/right gallery hit areas. */
.media-gallery .media-nav {
    width: 6% !important;
    min-width: 42px !important;
}
@media (max-width: 720px) {
    .media-gallery.media-active-video .media-stage,
    .media-gallery .media-stage:has(.media-slide-video.active) {
        height: auto !important;
        aspect-ratio: var(--jav89-video-aspect, 476 / 306) !important;
    }
    .media-gallery .media-nav {
        width: 9% !important;
        min-width: 36px !important;
    }
}


/* Stable Beta Hotfix 8: compact display-count controls and public guide/contact cleanup */
.result-head-with-control,
.ranking-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}
.compact-hits-control {
    flex: 0 0 auto;
    margin-left: auto;
}
.compact-hits-control select {
    min-width: 94px;
    height: 44px;
    padding: 0 34px 0 16px;
    border-radius: 14px;
    border: 1px solid rgba(115, 158, 255, .35);
    background: rgba(5, 10, 22, .82);
    color: #fff;
    font-weight: 800;
    font-size: 15px;
}
.guide-banner-clean {
    min-height: 0;
}
.guide-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.guide-steps div {
    border: 1px solid rgba(115, 158, 255, .25);
    background: rgba(9, 18, 36, .45);
    border-radius: 18px;
    padding: 16px;
}
.guide-steps strong {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
    border-radius: 50%;
    background: rgba(74, 137, 255, .18);
    color: #9ec0ff;
}
.feedback-actions, .site-rating {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0;
}
.pill-link, .site-rating button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
    border: 1px solid rgba(115, 158, 255, .35);
    background: rgba(15, 29, 55, .82);
    color: #dce8ff;
    text-decoration: none;
    font-weight: 800;
}
.site-rating button {
    cursor: pointer;
}
.site-rating button:hover, .pill-link:hover {
    border-color: rgba(255, 151, 57, .65);
}
@media (max-width: 768px) {
    .result-head-with-control,
    .ranking-hero {
        align-items: flex-start;
        gap: 10px;
    }
    .result-head-with-control {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .compact-hits-control select {
        min-width: 76px;
        height: 38px;
        padding-left: 12px;
        padding-right: 26px;
        border-radius: 12px;
        font-size: 13px;
    }
    .guide-steps {
        grid-template-columns: 1fr;
    }
}

/* Stable Beta Hotfix 9: unified list title and compact hits selector */
.result-head-with-control {
    align-items: flex-start !important;
    gap: 18px !important;
}
.result-head-with-control > div {
    min-width: 0;
}
.result-head-with-control h2 {
    margin-bottom: 10px !important;
}
.compact-hits-control {
    margin-top: 44px !important;
}
.compact-hits-control select {
    min-width: 104px !important;
    height: 46px !important;
    padding: 0 36px 0 16px !important;
    font-size: 17px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}
.ranking-hero .compact-hits-control {
    margin-top: 42px !important;
}
.ranking-hero {
    align-items: flex-start !important;
}
@media (max-width: 768px) {
    .result-head-with-control {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: start !important;
        column-gap: 10px !important;
        row-gap: 8px !important;
    }
    .result-head-with-control .badge {
        margin-bottom: 10px !important;
    }
    .result-head-with-control h2 {
        font-size: clamp(22px, 6vw, 30px) !important;
        line-height: 1.25 !important;
        margin: 0 0 10px !important;
    }
    .result-head-with-control .muted {
        grid-column: 1 / -1;
        font-size: 13px !important;
        line-height: 1.55 !important;
    }
    .compact-hits-control {
        margin-top: 42px !important;
        align-self: start !important;
    }
    .compact-hits-control select {
        min-width: 88px !important;
        height: 40px !important;
        padding: 0 28px 0 13px !important;
        border-radius: 13px !important;
        font-size: 15px !important;
    }
    .ranking-hero {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: start !important;
        padding: 20px !important;
        flex-direction: initial !important;
    }
    .ranking-hero .compact-hits-control {
        margin-top: 48px !important;
    }
    .ranking-hero h1 {
        font-size: clamp(32px, 9vw, 44px) !important;
        line-height: 1.15 !important;
    }
}
@media (max-width: 480px) {
    .compact-hits-control select {
        min-width: 82px !important;
        height: 38px !important;
        font-size: 14px !important;
    }
    .result-head-with-control h2 {
        font-size: 25px !important;
    }
}

/* v5.1 Preview 02: trending, reserve badges, unified compact list controls */
.reserve-badge {
    position: absolute;
    z-index: 5;
    top: 10px;
    right: 10px;
    min-width: 50px;
    height: 28px;
    padding: 0 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #8b5cf6, #4f8cff);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
    box-shadow: 0 8px 22px rgba(79, 140, 255, .28);
}
.video-card.ranking-card .reserve-badge {
    top: 42px;
    left: 10px;
    right: auto;
}
.list-title-head {
    margin-top: 34px !important;
    margin-bottom: 22px !important;
}
.result-head-with-control.list-title-head {
    align-items: flex-start !important;
}
.result-head-with-control.list-title-head .compact-hits-control {
    margin-top: 44px !important;
}
.home-band-hot .muted,
.latest-head .muted,
.ranking-preview-head .muted {
    color: #aebce0;
}
@media (max-width: 768px) {
    .reserve-badge {
        top: 8px;
        right: 8px;
        min-width: 42px;
        height: 24px;
        padding: 0 9px;
        font-size: 11px;
    }
    .video-card.ranking-card .reserve-badge {
        top: 34px;
        left: 7px;
        right: auto;
    }
    .list-title-head {
        margin-top: 18px !important;
        margin-bottom: 18px !important;
    }
    .result-head-with-control.list-title-head {
        grid-template-columns: minmax(0, 1fr) auto !important;
    }
    .result-head-with-control.list-title-head .compact-hits-control {
        margin-top: 42px !important;
    }
}


/* v5.1 Preview 04: contact rating and compact feedback UI */
.site-rating button {
    gap: 8px;
    flex-direction: column;
    line-height: 1.25;
    padding: 10px 18px;
    min-height: 58px;
}
.site-rating .rating-stars {
    letter-spacing: 1px;
    color: #ffd166;
    font-size: 17px;
}
.site-rating button.selected,
.site-rating button[aria-pressed="true"] {
    border-color: rgba(255, 151, 57, .95);
    background: linear-gradient(135deg, rgba(255, 132, 42, .28), rgba(255, 72, 72, .18));
    color: #fff;
}
@media (max-width: 768px) {
    .site-rating button {
        min-width: 100%;
        align-items: center;
    }
}


/* v5.1 Preview 05: make simple rating a clear 3-choice button UI */
.site-rating.site-rating-cards {
    gap: 14px;
}
.site-rating.site-rating-cards button {
    min-width: 190px;
    min-height: 74px;
    border-radius: 18px;
    border-width: 1.5px;
    background: linear-gradient(180deg, rgba(24, 43, 78, .92), rgba(10, 20, 39, .92));
    box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
    transition: transform .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.site-rating.site-rating-cards button:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .24);
}
.site-rating.site-rating-cards .rating-stars {
    font-size: 20px;
    letter-spacing: 2px;
    line-height: 1;
}
.site-rating.site-rating-cards .rating-label {
    font-size: 15px;
    line-height: 1.25;
}
.site-rating.site-rating-cards button[data-site-rating="5"] .rating-stars { color: #ffd166; }
.site-rating.site-rating-cards button[data-site-rating="3"] .rating-stars { color: #9ec0ff; }
.site-rating.site-rating-cards button[data-site-rating="1"] .rating-stars { color: #ff9f68; }
.site-rating.site-rating-cards button[data-site-rating="5"].selected,
.site-rating.site-rating-cards button[data-site-rating="5"][aria-pressed="true"] {
    border-color: rgba(255, 209, 102, .95);
    background: linear-gradient(135deg, rgba(255, 209, 102, .26), rgba(255, 132, 42, .18));
}
.site-rating.site-rating-cards button[data-site-rating="3"].selected,
.site-rating.site-rating-cards button[data-site-rating="3"][aria-pressed="true"] {
    border-color: rgba(115, 158, 255, .95);
    background: linear-gradient(135deg, rgba(74, 137, 255, .24), rgba(45, 79, 140, .18));
}
.site-rating.site-rating-cards button[data-site-rating="1"].selected,
.site-rating.site-rating-cards button[data-site-rating="1"][aria-pressed="true"] {
    border-color: rgba(255, 159, 104, .95);
    background: linear-gradient(135deg, rgba(255, 159, 104, .24), rgba(255, 72, 72, .14));
}
@media (max-width: 768px) {
    .site-rating.site-rating-cards button {
        min-width: 100%;
        min-height: 72px;
    }
    .site-rating.site-rating-cards .rating-stars {
        font-size: 19px;
    }
    .site-rating.site-rating-cards .rating-label {
        font-size: 15px;
    }
}


/* v5.1 Preview 08: detail title readability and robust video fullscreen control. */
.detail-info h2 {
    font-size: clamp(20px, 2.05vw, 28px) !important;
    line-height: 1.34 !important;
    letter-spacing: -0.01em;
}
@media (max-width: 1024px) {
    .detail-info h2 {
        font-size: clamp(19px, 2.8vw, 26px) !important;
        line-height: 1.36 !important;
    }
}
@media (max-width: 720px) {
    .detail-info h2 {
        font-size: clamp(18px, 4.6vw, 22px) !important;
        line-height: 1.38 !important;
        margin: 10px 0 16px !important;
    }
}
.sample-video-fullscreen {
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 8;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    background: rgba(5,7,13,.72);
    color: #fff;
    font-weight: 800;
    font-size: 13px;
    line-height: 1;
    padding: 9px 12px;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-2px);
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
}
.sample-video-wrap:hover .sample-video-fullscreen,
.sample-video-wrap:focus-within .sample-video-fullscreen,
.sample-video-fullscreen:focus {
    opacity: 1;
    transform: translateY(0);
}
.sample-video-fullscreen:hover {
    background: rgba(31,41,64,.92);
}
@media (hover: none), (max-width: 720px) {
    .sample-video-fullscreen {
        opacity: 1;
        transform: none;
        top: 10px;
        right: 10px;
        font-size: 12px;
        padding: 8px 10px;
    }
}
.sample-video-wrap:fullscreen,
.sample-video-wrap:fullscreen .sample-video,
.sample-video-wrap:fullscreen .sample-video-frame,
.sample-video-wrap:fullscreen .sample-video-poster {
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    background: #000 !important;
}
.sample-video-wrap:fullscreen .sample-video,
.sample-video-wrap:fullscreen .sample-video-frame,
.sample-video-wrap:fullscreen .sample-video-poster img {
    object-fit: contain !important;
}


/* Keep fullscreen affordance discoverable on video slides without changing gallery layout. */
.media-gallery.media-active-video .sample-video-fullscreen,
.media-slide-video.active .sample-video-fullscreen {
    opacity: .86;
    transform: translateY(0);
}
.sample-video-wrap:fullscreen .sample-video-fullscreen {
    opacity: 1 !important;
    top: 18px;
    right: 18px;
    z-index: 20;
}
.sample-video-wrap:fullscreen .sample-video-poster {
    display: none !important;
}
.sample-video-wrap:fullscreen iframe,
.sample-video-wrap:fullscreen video {
    display: block !important;
}

/* v5.1 Preview 09: detail title final tuning and always-visible fullscreen control. */
.detail-info h2 {
    font-size: clamp(18px, 1.72vw, 24px) !important;
    line-height: 1.46 !important;
    letter-spacing: -0.012em !important;
    margin: 10px 0 18px !important;
}
@media (max-width: 1024px) {
    .detail-info h2 {
        font-size: clamp(18px, 2.25vw, 23px) !important;
        line-height: 1.48 !important;
    }
}
@media (max-width: 720px) {
    .detail-info h2 {
        font-size: clamp(16px, 4.1vw, 20px) !important;
        line-height: 1.5 !important;
        margin: 12px 0 16px !important;
    }
}
.media-slide-video.active .sample-video-fullscreen,
.media-gallery.media-active-video .sample-video-fullscreen,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-fullscreen {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    opacity: .96 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    z-index: 30 !important;
}
.sample-video-fullscreen {
    min-width: 78px !important;
    min-height: 34px !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.32) !important;
}
.sample-video-fullscreen:hover,
.sample-video-fullscreen:focus-visible {
    opacity: 1 !important;
    background: rgba(31,41,64,.96) !important;
    outline: 2px solid rgba(115,158,255,.5) !important;
    outline-offset: 2px !important;
}
@media (max-width: 720px) {
    .sample-video-fullscreen {
        top: 8px !important;
        right: 8px !important;
        min-width: 70px !important;
        min-height: 32px !important;
        padding: 7px 9px !important;
        font-size: 11px !important;
    }
}
.sample-video-wrap:fullscreen .sample-video-fullscreen,
.sample-video-wrap:-webkit-full-screen .sample-video-fullscreen {
    opacity: 1 !important;
    visibility: visible !important;
}
.sample-video-wrap:fullscreen .sample-video,
.sample-video-wrap:-webkit-full-screen .sample-video,
.sample-video-wrap:fullscreen .sample-video-frame,
.sample-video-wrap:-webkit-full-screen .sample-video-frame {
    width: 100vw !important;
    height: 100vh !important;
    object-fit: contain !important;
    background: #000 !important;
}

/* v5.1 Preview 10: force detail title readability and fullscreen button visibility after cache-bust. */
body .detail-layout .detail-info > h2,
body .detail-info h2 {
    font-size: clamp(17px, 1.45vw, 22px) !important;
    line-height: 1.58 !important;
    letter-spacing: -0.006em !important;
    margin: 10px 0 20px !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}
@media (max-width: 1180px) {
    body .detail-layout .detail-info > h2,
    body .detail-info h2 {
        font-size: clamp(16px, 2.0vw, 21px) !important;
        line-height: 1.6 !important;
    }
}
@media (max-width: 720px) {
    body .detail-layout .detail-info > h2,
    body .detail-info h2 {
        font-size: clamp(15px, 3.65vw, 18px) !important;
        line-height: 1.62 !important;
        margin: 10px 0 16px !important;
    }
}

/* Fullscreen control: always visible on the active video slide in PC, tablet and mobile orientations. */
body .media-gallery .media-slide-video.active .sample-video-wrap {
    position: relative !important;
}
body .media-gallery .media-slide-video.active .sample-video-fullscreen,
body .media-gallery.media-active-video .sample-video-fullscreen,
body .media-stage .media-slide-video.active [data-video-fullscreen] {
    display: inline-flex !important;
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 9999 !important;
    opacity: .98 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    min-width: 78px !important;
    min-height: 34px !important;
    padding: 8px 11px !important;
    border: 1px solid rgba(255,255,255,.5) !important;
    border-radius: 999px !important;
    background: rgba(5,7,13,.78) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.4) !important;
}
body .media-gallery .media-slide-video.active .sample-video-fullscreen:hover,
body .media-gallery .media-slide-video.active .sample-video-fullscreen:focus-visible {
    opacity: 1 !important;
    background: rgba(31,41,64,.96) !important;
    outline: 2px solid rgba(115,158,255,.55) !important;
    outline-offset: 2px !important;
}
@media (max-width: 720px) {
    body .media-gallery .media-slide-video.active .sample-video-fullscreen,
    body .media-gallery.media-active-video .sample-video-fullscreen,
    body .media-stage .media-slide-video.active [data-video-fullscreen] {
        top: 8px !important;
        right: 8px !important;
        min-width: 68px !important;
        min-height: 30px !important;
        padding: 7px 9px !important;
        font-size: 11px !important;
    }
}
body .sample-video-wrap:fullscreen .sample-video-fullscreen,
body .sample-video-wrap:-webkit-full-screen .sample-video-fullscreen {
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 10000 !important;
}

/* v5.1 Preview 11: custom viewport fullscreen for gallery video.
   Native iframe fullscreen can keep FANZA's player small on some PC/tablet browsers;
   this fixed overlay makes the active player fill the visible viewport consistently. */
body.jav89-gallery-fullscreen-open {
    overflow: hidden !important;
    touch-action: none !important;
}
body .sample-video-wrap.is-jav89-custom-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    z-index: 2147483000 !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left) !important;
    box-sizing: border-box !important;
}
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video,
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-frame,
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
}
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    background: #000 !important;
}
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-fullscreen {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    z-index: 2147483001 !important;
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    min-width: 76px !important;
    min-height: 36px !important;
    padding: 9px 12px !important;
    font-size: 13px !important;
    background: rgba(5,7,13,.82) !important;
    border: 1px solid rgba(255,255,255,.55) !important;
    color: #fff !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.45) !important;
}
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-play-icon {
    transform: translate(-50%, -50%) scale(1.08) !important;
}
@media (orientation: landscape) and (max-height: 520px) {
    body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-fullscreen {
        top: max(8px, env(safe-area-inset-top)) !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        min-height: 32px !important;
        font-size: 12px !important;
    }
}


/* v5.1 Preview 12: body-level video fullscreen overlay. */
body.jav89-gallery-fullscreen-open {
    overflow: hidden !important;
    touch-action: none !important;
}
.jav89-video-fullscreen-layer {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left) !important;
    background: #000 !important;
    box-sizing: border-box !important;
}
.jav89-video-fullscreen-stage {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #000 !important;
    overflow: hidden !important;
}
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen {
    position: relative !important;
    inset: auto !important;
    z-index: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video,
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-frame,
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
}
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: #000 !important;
}
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-fullscreen {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    z-index: 2147483002 !important;
    display: inline-flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    min-width: 74px !important;
    min-height: 36px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.6) !important;
    background: rgba(5,7,13,.86) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.45) !important;
}
@media (orientation: landscape) and (max-height: 520px) {
    .jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-fullscreen {
        top: max(8px, env(safe-area-inset-top)) !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        min-width: 66px !important;
        min-height: 30px !important;
        padding: 7px 9px !important;
        font-size: 11px !important;
    }
}


/* v5.1 Preview 13: fullscreen video must show only the video/player, never the poster image. */
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster,
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster.is-hidden,
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-poster.is-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video,
.jav89-video-fullscreen-layer .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-frame,
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video,
body .sample-video-wrap.is-jav89-custom-fullscreen .sample-video-frame {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    background: #000 !important;
}

/* v5.1 Preview 14: fullscreen overlay contains only the actual video/player. */
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > .is-jav89-fullscreen-player {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 auto !important;
}
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > iframe.is-jav89-fullscreen-player {
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
}
.jav89-video-fullscreen-close {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    z-index: 2147483003 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 74px !important;
    min-height: 36px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.6) !important;
    background: rgba(5,7,13,.88) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.45) !important;
    cursor: pointer !important;
}

/* v5.1 Preview 14: fullscreen overlay contains only the actual video/player. */
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > .is-jav89-fullscreen-player {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 auto !important;
}
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > iframe.is-jav89-fullscreen-player {
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
}
.jav89-video-fullscreen-close {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    z-index: 2147483003 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 74px !important;
    min-height: 36px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.6) !important;
    background: rgba(5,7,13,.88) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.45) !important;
    cursor: pointer !important;
}

/* v5.1 Preview 15: native player fullscreen must scale the actual video/iframe to the viewport. */
.is-jav89-native-fullscreen-target:fullscreen,
.is-jav89-native-fullscreen-target:-webkit-full-screen,
.is-jav89-native-fullscreen-target:-moz-full-screen,
.is-jav89-native-fullscreen-target:-ms-fullscreen {
    width: 100vw !important;
    height: 100vh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
    object-fit: contain !important;
}
iframe.is-jav89-native-fullscreen-target:fullscreen,
iframe.is-jav89-native-fullscreen-target:-webkit-full-screen,
iframe.is-jav89-native-fullscreen-target:-moz-full-screen,
iframe.is-jav89-native-fullscreen-target:-ms-fullscreen,
video.is-jav89-native-fullscreen-target:fullscreen,
video.is-jav89-native-fullscreen-target:-webkit-full-screen,
video.is-jav89-native-fullscreen-target:-moz-full-screen,
video.is-jav89-native-fullscreen-target:-ms-fullscreen {
    display: block !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    background: #000 !important;
    object-fit: contain !important;
}
/* Fallback overlay: if native fullscreen is unavailable, make the player fill the overlay. */
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage,
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > .is-jav89-fullscreen-player,
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > iframe.is-jav89-fullscreen-player,
.jav89-video-fullscreen-layer .jav89-video-fullscreen-stage > video.is-jav89-fullscreen-player {
    width: 100vw !important;
    height: 100vh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
    object-fit: contain !important;
}

/* v5.1 Preview 16: stable readable fullscreen for FANZA iframe and HTML5 video. */
body.jav89-gallery-fullscreen-open {
    overflow: hidden !important;
    touch-action: none !important;
}
.jav89-video-fullscreen-layer.p16 {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483640 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    display: block !important;
    background: #000 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}
.jav89-video-fullscreen-stage.p16 {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #000 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}
.jav89-video-fullscreen-stage.p16 > video.is-jav89-fullscreen-player {
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: block !important;
}
.jav89-video-fullscreen-stage.p16 > iframe.is-jav89-fullscreen-player {
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: block !important;
    box-shadow: none !important;
}
.jav89-video-fullscreen-close.p16 {
    position: fixed !important;
    top: max(12px, env(safe-area-inset-top)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    z-index: 2147483641 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 74px !important;
    min-height: 36px !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.65) !important;
    background: rgba(5,7,13,.88) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.45) !important;
    cursor: pointer !important;
}
video.is-jav89-native-fullscreen-target:fullscreen,
video.is-jav89-native-fullscreen-target:-webkit-full-screen,
video.is-jav89-native-fullscreen-target:-moz-full-screen,
video.is-jav89-native-fullscreen-target:-ms-fullscreen {
    width: 100vw !important;
    height: 100vh !important;
    object-fit: contain !important;
    background: #000 !important;
}

/* v5.1 Preview 17: iframe fullscreen uses a video-aspect viewport, not a full-height iframe. */
.jav89-video-fullscreen-viewport.p17 {
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    background: #000 !important;
    margin: 0 auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.jav89-video-fullscreen-viewport.p17 > iframe.is-jav89-fullscreen-player {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    transform: none !important;
    translate: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
    display: block !important;
}

/* v5.1 Preview 18: scale cross-origin iframe player itself for readable fullscreen. */
.jav89-video-fullscreen-viewport.p17 {
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
    position: relative !important;
    overflow: hidden !important;
    background: #000 !important;
}
.jav89-video-fullscreen-viewport.p17 > iframe.is-jav89-fullscreen-player {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    max-width: none !important;
    max-height: none !important;
    transform-origin: center center !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
    display: block !important;
}

/* v5.1 Preview 19: final containment for cross-origin iframe fullscreen.
   Use CSS variables from JS with !important so older fullscreen rules cannot force
   100% iframe size or cancel scaling. */
.jav89-video-fullscreen-layer.p16,
.jav89-video-fullscreen-stage.p16,
.jav89-video-fullscreen-viewport.p17 {
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    background: #000 !important;
}
.jav89-video-fullscreen-stage.p16 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.jav89-video-fullscreen-viewport.p17 > iframe.is-jav89-fullscreen-player {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: var(--jav89-player-base-w, 640px) !important;
    height: var(--jav89-player-base-h, 360px) !important;
    max-width: none !important;
    max-height: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    transform: translate(-50%, -50%) scale(var(--jav89-player-scale, 1)) !important;
    transform-origin: center center !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: block !important;
    background: #000 !important;
    box-shadow: none !important;
}
@media (max-width: 767px) {
    .jav89-video-fullscreen-close.p16 {
        top: max(12px, env(safe-area-inset-top)) !important;
        right: max(12px, env(safe-area-inset-right)) !important;
    }
}


/* v5.1 Preview 20: use FANZA embedded player controls instead of custom fullscreen overlay.
   The external player is cross-origin, so JAV89 cannot reliably force its internal fullscreen.
   Hide the custom fullscreen button and give the embedded player a slightly taller viewport
   so the native seek bar / player controls remain visible and usable. */
body .media-gallery .sample-video-fullscreen,
body .media-stage .media-slide-video.active [data-video-fullscreen] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}
body .media-gallery .media-slide-video.active .sample-video-wrap,
body .media-gallery.media-active-video .sample-video-wrap {
    aspect-ratio: 16 / 10.15 !important;
    min-height: clamp(340px, 42vw, 620px) !important;
    max-height: 72vh !important;
    overflow: hidden !important;
    align-items: stretch !important;
}
body .media-gallery .media-slide-video.active .sample-video-frame,
body .media-gallery.media-active-video .sample-video-frame,
body .media-gallery .media-slide-video.active .sample-video,
body .media-gallery.media-active-video .sample-video {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
    display: block !important;
}
@media (max-width: 720px) {
    body .media-gallery .media-slide-video.active .sample-video-wrap,
    body .media-gallery.media-active-video .sample-video-wrap {
        aspect-ratio: 16 / 10.6 !important;
        min-height: min(62vw, 360px) !important;
        max-height: 48vh !important;
    }
}
@media (orientation: portrait) and (max-width: 720px) {
    body .media-gallery .media-slide-video.active .sample-video-wrap,
    body .media-gallery.media-active-video .sample-video-wrap {
        min-height: min(66vw, 380px) !important;
        max-height: 44vh !important;
    }
}


/* v5.1 Preview 21: show FANZA iframe controls inside the gallery.
   The embedded player keeps its own control buttons below the seek bar, so
   video slides need additional vertical room beyond the movie aspect ratio. */
.media-gallery.media-active-video .media-stage,
.media-gallery .media-stage:has(.media-slide-video.active) {
    height: var(--jav89-video-stage-height, clamp(430px, 52vw, 720px)) !important;
    min-height: var(--jav89-video-stage-height, 430px) !important;
    max-height: 74vh !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .media-slide-video.active,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active,
.media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-wrap {
    height: 100% !important;
    aspect-ratio: auto !important;
}
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery.media-active-video .sample-video-poster,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-frame,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-poster {
    height: 100% !important;
}
@media (max-width: 720px) {
    .media-gallery.media-active-video .media-stage,
    .media-gallery .media-stage:has(.media-slide-video.active) {
        height: var(--jav89-video-stage-height, clamp(320px, 86vw, 520px)) !important;
        min-height: var(--jav89-video-stage-height, 320px) !important;
        max-height: 64vh !important;
        aspect-ratio: auto !important;
    }
}


/* v5.1 Preview 22: FANZA iframe controls visibility
   動画スライドでは、FANZA側iframeのシークバー下にある操作ボタンまで見えるよう、
   JSで算出した高さを最優先します。従来のaspect-ratio固定指定より後勝ちにしています。 */
.media-gallery.media-active-video .media-stage,
.media-gallery .media-stage:has(.media-slide-video.active) {
    height: var(--jav89-video-stage-height, clamp(560px, 58vw, 720px)) !important;
    min-height: 560px !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .media-slide-video.active,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active,
.media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-wrap {
    height: 100% !important;
    min-height: 100% !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .sample-video,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-frame {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
}
@media (max-width: 720px) {
    .media-gallery.media-active-video .media-stage,
    .media-gallery .media-stage:has(.media-slide-video.active) {
        height: var(--jav89-video-stage-height, min(72vh, 520px)) !important;
        min-height: min(72vh, 390px) !important;
    }
}


/* v5.1 Preview 23: make embedded FANZA video stage tall enough to show controls below seekbar. */
.media-gallery.media-active-video .media-stage,
.media-gallery .media-stage:has(.media-slide-video.active) {
    height: var(--jav89-video-stage-height, clamp(700px, 66vw, 860px)) !important;
    min-height: 700px !important;
    max-height: 94vh !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
.media-gallery.media-active-video .media-slide-video.active,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active,
.media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
.media-gallery .media-stage:has(.media-slide-video.active) .media-slide-video.active .sample-video-wrap,
.media-gallery.media-active-video .sample-video-frame,
.media-gallery .media-stage:has(.media-slide-video.active) .sample-video-frame {
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
}
@media (max-width: 720px) {
    .media-gallery.media-active-video .media-stage,
    .media-gallery .media-stage:has(.media-slide-video.active) {
        height: var(--jav89-video-stage-height, min(78vh, 560px)) !important;
        min-height: min(78vh, 460px) !important;
        max-height: 78vh !important;
    }
}


/* v5.1 Preview 24: correct target for FANZA embedded player viewport.
   The FANZA iframe control buttons live below the seek bar inside the iframe.
   Previous fixes were often hidden by cached CSS/versioning and older height rules.
   This final override intentionally targets the active video slide, stage, wrapper,
   and iframe itself with a taller viewport so the lower control row can appear. */
body .media-gallery.media-active-video,
body .media-gallery:has(.media-slide-video.active) {
    --jav89-video-stage-height: clamp(640px, 64vw, 820px);
}
body .media-gallery.media-active-video .media-stage,
body .media-gallery .media-stage:has(.media-slide-video.active),
body .media-gallery.media-active-video .media-slide-video.active,
body .media-gallery .media-slide-video.active,
body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
body .media-gallery .media-slide-video.active .sample-video-wrap {
    height: var(--jav89-video-stage-height) !important;
    min-height: var(--jav89-video-stage-height) !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
body .media-gallery.media-active-video .sample-video-frame,
body .media-gallery .media-slide-video.active .sample-video-frame,
body .media-gallery.media-active-video iframe.sample-video-frame,
body .media-gallery .media-slide-video.active iframe.sample-video-frame {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    border: 0 !important;
    display: block !important;
    overflow: hidden !important;
}
@media (max-width: 720px) {
    body .media-gallery.media-active-video,
    body .media-gallery:has(.media-slide-video.active) {
        --jav89-video-stage-height: min(82vh, 620px);
    }
    body .media-gallery.media-active-video .media-stage,
    body .media-gallery .media-stage:has(.media-slide-video.active),
    body .media-gallery.media-active-video .media-slide-video.active,
    body .media-gallery .media-slide-video.active,
    body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
    body .media-gallery .media-slide-video.active .sample-video-wrap {
        height: var(--jav89-video-stage-height) !important;
        min-height: var(--jav89-video-stage-height) !important;
    }
}

/* v5.1 Preview 25: resize FANZA embedded player area after controls became visible.
   Keep the lower FANZA control row visible, but remove the excessive empty black area below it. */
body .media-gallery.media-active-video,
body .media-gallery:has(.media-slide-video.active) {
    --jav89-video-stage-height: clamp(500px, 48vw, 600px) !important;
}
body .media-gallery.media-active-video .media-stage,
body .media-gallery .media-stage:has(.media-slide-video.active),
body .media-gallery.media-active-video .media-slide-video.active,
body .media-gallery .media-slide-video.active,
body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
body .media-gallery .media-slide-video.active .sample-video-wrap {
    height: var(--jav89-video-stage-height) !important;
    min-height: var(--jav89-video-stage-height) !important;
    max-height: 68vh !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
body .media-gallery.media-active-video .sample-video-frame,
body .media-gallery .media-slide-video.active .sample-video-frame,
body .media-gallery.media-active-video iframe.sample-video-frame,
body .media-gallery .media-slide-video.active iframe.sample-video-frame {
    height: 100% !important;
    min-height: 100% !important;
}
@media (max-width: 720px) {
    body .media-gallery.media-active-video,
    body .media-gallery:has(.media-slide-video.active) {
        --jav89-video-stage-height: min(68vh, 520px) !important;
    }
    body .media-gallery.media-active-video .media-stage,
    body .media-gallery .media-stage:has(.media-slide-video.active),
    body .media-gallery.media-active-video .media-slide-video.active,
    body .media-gallery .media-slide-video.active,
    body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
    body .media-gallery .media-slide-video.active .sample-video-wrap {
        height: var(--jav89-video-stage-height) !important;
        min-height: min(68vh, 420px) !important;
        max-height: 68vh !important;
    }
}


/* v5.1 Preview 26: stabilize FANZA embedded video stage.
   Keep the control row visible without making the gallery area excessively tall.
   JS sets --jav89-video-stage-height based on current stage width + compact controls allowance. */
body .media-gallery.media-active-video,
body .media-gallery:has(.media-slide-video.active) {
    --jav89-video-stage-height: clamp(380px, 42vw, 560px) !important;
}
body .media-gallery.media-active-video .media-stage,
body .media-gallery .media-stage:has(.media-slide-video.active),
body .media-gallery.media-active-video .media-slide-video.active,
body .media-gallery .media-slide-video.active,
body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
body .media-gallery .media-slide-video.active .sample-video-wrap {
    height: var(--jav89-video-stage-height) !important;
    min-height: var(--jav89-video-stage-height) !important;
    max-height: min(70vh, 560px) !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    align-items: center !important;
    justify-content: center !important;
}
body .media-gallery.media-active-video .sample-video-frame,
body .media-gallery .media-slide-video.active .sample-video-frame,
body .media-gallery.media-active-video iframe.sample-video-frame,
body .media-gallery .media-slide-video.active iframe.sample-video-frame {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    border: 0 !important;
    display: block !important;
    background: #050813 !important;
}
@media (max-width: 720px) {
    body .media-gallery.media-active-video,
    body .media-gallery:has(.media-slide-video.active) {
        --jav89-video-stage-height: min(56vh, 430px) !important;
    }
    body .media-gallery.media-active-video .media-stage,
    body .media-gallery .media-stage:has(.media-slide-video.active),
    body .media-gallery.media-active-video .media-slide-video.active,
    body .media-gallery .media-slide-video.active,
    body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
    body .media-gallery .media-slide-video.active .sample-video-wrap {
        max-height: min(56vh, 430px) !important;
    }
}


/* v5.1 Preview 27: compact and stable FANZA embedded video viewport.
   Use a 16:9 movie area + only the control-row allowance. This keeps the
   embedded player from becoming excessively tall while preserving the lower
   controls. */
body .media-gallery.media-active-video,
body .media-gallery:has(.media-slide-video.active) {
    --jav89-video-stage-height: clamp(430px, 34vw, 520px) !important;
}
body .media-gallery.media-active-video .media-stage,
body .media-gallery .media-stage:has(.media-slide-video.active),
body .media-gallery.media-active-video .media-slide-video.active,
body .media-gallery .media-slide-video.active,
body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
body .media-gallery .media-slide-video.active .sample-video-wrap {
    height: var(--jav89-video-stage-height) !important;
    min-height: var(--jav89-video-stage-height) !important;
    max-height: min(62vh, 520px) !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    align-items: center !important;
    justify-content: center !important;
}
body .media-gallery.media-active-video .sample-video-frame,
body .media-gallery .media-slide-video.active .sample-video-frame,
body .media-gallery.media-active-video iframe.sample-video-frame,
body .media-gallery .media-slide-video.active iframe.sample-video-frame {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    border: 0 !important;
    display: block !important;
    background: #050813 !important;
}
@media (max-width: 720px) {
    body .media-gallery.media-active-video,
    body .media-gallery:has(.media-slide-video.active) {
        --jav89-video-stage-height: min(54vh, 390px) !important;
    }
    body .media-gallery.media-active-video .media-stage,
    body .media-gallery .media-stage:has(.media-slide-video.active),
    body .media-gallery.media-active-video .media-slide-video.active,
    body .media-gallery .media-slide-video.active,
    body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
    body .media-gallery .media-slide-video.active .sample-video-wrap {
        max-height: min(54vh, 390px) !important;
    }
}


/* v5.1 Preview 28: compact and center-stable FANZA embedded video viewport.
   The previous stage was still too tall, so the embedded player moved to the top
   after playback. Keep enough room for the FANZA control row while reducing the
   black area and fixing the video viewport around the vertical center. */
body .media-gallery.media-active-video,
body .media-gallery:has(.media-slide-video.active) {
    --jav89-video-stage-height: clamp(360px, 30vw, 470px) !important;
}
body .media-gallery.media-active-video .media-stage,
body .media-gallery .media-stage:has(.media-slide-video.active),
body .media-gallery.media-active-video .media-slide-video.active,
body .media-gallery .media-slide-video.active,
body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
body .media-gallery .media-slide-video.active .sample-video-wrap {
    height: var(--jav89-video-stage-height) !important;
    min-height: var(--jav89-video-stage-height) !important;
    max-height: min(56vh, 470px) !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
}
body .media-gallery.media-active-video .sample-video-frame,
body .media-gallery .media-slide-video.active .sample-video-frame,
body .media-gallery.media-active-video iframe.sample-video-frame,
body .media-gallery .media-slide-video.active iframe.sample-video-frame {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    border: 0 !important;
    display: block !important;
    background: #050813 !important;
}
@media (max-width: 720px) {
    body .media-gallery.media-active-video,
    body .media-gallery:has(.media-slide-video.active) {
        --jav89-video-stage-height: min(48vh, 360px) !important;
    }
    body .media-gallery.media-active-video .media-stage,
    body .media-gallery .media-stage:has(.media-slide-video.active),
    body .media-gallery.media-active-video .media-slide-video.active,
    body .media-gallery .media-slide-video.active,
    body .media-gallery.media-active-video .media-slide-video.active .sample-video-wrap,
    body .media-gallery .media-slide-video.active .sample-video-wrap {
        max-height: min(48vh, 360px) !important;
    }
}

/* SNS draft admin */
.sns-draft-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:16px 0 20px}
.sns-draft-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#dbe7ff}
.sns-draft-form select{min-width:160px;border:1px solid rgba(83,130,220,.5);border-radius:14px;background:#0b1120;color:#eef4ff;padding:12px 14px;font-weight:700}
.sns-draft-result{margin:18px 0;padding:16px;border:1px solid rgba(83,130,220,.35);border-radius:18px;background:rgba(10,17,32,.55)}
.sns-draft-result h3,.sns-draft-panel h3{margin:18px 0 10px;font-size:18px}
.sns-draft-text{width:100%;box-sizing:border-box;border:1px solid rgba(83,130,220,.45);border-radius:16px;background:#07101f;color:#f5f8ff;padding:14px;line-height:1.65;font-size:15px;resize:vertical}
.sns-draft-actions{margin-top:12px}
.sns-policy-list{margin:10px 0 0 1.2em;color:#bdc9e3;line-height:1.8}
.sns-history-text{white-space:pre-wrap;margin:0;max-width:520px;color:#dbe7ff;font-family:inherit;line-height:1.55}
@media (max-width: 720px){.sns-draft-form{display:block}.sns-draft-form label{margin-bottom:12px}.sns-draft-form select,.sns-draft-form button{width:100%}.sns-history-text{max-width:260px}}
