/* roulang page: index */
:root {
            --color-bg-light: #F8FAFC;
            --color-bg-white: #FFFFFF;
            --color-bg-dark: #0F172A;
            --color-bg-carbon: #020617;
            --color-accent-emerald: #10B981;
            --color-accent-amber: #F97316;
            --color-border: #E2E8F0;
            --color-border-dark: #1E293B;
            --color-text-title: #0F172A;
            --color-text-body: #334155;
            --color-text-muted: #64748B;
            --transition-smooth: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
        }
        body {
            font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;
            background-color: var(--color-bg-light);
            color: var(--color-text-body);
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }
        .smooth-transition {
            transition: var(--transition-smooth);
        }
        .card-interactive {
            transition: var(--transition-smooth);
        }
        .card-interactive:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.08), 0 8px 10px -6px rgba(15, 23, 42, 0.04);
        }
        details > summary::-webkit-details-marker {
            display: none;
        }
        .pulse-beacon {
            position: relative;
        }
        .pulse-beacon::after {
            content: '';
            position: absolute;
            width: 8px;
            height: 8px;
            background-color: #10B981;
            border-radius: 50%;
            top: 50%;
            left: 0;
            transform: translateY(-50%);
            animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
        }
        @keyframes pulse-ring {
            0% { transform: translateY(-50%) scale(1); opacity: 1; }
            70% { transform: translateY(-50%) scale(2.8); opacity: 0; }
            100% { transform: translateY(-50%) scale(1); opacity: 0; }
        }
        .code-grid-bg {
            background-size: 32px 32px;
            background-image: 
                linear-gradient(to right, rgba(226, 232, 240, 0.4) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(226, 232, 240, 0.4) 1px, transparent 1px);
        }
        .dark-grid-bg {
            background-size: 32px 32px;
            background-image: 
                linear-gradient(to right, rgba(30, 41, 59, 0.5) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(30, 41, 59, 0.5) 1px, transparent 1px);
        }
