/* roulang page: index */
:root {
            --primary: #0F52BA;
            --primary-hover: #2563EB;
            --bg-light: #F8FAFC;
            --bg-white: #FFFFFF;
            --text-dark: #0F172A;
            --text-body: #334155;
            --text-muted: #64748B;
            --border-light: rgba(15, 82, 186, 0.08);
            --shadow-card: 0 10px 30px -5px rgba(15, 23, 42, 0.05), 0 4px 12px -2px rgba(15, 23, 42, 0.03);
            --shadow-hover: 0 20px 40px -10px rgba(15, 82, 186, 0.12), 0 8px 16px -4px rgba(15, 82, 186, 0.06);
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, sans-serif;
            background-color: var(--bg-light);
            color: var(--text-body);
            line-height: 1.75;
        }

        .font-mono-num {
            font-family: "JetBrains Mono", "DIN Alternate", monospace;
        }

        .card-custom {
            background: #ffffff;
            border: 1px solid var(--border-light);
            box-shadow: var(--shadow-card);
            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .card-custom:hover {
            box-shadow: var(--shadow-hover);
            transform: translateY(-4px);
        }

        .progress-ring-circle {
            transition: stroke-dashoffset 0.35s;
            transform: rotate(-90deg);
            transform-origin: 50% 50%;
        }

        .accordion-content {
            transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
            max-height: 0;
            opacity: 0;
            overflow: hidden;
        }

        .accordion-content.open {
            max-height: 500px;
            opacity: 1;
        }

        .drawer-mask {
            backdrop-filter: blur(4px);
        }
