/* roulang page: index */
:root {
            --bg-base: #0A0D14;
            --bg-card: #121620;
            --bg-card-alt: #181E2E;
            --primary-gradient: linear-gradient(135deg, #7928CA 0%, #00DFD8 100%);
            --glow-border: rgba(255, 255, 255, 0.08);
            --accent-orange: #FF5722;
            --accent-green: #10B981;
        }
        body {
            background-color: var(--bg-base);
            color: #94A3B8;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
            overflow-x: hidden;
        }
        .text-gradient {
            background: linear-gradient(135deg, #00DFD8 0%, #7928CA 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .text-gradient-purple {
            background: linear-gradient(135deg, #FFFFFF 20%, #A855F7 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .btn-gradient {
            background: linear-gradient(135deg, #7928CA 0%, #00DFD8 100%);
            position: relative;
            z-index: 1;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .btn-gradient:hover {
            box-shadow: 0 0 25px rgba(0, 223, 216, 0.45);
            transform: translateY(-2px);
        }
        .glass-panel {
            background: rgba(18, 22, 32, 0.75);
            backdrop-filter: blur(16px);
            border: 1px solid rgba(255, 255, 255, 0.08);
        }
        .glass-panel-hover {
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .glass-panel-hover:hover {
            border-color: rgba(0, 223, 216, 0.3);
            transform: translateY(-4px);
            box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
        }
        .pulse-live {
            box-shadow: 0 0 0 0 rgba(255, 87, 34, 0.7);
            animation: pulse-ring 1.8s infinite;
        }
        @keyframes pulse-ring {
            0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 87, 34, 0.7); }
            70% { transform: scale(1); box-shadow: 0 0 0 8px rgba(255, 87, 34, 0); }
            100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 87, 34, 0); }
        }
        .timeline-line::before {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            left: 50%;
            width: 2px;
            background: linear-gradient(180deg, #7928CA 0%, #00DFD8 100%);
            transform: translateX(-50%);
        }
        @media (max-width: 768px) {
            .timeline-line::before {
                left: 20px;
            }
        }
