/* roulang page: index */
:root {
      --font-code: 'Fira Code', monospace;
      --font-sans: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
      --color-primary: #0F172A;
      --color-accent: #2563EB;
      --color-emerald: #10B981;
      --color-slate: #64748B;
      --color-border: #E2E8F0;
      --color-surface: #FFFFFF;
      --color-surface-soft: #F8FAFC;
      --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
      --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
      --shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, 0.08), 0 8px 10px -6px rgba(15, 23, 42, 0.04);
    }

    html {
      scroll-behavior: smooth;
      font-family: var(--font-sans);
      color: #1E293B;
      background-color: #FFFFFF;
    }

    .font-mono-code {
      font-family: var(--font-code);
    }

    /* 细微交互与自定义组件 */
    .hero-mask {
      background: linear-gradient(135deg, rgba(15, 23, 42, 0.96) 0%, rgba(30, 41, 59, 0.94) 100%);
    }

    .badge-tag {
      display: inline-flex;
      align-items: center;
      padding: 0.25rem 0.625rem;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.025em;
    }

    .card-elevated {
      background: #FFFFFF;
      border: 1px solid var(--color-border);
      border-radius: 0.75rem;
      transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease;
    }
    .card-elevated:hover {
      transform: translateY(-3px);
      box-shadow: var(--shadow-xl);
      border-color: #CBD5E1;
    }

    .interactive-btn {
      transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .interactive-btn:active {
      transform: scale(0.98);
    }

    .timeline-dot {
      width: 14px;
      height: 14px;
      border-radius: 50%;
      border: 3px solid #2563EB;
      background: #FFFFFF;
    }

    /* 手风琴平滑动效 */
    .faq-answer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s cubic-bezier(0, 1, 0, 1), padding 0.3s ease;
    }
    .faq-answer.open {
      max-height: 500px;
      transition: max-height 0.4s ease-in-out, padding 0.3s ease;
    }
