/* roulang page: index */
:root {
      --primary-color: #3B4BF8;
      --accent-color: #00D2D3;
      --bg-surface: #F8FAFC;
      --text-dark: #0B0F19;
      --text-muted: #64748B;
      --radius-card: 1.25rem;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
      background-color: var(--bg-surface);
      color: #1E293B;
      overflow-x: hidden;
      line-height: 1.7;
    }
    .text-gradient {
      background: linear-gradient(135deg, #3B4BF8 0%, #00D2D3 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .bg-gradient-brand {
      background: linear-gradient(135deg, #3B4BF8 0%, #0093E9 50%, #00D2D3 100%);
    }
    .bg-dark-mesh {
      background-color: #0B0F19;
      background-image: radial-gradient(at 0% 0%, rgba(59, 75, 248, 0.18) 0px, transparent 50%),
                        radial-gradient(at 100% 100%, rgba(0, 210, 211, 0.15) 0px, transparent 50%);
    }
    .ticket-edge {
      position: relative;
    }
    .ticket-edge::before, .ticket-edge::after {
      content: '';
      position: absolute;
      top: 50%;
      width: 22px;
      height: 22px;
      background-color: #F8FAFC;
      border-radius: 50%;
      transform: translateY(-50%);
    }
    .ticket-edge::before { left: -11px; }
    .ticket-edge::after { right: -11px; }
    .accordion-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .accordion-active .accordion-content {
      max-height: 500px;
    }
    .accordion-active .accordion-icon {
      transform: rotate(180deg);
    }
