/* ===== 全局 ===== */
* { margin:0; padding:0; box-sizing:border-box; }
body {
    font-family: 'Segoe UI', 'PingFang SC', Roboto, system-ui, sans-serif;
    background: #0b0e1a;
    color: #e0e6f0;
    line-height: 1.6;
    min-height: 100vh;
}
a { color: inherit; text-decoration: none; }
.container { max-width:1280px; margin:0 auto; padding:0 24px; }

.keyword-highlight {
    color: #f0b3ff;
    text-shadow: 0 0 12px rgba(180,80,255,0.5);
    font-weight:700;
}
.keyword-tag {
    display:inline-block;
    background:rgba(120,80,255,0.2);
    padding:0 10px;
    border-radius:20px;
    color:#c8aaff;
    margin:0 4px;
    font-weight:500;
}

/* ===== 头部 ===== */
.header {
    background:rgba(11,14,26,0.85);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(255,255,255,0.06);
    padding:14px 0;
    position:sticky;
    top:0;
    z-index:100;
}
.header-inner { display:flex; justify-content:space-between; align-items:center; }
.logo a {
    display:flex; align-items:center; gap:8px;
    font-size:1.6rem; font-weight:700;
}
.logo-icon { font-size:1.8rem; }
.logo-text .highlight { color:#a855f7; margin:0 4px; }
.nav ul { display:flex; list-style:none; gap:28px; }
.nav ul li a {
    font-weight:500; font-size:1rem; transition:color 0.2s; color:#b0b8d0;
}
.nav ul li a:hover { color:#c8aaff; }
.nav-mobile { display:none; flex-direction:column; gap:5px; cursor:pointer; }
.nav-mobile span { width:26px; height:2px; background:#c8aaff; border-radius:2px; }

/* ===== 英雄区 ===== */
.hero {
    padding:60px 0 50px;
    background:radial-gradient(circle at 20% 30%, #141b33, #0b0e1a 70%);
    text-align:center;
    border-bottom:1px solid rgba(255,255,255,0.04);
}
.hero-title {
    font-size:2.8rem; font-weight:800; letter-spacing:1px; margin-bottom:18px;
    animation:fadeUp 0.8s ease;
}
.hero-title .keyword-highlight { display:inline-block; margin:0 4px; }
.hero-desc { font-size:1.2rem; color:#b0b8d0; margin-bottom:28px; }
.hero-search {
    display:flex; justify-content:center; gap:10px;
    max-width:580px; margin:0 auto 30px;
}
.hero-search input {
    flex:1; padding:14px 20px; border:none; border-radius:40px;
    background:rgba(255,255,255,0.07); color:#e0e6f0; font-size:1rem;
    outline:none; border:1px solid rgba(255,255,255,0.08); transition:0.3s;
}
.hero-search input:focus {
    border-color:#a855f7; background:rgba(255,255,255,0.1);
}
.hero-search button {
    padding:14px 34px; border:none; border-radius:40px;
    background:linear-gradient(135deg, #a855f7, #7c3aed);
    color:#fff; font-weight:600; font-size:1rem; cursor:pointer; transition:0.3s;
}
.hero-search button:hover {
    transform:scale(1.03); box-shadow:0 0 24px rgba(168,85,247,0.4);
}
.hero-tags { font-size:0.95rem; color:#8a92aa; }
.hero-tags .hot-tag {
    display:inline-block; background:rgba(168,85,247,0.15);
    padding:4px 14px; border-radius:30px; margin:4px 6px;
    font-weight:500; color:#c8aaff; transition:0.2s;
}
.hero-tags .hot-tag:hover { background:rgba(168,85,247,0.3); }

/* ===== 通用区块头 ===== */
.section-header {
    display:flex; justify-content:space-between; align-items:center;
    margin:40px 0 24px;
}
.section-header h2 { font-size:1.8rem; font-weight:700; }
.more-link { color:#a855f7; font-weight:500; transition:0.2s; }
.more-link:hover { color:#c8aaff; text-decoration:underline; }

/* ===== 文章卡片网格 ===== */
.post-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr));
    gap:28px; margin-bottom:20px;
}
.post-card {
    background:rgba(255,255,255,0.03); border-radius:18px; overflow:hidden;
    transition:transform 0.3s, box-shadow 0.3s;
    border:1px solid rgba(255,255,255,0.05);
}
.post-card:hover {
    transform:translateY(-8px); box-shadow:0 16px 40px rgba(0,0,0,0.5);
    border-color:rgba(168,85,247,0.2);
}
.post-link { display:block; }
.post-thumb {
    position:relative; padding-top:56.25%; background:#1a1f2e; overflow:hidden;
}
.post-thumb img {
    position:absolute; top:0; left:0; width:100%; height:100%;
    object-fit:cover; transition:transform 0.5s;
}
.post-card:hover .post-thumb img { transform:scale(1.06); }
.post-badge {
    position:absolute; top:10px; left:10px;
    background:rgba(0,0,0,0.7); backdrop-filter:blur(4px);
    padding:4px 12px; border-radius:30px;
    font-size:0.75rem; font-weight:600; color:#c8aaff;
    border:1px solid rgba(168,85,247,0.3);
}
.post-title {
    padding:14px 16px 6px; font-size:1.05rem; font-weight:600; color:#e8edf5;
}
.post-excerpt {
    padding:0 16px 8px; font-size:0.9rem; color:#b0b8d0;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.post-meta {
    padding:0 16px 16px; display:flex; justify-content:space-between;
    font-size:0.8rem; color:#8a92aa;
}
.post-tag {
    background:rgba(168,85,247,0.12); padding:2px 12px; border-radius:30px;
    color:#a855f7;
}

/* ===== 文章列表 ===== */
.article-list {
    display:flex; flex-direction:column; gap:6px; margin-bottom:20px;
}
.article-item { border-bottom:1px solid rgba(255,255,255,0.04); padding:10px 0; }
.article-item a {
    display:flex; align-items:center; gap:14px; transition:0.2s;
}
.article-item a:hover { color:#c8aaff; padding-left:8px; }
.article-num { font-weight:700; color:#a855f7; font-size:0.9rem; width:32px; }
.article-title { flex:1; font-weight:500; }
.article-tag {
    background:rgba(168,85,247,0.12); padding:2px 12px; border-radius:30px;
    font-size:0.75rem; color:#a855f7;
}

/* ===== 关键词云 ===== */
.keyword-cloud { padding:20px 0 30px; }
.cloud-wrap {
    display:flex; flex-wrap:wrap; gap:10px 16px;
    background:rgba(255,255,255,0.02); padding:30px 28px;
    border-radius:30px; border:1px solid rgba(255,255,255,0.05);
}
.cloud-tag {
    font-size:0.95rem; color:#b0b8d0; transition:0.2s; padding:2px 6px; border-radius:6px;
}
.cloud-tag.special {
    color:#f0b3ff; font-weight:700; background:rgba(168,85,247,0.1);
    padding:2px 12px; border-radius:20px; font-size:1.05rem;
}
.cloud-tag:hover { color:#fff; background:rgba(168,85,247,0.15); }
.cloud-count { color:#8a92aa; font-size:0.9rem; }

/* ===== 高密度 ===== */
.high-density { padding:10px 0 30px; }
.density-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr));
    gap:20px;
}
.density-group {
    background:rgba(255,255,255,0.02); border-radius:24px; padding:18px 20px;
    display:flex; flex-wrap:wrap; gap:8px 12px;
    border:1px solid rgba(168,85,247,0.08);
}
.density-label {
    background:rgba(168,85,247,0.12); padding:2px 14px; border-radius:30px;
    font-size:0.85rem; font-weight:600; color:#d4bfff;
}
.density-badge {
    background:linear-gradient(135deg, #a855f7, #7c3aed);
    padding:4px 16px; border-radius:30px; font-size:0.8rem; font-weight:600;
}

/* ===== 底部 ===== */
.footer {
    background:#080b16; border-top:1px solid rgba(255,255,255,0.04);
    padding-top:40px;
}
.footer-inner {
    display:grid; grid-template-columns:2fr 1.5fr 1fr; gap:40px; padding-bottom:30px;
}
.footer-col h4 { font-size:1.1rem; margin-bottom:12px; color:#e8edf5; }
.footer-col p { color:#8a92aa; font-size:0.95rem; margin-bottom:4px; }
.footer-tags {
    display:flex; flex-wrap:wrap; gap:8px 12px;
}
.footer-tags a { color:#b0b8d0; font-size:0.9rem; transition:0.2s; }
.footer-tags a:hover { color:#c8aaff; }
.footer-divider { color:#3a3f55; margin:0 8px; }
.footer-bottom {
    border-top:1px solid rgba(255,255,255,0.04);
    padding:18px 0; text-align:center; font-size:0.9rem; color:#6a728a;
}
.footer-bottom a { color:#a855f7; }
.footer-bottom .keyword-highlight { font-weight:600; }

/* ===== 动画 ===== */
@keyframes fadeUp {
    from { opacity:0; transform:translateY(20px); }
    to { opacity:1; transform:translateY(0); }
}

/* ===== 响应式 ===== */
@media (max-width:768px) {
    .nav ul { display:none; }
    .nav-mobile { display:flex; }
    .hero-title { font-size:2rem; }
    .hero-desc { font-size:1rem; }
    .hero-search { flex-direction:column; padding:0 10px; }
    .post-grid { grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:16px; }
    .section-header h2 { font-size:1.3rem; }
    .footer-inner { grid-template-columns:1fr; gap:24px; }
    .density-grid { grid-template-columns:1fr; }
    .cloud-wrap { padding:18px 16px; gap:6px 10px; }
    .cloud-tag { font-size:0.8rem; }
}
@media (max-width:480px) {
    .hero-title { font-size:1.6rem; }
    .post-grid { grid-template-columns:1fr 1fr; gap:12px; }
    .post-title { font-size:0.9rem; }
}