/* =========================================================
   九狸游戏 · 新版模板共用样式 index2.css (v30)
   明亮清爽风 / 品牌色 #f76341 / PC·平板·手机 自适应
   使用页面：首页 index2.html、游戏列表 gamelist.html、游戏详情 game2.html
   ========================================================= */

:root {
    --nx-primary: #f76341;
    --nx-primary-dark: #e5522f;
    --nx-grad: linear-gradient(135deg, #f76341 0%, #ff8a5c 100%);
    --nx-text: #1f2329;
    --nx-text2: #646a73;
    --nx-text3: #8f959e;
    --nx-bg: #f5f6f8;
    --nx-line: #eef0f4;
    --nx-radius: 12px;
    --nx-shadow: 0 2px 16px rgba(31, 35, 41, .06);
}

/* ---------- 基础 ---------- */
body {
    background: var(--nx-bg);
    color: var(--nx-text);
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
        "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
}

body.nx-open { overflow: hidden; }

/* 容器自适应（仅首页加载本文件） */
.w1600 {
    width: auto;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 24px;
    box-sizing: border-box;
}

/* ---------- 全新头部 .nx-hd ---------- */
.nx-hd {
    position: sticky;
    top: 0;
    z-index: 900;
    background: rgba(255, 255, 255, .88);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(238, 240, 244, .9);
}
.nx-hd-in {
    display: flex;
    align-items: center;
    height: 68px;
    gap: 6px;
}
.nx-logo {
    flex: none;
    display: flex;
    align-items: center;
    margin-right: 16px;
}
.nx-logo img { max-height: 38px; width: auto; display: block; }

.nx-menu { flex: 1; min-width: 0; }
.nx-menu > ul {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
    flex-wrap: nowrap;
}
.nx-menu .menu-item { position: relative; list-style: none; }
.nx-menu .menu-item > a {
    display: flex;
    align-items: center;
    gap: 3px;
    padding: 9px 15px;
    border-radius: 10px;
    color: var(--nx-text);
    font-size: 15px;
    white-space: nowrap;
    transition: color .2s, background .2s;
}
.nx-menu .menu-item > a .layui-icon-down { font-size: 12px; color: var(--nx-text3); transition: transform .2s; }
.nx-menu .menu-item > a:hover { color: var(--nx-primary); background: #fff5f0; }
.nx-menu .menu-item > a:hover .layui-icon-down { transform: rotate(180deg); color: var(--nx-primary); }

/* 二级下拉 */
.nx-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translate(-50%, 10px);
    min-width: 148px;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(31, 35, 41, .12);
    border: 1px solid var(--nx-line);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s, transform .22s, visibility .22s;
    z-index: 950;
}
.nx-menu .menu-item.has-sub:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 6px);
}
.nx-menu .sub-menu a {
    display: block;
    padding: 9px 13px;
    border-radius: 8px;
    color: var(--nx-text2);
    font-size: 14px;
    white-space: nowrap;
    transition: all .18s;
}
.nx-menu .sub-menu a:hover { background: #fff5f0; color: var(--nx-primary); }

/* 头部右侧操作区 */
.nx-acts {
    flex: none;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}
.nx-so {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 196px;
    height: 38px;
    padding: 0 14px;
    background: var(--nx-bg);
    border-radius: 999px;
    border: 1px solid transparent;
    transition: all .2s;
}
.nx-so:focus-within {
    background: #fff;
    border-color: #ffd2c2;
    box-shadow: 0 0 0 3px rgba(247, 99, 65, .1);
}
.nx-so i { color: var(--nx-text3); font-size: 15px; flex: none; }
.nx-so input {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 13px;
    color: var(--nx-text);
}
.nx-so input::placeholder { color: #b4bac5; }

.nx-vip {
    flex: none;
    display: flex;
    align-items: center;
    gap: 4px;
    height: 38px;
    padding: 0 15px;
    border-radius: 999px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .5px;
    box-shadow: 0 4px 12px rgba(247, 99, 65, .3);
    transition: filter .2s;
}
.nx-vip:hover { color: #fff; filter: brightness(1.06); }

.nx-login {
    flex: none;
    display: flex;
    align-items: center;
    gap: 5px;
    height: 38px;
    padding: 0 15px;
    border-radius: 999px;
    border: 1px solid var(--nx-line);
    color: var(--nx-text);
    font-size: 13px;
    transition: all .2s;
}
.nx-login:hover { color: var(--nx-primary); border-color: #ffc9b5; background: #fff6f2; }

/* ---------- Hero 区（动态背景 v2：流光渐变 + 光球 + 波浪 + 光点） ---------- */
.nx-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(120deg, #ffd6bd 0%, #ffb088 18%, #ffcfb0 38%, #d8cff2 60%, #c1d5ff 82%, #ffd8bd 100%);
    background-size: 300% 300%;
    animation: nx-flow 20s ease-in-out infinite;
    will-change: background-position;
}

/* 大光球层（橙 / 蓝 / 紫，柔边漂移） */
.nx-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.nx-hero-bg i {
    position: absolute;
    border-radius: 50%;
    will-change: transform;
}
.nx-hero-bg .g1 {
    width: 560px;
    height: 560px;
    right: -130px;
    top: -170px;
    background: radial-gradient(circle, rgba(247, 99, 65, .38), transparent 70%);
    animation: nx-g1 13s ease-in-out infinite alternate;
}
.nx-hero-bg .g2 {
    width: 500px;
    height: 500px;
    left: -160px;
    top: 32%;
    background: radial-gradient(circle, rgba(101, 132, 255, .32), transparent 70%);
    animation: nx-g2 17s ease-in-out infinite alternate;
}
.nx-hero-bg .g3 {
    width: 420px;
    height: 420px;
    left: 40%;
    top: -150px;
    background: radial-gradient(circle, rgba(195, 98, 255, .28), transparent 70%);
    animation: nx-g3 15s ease-in-out infinite alternate;
}

/* 漂浮光点（18 颗，尺寸翻倍，六色循环：橙/蓝/紫/金/粉/青） */
.nx-hero-bg b {
    position: absolute;
    bottom: 40px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    opacity: 0;
    background: rgba(247, 99, 65, .88);
    box-shadow: 0 0 40px 12px rgba(247, 99, 65, .6);
    animation: nx-rise 14s linear infinite;
    will-change: transform, opacity;
}
.nx-hero-bg b:nth-of-type(6n + 2) {
    background: rgba(90, 124, 255, .85);
    box-shadow: 0 0 40px 12px rgba(90, 124, 255, .55);
}
.nx-hero-bg b:nth-of-type(6n + 3) {
    background: rgba(198, 96, 255, .85);
    box-shadow: 0 0 40px 12px rgba(198, 96, 255, .55);
}
.nx-hero-bg b:nth-of-type(6n + 4) {
    background: rgba(255, 172, 28, .88);
    box-shadow: 0 0 40px 12px rgba(255, 172, 28, .6);
}
.nx-hero-bg b:nth-of-type(6n + 5) {
    background: rgba(255, 86, 160, .85);
    box-shadow: 0 0 40px 12px rgba(255, 86, 160, .55);
}
.nx-hero-bg b:nth-of-type(6n) {
    background: rgba(0, 196, 204, .85);
    box-shadow: 0 0 40px 12px rgba(0, 196, 204, .55);
}
.nx-hero-bg b:nth-of-type(4),
.nx-hero-bg b:nth-of-type(12) { border-radius: 3px; }
.nx-hero-bg b:nth-of-type(7),
.nx-hero-bg b:nth-of-type(16) { border-radius: 6px; }
.nx-hero-bg b:nth-of-type(1) { left: 1%;    width: 52px; height: 52px; animation-duration: 15s; --nx-x: 50px; }
.nx-hero-bg b:nth-of-type(2) { left: 6.5%;  width: 32px; height: 32px; animation-duration: 11s; animation-delay: 2s;  --nx-x: -40px; }
.nx-hero-bg b:nth-of-type(3) { left: 12%;   width: 40px; height: 40px; animation-duration: 17s; animation-delay: 6s;  --nx-x: 55px; }
.nx-hero-bg b:nth-of-type(4) { left: 17.5%; width: 48px; height: 48px; animation-duration: 14s; animation-delay: 1s;  --nx-x: -52px; }
.nx-hero-bg b:nth-of-type(5) { left: 23%;   width: 28px; height: 28px; animation-duration: 12s; animation-delay: 8s;  --nx-x: 36px; }
.nx-hero-bg b:nth-of-type(6) { left: 28.5%; width: 44px; height: 44px; animation-duration: 16s; animation-delay: 4s;  --nx-x: -46px; }
.nx-hero-bg b:nth-of-type(7) { left: 34%;   width: 36px; height: 36px; animation-duration: 18s; animation-delay: 9s;  --nx-x: 42px; }
.nx-hero-bg b:nth-of-type(8) { left: 39.5%; width: 56px; height: 56px; animation-duration: 13s; animation-delay: 5s;  --nx-x: -58px; }
.nx-hero-bg b:nth-of-type(9) { left: 45%;   width: 30px; height: 30px; animation-duration: 12s; animation-delay: 11s; --nx-x: 38px; }
.nx-hero-bg b:nth-of-type(10) { left: 50.5%; width: 42px; height: 42px; animation-duration: 15s; animation-delay: 3s;  --nx-x: -44px; }
.nx-hero-bg b:nth-of-type(11) { left: 56%;  width: 34px; height: 34px; animation-duration: 17s; animation-delay: 7s;  --nx-x: 50px; }
.nx-hero-bg b:nth-of-type(12) { left: 61.5%; width: 52px; height: 52px; animation-duration: 14s; animation-delay: 10s; --nx-x: -50px; }
.nx-hero-bg b:nth-of-type(13) { left: 67%;  width: 30px; height: 30px; animation-duration: 11s; animation-delay: 12s; --nx-x: 34px; }
.nx-hero-bg b:nth-of-type(14) { left: 72.5%; width: 48px; height: 48px; animation-duration: 16s; animation-delay: 6s;  --nx-x: -48px; }
.nx-hero-bg b:nth-of-type(15) { left: 78%;  width: 38px; height: 38px; animation-duration: 18s; animation-delay: 13s; --nx-x: 44px; }
.nx-hero-bg b:nth-of-type(16) { left: 83.5%; width: 46px; height: 46px; animation-duration: 15s; animation-delay: 9s;  --nx-x: -46px; }
.nx-hero-bg b:nth-of-type(17) { left: 89%;  width: 32px; height: 32px; animation-duration: 13s; animation-delay: 14s; --nx-x: 40px; }
.nx-hero-bg b:nth-of-type(18) { left: 94%;  width: 40px; height: 40px; animation-duration: 12s; animation-delay: 8s;  --nx-x: -38px; }

/* 底部滚动波浪（双层反向视差） */
.nx-hero-wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 130px;
    z-index: 0;
    pointer-events: none;
}
.nx-hero-wave i {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background-repeat: repeat-x;
    background-size: 1200px 100%;
    will-change: background-position;
}
.nx-hero-wave .w1 {
    height: 104px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C150,110 350,10 600,60 C850,110 1050,10 1200,60 L1200,120 L0,120 Z' fill='%23f76341' fill-opacity='.12'/%3E%3C/svg%3E");
    animation: nx-wave 13s linear infinite;
}
.nx-hero-wave .w2 {
    height: 140px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,70 C200,20 400,110 600,55 C800,0 1000,105 1200,65 L1200,120 L0,120 Z' fill='%236584ff' fill-opacity='.09'/%3E%3C/svg%3E");
    animation: nx-wave-r 21s linear infinite;
}

/* Hero 动态背景关键帧 */
@keyframes nx-flow {
    0% { background-position: 0% 40%; }
    50% { background-position: 100% 60%; }
    100% { background-position: 0% 40%; }
}
@keyframes nx-g1 {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(-80px, 55px, 0) scale(1.18); }
}
@keyframes nx-g2 {
    from { transform: translate3d(0, 0, 0) scale(1.05); }
    to { transform: translate3d(70px, -50px, 0) scale(.9); }
}
@keyframes nx-g3 {
    from { transform: translate3d(0, 0, 0) scale(.9); }
    to { transform: translate3d(-60px, 65px, 0) scale(1.2); }
}
@keyframes nx-rise {
    0% { transform: translate3d(0, 0, 0) scale(.55); opacity: 0; }
    10% { opacity: .95; }
    72% { opacity: .6; }
    100% { transform: translate3d(var(--nx-x, 36px), -480px, 0) scale(1.15); opacity: 0; }
}
@keyframes nx-wave {
    from { background-position-x: 0; }
    to { background-position-x: -1200px; }
}
@keyframes nx-wave-r {
    from { background-position-x: 0; }
    to { background-position-x: 1200px; }
}
.nx-hero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 470px;
    gap: 46px;
    align-items: center;
    padding-top: 42px;
    padding-bottom: 64px;
    box-sizing: border-box;
}
.nx-hero-title {
    font-size: 34px;
    line-height: 1.32;
    font-weight: 700;
    margin: 0;
    letter-spacing: .5px;
}
.nx-hero-title em {
    font-style: normal;
    background: var(--nx-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.nx-hero-sub { margin: 12px 0 0; color: var(--nx-text2); font-size: 15px; }

.nx-search { margin-top: 26px; max-width: 620px; }
.nx-search form {
    display: flex;
    background: #fff;
    border: 1px solid #ffe0d2;
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(247, 99, 65, .14);
    overflow: hidden;
}
.nx-search input {
    flex: 1;
    min-width: 0;
    height: 54px;
    border: 0;
    outline: 0;
    padding: 0 26px;
    font-size: 15px;
    color: var(--nx-text);
    background: transparent;
}
.nx-search input::placeholder { color: #b4bac5; }
.nx-search button {
    flex: none;
    width: 132px;
    height: 54px;
    border: 0;
    background: var(--nx-grad);
    color: #fff;
    font-size: 16px;
    letter-spacing: 5px;
    padding-left: 5px;
    cursor: pointer;
    transition: filter .2s;
}
.nx-search button:hover { filter: brightness(1.06); }

.nx-hot {
    margin-top: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    font-size: 13px;
    color: var(--nx-text3);
}
.nx-hot > span { flex: none; display: inline-flex; align-items: center; gap: 5px; }
.nx-hot > span .layui-icon { font-size: 14px; color: var(--nx-primary); }
.nx-hot > a:first-of-type {
    color: var(--nx-primary);
    border-color: #ffd2c2;
    background: #fff3ec;
    font-weight: 600;
}
.nx-hot a {
    color: var(--nx-text2);
    background: #fff;
    border: 1px solid var(--nx-line);
    border-radius: 999px;
    padding: 4px 13px;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: all .2s;
}
.nx-hot a:hover { color: var(--nx-primary); border-color: #f76341; background: #fff6f2; }

.nx-feats { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 10px 24px; font-size: 13px; color: var(--nx-text2); }
.nx-feats span { display: flex; align-items: center; gap: 6px; }
.nx-feats i { color: var(--nx-primary); font-size: 15px; }

/* Hero 右侧精选图卡（1 大 + 4 小，16:9 大图文章） */
.nx-hero-pics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.nx-hp {
    position: relative;
    display: block;
    height: 106px;
    border-radius: 14px;
    overflow: hidden;
    background: #f2f3f5;
    box-shadow: var(--nx-shadow);
}
.nx-hp img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.nx-hp:hover img { transform: scale(1.06); }
.nx-hp p {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 26px 12px 9px;
    color: #fff;
    font-size: 12px;
    background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .72));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nx-hp-big { grid-column: span 2; height: 214px; }
.nx-hp-big p { font-size: 14px; padding-bottom: 12px; }

/* ---------- 站点数据统计带（压在 Hero 下沿） ---------- */
.nx-stats {
    position: relative;
    z-index: 5;
    margin-top: -34px;
}
.nx-stats-card {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(31, 35, 41, .08);
    padding: 20px 8px;
}
.nx-st {
    text-align: center;
    padding: 2px 8px;
}
.nx-st::before {
    font-family: layui-icon !important;
    display: block;
    font-size: 21px;
    line-height: 1;
    color: #ffb08e;
    margin-bottom: 6px;
}
.nx-st:nth-child(1)::before { content: '\e663'; }
.nx-st:nth-child(2)::before { content: '\e601'; }
.nx-st:nth-child(3)::before { content: '\e756'; }
.nx-st:nth-child(4)::before { content: '\e66f'; }
.nx-st + .nx-st { border-left: 1px solid var(--nx-line); }
.nx-st b {
    display: block;
    font-size: 26px;
    line-height: 1.25;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    background: linear-gradient(135deg, #f76341, #ff8a5c);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.nx-st span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: var(--nx-text3);
}

/* ---------- 区块通用 ---------- */
.nx-sec { margin-top: 30px; }
.nx-sec-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}
.nx-sec-head h2 {
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.nx-sec-head h2::before {
    content: '';
    width: 6px;
    height: 20px;
    border-radius: 3px;
    background: var(--nx-grad);
}
.nx-sec-head h2::after {
    content: attr(data-en);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #c9cedb;
    align-self: flex-end;
    padding-bottom: 2px;
    white-space: nowrap;
}
.nx-sec-head h2:not([data-en])::after { content: ''; display: none; }
.more { font-size: 13px; color: var(--nx-text3); transition: color .2s; }
.more:hover { color: var(--nx-primary); }

.nx-card {
    background: #fff;
    border-radius: var(--nx-radius);
    box-shadow: var(--nx-shadow);
    padding: 22px 24px;
    box-sizing: border-box;
}

/* ---------- 游戏卡片网格（3:2 横版，匹配原图比例） ---------- */
.nx-game-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}
.nx-gcard {
    display: block;
    min-width: 0;
    border: 1px solid var(--nx-line);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--nx-shadow);
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
.nx-gcard:hover { transform: translateY(-5px); box-shadow: 0 12px 26px rgba(247, 99, 65, .18); border-color: #ffd2c2; }
.nx-gcard .cv { aspect-ratio: 3 / 2; overflow: hidden; background: #f2f3f5; }
.nx-gcard .cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.nx-gcard:hover .cv img { transform: scale(1.05); }
.nx-gcard .cv { position: relative; }
.nx-gcard .cv::after {
    content: '立即下载';
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translate(-50%, 10px);
    background: var(--nx-grad);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    padding: 7px 16px;
    border-radius: 999px;
    box-shadow: 0 4px 14px rgba(247, 99, 65, .45);
    opacity: 0;
    transition: opacity .25s, transform .25s;
    pointer-events: none;
}
.nx-gcard:hover .cv::after { opacity: 1; transform: translate(-50%, 0); }
.nx-gcard .mt { padding: 10px 12px 12px; }
.nx-gcard .nm {
    font-size: 14px;
    color: var(--nx-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nx-gcard .dt {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    color: var(--nx-text3);
}
.nx-gcard:hover .nm { color: var(--nx-primary); }

/* ---------- 三栏：更新 / 资讯 / 热门榜 ---------- */
.nx-cols {
    display: grid;
    grid-template-columns: 350px 1fr 330px;
    gap: 20px;
    align-items: start;
}
.nx-cols .nx-card { min-width: 0; }
.nx-cols .nx-sec-head { margin-bottom: 8px; }

.nx-uplist, .nx-newslist, .nx-hotlist { margin: 0; padding: 0; list-style: none; }

.nx-uplist li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom: 1px dashed var(--nx-line);
    font-size: 14px;
}
.nx-uplist li:last-child { border-bottom: 0; }
.nx-uplist .dt {
    flex: none;
    font-size: 12px;
    color: var(--nx-primary);
    background: #fff3ec;
    border-radius: 6px;
    padding: 2px 8px;
    margin-top: 1px;
}
.nx-uplist a {
    flex: 1;
    min-width: 0;
    color: var(--nx-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nx-uplist a:hover { color: var(--nx-primary); }

.nx-newslist li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px dashed var(--nx-line);
    font-size: 14px;
}
.nx-newslist li:last-child { border-bottom: 0; }
.nx-newslist .dot { flex: none; width: 5px; height: 5px; border-radius: 50%; background: #ffbfab; }
.nx-newslist li:first-child .dot { background: var(--nx-primary); }
.nx-newslist a {
    flex: 1;
    min-width: 0;
    color: var(--nx-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nx-newslist li:first-child a { font-weight: 600; }
.nx-newslist a:hover { color: var(--nx-primary); }
.nx-newslist .dt { flex: none; font-size: 12px; color: var(--nx-text3); }

.nx-hotlist li { display: flex; align-items: center; gap: 12px; padding: 8px 0; min-width: 0; }
.nx-hotlist .rk {
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: #f2f3f5;
    color: var(--nx-text3);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    font-style: normal;
}
.nx-hotlist li:nth-child(1) .rk { background: linear-gradient(135deg, #ffb800, #ff8a00); color: #fff; }
.nx-hotlist li:nth-child(2) .rk { background: linear-gradient(135deg, #a8b0bd, #c4ccd8); color: #fff; }
.nx-hotlist li:nth-child(3) .rk { background: linear-gradient(135deg, #d2925f, #b9713f); color: #fff; }
.nx-hotlist .th { flex: none; width: 60px; height: 40px; border-radius: 8px; overflow: hidden; background: #f2f3f5; }
.nx-hotlist .th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-hotlist .info { flex: 1; min-width: 0; margin: 0; font-size: 14px; color: var(--nx-text); line-height: 1.45; }
.nx-hotlist .info a {
    display: block;
    font-size: 14px;
    color: var(--nx-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.nx-hotlist .info a:hover { color: var(--nx-primary); }
.nx-hotlist .dls { display: block; font-size: 12px; color: var(--nx-text3); margin-top: 5px; }

/* ---------- 最新评测 ---------- */
.nx-reviews {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}
.nx-rv {
    position: relative;
    display: block;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--nx-shadow);
    transition: transform .25s, box-shadow .25s;
}
.nx-rv:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(31, 35, 41, .1); }
.nx-rv .cv { aspect-ratio: 16 / 10; overflow: hidden; background: #f2f3f5; }
.nx-rv .cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.nx-rv:hover .cv img { transform: scale(1.05); }
.nx-rv .sc {
    position: absolute;
    top: 10px;
    right: 10px;
    background: rgba(31, 35, 41, .55);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    border-radius: 8px;
    padding: 2px 9px;
}
.nx-rv .sc i { font-style: normal; font-weight: 400; font-size: 11px; margin-left: 2px; color: #ffb14d; }
.nx-rv .tt {
    padding: 10px 12px 12px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--nx-text);
    height: 66px;
    box-sizing: border-box;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ---------- 分类 Tabs ---------- */
.nx-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}
.nx-tabs li {
    padding: 7px 18px;
    border-radius: 999px;
    background: var(--nx-bg);
    color: var(--nx-text2);
    font-size: 14px;
    cursor: pointer;
    transition: all .2s;
    user-select: none;
}
.nx-tabs li:hover { color: var(--nx-primary); }
.nx-tabs li.on { background: var(--nx-grad); color: #fff; box-shadow: 0 4px 12px rgba(247, 99, 65, .3); }
.nx-pane { display: none; }
.nx-pane.on { display: block; }
.nx-pane .nx-game-grid { grid-template-columns: repeat(4, 1fr); }

/* ---------- 友情链接 ---------- */
.nx-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    font-size: 13px;
    padding: 18px 24px;
    line-height: 1.9;
}
.nx-links > span { color: var(--nx-text3); }
.nx-links a { color: var(--nx-text2); }
.nx-links a:hover { color: var(--nx-primary); }

/* ---------- 底部重塑（仅首页） ---------- */
.footer { background: #fff; margin-top: 36px; border-top: 1px solid var(--nx-line); }
.footer .bottomnav span { color: var(--nx-text); font-weight: 600; }
.footer .bottomnav ul li a { color: var(--nx-text2); }
.footer .bottomnav ul li a:hover { color: var(--nx-primary); }
.footer p { color: var(--nx-text3); }
.kefu { padding: 12px 46px; background: var(--nx-grad); color: #fff; border-radius: 999px; transition: filter .2s; }
.kefu:hover { background: var(--nx-grad); filter: brightness(1.06); color: #fff; }
.foot { background: #fafbfc; color: var(--nx-text3); border-top: 1px solid var(--nx-line); }
.foot a { color: var(--nx-text3); }
.rettop { background: var(--nx-primary) !important; border-radius: 50% !important; padding: 12px !important; }

/* ---------- 移动端汉堡与抽屉 ---------- */
.nx-burger {
    display: none;
    position: fixed;
    top: 10px;
    right: 14px;
    z-index: 1200;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(31, 35, 41, .12);
    cursor: pointer;
    padding: 0;
}
.nx-burger i { display: block; width: 18px; height: 2px; background: var(--nx-text); border-radius: 2px; margin: 3.5px auto; transition: transform .25s, opacity .25s; }
body.nx-open .nx-burger i:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
body.nx-open .nx-burger i:nth-child(2) { opacity: 0; }
body.nx-open .nx-burger i:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

.nx-mask {
    position: fixed;
    inset: 0;
    background: rgba(15, 18, 25, .5);
    z-index: 1100;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
}
body.nx-open .nx-mask { opacity: 1; pointer-events: auto; }

.nx-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 280px;
    max-width: 82vw;
    background: #fff;
    z-index: 1150;
    transform: translateX(105%);
    transition: transform .28s ease;
    display: flex;
    flex-direction: column;
    box-shadow: -10px 0 34px rgba(0, 0, 0, .12);
}
body.nx-open .nx-drawer { transform: translateX(0); }
.nx-drawer-head {
    padding: 18px 20px;
    font-weight: 700;
    font-size: 17px;
    border-bottom: 1px solid var(--nx-line);
    display: flex;
    align-items: center;
    gap: 8px;
}
.nx-drawer-head::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--nx-grad);
}
.nx-drawer-head span { font-size: 11px; font-weight: 400; color: var(--nx-text3); margin-top: 4px; }
.nx-drawer-nav { flex: 1; overflow-y: auto; padding: 10px 8px; -webkit-overflow-scrolling: touch; }
.nx-drawer-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 14px;
    border-radius: 10px;
    color: var(--nx-text);
    font-size: 15px;
}
.nx-drawer-nav a::after { content: '\203A'; color: #c9cdd4; font-size: 18px; line-height: 1; }
.nx-drawer-nav a:hover { background: #fff6f2; color: var(--nx-primary); }
.nx-drawer-foot { padding: 14px 20px 20px; border-top: 1px solid var(--nx-line); }
.nx-drawer-foot a {
    display: block;
    text-align: center;
    height: 44px;
    line-height: 44px;
    border-radius: 999px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 15px;
}

/* =========================================================
   响应式断点
   ========================================================= */

@media (max-width: 1200px) {
    .nx-hd-in { height: 62px; }
    .nx-logo img { max-height: 34px; }
    .nx-menu .menu-item > a { padding: 8px 10px; font-size: 14px; }
    .nx-so { width: 150px; }

    .nx-hero-inner { grid-template-columns: 1fr 400px; gap: 30px; }
    .nx-hero-title { font-size: 28px; }
    .nx-game-grid { grid-template-columns: repeat(4, 1fr); }
    .nx-cols { grid-template-columns: 340px 1fr; }
    .nx-col-hot { grid-column: 1 / -1; }
    .nx-col-hot .nx-hotlist { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 28px; }
    .nx-col-hot .nx-hotlist li { padding: 10px 0; }
    .nx-reviews { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
    .nx-pane .nx-game-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 860px) {
    .w1600 { padding: 0 14px; }

    /* 头部简化：仅 logo + 汉堡抽屉 */
    .nx-hd { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
    .nx-hd-in { height: 56px; }
    .nx-logo { margin-right: 0; }
    .nx-logo img { max-height: 30px; }
    .nx-menu, .nx-acts { display: none; }
    .nx-burger { display: block; }

    /* 统计带 */
    .nx-stats { margin-top: -26px; }
    .nx-stats-card { padding: 14px 4px; border-radius: 12px; }
    .nx-st b { font-size: 20px; }
    .nx-st span { font-size: 11px; }

    /* Hero 单列 */
    .nx-hero-inner { grid-template-columns: 1fr; gap: 24px; padding-top: 26px; padding-bottom: 52px; }
    .nx-hero-title { font-size: 22px; letter-spacing: 0; }
    .nx-hero-sub { font-size: 13px; margin-top: 8px; }
    .nx-search { margin-top: 18px; }
    .nx-search form { box-shadow: 0 6px 18px rgba(247, 99, 65, .13); }
    .nx-search input { height: 46px; padding: 0 18px; font-size: 14px; }
    .nx-search button { width: 98px; height: 46px; font-size: 14px; letter-spacing: 3px; padding-left: 3px; }
    .nx-hot { font-size: 12px; }
    .nx-hot a { max-width: 130px; }
    .nx-feats { margin-top: 16px; gap: 8px 18px; font-size: 12px; }
    .nx-hero-bg .g1 { width: 340px; height: 340px; right: -80px; top: -100px; }
    .nx-hero-bg .g2 { width: 300px; height: 300px; left: -90px; top: 38%; }
    .nx-hero-bg .g3 { width: 260px; height: 260px; left: 46%; top: -90px; }
    .nx-hero-wave { height: 90px; }
    .nx-hero-wave .w1 { height: 72px; }
    .nx-hero-wave .w2 { height: 96px; }

    /* 区块 */
    .nx-sec { margin-top: 20px; }
    .nx-card { padding: 16px 14px; }
    .nx-sec-head { margin-bottom: 14px; }
    .nx-sec-head h2 { font-size: 17px; }
    .nx-sec-head h2::before { height: 17px; }

    .nx-game-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .nx-pane .nx-game-grid { grid-template-columns: repeat(2, 1fr); }
    .nx-gcard .mt { padding: 8px 10px 10px; }
    .nx-gcard .nm { font-size: 13px; }
    .nx-gcard .dt { font-size: 11px; margin-top: 3px; }

    .nx-cols { grid-template-columns: 1fr; gap: 14px; }
    .nx-col-hot { grid-column: auto; }
    .nx-col-hot .nx-hotlist { grid-template-columns: minmax(0,1fr); }

    .nx-reviews { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .nx-rv .tt { font-size: 12px; }

    .nx-links { font-size: 12px; padding: 14px 16px; gap: 6px 16px; }
}

@media (max-width: 480px) {
    .nx-hero-title { font-size: 20px; }
    .nx-hero-pics { gap: 10px; }
    .nx-hp { height: 88px; border-radius: 10px; }
    .nx-hp-big { height: 180px; }
    .nx-game-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .nx-feats { gap: 6px 14px; }
    .nx-st b { font-size: 18px; }
    .nx-st span { font-size: 10px; }
    .nx-hotlist .th { width: 52px; height: 35px; }
}

/* ---------- 页脚（首页专属深色风） ---------- */
.nx-ft {
    position: relative;
    margin-top: 48px;
    background: #171b22;
    color: #8d96a5;
}
.nx-ft::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, rgba(247, 99, 65, 0), rgba(247, 99, 65, .85) 30%, #ff8a5c 70%, rgba(255, 138, 92, 0));
}
.nx-ft-main {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr auto;
    gap: 44px;
    padding: 48px 0 40px;
}
.nx-ft-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 21px;
    font-weight: 800;
    color: #fff;
}
.nx-ft-logo::before {
    content: '';
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--nx-grad);
    box-shadow: 0 4px 14px rgba(247, 99, 65, .35);
}
.nx-ft-desc {
    margin: 14px 0 0;
    font-size: 13px;
    line-height: 1.8;
    color: #8d96a5;
    max-width: 330px;
}
.nx-ft-kefu {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 18px;
    padding: 8px 18px;
    border-radius: 999px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 13px;
    box-shadow: 0 6px 16px rgba(247, 99, 65, .3);
    transition: filter .2s, transform .2s;
}
.nx-ft-kefu:hover { filter: brightness(1.08); transform: translateY(-1px); }
.nx-ft-time, .nx-ft-mail {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 10px 0 0;
    font-size: 12px;
    color: #6d7686;
}
.nx-ft-time i, .nx-ft-mail i { font-size: 13px; color: #5a6272; }
.nx-ft h3 {
    margin: 0 0 14px;
    font-size: 15px;
    font-weight: 700;
    color: #e8ebf0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.nx-ft h3::before {
    content: '';
    width: 4px;
    height: 14px;
    border-radius: 2px;
    background: var(--nx-grad);
}
.nx-ft-nav, .nx-ft-nav ul { list-style: none; margin: 0; padding: 0; }
.nx-ft-nav a {
    display: block;
    padding: 6px 0;
    font-size: 13px;
    color: #8d96a5;
    transition: color .2s, transform .2s;
}
.nx-ft-nav a:hover { color: #ff8a5c; transform: translateX(4px); }
.nx-ft-nav .nx-ft-sub { padding-left: 14px; }
.nx-ft-links a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    font-size: 13px;
    color: #8d96a5;
    transition: color .2s, transform .2s;
}
.nx-ft-links a:hover { color: #ff8a5c; transform: translateX(4px); }
.nx-ft-links i { font-size: 14px; color: #5a6272; }
.nx-ft-qr img {
    display: block;
    width: 118px;
    height: 118px;
    object-fit: cover;
    border-radius: 12px;
    padding: 6px;
    background: #fff;
    border: 1px solid rgba(255, 255, 255, .12);
    box-sizing: border-box;
}
.nx-ft-qr p { margin: 10px 0 0; font-size: 12px; line-height: 1.7; text-align: center; color: #6d7686; }
.nx-ft-bar { border-top: 1px solid rgba(255, 255, 255, .07); }
.nx-ft-bar-in {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 6px 18px;
    padding: 17px 0;
    font-size: 12px;
    color: #66707f;
}
.nx-ft-bar-in a { color: #8d96a5; transition: color .2s; }
.nx-ft-bar-in a:hover { color: #ff8a5c; }

@media (max-width: 1200px) {
    .nx-ft-main { grid-template-columns: 1fr 1fr; gap: 30px 40px; }
}
@media (max-width: 640px) {
    .nx-ft-main { grid-template-columns: 1fr; gap: 28px; padding: 34px 0 26px; }
    .nx-ft-desc { max-width: none; }
    .nx-ft-qr img { margin: 0 auto; }
}

/* ---------- 游戏列表页（gamelist） ---------- */
.gl-banner {
    position: relative;
    overflow: hidden;
    padding: 26px 0 30px;
    background: linear-gradient(180deg, #fff 0%, #fff7f2 100%);
    border-bottom: 1px solid var(--nx-line);
}
.gl-banner .nx-hero-bg { z-index: 0; }
.gl-banner-in { position: relative; z-index: 1; }
.gl-crumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 13px;
    color: var(--nx-text2);
}
.gl-crumb a { color: var(--nx-text2); transition: color .2s; }
.gl-crumb a:hover { color: var(--nx-primary); }
.gl-crumb .layui-icon { font-size: 12px; color: #c9cedb; }
.gl-crumb em { font-style: normal; color: var(--nx-primary); font-weight: 600; }
.gl-title {
    margin: 12px 0 0;
    font-size: 28px;
    font-weight: 800;
    color: var(--nx-text);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}
.gl-count { font-size: 14px; font-weight: 500; color: var(--nx-text2); }
.gl-count b { color: var(--nx-primary); font-size: 18px; padding: 0 2px; }
.gl-desc { margin: 8px 0 0; font-size: 13px; color: #97a0b0; }

.gl-filter {
    margin-top: 22px;
    padding: 18px 22px;
}
.gl-filter + .gl-bar { margin-top: 14px; }
.gl-filter-row { display: flex; align-items: flex-start; gap: 14px; }
.gl-filter-row + .gl-filter-row { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--nx-line); }
.gl-filter-label {
    flex: none;
    font-size: 13px;
    font-weight: 700;
    color: var(--nx-text);
    line-height: 30px;
}
.gl-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gl-chip {
    display: inline-block;
    padding: 0 14px;
    line-height: 28px;
    border-radius: 999px;
    font-size: 13px;
    color: var(--nx-text2);
    background: #f3f5f8;
    transition: all .2s;
}
.gl-chip:hover { color: var(--nx-primary); background: #fff1e9; }
.gl-chip.on {
    color: #fff;
    background: var(--nx-grad);
    font-weight: 600;
    box-shadow: 0 4px 10px rgba(247, 99, 65, .3);
}

.gl-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin: 22px 0 16px;
    padding: 0 4px;
}
.gl-bar-tit {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 17px;
    font-weight: 800;
    color: var(--nx-text);
}
.gl-bar-tit .layui-icon { color: var(--nx-primary); font-size: 18px; }
.gl-sorts {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f3f5f8;
    padding: 4px;
    border-radius: 999px;
}
.gl-sort {
    padding: 0 16px;
    line-height: 28px;
    border-radius: 999px;
    font-size: 13px;
    color: var(--nx-text2);
    transition: all .2s;
}
.gl-sort:hover { color: var(--nx-primary); }
.gl-sort.on { color: #fff; background: var(--nx-grad); font-weight: 600; box-shadow: 0 3px 8px rgba(247, 99, 65, .28); }

.gl-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px;
}
.nx-gc {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--nx-line);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    box-shadow: var(--nx-shadow);
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
.nx-gc:hover { transform: translateY(-5px); box-shadow: 0 12px 26px rgba(247, 99, 65, .18); border-color: #ffd2c2; }
.nx-gc .cv { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: #f3f5f8; }
.nx-gc .cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.nx-gc:hover .cv img { transform: scale(1.05); }
.nx-gc .cv::after {
    content: '查看详情';
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translate(-50%, 10px);
    background: var(--nx-grad);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    padding: 7px 16px;
    border-radius: 999px;
    box-shadow: 0 4px 14px rgba(247, 99, 65, .45);
    opacity: 0;
    transition: opacity .25s, transform .25s;
    pointer-events: none;
}
.nx-gc:hover .cv::after { opacity: 1; transform: translate(-50%, 0); }
.nx-gc .pow {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    color: #0c8b52;
    background: rgba(219, 246, 230, .95);
    backdrop-filter: blur(4px);
}
.nx-gc .pow.vip { color: #a85400; background: rgba(255, 226, 188, .95); }
.nx-gc .mt { padding: 13px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
.nx-gc .nm {
    font-size: 14px;
    font-weight: 600;
    color: var(--nx-text);
    line-height: 1.45;
    min-height: 40px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    transition: color .2s;
}
.nx-gc:hover .nm { color: var(--nx-primary); }
.nx-gc .nx-tags { display: flex; align-items: center; gap: 6px; min-width: 0; }
.nx-gc .t {
    display: inline-flex;
    align-items: center;
    flex: none;
    height: 20px;
    padding: 0 8px;
    border-radius: 5px;
    font-size: 11px;
    line-height: 1;
    font-weight: 500;
    color: #7a8494;
    background: #f3f5f8;
}
.nx-gc .t.sys { color: #1e6fd9; background: #e8f2fe; }
.nx-gc .t.lang { color: #0c8b52; background: #e4f6ec; }
.nx-gc .t.date {
    margin-left: auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    gap: 4px;
    padding: 0 2px 0 0;
    color: #a4adbc;
    background: none;
    font-weight: 400;
}
.nx-gc .t.date .layui-icon { font-size: 12px; }

.gl-empty {
    padding: 70px 20px;
    text-align: center;
    color: #aeb6c4;
}
.gl-empty .layui-icon { font-size: 52px; color: #d8dee8; }
.gl-empty p { margin: 14px 0 18px; font-size: 14px; }
.gl-empty a {
    display: inline-block;
    padding: 9px 26px;
    border-radius: 999px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 13px;
    box-shadow: 0 5px 14px rgba(247, 99, 65, .3);
}

.gl-page { margin-top: 30px; padding: 6px 0 4px; text-align: center; }
.gl-page a,
.gl-page .layui-laypage-curr {
    display: inline-block;
    vertical-align: middle;
    min-width: 36px;
    height: 36px;
    line-height: 36px;
    padding: 0 12px;
    margin: 0 4px;
    border: 1px solid var(--nx-line);
    border-radius: 10px;
    background: #fff;
    color: var(--nx-text2);
    font-size: 14px;
    text-decoration: none;
    transition: all .2s;
}
.gl-page a:hover { color: var(--nx-primary); border-color: #ffc9b5; background: #fff6f1; }
.gl-page a.layui-disabled { color: #c5ccd6; cursor: not-allowed; background: #f7f8fa; }
.gl-page .layui-laypage-curr {
    border: none;
    background: var(--nx-grad);
    color: #fff;
    font-weight: 700;
    overflow: hidden;
}
.gl-page .layui-laypage-curr .layui-laypage-em { display: none; }
.gl-page .layui-laypage-curr em { font-style: normal; color: inherit; }

@media (max-width: 1200px) {
    .gl-grid { grid-template-columns: repeat(4, 1fr); gap: 14px; }
    .gl-title { font-size: 24px; }
}
@media (max-width: 860px) {
    .gl-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .gl-filter { padding: 14px 16px; }
    .gl-filter-row { flex-direction: column; gap: 8px; }
    .gl-filter-label { line-height: 26px; }
    .gl-bar-tit { font-size: 15px; }
    .nx-gc .meta span:last-child { display: none; }
}
@media (max-width: 480px) {
    .gl-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .gl-title { font-size: 20px; }
    .gl-count { font-size: 12px; }
    .gl-desc { display: none; }
    .nx-gc .mt { padding: 10px 10px 12px; }
    .nx-gc .t { height: 18px; padding: 0 7px; font-size: 10px; }
    .gl-page a,
    .gl-page .layui-laypage-curr { min-width: 32px; height: 32px; line-height: 32px; padding: 0 8px; }
}

/* ---------- 游戏详情页（game） ---------- */
.gm-crumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 16px 0;
    font-size: 13px;
    color: var(--nx-text2);
}
.gm-crumb a { color: var(--nx-text2); transition: color .2s; }
.gm-crumb a:hover { color: var(--nx-primary); }
.gm-crumb .layui-icon { font-size: 12px; color: #c9cedb; }
.gm-crumb em { font-style: normal; color: var(--nx-primary); font-weight: 600; }

.gm-main { min-width: 0; }

.gm-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 26px;
    align-items: start;
    padding-bottom: 56px;
}

/* 游戏信息主卡 */
.gm-hero {
    position: relative;
    overflow: hidden;
    padding: 26px;
    display: flex;
    gap: 26px;
    border-radius: 16px;
}
/* 封面模糊背景（Steam 风格） */
.gm-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.gm-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.25);
    filter: blur(46px) saturate(1.6);
    opacity: .55;
}
.gm-hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .58), rgba(255, 255, 255, .93) 76%, #fff);
}
.gm-cover {
    flex: none;
    width: 360px;
    max-width: 42%;
    position: relative;
    z-index: 1;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 14px 38px rgba(31, 35, 41, .22);
}
.gm-cover img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .4s; }
.gm-cover:hover img { transform: scale(1.045); }
.gm-cover::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 68%, rgba(0, 0, 0, .14));
    pointer-events: none;
}
.gm-cover .pow {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    color: #0c8b52;
    background: rgba(219, 246, 230, .95);
    backdrop-filter: blur(4px);
}
.gm-cover .pow.vip { color: #a85400; background: rgba(255, 226, 188, .95); }
.gm-info { position: relative; z-index: 1; flex: 1; min-width: 0; display: flex; flex-direction: column; }
.gm-title {
    margin: 0;
    font-size: 25px;
    line-height: 1.35;
    font-weight: 800;
    color: var(--nx-text);
    word-break: break-all;
}
.gm-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.gm-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 0 11px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    color: #7a8494;
    background: #f3f5f8;
}
.gm-badge .layui-icon { font-size: 13px; }
.gm-badge.sys { color: #1e6fd9; background: #e8f2fe; }
.gm-badge.lang { color: #0c8b52; background: #e4f6ec; }
.gm-badge.year { color: #8b5cf6; background: #f1ecfe; }
.gm-badge.hit { color: #e5680f; background: #fff1e2; }
.gm-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
    margin-top: 18px;
    padding: 16px 18px;
    border-radius: 12px;
    background: #f8f9fb;
}
.gm-meta-row { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.gm-meta-row dt { flex: none; font-size: 12px; color: #97a0b0; }
.gm-meta-row dd {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--nx-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gm-safe {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 12.5px;
    color: #0c8b52;
    background: #e9f8ef;
}
.gm-safe .layui-icon { font-size: 16px; }
.gm-safe b { font-weight: 700; }

/* 锚点导航（sticky） */
.gm-tabs {
    position: sticky;
    top: 62px;
    z-index: 90;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 28px;
    padding: 10px 12px;
    border-radius: 12px;
    overflow-x: auto;
    scrollbar-width: none;
}
.gm-tabs::-webkit-scrollbar { display: none; }
.gm-tab {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    color: var(--nx-text2);
    transition: all .2s;
}
.gm-tab .layui-icon { font-size: 14px; }
.gm-tab:hover { color: var(--nx-primary); background: #fff3ec; }
.gm-tab.dl { margin-left: auto; color: #fff; background: var(--nx-grad); box-shadow: 0 4px 12px rgba(247, 99, 65, .35); }
.gm-tab.dl:hover { color: #fff; filter: brightness(1.05); }

/* 内容区块 */
.gm-sec { margin-top: 28px; padding: 30px 34px; }
.gm-sec-h {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 22px;
    font-size: 17px;
    font-weight: 800;
    color: var(--nx-text);
}
.gm-sec-h::before {
    content: '';
    width: 6px;
    height: 18px;
    border-radius: 3px;
    background: var(--nx-grad);
}
.gm-sec-h .layui-icon { color: var(--nx-primary); font-size: 17px; }

/* 视频与截图 */
.gm-video {
    width: 100%;
    border-radius: 12px;
    background: #000;
    display: block;
    max-height: 520px;
}
.gm-photos {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    padding: 4px 4px 14px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #ffc9b5 transparent;
}
.gm-photos::-webkit-scrollbar { height: 6px; }
.gm-photos::-webkit-scrollbar-track { background: #f3f5f8; border-radius: 3px; }
.gm-photos::-webkit-scrollbar-thumb { background: #ffd2c2; border-radius: 3px; }
.gm-photos::-webkit-scrollbar-thumb:hover { background: var(--nx-primary); }
.gm-photo {
    flex: none;
    position: relative;
    width: 420px;
    max-width: 78%;
    border-radius: 12px;
    overflow: hidden;
    background: #f3f5f8;
    scroll-snap-align: start;
    box-shadow: 0 4px 14px rgba(31, 35, 41, .08);
    transition: transform .25s, box-shadow .25s;
}
.gm-photo:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(247, 99, 65, .18); }
.gm-photo img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.gm-photo::after {
    content: '\e61a';
    font-family: layui-icon !important;
    position: absolute;
    right: 10px;
    bottom: 10px;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: rgba(20, 23, 29, .5);
    color: #fff;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .2s;
    pointer-events: none;
}
.gm-photo:hover::after { opacity: 1; }
.gm-photo .num {
    position: absolute;
    left: 10px;
    bottom: 10px;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(20, 23, 29, .5);
    color: #fff;
    font-size: 11px;
    backdrop-filter: blur(4px);
}

/* 游戏简介富文本（净化后语义化排版） */
.gm-art { font-size: 15px; line-height: 2.05; color: #3d4552; word-break: break-word; }
.gm-art img { max-width: 100%; height: auto; border-radius: 10px; margin: 8px 0; box-shadow: 0 4px 14px rgba(31, 35, 41, .1); }
.gm-art p {
    position: relative;
    margin: 0 0 18px;
    padding-left: 16px;
}
.gm-art p:last-child { margin-bottom: 0; }
.gm-art p::before {
    content: '';
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 3px;
    border-radius: 2px;
    background: linear-gradient(180deg, #ffc9b5, rgba(255, 201, 181, 0));
}
/* 含图/视频段落不缩进不加竖线（图片保持通栏） */
.gm-art p:has(> img), .gm-art p:has(> video) { padding-left: 0; }
.gm-art p:has(> img)::before, .gm-art p:has(> video)::before { display: none; }
/* 首段导语 */
.gm-art > p:first-of-type { font-size: 16px; font-weight: 500; color: #2a3140; }
.gm-art > p:first-of-type::before { background: linear-gradient(180deg, var(--nx-primary), rgba(247, 99, 65, .15)); }
.gm-art strong, .gm-art b { color: var(--nx-primary); font-weight: 700; }
.gm-art a { color: var(--nx-primary); }
.gm-art ul, .gm-art ol { padding-left: 22px; margin: 0 0 16px; }
.gm-art li { margin-bottom: 6px; }
.gm-art blockquote {
    margin: 10px 0;
    padding: 10px 16px;
    border-left: 4px solid var(--nx-primary);
    background: #fff7f3;
    border-radius: 0 8px 8px 0;
    color: #6b7484;
}
/* 语义化小标题（净化管道升格的 h3 + 内容自带 h2/h3） */
.gm-art h2, .gm-art h3 {
    display: flex;
    align-items: center;
    margin: 30px 0 14px;
    font-size: 16.5px;
    line-height: 1.4;
    font-weight: 800;
    color: var(--nx-text);
}
.gm-art > h2:first-child, .gm-art > h3:first-child { margin-top: 4px; }
.gm-art h2::before, .gm-art h3::before {
    content: '';
    flex: none;
    width: 5px;
    height: 17px;
    border-radius: 3px;
    margin-right: 10px;
    background: var(--nx-grad);
}

/* 配置要求 */
.gm-spec { border-radius: 12px; overflow: hidden; border: 1px solid var(--nx-line); }
.gm-spec-row {
    display: grid;
    grid-template-columns: 150px 1fr;
    align-items: center;
}
.gm-spec-row + .gm-spec-row { border-top: 1px solid var(--nx-line); }
.gm-spec-row:nth-child(odd) { background: #fafbfc; }
.gm-spec-row dt {
    height: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    font-size: 13px;
    font-weight: 700;
    color: var(--nx-text2);
}
.gm-spec-row dt .layui-icon { color: var(--nx-primary); font-size: 15px; }
.gm-spec-row dd { margin: 0; padding: 14px 18px; font-size: 13.5px; color: var(--nx-text); line-height: 1.6; word-break: break-word; }

/* 安装说明步骤 */
.gm-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.gm-step {
    padding: 18px;
    border-radius: 12px;
    background: #f8f9fb;
    transition: transform .2s, box-shadow .2s;
}
.gm-step:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(31, 35, 41, .08); }
.gm-step-no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 4px 10px rgba(247, 99, 65, .3);
}
.gm-step h4 { margin: 12px 0 6px; font-size: 14.5px; font-weight: 700; color: var(--nx-text); }
.gm-step p { margin: 0; font-size: 12.5px; line-height: 1.7; color: #7a8494; }

/* 下载区（深色高级面板） */
.gm-down {
    position: relative;
    overflow: hidden;
    padding: 0;
    background: linear-gradient(130deg, #1c222f 0%, #242c3f 50%, #2b2437 100%);
    box-shadow: 0 14px 38px rgba(20, 23, 29, .22);
}
.gm-down::before {
    content: '';
    position: absolute;
    top: -170px;
    left: 50%;
    transform: translateX(-50%);
    width: 760px;
    height: 340px;
    background: radial-gradient(closest-side, rgba(247, 99, 65, .34), transparent 72%);
    pointer-events: none;
}
.gm-down::after {
    content: '';
    position: absolute;
    top: 0;
    left: 44px;
    right: 44px;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(247, 99, 65, .85), transparent);
    pointer-events: none;
}
.gm-down-in {
    position: relative;
    display: flex;
    align-items: center;
    gap: 34px;
    padding: 44px 46px;
}
.gm-down-cv {
    flex: none;
    width: 205px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .1);
}
.gm-down-cv img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.gm-down-info { flex: 1; min-width: 0; }
.gm-down-info h3 {
    margin: 0 0 14px;
    font-size: 22px;
    line-height: 1.4;
    font-weight: 800;
    color: #fff;
    word-break: break-all;
}
.gm-down-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-down-chips .chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 27px;
    padding: 0 13px;
    border-radius: 999px;
    font-size: 12px;
    color: rgba(255, 255, 255, .78);
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .13);
}
.gm-down-chips .chip .layui-icon { font-size: 13px; }
.gm-down-chips .chip.pow {
    color: #ffcda8;
    background: rgba(247, 99, 65, .16);
    border-color: rgba(247, 99, 65, .5);
    font-weight: 700;
}
.gm-down-act { flex: none; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.gm-down-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 54px;
    height: 62px;
    border-radius: 18px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 2px;
    box-shadow: 0 12px 32px rgba(247, 99, 65, .45);
    transition: transform .2s, box-shadow .2s, filter .2s;
}
.gm-down-btn .layui-icon { font-size: 24px; }
.gm-down-btn:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(247, 99, 65, .55); filter: brightness(1.03); }
.gm-down-btn.ghost {
    background: transparent;
    border: 2px solid rgba(255, 255, 255, .28);
    box-shadow: none;
}
.gm-down-btn.ghost:hover { border-color: rgba(255, 255, 255, .55); box-shadow: none; }
.gm-down-login { margin: 0; font-size: 12.5px; color: rgba(255, 255, 255, .55); }
.gm-down .gm-feats { justify-content: flex-start; margin: 20px 0 0; }
.gm-down .gm-feats span { color: rgba(255, 255, 255, .68); }
.gm-down .gm-feats .layui-icon { color: #4ade80; }
.gm-down .gm-bc { margin-top: 0; color: rgba(255, 255, 255, .45); }
.gm-down .gm-bc:hover { color: #ffb088; }
.gm-down .gm-note {
    margin: 0;
    padding: 16px 46px 22px;
    border-radius: 0;
    color: rgba(255, 255, 255, .38);
    background: rgba(0, 0, 0, .2);
}

/* 下载弹窗 */
.gm-modal {
    position: fixed;
    inset: 0;
    z-index: 9990;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(20, 23, 29, .55);
    backdrop-filter: blur(4px);
}
.gm-modal.show { display: flex; }
.gm-modal-box {
    width: 100%;
    max-width: 520px;
    max-height: 84vh;
    overflow-y: auto;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(20, 23, 29, .3);
    animation: gmPop .25s ease;
}
@keyframes gmPop {
    from { opacity: 0; transform: translateY(18px) scale(.97); }
    to { opacity: 1; transform: none; }
}
.gm-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid var(--nx-line);
}
.gm-modal-head h4 { margin: 0; font-size: 16px; font-weight: 800; color: var(--nx-text); display: flex; align-items: center; gap: 8px; }
.gm-modal-head h4::before { content: ''; width: 5px; height: 16px; border-radius: 3px; background: var(--nx-grad); }
.gm-modal-close {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #97a0b0;
    cursor: pointer;
    transition: all .2s;
}
.gm-modal-close:hover { color: var(--nx-text); background: #f3f5f8; }
.gm-modal-body { padding: 18px 22px 22px; }
.gm-dl {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid var(--nx-line);
    transition: all .2s;
}
.gm-dl + .gm-dl { margin-top: 10px; }
.gm-dl:hover { border-color: #ffc9b5; background: #fffaf7; transform: translateX(3px); }
.gm-dl-ico {
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
}
.gm-dl-ico.bai { background: linear-gradient(135deg, #4a6cf7, #2932e1); }
.gm-dl-ico.zx { background: linear-gradient(135deg, #ff9a56, #f76341); }
.gm-dl-ico.xun { background: linear-gradient(135deg, #3fb2ff, #1178d6); }
.gm-dl-ico.ben { background: linear-gradient(135deg, #43d17f, #0c8b52); }
.gm-dl-ico.ty { background: linear-gradient(135deg, #ff7d9c, #e53d6b); }
.gm-dl-info { flex: 1; min-width: 0; }
.gm-dl-info b { display: block; font-size: 14px; font-weight: 700; color: var(--nx-text); }
.gm-dl-info span { display: block; margin-top: 2px; font-size: 12px; color: #97a0b0; }
.gm-dl-info .code { color: var(--nx-primary); font-weight: 600; }
.gm-dl-go {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 34px;
    padding: 0 16px;
    border-radius: 999px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 4px 10px rgba(247, 99, 65, .3);
    transition: filter .2s;
}
.gm-dl-go:hover { filter: brightness(1.06); }
.gm-dl-go.off { background: #d8dee8; color: #fff; box-shadow: none; cursor: not-allowed; }
.gm-dl-tip { margin-top: 4px; font-size: 11px; color: #e5680f; }
.gm-vip-tip {
    text-align: center;
    padding: 24px 10px;
}
.gm-vip-tip .layui-icon { font-size: 44px; color: #ffc9b5; }
.gm-vip-tip p { margin: 12px 0 16px; font-size: 14px; color: var(--nx-text2); }
.gm-vip-tip a {
    display: inline-block;
    padding: 10px 30px;
    border-radius: 999px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 6px 16px rgba(247, 99, 65, .35);
}

/* 侧栏 */
.gm-side > * + * { margin-top: 16px; }
.gm-card { padding: 18px 20px; }
.gm-card-h {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 15px;
    font-weight: 800;
    color: var(--nx-text);
}
.gm-card-h .layui-icon { color: var(--nx-primary); font-size: 16px; }
.gm-user-head { display: flex; align-items: center; gap: 12px; }
.gm-user-head img {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffe3d6;
}
.gm-user-head b { display: block; font-size: 14.5px; color: var(--nx-text); }
.gm-user-head span { display: block; margin-top: 3px; font-size: 12px; color: #97a0b0; }
.gm-user-btns { display: flex; gap: 10px; margin-top: 14px; }
.gm-user-btns a {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 36px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    transition: filter .2s;
}
.gm-user-btns a:hover { filter: brightness(1.05); }
.gm-user-btns .in { background: #f3f5f8; color: var(--nx-text2); }
.gm-user-btns .go { background: var(--nx-grad); color: #fff; box-shadow: 0 5px 12px rgba(247, 99, 65, .3); }
.gm-user-vip {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: linear-gradient(135deg, #fff7f2, #fff0e8);
    font-size: 12.5px;
    color: #a0623a;
    line-height: 1.7;
}
.gm-sim-item { display: flex; align-items: center; gap: 12px; padding: 8px 0; }
.gm-sim-item + .gm-sim-item { border-top: 1px dashed var(--nx-line); }
.gm-sim-item .th {
    flex: none;
    width: 76px;
    border-radius: 8px;
    overflow: hidden;
    background: #f3f5f8;
}
.gm-sim-item .th img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .3s; }
.gm-sim-item:hover .th img { transform: scale(1.06); }
.gm-sim-item .inf { flex: 1; min-width: 0; }
.gm-sim-item .nm {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--nx-text);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    transition: color .2s;
}
.gm-sim-item:hover .nm { color: var(--nx-primary); }
.gm-sim-item .lang { margin-top: 4px; font-size: 11px; color: #97a0b0; }

/* 评分星 */
.gm-rate { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; font-size: 12.5px; color: var(--nx-text2); }
.gm-rate .stars { color: #ffb400; font-size: 15px; letter-spacing: 2px; text-shadow: 0 1px 5px rgba(255, 180, 0, .45); }
.gm-rate b { font-size: 20px; color: #e5680f; font-weight: 800; line-height: 1; }

/* 区块标题英文副标 */
.gm-sec-h::after {
    content: attr(data-en);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #c9cedb;
    align-self: flex-end;
    padding-bottom: 2px;
    white-space: nowrap;
}
.gm-sec-h:not([data-en])::after { content: ''; }

/* Tab 滚动高亮 */
.gm-tab.on { color: var(--nx-primary); background: #fff3ec; }
.gm-tab.on .layui-icon { color: var(--nx-primary); }

/* 下载按钮流光 + 呼吸光晕 */
.gm-down-btn { position: relative; overflow: hidden; }
.gm-down-btn::after {
    content: '';
    position: absolute;
    top: -60%;
    bottom: -60%;
    left: -30%;
    width: 36%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .55), transparent);
    transform: skewX(-20deg) translateX(-260%);
    animation: gmShine 3.4s ease-in-out infinite;
    pointer-events: none;
}
@keyframes gmShine {
    0% { transform: skewX(-20deg) translateX(-260%); }
    55%, 100% { transform: skewX(-20deg) translateX(360%); }
}
@keyframes gmBreath {
    0%, 100% { opacity: 0; }
    50% { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
    .gm-down-btn::after, .gm-down-btn::before { animation: none; }
}

/* 下载区特性点 */
.gm-feats { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 30px; margin: 26px 0 0; }
.gm-feats span { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--nx-text2); }
.gm-feats .layui-icon { color: #0c8b52; font-size: 15px; }

/* 配置行 hover */
.gm-spec-row:hover { background: #fff8f4; }
.gm-spec-row:hover dt { color: var(--nx-primary); }

/* 热门榜排名徽章 */
.gm-hot .rk {
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: #eef1f5;
    color: #97a0b0;
    font-size: 12px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.gm-hot .rk.top1 { background: linear-gradient(135deg, #ffb800, #ff8a00); color: #fff; box-shadow: 0 3px 8px rgba(255, 158, 0, .35); }
.gm-hot .rk.top2 { background: linear-gradient(135deg, #a8b0bd, #c4ccd8); color: #fff; }
.gm-hot .rk.top3 { background: linear-gradient(135deg, #d2925f, #b9713f); color: #fff; }

/* 截图灯箱 */
.gm-lb {
    position: fixed;
    inset: 0;
    z-index: 9995;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(15, 17, 22, .92);
    backdrop-filter: blur(6px);
    cursor: zoom-out;
}
.gm-lb.show { display: flex; }
.gm-lb img {
    max-width: 92vw;
    max-height: 88vh;
    border-radius: 10px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .55);
    cursor: default;
    animation: gmPop .25s ease;
}
.gm-lb-x, .gm-lb-prev, .gm-lb-next {
    position: absolute;
    z-index: 2;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 20px;
    transition: background .2s;
}
.gm-lb-x:hover, .gm-lb-prev:hover, .gm-lb-next:hover { background: rgba(255, 255, 255, .3); }
.gm-lb-x { top: 26px; right: 30px; }
.gm-lb-prev { left: 26px; top: 50%; transform: translateY(-50%); }
.gm-lb-next { right: 26px; top: 50%; transform: translateY(-50%); }
.gm-photo { cursor: zoom-in; }

@media (max-width: 1200px) {
    .gm-layout { grid-template-columns: 1fr; }
    .gm-side { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
    .gm-side > * + * { margin-top: 0; }
}
@media (max-width: 860px) {
    .gm-hero { flex-direction: column; padding: 18px; gap: 18px; }
    .gm-cover { width: 100%; max-width: 340px; margin: 0 auto; }
    .gm-title { font-size: 20px; }
    .gm-sec { padding: 18px; }
    .gm-steps { grid-template-columns: 1fr; }
    .gm-photo { width: 300px; max-width: 82%; }
    .gm-spec-row { grid-template-columns: 110px 1fr; }
    .gm-sec { padding: 20px; margin-top: 18px; }
    .gm-down { padding: 0; }
    .gm-down-in { flex-direction: column; text-align: center; gap: 22px; padding: 32px 20px 26px; }
    .gm-down-cv { width: 170px; }
    .gm-down-chips, .gm-down .gm-feats { justify-content: center; }
    .gm-down-btn { width: 100%; max-width: 320px; padding: 0 16px; height: 54px; font-size: 15px; letter-spacing: 1px; }
    .gm-down .gm-note { padding: 14px 20px 18px; }
    .gm-tabs { top: 56px; }
}
@media (max-width: 640px) {
    .gm-side { grid-template-columns: 1fr; }
    .gm-meta { grid-template-columns: 1fr; }
}

/* ---------- 回到顶部按钮 ---------- */
.nx-top {
    position: fixed;
    right: 28px;
    bottom: 36px;
    width: 46px;
    height: 46px;
    border-radius: 13px;
    background: #fff;
    border: 1px solid var(--nx-line);
    box-shadow: 0 8px 24px rgba(31, 35, 41, .14);
    color: var(--nx-text2);
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 800;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: all .25s;
}
.nx-top.show { opacity: 1; visibility: visible; transform: translateY(0); }
.nx-top:hover { color: var(--nx-primary); border-color: #ffc9b5; transform: translateY(-2px); }

/* ---------- 滚动入场动画（JS 加 .nx-in） ---------- */
.nx-reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s ease; }
.nx-reveal.nx-in { opacity: 1; transform: none; }

/* ---------- Hero 动态背景：降级与精简 ---------- */
/* 低动效偏好（系统设置）：停用全部动画，粒子隐藏 */
@media (prefers-reduced-motion: reduce) {
    .nx-hero, .nx-hero-bg i, .nx-hero-bg b, .nx-hero-wave i { animation: none; }
    .nx-hero-bg b { opacity: 0; }
    .nx-reveal { opacity: 1; transform: none; transition: none; }
}

/* 移动端减少粒子数量，降低渲染负担 */
@media (max-width: 860px) {
    .nx-hero-bg b:nth-of-type(n + 9) { display: none; }
}

/* =========================================================
   登录 / 注册页（nx-auth）
   ========================================================= */
.nx-auth { display: flex; min-height: 100vh; }

/* ---- 左侧品牌区（仅桌面显示） ---- */
.nx-auth-side {
    position: relative;
    flex: none;
    width: 46%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 70px 60px;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(150deg, #1c222f 0%, #242c3f 52%, #2b2437 100%);
}
.nx-auth-side::before {
    content: '';
    position: absolute;
    top: -180px;
    left: -120px;
    width: 560px;
    height: 560px;
    background: radial-gradient(closest-side, rgba(247, 99, 65, .35), transparent 70%);
    pointer-events: none;
}
.nx-auth-side::after {
    content: '';
    position: absolute;
    bottom: -220px;
    right: -140px;
    width: 600px;
    height: 600px;
    background: radial-gradient(closest-side, rgba(90, 124, 255, .2), transparent 70%);
    pointer-events: none;
}
.nx-auth-side > * { position: relative; z-index: 1; }
/* 粒子（复用 nx-rise 关键帧，六色循环） */
.nx-auth-p { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.nx-auth-p b {
    position: absolute;
    bottom: 30px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    opacity: 0;
    background: rgba(247, 99, 65, .8);
    box-shadow: 0 0 22px 7px rgba(247, 99, 65, .5);
    animation: nx-rise 12s linear infinite;
    will-change: transform, opacity;
}
.nx-auth-p b:nth-of-type(6n+2) { background: rgba(90, 124, 255, .8); box-shadow: 0 0 22px 7px rgba(90, 124, 255, .5); }
.nx-auth-p b:nth-of-type(6n+3) { background: rgba(198, 96, 255, .8); box-shadow: 0 0 22px 7px rgba(198, 96, 255, .5); }
.nx-auth-p b:nth-of-type(6n+4) { background: rgba(255, 172, 28, .8); box-shadow: 0 0 22px 7px rgba(255, 172, 28, .5); }
.nx-auth-p b:nth-of-type(6n+5) { background: rgba(255, 86, 160, .8); box-shadow: 0 0 22px 7px rgba(255, 86, 160, .5); }
.nx-auth-p b:nth-of-type(6n)   { background: rgba(0, 196, 204, .8); box-shadow: 0 0 22px 7px rgba(0, 196, 204, .5); }
.nx-auth-p b:nth-of-type(1) { left: 8%;  width: 26px; height: 26px; animation-duration: 15s; --nx-x: 40px; }
.nx-auth-p b:nth-of-type(2) { left: 22%; width: 16px; height: 16px; animation-duration: 11s; animation-delay: 3s;  --nx-x: -32px; }
.nx-auth-p b:nth-of-type(3) { left: 36%; width: 22px; height: 22px; animation-duration: 13s; animation-delay: 6s;  --nx-x: 38px; }
.nx-auth-p b:nth-of-type(4) { left: 52%; width: 18px; height: 18px; animation-duration: 12s; animation-delay: 1s;  --nx-x: -36px; }
.nx-auth-p b:nth-of-type(5) { left: 68%; width: 24px; height: 24px; animation-duration: 16s; animation-delay: 8s;  --nx-x: 30px; }
.nx-auth-p b:nth-of-type(6) { left: 82%; width: 14px; height: 14px; animation-duration: 10s; animation-delay: 5s;  --nx-x: -28px; }
.nx-auth-p b:nth-of-type(7) { left: 14%; width: 12px; height: 12px; animation-duration: 14s; animation-delay: 9s;  --nx-x: 26px; }
.nx-auth-p b:nth-of-type(8) { left: 74%; width: 20px; height: 20px; animation-duration: 12s; animation-delay: 11s; --nx-x: -34px; }

.nx-auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 36px; }
.nx-auth-brand img { width: 44px; height: 44px; border-radius: 11px; box-shadow: 0 6px 18px rgba(0, 0, 0, .4); }
.nx-auth-brand b { font-size: 20px; font-weight: 800; letter-spacing: 1px; }
.nx-auth-side h1 { margin: 0 0 14px; font-size: 38px; line-height: 1.25; font-weight: 800; }
.nx-auth-side h1 em {
    font-style: normal;
    background: var(--nx-grad);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.nx-auth-desc { margin: 0 0 30px; font-size: 15px; line-height: 1.9; color: rgba(255, 255, 255, .62); max-width: 420px; }
.nx-auth-feats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.nx-auth-feats li { display: flex; align-items: center; gap: 12px; font-size: 14.5px; color: rgba(255, 255, 255, .85); }
.nx-auth-feats li i {
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #fff;
    background: rgba(247, 99, 65, .22);
    border: 1px solid rgba(247, 99, 65, .4);
}
.nx-auth-feats li:nth-child(2) i { background: rgba(90, 124, 255, .2); border-color: rgba(90, 124, 255, .4); }
.nx-auth-feats li:nth-child(3) i { background: rgba(0, 196, 204, .18); border-color: rgba(0, 196, 204, .4); }
.nx-auth-side-bt { margin-top: 44px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 13px; color: rgba(255, 255, 255, .45); }
.nx-auth-side-bt b { color: #ffb088; font-size: 15px; }

/* ---- 右侧表单区 ---- */
.nx-auth-main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 48px 24px; background: linear-gradient(160deg, #fff8f4 0%, #fff 70%); }
.nx-auth-card {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border: 1px solid #f3e6df;
    border-radius: 20px;
    padding: 42px 38px 34px;
    box-shadow: 0 16px 44px rgba(31, 35, 41, .08);
}
.nx-auth-card h2 { margin: 0 0 8px; font-size: 24px; font-weight: 800; color: var(--nx-text); }
.nx-auth-sub { margin: 0 0 26px; font-size: 13.5px; color: var(--nx-text2); }
.nx-mbrand { display: none; }

/* ---- 表单字段 ---- */
.nx-field { position: relative; margin-bottom: 16px; }
.nx-field > .nx-fi { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font-size: 16px; color: #b8bfcc; pointer-events: none; transition: color .2s; z-index: 1; }
.nx-field input {
    width: 100%;
    box-sizing: border-box;
    height: 48px;
    padding: 0 14px 0 42px;
    border: 1px solid #e8e2de;
    border-radius: 12px;
    background: #fbfaf9;
    font-size: 14.5px;
    color: var(--nx-text);
    outline: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
}
.nx-field input::placeholder { color: #b8bfcc; }
.nx-field input:focus { border-color: var(--nx-primary); background: #fff; box-shadow: 0 0 0 4px rgba(247, 99, 65, .12); }
.nx-field:focus-within > .nx-fi { color: var(--nx-primary); }
/* 密码可见切换 */
.nx-eye {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    border: 0;
    background: none;
    cursor: pointer;
    color: #b8bfcc;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    padding: 0;
    transition: color .2s, background .2s;
}
.nx-eye:hover { color: var(--nx-primary); background: #fdf2ed; }
.nx-eye.on { color: var(--nx-primary); }
/* 验证码行 */
.nx-field-cap { display: flex; gap: 10px; align-items: center; }
.nx-field-cap input { flex: 1; min-width: 0; }
.nx-cap {
    flex: none;
    height: 48px;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e8e2de;
    background: #fff;
    cursor: pointer;
    display: flex;
}
.nx-cap img { height: 100%; width: auto; display: block; }
/* 邮箱验证码发送行 */
.nx-field-code { display: flex; gap: 10px; }
.nx-field-code input { flex: 1; min-width: 0; }
.nx-send {
    flex: none;
    height: 48px;
    margin: 0;
    padding: 0 18px;
    border: 0;
    border-radius: 12px;
    background: #fdf2ed;
    color: var(--nx-primary);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
    white-space: nowrap;
}
.nx-send:hover { background: var(--nx-grad); color: #fff; }
.nx-send:disabled { cursor: not-allowed; opacity: .7; }

/* ---- 主按钮 ---- */
.nx-auth-btn {
    width: 100%;
    height: 48px;
    margin-top: 6px;
    border: 0;
    border-radius: 12px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 6px;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(247, 99, 65, .35);
    transition: transform .2s, box-shadow .2s, filter .2s;
}
.nx-auth-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(247, 99, 65, .45); filter: brightness(1.03); }
/* ---- 底部链接 ---- */
.nx-auth-links { display: flex; justify-content: space-between; margin-top: 22px; font-size: 14px; }
.nx-auth-links a { color: var(--nx-primary); font-weight: 600; }
.nx-auth-links a:hover { text-decoration: underline; }
.nx-auth-copyright { margin-top: 26px; text-align: center; font-size: 12px; color: #c2c8d2; }

/* ---- 认证页响应式 ---- */
@media (max-width: 960px) {
    .nx-auth { flex-direction: column; }
    .nx-auth-side { display: none; }
    .nx-auth-main { padding: 34px 18px; }
    .nx-mbrand { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 22px; }
    .nx-mbrand img { width: 38px; height: 38px; border-radius: 9px; }
    .nx-mbrand b { font-size: 18px; font-weight: 800; color: var(--nx-text); }
    .nx-auth-card { padding: 32px 24px 26px; border-radius: 16px; }
    .nx-auth-card h2 { font-size: 21px; text-align: center; }
    .nx-auth-sub { text-align: center; }
    .nx-auth-links { justify-content: center; gap: 24px; }
}
@media (max-width: 480px) {
    .nx-auth-card { padding: 26px 18px 22px; }
    .nx-field input { height: 44px; font-size: 14px; }
    .nx-cap { height: 44px; }
    .nx-send { height: 44px; padding: 0 14px; font-size: 13px; }
    .nx-auth-btn { height: 44px; letter-spacing: 4px; }
    .nx-auth-links { font-size: 13px; }
}

/* =========================================================
   个人中心（nx-uc）
   ========================================================= */
.nx-uc-wrap { padding: 26px 0 60px; background: linear-gradient(180deg, #fff6f1 0%, #fafbfc 240px, #fafbfc 100%); min-height: 70vh; }
.nx-uc { display: grid; grid-template-columns: 280px 1fr; gap: 26px; align-items: start; }

/* ---- 侧栏用户卡 ---- */
.nx-uc-user {
    background: linear-gradient(150deg, #1c222f 0%, #242c3f 55%, #2b2437 100%);
    border-radius: 18px;
    padding: 30px 24px 24px;
    color: #fff;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(20, 23, 29, .25);
}
.nx-uc-user::before {
    content: '';
    position: absolute;
    top: -110px;
    left: 50%;
    transform: translateX(-50%);
    width: 320px;
    height: 240px;
    background: radial-gradient(closest-side, rgba(247, 99, 65, .3), transparent 72%);
    pointer-events: none;
}
.nx-uc-user > * { position: relative; }
.nx-uc-ava {
    position: relative;
    display: inline-block;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    padding: 3px;
    background: conic-gradient(var(--nx-primary), #ff9a56, var(--nx-primary));
}
.nx-uc-ava img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; background: #fff; display: block; }
.nx-uc-ava i {
    position: absolute;
    right: -2px;
    bottom: 2px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--nx-grad);
    color: #fff;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #242c3f;
    box-shadow: 0 3px 8px rgba(0, 0, 0, .3);
}
.nx-uc-name { margin-top: 14px; font-size: 19px; font-weight: 800; }
.nx-uc-vip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    color: #7a5a3a;
    background: linear-gradient(135deg, #ffe7b8, #ffc97a);
    border: 1px solid rgba(212, 160, 84, .5);
}
.nx-uc-vip i { font-size: 14px; }
.nx-uc-vip.free { color: #5d6772; background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .2); }
.nx-uc-viptime { margin-top: 12px; font-size: 12.5px; color: rgba(255, 255, 255, .5); }

/* ---- 侧栏导航 ---- */
.nx-uc-nav {
    margin-top: 20px;
    background: #fff;
    border: 1px solid #f0e6e0;
    border-radius: 16px;
    padding: 10px;
    box-shadow: 0 4px 16px rgba(31, 35, 41, .04);
}
.nx-uc-nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 11px;
    color: var(--nx-text);
    font-size: 14.5px;
    font-weight: 600;
    text-decoration: none;
    transition: .18s;
}
.nx-uc-nav a i { font-size: 17px; color: #a9b1bd; transition: .18s; }
.nx-uc-nav a:hover { background: #fdf2ed; color: var(--nx-primary); }
.nx-uc-nav a:hover i { color: var(--nx-primary); }
.nx-uc-nav a.on { background: var(--nx-grad); color: #fff; box-shadow: 0 6px 16px rgba(247, 99, 65, .32); }
.nx-uc-nav a.on i { color: #fff; }

/* ---- 内容区通用 ---- */
.nx-uc-main { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.nx-uc-card {
    background: #fff;
    border: 1px solid #f0e6e0;
    border-radius: 18px;
    padding: 28px 30px;
    box-shadow: 0 6px 22px rgba(31, 35, 41, .05);
}
.nx-uc-card h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 20px;
    font-size: 17px;
    font-weight: 800;
    color: var(--nx-text);
}
.nx-uc-card h3 i { color: var(--nx-primary); font-size: 18px; }
.nx-uc-card h3 em { font-style: normal; font-size: 11px; font-weight: 600; letter-spacing: 1.5px; color: #c2c8d2; margin-left: auto; }

/* 个人中心欢迎卡 */
.nx-uc-hello {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
.nx-uc-hello-info { display: flex; align-items: center; gap: 14px; }
.nx-uc-hello-info h4 { margin: 0; font-size: 19px; font-weight: 800; color: var(--nx-text); }
.nx-uc-hello-info h4 span { color: var(--nx-primary); }
.nx-uc-hello-info p { margin: 6px 0 0; font-size: 13px; color: var(--nx-text2); }
.nx-uc-hello-info p i { color: #a9b1bd; margin-right: 3px; }
.nx-uc-svip-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 26px;
    border-radius: 13px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(247, 99, 65, .35);
    transition: .2s;
}
.nx-uc-svip-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(247, 99, 65, .45); color: #fff; }

/* 特权网格 */
.nx-uc-priv { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.nx-uc-priv li {
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    padding: 18px 8px 14px;
    border-radius: 14px;
    background: #fafbfc;
    border: 1px solid #f0e6e0;
    transition: .2s;
}
.nx-uc-priv li:hover { border-color: #ffd2c2; background: #fff8f4; transform: translateY(-2px); }
.nx-uc-priv li i {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    background: rgba(247, 99, 65, .12);
    color: var(--nx-primary);
}
.nx-uc-priv li.off i { background: #f1f2f5; color: #b8bfcc; }
.nx-uc-priv li.off p { color: #b8bfcc; }
.nx-uc-priv li p { margin: 0; font-size: 12.5px; color: var(--nx-text); font-weight: 600; text-align: center; }

/* 客服卡 */
.nx-uc-kefu { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.nx-uc-kefu a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    background: #fafbfc;
    border: 1px solid #f0e6e0;
    text-decoration: none;
    transition: .2s;
}
.nx-uc-kefu a:hover { border-color: #ffd2c2; background: #fff8f4; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(247, 99, 65, .1); }
.nx-uc-kefu a i {
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #fff;
    background: linear-gradient(135deg, #12b7f5, #0d8ddb);
}
.nx-uc-kefu a:last-child i { background: linear-gradient(135deg, #ffb027, #ff8a00); }
.nx-uc-kefu a b { font-size: 14.5px; color: var(--nx-text); display: block; }
.nx-uc-kefu a p { margin: 3px 0 0; font-size: 12px; color: #97a0b0; }

/* 表单页（资料/密码/头像） */
.nx-uc-form { max-width: 560px; }
.nx-uc-form .nx-field { margin-bottom: 18px; }
.nx-uc-form .nx-field label {
    display: block;
    margin-bottom: 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--nx-text);
}
.nx-uc-form .nx-field textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 96px;
    padding: 12px 14px;
    border: 1px solid #e8e2de;
    border-radius: 12px;
    background: #fbfaf9;
    font-size: 14px;
    color: var(--nx-text);
    font-family: inherit;
    resize: vertical;
    outline: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
}
.nx-uc-form .nx-field textarea:focus { border-color: var(--nx-primary); background: #fff; box-shadow: 0 0 0 4px rgba(247, 99, 65, .12); }
.nx-uc-save {
    height: 46px;
    padding: 0 44px;
    border: 0;
    border-radius: 12px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 4px;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(247, 99, 65, .32);
    transition: .2s;
}
.nx-uc-save:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(247, 99, 65, .42); }

/* 充值中心（套餐卡）——显式覆盖旧 .p_li a 的 width/float/margin 污染 */
.nx-uc-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 20px; }
.nx-uc-plans .aui-total { grid-column: 1 / -1; margin: 0; padding: 0; text-align: center; font-size: 14.5px; }
.nx-uc-plans .aui-total span { display: inline; padding: 0; color: var(--nx-primary); font-weight: 800; }
.nx-uc-plans .nx-plan {
    width: auto;
    float: none;
    margin: 0;
    display: flex;
    position: relative;
    flex-direction: column;
    padding: 26px 22px 22px;
    border-radius: 18px;
    border: 2px solid #eee4de;
    background: #fff;
    cursor: pointer;
    transition: .2s;
    overflow: hidden;
    box-sizing: border-box;
}
.nx-uc-plans .nx-plan:hover { border-color: #ffb088; transform: translateY(-3px); box-shadow: 0 14px 30px rgba(247, 99, 65, .13); }
.nx-uc-plans .nx-plan.on { border-color: var(--nx-primary); box-shadow: 0 14px 30px rgba(247, 99, 65, .18); }
.nx-uc-plans .nx-plan .nx-plan-tag {
    position: absolute;
    top: 14px;
    right: -30px;
    padding: 3px 34px;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    background: var(--nx-grad);
    transform: rotate(45deg);
}
.nx-plan h4 { margin: 0; font-size: 16px; font-weight: 800; color: var(--nx-text); }
.nx-plan .nx-plan-price { margin: 14px 0 4px; font-size: 34px; font-weight: 800; color: var(--nx-primary); line-height: 1; }
.nx-plan .nx-plan-price small { font-size: 14px; font-weight: 600; color: #97a0b0; margin-left: 2px; }
.nx-plan .nx-plan-sub { margin: 0 0 14px; font-size: 12.5px; color: #97a0b0; }
.nx-plan ul { list-style: none; margin: 0; padding: 16px 0 0; border-top: 1px dashed #eee4de; display: flex; flex-direction: column; gap: 8px; }
.nx-plan ul li { display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--nx-text); }
.nx-plan ul li i { font-size: 14px; color: #4ade80; }
.nx-plan .nx-plan-radio {
    position: absolute;
    top: 18px;
    left: 18px;
    width: 18px;
    height: 18px;
    border: 2px solid #ddd3cd;
    border-radius: 50%;
    transition: .2s;
}
.nx-plan.on .nx-plan-radio { border-color: var(--nx-primary); background: radial-gradient(circle, var(--nx-primary) 55%, #fff 60%); }

/* 支付方式 */
.nx-pay { display: flex; gap: 14px; }
.nx-pay label {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 18px;
    border-radius: 14px;
    border: 2px solid #eee4de;
    cursor: pointer;
    transition: .2s;
}
.nx-pay label:hover { border-color: #ffb088; }
.nx-pay label.on { border-color: var(--nx-primary); background: #fff8f4; }
.nx-pay label .nx-pay-info { display: flex; align-items: center; gap: 12px; }
.nx-pay label .nx-pay-info i { font-size: 26px; }
.nx-pay label .wx { color: #09bb07; font-size: 28px; }
.nx-pay label .nx-zfb { flex: none; display: inline-flex; align-items: center; }
.nx-pay label b { font-size: 14.5px; color: var(--nx-text); }
.nx-pay label input { accent-color: var(--nx-primary); width: 17px; height: 17px; }

/* 邀请推广 */
.nx-inv-hero {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 12px;
    align-items: center;
    padding: 22px 26px;
    border-radius: 16px;
    background: linear-gradient(135deg, #1c222f 0%, #242c3f 55%, #2b2437 100%);
    color: #fff;
}
.nx-inv-hero .nx-inv-num { display: flex; flex-direction: column; gap: 4px; }
.nx-inv-hero .nx-inv-num span { font-size: 26px; font-weight: 800; color: #ffb088; }
.nx-inv-hero .nx-inv-num p { margin: 0; font-size: 12.5px; color: rgba(255, 255, 255, .55); }
.nx-inv-btn {
    justify-self: end;
    padding: 11px 24px;
    border: 0;
    border-radius: 12px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(247, 99, 65, .35);
    transition: .2s;
}
.nx-inv-btn:hover { transform: translateY(-2px); }
.nx-inv-url {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 13px;
    background: #fafbfc;
    border: 1px dashed #e3d5cd;
}
.nx-inv-url code {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    color: var(--nx-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nx-inv-url button { flex: none; }
.nx-inv-url .nx-copy {
    height: 38px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    background: var(--nx-grad);
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
}
.nx-inv-url .nx-copy:hover { filter: brightness(1.05); }
.nx-inv-tip { margin: 10px 0 0; font-size: 12.5px; color: #97a0b0; }
.nx-inv-tip b { color: var(--nx-primary); }

/* 表格 */
.nx-uc-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.nx-uc-table th {
    text-align: left;
    padding: 11px 14px;
    font-size: 12.5px;
    font-weight: 700;
    color: #97a0b0;
    background: #fafbfc;
    border-bottom: 1px solid #f0e6e0;
    white-space: nowrap;
}
.nx-uc-table td { padding: 13px 14px; color: var(--nx-text); border-bottom: 1px solid #f5efeb; }
.nx-uc-table tr:hover td { background: #fff8f4; }
.nx-uc-table .nx-tag {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    color: var(--nx-primary);
    background: rgba(247, 99, 65, .1);
}
.nx-uc-empty { padding: 34px 0; text-align: center; color: #b8bfcc; font-size: 13.5px; }

/* 分页保持 pagination 样式（旧模板同款类名） */

/* 头像上传 */
.nx-ava-box { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.nx-ava-preview {
    position: relative;
    width: 128px;
    height: 128px;
    border-radius: 20px;
    overflow: hidden;
    border: 3px solid #ffe3d6;
    background: #fafbfc;
    flex: none;
}
.nx-ava-preview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-ava-preview span {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 5px 0;
    font-size: 11px;
    color: #fff;
    text-align: center;
    background: rgba(0, 0, 0, .45);
}
.nx-ava-act { display: flex; flex-direction: column; gap: 12px; }
.nx-ava-act .nx-uc-save { letter-spacing: 2px; padding: 0 30px; }
.nx-ava-btn2 {
    height: 46px;
    padding: 0 30px;
    border: 1px solid #e8e2de;
    border-radius: 12px;
    background: #fff;
    color: var(--nx-text);
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.nx-ava-btn2:hover { border-color: var(--nx-primary); color: var(--nx-primary); background: #fff8f4; }
.nx-ava-tip { font-size: 12.5px; color: #97a0b0; display: flex; align-items: center; gap: 6px; }
.nx-ava-tip i { color: var(--nx-primary); }

/* 提现弹窗页（iframe 内） */
.nx-tx { padding: 34px 38px; max-width: 520px; margin: 0 auto; }

/* 响应式 */
@media (max-width: 1100px) {
    .nx-uc-priv { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 960px) {
    .nx-uc { grid-template-columns: 1fr; }
    .nx-uc-plans { grid-template-columns: 1fr; }
    .nx-inv-hero { grid-template-columns: 1fr; }
    .nx-inv-btn { justify-self: start; }
}
@media (max-width: 600px) {
    .nx-uc-card { padding: 22px 18px; }
    .nx-uc-kefu { grid-template-columns: 1fr; }
    .nx-inv-hero { padding: 18px; }
    .nx-inv-hero .nx-inv-num span { font-size: 22px; }
    .nx-pay { flex-direction: column; }
}

/* ==================== 搜索首页（soindex） ==================== */
.nx-soh-inner { position: relative; z-index: 1; padding: 76px 0 92px; text-align: center; box-sizing: border-box; }
.nx-soh-title { font-size: 38px; line-height: 1.3; font-weight: 800; margin: 0; letter-spacing: .5px; }
.nx-soh-title em { font-style: normal; background: var(--nx-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nx-soh-sub { margin: 14px 0 0; color: var(--nx-text2); font-size: 15px; }
.nx-soh-search { margin: 34px auto 0; max-width: 680px; }
.nx-soh-hot { justify-content: center; margin-top: 20px; }
.nx-soh-inner .nx-feats { justify-content: center; }

/* ==================== 搜索结果页（search） ==================== */
.nx-sr-bar { background: #fff; border-bottom: 1px solid var(--nx-line); padding: 22px 0 18px; }
.nx-sr-form { display: flex; align-items: center; max-width: 680px; background: #fafbfc; border: 1px solid var(--nx-line); border-radius: 999px; overflow: hidden; transition: all .2s; }
.nx-sr-form:focus-within { background: #fff; border-color: #ffd2c2; box-shadow: 0 0 0 3px rgba(247, 99, 65, .1); }
.nx-sr-form > .layui-icon { margin-left: 18px; color: var(--nx-text3); font-size: 16px; flex: none; }
.nx-sr-form input { flex: 1; min-width: 0; height: 46px; border: 0; outline: 0; background: transparent; padding: 0 14px 0 10px; font-size: 14.5px; color: var(--nx-text); }
.nx-sr-form input::placeholder { color: #b4bac5; }
.nx-sr-form button { flex: none; height: 46px; padding: 0 34px; border: 0; background: var(--nx-grad); color: #fff; font-size: 14px; font-weight: 600; letter-spacing: 2px; padding-left: 34px; cursor: pointer; transition: filter .2s; }
.nx-sr-form button:hover { filter: brightness(1.06); }
.nx-sr-hot { margin-top: 12px; font-size: 12.5px; }

.nx-sr-main { padding-bottom: 70px; min-height: 50vh; }
.nx-sr-stat { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; margin: 26px 0 18px; }
.nx-sr-stat h1 { font-size: 22px; font-weight: 700; margin: 0; }
.nx-sr-stat p { margin: 0; font-size: 13px; color: var(--nx-text3); }
.nx-sr-stat em { font-style: normal; color: var(--nx-primary); font-weight: 800; font-size: 15px; }

/* 结果卡片（横向） */
.nx-sr-item {
    display: flex;
    gap: 20px;
    background: #fff;
    border: 1px solid var(--nx-line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--nx-shadow);
    transition: transform .25s, box-shadow .25s, border-color .25s;
}
.nx-sr-item + .nx-sr-item { margin-top: 16px; }
.nx-sr-item:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(247, 99, 65, .13); border-color: #ffd2c2; }
.nx-sr-item .cv { position: relative; flex: none; width: 264px; aspect-ratio: 3 / 2; background: #f2f3f5; overflow: hidden; }
.nx-sr-item .cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.nx-sr-item:hover .cv img { transform: scale(1.05); }
.nx-sr-item .cv .pc { position: absolute; left: 10px; top: 10px; background: rgba(20, 24, 34, .6); color: #fff; font-size: 11px; font-weight: 600; line-height: 1; padding: 4px 8px; border-radius: 6px; backdrop-filter: blur(4px); }
.nx-sr-item .bd { flex: 1; min-width: 0; padding: 16px 20px 14px 0; display: flex; flex-direction: column; }
.nx-sr-item .tt { font-size: 17px; font-weight: 700; color: var(--nx-text); margin: 0 0 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-sr-item:hover .tt { color: var(--nx-primary); }
.nx-sr-item .meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12.5px; color: var(--nx-text3); }
.nx-sr-item .meta span { display: inline-flex; align-items: center; gap: 4px; }
.nx-sr-item .meta i { font-size: 13px; color: #b4bac5; }
.nx-sr-item .desc { margin: 10px 0 0; font-size: 13px; line-height: 1.7; color: var(--nx-text2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nx-sr-item .ft { margin-top: auto; padding-top: 12px; display: flex; align-items: center; gap: 18px; }
.nx-sr-item .ft .hits, .nx-sr-item .ft .dl { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--nx-text3); }
.nx-sr-item .ft .hits i { color: #ff9a3c; font-size: 14px; }
.nx-sr-item .ft .dl i { color: #3d8bff; font-size: 14px; }
.nx-sr-item .ft .go { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; height: 36px; padding: 0 22px; border-radius: 999px; background: var(--nx-grad); color: #fff; font-size: 13px; font-weight: 600; box-shadow: 0 4px 12px rgba(247, 99, 65, .3); transition: filter .2s; }
.nx-sr-item:hover .ft .go { filter: brightness(1.06); }

/* 空结果 */
.nx-sr-empty { background: #fff; border: 1px solid var(--nx-line); border-radius: 14px; box-shadow: var(--nx-shadow); padding: 70px 24px 64px; text-align: center; }
.nx-sr-empty > .layui-icon { font-size: 64px; color: #d8dde5; }
.nx-sr-empty h1 { font-size: 21px; font-weight: 700; margin: 18px 0 0; color: var(--nx-text); }
.nx-sr-empty p { color: var(--nx-text3); margin: 10px 0 0; font-size: 14px; }
.nx-sr-empty-kw { margin-top: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.nx-sr-empty-kw a { color: var(--nx-text2); background: #fff; border: 1px solid var(--nx-line); border-radius: 999px; padding: 6px 16px; font-size: 13px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: all .2s; }
.nx-sr-empty-kw a:hover { color: var(--nx-primary); border-color: #f76341; background: #fff6f2; }
.nx-sr-empty-kw a:first-of-type { color: var(--nx-primary); border-color: #ffd2c2; background: #fff3ec; font-weight: 600; }
.nx-sr-empty-sub { margin-top: 30px; padding-top: 26px; border-top: 1px dashed var(--nx-line); font-size: 13px; color: var(--nx-text3); display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.nx-sr-empty-btn { height: 38px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--nx-grad); color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; box-shadow: 0 4px 12px rgba(247, 99, 65, .3); transition: filter .2s, transform .2s; }
.nx-sr-empty-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }

/* 分页（配合 cmf 默认 laypage 结构） */
.nx-page { margin: 32px 0 8px; text-align: center; }
.nx-page ul, .nx-page .pagination { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.nx-page a { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 13px; border-radius: 9px; border: 1px solid var(--nx-line); background: #fff; color: var(--nx-text2); font-size: 14px; box-shadow: var(--nx-shadow); transition: all .2s; }
.nx-page a:hover { color: var(--nx-primary); border-color: #ffc9b5; }
.nx-page a.layui-disabled { opacity: .45; pointer-events: none; }
.nx-page .layui-laypage-curr { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 13px; margin: 0; border-radius: 9px; background: var(--nx-grad); color: #fff; font-size: 14px; font-weight: 700; box-shadow: 0 4px 12px rgba(247, 99, 65, .3); }
.nx-page .layui-laypage-curr .layui-laypage-em { display: none; }

/* 搜索页响应式 */
@media (max-width: 960px) {
    .nx-soh-inner { padding: 46px 0 58px; }
    .nx-soh-title { font-size: 26px; }
    .nx-soh-sub { font-size: 13px; }
    .nx-soh-search { margin-top: 24px; }
    .nx-sr-item { flex-direction: column; }
    .nx-sr-item .cv { width: 100%; }
    .nx-sr-item .bd { padding: 14px 16px 16px; }
    .nx-sr-item .tt { white-space: normal; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
    .nx-sr-item .ft { gap: 12px; }
    .nx-sr-item .ft .hits, .nx-sr-item .ft .dl { display: none; }
    .nx-sr-item .ft .go { width: 100%; justify-content: center; margin-left: 0; }
    .nx-sr-stat h1 { font-size: 18px; }
}
@media (max-width: 600px) {
    .nx-soh-inner { padding: 34px 0 44px; }
    .nx-soh-title { font-size: 22px; }
    .nx-sr-bar { padding: 16px 0 14px; }
    .nx-sr-form input { height: 42px; font-size: 14px; }
    .nx-sr-form button { height: 42px; padding: 0 24px; padding-left: 24px; letter-spacing: 1px; }
    .nx-sr-hot a { max-width: 120px; }
    .nx-sr-empty { padding: 46px 16px 40px; }
    .nx-sr-empty > .layui-icon { font-size: 48px; }
    .nx-sr-empty h1 { font-size: 17px; }
    .nx-page a, .nx-page .layui-laypage-curr { min-width: 34px; height: 34px; }
}

/* ==================== 搜索首页（soindex 全新设计，nx-si- 前缀） ==================== */
/* 聚焦区：米白底 + 网点纹理 + 橙色装饰圆环 */
.nx-si-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(rgba(247, 99, 65, .07) 1px, transparent 1px),
        linear-gradient(180deg, #fdf9f5 0%, #faf6f1 100%);
    background-size: 26px 26px, 100% 100%;
    border-bottom: 1px solid #f3e9e2;
}
.nx-si-deco { position: absolute; border-radius: 50%; pointer-events: none; }
.nx-si-deco.d1 {
    width: 380px; height: 380px; right: -110px; top: -170px;
    border: 60px solid rgba(247, 99, 65, .05);
}
.nx-si-deco.d2 {
    width: 260px; height: 260px; left: -90px; bottom: -150px;
    background: radial-gradient(circle, rgba(101, 132, 255, .07), transparent 70%);
}
.nx-si-inner { position: relative; z-index: 1; padding: 84px 0 66px; text-align: center; box-sizing: border-box; }
.nx-si-kicker {
    display: inline-flex; align-items: center; gap: 7px; margin: 0;
    padding: 6px 16px; border-radius: 999px;
    border: 1px solid #ffd2c2; background: #fff;
    color: var(--nx-primary); font-size: 12px; font-weight: 700; letter-spacing: 3px;
}
.nx-si-title {
    margin: 20px 0 0; font-size: 44px; line-height: 1.25; font-weight: 800; letter-spacing: 2px;
    color: var(--nx-text);
}
.nx-si-title em {
    font-style: normal;
    background: var(--nx-grad);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.nx-si-sub { margin: 14px 0 0; color: var(--nx-text3); font-size: 14.5px; letter-spacing: 1px; }

/* 大搜索框（卡片式，区别于首页胶囊） */
.nx-si-form {
    display: flex; align-items: center;
    max-width: 700px; margin: 36px auto 0;
    background: #fff; border: 2px solid var(--nx-line);
    border-radius: 18px; box-shadow: 0 16px 40px rgba(247, 99, 65, .09);
    overflow: hidden; transition: border-color .2s, box-shadow .2s;
}
.nx-si-form:focus-within {
    border-color: var(--nx-primary);
    box-shadow: 0 16px 46px rgba(247, 99, 65, .18);
}
.nx-si-form > .layui-icon { margin: 0 0 0 20px; font-size: 20px; color: #c2c8d2; flex: none; transition: color .2s; }
.nx-si-form:focus-within > .layui-icon { color: var(--nx-primary); }
.nx-si-form input {
    flex: 1; min-width: 0; height: 62px; border: 0; outline: 0; background: transparent;
    padding: 0 16px 0 12px; font-size: 16px; color: var(--nx-text);
}
.nx-si-form input::placeholder { color: #b4bac5; }
.nx-si-form button {
    flex: none; height: 62px; padding: 0 40px; margin: 6px; border: 0; border-radius: 13px;
    background: var(--nx-grad); color: #fff; font-size: 16px; font-weight: 700; letter-spacing: 6px; padding-left: 46px;
    cursor: pointer; box-shadow: 0 6px 16px rgba(247, 99, 65, .32); transition: filter .2s;
}
.nx-si-form button:hover { filter: brightness(1.06); }

/* 热搜榜（名次徽章形式） */
.nx-si-rank { margin: 30px auto 0; max-width: 860px; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.nx-si-rank .rk {
    display: inline-flex; align-items: center; gap: 8px;
    height: 34px; padding: 0 14px 0 6px; border-radius: 999px;
    background: #fff; border: 1px solid var(--nx-line);
    color: var(--nx-text2); font-size: 13px;
    max-width: 190px; overflow: hidden; transition: all .2s;
}
.nx-si-rank .rk i {
    flex: none; width: 22px; height: 22px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #f2f4f7; color: #97a0b0; font-style: normal; font-size: 12px; font-weight: 700;
}
.nx-si-rank .rk span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-si-rank .rk.top i { background: var(--nx-grad); color: #fff; }
.nx-si-rank .rk.top { border-color: #ffd2c2; color: var(--nx-primary); font-weight: 600; }
.nx-si-rank .rk:hover { border-color: #f76341; background: #fff6f2; transform: translateY(-2px); }

/* 分类速览磁贴 */
.nx-si-cats {
    margin-top: 34px; padding: 0;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
    background: none; border: 0; box-shadow: none;
}
.nx-si-cat {
    display: flex; align-items: center; gap: 4px;
    background: #fff; border: 1px solid var(--nx-line); border-radius: 13px;
    padding: 16px 18px; box-shadow: var(--nx-shadow);
    transition: all .2s;
}
.nx-si-cat strong { font-size: 15px; color: var(--nx-text); font-weight: 700; }
.nx-si-cat span { margin-left: auto; font-size: 12px; color: var(--nx-text3); }
.nx-si-cat > .layui-icon { font-size: 13px; color: #c2c8d2; transition: all .2s; }
.nx-si-cat:hover { border-color: #ffc9b5; transform: translateY(-3px); box-shadow: 0 10px 24px rgba(247, 99, 65, .12); }
.nx-si-cat:hover strong { color: var(--nx-primary); }
.nx-si-cat:hover > .layui-icon { color: var(--nx-primary); transform: translateX(3px); }

/* 双榜单（横向榜单条） */
.nx-si-boards { margin-top: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; padding-bottom: 60px; }
.nx-si-board { background: #fff; border: 1px solid var(--nx-line); border-radius: 15px; box-shadow: var(--nx-shadow); overflow: hidden; }
.nx-si-bhead {
    display: flex; align-items: center; justify-content: space-between;
    padding: 17px 20px; border-bottom: 1px solid var(--nx-line);
    background: linear-gradient(180deg, #fffaf6, #fff);
}
.nx-si-bhead h2 { margin: 0; font-size: 17px; font-weight: 800; color: var(--nx-text); display: flex; align-items: center; gap: 8px; }
.nx-si-bhead h2 i { color: var(--nx-primary); font-size: 18px; }
.nx-si-bhead .more { display: inline-flex; align-items: center; gap: 3px; font-size: 12.5px; color: var(--nx-text3); transition: color .2s; }
.nx-si-bhead .more:hover { color: var(--nx-primary); }
.nx-si-bhead .more i { font-size: 12px; }
.nx-si-list { margin: 0; padding: 8px 10px; list-style: none; counter-reset: nil; }
.nx-si-list li {
    display: flex; align-items: center; gap: 12px;
    padding: 9px 10px; border-radius: 11px; transition: background .18s;
}
.nx-si-list li:hover { background: #fff8f4; }
.nx-si-list .no {
    flex: none; width: 24px; height: 24px; border-radius: 7px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #f2f4f7; color: #97a0b0; font-style: normal; font-size: 12.5px; font-weight: 800;
}
.nx-si-list .no.hot { background: var(--nx-grad); color: #fff; box-shadow: 0 3px 8px rgba(247, 99, 65, .3); }
.nx-si-list .th { flex: none; width: 66px; aspect-ratio: 3 / 2; border-radius: 8px; overflow: hidden; background: #f2f3f5; }
.nx-si-list .th img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.nx-si-list li:hover .th img { transform: scale(1.08); }
.nx-si-list .inf { flex: 1; min-width: 0; }
.nx-si-list .nm {
    display: block; font-size: 14px; font-weight: 600; color: var(--nx-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nx-si-list li:hover .nm { color: var(--nx-primary); }
.nx-si-list .dt { display: block; margin-top: 3px; font-size: 12px; color: var(--nx-text3); }
.nx-si-list .go { flex: none; font-size: 15px; color: #d8dde5; transition: all .2s; }
.nx-si-list li:hover .go { color: var(--nx-primary); transform: translateX(2px); }

/* 搜索首页响应式 */
@media (max-width: 1100px) {
    .nx-si-cats { grid-template-columns: repeat(2, 1fr); }
    .nx-si-boards { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
    .nx-si-inner { padding: 56px 0 46px; }
    .nx-si-title { font-size: 32px; letter-spacing: 1px; }
    .nx-si-sub { font-size: 13px; }
    .nx-si-form input { height: 54px; font-size: 15px; }
    .nx-si-form button { height: 54px; font-size: 15px; padding: 0 26px 0 30px; letter-spacing: 3px; }
    .nx-si-form > .layui-icon { margin-left: 14px; font-size: 17px; }
    .nx-si-rank { gap: 8px; }
}
@media (max-width: 600px) {
    .nx-si-inner { padding: 40px 0 34px; }
    .nx-si-title { font-size: 25px; }
    .nx-si-kicker { letter-spacing: 2px; font-size: 11px; }
    .nx-si-form { border-radius: 14px; }
    .nx-si-form input { height: 48px; padding: 0 10px 0 8px; font-size: 14px; }
    .nx-si-form button { height: 48px; margin: 4px; padding: 0 16px 0 20px; font-size: 14px; letter-spacing: 2px; border-radius: 10px; }
    .nx-si-rank .rk { max-width: 140px; height: 32px; font-size: 12.5px; }
    .nx-si-cats { grid-template-columns: 1fr; gap: 10px; margin-top: 26px; }
    .nx-si-cat { padding: 13px 16px; }
    .nx-si-boards { margin-top: 30px; }
    .nx-si-list .dt { font-size: 11px; }
}

/* ==================== 文章列表页（list / list-score / list-2，nx-ln- 前缀） ==================== */
.nx-ln { padding-bottom: 60px; min-height: 60vh; }
.nx-ln-crumbs {
    display: flex; align-items: center; gap: 6px;
    padding: 18px 0 6px; font-size: 13px; color: var(--nx-text3);
}
.nx-ln-crumbs a { color: var(--nx-text3); transition: color .2s; }
.nx-ln-crumbs a:hover { color: var(--nx-primary); }
.nx-ln-crumbs .layui-icon { font-size: 12px; color: #c2c8d2; }
.nx-ln-crumbs span { color: var(--nx-text); font-weight: 600; }

.nx-ln-body { display: grid; grid-template-columns: 1fr 330px; gap: 24px; align-items: start; margin-top: 12px; }
.nx-ln-main { min-width: 0; }

/* 标题头 */
.nx-ln-head { display: flex; align-items: baseline; gap: 10px; padding: 18px 22px; background: #fff; border: 1px solid var(--nx-line); border-radius: 15px 15px 0 0; border-bottom: 0; }
.nx-ln-head h1 { margin: 0; font-size: 21px; font-weight: 800; color: var(--nx-text); display: flex; align-items: center; gap: 10px; }
.nx-ln-head h1::before { content: ''; width: 5px; height: 20px; border-radius: 3px; background: var(--nx-grad); }
.nx-ln-head span { font-size: 11px; font-weight: 700; letter-spacing: 2px; color: #c2c8d2; }

/* 新闻/评测卡片（横向，与主列表头相连） */
.nx-ln-arts { background: #fff; border: 1px solid var(--nx-line); border-top: 0; border-radius: 0 0 15px 15px; padding: 18px 22px 22px; }
.nx-ln-art {
    display: flex; gap: 18px; padding: 16px 14px; border-radius: 13px;
    transition: background .2s;
}
.nx-ln-art:hover { background: #fff8f4; }
.nx-ln-art + .nx-ln-art { margin-top: 4px; border-top: 1px dashed #f0ece9; border-radius: 13px 13px 0 0; }
.nx-ln-art .cv { position: relative; flex: none; width: 216px; aspect-ratio: 16 / 10; border-radius: 10px; overflow: hidden; background: #f2f3f5; }
.nx-ln-art .cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.nx-ln-art:hover .cv img { transform: scale(1.06); }
.nx-ln-art .bd { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nx-ln-art .tt {
    margin: 2px 0 0; font-size: 16.5px; font-weight: 700; line-height: 1.5; color: var(--nx-text);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    transition: color .2s;
}
.nx-ln-art:hover .tt { color: var(--nx-primary); }
.nx-ln-art .desc {
    margin: 8px 0 0; font-size: 13px; line-height: 1.75; color: var(--nx-text3);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.nx-ln-art .dt { margin-top: auto; padding-top: 10px; display: flex; align-items: center; gap: 5px; font-size: 12px; color: #b4bac5; }
.nx-ln-art .dt .layui-icon { font-size: 13px; }

/* 评测评分角标 */
.nx-ln-art .sc {
    position: absolute; right: 10px; bottom: 10px;
    display: inline-flex; align-items: baseline; gap: 2px;
    padding: 5px 12px 5px 10px; border-radius: 999px;
    background: rgba(20, 24, 34, .62); backdrop-filter: blur(6px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .18);
}
.nx-ln-art .sc b { font-size: 17px; font-weight: 800; color: #ffb54d; line-height: 1; }
.nx-ln-art .sc i { font-style: normal; font-size: 10.5px; color: rgba(255, 255, 255, .75); }
.nx-ln-art .cv:hover .sc { background: rgba(20, 24, 34, .78); }

/* 攻略/Faq 紧凑列表（两列） */
.nx-ln-faq {
    background: #fff; border: 1px solid var(--nx-line); border-top: 0;
    border-radius: 0 0 15px 15px; padding: 16px 20px 20px;
    display: grid; grid-template-columns: 1fr 1fr; column-gap: 26px;
}
.nx-ln-fitem {
    display: flex; align-items: center; gap: 8px;
    padding: 11px 10px; border-bottom: 1px dashed #f0ece9; border-radius: 8px;
    transition: background .18s;
}
.nx-ln-fitem:hover { background: #fff8f4; }
.nx-ln-fitem > .layui-icon { flex: none; font-size: 15px; color: #d8dde5; transition: color .2s; }
.nx-ln-fitem:hover > .layui-icon { color: var(--nx-primary); }
.nx-ln-fitem .t {
    flex: 1; min-width: 0; font-size: 14px; color: var(--nx-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    transition: color .2s;
}
.nx-ln-fitem:hover .t { color: var(--nx-primary); }
.nx-ln-fitem .d { flex: none; font-size: 12px; color: #b4bac5; }

/* 侧栏 */
.nx-ln-side { min-width: 0; }
.nx-ln-side .nx-si-board { position: sticky; top: 84px; }

/* 分页间距 */
.nx-ln .nx-page { margin-top: 30px; }

/* 文章列表页响应式 */
@media (max-width: 1100px) {
    .nx-ln-body { grid-template-columns: 1fr; }
    .nx-ln-side .nx-si-board { position: static; }
    .nx-ln-faq { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .nx-ln-art { flex-direction: column; gap: 12px; padding: 14px 12px; }
    .nx-ln-art .cv { width: 100%; }
    .nx-ln-art .tt { font-size: 15px; }
    .nx-ln-arts { padding: 12px 12px 16px; }
    .nx-ln-head { padding: 14px 16px; }
    .nx-ln-head h1 { font-size: 18px; }
    .nx-ln-fitem .d { display: none; }
}

/* ==================== 文章详情页（article / score / article-2 / article-faq，nx-ar- 前缀） ==================== */
.nx-ar { padding-bottom: 60px; min-height: 60vh; }
.nx-ar-body { display: grid; grid-template-columns: 1fr 330px; gap: 24px; align-items: start; margin-top: 12px; }
.nx-ar-main { min-width: 0; }
.nx-ar-side { min-width: 0; }

/* 文章主卡片 */
.nx-ar-card {
    background: #fff; border: 1px solid var(--nx-line); border-radius: 15px;
    box-shadow: var(--nx-shadow); padding: 34px 38px 30px; box-sizing: border-box;
}
.nx-ar-title {
    margin: 0; font-size: 26px; line-height: 1.5; font-weight: 800;
    color: var(--nx-text); letter-spacing: .3px;
}
.nx-ar-meta {
    display: flex; flex-wrap: wrap; gap: 8px 20px;
    margin: 16px 0 0; padding: 14px 0;
    border-top: 1px solid var(--nx-line); border-bottom: 1px solid var(--nx-line);
    font-size: 12.5px; color: var(--nx-text3);
}
.nx-ar-meta span { display: inline-flex; align-items: center; gap: 5px; }
.nx-ar-meta i { font-size: 13px; color: #b4bac5; }

/* 评测头图 */
.nx-ar-cover { margin: -34px -38px 24px; border-radius: 15px 15px 0 0; overflow: hidden; aspect-ratio: 16 / 8; background: #f2f3f5; }
.nx-ar-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 正文排版 */
.nx-ar-content { margin-top: 22px; font-size: 15.5px; line-height: 1.95; color: #333a45; word-break: break-word; }
.nx-ar-content p { margin: 0 0 16px; }
.nx-ar-content img { max-width: 100%; height: auto; border-radius: 10px; margin: 6px 0; display: block; }
.nx-ar-content h2, .nx-ar-content h3, .nx-ar-content h4 { margin: 26px 0 14px; font-weight: 700; color: var(--nx-text); line-height: 1.5; }
.nx-ar-content h2 { font-size: 20px; padding-left: 12px; border-left: 4px solid var(--nx-primary); }
.nx-ar-content h3 { font-size: 17.5px; }
.nx-ar-content a { color: var(--nx-primary); text-decoration: none; border-bottom: 1px dashed #ffc9b5; }
.nx-ar-content a:hover { color: #f76341; }
.nx-ar-content ul, .nx-ar-content ol { padding-left: 22px; margin: 0 0 16px; }
.nx-ar-content li { margin-bottom: 6px; }
.nx-ar-content blockquote {
    margin: 18px 0; padding: 12px 18px; border-radius: 0 10px 10px 0;
    border-left: 4px solid var(--nx-primary); background: #fff8f4; color: var(--nx-text2);
}
.nx-ar-content table { border-collapse: collapse; margin: 16px 0; width: 100%; }
.nx-ar-content td, .nx-ar-content th { border: 1px solid var(--nx-line); padding: 8px 12px; font-size: 14px; }
.nx-ar-content th { background: #fafbfc; font-weight: 700; }
.nx-ar-content strong { color: var(--nx-text); }

/* 评测评分印章 */
.nx-ar-score {
    margin-top: 30px; padding: 22px 26px;
    display: flex; align-items: center; gap: 22px;
    background: linear-gradient(135deg, #fff6f0, #fffdfa);
    border: 1px solid #ffe3d3; border-radius: 15px;
}
.nx-ar-score .sc-ring {
    flex: none; width: 92px; height: 92px; border-radius: 50%;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: conic-gradient(var(--nx-primary) calc(var(--pct, 70) * 1%), #ffe9de 0);
    box-shadow: 0 6px 18px rgba(247, 99, 65, .25);
}
.nx-ar-score .sc-ring::before { content: ''; position: absolute; }
.nx-ar-score .sc-ring { position: relative; }
.nx-ar-score .sc-ring b { font-size: 30px; font-weight: 800; color: var(--nx-primary); line-height: 1; }
.nx-ar-score .sc-ring i { font-style: normal; font-size: 11px; color: #b4bac5; margin-top: 4px; }
.nx-ar-score .sc-txt strong { display: block; font-size: 16px; font-weight: 800; color: var(--nx-text); }
.nx-ar-score .sc-txt p { margin: 6px 0 0; font-size: 13px; color: var(--nx-text3); }

/* FAQ 问答形式 */
.nx-ar-faq .nx-ar-q { display: flex; gap: 14px; align-items: flex-start; }
.nx-ar-faq .q, .nx-ar-faq .a {
    flex: none; width: 36px; height: 36px; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 17px; font-weight: 800;
}
.nx-ar-faq .q { background: var(--nx-grad); color: #fff; box-shadow: 0 4px 10px rgba(247, 99, 65, .3); }
.nx-ar-faq .a { background: #eef4ff; color: #3d8bff; margin-top: 2px; }
.nx-ar-faq .nx-ar-q .nx-ar-title { font-size: 22px; line-height: 1.5; padding-top: 2px; }
.nx-ar-faq .nx-ar-answer { display: flex; gap: 14px; margin-top: 8px; }
.nx-ar-faq .nx-ar-answer .nx-ar-content { flex: 1; min-width: 0; margin-top: 0; }

/* 上下篇 */
.nx-ar-pn { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--nx-line); display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nx-ar-pn a {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 16px; border-radius: 12px;
    background: #fafbfc; border: 1px solid var(--nx-line);
    transition: all .2s; min-width: 0;
}
.nx-ar-pn a:hover { border-color: #ffc9b5; background: #fff8f4; }
.nx-ar-pn .layui-icon { flex: none; font-size: 16px; color: #b4bac5; }
.nx-ar-pn a:hover .layui-icon { color: var(--nx-primary); }
.nx-ar-pn div { min-width: 0; }
.nx-ar-pn em { display: block; font-style: normal; font-size: 11.5px; color: #b4bac5; margin-bottom: 3px; }
.nx-ar-pn span {
    display: block; font-size: 13.5px; color: var(--nx-text); font-weight: 600;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nx-ar-pn a:hover span { color: var(--nx-primary); }
.nx-ar-pn .next { justify-content: flex-end; text-align: right; }

/* 文章页响应式 */
@media (max-width: 1100px) {
    .nx-ar-body { grid-template-columns: 1fr; }
    .nx-ar-side .nx-si-board { position: static; }
}
@media (max-width: 700px) {
    .nx-ar-card { padding: 22px 18px; }
    .nx-ar-title { font-size: 20px; }
    .nx-ar-cover { margin: -22px -18px 18px; aspect-ratio: 16 / 9; }
    .nx-ar-content { font-size: 15px; line-height: 1.9; }
    .nx-ar-score { flex-direction: column; text-align: center; padding: 18px; }
    .nx-ar-pn { grid-template-columns: 1fr; }
    .nx-ar-faq .nx-ar-q .nx-ar-title { font-size: 18px; }
    .nx-ar-faq .q, .nx-ar-faq .a { width: 30px; height: 30px; font-size: 15px; }
}

/* ==================== list/article 页侧栏最新游戏 + 底部猜你喜欢 ==================== */
/* 侧栏双板块间距 */
.nx-ln-side .nx-si-board + .nx-si-board { margin-top: 20px; }
/* 侧栏 sticky 改为锚定第一个板块 */
.nx-ln-side .nx-si-board:first-child { position: sticky; top: 84px; }
.nx-ln-side .nx-si-board + .nx-si-board { position: static; }

/* 底部猜您喜欢 */
.nx-guess { margin-top: 38px; }
@media (max-width: 1100px) {
    .nx-ln-side .nx-si-board:first-child { position: static; }
}
