/* roulang page: index */
:root {
            --color-brand-dark: #0B131A;
            --color-brand-surface: #13222E;
            --color-brand-primary: #0B6E4F;
            --color-brand-accent: #FF6B35;
            --color-bg-canvas: #F5F8F7;
            --text-heading: #121826;
            --text-body: #475467;
            --text-muted: #98A2B3;
            --shadow-subtle: 0 4px 20px -2px rgba(11, 110, 79, 0.06);
            --shadow-elevated: 0 12px 30px -4px rgba(11, 110, 79, 0.12);
        }
        body {
            background-color: var(--color-bg-canvas);
            color: var(--text-body);
            font-size: 16px;
            line-height: 1.75;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        .text-balanced {
            letter-spacing: -0.02em;
        }
        .code-syntax-keyword { color: #FF6B35; }
        .code-syntax-string { color: #68D391; }
        .code-syntax-func { color: #63B3ED; }
        .code-syntax-comment { color: #718096; }
        .subtle-grid {
            background-size: 32px 32px;
            background-image: linear-gradient(to right, rgba(11, 110, 79, 0.04) 1px, transparent 1px),
                              linear-gradient(to bottom, rgba(11, 110, 79, 0.04) 1px, transparent 1px);
        }
        .card-transition {
            transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .card-transition:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-elevated);
        }
