/* roulang page: index */
:root {
            --color-bg-main: #F4F6F8;
            --color-bg-card: #FFFFFF;
            --color-cyber-cyan: #00D2B4;
            --color-safety-blue: #1E40AF;
            --color-neural-amber: #F59E0B;
            --color-text-primary: #0F172A;
            --color-text-body: #334155;
            --color-text-muted: #64748B;
            --color-dark-deep: #0A0D14;
            --color-dark-surface: #121824;
            --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
        }

        body {
            font-family: var(--font-family);
            background-color: var(--color-bg-main);
            color: var(--color-text-body);
            line-height: 1.65;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
        }

        .radar-scan-line {
            background: linear-gradient(180deg, rgba(0, 210, 180, 0) 0%, rgba(0, 210, 180, 0.25) 50%, rgba(0, 210, 180, 0.7) 100%);
            animation: radarSweep 4s linear infinite;
        }

        @keyframes radarSweep {
            0% { transform: translateY(-100%); opacity: 0; }
            50% { opacity: 0.8; }
            100% { transform: translateY(1000%); opacity: 0; }
        }

        .pulse-ring {
            box-shadow: 0 0 0 0 rgba(0, 210, 180, 0.6);
            animation: pulseRing 2.4s infinite;
        }

        @keyframes pulseRing {
            0% { box-shadow: 0 0 0 0 rgba(0, 210, 180, 0.7); }
            70% { box-shadow: 0 0 0 16px rgba(0, 210, 180, 0); }
            100% { box-shadow: 0 0 0 0 rgba(0, 210, 180, 0); }
        }

        .tech-grid-pattern {
            background-size: 32px 32px;
            background-image: 
                linear-gradient(to right, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
        }

        .light-grid-pattern {
            background-size: 28px 28px;
            background-image: 
                linear-gradient(to right, rgba(15, 23, 42, 0.035) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(15, 23, 42, 0.035) 1px, transparent 1px);
        }

        .coupon-notch-left {
            position: relative;
        }
        .coupon-notch-left::before {
            content: '';
            position: absolute;
            left: -10px;
            top: 50%;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            background-color: var(--color-dark-deep);
            border-radius: 50%;
        }

        .coupon-notch-right {
            position: relative;
        }
        .coupon-notch-right::after {
            content: '';
            position: absolute;
            right: -10px;
            top: 50%;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            background-color: var(--color-dark-deep);
            border-radius: 50%;
        }

        /* 隐藏滚动条 */
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }
        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }
