/* Reset and base styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* CSS Variables for Theme Support */
:root {
    /* Light theme colors */
    --bg-primary: #ffffff;
    --bg-secondary: #f9fafb;
    --bg-tertiary: #f8fafc;
    --text-primary: #1f2937;
    --text-secondary: #374151;
    --text-tertiary: #6b7280;
    --text-quaternary: #9ca3af;
    --border-primary: #e5e7eb;
    --border-secondary: rgba(229, 231, 235, 0.3);
    --border-color: #e5e7eb;
    --accent-primary: #4285f4;
    --accent-hover: #3367d6;
    --primary-color: #4285f4;
    --hover-bg: #f3f4f6;
    --shadow-light: rgba(0, 0, 0, 0.05);
    --shadow-medium: rgba(0, 0, 0, 0.1);
    --shadow-heavy: rgba(0, 0, 0, 0.15);
    --header-bg: rgba(255, 255, 255, 0.8);
    --card-bg: #f8fafc;
    --card-border: #4285f4;
}

/* Dark theme colors */
[data-theme="dark"] {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-tertiary: #334155;
    --text-primary: #f1f5f9;
    --text-secondary: #e2e8f0;
    --text-tertiary: #cbd5e1;
    --text-quaternary: #94a3b8;
    --border-primary: #334155;
    --border-secondary: rgba(51, 65, 85, 0.3);
    --border-color: #334155;
    --accent-primary: #60a5fa;
    --accent-hover: #3b82f6;
    --primary-color: #60a5fa;
    --hover-bg: #334155;
    --shadow-light: rgba(0, 0, 0, 0.2);
    --shadow-medium: rgba(0, 0, 0, 0.3);
    --shadow-heavy: rgba(0, 0, 0, 0.4);
    --header-bg: rgba(15, 23, 42, 0.8);
    --card-bg: #1e293b;
    --card-border: #60a5fa;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: var(--text-secondary);
    background-color: var(--bg-primary);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Header and Navigation */
.header {
    background: var(--header-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border-secondary);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 3px var(--shadow-medium);
}

.nav {
    /* display: flex; */
    align-items: center;
    justify-content: space-between;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    height: 64px;
}

.logo {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
}

.nav-left {
    display: flex;
    align-items: center;
    gap: 16px;
    grid-column: 1; /* 放在第一栏 */
    justify-self: start; /* 靠左 */
}

.nav-center {
    display: flex;
    gap: 32px;
    justify-content: flex-start;
    grid-column: 2; /* 放在第二栏 */
    justify-self: center; /* 自身居中 */
    left: 50%;
}

.nav-link {
    text-decoration: none;
    color: var(--text-tertiary);
    font-weight: 400;
    transition: color 0.2s;
}

.nav-link:hover {
    color: var(--text-primary);
}

.nav-right {
    display: flex;
    align-items: center;
    gap: 16px;
    grid-column: 3; /* 放在第三栏 */
    justify-self: end; /* 靠右 */
}

.search-box {
    display: flex;
    align-items: center;
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    padding: 8px 12px;
    width: 240px;
}

.search-box input {
    border: none;
    background: none;
    outline: none;
    flex: 1;
    font-size: 14px;
    color: var(--text-secondary);
}

.search-box input::placeholder {
    color: var(--text-quaternary);
}

.search-btn {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 16px;
    color: var(--text-tertiary);
}

.team-title {
    font-size: 2.5em; /* 较大的字体 */
    font-weight: bold;
    margin-bottom: 30px;
}

footer {
    background-color: #ffffff; /* 深紫色背景 */
    color: #000000; /* 白色文字 */
    padding: 20px;
    text-align: center;
    font-size: 1.2em;
    font-weight: bold;
    
    /* (图标无法直接从CSS创建，这里用文字代替) */
    /* 如果需要图标，可以使用 Font Awesome 或 SVG */
}


.theme-toggle-btn {
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    padding: 8px 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 40px;
}

.theme-toggle-btn:hover {
    background: var(--bg-tertiary);
    border-color: var(--accent-primary);
}

.theme-icon {
    font-size: 18px;
    transition: transform 0.3s ease;
    display: block;
}

/* Language Selector Styles */
.language-selector {
    position: relative;
    display: inline-block;
}

.current-lang-btn {
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    padding: 8px 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 100px;
    height: 40px;
    font-size: 14px;
    color: var(--text-secondary);
    font-weight: 500;
}

.current-lang-btn:hover {
    background: var(--bg-tertiary);
    border-color: var(--accent-primary);
}

.lang-text {
    flex: 1;
    text-align: left;
}

.lang-arrow {
    font-size: 12px;
    transition: transform 0.2s ease;
    color: var(--text-tertiary);
}

.language-selector.active .lang-arrow {
    transform: rotate(180deg);
}

.lang-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-primary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    box-shadow: 0 4px 12px var(--shadow-medium);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all 0.2s ease;
    margin-top: 4px;
}

.language-selector.active .lang-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.lang-option {
    width: 100%;
    padding: 12px 16px;
    border: none;
    background: none;
    text-align: left;
    cursor: pointer;
    font-size: 14px;
    color: var(--text-secondary);
    transition: background-color 0.2s ease;
    border-radius: 0;
}

.lang-option:first-child {
    border-top-left-radius: 7px;
    border-top-right-radius: 7px;
}

.lang-option:last-child {
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px;
}

.lang-option:hover {
    background: var(--bg-secondary);
}

.lang-option.active {
    background: var(--accent-primary);
    color: white;
}

.lang-option.active:hover {
    background: var(--accent-hover);
}

.try-gemini-btn {
    background: var(--accent-primary);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 6px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s;
}

.try-gemini-btn:hover {
    background: var(--accent-hover);
}

/* Mobile language selector styles */
.mobile-language-selector {
    margin-bottom: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--border-color);
}

.mobile-lang-header {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.mobile-lang-options {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mobile-lang-option {
    background: none;
    border: 1px solid var(--border-color);
    color: var(--text-primary);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.9rem;
    text-align: left;
}

.mobile-lang-option:hover {
    background: var(--hover-bg);
    border-color: var(--primary-color);
}

.mobile-lang-option.active {
    background: var(--primary-color);
    color: var(--bg-primary);
    border-color: var(--primary-color);
}

/* Mobile Menu Styles */
.mobile-menu-btn {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    width: 40px;
    height: 40px;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}

.mobile-menu-btn:hover {
    background: var(--bg-secondary);
}

.hamburger-line {
    width: 20px;
    height: 2px;
    background: var(--text-primary);
    margin: 2px 0;
    transition: all 0.3s ease;
    border-radius: 1px;
}

.mobile-menu-btn.active .hamburger-line:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.mobile-menu-btn.active .hamburger-line:nth-child(2) {
    opacity: 0;
}

.mobile-menu-btn.active .hamburger-line:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -6px);
}

.mobile-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-primary);
    border-bottom: 1px solid var(--border-primary);
    box-shadow: 0 4px 12px var(--shadow-medium);
    z-index: 99;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
}

.mobile-menu.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.mobile-menu-content {
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.mobile-nav-link {
    text-decoration: none;
    color: var(--text-secondary);
    font-weight: 500;
    font-size: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-secondary);
    transition: color 0.2s ease;
}

.mobile-nav-link:hover {
    color: var(--accent-primary);
}

.mobile-nav-link:last-of-type {
    border-bottom: none;
}

.mobile-menu-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid var(--border-secondary);
}

.mobile-theme-toggle-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    padding: 12px 16px;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 14px;
    color: var(--text-secondary);
    font-weight: 500;
}

.mobile-theme-toggle-btn:hover {
    background: var(--bg-tertiary);
    border-color: var(--accent-primary);
}

.mobile-try-btn {
    background: var(--accent-primary);
    color: white;
    border: none;
    padding: 12px 16px;
    border-radius: 8px;
    font-weight: 500;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.2s;
}

.mobile-try-btn:hover {
    background: var(--accent-hover);
}

/* Responsive Design */
@media (max-width: 768px) {
    .nav-center {
        display: none;
    }
    
    .nav-right .theme-toggle-btn,
    .nav-right .try-gemini-btn,
    .nav-right .language-selector {
        display: none;
    }
    
    .mobile-menu-btn {
        display: flex;
    }
    
    .mobile-menu {
        display: block;
    }
    
    .nav {
        padding: 0 16px;
    }
    
    .main {
        padding: 0 16px;
    }
}

/* Main content */
.main {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Hero section */
.hero {
    padding: 48px 0 32px;
    text-align: center;
}

.breadcrumb {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-tertiary);
    letter-spacing: 0.5px;
    margin-bottom: 16px;
}

.hero-title {
    font-size: 48px;
    font-weight: 400;
    color: var(--text-primary);
    margin-bottom: 24px;
    line-height: 1.2;
    max-width: 1112px;
    margin-left: auto;
    margin-right: auto;
}

.hero-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    font-size: 14px;
    color: var(--text-tertiary);
    margin-bottom: 32px;
}

.date {
    color: var(--text-tertiary);
}

.authors {
    display: flex;
    align-items: center;
    gap: 4px;
}

.team-name {
    font-size: 18px;
    font-weight: 500;
    color: var(--text-secondary);
}

.author-link {
    color: var(--accent-primary);
    text-decoration: none;
}

.author-link:hover {
    text-decoration: underline;
}

/* Hero buttons */
.hero-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 32px;
    flex-wrap: wrap;
}

.hero-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.2s ease;
    border: 1px solid var(--border-primary);
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.hero-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px var(--shadow-medium);
    border-color: var(--accent-primary);
}

.github-btn:hover {
    background: #24292e;
    color: white;
    border-color: #24292e;
}

.huggingface-btn:hover {
    background: #ff9d00;
    color: white;
    border-color: #ff9d00;
}

.paper-btn:hover {
    background: var(--accent-primary);
    color: white;
    border-color: var(--accent-primary);
}

.btn-icon {
    font-size: 16px;
}

/* Hero description */
.hero-description {
    max-width: 1112px;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1.6;
    color: var(--text-secondary);
    text-align: left;
}

/* Project showcase */
.project-showcase {
    margin: 48px 0;
}

.showcase-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px var(--shadow-medium);
}

.showcase-item {
    aspect-ratio: 1;
    position: relative;
    overflow: hidden;
}

.showcase-image {
    width: 100%;
    height: 100%;
    position: relative;
    background-size: cover;
    background-position: center;
}

/* Scene backgrounds using CSS gradients and shapes */
.forest-scene {
    background: linear-gradient(135deg, #2d5016 0%, #4a7c59 50%, #8fbc8f 100%);
}

.desert-scene {
    background: linear-gradient(135deg, #d2691e 0%, #daa520 50%, #f4a460 100%);
}

.sky-scene {
    background: linear-gradient(135deg, #87ceeb 0%, #4682b4 50%, #1e90ff 100%);
}

.city-scene {
    background: linear-gradient(135deg, #696969 0%, #2f4f4f 50%, #708090 100%);
}

.scene-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.character, .character-mining, .flying-object, .city-character {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #ff6b6b;
    position: relative;
}

.character-mining {
    background: #4ecdc4;
}

.flying-object {
    background: #ffe66d;
    border-radius: 20px;
}

.city-character {
    background: #a8e6cf;
}

/* Content section */
.content {
    margin: 48px 0;
}

.content-wrapper {
    max-width: 1112px;
    margin: 0 auto;
}

.intro-text {
    font-size: 18px;
    font-weight: 500;
    color: var(--text-primary);
    margin-bottom: 32px;
    line-height: 1.7;
}

.content p {
    font-size: 16px;
    color: var(--text-secondary);
    margin-bottom: 24px;
    line-height: 1.7;
}

.content-link {
    color: var(--accent-primary);
    text-decoration: none;
}

.content-link:hover {
    text-decoration: underline;
}

/* New styles for structured content */
.section-subtitle {
    font-size: 24px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 40px 0 20px 0;
    border-bottom: 2px solid var(--border-primary);
    padding-bottom: 8px;
    text-align: center;
}

.subsection-title {
    font-size: 20px;
    font-weight: 500;
    color: var(--text-secondary);
    margin: 32px 0 16px 0;
}

.achievement-list, .training-stages {
    list-style: none;
    padding: 0;
    margin: 24px 0;
}

.achievement-list li, .training-stages li {
    background: var(--card-bg);
    border-left: 4px solid var(--card-border);
    padding: 16px 20px;
    margin-bottom: 12px;
    border-radius: 0 8px 8px 0;
    box-shadow: 0 2px 4px var(--shadow-light);
}

.achievement-list li strong, .training-stages li strong {
    color: var(--text-primary);
}

/* Video games section */
.video-games-section {
    margin: 80px 0;
}

.section-title {
    font-size: 32px;
    font-weight: 400;
    color: var(--text-primary);
    margin-bottom: 48px;
    text-align: center;
}

.games-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 32px;
    border-radius: 12px;
    overflow: hidden;
}

.game-item {
    aspect-ratio: 1;
    overflow: hidden;
}

.game-image {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease;
}

.game-image:hover {
    transform: scale(1.05);
}

/* Game backgrounds - using various gradients to simulate different game environments */
.genshin-impact { 
    background: linear-gradient(45deg, #4a90e2, #87ceeb);
    position: relative;
}
.genshin-impact::after {
    content: "Genshin Impact";
    position: absolute;
    bottom: 8px;
    left: 8px;
    color: white;
    font-size: 12px;
    font-weight: 600;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

.honkai-star-rail { 
    background: linear-gradient(45deg, #9b59b6, #e74c3c);
    position: relative;
}
.honkai-star-rail::after {
    content: "Honkai: Star Rail";
    position: absolute;
    bottom: 8px;
    left: 8px;
    color: white;
    font-size: 12px;
    font-weight: 600;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

.wuthering-waves { 
    background: linear-gradient(45deg, #2ecc71, #3498db);
    position: relative;
}
.wuthering-waves::after {
    content: "Wuthering Waves";
    position: absolute;
    bottom: 8px;
    left: 8px;
    color: white;
    font-size: 12px;
    font-weight: 600;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

.black-myth-wukong { 
    background: linear-gradient(45deg, #34495e, #f39c12);
    position: relative;
}
.black-myth-wukong::after {
    content: "Black Myth: Wukong";
    position: absolute;
    bottom: 8px;
    left: 8px;
    color: white;
    font-size: 12px;
    font-weight: 600;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
}

.game1 { background: linear-gradient(45deg, #2d5016, #4a7c59); }
.game2 { background: linear-gradient(45deg, #8b4513, #daa520); }
.game3 { background: linear-gradient(45deg, #4682b4, #87ceeb); }
.game4 { background: linear-gradient(45deg, #2f4f4f, #708090); }
.game5 { background: linear-gradient(45deg, #800080, #dda0dd); }
.game6 { background: linear-gradient(45deg, #ff4500, #ffa500); }
.game7 { background: linear-gradient(45deg, #006400, #32cd32); }
.game8 { background: linear-gradient(45deg, #8b0000, #dc143c); }
.game9 { background: linear-gradient(45deg, #191970, #4169e1); }
.game10 { background: linear-gradient(45deg, #556b2f, #9acd32); }
.game11 { background: linear-gradient(45deg, #8b4513, #cd853f); }
.game12 { background: linear-gradient(45deg, #483d8b, #9370db); }
.game13 { background: linear-gradient(45deg, #2e8b57, #98fb98); }
.game14 { background: linear-gradient(45deg, #b22222, #fa8072); }
.game15 { background: linear-gradient(45deg, #4b0082, #9932cc); }
.game16 { background: linear-gradient(45deg, #008b8b, #40e0d0); }

.games-description {
    text-align: center;
    font-style: italic;
    color: var(--text-tertiary);
    margin-bottom: 32px;
}

/* Responsive design */
@media (max-width: 1024px) {
    .nav {
        padding: 0 16px;
    }
    
    .main {
        padding: 0 16px;
    }
    
    .hero-title {
        font-size: 40px;
    }
    
    .showcase-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .games-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .nav-center {
        display: none;
    }
    
    .search-box {
        width: 180px;
    }
    
    .hero-title {
        font-size: 32px;
    }
    
    .showcase-grid {
        grid-template-columns: 1fr 1fr;
    }
    
    .games-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .section-title {
        font-size: 28px;
    }
}

@media (max-width: 480px) {
    .nav {
        flex-wrap: wrap;
        height: auto;
        padding: 12px 16px;
    }
    
    .nav-right {
        width: 100%;
        margin-top: 12px;
        justify-content: space-between;
    }
    
    .search-box {
        flex: 1;
        margin-right: 12px;
    }
    
    .hero-title {
        font-size: 28px;
    }
    
    .showcase-grid {
        grid-template-columns: 1fr;
    }
    
    .games-grid {
        grid-template-columns: 1fr 1fr;
        gap: 4px;
    }
}

/* Animation effects */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-content {
    animation: fadeInUp 0.8s ease-out;
}

.showcase-item {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.showcase-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px var(--shadow-heavy);
}


#main-video-container {
    /* 视频容器的宽度与段落宽度一致 */
    max-width: 1112px;
    width: 100%;
    margin: 0 auto;
    
    /* 使用现代的aspect-ratio属性保持16:9比例 */
    aspect-ratio: 16 / 9;
    
    /* 备用方案：使用padding-top方法 */
    position: relative;
    
    /* 其他美化样式 */
    background-color: #000; /* 加载时显示黑色背景 */
    border-radius: 12px; /* 圆角 */
    overflow: hidden; /* 隐藏 iframe 溢出的部分（确保圆角生效） */
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); /* 添加一点阴影 */
}

/* 为不支持aspect-ratio的旧浏览器提供备用方案 */
@supports not (aspect-ratio: 16 / 9) {
    #main-video-container {
        padding-top: 56.25%;
    }
    
    #main-video-container iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
}

/* iframe 样式 */
#main-video-container iframe {
    /* 填满父容器 */
    width: 100%;
    height: 100%;
    /* 移除 iframe 默认可能带有的边框 */
    border: none;
}

/* 为支持aspect-ratio的现代浏览器优化 */
@supports (aspect-ratio: 16 / 9) {
    #main-video-container iframe {
        position: static;
    }
}

/*
snippets
*/


/* --- 视频网格容器 --- */
.video-grid-container {
    display: grid;
    /* 关键：创建4个等宽的列 */
    grid-template-columns: repeat(3, 1fr); 
    
    /* 行与行、列与列之间的间隙 */
    gap: 50px; 
    
    /* 整个网格的内边距 */
    padding: 40px 20px 20px 20px;
    
    /* 设置一个最大宽度，在大屏幕上居中显示 */
    max-width: 100%;
    margin: 0 auto;
    margin-bottom: 40px;
}

/* --- 单个视频项 --- */
.video-item {
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden; /* 确保视频的圆角正确显示 */
    display: flex;
    flex-direction: column; /* 让内容垂直排列 */
}

/* --- 视频播放器 --- */
.video-item video {
    width: 100%; /* 关键：让视频宽度占满其容器 */
    height: auto; /* 保持视频的宽高比 */
    display: block; /* 移除视频下方的空白 */
}

/* --- 视频下方的标题 (Caption) --- */
.video-item .caption {
    padding: 12px 15px;
    text-align: center;
    font-size: 14px;
    color: #333;
    margin: 0; /* 移除 p 标签的默认边距 */
    /* 如果标题太长，可以用省略号显示 */
    /*
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    */
}

/* --- 响应式设计：适应不同屏幕 --- */

/* 在平板电脑屏幕上 (例如宽度小于 992px)，变为2列 */
@media (max-width: 992px) {
    .video-grid-container {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
        padding: 30px 15px 15px 15px;
    }
}

/* 在手机屏幕上 (例如宽度小于 768px)，变为1列 */
@media (max-width: 768px) {
    .video-grid-container {
        grid-template-columns: 1fr;
        padding: 20px 10px 10px 10px;
        gap: 20px;
    }
    
    .video-item .caption {
        font-size: 13px;
        padding: 10px 12px;
    }
}

/* 在小手机屏幕上 (例如宽度小于 480px)，进一步优化 */
@media (max-width: 480px) {
    .video-grid-container {
        grid-template-columns: 1fr;
        padding: 15px 8px 8px 8px;
        gap: 15px;
    }
    
    .video-item .caption {
        font-size: 12px;
        padding: 8px 10px;
    }
}

.snippet_title {
  /* 字体大小：让文字稍微突出 */
  font-size: 1.5em; 
  /* 字体粗细：使其更醒目 */
  font-weight: bold; 
  /* 颜色：使用主要文本颜色变量，支持夜间主题 */
  color: var(--text-primary); 
  /* 文本居中 */
  text-align: center; 
  /* 顶部和底部增加一些空间，使其不贴边 */
  margin: 20px 0; 
  /* 行高：提高阅读舒适度 */
  line-height: 1.2; 
}

/* Video Carousel Styles */
.video-carousel-section {
    max-width: 1200px;
    margin: 30px auto 60px auto;
    padding: 0 24px;
}

.carousel-title {
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--text-primary);
    text-align: center;
    margin-bottom: 40px;
    line-height: 1.2;
}

.video-carousel-container {
    position: relative;
    background: transparent; /* 去除背景 */
    border-radius: 0; /* 去除圆角 */
    overflow: visible;
    box-shadow: none; /* 去除阴影 */
    border: none; /* 去除边框 */
    height: 300px; /* Fixed height for container */
    display: flex;
    align-items: center;
    justify-content: center;
}

.video-carousel {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video-slide {
    position: absolute;
    width: 400px;
    height: auto; /* 让高度自适应内容 */
    display: flex;
    flex-direction: column;
    opacity: 0;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    transform: scale(0.8);
    pointer-events: none; /* Disable interactions for hidden slides */
}

.video-slide.active {
    opacity: 1;
    transform: scale(1) translateX(0); /* Center position */
    z-index: 3;
    pointer-events: auto;
}

.video-slide.adjacent {
    opacity: 0.7;
    transform: scale(0.85);
    z-index: 2;
    cursor: pointer;
    pointer-events: auto;
}

/* Left adjacent video */
.video-slide.adjacent.left {
    transform: scale(0.85) translateX(-450px);
}

/* Right adjacent video */
.video-slide.adjacent.right {
    transform: scale(0.85) translateX(450px);
}

.video-slide.adjacent:hover {
    opacity: 0.9;
    transform: scale(0.9) translateX(-450px);
}

.video-slide.adjacent.right:hover {
    transform: scale(0.9) translateX(450px);
}

.video-slide video,
.video-slide iframe {
    width: 100%;
    aspect-ratio: 16 / 9; /* 保持 16:9 宽高比 */
    object-fit: cover;
    background: var(--bg-secondary);
    border: none;
    border-radius: 12px;
}

.video-info {
    padding: 24px;
    background: var(--card-bg);
    display: none; /* 暂时隐藏 video-info */
}

.video-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 8px;
    line-height: 1.3;
}

.video-description {
    font-size: 1rem;
    color: var(--text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* Navigation Buttons */
.carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

[data-theme="dark"] .carousel-nav {
    background: rgba(30, 41, 59, 0.9);
    color: var(--text-primary);
}

.carousel-nav:hover {
    background: rgba(255, 255, 255, 1);
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

[data-theme="dark"] .carousel-nav:hover {
    background: rgba(30, 41, 59, 1);
}

.prev-btn {
    left: -24px;
}

.next-btn {
    right: -24px;
}

.carousel-nav svg {
    color: var(--text-primary);
}

/* Indicators */
.carousel-indicators {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
}

.indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: none;
    background: rgba(200, 200, 200, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
}

[data-theme="dark"] .indicator {
    background: rgba(241, 245, 249, 0.3);
}

.indicator.active {
    background: var(--accent-primary);
    transform: scale(1.2);
}

.indicator:hover {
    background: rgba(255, 255, 255, 0.8);
    transform: scale(1.1);
}

[data-theme="dark"] .indicator:hover {
    background: rgba(241, 245, 249, 0.6);
}

/* Responsive Design */
@media (max-width: 992px) {
    .video-carousel-section {
        margin: 30px auto 50px auto;
        padding: 0 20px;
    }
    
    .video-carousel-container {
        height: 250px;
    }
    
    .video-slide {
        width: 300px;
    }
    
    .video-slide.adjacent.left {
        transform: scale(0.8) translateX(-320px);
    }
    
    .video-slide.adjacent.right {
        transform: scale(0.8) translateX(320px);
    }
    
    .video-slide.adjacent:hover {
        transform: scale(0.85) translateX(-320px);
    }
    
    .video-slide.adjacent.right:hover {
        transform: scale(0.85) translateX(320px);
    }
}

@media (max-width: 768px) {
    .video-carousel-section {
        margin: 40px auto;
        padding: 0 16px;
    }
    
    .carousel-title {
        font-size: 2rem;
        margin-bottom: 24px;
    }
    
    .video-carousel-container {
        padding: 0 40px;
        height: 200px;
    }
    
    .video-slide {
        width: 280px;
        margin: 0 5px;
    }
    
    /* 在移动端隐藏相邻视频，只显示当前视频 */
    .video-slide.adjacent {
        opacity: 0;
        pointer-events: none;
    }
    
    .video-slide video,
    .video-slide iframe {
        aspect-ratio: 16 / 9;
    }
    
    .video-info {
        padding: 12px;
    }
    
    .video-title {
        font-size: 1.1rem;
    }
    
    .video-description {
        font-size: 0.9rem;
    }
    
    .carousel-nav {
        width: 36px;
        height: 36px;
    }
    
    .prev-btn {
        left: 8px;
    }
    
    .next-btn {
        right: 8px;
    }
}

@media (max-width: 480px) {
    .video-carousel-container {
        padding: 0 20px;
        height: 180px;
    }
    
    .video-slide {
        width: 260px;
        margin: 0 2px;
    }
    
    .video-slide video,
    .video-slide iframe {
        aspect-ratio: 16 / 9;
    }
    
    .video-info {
        padding: 8px;
    }
    
    .video-title {
        font-size: 1rem;
    }
    
    .video-description {
        font-size: 0.8rem;
    }
    
    .carousel-nav {
        width: 32px;
        height: 32px;
    }
    
    .prev-btn {
        left: 4px;
    }
    
    .next-btn {
        right: 4px;
    }
}

/* Footer Styles */
.footer {
    background: var(--bg-secondary);
    border-top: 1px solid var(--border-primary);
    margin-top: 80px;
    padding: 60px 0 0;
}

.footer-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 48px;
}

.footer-section {
    display: flex;
    flex-direction: column;
}

.footer-logo .logo {
    font-size: 24px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 12px;
}

.footer-tagline {
    color: var(--text-tertiary);
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

.footer-title {
    color: var(--text-primary);
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 20px;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-link {
    color: var(--text-tertiary);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s ease;
}

.footer-link:hover {
    color: var(--accent-primary);
}

.footer-bottom {
    border-top: 1px solid var(--border-primary);
    margin-top: 48px;
    padding: 24px 0;
}

.footer-bottom-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.copyright {
    color: var(--text-quaternary);
    font-size: 14px;
    margin: 0;
}

.footer-bottom-links {
    display: flex;
    gap: 24px;
}

.footer-bottom-link {
    color: var(--text-quaternary);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s ease;
}

.footer-bottom-link:hover {
    color: var(--accent-primary);
}

/* Footer Responsive Design */
@media (max-width: 768px) {
    .footer {
        padding: 40px 0 0;
        margin-top: 60px;
    }
    
    .footer-content {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 0 20px;
    }
    
    .footer-section {
        text-align: center;
    }
    
    .footer-bottom-content {
        flex-direction: column;
        gap: 16px;
        text-align: center;
        padding: 0 20px;
    }
    
    .footer-bottom-links {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .footer-bottom-links {
        flex-direction: column;
        gap: 12px;
    }
}