/* roulang page: index */
:root {
            --brand-cyan: #00C48C;
            --brand-blue: #0B5CFF;
            --amber-warn: #FF9F1C;
            --dark-bg: #0B0F19;
            --card-dark: #131B2E;
            --card-light: #FFFFFF;
            --text-main: #0F172A;
            --text-sub: #64748B;
            --border-soft: rgba(226, 232, 240, 0.8);
            --border-glow: rgba(255, 255, 255, 0.12);
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;
            background-color: #F8FAFC;
            color: var(--text-main);
            line-height: 1.6;
            overflow-x: hidden;
        }

        /* 渐变文本与背景 */
        .text-brand-gradient {
            background: linear-gradient(135deg, var(--brand-cyan) 0%, var(--brand-blue) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .bg-brand-gradient {
            background: linear-gradient(135deg, var(--brand-cyan) 0%, var(--brand-blue) 100%);
        }

        .border-brand-gradient {
            border-image: linear-gradient(135deg, var(--brand-cyan), var(--brand-blue)) 1;
        }

        /* 呼吸光点 */
        .pulse-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: var(--brand-cyan);
            box-shadow: 0 0 0 0 rgba(0, 196, 140, 0.7);
            animation: pulse-ring 2s infinite;
        }

        @keyframes pulse-ring {
            0% {
                transform: scale(0.95);
                box-shadow: 0 0 0 0 rgba(0, 196, 140, 0.7);
            }
            70% {
                transform: scale(1);
                box-shadow: 0 0 0 8px rgba(0, 196, 140, 0);
            }
            100% {
                transform: scale(0.95);
                box-shadow: 0 0 0 0 rgba(0, 196, 140, 0);
            }
        }

        /* 大卡交互与阴影 */
        .tech-card {
            background: #FFFFFF;
            border: 1px solid var(--border-soft);
            border-radius: 20px;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .tech-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 20px 35px -10px rgba(11, 92, 255, 0.12);
            border-color: rgba(11, 92, 255, 0.3);
        }

        .dark-tech-card {
            background: var(--card-dark);
            border: 1px solid var(--border-glow);
            border-radius: 20px;
            transition: all 0.3s ease;
        }

        .dark-tech-card:hover {
            border-color: rgba(0, 196, 140, 0.4);
            box-shadow: 0 16px 30px -8px rgba(0, 196, 140, 0.2);
            transform: translateY(-3px);
        }

        /* 手风琴平滑展开 */
        details summary::-webkit-details-marker {
            display: none;
        }
        details summary {
            list-style: none;
        }
        details[open] summary .faq-icon {
            transform: rotate(180deg);
        }

        /* 徽章胶囊 */
        .badge-capsule {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 4px 12px;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 600;
            background: rgba(0, 196, 140, 0.12);
            color: #00875A;
            border: 1px solid rgba(0, 196, 140, 0.25);
        }

        .badge-warning {
            background: rgba(255, 159, 28, 0.12);
            color: #C05621;
            border: 1px solid rgba(255, 159, 28, 0.25);
        }
