/* roulang page: index */
:root {
            --primary: #0F4C81;
            --primary-hover: #0a355c;
            --accent: #00A389;
            --accent-hover: #008772;
            --dark-section: #0B192C;
            --text-main: #1A202C;
            --text-muted: #64748B;
            --bg-page: #F8FAFC;
            --card-shadow: 0 10px 30px -5px rgba(2, 54, 115, 0.06);
            --card-shadow-hover: 0 20px 35px -5px rgba(2, 54, 115, 0.12);
        }
        html {
            scroll-behavior: smooth;
            font-family: system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
        }
        body {
            background-color: var(--bg-page);
            color: var(--text-main);
            overflow-x: hidden;
        }
        .custom-card {
            background: #FFFFFF;
            border: 1px solid #E2E8F0;
            box-shadow: var(--card-shadow);
            transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
        }
        .custom-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--card-shadow-hover);
            border-color: #CBD5E1;
        }
        .btn-primary {
            background-color: var(--primary);
            color: #FFFFFF;
            transition: all 0.2s ease;
        }
        .btn-primary:hover {
            background-color: var(--primary-hover);
            transform: translateY(-1px);
        }
        .btn-accent {
            background-color: var(--accent);
            color: #FFFFFF;
            transition: all 0.2s ease;
        }
        .btn-accent:hover {
            background-color: var(--accent-hover);
        }
        .code-syntax-keyword { color: #F43F5E; }
        .code-syntax-string { color: #10B981; }
        .code-syntax-prop { color: #38BDF8; }
        .code-syntax-num { color: #F59E0B; }
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s cubic-bezier(0, 1, 0, 1);
        }
        .accordion-content.open {
            max-height: 500px;
            transition: max-height 0.35s ease-in-out;
        }
