/* roulang page: index */
:root {
            --primary: #7C3AED;
            --primary-dark: #6D28D9;
            --accent-emerald: #10B981;
            --accent-amber: #F59E0B;
            --bg-base: #F8FAFC;
            --text-main: #0F172A;
            --text-sub: #475569;
            --radius-card: 1.25rem;
        }
        html {
            scroll-behavior: smooth;
        }
        body {
            background-color: var(--bg-base);
            color: var(--text-main);
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
            overflow-x: hidden;
        }
        .pulse-badge {
            box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
            animation: pulse-ring 2s infinite cubic-bezier(0.66, 0, 0, 1);
        }
        @keyframes pulse-ring {
            0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
            70% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
            100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
        }
        .pulse-purple {
            animation: pulse-dot 2s infinite ease-in-out;
        }
        @keyframes pulse-dot {
            0%, 100% { opacity: 1; transform: scale(1); }
            50% { opacity: 0.4; transform: scale(0.9); }
        }
        details > summary::-webkit-details-marker {
            display: none;
        }
        details summary {
            list-style: none;
        }
