:root {
        --primary: #dc2626;
        --accent: #fb923c;
        --bg: #141013;
        --text: #fef2f2;
        --card-bg: #1f1a1e;
        --radius-card: 16px;
        --radius-pill: 50rem;
    }
    body {
        background-color: var(--bg);
        color: var(--text);
        font-family: 'Noto Sans SC', 'Inter', sans-serif;
        overflow-x: hidden;
        scroll-behavior: smooth;
    }
    h1, h2, h3, h4, .font-serif {
        font-family: 'Noto Serif SC', serif;
        font-weight: 700;
    }
    a { color: var(--text); text-decoration: none; }
    .navbar {
        background: rgba(20,16,19,0.85);
        backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(255,255,255,0.06);
        padding-top: 0.8rem;
        padding-bottom: 0.8rem;
        z-index: 1050;
    }
    .navbar-brand {
        font-family: 'Noto Serif SC', serif;
        font-weight: 900;
        font-size: 1.8rem;
        color: var(--text) !important;
        letter-spacing: 1px;
    }
    .navbar-brand i {
        color: var(--accent);
        margin-right: 6px;
    }
    .nav-link {
        color: rgba(254,242,242,0.8) !important;
        font-weight: 500;
        margin: 0 0.6rem;
        transition: 0.2s;
    }
    .nav-link:hover { color: var(--accent) !important; }
    .btn-pill {
        border-radius: var(--radius-pill);
        padding: 0.4rem 1.4rem;
        border: 1px solid rgba(255,255,255,0.1);
        background: transparent;
        color: var(--text);
        transition: 0.2s;
    }
    .btn-pill:hover { background: var(--primary); border-color: var(--primary); }

    /* progress bar */
    #progressBar {
        position: fixed;
        top: 0; left: 0;
        height: 4px;
        width: 0%;
        background: linear-gradient(90deg, var(--primary), var(--accent));
        z-index: 2000;
        border-radius: 4px;
        transition: width 0.1s;
    }

    /* hero */
    .hero-section {
        min-height: 75vh;
        display: flex;
        align-items: flex-end;
        background: linear-gradient(180deg, rgba(20,16,19,0.2), var(--bg) 90%), url('{随机图片}') center/cover no-repeat;
        padding: 4rem 0 3rem;
        position: relative;
    }
    .hero-title {
        font-size: clamp(3rem, 8vw, 5rem);
        font-weight: 900;
        letter-spacing: 0.05em;
        text-shadow: 0 4px 20px rgba(0,0,0,0.5);
    }
    .hero-sub {
        max-width: 600px;
        text-shadow: 0 2px 12px rgba(0,0,0,0.5);
    }

    /* section */
    .section-title {
        font-size: 2.2rem;
        font-weight: 900;
        margin-bottom: 1.5rem;
        display: flex;
        align-items: center;
        gap: 12px;
    }
    .section-title i { color: var(--primary); }
    .badge-soft {
        background: rgba(220,38,38,0.2);
        color: var(--accent);
        border-radius: var(--radius-pill);
        padding: 0.2rem 1rem;
        font-size: 0.8rem;
    }
    /* card */
    .movie-card {
        background: var(--card-bg);
        border-radius: var(--radius-card);
        overflow: hidden;
        box-shadow: 0 10px 20px rgba(0,0,0,0.3);
        border: 1px solid rgba(255,255,255,0.04);
        transition: transform 0.25s ease, box-shadow 0.3s;
        cursor: pointer;
        position: relative;
        margin-bottom: 20px;
    }
    .movie-card:hover {
        transform: translateY(-6px) scale(1.02);
        box-shadow: 0 18px 30px rgba(0,0,0,0.5);
    }
    .movie-card .poster-wrap {
        position: relative;
        aspect-ratio: 2 / 3;
        overflow: hidden;
        background: #2a222a;
    }
    .movie-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: 0.4s ease;
    }
    .movie-card:hover img { transform: scale(1.05); filter: brightness(0.7); }
    .play-overlay {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        opacity: 0;
        transition: 0.3s;
        background: rgba(0,0,0,0.25);
    }
    .movie-card:hover .play-overlay { opacity: 1; }
    .play-overlay i {
        font-size: 3.5rem;
        color: white;
        text-shadow: 0 0 20px rgba(0,0,0,0.8);
    }
    .card-badge {
        position: absolute;
        top: 10px;
        left: 10px;
        background: var(--primary);
        color: white;
        padding: 0.2rem 0.7rem;
        border-radius: var(--radius-pill);
        font-size: 0.7rem;
        font-weight: 600;
        z-index: 5;
        box-shadow: 0 2px 8px rgba(0,0,0,0.5);
    }
    .rating-badge {
        position: absolute;
        bottom: 8px;
        right: 8px;
        background: rgba(0,0,0,0.7);
        backdrop-filter: blur(4px);
        color: var(--accent);
        border-radius: var(--radius-pill);
        padding: 0.1rem 0.8rem;
        font-size: 0.8rem;
        font-weight: 600;
    }
    .card-body {
        padding: 12px 14px 14px;
    }
    .card-title {
        font-weight: 700;
        font-size: 1.05rem;
        margin-bottom: 4px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .card-meta {
        font-size: 0.75rem;
        color: rgba(254,242,242,0.5);
    }

    /* horizontal scroll row */
    .poster-row {
        display: flex;
        gap: 16px;
        overflow-x: auto;
        padding-bottom: 12px;
        scrollbar-width: thin;
        scrollbar-color: var(--primary) transparent;
    }
    .poster-row::-webkit-scrollbar { height: 6px; }
    .poster-row::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 20px; }
    .poster-row .movie-card { flex: 0 0 160px; }

    /* ranking list */
    .rank-item {
        background: var(--card-bg);
        border-radius: var(--radius-card);
        padding: 0.8rem 1.2rem;
        margin-bottom: 10px;
        display: flex;
        align-items: center;
        gap: 16px;
        border: 1px solid rgba(255,255,255,0.03);
        transition: background 0.2s;
    }
    .rank-item:hover { background: #2a212a; }
    .rank-num {
        font-size: 1.8rem;
        font-weight: 900;
        color: var(--primary);
        width: 40px;
        text-align: center;
        font-family: 'Noto Serif SC', serif;
    }
    .rank-info { flex: 1; }
    .rank-info h5 { margin: 0; font-weight: 700; font-size: 1.1rem; }
    .rank-info span { font-size: 0.75rem; color: rgba(255,255,255,0.6); }

    /* categories chip */
    .chip-cat {
        background: rgba(255,255,255,0.04);
        border-radius: var(--radius-pill);
        padding: 0.6rem 1.5rem;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: var(--text);
        font-weight: 500;
        border: 1px solid rgba(255,255,255,0.05);
        transition: 0.2s;
    }
    .chip-cat:hover { background: var(--primary); border-color: var(--primary); }

    /* mood pills */
    .mood-pill {
        background: transparent;
        border: 1px solid var(--accent);
        color: var(--accent);
        border-radius: var(--radius-pill);
        padding: 0.5rem 1.6rem;
        transition: 0.2s;
    }
    .mood-pill:hover, .mood-pill.active { background: var(--accent); color: #141013; }

    /* modal */
    .movie-modal {
        position: fixed;
        inset: 0;
        z-index: 1500;
        background: rgba(0,0,0,0.5);
        backdrop-filter: blur(16px);
        display: none;
        align-items: center;
        justify-content: center;
        padding: 1rem;
    }
    .modal-content-box {
        background: var(--card-bg);
        border-radius: 24px;
        max-width: 720px;
        width: 100%;
        border: 1px solid rgba(255,255,255,0.08);
        overflow: hidden;
        position: relative;
        box-shadow: 0 30px 60px rgba(0,0,0,0.7);
    }
    .modal-bg {
        position: absolute;
        inset: 0;
        background: url('{随机图片}') center/cover no-repeat;
        filter: blur(20px) brightness(0.3);
        z-index: 0;
    }
    .modal-inner {
        position: relative;
        z-index: 2;
        padding: 2rem;
    }
    .modal-close {
        position: absolute;
        top: 10px; right: 15px;
        background: none;
        border: none;
        font-size: 2rem;
        color: white;
        z-index: 10;
        opacity: 0.8;
    }
    .star-rating { color: var(--accent); letter-spacing: 3px; }

    /* footer */
    footer {
        background: #0e0b0d;
        padding: 2.5rem 0 1rem;
        border-top: 1px solid rgba(255,255,255,0.03);
    }
    .friend-links a {
        color: rgba(255,255,255,0.7);
        margin-right: 15px;
        font-size: 0.9rem;
        border-bottom: 1px dotted rgba(255,255,255,0.3);
    }

    /* steps */
    .step-item {
        background: var(--card-bg);
        padding: 1.2rem;
        border-radius: var(--radius-card);
        border-left: 6px solid var(--primary);
    }

    /* responsive */
    @media (max-width: 768px) {
        .hero-title { font-size: 2.8rem; }
        .navbar-nav { background: rgba(20,16,19,0.95); border-radius: 20px; padding: 1rem; }
    }
    /* scroll counter */
    .count-up { font-variant-numeric: tabular-nums; }

/* --- 子页面追加 --- */
/* 确保Bootstrap组件不破坏深色风格 (若站点CSS未覆盖) */
        .card, .card-body, .card-title, .card-text, .card-header, .card-footer {
            background: var(--card-bg) !important;
            color: var(--text) !important;
            border-color: #3a2a32 !important;
        }
.form-control, .form-select {
            background: rgba(0,0,0,0.35) !important;
            color: var(--text) !important;
            border-color: #3a2a32 !important;
        }
.form-control::placeholder {
            color: rgba(255,255,255,0.45) !important;
        }
/* 导航高亮当前页 */
        .navbar .nav-link.active {
            color: var(--accent) !important;
            font-weight: 600;
        }
/* 本页小标题下划线点缀 */
        .about-section-title {
            border-left: 4px solid var(--accent);
            padding-left: 0.75rem;
        }
/* 特色卡片悬停 */
        .feature-hover:hover {
            transform: translateY(-4px);
            transition: transform 0.25s ease;
            border-color: var(--accent);
        }
/* 统计数字 */
        .stat-number {
            font-size: 2.2rem;
            font-weight: 800;
            color: var(--accent);
        }
.stat-label {
            font-size: 0.9rem;
            color: rgba(254, 242, 242, 0.7);
            letter-spacing: 0.03em;
        }
/* 时间线 */
        .timeline-item {
            border-left: 2px solid var(--primary);
            padding-left: 1.25rem;
            margin-bottom: 1.5rem;
            position: relative;
        }
.timeline-item::before {
            content: '';
            position: absolute;
            left: -7px;
            top: 6px;
            width: 12px;
            height: 12px;
            background: var(--primary);
            border-radius: 50%;
            border: 2px solid var(--bg);
        }
.timeline-year {
            font-weight: 700;
            color: var(--accent);
            margin-right: 0.5rem;
        }

/* --- 子页面追加 --- */
/* 本页专属补充样式 */
        .disclaimer-hero {
            padding: 100px 0 40px;
            background: linear-gradient(180deg, rgba(220,38,38,.08) 0%, transparent 100%);
        }
.disclaimer-section {
            padding: 24px 0;
        }
.disclaimer-section + .disclaimer-section {
            border-top: 1px solid rgba(220,38,38,.15);
            margin-top: 8px;
        }
.disclaimer-section h2 {
            color: var(--primary);
            font-size: 1.5rem;
            font-weight: 700;
            margin-bottom: 16px;
            display: flex;
            align-items: center;
            gap: 10px;
        }
.disclaimer-section h2 i {
            font-size: 1.1rem;
            opacity: .9;
        }
.disclaimer-section p {
            color: rgba(254,242,242,.85);
            line-height: 1.8;
            margin-bottom: 12px;
            font-size: .95rem;
        }
.disclaimer-section ul {
            padding-left: 20px;
            color: rgba(254,242,242,.85);
            line-height: 1.8;
            font-size: .95rem;
        }
.disclaimer-section ul li {
            margin-bottom: 6px;
        }
.disclaimer-card {
            background: var(--card-bg);
            border: 1px solid rgba(220,38,38,.2);
            border-radius: var(--radius-card);
            padding: 28px;
            margin-bottom: 20px;
        }
.disclaimer-card .date-tag {
            display: inline-block;
            background: rgba(220,38,38,.15);
            color: var(--accent);
            font-size: .8rem;
            font-weight: 500;
            padding: 4px 14px;
            border-radius: var(--radius-pill);
            margin-bottom: 16px;
        }
.disclaimer-note {
            background: rgba(220,38,38,.06);
            border-left: 3px solid var(--primary);
            padding: 16px 20px;
            border-radius: 0 12px 12px 0;
            margin: 20px 0;
            font-size: .9rem;
            color: rgba(254,242,242,.75);
            line-height: 1.7;
        }
.disclaimer-note strong {
            color: var(--accent);
        }
.disclaimer-hero { padding: 80px 0 24px; }
.disclaimer-card { padding: 20px; }
.disclaimer-section h2 { font-size: 1.25rem; }