/* roulang page: index */
:root {
      --color-primary: #0F172A;
      --color-primary-dark: #0A2540;
      --color-accent: #0EA5E9;
      --color-accent-green: #10B981;
      --color-surface: #F8FAFC;
      --color-surface-card: #FFFFFF;
      --color-border: #E2E8F0;
      --color-text-main: #0F172A;
      --color-text-body: #334155;
      --color-text-muted: #64748B;
      --font-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
      --font-mono: "JetBrains Mono", "Roboto Mono", monospace;
    }
    
    body {
      font-family: var(--font-sans);
      background-color: var(--color-surface);
      color: var(--color-text-body);
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    .font-mono-num {
      font-family: var(--font-mono);
    }

    .custom-shadow-card {
      box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05), 0 10px 20px -5px rgba(15, 23, 42, 0.03);
      transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .custom-shadow-card:hover {
      box-shadow: 0 12px 28px -6px rgba(14, 165, 233, 0.12), 0 4px 12px -2px rgba(15, 23, 42, 0.06);
      transform: translateY(-3px);
    }

    .glow-dot {
      animation: pulseGlow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
    }

    @keyframes pulseGlow {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(0.92); }
    }

    .accordion-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .accordion-item.active .accordion-content {
      max-height: 280px;
    }

    .accordion-item.active .accordion-icon {
      transform: rotate(180deg);
    }
