/* roulang page: index */
:root {
            --brand-primary: #0d9488;
            --brand-accent: #10b981;
            --bg-base: #f8fafc;
            --text-main: #0f172a;
            --text-muted: #64748b;
            --border-light: rgba(226, 232, 240, 0.85);
            --card-shadow: 0 4px 20px -2px rgba(15, 23, 42, 0.05);
        }

        body {
            font-feature-settings: "cv02", "cv03", "cv04", "cv11";
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            background-color: var(--bg-base);
            color: var(--text-main);
        }

        .tabular-num {
            font-variant-numeric: tabular-nums;
        }

        .glass-header {
            background: rgba(255, 255, 255, 0.94);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
        }

        .border-hairline {
            border-color: var(--border-light);
        }

        .pulse-beacon {
            position: relative;
        }
        .pulse-beacon::before {
            content: '';
            position: absolute;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: inherit;
            animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
        }
        @keyframes pulse-ring {
            0% { transform: scale(0.95); opacity: 0.8; }
            50% { transform: scale(2.2); opacity: 0; }
            100% { transform: scale(2.2); opacity: 0; }
        }

        .accordion-content {
            transition: max-height 0.35s ease-out, opacity 0.3s ease-out;
            max-height: 0;
            overflow: hidden;
            opacity: 0;
        }
        .accordion-content.active {
            max-height: 480px;
            opacity: 1;
        }
