        /* 基础动画样式 */
        .animate-section {
            opacity: 0;
            transition: opacity 0.8s ease-out, transform 0.8s ease-out;
            will-change: opacity, transform;
        }
        .animate-left { transform: translateX(50px); }
        .animate-right { transform: translateX(-50px); }
        .animate-section.animate-in {
            opacity: 1;
            transform: translateX(0);
        }

        /* 移动端动画优化 */
        @media (max-width: 768px) {
            .animate-left, .animate-right {
                transform: translateX(0);
                opacity: 0;
            }
            .container, .row, .col {
                width: 100% !important;
                max-width: 100% !important;
                padding-left: 15px !important;
                padding-right: 15px !important;
                margin-left: 0 !important;
                margin-right: 0 !important;
            }
        }

        /* 回到顶部按钮 */
        .back-to-top {
            position: fixed;
            bottom: 30px;
            right: 30px;
            width: 50px;
            height: 50px;
            background-color: #0d6efd;
            color: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
            cursor: pointer;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
            transform: translateY(20px);
            z-index: 9999;
        }
        .back-to-top:hover {
            background-color: #0a58ca;
            transform: translateY(-3px);
        }
        .back-to-top.show {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        /* 导航栏优化 */
        .navbar-toggler {
            min-width: 48px;
            min-height: 48px;
            cursor: pointer;
            z-index: 1050;
        }
        .nav-link i {
            vertical-align: middle;
            margin-right: 6px;
        }

        /* 移动端下拉菜单 */
        @media (max-width: 1199.98px) {
            .navbar-collapse {
                position: relative;
                z-index: 1040;
                max-height: 0;
                overflow: hidden;
                transition: max-height .35s ease, padding .35s ease;
                padding-top: 0;
                padding-bottom: 0;
            }
            #navbarCollapse.show {
                max-height: 600px;
                padding-top: .75rem;
                padding-bottom: .75rem;
            }
            .dropdown-menu {
                position: static;
                float: none;
                width: auto;
                margin-top: 0;
                background-color: transparent;
                border: none;
                box-shadow: none;
                max-height: 0;
                overflow: hidden;
                transition: max-height .3s ease;
            }
            .dropdown-menu.show { max-height: 300px; }
            .nav-link.dropdown-toggle::after { transition: transform .25s ease; }
            .nav-link.dropdown-toggle[aria-expanded="true"]::after { transform: rotate(180deg); }
            #navbarCollapse .nav-item {
                opacity: 0;
                transform: translateY(-10px);
                transition: opacity .3s ease, transform .3s ease;
            }
            #navbarCollapse.show .nav-item {
                opacity: 1;
                transform: translateY(0);
            }
            #navbarCollapse.show .nav-item:nth-child(1) { transition-delay: .05s; }
            #navbarCollapse.show .nav-item:nth-child(2) { transition-delay: .1s; }
            #navbarCollapse.show .nav-item:nth-child(3) { transition-delay: .15s; }
            #navbarCollapse.show .nav-item:nth-child(4) { transition-delay: .2s; }
        }

        /* Logo样式 */
        .navbar-brand-item {
            max-height: 40px;
            transition: opacity 0.3s ease;
        }

        /* 深色/浅色模式切换 */
        .dark-mode .light-mode-item,
        :not(.dark-mode) .dark-mode-item { display: none; }
        .dark-mode .dark-mode-item,
        :not(.dark-mode) .light-mode-item { display: inline-block; }

        /* 页面加载动画 */
        .page-loader {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(255, 255, 255, 0.95);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 99999;
            transition: opacity 0.5s ease-out, visibility 0.5s;
        }
        .loader-spinner {
            width: 80px;
            height: 80px;
            position: relative;
            margin-bottom: 20px;
        }
        .loader-spinner::before,
        .loader-spinner::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            border-style: solid;
            border-width: 4px;
            box-sizing: border-box;
        }
        .loader-spinner::before {
            border-color: transparent;
            border-top-color: #0d6efd;
            border-right-color: #3b82f6;
            animation: spin 2s linear infinite;
            box-shadow: 0 0 15px rgba(13, 110, 253, 0.6), 0 0 30px rgba(13, 110, 253, 0.2);
        }
        .loader-spinner::after {
            width: 60px;
            height: 60px;
            top: 10px;
            left: 10px;
            border-color: transparent;
            border-bottom-color: #60a5fa;
            border-left-color: #93c5fd;
            animation: spinReverse 1.5s linear infinite;
        }
        .loader-spinner .center-dot {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 12px;
            height: 12px;
            background-color: #0d6efd;
            border-radius: 50%;
            transform: translate(-50%, -50%);
            box-shadow: 0 0 8px rgba(13, 110, 253, 0.8);
            animation: pulse 2s ease-in-out infinite;
        }
        .loader-text {
            color: #333;
            font-size: 16px;
            font-weight: 500;
            letter-spacing: 0.8px;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
            animation: fadeIn 1.5s ease-in-out infinite alternate;
        }
        .page-loader.hidden {
            opacity: 0;
            visibility: hidden;
        }

        /* 进度条样式 */
        .pace {
            pointer-events: none;
            user-select: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            z-index: 2000;
            background: #f5f9ff;
        }
        .pace .pace-progress {
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            overflow: hidden;
        }
        .pace .pace-activity {
            position: fixed;
            top: 12px;
            right: 12px;
            width: 24px;
            height: 24px;
            border: 2px solid rgba(13, 110, 253, 0.3);
            border-top: 2px solid #0d6efd;
            border-right: 2px solid #0d6efd;
            border-radius: 50%;
            animation: spin 1s linear infinite;
            box-shadow: 0 0 8px rgba(13, 110, 253, 0.5);
        }
        .pace .pace-progress-inner {
            background: linear-gradient(90deg, #0d6efd, #3b82f6, #60a5fa);
            height: 100%;
            width: 30%;
            animation: progress-animation 1.2s infinite ease-in-out;
            box-shadow: 0 0 8px rgba(13, 110, 253, 0.6);
        }
        .pace.pace-inactive {
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.3s, visibility 0.3s;
        }

        /* 动画关键帧 */
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
        @keyframes spinReverse { 0% { transform: rotate(0deg); } 100% { transform: rotate(-360deg); } }
        @keyframes pulse {
            0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; }
            50% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; }
        }
        @keyframes fadeIn { from { opacity: 0.7; } to { opacity: 1; } }
        @keyframes progress-animation {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(400%); }
        }