/* roulang page: index */
:root {
            --brand-primary: #0F3836;
            --brand-dark: #0A1A19;
            --accent-emerald: #10B981;
            --accent-amber: #F59E0B;
            --text-title: #0F172A;
            --text-body: #334155;
            --text-muted: #64748B;
            --bg-canvas: #F8FAFC;
        }

        body {
            background-color: var(--bg-canvas);
            color: var(--text-body);
            font-family: 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
            line-height: 1.75;
            -webkit-font-smoothing: antialiased;
        }

        .hero-mesh {
            background-color: #0F3836;
            background-image: radial-gradient(at 0% 0%, rgba(16, 185, 129, 0.15) 0px, transparent 50%),
                              radial-gradient(at 100% 100%, rgba(245, 158, 11, 0.08) 0px, transparent 50%);
        }

        .obsidian-mesh {
            background-color: #0A1A19;
            background-image: radial-gradient(at 80% 20%, rgba(16, 185, 129, 0.12) 0px, transparent 60%);
        }

        .card-elevated {
            box-shadow: 0 4px 20px -2px rgba(15, 56, 54, 0.06);
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .card-elevated:hover {
            transform: translateY(-4px);
            box-shadow: 0 16px 30px -4px rgba(15, 56, 54, 0.12);
        }

        .badge-soft {
            display: inline-flex;
            align-items: center;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.8125rem;
            font-weight: 500;
        }

        /* 隐藏原生数字输入微调按钮 */
        input::-webkit-outer-spin-button,
        input::-webkit-inner-spin-button {
            -webkit-appearance: none;
            margin: 0;
        }
        input[type=number] {
            -moz-appearance: textfield;
        }
