/* roulang page: index */
:root {
      --color-primary: #0F3E48;
      --color-secondary: #1E293B;
      --color-accent-green: #10B981;
      --color-accent-cyan: #06B6D4;
      --color-bg-base: #F8FAFC;
      --color-bg-surface: #FFFFFF;
      --color-bg-dark: #09262D;
      --color-bg-deep: #061A21;
      --color-text-main: #0F172A;
      --color-text-body: #334155;
      --color-text-muted: #64748B;
      --color-border: #E2E8F0;
    }

    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    body {
      background-color: var(--color-bg-base);
      color: var(--color-text-body);
      font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      line-height: 1.8;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      overflow-x: hidden;
    }

    a, button {
      touch-action: manipulation;
    }

    .tabular-nums {
      font-variant-numeric: tabular-nums;
    }

    /* 交互悬浮微动效 */
    .bio-card-hover {
      transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease;
    }
    .bio-card-hover:hover {
      transform: translateY(-4px);
      box-shadow: 0 14px 30px -10px rgba(15, 62, 72, 0.12);
      border-color: rgba(6, 182, 212, 0.4);
    }

    /* 聚焦轮廓 */
    a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
      outline: 2px solid var(--color-accent-cyan);
      outline-offset: 2px;
    }

    /* FAQ 手风琴动画 */
    .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: 380px;
    }
    .accordion-item.active .accordion-icon {
      transform: rotate(180deg);
    }
