/* ==========================================================================
   Nova Theme 2.0 鈥?鐜颁唬鍖栥€佺畝绾︺€佸崱鐗囧寲鐨勫瓙姣旈鏍煎竷灞€
   渚濊禆 theme-default.css 鐨勬鏂?璇勮/鐏鍩虹鏍峰紡
   ========================================================================== */

.nova-body {
    --nova-bg: #f6f7fb;
    --nova-card: #ffffff;
    --nova-soft: #f1f4fa;
    --nova-line: #e9ecf4;
    --nova-line-strong: #dce2ee;
    --nova-text: #141a27;
    --nova-muted: #687386;
    --nova-muted-2: #9aa3b1;
    --nova-accent: var(--primary, #4f6ef7);
    --nova-accent-rgb: var(--primary-rgb, 79, 110, 247);
    --nova-radius: 18px;
    --nova-shadow: 0 8px 30px -22px rgba(20, 29, 55, .26), 0 1px 3px rgba(20, 29, 55, .04);
    --nova-shadow-hover: 0 22px 50px -28px rgba(31, 43, 78, .34), 0 6px 16px -12px rgba(31, 43, 78, .12);
    --bg: var(--nova-bg);
    --card-bg: var(--nova-card);
    --border: var(--nova-line);
    --text: var(--nova-text);
    --text-light: var(--nova-muted);
    --text-lighter: var(--nova-muted-2);
    --radius: var(--nova-radius);
    background:
        radial-gradient(900px 480px at 100% -8%, rgba(var(--nova-accent-rgb), .055), transparent 60%),
        var(--nova-bg);
    color: var(--nova-text);
}
[data-theme="dark"] .nova-body {
    --nova-bg: #0e131d;
    --nova-card: #151c28;
    --nova-soft: #1b2331;
    --nova-line: #242e3e;
    --nova-line-strong: #324054;
    --nova-text: #e8edf6;
    --nova-muted: #9aa7ba;
    --nova-muted-2: #6f7d91;
    --nova-shadow: 0 10px 32px -22px rgba(0, 0, 0, .7);
    --nova-shadow-hover: 0 24px 52px -24px rgba(0, 0, 0, .75);
}
.nova-body .site-main { max-width: var(--nova-container, 1360px); padding: 28px 24px 64px; grid-template-columns: minmax(0, 1fr) 316px; gap: 28px; }
.nova-body .site-main.full-width { max-width: 980px; }

/* ---------- 椤堕儴瀵艰埅 ---------- */
.nova-header {
    position: relative; z-index: 1100; height: 68px; background: rgba(255, 255, 255, .82);
    border-bottom: 1px solid rgba(233, 236, 244, .9);
    backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px);
    transition: background .25s, box-shadow .25s;
}
[data-theme="dark"] .nova-header { background: rgba(14, 19, 29, .82); border-bottom-color: rgba(36, 46, 62, .9); }
.nova-header.is-sticky { position: sticky; top: 0; }
.nova-header.is-scrolled { box-shadow: 0 10px 30px -26px rgba(20, 29, 55, .4); }
.nova-header-inner { max-width: var(--nova-container, 1360px); height: 100%; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; gap: 26px; }
.nova-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--nova-text); flex-shrink: 0; }
.nova-logo:hover { color: var(--nova-text); }
.nova-logo img { height: 34px; width: auto; border-radius: 8px; }
.nova-logo-mark {
    width: 34px; height: 34px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center;
    background: var(--nova-accent); color: #fff; font-size: 16px; font-weight: 800; letter-spacing: -.5px;
    box-shadow: 0 6px 16px -8px rgba(var(--nova-accent-rgb), .6);
}
.nova-logo-text { display: flex; flex-direction: column; font-size: 17px; font-weight: 750; line-height: 1.18; letter-spacing: -.2px; }
.nova-logo-text em { font-size: 8.5px; font-weight: 500; color: var(--nova-muted-2); letter-spacing: 1.8px; font-style: normal; margin-top: 2px; text-transform: uppercase; }
.nova-nav { display: flex; align-items: center; gap: 1px; flex: 1; min-width: 0; }
.nova-nav a { padding: 8px 12px; border-radius: 8px; color: var(--nova-muted); font-size: 13px; font-weight: 500; white-space: nowrap; }
.nova-nav a:hover, .nova-nav a.active { color: var(--nova-text); background: var(--nova-soft); }
.nova-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.nova-icon-btn {
    width: 36px; height: 36px; border: 0; border-radius: 9px; background: transparent; color: var(--nova-muted);
    display: inline-flex; align-items: center; justify-content: center; font-size: 14px; position: relative;
}
.nova-icon-btn:hover { background: var(--nova-soft); color: var(--nova-text); }
.nova-icon-btn kbd {
    position: absolute; right: -1px; bottom: -1px; font-size: 7.5px; font-family: inherit;
    background: var(--nova-line); color: var(--nova-muted-2); border-radius: 3px; padding: 0 3px; line-height: 1.45;
}
.nova-user { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 3px; border-radius: 999px; background: var(--nova-soft); color: var(--nova-muted); font-size: 12px; max-width: 130px; }
.nova-user img { width: 27px; height: 27px; border-radius: 50%; object-fit: cover; }
.nova-user span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nova-user:hover { color: var(--nova-text); }
.nova-login { padding: 7px 16px; border-radius: 999px; background: var(--nova-accent); color: #fff; font-size: 12.5px; font-weight: 600; }
.nova-login:hover { color: #fff; opacity: .9; }
.nova-menu-btn { display: none; width: 36px; height: 36px; border: 0; border-radius: 9px; background: var(--nova-soft); color: var(--nova-text); }

/* ---------- 鍏憡 ---------- */
.nova-notice { max-width: var(--nova-container, 1360px); margin: 16px auto 0; padding: 0 24px; }
.nova-notice-inner {
    display: flex; align-items: center; gap: 9px; padding: 9px 14px; border-radius: 11px;
    background: var(--nova-card); border: 1px solid var(--nova-line); box-shadow: var(--nova-shadow);
    font-size: 12px; color: var(--nova-muted);
}
.nova-notice-label { display: inline-flex; align-items: center; gap: 5px; color: var(--nova-accent); font-weight: 650; flex-shrink: 0; }
.nova-notice-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nova-notice button { border: 0; background: transparent; color: var(--nova-muted-2); font-size: 17px; line-height: 1; }

/* ---------- Hero ---------- */
.nova-hero {
    position: relative; max-width: var(--nova-container, 1360px); margin: 22px auto 0; border-radius: 26px; overflow: hidden;
    background:
        radial-gradient(700px 320px at 12% 110%, rgba(87, 191, 255, .12), transparent 62%),
        radial-gradient(720px 360px at 90% -30%, rgba(var(--nova-accent-rgb), .13), transparent 64%),
        linear-gradient(135deg, #f3f7ff 0%, #f6f5ff 52%, #fbfcff 100%);
    border: 1px solid #e8edf9; color: var(--nova-text);
}
[data-theme="dark"] .nova-hero {
    background:
        radial-gradient(700px 320px at 12% 110%, rgba(34, 211, 238, .08), transparent 62%),
        radial-gradient(720px 360px at 90% -30%, rgba(var(--nova-accent-rgb), .16), transparent 64%),
        linear-gradient(135deg, #111827 0%, #121b2c 52%, #0f1622 100%);
    border-color: var(--nova-line);
}
.nova-hero.has-bg { background-size: cover; background-position: center; }
.nova-hero.has-bg::before {
    content: ""; position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(105deg, rgba(246, 249, 255, .95) 0%, rgba(246, 249, 255, .82) 45%, rgba(246, 249, 255, .45) 100%);
}
[data-theme="dark"] .nova-hero.has-bg::before { background: linear-gradient(105deg, rgba(14, 19, 29, .95), rgba(14, 19, 29, .72) 55%, rgba(14, 19, 29, .4)); }
.nova-hero-inner { position: relative; z-index: 2; max-width: 800px; margin: 0 auto; padding: 70px 24px 62px; text-align: center; }
.nova-hero-badge {
    display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px;
    background: rgba(255, 255, 255, .72); border: 1px solid rgba(var(--nova-accent-rgb), .18);
    color: var(--nova-accent); font-size: 10px; font-weight: 650; letter-spacing: 1.4px;
    backdrop-filter: blur(8px);
}
[data-theme="dark"] .nova-hero-badge { background: rgba(21, 28, 40, .72); }
.nova-hero-badge i { font-size: 9px; }
.nova-hero-title { font-size: clamp(31px, 4.6vw, 45px); line-height: 1.22; font-weight: 800; letter-spacing: -1.2px; margin: 17px 0 9px; color: var(--nova-text); }
.nova-hero-desc { max-width: 610px; margin: 0 auto; color: var(--nova-muted); font-size: 13.5px; line-height: 1.85; }
.nova-hero-search {
    display: flex; align-items: center; gap: 8px; max-width: 500px; margin: 25px auto 0;
    padding: 5px 6px 5px 16px; border-radius: 999px; background: var(--nova-card); border: 1px solid var(--nova-line);
    box-shadow: 0 12px 34px -24px rgba(20, 29, 55, .3);
}
.nova-hero-search:focus-within { border-color: rgba(var(--nova-accent-rgb), .45); box-shadow: 0 0 0 4px rgba(var(--nova-accent-rgb), .08), 0 12px 34px -24px rgba(20, 29, 55, .3); }
.nova-hero-search > i { color: var(--nova-muted-2); font-size: 12px; }
.nova-hero-search input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; color: var(--nova-text); font-size: 13px; padding: 9px 0; }
.nova-hero-search input::placeholder { color: var(--nova-muted-2); }
.nova-hero-search button { border: 0; border-radius: 999px; padding: 9px 19px; background: var(--nova-accent); color: #fff; font-size: 12px; font-weight: 600; }
.nova-hero-stats { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 24px; }
.nova-hero-stats div { display: flex; flex-direction: column; align-items: center; min-width: 58px; }
.nova-hero-stats strong { font-size: 18px; font-weight: 800; color: var(--nova-text); letter-spacing: -.3px; line-height: 1.25; }
.nova-hero-stats span { font-size: 9.5px; color: var(--nova-muted-2); margin-top: 1px; }
.nova-hero-stat-line { width: 1px; height: 22px; background: var(--nova-line-strong); opacity: .7; }
.nova-hero-scroll { position: absolute; left: 50%; bottom: 13px; transform: translateX(-50%); z-index: 3; width: 20px; height: 32px; border: 1px solid var(--nova-line-strong); border-radius: 999px; display: flex; justify-content: center; padding-top: 6px; opacity: .65; }
.nova-hero-scroll span { width: 3px; height: 6px; border-radius: 2px; background: var(--nova-muted-2); animation: novaScroll 1.8s infinite; }
@keyframes novaScroll { 0%, 100% { transform: translateY(0); opacity: .35; } 50% { transform: translateY(6px); opacity: 1; } }
.nova-hero-glow { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .35; z-index: 1; }
.nova-hero-glow.glow-a { width: 240px; height: 240px; left: 7%; bottom: -110px; background: #8ab9ff; }
.nova-hero-glow.glow-b { width: 280px; height: 280px; right: 5%; top: -140px; background: #b7a7ff; }

/* ---------- 鍖哄潡 / 绛涢€?---------- */
.nova-section { min-width: 0; }
.nova-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.nova-eyebrow { display: inline-flex; align-items: center; gap: 5px; font-size: 9px; font-weight: 750; letter-spacing: 2px; color: var(--nova-accent); margin-bottom: 3px; }
.nova-section-head h2 { font-size: 21px; font-weight: 800; letter-spacing: -.5px; color: var(--nova-text); display: flex; align-items: baseline; gap: 7px; }
.nova-section-head h2 em { font-size: 10.5px; font-weight: 600; color: var(--nova-muted-2); background: var(--nova-soft); border-radius: 999px; padding: 2px 8px; font-style: normal; }
.nova-section-more { font-size: 11px; color: var(--nova-muted); white-space: nowrap; }
.nova-section-more:hover { color: var(--nova-accent); }
.nova-section-more i { font-size: 8px; margin-left: 2px; }
.nova-chips { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 18px; }
.nova-chips a { padding: 5px 12px; border-radius: 999px; background: var(--nova-card); border: 1px solid var(--nova-line); color: var(--nova-muted); font-size: 11px; font-weight: 500; }
.nova-chips a:hover, .nova-chips a.active { background: var(--nova-text); border-color: var(--nova-text); color: var(--nova-card); }
.nova-chips a em { font-style: normal; opacity: .6; font-size: 8.5px; margin-left: 3px; }

/* ---------- 缂栬緫鎺ㄨ崘 ---------- */
.nova-featured {
    display: grid; grid-template-columns: 1.08fr 1fr; gap: 0; margin-bottom: 20px; overflow: hidden;
    background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 20px;
    box-shadow: var(--nova-shadow); color: var(--nova-text);
    transition: transform .28s, box-shadow .28s, border-color .28s;
}
.nova-featured:hover { transform: translateY(-3px); box-shadow: var(--nova-shadow-hover); border-color: rgba(var(--nova-accent-rgb), .22); color: var(--nova-text); }
.nova-featured-cover { display: block; min-height: 268px; overflow: hidden; background: var(--nova-soft); }
.nova-featured-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .3, 1); }
.nova-featured:hover .nova-featured-cover img { transform: scale(1.035); }
.nova-featured-placeholder { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(var(--nova-accent-rgb), .85), #7c9bff); color: rgba(255, 255, 255, .8); font-size: 34px; }
.nova-featured-body { padding: 28px 30px; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.nova-featured-kicker { display: inline-flex; align-items: center; gap: 5px; color: #d97706; font-size: 9.5px; font-weight: 750; letter-spacing: 1.4px; margin-bottom: 9px; }
.nova-featured-kicker i { font-size: 8px; }
.nova-featured-title { font-size: 24px; line-height: 1.4; font-weight: 800; letter-spacing: -.5px; color: var(--nova-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nova-featured-excerpt { margin-top: 9px; color: var(--nova-muted); font-size: 12.5px; line-height: 1.75; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nova-featured-meta { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; margin-top: 15px; color: var(--nova-muted-2); font-size: 10.5px; }
.nova-featured-meta span { display: inline-flex; align-items: center; gap: 3px; }
.nova-featured-cat { padding: 2px 8px; border-radius: 999px; background: rgba(var(--nova-accent-rgb), .08); color: var(--nova-accent); }
.nova-featured-more { margin-top: 17px; font-size: 11px; font-weight: 600; color: var(--nova-accent); }
.nova-featured-more i { font-size: 8px; margin-left: 2px; }

/* ---------- 鍗＄墖 ---------- */
.nova-grid { display: grid; gap: 18px; min-width: 0; }
.nova-grid.cols-1 { grid-template-columns: 1fr; }
.nova-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nova-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nova-card-in { animation: novaCardIn .4s cubic-bezier(.2, .7, .3, 1) both; }
@keyframes novaCardIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.nova-card {
    min-width: 0; background: var(--nova-card); border: 1px solid var(--nova-line);
    border-radius: 17px; overflow: hidden; box-shadow: var(--nova-shadow);
    display: flex; flex-direction: column;
    transition: transform .25s cubic-bezier(.2, .7, .3, 1), box-shadow .25s, border-color .25s;
}
.nova-card:hover { transform: translateY(-3px); box-shadow: var(--nova-shadow-hover); border-color: rgba(var(--nova-accent-rgb), .2); }
.nova-card-cover { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--nova-soft); }
.nova-card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .55s cubic-bezier(.2, .7, .3, 1); }
.nova-card:hover .nova-card-cover img { transform: scale(1.045); }
.nova-card-cover-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(140deg, rgba(var(--nova-accent-rgb), .9), #8fb5ff); color: rgba(255, 255, 255, .85); font-size: 28px; }
.nova-card-shine { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(12, 20, 36, .22)); opacity: .75; pointer-events: none; }
.nova-card-badges { position: absolute; left: 10px; top: 10px; display: flex; gap: 4px; z-index: 2; }
.nova-badge { display: inline-flex; align-items: center; gap: 3px; padding: 3px 8px; border-radius: 999px; font-size: 9px; font-weight: 650; color: #fff; backdrop-filter: blur(8px); }
.nova-badge.top { background: rgba(239, 68, 68, .9); }
.nova-badge.cat { background: rgba(15, 23, 42, .42); border: 1px solid rgba(255, 255, 255, .18); }
.nova-card-body { padding: 15px 17px 14px; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.nova-card-title { font-size: 16px; line-height: 1.45; font-weight: 700; letter-spacing: -.15px; margin-bottom: 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nova-card-title a { color: var(--nova-text); }
.nova-card-title a:hover { color: var(--nova-accent); }
.nova-card-excerpt { color: var(--nova-muted); font-size: 11.8px; line-height: 1.7; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nova-card-tags { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 10px; }
.nova-card-tags a { font-size: 9.5px; color: var(--nova-muted-2); }
.nova-card-tags a:hover { color: var(--nova-accent); }
.nova-card-foot { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--nova-line); display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 10px; color: var(--nova-muted-2); }
.nova-card-author { display: inline-flex; align-items: center; gap: 5px; color: var(--nova-muted); min-width: 0; }
.nova-card-author img { width: 21px; height: 21px; border-radius: 50%; object-fit: cover; }
.nova-card-author span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nova-card-stats { display: flex; gap: 8px; flex-shrink: 0; }
.nova-card-stats span { display: inline-flex; align-items: center; gap: 3px; }

/* ---------- 鍔犺浇鏇村 / 绌虹姸鎬?---------- */
.nova-load-more { position: relative; height: 40px; padding: 0 26px; border-radius: 999px; background: var(--nova-card); border-color: var(--nova-line); color: var(--nova-text); font-size: 12px; }
.nova-load-more:hover { background: var(--nova-text); border-color: var(--nova-text); color: var(--nova-card); }
.nova-load-more.is-loading { pointer-events: none; opacity: .8; }
.nova-load-more.is-loading .load-more-text { visibility: hidden; }
.nova-load-more.is-loading .load-more-spinner { display: block; position: absolute; left: 50%; top: 50%; margin: -9px 0 0 -9px; }
.nova-load-more .load-more-spinner { border-color: rgba(var(--nova-accent-rgb), .2); border-top-color: var(--nova-accent); }
.nova-empty { background: var(--nova-card); border-color: var(--nova-line); }

/* ---------- 渚ц竟鏍?---------- */
.nova-sidebar { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.nova-widget { background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 16px; padding: 17px; box-shadow: var(--nova-shadow); }
.nova-widget-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12.5px; font-weight: 750; margin-bottom: 12px; color: var(--nova-text); }
.nova-widget-title span { display: inline-flex; align-items: center; gap: 6px; }
.nova-widget-title i { color: var(--nova-accent); font-size: 10px; }
.nova-widget-title em { font-style: normal; font-size: 8.5px; font-weight: 650; letter-spacing: 1.2px; color: var(--nova-muted-2); background: var(--nova-soft); border-radius: 999px; padding: 2px 7px; }
.nova-profile { padding: 0; overflow: hidden; }
.nova-profile-cover { height: 72px; background: linear-gradient(135deg, #dbe7ff, #e9e4ff 55%, #dff5ff); }
[data-theme="dark"] .nova-profile-cover { background: linear-gradient(135deg, #1e2c49, #2a2347 55%, #173a44); }
.nova-profile-body { text-align: center; padding: 0 17px 17px; }
.nova-profile-avatar { width: 68px; height: 68px; margin-top: -34px; border-radius: 50%; object-fit: cover; border: 4px solid var(--nova-card); background: var(--nova-card); }
.nova-profile h3 { font-size: 14.5px; font-weight: 750; margin-top: 7px; }
.nova-profile p { font-size: 11.2px; color: var(--nova-muted); line-height: 1.65; margin: 3px 0 12px; }
.nova-profile-stats { display: flex; justify-content: center; gap: 25px; padding: 10px 0; border-top: 1px solid var(--nova-line); border-bottom: 1px solid var(--nova-line); }
.nova-profile-stats div { display: flex; flex-direction: column; }
.nova-profile-stats strong { font-size: 14.5px; font-weight: 800; color: var(--nova-text); }
.nova-profile-stats span { font-size: 8.5px; color: var(--nova-muted-2); }
.nova-profile-links { display: flex; justify-content: center; gap: 6px; margin-top: 11px; }
.nova-profile-links a { width: 27px; height: 27px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: var(--nova-soft); color: var(--nova-muted); font-size: 10px; }
.nova-profile-links a:hover { background: var(--nova-text); color: var(--nova-card); }
.nova-hot-list { display: flex; flex-direction: column; gap: 10px; }
.nova-hot-list li { display: flex; gap: 9px; align-items: flex-start; }
.nova-hot-index { width: 17px; height: 17px; border-radius: 5px; background: var(--nova-soft); color: var(--nova-muted-2); display: inline-flex; align-items: center; justify-content: center; font-size: 8.5px; font-weight: 700; flex-shrink: 0; margin-top: 2px; }
.nova-hot-index.top { background: var(--nova-accent); color: #fff; }
.nova-hot-list li > div { min-width: 0; }
.nova-hot-list a { display: block; color: var(--nova-text); font-size: 11.5px; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nova-hot-list a:hover { color: var(--nova-accent); }
.nova-hot-list em { font-style: normal; font-size: 9px; color: var(--nova-muted-2); }
.nova-cat-list { display: flex; flex-direction: column; }
.nova-cat-list a { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; border-bottom: 1px dashed var(--nova-line); color: var(--nova-muted); font-size: 11.5px; }
.nova-cat-list a:last-child { border-bottom: 0; }
.nova-cat-list a span { display: inline-flex; align-items: center; gap: 7px; }
.nova-cat-list a i { color: var(--nova-accent); width: 12px; text-align: center; font-size: 9px; }
.nova-cat-list em { font-style: normal; font-size: 9px; color: var(--nova-muted-2); background: var(--nova-soft); border-radius: 999px; padding: 1px 6px; }
.nova-cat-list a:hover { color: var(--nova-accent); }
.nova-tag-cloud { display: flex; flex-wrap: wrap; gap: 5px; }
.nova-tag-cloud a { padding: 4px 9px; border-radius: 999px; background: var(--nova-soft); color: var(--nova-muted); font-size: 10px; }
.nova-tag-cloud a:hover { background: var(--nova-text); color: var(--nova-card); }
.nova-comment-list { display: flex; flex-direction: column; gap: 10px; }
.nova-comment-list li { display: flex; gap: 8px; }
.nova-comment-list img { width: 27px; height: 27px; border-radius: 50%; object-fit: cover; flex-shrink: 0; margin-top: 1px; }
.nova-comment-list li > div { min-width: 0; }
.nova-comment-list strong { font-size: 10px; color: var(--nova-text); }
.nova-comment-list span { font-size: 9px; color: var(--nova-muted-2); margin: 0 3px; }
.nova-comment-list a { font-size: 10px; color: var(--nova-muted); }
.nova-comment-list p { margin-top: 2px; font-size: 10px; color: var(--nova-muted-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nova-subscribe { text-align: center; background: var(--nova-card); }
.nova-subscribe-icon { width: 34px; height: 34px; margin: 0 auto 7px; border-radius: 10px; background: rgba(var(--nova-accent-rgb), .09); color: var(--nova-accent); display: flex; align-items: center; justify-content: center; font-size: 12px; }
.nova-subscribe h3 { font-size: 13px; font-weight: 750; }
.nova-subscribe p { font-size: 10.5px; color: var(--nova-muted); margin: 2px 0 10px; }
.nova-subscribe .btn { background: var(--nova-accent); border-color: var(--nova-accent); color: #fff; font-size: 10.5px; padding: 7px 15px; }
.nova-subscribe .btn:hover { color: #fff; opacity: .9; }

/* ---------- 鏂囩珷璇︽儏 ---------- */
.nova-article { background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 20px; box-shadow: var(--nova-shadow); padding: 34px 38px 30px; }
.nova-article-header { margin: 11px 0 18px; }
.nova-article-cats { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 9px; }
.nova-article-cats a, .nova-article-cats span { padding: 3px 9px; border-radius: 999px; background: rgba(var(--nova-accent-rgb), .08); color: var(--nova-accent); font-size: 9.5px; font-weight: 650; }
.nova-article-header h1 { font-size: 30px; line-height: 1.35; font-weight: 800; letter-spacing: -.7px; color: var(--nova-text); }
.nova-article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 12px; color: var(--nova-muted-2); font-size: 11px; }
.nova-article-meta span { display: inline-flex; align-items: center; gap: 4px; }
.nova-article-meta a { color: var(--nova-muted); }
.nova-meta-author { color: var(--nova-muted) !important; }
.nova-meta-author img { width: 23px; height: 23px; border-radius: 50%; object-fit: cover; }
.nova-article-cover { margin: 0 0 22px; border-radius: 13px; overflow: hidden; background: var(--nova-soft); }
.nova-article-cover img { width: 100%; max-height: 430px; object-fit: cover; display: block; }
.nova-article-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 0; border-top: 1px solid var(--nova-line); border-bottom: 1px solid var(--nova-line); margin-bottom: 20px; }
.nova-article-body { font-size: 16px; line-height: 1.95; }
.nova-article-summary { border-left-color: var(--nova-accent); background: rgba(var(--nova-accent-rgb), .055); }
.nova-article-summary > span { color: var(--nova-accent); }
.nova-article-body h2 { font-size: 21px; }
.nova-toc { background: var(--nova-soft); border-color: var(--nova-line); }
.nova-toc .toc-list a { color: var(--nova-muted); }
.nova-toc .toc-list a:hover, .nova-toc .toc-list a.is-active { color: var(--nova-accent); background: var(--nova-card); }
.nova-share { border-top-color: var(--nova-line); }
.nova-author-card { display: flex; align-items: center; gap: 13px; margin-top: 26px; padding: 15px; border-radius: 13px; background: var(--nova-soft); border: 1px solid var(--nova-line); }
.nova-author-card img { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; }
.nova-author-card > div { flex: 1; min-width: 0; }
.nova-author-card h3 { display: flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 700; color: var(--nova-text); }
.nova-author-card h3 span { font-size: 8.5px; color: var(--nova-accent); background: rgba(var(--nova-accent-rgb), .1); border-radius: 4px; padding: 1px 5px; font-weight: 500; }
.nova-author-card p { font-size: 10.5px; color: var(--nova-muted); margin-top: 2px; }
.nova-author-card > a { font-size: 10px; color: var(--nova-muted); white-space: nowrap; }
.nova-author-card > a:hover { color: var(--nova-accent); }
.nova-post-nav { border-top-color: var(--nova-line); }
.nova-related { margin-top: 24px; }
.nova-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.nova-related-card { display: flex; gap: 10px; padding: 10px; border-radius: 12px; background: var(--nova-card); border: 1px solid var(--nova-line); color: var(--nova-text); }
.nova-related-card:hover { border-color: rgba(var(--nova-accent-rgb), .25); color: var(--nova-text); transform: translateY(-2px); }
.nova-related-cover { width: 62px; height: 54px; border-radius: 8px; overflow: hidden; flex-shrink: 0; background: var(--nova-soft); color: var(--nova-accent); display: flex; align-items: center; justify-content: center; }
.nova-related-cover img { width: 100%; height: 100%; object-fit: cover; }
.nova-related-body { min-width: 0; }
.nova-related-body strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 11px; line-height: 1.5; font-weight: 650; }
.nova-related-body em { display: block; font-style: normal; font-size: 9px; color: var(--nova-muted-2); margin-top: 4px; }
.nova-comments { background: var(--nova-card); border-color: var(--nova-line); box-shadow: var(--nova-shadow); padding: 28px 32px; }

/* ---------- 褰掓。澶?---------- */
.nova-archive-head { position: relative; overflow: hidden; background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 18px; box-shadow: var(--nova-shadow); padding: 24px 26px 21px; margin-bottom: 20px; }
.nova-archive-orb { position: absolute; right: -60px; top: -90px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, rgba(var(--nova-accent-rgb), .1), transparent 70%); pointer-events: none; }
.nova-archive-main { display: flex; align-items: center; gap: 16px; margin-top: 13px; position: relative; }
.nova-archive-icon, .nova-archive-avatar { width: 62px; height: 62px; border-radius: 17px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--nova-soft); color: var(--nova-accent); font-size: 22px; }
.nova-archive-avatar { border-radius: 50%; object-fit: cover; }
.nova-archive-info { min-width: 0; }
.nova-archive-info h1 { font-size: 26px; font-weight: 800; letter-spacing: -.6px; color: var(--nova-text); line-height: 1.3; }
.nova-archive-info p { font-size: 11.5px; color: var(--nova-muted); margin-top: 3px; }
.nova-archive-stats { display: flex; gap: 20px; margin-top: 10px; }
.nova-archive-stats span { font-size: 10px; color: var(--nova-muted-2); }
.nova-archive-stats strong { color: var(--nova-accent); font-size: 13px; font-weight: 750; margin-right: 2px; }
.nova-archive-chips { margin: 15px 0 0; }
.nova-search-page-form { display: flex; align-items: center; gap: 8px; margin: -4px 0 20px; background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 13px; padding: 5px 6px 5px 14px; box-shadow: var(--nova-shadow); }
.nova-search-page-form > i { color: var(--nova-muted-2); font-size: 11px; }
.nova-search-page-form input { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; padding: 9px 0; color: var(--nova-text); font-size: 12.5px; }
.nova-search-page-form .btn { padding: 8px 18px; font-size: 11px; }

/* ---------- 鏃堕棿绾?---------- */
.nova-timeline { display: flex; flex-direction: column; gap: 18px; }
.nova-timeline-year { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; }
.nova-timeline-year-head { display: flex; flex-direction: column; align-items: center; padding-top: 2px; }
.nova-timeline-year-head span { width: 52px; height: 52px; border-radius: 50%; background: var(--nova-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; box-shadow: 0 8px 20px -10px rgba(var(--nova-accent-rgb), .6); }
.nova-timeline-year-head em { font-style: normal; font-size: 9px; color: var(--nova-muted-2); margin-top: 4px; }
.nova-timeline-months { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nova-timeline-month { background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 16px; box-shadow: var(--nova-shadow); padding: 15px 17px; }
.nova-timeline-month h2 { display: flex; align-items: baseline; gap: 7px; font-size: 11.5px; font-weight: 700; color: var(--nova-text); margin-bottom: 6px; }
.nova-timeline-month h2 span { font-size: 9px; color: var(--nova-muted-2); font-weight: 400; }
.nova-timeline-item { display: flex; align-items: center; gap: 11px; padding: 7px 6px; border-radius: 8px; color: var(--nova-text); }
.nova-timeline-item:hover { background: var(--nova-soft); color: var(--nova-text); }
.nova-timeline-date { width: 32px; flex-shrink: 0; font-size: 9.5px; color: var(--nova-muted-2); font-weight: 600; }
.nova-timeline-title { flex: 1; min-width: 0; font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nova-timeline-meta { font-size: 9px; color: var(--nova-muted-2); }
.nova-timeline-item > i { font-size: 8px; color: var(--nova-muted-2); }

/* ---------- 404 ---------- */
.nova-404 { background: var(--nova-card); border: 1px solid var(--nova-line); border-radius: 20px; box-shadow: var(--nova-shadow); padding: 58px 24px; text-align: center; }
.nova-404-code { font-size: clamp(80px, 15vw, 130px); line-height: 1; font-weight: 900; letter-spacing: -7px; color: transparent; -webkit-text-stroke: 1px var(--nova-line-strong); }
.nova-404 h1 { font-size: 22px; font-weight: 800; margin: 10px 0 6px; color: var(--nova-text); }
.nova-404 > p { font-size: 12px; color: var(--nova-muted); }
.nova-404-actions { display: flex; justify-content: center; gap: 9px; flex-wrap: wrap; margin-top: 20px; }
.nova-404-search { margin-top: 24px; }
.nova-404-tags { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.nova-404-tags a { font-size: 10px; color: var(--nova-muted); background: var(--nova-soft); border-radius: 999px; padding: 4px 10px; }

/* ---------- 椤佃剼 ---------- */
.nova-footer { margin-top: 64px; background: var(--nova-card); color: var(--nova-muted); border-top: 1px solid var(--nova-line); padding-bottom: 24px; }
.nova-footer-inner { max-width: var(--nova-container, 1360px); margin: 0 auto; padding: 40px 24px 0; }
.nova-footer-top { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 30px; padding-bottom: 25px; border-bottom: 1px solid var(--nova-line); }
.nova-footer-logo { display: inline-flex; align-items: center; gap: 9px; color: var(--nova-text); font-size: 16px; font-weight: 750; margin-bottom: 8px; }
.nova-footer-logo:hover { color: var(--nova-text); }
.nova-footer-logo img { height: 30px; border-radius: 7px; }
.nova-footer-about > p { font-size: 11.2px; line-height: 1.8; max-width: 320px; color: var(--nova-muted); }
.nova-footer-tagline { color: var(--nova-accent) !important; margin-top: 7px; }
.nova-footer-social { display: flex; gap: 6px; margin-top: 12px; }
.nova-footer-social a { width: 29px; height: 29px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: var(--nova-soft); color: var(--nova-muted); font-size: 11px; }
.nova-footer-social a:hover { background: var(--nova-text); color: var(--nova-card); }
.nova-footer-col h4 { color: var(--nova-text); font-size: 11px; font-weight: 650; margin-bottom: 9px; }
.nova-footer-col > a { display: block; color: var(--nova-muted); font-size: 11px; padding: 3px 0; }
.nova-footer-col > a:hover { color: var(--nova-accent); }
.nova-footer-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.nova-footer-tags a { font-size: 10px; color: var(--nova-muted); }
.nova-footer-tags a:hover { color: var(--nova-accent); }
.nova-footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; padding: 16px 0 4px; font-size: 10px; color: var(--nova-muted-2); }
.nova-footer-meta { display: inline-flex; gap: 11px; flex-wrap: wrap; align-items: center; }
.nova-footer-bottom a { color: var(--nova-muted); }
.nova-footer-bottom a:hover { color: var(--nova-accent); }
.nova-dot { margin: 0 3px; color: var(--nova-line-strong); }

/* ---------- 绉诲姩搴曟爮 ---------- */
.nova-bottom-nav { display: none; }

/* ---------- 鎼滅储娴眰 ---------- */
.nova-search-dialog { border-radius: 18px; }
.nova-search-dialog .search-dialog-form input { font-size: 18px; }
.nova-search-dialog .search-dialog-form button { background: var(--nova-accent); }

/* ---------- 鎸夐挳缁熶竴绮句慨 ---------- */
.nova-body .btn {
    min-height: 40px; padding: 0 20px; border-radius: 10px; border: 1px solid var(--nova-line);
    background: var(--nova-card); color: var(--nova-text); font-size: 13px; font-weight: 600;
    box-shadow: none; gap: 6px;
}
.nova-body .btn:hover { border-color: rgba(var(--nova-accent-rgb), .35); color: var(--nova-accent); transform: translateY(-1px); }
.nova-body .btn:active { transform: translateY(0) scale(.985); }
.nova-body .btn-primary { background: var(--nova-accent); border-color: var(--nova-accent); color: #fff; box-shadow: 0 8px 18px -12px rgba(var(--nova-accent-rgb), .8); }
.nova-body a.btn-primary, .nova-body a.btn-primary:hover, .nova-body button.btn-primary { color: #fff; }
.nova-body .btn-primary:hover { background: var(--nova-accent); border-color: var(--nova-accent); color: #fff; filter: brightness(1.06); }
.nova-body .btn:focus-visible, .nova-body .nova-icon-btn:focus-visible, .nova-body .toolbar-btn:focus-visible { outline: 2px solid rgba(var(--nova-accent-rgb), .5); outline-offset: 2px; }
.nova-body .empty-state .btn { display: inline-flex; }
.nova-body .nova-empty { padding: 54px 24px; }
.nova-body .nova-empty .empty-state-icon { background: rgba(var(--nova-accent-rgb), .08); color: var(--nova-accent); }
.nova-body .comment-submit-wrap .btn { min-height: 36px; padding: 0 18px; }
.nova-body .toolbar-btn { border-radius: 8px; padding: 6px 9px; }
.nova-body .back-to-top { width: 40px; height: 40px; box-shadow: 0 10px 24px -12px rgba(var(--nova-accent-rgb), .65); }
.nova-body .back-to-top:hover { transform: translateY(-2px); }

/* ---------- 全宽布局 ---------- */
.nova-fullwidth .nova-header-inner,
.nova-fullwidth .nova-footer-inner { max-width: none; padding-left: 32px; padding-right: 32px; }
.nova-fullwidth .nova-notice { max-width: none; padding-left: 32px; padding-right: 32px; }
.nova-fullwidth .nova-hero { max-width: none; margin: 0; border-radius: 0; border-left: 0; border-right: 0; }
.nova-fullwidth .nova-hero-inner { max-width: 1000px; }
.nova-fullwidth .site-main { max-width: none; padding-left: 32px; padding-right: 32px; }
.nova-fullwidth .site-main.full-width { max-width: none; }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
    .nova-body .site-main { grid-template-columns: minmax(0, 1fr) 282px; gap: 20px; }
    .nova-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nova-footer-top { grid-template-columns: 1.5fr 1fr 1fr; }
    .nova-footer-col:last-child { grid-column: 2 / 4; }
}
@media (max-width: 900px) {
    .nova-nav { display: none; }
    .nova-menu-btn { display: inline-flex; align-items: center; justify-content: center; }
    .nova-body .site-main { grid-template-columns: 1fr; }
    .nova-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nova-profile { grid-column: 1 / -1; }
    .nova-body { padding-bottom: 66px; }
    .nova-bottom-nav {
        display: flex; position: fixed; left: 12px; right: 12px; bottom: 10px; z-index: 1200;
        height: 52px; align-items: center; justify-content: space-around;
        background: rgba(255, 255, 255, .92); border: 1px solid var(--nova-line);
        border-radius: 16px; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
        box-shadow: 0 12px 34px -18px rgba(20, 29, 55, .4);
    }
    [data-theme="dark"] .nova-bottom-nav { background: rgba(21, 28, 40, .92); }
    .nova-bottom-nav a, .nova-bottom-nav button { display: flex; flex-direction: column; align-items: center; gap: 2px; border: 0; background: transparent; color: var(--nova-muted-2); font-size: 8.5px; padding: 4px 13px; border-radius: 9px; }
    .nova-bottom-nav a i, .nova-bottom-nav button i { font-size: 14px; }
    .nova-bottom-nav a.active, .nova-bottom-nav a:hover, .nova-bottom-nav button:hover { color: var(--nova-accent); background: rgba(var(--nova-accent-rgb), .08); }
    .nova-body .back-to-top { bottom: 74px; }
    .nova-body .toast-container { bottom: 76px; }
    .nova-related-grid { grid-template-columns: 1fr; }
    .nova-footer-top { grid-template-columns: 1fr 1fr; gap: 23px; }
    .nova-footer-col:last-child { grid-column: auto; }
    .nova-featured { grid-template-columns: 1fr; }
    .nova-featured-cover { min-height: 220px; }
}
@media (max-width: 720px) {
    .nova-header { height: 60px; }
    .nova-header-inner { padding: 0 14px; gap: 9px; }
    .nova-logo-text { font-size: 15.5px; }
    .nova-logo-text em { display: none; }
    .nova-logo-mark { width: 31px; height: 31px; border-radius: 9px; font-size: 14px; }
    .nova-actions { gap: 1px; }
    .nova-icon-btn { width: 31px; height: 31px; font-size: 13px; }
    .nova-icon-btn kbd { display: none; }
    .nova-user { padding: 2px; background: transparent; }
    .nova-user span { display: none; }
    .nova-notice { margin-top: 10px; padding: 0 13px; }
    .nova-notice-inner { padding: 8px 11px; font-size: 11px; }
    .nova-hero { margin: 13px 13px 0; border-radius: 19px; }
    .nova-hero-inner { padding: 45px 16px 47px; }
    .nova-hero-title { margin-top: 14px; }
    .nova-hero-desc { font-size: 12px; }
    .nova-hero-search { margin-top: 20px; }
    .nova-hero-stats { gap: 11px; margin-top: 21px; }
    .nova-hero-stats strong { font-size: 15px; }
    .nova-hero-scroll { display: none; }
    .nova-body .site-main { padding: 19px 13px 42px; gap: 17px; }
    .nova-section-head h2 { font-size: 18.5px; }
    .nova-section-more { display: none; }
    .nova-grid.cols-2, .nova-grid.cols-3 { grid-template-columns: 1fr; }
    .nova-grid { gap: 14px; }
    .nova-card-cover { aspect-ratio: 16 / 8.4; }
    .nova-card-body { padding: 13px 15px; }
    .nova-card-title { font-size: 15.5px; }
    .nova-card-excerpt { font-size: 11.5px; }
    .nova-featured { border-radius: 16px; }
    .nova-featured-cover { min-height: 190px; }
    .nova-featured-body { padding: 18px; }
    .nova-featured-title { font-size: 20px; }
    .nova-featured-excerpt { font-size: 11.5px; }
    .nova-article { padding: 20px 17px 22px; border-radius: 16px; }
    .nova-article-header h1 { font-size: 23px; }
    .nova-article-meta { gap: 8px; font-size: 10px; }
    .nova-article-body { font-size: 15.5px; line-height: 1.9; }
    .nova-article-body h2 { font-size: 19px; }
    .nova-article-cover { margin-bottom: 16px; border-radius: 10px; }
    .nova-related-grid { grid-template-columns: 1fr; }
    .nova-comments { padding: 20px 16px; }
    .nova-archive-head { padding: 17px 16px 15px; border-radius: 15px; }
    .nova-archive-main { gap: 12px; align-items: flex-start; }
    .nova-archive-icon, .nova-archive-avatar { width: 47px; height: 47px; border-radius: 13px; font-size: 18px; }
    .nova-archive-info h1 { font-size: 20px; }
    .nova-archive-info p { font-size: 10.5px; }
    .nova-chips { gap: 5px; }
    .nova-chips a { padding: 4px 10px; font-size: 10px; }
    .nova-search-page-form { margin-top: 0; }
    .nova-timeline-year { grid-template-columns: 1fr; gap: 8px; }
    .nova-timeline-year-head { flex-direction: row; justify-content: flex-start; gap: 8px; }
    .nova-timeline-year-head span { width: 40px; height: 40px; font-size: 10.5px; }
    .nova-timeline-month { padding: 13px; }
    .nova-footer { margin-top: 40px; }
    .nova-footer-inner { padding: 30px 16px 0; }
    .nova-footer-top { grid-template-columns: 1fr; gap: 19px; }
    .nova-footer-bottom { flex-direction: column; align-items: flex-start; }
    .nova-404 { padding: 40px 16px; }
    .nova-404-actions .btn { width: 100%; }
    .nova-404-search { margin-top: 18px; }
    .nova-author-card { flex-wrap: wrap; }
    .nova-author-card > a { margin-left: auto; }
}

