/* 首页 — 内容流 + 图文，颜色更丰富（贴近嗨信奥） */
:root {
    --home-bg: #f2f3f5;
    --home-surface: #ffffff;
    --home-text: #1f2329;
    --home-text-2: #646a73;
    --home-text-3: #8f959e;
    --home-line: #e8eaed;
    --home-primary: #1677ff;
    --home-radius: 14px;
    --home-shadow: 0 1px 2px rgba(31, 35, 41, 0.04), 0 10px 28px rgba(31, 35, 41, 0.06);

    --tone-blue: #1677ff;
    --tone-blue-soft: #e8f3ff;
    --tone-indigo: #4f46e5;
    --tone-indigo-soft: #eef2ff;
    --tone-cyan: #0891b2;
    --tone-cyan-soft: #ecfeff;
    --tone-teal: #0d9488;
    --tone-teal-soft: #f0fdfa;
    --tone-orange: #ea580c;
    --tone-orange-soft: #fff7ed;
    --tone-green: #16a34a;
    --tone-green-soft: #f0fdf4;
    --tone-pink: #db2777;
    --tone-pink-soft: #fdf2f8;
    --tone-violet: #7c3aed;
    --tone-violet-soft: #f5f3ff;
    --tone-slate: #64748b;
    --tone-slate-soft: #f8fafc;
}

body:has(.home-wrap) {
    background: var(--home-bg);
}

.home-wrap {
    min-height: calc(100vh - 120px);
    padding-bottom: 52px;
    background:
        radial-gradient(900px 240px at 8% -40px, rgba(22, 119, 255, 0.08), transparent 60%),
        radial-gradient(700px 200px at 96% 0, rgba(234, 88, 12, 0.05), transparent 55%),
        var(--home-bg);
}

.home-page {
    max-width: 1250px;
    margin: 0 auto;
    padding: 18px 16px 0;
    color: var(--home-text);
}

.home-seo-intro {
    margin: 0 0 16px;
    padding: 4px 2px 2px;
}

.home-seo-h1 {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.35;
    color: var(--home-text);
}

.home-seo-lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--home-text-2);
    max-width: 52em;
}

.home-block {
    margin-bottom: 28px;
}

.home-block-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.home-block-title {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 450;
    letter-spacing: -0.02em;
    color: #1a1d23;
}

.home-block-sub {
    margin: 0;
    font-size: 14px;
    color: var(--home-text-3);
}

.home-more {
    flex-shrink: 0;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 450;
    color: var(--home-primary);
    background: var(--tone-blue-soft);
    text-decoration: none;
}

.home-more:hover {
    color: #fff;
    background: var(--home-primary);
    text-decoration: none;
}

.home-empty {
    padding: 28px;
    text-align: center;
    color: var(--home-text-3);
    background: var(--home-surface);
    border-radius: var(--home-radius);
    border: 1px dashed var(--home-line);
}

/* tone helpers */
.home-tone-blue { --tone: var(--tone-blue); --tone-soft: var(--tone-blue-soft); }
.home-tone-indigo { --tone: var(--tone-indigo); --tone-soft: var(--tone-indigo-soft); }
.home-tone-cyan { --tone: var(--tone-cyan); --tone-soft: var(--tone-cyan-soft); }
.home-tone-teal { --tone: var(--tone-teal); --tone-soft: var(--tone-teal-soft); }
.home-tone-orange { --tone: var(--tone-orange); --tone-soft: var(--tone-orange-soft); }
.home-tone-green { --tone: var(--tone-green); --tone-soft: var(--tone-green-soft); }
.home-tone-pink { --tone: var(--tone-pink); --tone-soft: var(--tone-pink-soft); }
.home-tone-violet { --tone: var(--tone-violet); --tone-soft: var(--tone-violet-soft); }
.home-tone-slate { --tone: var(--tone-slate); --tone-soft: var(--tone-slate-soft); }

/* —— Banner（嗨信奥原图 1920×320） —— */
.home-banner {
    position: relative;
    margin-bottom: 26px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(15, 50, 120, 0.14);
    background: #e8eef8;
}

.home-banner-track {
    position: relative;
    aspect-ratio: 1920 / 320;
    width: 100%;
}

.home-banner-slide {
    position: absolute;
    inset: 0;
    display: block;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease;
    text-decoration: none;
}

.home-banner-slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

.home-banner-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.home-banner-nav {
    position: absolute;
    top: 50%;
    z-index: 4;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.88);
    color: #334155;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.16);
    opacity: 0;
    transition: opacity 0.2s ease, background 0.2s ease;
}

.home-banner:hover .home-banner-nav {
    opacity: 1;
}

.home-banner-prev { left: 12px; }
.home-banner-next { right: 12px; }

.home-banner-nav:hover {
    background: #fff;
    color: #1677ff;
}

.home-banner-dots {
    position: absolute;
    z-index: 3;
    left: 50%;
    bottom: 12px;
    display: flex;
    gap: 8px;
    transform: translateX(-50%);
}

.home-banner-dot {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.55);
    cursor: pointer;
    transition: width 0.2s ease, background 0.2s ease;
}

.home-banner-dot.is-active {
    width: 22px;
    background: #1677ff;
}

/* —— 试卷集合（独立深色 / 暖色背景） —— */
.home-gather {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.home-gather-card {
    --gather-a: #0f172a;
    --gather-b: #1e3a8a;
    --gather-c: #38bdf8;
    position: relative;
    display: block;
    min-height: 176px;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(255, 255, 255, 0.16), transparent 42%),
        linear-gradient(145deg, var(--gather-a) 0%, var(--gather-b) 55%, var(--gather-c) 140%);
    box-shadow: var(--home-shadow);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.home-gather-ember {
    --gather-a: #7c2d12;
    --gather-b: #c2410c;
    --gather-c: #fb923c;
}
.home-gather-midnight {
    --gather-a: #0b1224;
    --gather-b: #1e3a8a;
    --gather-c: #60a5fa;
}
.home-gather-amber {
    --gather-a: #78350f;
    --gather-b: #d97706;
    --gather-c: #fbbf24;
}
.home-gather-forest {
    --gather-a: #052e1c;
    --gather-b: #047857;
    --gather-c: #34d399;
}
.home-gather-crimson {
    --gather-a: #4c0519;
    --gather-b: #be123c;
    --gather-c: #fb7185;
}
.home-gather-plum {
    --gather-a: #2e1065;
    --gather-b: #6d28d9;
    --gather-c: #c4b5fd;
}

.home-gather-glow {
    position: absolute;
    inset: -10%;
    background:
        radial-gradient(circle at 16% 18%, rgba(255, 255, 255, 0.2), transparent 30%),
        radial-gradient(circle at 88% 78%, rgba(255, 255, 255, 0.1), transparent 34%);
    pointer-events: none;
}

.home-gather-orb {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    pointer-events: none;
    transition: transform 0.35s ease;
}

.home-gather-orb-a {
    width: 130px;
    height: 130px;
    left: -36px;
    bottom: -48px;
}

.home-gather-orb-b {
    width: 96px;
    height: 96px;
    right: -22px;
    top: -30px;
    background: rgba(255, 255, 255, 0.08);
}

.home-gather-card:hover,
.home-gather-card:focus {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.22);
    text-decoration: none;
    color: #fff;
}

.home-gather-card:hover .home-gather-orb-a {
    transform: translate(8px, -4px) scale(1.06);
}

.home-gather-card:hover .home-gather-orb-b {
    transform: translate(-6px, 8px) scale(1.08);
}

.home-gather-body {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    min-height: 176px;
    padding: 18px 18px 16px;
}

.home-gather-tag {
    align-self: flex-start;
    margin-bottom: auto;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 450;
    color: #1f2329;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12);
}

.home-gather-body h3 {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 450;
    line-height: 1.35;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 10px rgba(15, 23, 42, 0.2);
}

.home-gather-body p {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.88);
}

/* —— 快捷入口 —— */
.home-quick {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.home-quick-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 22px 12px 18px;
    border-radius: 14px;
    background: var(--home-surface);
    border: 1px solid var(--home-line);
    box-shadow: var(--home-shadow);
    text-decoration: none;
    color: inherit;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.home-quick-item:hover,
.home-quick-item:focus {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--tone) 35%, #fff);
    box-shadow: 0 12px 28px color-mix(in srgb, var(--tone) 16%, transparent);
    text-decoration: none;
    color: inherit;
}

.home-quick-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: var(--tone-soft) center / 30px 30px no-repeat;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tone) 12%, transparent);
}

.home-quick-icon-tiku {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%231677ff'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M4 6h16M4 12h10M4 18h14'/%3E%3C/svg%3E");
}
.home-quick-icon-gesp {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%234f46e5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M12 6v12m0-12l-3 3m3-3l3 3M5 18h14'/%3E%3C/svg%3E");
}
.home-quick-icon-paper {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ea580c'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M9 12h6m-6 4h6M7 4h7l3 3v13a1 1 0 01-1 1H7a1 1 0 01-1-1V5a1 1 0 011-1z'/%3E%3C/svg%3E");
}
.home-quick-icon-set {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230891b2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M4 7h16M4 12h16M4 17h10'/%3E%3C/svg%3E");
}
.home-quick-icon-contest {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%230d9488'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M8 21h8M12 17v4M7 4h10v4a5 5 0 11-10 0V4z'/%3E%3C/svg%3E");
}
.home-quick-icon-stage {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2316a34a'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M4 19h16M7 19V11h3v8m4 0V7h3v12m4 0V14h2v5'/%3E%3C/svg%3E");
}
.home-quick-icon-combat {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23db2777'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M13 10V3L4 14h7v7l9-11h-7z'/%3E%3C/svg%3E");
}
.home-quick-icon-news {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%237c3aed'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M19 20H5a2 2 0 01-2-2V6a2 2 0 012-2h10l4 4v10a2 2 0 01-2 2zM14 4v4h4M8 12h8M8 16h6'/%3E%3C/svg%3E");
}

.home-quick-item strong {
    display: block;
    margin-bottom: 4px;
    font-size: 15px;
    font-weight: 450;
    color: #243044;
}

.home-quick-item > span:last-child {
    font-size: 12px;
    color: var(--home-text-3);
}

/* —— 热门试卷 —— */
.home-paper-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.home-paper-card {
    display: grid;
    grid-template-columns: 78px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 16px;
    background: var(--home-surface);
    border: 1px solid var(--home-line);
    border-radius: var(--home-radius);
    border-left: 4px solid var(--tone, var(--home-primary));
    text-decoration: none;
    color: inherit;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.home-paper-card:hover,
.home-paper-card:focus {
    box-shadow: 0 12px 28px color-mix(in srgb, var(--tone) 14%, transparent);
    transform: translateY(-2px);
    text-decoration: none;
    color: inherit;
}

.home-paper-cover-wrap {
    width: 78px;
    height: 104px;
    padding: 4px;
    border-radius: 10px;
    background: linear-gradient(160deg, var(--tone-soft), #fff);
}

.home-paper-cover {
    width: 100%;
    height: 100%;
    border-radius: 7px;
    background: #eef3fb center / cover no-repeat;
    border: 1px solid rgba(0, 0, 0, 0.04);
}

.home-paper-main {
    min-width: 0;
}

.home-paper-tag {
    display: inline-block;
    margin-bottom: 6px;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 450;
    color: var(--tone);
    background: var(--tone-soft);
}

.home-paper-main h3 {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 450;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.home-paper-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 12px;
    color: var(--home-text-3);
}

.home-paper-cta {
    flex-shrink: 0;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 450;
    color: #fff;
    background: var(--tone, var(--home-primary));
    white-space: nowrap;
}

/* —— 热门题单 —— */
.home-set-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.home-set-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 16px;
    background: var(--home-surface);
    border: 1px solid var(--home-line);
    box-shadow: var(--home-shadow);
    text-decoration: none;
    color: inherit;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.home-set-card:hover,
.home-set-card:focus {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--tone, #1677ff) 28%, #fff);
    box-shadow: 0 16px 36px color-mix(in srgb, var(--tone, #1677ff) 18%, transparent);
    text-decoration: none;
    color: inherit;
}

.home-set-cover {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 16px 16px 14px;
    color: #fff;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(255, 255, 255, 0.22), transparent 42%),
        linear-gradient(145deg, color-mix(in srgb, var(--tone, #1677ff) 88%, #0b1f4a) 0%, var(--tone, #1677ff) 48%, color-mix(in srgb, var(--tone, #1677ff) 70%, #38bdf8) 100%);
}

.home-set-cover-glow {
    position: absolute;
    inset: -20%;
    background:
        radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.28), transparent 32%),
        radial-gradient(circle at 86% 78%, rgba(255, 255, 255, 0.14), transparent 36%);
    pointer-events: none;
}

.home-set-cover-orb {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    pointer-events: none;
}

.home-set-cover-orb-a {
    width: 120px;
    height: 120px;
    left: -28px;
    bottom: -42px;
}

.home-set-cover-orb-b {
    width: 90px;
    height: 90px;
    right: -18px;
    top: -26px;
    background: rgba(255, 255, 255, 0.1);
}

.home-set-cover-chip {
    position: relative;
    z-index: 1;
    align-self: flex-start;
    margin-bottom: auto;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 450;
    letter-spacing: 0.02em;
    color: var(--tone, #1677ff);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12);
}

.home-set-cover-title {
    position: relative;
    z-index: 1;
    display: block;
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 450;
    letter-spacing: -0.02em;
    line-height: 1.25;
    text-shadow: 0 2px 12px rgba(15, 23, 42, 0.2);
}

.home-set-cover-foot {
    position: relative;
    z-index: 1;
    font-size: 12px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.86);
}

.home-set-cover-cta {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 2;
    opacity: 0;
    transform: translateY(6px);
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 450;
    color: var(--tone, #1677ff);
    background: #fff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.home-set-card:hover .home-set-cover-cta,
.home-set-card:focus .home-set-cover-cta {
    opacity: 1;
    transform: translateY(0);
}

.home-set-card:hover .home-set-cover-orb-a {
    transform: translate(6px, -4px) scale(1.05);
    transition: transform 0.35s ease;
}

.home-set-card:hover .home-set-cover-orb-b {
    transform: translate(-4px, 6px) scale(1.08);
    transition: transform 0.35s ease;
}

.home-set-rank {
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 450;
    color: #fff;
    background: #94a3b8;
}

.home-set-card:nth-child(1) .home-set-rank { background: #ef4444; }
.home-set-card:nth-child(2) .home-set-rank { background: #f97316; }
.home-set-card:nth-child(3) .home-set-rank { background: #eab308; color: #1f2329; }

.home-set-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 14px 16px;
    flex: 1;
}

.home-set-topline {
    display: flex;
    align-items: center;
    gap: 8px;
}

.home-set-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 450;
    letter-spacing: 0.02em;
}

.home-set-badge.is-official {
    color: #c2410c;
    background: #ffedd5;
}

.home-set-badge.is-pick {
    color: #1d4ed8;
    background: #dbeafe;
}

.home-set-body h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 450;
    line-height: 1.4;
    color: #1f2329;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-set-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
}

.home-set-stat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 400;
    color: #8f959e;
}

.home-set-ico {
    width: 14px;
    height: 14px;
    display: inline-block;
    background: center / contain no-repeat;
    opacity: 0.85;
}

.home-set-ico-list {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%238f959e'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E");
}

.home-set-ico-heart {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23f97316'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4.3 12.3C2.9 10.5 3.1 7.8 5 6.3c1.6-1.3 3.9-1.1 5.3.4L12 8.2l1.7-1.5c1.4-1.5 3.7-1.7 5.3-.4 1.9 1.5 2.1 4.2.7 6-.7.9-4.7 4.6-6.8 6.5a1.4 1.4 0 01-1.8 0c-2.1-1.9-6.1-5.6-6.8-6.5z'/%3E%3C/svg%3E");
}

/* —— 每日一题 —— */
.home-daily {
    margin: 0 0 20px;
}

.home-daily-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 16px 20px;
    align-items: center;
    padding: 16px 20px;
    text-decoration: none;
    color: inherit;
    background:
        linear-gradient(135deg, rgba(22, 119, 255, 0.08), rgba(22, 119, 255, 0.02) 42%, #fff 72%),
        var(--home-surface);
    border: 1px solid rgba(22, 119, 255, 0.18);
    border-radius: var(--home-radius);
    box-shadow: var(--home-shadow);
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.home-daily-card:hover,
.home-daily-card:focus {
    border-color: rgba(22, 119, 255, 0.42);
    box-shadow: 0 10px 28px rgba(22, 119, 255, 0.12);
    transform: translateY(-1px);
}

.home-daily-label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 92px;
}

.home-daily-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 2px 8px;
    border-radius: 4px;
    background: #1677ff;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.home-daily-label time {
    color: #8c8c8c;
    font-size: 12px;
}

.home-daily-main {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 12px;
    min-width: 0;
}

.home-daily-no {
    flex: 0 0 auto;
    color: #1677ff;
    font-size: 13px;
    font-weight: 600;
}

.home-daily-title {
    flex: 1 1 180px;
    min-width: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: #1f1f1f;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-daily-diff {
    flex: 0 0 auto;
    color: #8c8c8c;
    font-size: 12px;
}

.home-daily-cta {
    flex: 0 0 auto;
    padding: 8px 14px;
    border-radius: 6px;
    background: #1677ff;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

@media (max-width: 720px) {
    .home-daily-card {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 14px 16px;
    }

    .home-daily-cta {
        justify-self: start;
    }

    .home-daily-title {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
}

/* —— 热点题目 + 热门文库（双栏对齐） —— */
.home-split {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr);
    gap: 16px;
    align-items: stretch;
    margin-bottom: 28px;
}

.home-split > .home-block {
    margin-bottom: 0;
}

.home-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.home-col > .home-block-head {
    min-height: 58px;
    align-items: flex-start;
    margin-bottom: 12px;
}

.home-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: var(--home-surface);
    border: 1px solid var(--home-line);
    border-radius: var(--home-radius);
    box-shadow: var(--home-shadow);
    overflow: hidden;
}

.home-row {
    flex: 1;
    display: grid;
    align-items: center;
    min-height: 68px;
    padding: 10px 14px;
    border-bottom: 1px solid #f0f2f5;
    text-decoration: none;
    color: inherit;
    box-sizing: border-box;
}

.home-row:last-child {
    border-bottom: 0;
}

.home-problem-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 12px;
}

.home-problem-row:hover,
.home-problem-row:focus {
    background: var(--tone-soft, #f7faff);
    text-decoration: none;
    color: inherit;
}

.home-problem-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 450;
    color: var(--tone);
    background: var(--tone-soft);
}

.home-problem-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.home-problem-no {
    font-size: 12px;
    font-weight: 450;
    color: var(--tone);
}

.home-problem-title {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-problem-stat {
    font-size: 12px;
    color: var(--home-text-3);
    white-space: nowrap;
}

.home-wenku-row {
    grid-template-columns: 28px 48px minmax(0, 1fr);
    gap: 10px;
}

.home-wenku-row:hover,
.home-wenku-row:focus {
    background: #f0fdfa;
    text-decoration: none;
    color: inherit;
}

.home-wenku-rank {
    font-size: 16px;
    font-weight: 450;
    color: #94a3b8;
    text-align: center;
}

.home-wenku-row:nth-child(1) .home-wenku-rank { color: #ef4444; }
.home-wenku-row:nth-child(2) .home-wenku-rank { color: #f97316; }
.home-wenku-row:nth-child(3) .home-wenku-rank { color: #eab308; }

.home-wenku-cover {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    background: #e2e8f0 center / cover no-repeat;
    border: 1px solid var(--home-line);
}

.home-wenku-text {
    min-width: 0;
}

.home-wenku-text strong {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-wenku-text em {
    display: flex;
    align-items: center;
    gap: 8px;
    font-style: normal;
    font-size: 12px;
    color: var(--home-text-3);
}

.home-wenku-ext {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 450;
    color: #0d9488;
    background: #ccfbf1;
}

/* —— 资讯卡片网格（图2样式） —— */
.home-news-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}

.home-news-empty {
    grid-column: 1 / -1;
}

.home-news-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--home-surface);
    border: 1px solid var(--home-line);
    border-radius: 14px;
    box-shadow: var(--home-shadow);
    text-decoration: none;
    color: inherit;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.home-news-card:hover,
.home-news-card:focus {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(22, 119, 255, 0.12);
    text-decoration: none;
    color: inherit;
}

.home-news-cover {
    width: 100%;
    aspect-ratio: 16 / 10;
    background: #e8eef8 center / cover no-repeat;
}

.home-news-cover-fallback {
    background: linear-gradient(135deg, #93c5fd, #67e8f9 50%, #86efac);
}

.home-news-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    padding: 12px 12px 14px;
}

.home-news-body h3 {
    margin: 0 0 8px;
    font-size: 15px;
    font-weight: 450;
    line-height: 1.4;
    color: #1f2329;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-news-body > p {
    margin: 0 0 12px;
    min-height: 2.8em;
    font-size: 13px;
    line-height: 1.45;
    color: #8f959e;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.home-news-meta1,
.home-news-meta2 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.home-news-meta1 {
    margin-bottom: 10px;
}

.home-news-cat {
    font-size: 12px;
    font-weight: 450;
    color: #fa8c16;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-news-views {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    font-size: 12px;
    color: #a0a6b0;
}

.home-news-views i {
    display: inline-block;
    width: 14px;
    height: 14px;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23a0a6b0'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1.8' d='M2.5 12s3.5-7 9.5-7 9.5 7 9.5 7-3.5 7-9.5 7-9.5-7-9.5-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

.home-news-author {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 12px;
    color: #a0a6b0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-news-author img {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #eef3fb;
    flex-shrink: 0;
}

.home-news-date {
    flex-shrink: 0;
    font-size: 12px;
    color: #a0a6b0;
}

@media (max-width: 1100px) {
    .home-gather {
        grid-template-columns: repeat(2, 1fr);
    }
    .home-quick {
        grid-template-columns: repeat(4, 1fr);
    }
    .home-set-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .home-news-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .home-banner {
        border-radius: 12px;
    }
    .home-banner-nav {
        opacity: 1;
        width: 30px;
        height: 30px;
        font-size: 18px;
    }
    .home-paper-list,
    .home-split {
        grid-template-columns: 1fr;
    }
    .home-news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .home-paper-cta {
        display: none;
    }
    .home-paper-card {
        grid-template-columns: 64px 1fr;
    }
    .home-quick {
        grid-template-columns: repeat(2, 1fr);
    }
    .home-set-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .home-gather {
        grid-template-columns: 1fr;
    }
    .home-set-grid,
    .home-news-grid {
        grid-template-columns: 1fr;
    }
    .home-block-head {
        flex-direction: column;
        align-items: flex-start;
    }
    .home-problem-title {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
}

/* fallback when color-mix unsupported */
@supports not (background: color-mix(in srgb, red 50%, blue)) {
    .home-quick-item:hover,
    .home-paper-card:hover,
    .home-set-card:hover {
        box-shadow: var(--home-shadow);
    }
}
