:root {
                        --bg: #0b0f16;
                        --text: #e7edf7;
                        --muted: #a7b3c8;
                        --muted2: #7d8aa3;
                        --line: rgba(255, 255, 255, .08);
                        --line2: rgba(255, 255, 255, .12);
                        --accent: #7c5cff;
                        --accent2: #35d0ff;
                        --shadow: 0 18px 60px rgba(0, 0, 0, .45);
                        --radius: 18px;
                        --radius2: 14px;
                        --container: 1180px;
                        --gap: 14px;
                        --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Sans", "Noto Sans JP", "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";
                }

                * {
                        box-sizing: border-box
                }

                html,
                body {
                        min-height: 100%;
                        background: #0b0f16;
                }

                body {
                        margin: 0;
                        font-family: var(--font);
                        color: var(--text);
                        background: #0b0f16;
                        position: relative;
                        letter-spacing: .2px;
                }

                body::before {
                        content: "";
                        position: fixed;
                        inset: 0;
                        pointer-events: none;
                        z-index: -2;
                        background:
                                radial-gradient(900px 520px at 20% -10%, rgba(124, 92, 255, .16), transparent 72%),
                                radial-gradient(1000px 560px at 90% 10%, rgba(53, 208, 255, .11), transparent 72%),
                                radial-gradient(800px 480px at 40% 110%, rgba(45, 227, 154, .07), transparent 74%);
                        background-repeat: no-repeat;
                }

                body::after {
                        content: "";
                        position: fixed;
                        inset: 0;
                        pointer-events: none;
                        z-index: -1;
                        opacity: 0.02;
                        background-image:
                                radial-gradient(rgba(255, 255, 255, .35) 0.5px, transparent 0.6px);
                        background-size: 4px 4px;
                }

                a {
                        color: inherit;
                        text-decoration: none
                }

                img {
                        max-width: 100%;
                        display: block
                }

                .container {
                        width: min(var(--container), calc(100% - 32px));
                        margin: 0 auto;
                }

                .tabs {
                        display: flex;
                        gap: 8px;
                        align-items: center;
                        margin-left: auto;
                }

                /* Tag bar */
                .tagbar {
                        position: sticky;
                        top: 71px;
                        z-index: 40;
                        background: rgba(11, 15, 22, .55);
                        backdrop-filter: blur(14px);
                        border-bottom: 1px solid var(--line);
                }

                .tagbar-inner {
                        display: flex;
                        align-items: center;
                        gap: 10px;
                        padding: 10px 0;
                }

                .tagbar-title {
                        display: flex;
                        align-items: center;
                        gap: 8px;
                        padding: 8px 10px;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        color: var(--muted);
                        font-size: 12px;
                        white-space: nowrap;
                }

                .tag-scroller {
                        display: flex;
                        gap: 8px;
                        overflow: auto;
                        -webkit-overflow-scrolling: touch;
                        scrollbar-width: none;
                        flex: 1;
                        padding-bottom: 2px;
                }

                .tag-scroller::-webkit-scrollbar {
                        display: none
                }

                .tagchip {
                        display: inline-flex;
                        align-items: center;
                        gap: 6px;
                        padding: 8px 10px;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        color: var(--muted);
                        font-size: 12px;
                        transition: transform .15s ease, border .15s ease, background .15s ease;
                        white-space: nowrap;
                }

                .tagchip:hover {
                        transform: translateY(-1px);
                        border-color: rgba(53, 208, 255, .35);
                        background: rgba(53, 208, 255, .08);
                        color: rgba(231, 237, 247, .95);
                }

                .tagchip.hot {
                        border-color: rgba(124, 92, 255, .45);
                        background: rgba(124, 92, 255, .16);
                        color: rgba(231, 237, 247, .95);
                }

                .tagchip.new {
                        border-color: rgba(45, 227, 154, .35);
                        background: rgba(45, 227, 154, .10);
                        color: rgba(231, 237, 247, .95);
                }

                .main {
                        padding: 18px 0 36px;
                }

                .layout {
                        display: grid;
                        grid-template-columns: 1fr 220px;
                        gap: 16px;
                        align-items: start;
                }

                .panel {
                        background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .02));
                        border: 1px solid var(--line);
                        border-radius: var(--radius);
                        box-shadow: var(--shadow);
                        overflow: hidden;
                }

                .panel-header {
                        display: flex;
                        align-items: center;
                        justify-content: space-between;
                        padding: 14px 14px 10px;
                        border-bottom: 1px solid var(--line);
                        gap: 12px;
                }

                .panel-title {
                        display: flex;
                        flex-direction: column;
                        gap: 4px;
                }

                .panel-title strong {
                        font-size: 14px
                }

                .panel-title span {
                        font-size: 12px;
                        color: var(--muted2)
                }

                .panel-body {
                        padding: 12px 14px 14px
                }

                .badge {
                        font-size: 11px;
                        padding: 6px 10px;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        color: var(--muted);
                        background: rgba(255, 255, 255, .03);
                        white-space: nowrap;
                }

                /*  Site intro */
                .detail {
                        padding: 16px;
                }

                .crumbs {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 10px;
                        align-items: center;
                        color: var(--muted2);
                        font-size: 12px;
                        margin-bottom: 10px;
                }

                .crumbs a {
                        color: rgba(231, 237, 247, .9);
                        border-bottom: 1px dashed rgba(255, 255, 255, .18);
                }

                .site-head {
                        display: flex;
                        flex-direction: column;
                        gap: 10px;
                        margin-bottom: 12px;
                }

                .site-title {
                        margin: 0;
                        font-size: 20px;
                        letter-spacing: .4px;
                        line-height: 1.35;
                }

                .meta-row {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 10px;
                        align-items: center;
                        color: var(--muted2);
                        font-size: 12.5px;
                }

                .meta-pill {
                        display: inline-flex;
                        align-items: center;
                        gap: 6px;
                        padding: 7px 10px;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        color: rgba(231, 237, 247, .88);
                }

                .meta-pill .dot {
                        width: 6px;
                        height: 6px;
                        border-radius: 999px;
                        background: rgba(53, 208, 255, .65);
                        box-shadow: 0 0 0 3px rgba(53, 208, 255, .12);
                }

                /* Big thumbnail */
                .hero {
                        border-radius: calc(var(--radius) + 4px);
                        overflow: hidden;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .02);
                        box-shadow: 0 22px 70px rgba(0, 0, 0, .45);
                }

                .hero-media {
                        aspect-ratio: 16 / 9;
                        background: #0b1220;
                        position: relative;
                        overflow: hidden;
                }

                .hero-media img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        filter: saturate(1.05) contrast(1.05);
                        transform: scale(1.02);
                }

                .hero-actions {
                        display: flex;
                        gap: 10px;
                        flex-wrap: wrap;
                        padding: 12px;
                        border-top: 1px solid var(--line);
                        background: linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, .01));
                }

                .hero-actions .btn {
                        height: 40px
                }

                /*  Category chips */
                .catrow {
                        display: flex;
                        flex-wrap: wrap;
                        gap: 8px;
                        margin-top: 10px;
                }

                .cat {
                        display: inline-flex;
                        align-items: center;
                        gap: 8px;
                        padding: 8px 10px;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        color: rgba(231, 237, 247, .9);
                        font-size: 12px;
                        transition: transform .15s ease, border .15s ease, background .15s ease;
                        white-space: nowrap;
                }

                .cat:hover {
                        transform: translateY(-1px);
                        border-color: rgba(53, 208, 255, .35);
                        background: rgba(53, 208, 255, .08);
                }

                .cat .dot {
                        width: 6px;
                        height: 6px;
                        border-radius: 999px;
                        background: rgba(124, 92, 255, .75);
                        box-shadow: 0 0 0 3px rgba(124, 92, 255, .14);
                }

                /* Grid */
                .grid-header {
                        display: flex;
                        align-items: flex-end;
                        justify-content: space-between;
                        gap: 12px;
                        margin: 16px 0 10px;
                        padding: 0 2px;
                }

                .grid-header h2 {
                        margin: 0;
                        font-size: 16px;
                        letter-spacing: .5px;
                }

                .grid-header p {
                        margin: 0;
                        color: var(--muted2);
                        font-size: 12px;
                }

                .grid {
                        display: grid;
                        grid-template-columns: repeat(4, minmax(0, 1fr));
                        gap: var(--gap);
                }

                .card {
                        border-radius: var(--radius);
                        overflow: hidden;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .02);
                        box-shadow: 0 14px 40px rgba(0, 0, 0, .35);
                        transition: transform .18s ease, border .18s ease, box-shadow .18s ease;
                }

                .card:hover {
                        transform: translateY(-3px);
                        border-color: rgba(124, 92, 255, .35);
                        box-shadow: 0 22px 60px rgba(0, 0, 0, .48);
                }

                .card-link {
                        display: block
                }

                .thumb {
                        aspect-ratio: 16 / 9;
                        /* ★新着と同じ比率に */
                        background: #0b1220;
                        overflow: hidden;
                }

                .thumb img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;
                        /* ★切れない */
                        object-position: center;
                        transform: none !important;
                        filter: none !important;
                }

                .card:hover .thumb img {
                        transform: scale(1.08)
                }

                .card-body {
                        padding: 12px 12px 12px;
                }

                .title {
                        margin: 0 0 10px;
                        font-size: 13px;
                        line-height: 1.35;
                        display: -webkit-box;
                        -webkit-line-clamp: 3;
                        -webkit-box-orient: vertical;
                        overflow: hidden;
                }

                .sub {
                        display: flex;
                        justify-content: space-between;
                        align-items: center;
                        gap: 8px;
                        color: var(--muted2);
                        font-size: 12px;
                }

                .sub .left {
                        display: flex;
                        gap: 8px;
                        align-items: center;
                        min-width: 0;
                }

                .source {
                        padding: 5px 8px;
                        border-radius: 999px;
                        background: rgba(255, 255, 255, .04);
                        border: 1px solid var(--line);
                        color: var(--muted);
                        font-size: 11px;
                        max-width: 140px;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        white-space: nowrap;
                }

                .chip {
                        font-size: 11px;
                        padding: 5px 8px;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        color: var(--muted);
                        white-space: nowrap;
                }

                .pagination {
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        gap: 8px;
                        margin-top: 18px;
                        flex-wrap: wrap;
                }

                .page {
                        min-width: 40px;
                        height: 40px;
                        padding: 0 12px;
                        display: inline-flex;
                        align-items: center;
                        justify-content: center;
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        color: var(--muted);
                        font-size: 13px;
                        transition: transform .15s ease, border .15s ease;
                }

                .page:hover {
                        transform: translateY(-1px);
                        border-color: rgba(124, 92, 255, .35)
                }

                .page.active {
                        color: var(--text);
                        border-color: rgba(124, 92, 255, .5);
                        background: rgba(124, 92, 255, .18);
                }

                /* Sidebar */
                .sidebar {
                        position: sticky;
                        top: 18px;
                        align-self: start;
                }

                .side-grid {
                        display: grid;
                        grid-template-columns: 1fr;
                        gap: 10px;
                }

                .side-card {
                        border-radius: var(--radius2);
                        overflow: hidden;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        transition: transform .15s ease, border .15s ease, background .15s ease;
                }

                .side-card:hover {
                        transform: translateY(-1px);
                        border-color: rgba(53, 208, 255, .35);
                        background: rgba(255, 255, 255, .05);
                }

                .side-thumb {
                        aspect-ratio: 16 / 9;
                        /* ★メインと揃える */
                        background: #0b1220;
                        overflow: hidden;
                }

                .side-thumb img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;
                        /* ★切れない */
                        object-position: center;
                        /* ★中央寄せ */
                }

                .side-body {
                        padding: 10px 10px 10px;
                }

                .side-title {
                        margin: 0 0 6px;
                        font-size: 12.5px;
                        line-height: 1.35;
                        display: -webkit-box;
                        -webkit-line-clamp: 3;
                        -webkit-box-orient: vertical;
                        overflow: hidden;
                        color: rgba(231, 237, 247, .95);
                }

                .side-sub {
                        display: flex;
                        align-items: center;
                        justify-content: space-between;
                        gap: 8px;
                        color: var(--muted2);
                        font-size: 11.5px;
                }

                .btn-full {
                        width: 100%;
                }

                .hero-actions {
                        display: flex;
                        gap: 10px;
                        flex-wrap: wrap;
                        padding: 12px;
                        border-top: 1px solid var(--line);
                        background: linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, .01));
                }

                .hero-actions .btn {
                        height: 40px
                }

                /*  追加：meta-row を縦並びにする（ランキングの下にカテゴリ） */
                .meta-row-col {
                        flex-direction: column;
                        align-items: flex-start;
                }

                .hero-media {
                        aspect-ratio: 16 / 9;
                        background: #0b1220;
                        position: relative;
                        overflow: hidden;
                        display: flex;
                        /* 追加 */
                        align-items: center;
                        /* 追加 */
                        justify-content: center;
                        /* 追加 */
                }

                .hero-media img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;
                        /* ★切れない */
                        object-position: center;
                        /* 念のため中央 */
                        display: block;
                }

                /* これをstyleの一番最後に置く（上書き用） */
                .hero-media {
                        aspect-ratio: 16 / 9;
                        background: #0b1220;
                        position: relative;
                        overflow: hidden;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                }

                /* aタグが親になるので高さ100%が効くようにする */
                .hero-media>a {
                        width: 100%;
                        height: 100%;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                }

                /* ★切れない＆拡大しない */
                .hero-media img {
                        width: 100%;
                        height: 100%;
                        object-fit: contain;
                        object-position: center;

                        /* ここが重要：前の設定を打ち消す */
                        transform: none !important;
                        filter: none !important;
                }

                /* 「カテゴリ：一般」用の枠（ピル） */
                .category-pill {
                        display: inline-flex;
                        align-items: center;
                        padding: 5px 8px;
                        /* ←サイト名と揃えるならこのサイズが自然 */
                        border-radius: 999px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .04);
                        /* ←サイト名と同系 */
                        color: var(--muted);
                        /* ★ここがポイント（サイト名と同色） */
                        font-size: 11px;
                        /* ←サイト名と揃える */
                        line-height: 1;
                        white-space: nowrap;
                        width: fit-content;
                }

                /* 新着記事：カテゴリ→サイト名の縦並び */
                .side-meta-col {
                        display: flex;
                        flex-direction: column;
                        align-items: flex-start;
                        /* 左揃え */
                        gap: 8px;
                        margin-top: 10px;
                }

                /* ===== hero：余白なしで必ず埋める（切り取りOK） ===== */
                .hero {
                        /* hero自体を小さくして中央寄せ */
                        width: min(500px, 100%);
                        /* ←ここでサイズ調整（300〜420くらい） */
                        margin: 0 auto;
                }

                /* 枠は比率固定をやめる（切れの原因を排除） */
                .hero-media {
                        aspect-ratio: auto !important;
                        background: #0b1220;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        overflow: hidden;
                        padding: 10px;
                        /* 任意：周りに少し余白（不要なら0） */
                }

                /* aタグは中身に合わせる */
                .hero-media>a {
                        display: block;
                }

                /* 画像は切らずに縮小 */
                .hero-media img {
                        width: 100%;
                        height: auto;
                        max-width: 100%;
                        /* hero幅に収まる */
                        max-height: 520px;
                        /* ←縦が長すぎる場合の上限（調整可） */
                        object-fit: contain !important;
                        object-position: center;
                        transform: none !important;
                        filter: none !important;
                }

                /* リンク集：普通リンク（枠なし・青玉なし） */
                .linklist {
                        display: flex;
                        flex-direction: column;
                        gap: 8px;
                }

                .linkitem {
                        display: inline;
                        padding: 0;
                        border: none;
                        background: transparent;
                        border-radius: 0;
                        box-shadow: none;
                        transform: none;
                        color: rgba(231, 237, 247, .92);
                        font-size: 13px;
                        line-height: 1.6;
                        text-decoration: underline;
                        text-underline-offset: 3px;
                        text-decoration-color: rgba(167, 179, 200, .35);
                        transition: color .15s ease, text-decoration-color .15s ease;
                }

                .linkitem:hover {
                        color: rgba(231, 237, 247, .98);
                        text-decoration-color: rgba(53, 208, 255, .55);
                }

                .linkitem::before {
                        content: none !important;
                }

                .linkempty {
                        color: var(--muted2);
                        font-size: 12px;
                }

                /* Responsive */
                @media (max-width: 1100px) {
                        .layout {
                                grid-template-columns: 1fr;
                        }

                        .sidebar {
                                position: static;
                        }

                        .grid {
                                grid-template-columns: repeat(3, minmax(0, 1fr));
                        }

                        .tagbar {
                                top: 0;
                        }
                }

                @media (max-width: 720px) {
                        .tabs {
                                width: 100%;
                                justify-content: flex-start
                        }

                        .grid {
                                grid-template-columns: repeat(2, minmax(0, 1fr));
                        }

                        .sidebar {
                                top: auto
                        }

                        .site-title {
                                font-size: 18px
                        }
                }

                /* ===== 記事上部広告 共通 ===== */
                .article-top-ad-wrap {
                        margin-bottom: 16px;
                        overflow: hidden;
                }

                .ad-panel-header {
                        padding: 12px 14px 10px;
                }

                .ad-panel-body {
                        padding: 14px;
                }

                .ad-article-top {
                        display: flex;
                        justify-content: center;
                        align-items: center;
                        min-height: 80px;
                        width: 100%;
                }

                .ad-article-top iframe,
                .ad-article-top img,
                .ad-article-top ins {
                        display: block;
                        max-width: 100%;
                        margin: 0 auto;
                        border-radius: 12px;
                }

                .ad-article-top * {
                        max-width: 100%;
                }

                .ad-article-top>* {
                        width: 100%;
                        max-width: 728px;
                        margin-left: auto;
                        margin-right: auto;
                }

                .ad-article-top>div,
                .ad-article-top>ins,
                .ad-article-top>iframe {
                        overflow: hidden;
                }

                /* PC：koukoku_id = 5 だけ表示 */
                @media (min-width: 721px) {
                        .article-top-ad-sp {
                                display: none !important;
                        }

                        .article-top-ad-pc {
                                display: block !important;
                        }
                }

                /* スマホ：koukoku_id = 4 だけ表示 */
                @media (max-width: 720px) {
                        .article-top-ad-pc {
                                display: none !important;
                        }

                        .article-top-ad-sp {
                                display: block !important;
                                margin-bottom: 14px;
                        }

                        .ad-panel-body {
                                padding: 10px;
                        }

                        .ad-article-top {
                                min-height: 60px;
                        }

                        .ad-article-top>* {
                                max-width: 100%;
                        }
                }

                /* ヘッダー固定を解除 */
                header,
                .site-header,
                .topbar,
                .header,
                .header-wrap,
                .header-container {
                        position: static !important;
                        top: auto !important;
                        left: auto !important;
                        right: auto !important;
                        width: auto !important;
                        z-index: auto !important;
                        transform: none !important;
                }

                /* サイドバー：オリジナルゲーム枠 */
                /* サイドバー：新着記事の上 広告 */
                .sidebar-new-article-ad-wrap {
                        margin-bottom: 12px;
                        overflow: hidden;
                }

                .sidebar-ad-header {
                        padding: 10px 12px 8px;
                }

                .sidebar-ad-body {
                        padding: 0;
                        overflow: hidden;
                }

                /* サイドバー：新着記事の上 広告 */
                .sidebar-new-article-ad-wrap {
                        margin-bottom: 12px;
                        overflow: hidden;
                }

                .sidebar-ad-header {
                        padding: 10px 12px 8px;
                }

                .sidebar-ad-body {
                        padding: 10px;
                        overflow: hidden;
                }

                .ad-sidebar-new-article-top {
                        width: 100%;
                        overflow: hidden;
                        display: flex;
                        justify-content: center;
                        align-items: flex-start;
                }

                /* サイドバー：新着記事の上 広告 */
                .sidebar-new-article-ad-wrap {
                        margin-bottom: 12px;
                        overflow: hidden;
                }

                .sidebar-ad-header {
                        padding: 10px 12px 8px;
                }

                .sidebar-ad-body {
                        padding: 10px;
                        overflow: hidden;
                }

                /* 広告枠本体 */
                .ad-sidebar-new-article-top {
                        width: 100%;
                        max-width: 100%;
                        overflow: hidden;
                        display: flex;
                        justify-content: center;
                        align-items: center;
                }

                /* サイドバー：新着記事の上 広告 */
                .sidebar-new-article-ad-wrap {
                        margin-bottom: 12px;
                        overflow: hidden;
                }

                .sidebar-ad-header {
                        padding: 10px 12px 8px;
                }

                /* PC：220pxサイドバー内に300px広告を縮小して収める */
                .sidebar-ad-body {
                        padding: 10px;
                        overflow: hidden;
                }

                .ad-sidebar-new-article-top {
                        width: 100%;
                        overflow: hidden;
                        display: flex;
                        justify-content: center;
                        align-items: flex-start;
                }

                /* PC広告が300×250の場合 */
                @media (min-width: 1101px) {
                        .ad-sidebar-new-article-top {
                                height: 165px;
                        }

                        .ad-scale-pc {
                                width: 300px;
                                height: 250px;
                                transform: scale(0.66);
                                transform-origin: top center;
                                margin-left: auto;
                                margin-right: auto;
                        }

                        .ad-scale-pc iframe,
                        .ad-scale-pc ins,
                        .ad-scale-pc img,
                        .ad-scale-pc div {
                                max-width: none !important;
                        }
                }

                /* スマホはサイドバーが1カラムになるので縮小しない */
                @media (max-width: 1100px) {
                        .sidebar-ad-body {
                                padding: 10px;
                        }

                        .ad-sidebar-new-article-top {
                                min-height: 60px;
                        }

                        .ad-scale-pc {
                                width: 100%;
                                max-width: 100%;
                        }

                        .ad-scale-pc iframe,
                        .ad-scale-pc ins,
                        .ad-scale-pc img {
                                max-width: 100% !important;
                        }
                }

                /* 画像広告の場合は自然に縮小 */
                .ad-sidebar-new-article-top img {
                        width: auto;
                        height: auto;
                        max-width: 100% !important;
                        display: block;
                }

                /* iframe広告の場合は横幅だけ枠に合わせる */
                .ad-sidebar-new-article-top iframe {
                        width: 100% !important;
                        max-width: 100% !important;
                        border: 0;
                        display: block;
                }

                /* スマホで余白を少し確保 */
                @media (max-width: 1100px) {
                        .sidebar-ad-body {
                                padding: 10px;
                        }

                        .ad-sidebar-new-article-top {
                                min-height: 60px;
                        }
                }

                /* ===== 外部記事遷移時 全画面広告 ===== */
                .article-exit-ad-overlay {
                        position: fixed;
                        inset: 0;
                        z-index: 99999;
                        display: none;
                        align-items: center;
                        justify-content: center;
                        padding: 24px;
                        background: rgba(0, 0, 0, .78);
                        backdrop-filter: blur(4px);
                }

                .article-exit-ad-overlay.is-visible {
                        display: flex;
                }

                .article-exit-ad-box {
                        position: relative;
                        width: min(92vw, 720px);
                        max-height: 90vh;
                        border-radius: 18px;
                        overflow: visible;
                        background: #111722;
                        border: 1px solid rgba(255, 255, 255, .14);
                        box-shadow: 0 24px 80px rgba(0, 0, 0, .65);
                }

                .article-exit-ad-label {
                        position: absolute;
                        left: 10px;
                        top: 10px;
                        z-index: 2;
                        padding: 4px 8px;
                        border-radius: 999px;
                        background: rgba(0, 0, 0, .68);
                        color: rgba(255, 255, 255, .82);
                        font-size: 11px;
                        pointer-events: none;
                }

                .article-exit-ad-close {
                        position: absolute;
                        top: -14px;
                        right: -14px;
                        z-index: 3;
                        width: 40px;
                        height: 40px;
                        padding: 0;
                        border: 1px solid rgba(255, 255, 255, .22);
                        border-radius: 50%;
                        background: #111722;
                        color: #fff;
                        font-size: 28px;
                        line-height: 1;
                        cursor: pointer;
                        box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
                }

                .article-exit-ad-link {
                        display: block;
                        overflow: hidden;
                        border-radius: 18px;
                }

                .article-exit-ad-image {
                        display: block;
                        width: 100%;
                        height: auto;
                        max-height: 82vh;
                        object-fit: contain;
                        background: #070a0f;
                }

                @media (max-width: 720px) {
                        .article-exit-ad-overlay {
                                padding: 18px;
                        }

                        .article-exit-ad-box {
                                width: min(94vw, 620px);
                        }

                        .article-exit-ad-close {
                                top: -12px;
                                right: -8px;
                                width: 38px;
                                height: 38px;
                        }

                        .article-exit-ad-image {
                                max-height: 78vh;
                        }
                }

                /* =====================================================
           FANZAおすすめ作品
           PC: 3列 / スマホ: ページめくり風スライダー
           ===================================================== */
                .fanza-recommend {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        margin-top: 18px;
                        overflow: hidden;
                }

                .fanza-recommend-header {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        display: flex;
                        align-items: center;
                        justify-content: space-between;
                        gap: 10px;
                        padding: 12px 14px;
                        border-bottom: 1px solid var(--line);
                }

                .fanza-recommend-title {
                        min-width: 0;
                }

                .fanza-recommend-title-row {
                        min-width: 0;
                        display: flex;
                        align-items: center;
                        gap: 8px;
                        flex-wrap: wrap;
                }

                .fanza-recommend-title h2 {
                        margin: 0;
                        font-size: 16px;
                        line-height: 1.35;
                }

                .fanza-pr {
                        display: inline-flex;
                        align-items: center;
                        justify-content: center;
                        padding: 3px 7px;
                        border: 1px solid rgba(255, 255, 255, .16);
                        border-radius: 999px;
                        color: var(--muted);
                        background: rgba(255, 255, 255, .04);
                        font-size: 10px;
                        line-height: 1;
                }

                .fanza-recommend-sub {
                        margin-top: 4px;
                        color: var(--muted2);
                        font-size: 12px;
                }

                /* PC */
                .fanza-slider-viewport {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                }

                .fanza-products {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        display: grid;
                        grid-template-columns: repeat(3, minmax(0, 1fr));
                        gap: 12px;
                        padding: 12px;
                }

                .fanza-product {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        overflow: hidden;
                        border: 1px solid var(--line);
                        border-radius: 14px;
                        background: rgba(255, 255, 255, .025);
                        transition: transform .15s ease, border-color .15s ease, background .15s ease;
                }

                .fanza-product:hover {
                        transform: translateY(-2px);
                        border-color: rgba(124, 92, 255, .40);
                        background: rgba(255, 255, 255, .045);
                }

                .fanza-product-link {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        display: flex;
                        flex-direction: column;
                        height: 100%;
                }

                .fanza-product-image {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        aspect-ratio: 3 / 2;
                        overflow: hidden;
                        background: #0b1220;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                }

                .fanza-product-image img {
                        width: 100%;
                        height: 100%;
                        max-width: 100%;
                        object-fit: contain;
                        object-position: center;
                        display: block;
                }

                .fanza-product-body {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        display: flex;
                        flex-direction: column;
                        flex: 1;
                        padding: 8px 10px 10px;
                }

                .fanza-product-name {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        margin: 0;
                        font-size: 12.5px;
                        line-height: 1.4;
                        color: rgba(231, 237, 247, .95);
                        display: -webkit-box;
                        -webkit-line-clamp: 2;
                        -webkit-box-orient: vertical;
                        overflow: hidden;
                        overflow-wrap: anywhere;
                        word-break: break-word;
                }

                .fanza-product-price {
                        margin-top: 6px;
                        color: rgba(231, 237, 247, .92);
                        font-size: 13px;
                        font-weight: 700;
                }

                .fanza-product-button {
                        width: 100%;
                        max-width: 100%;
                        margin-top: 8px;
                }

                .fanza-product-button span {
                        width: 100%;
                        max-width: 100%;
                        min-width: 0;
                        min-height: 32px;
                        display: inline-flex;
                        justify-content: center;
                        align-items: center;
                        padding: 6px 10px;
                        border-radius: 8px;
                        background: rgba(124, 92, 255, .18);
                        border: 1px solid rgba(124, 92, 255, .35);
                        color: rgba(255, 255, 255, .96);
                        font-size: 12px;
                        font-weight: 700;
                        text-align: center;
                }

                .fanza-slider-dots {
                        display: none;
                }

                /* Gridが子要素の幅に引っ張られないようにする */
                .layout>section {
                        min-width: 0;
                        width: 100%;
                }

                /* スマホ */
                @media (max-width: 720px) {
                        .container {
                                width: calc(100% - 20px);
                                max-width: 100%;
                        }

                        .layout {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                        }

                        .layout>section {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                        }

                        .fanza-recommend {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                                margin-top: 14px;
                                overflow: hidden;
                        }

                        .fanza-recommend-header {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                                padding: 10px 12px;
                        }

                        .fanza-recommend-title h2 {
                                font-size: 15px;
                                overflow-wrap: anywhere;
                        }

                        .fanza-recommend-sub {
                                font-size: 11.5px;
                        }

                        /* 表示窓 */
                        .fanza-slider-viewport {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                                overflow: hidden;
                                position: relative;
                                touch-action: pan-y;
                                cursor: grab;
                        }

                        .fanza-slider-viewport.is-touching {
                                cursor: grabbing;
                        }

                        /* 横一列のトラック */
                        .fanza-products {
                                display: flex;
                                width: 100%;
                                max-width: none;
                                min-width: 0;
                                gap: 0;
                                padding: 10px;
                                transform: translate3d(0, 0, 0);
                                transition: transform .42s cubic-bezier(.22, .61, .36, 1);
                                will-change: transform;
                                user-select: none;
                                -webkit-user-select: none;
                        }

                        /* 指で掴んでいる間は指の動きに追従 */
                        .fanza-products.is-dragging {
                                transition: none;
                        }

                        /* 1商品 = 1ページ */
                        .fanza-product {
                                display: block;
                                flex: 0 0 100%;
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                                margin: 0;
                                transform: none;
                        }

                        .fanza-product:hover {
                                transform: none;
                        }

                        .fanza-product-link {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                        }

                        .fanza-product-image {
                                width: 100%;
                                max-width: 100%;
                                aspect-ratio: 16 / 9;
                                background: #0b1220;
                        }

                        .fanza-product-image img {
                                width: 100%;
                                height: 100%;
                                object-fit: contain;
                                object-position: center;
                        }

                        .fanza-product-body {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                                padding: 10px 12px 12px;
                        }

                        .fanza-product-name {
                                width: 100%;
                                max-width: 100%;
                                min-width: 0;
                                font-size: 13px;
                                line-height: 1.45;
                                -webkit-line-clamp: 2;
                                overflow-wrap: anywhere;
                                word-break: break-word;
                        }

                        .fanza-product-price {
                                margin-top: 7px;
                                font-size: 13px;
                        }

                        .fanza-product-button {
                                margin-top: 9px;
                        }

                        .fanza-product-button span {
                                width: 100%;
                                min-height: 36px;
                                padding: 7px 10px;
                                font-size: 12px;
                        }

                        .fanza-slider-dots {
                                display: flex;
                                justify-content: center;
                                align-items: center;
                                gap: 7px;
                                padding: 0 10px 12px;
                        }

                        .fanza-slider-dot {
                                width: 7px;
                                height: 7px;
                                padding: 0;
                                border: 0;
                                border-radius: 50%;
                                background: rgba(255, 255, 255, .25);
                                cursor: pointer;
                                transition: transform .15s ease, background .15s ease;
                        }

                        .fanza-slider-dot.is-active {
                                background: var(--accent);
                                transform: scale(1.25);
                        }
                }

                @media (max-width: 360px) {
                        .fanza-products {
                                padding: 7px;
                        }

                        .fanza-product-body {
                                padding: 8px;
                        }

                        .fanza-product-name {
                                font-size: 12px;
                        }

                        .fanza-product-button span {
                                font-size: 11px;
                        }
                }

                /* =====================================================
   記事上部：基本情報
   ===================================================== */
                .article-meta-compact {
                        display: flex;
                        align-items: center;
                        flex-wrap: wrap;
                        gap: 8px;
                        margin-top: 4px;
                }

                .article-meta-chip {
                        display: inline-flex;
                        align-items: center;
                        gap: 6px;
                        padding: 7px 10px;
                        border: 1px solid var(--line);
                        border-radius: 999px;
                        background: rgba(255, 255, 255, .03);
                        color: rgba(231, 237, 247, .88);
                        font-size: 12px;
                        line-height: 1;
                        white-space: nowrap;
                        transition: border-color .15s ease, background .15s ease, color .15s ease;
                }

                a.article-meta-chip:hover {
                        border-color: rgba(53, 208, 255, .35);
                        background: rgba(53, 208, 255, .07);
                        color: rgba(231, 237, 247, .98);
                }

                .meta-dot {
                        width: 6px;
                        height: 6px;
                        flex: 0 0 6px;
                        border-radius: 50%;
                }

                .meta-dot-site {
                        background: rgba(53, 208, 255, .75);
                        box-shadow: 0 0 0 3px rgba(53, 208, 255, .10);
                }

                .meta-dot-tag {
                        background: rgba(124, 92, 255, .80);
                        box-shadow: 0 0 0 3px rgba(124, 92, 255, .12);
                }

                .article-meta-date {
                        display: inline-flex;
                        align-items: center;
                        color: var(--muted2);
                        font-size: 12px;
                        line-height: 1.4;
                        white-space: nowrap;
                }

                /* =====================================================
                   今週の人気データ
                   ===================================================== */
                .article-data-box {
                        margin-top: 14px;
                        margin-bottom: 16px;
                        padding: 13px 14px 14px;
                        border: 1px solid var(--line2);
                        border-radius: 14px;
                        background: rgba(255, 255, 255, .025);
                }

                .article-data-title {
                        margin-bottom: 10px;
                        color: rgba(231, 237, 247, .95);
                        font-size: 13px;
                        font-weight: 700;
                        line-height: 1.4;
                }

                .article-data-grid {
                        display: grid;
                        grid-template-columns: repeat(4, minmax(0, 1fr));
                        gap: 8px;
                }

                .article-data-card {
                        min-width: 0;
                        display: flex;
                        align-items: center;
                        justify-content: space-between;
                        gap: 8px;
                        padding: 9px 10px;
                        border: 1px solid var(--line);
                        border-radius: 10px;
                        background: rgba(255, 255, 255, .025);
                }

                .article-data-label {
                        min-width: 0;
                        color: var(--muted2);
                        font-size: 12px;
                        line-height: 1.3;
                        overflow: hidden;
                        text-overflow: ellipsis;
                        white-space: nowrap;
                }

                .article-data-value {
                        flex-shrink: 0;
                        color: var(--text);
                        font-size: 13px;
                        font-weight: 700;
                        line-height: 1;
                }

                .article-data-rising {
                        color: #8be8ff;
                }

                @media (max-width: 720px) {
                        .article-meta-compact {
                                gap: 6px;
                                margin-top: 2px;
                        }

                        .article-meta-chip {
                                padding: 6px 8px;
                                font-size: 11.5px;
                        }

                        .article-meta-date {
                                width: 100%;
                                margin-top: 2px;
                                font-size: 11.5px;
                        }

                        .article-data-box {
                                margin-top: 12px;
                                margin-bottom: 14px;
                                padding: 11px;
                        }

                        .article-data-title {
                                margin-bottom: 8px;
                                font-size: 12.5px;
                        }

                        .article-data-grid {
                                grid-template-columns: repeat(2, minmax(0, 1fr));
                                gap: 6px;
                        }

                        .article-data-card {
                                padding: 8px;
                        }

                        .article-data-label {
                                font-size: 11px;
                        }

                        .article-data-value {
                                font-size: 12px;
                        }
                }
                        /* サイドバー：オリジナルゲーム枠 */
                .side-game-panel {
                        margin-bottom: 12px;
                }

                .side-game-header {
                        padding: 12px 12px 9px;
                }

                .side-game-header .panel-title strong {
                        font-size: 13px;
                        line-height: 1.35;
                        letter-spacing: .2px;
                }

                .side-game-header .panel-title span {
                        font-size: 11.5px;
                }

                .side-game-body {
                        padding: 10px;
                }

                .side-banner {
                        display: block;
                        overflow: hidden;
                        border-radius: 12px;
                        border: 1px solid var(--line);
                        background: rgba(255, 255, 255, .03);
                        transition: transform .15s ease, border .15s ease, background .15s ease;
                }

                .side-banner:hover {
                        transform: translateY(-1px);
                        border-color: rgba(124, 92, 255, .4);
                        background: rgba(124, 92, 255, .08);
                }

                .side-banner img {
                        width: 100%;
                        height: auto;
                        display: block;
                }

                .side-game-body {
                        padding: 0;
                }

                .video-ad {
                        display: block;
                        width: 100%;
                        aspect-ratio: 1 / 1;
                        overflow: hidden;
                        border-radius: 12px;
                }

                .game-ad-video {
                        display: block;
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                }
