/* roulang page: index */
:root {
            --bg-deep: #0B0D13;
            --card-bg: #131622;
            --border-subtle: rgba(255, 255, 255, 0.08);
            --gradient-brand: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%);
        }
        * {
            box-sizing: border-box;
            scroll-behavior: smooth;
        }
        body {
            background-color: var(--bg-deep);
            color: #9CA3AF;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
            overflow-x: hidden;
        }
        .text-gradient {
            background: var(--gradient-brand);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
        .btn-gradient {
            background: var(--gradient-brand);
            color: #FFFFFF;
            transition: all 0.3s ease;
        }
        .btn-gradient:hover {
            opacity: 0.92;
            transform: translateY(-2px);
            box-shadow: 0 10px 25px -5px rgba(236, 72, 153, 0.4);
        }
        .glass-header {
            background: rgba(11, 13, 19, 0.88);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
        }
        .card-stream {
            background: rgba(19, 22, 34, 0.85);
            border: 1px solid var(--border-subtle);
            transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .card-stream:hover {
            border-color: rgba(139, 92, 246, 0.4);
            transform: translateY(-4px);
            box-shadow: 0 15px 30px -10px rgba(139, 92, 246, 0.2);
        }
        /* Hide scrollbar */
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }
        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }

/* roulang page: category1 */
:root {
      --bg-deep: #0B0D13;
      --card-bg: #131622;
      --border-subtle: rgba(255, 255, 255, 0.08);
      --gradient-brand: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%);
    }
    body {
      background-color: var(--bg-deep);
      color: #9CA3AF;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      overflow-x: hidden;
    }
    .text-gradient {
      background: var(--gradient-brand);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .btn-gradient {
      background: var(--gradient-brand);
      color: #FFFFFF;
      transition: all 0.3s ease;
    }
    .btn-gradient:hover {
      opacity: 0.92;
      transform: translateY(-2px);
      box-shadow: 0 10px 25px -5px rgba(236, 72, 153, 0.4);
    }
    .glass-header {
      background: rgba(11, 13, 19, 0.88);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .card-stream {
      background: rgba(19, 22, 34, 0.85);
      border: 1px solid var(--border-subtle);
      transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-stream:hover {
      border-color: rgba(139, 92, 246, 0.4);
      transform: translateY(-4px);
      box-shadow: 0 15px 30px -10px rgba(139, 92, 246, 0.2);
    }
    /* 隐藏原生滚动条 */
    .no-scrollbar::-webkit-scrollbar {
      display: none;
    }
    .no-scrollbar {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

/* roulang page: category2 */
:root {
      --bg-deep: #0B0D13;
      --card-bg: #131622;
      --border-subtle: rgba(255, 255, 255, 0.08);
      --gradient-brand: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%);
    }
    body {
      background-color: var(--bg-deep);
      color: #9CA3AF;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      overflow-x: hidden;
    }
    .text-gradient {
      background: var(--gradient-brand);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .btn-gradient {
      background: var(--gradient-brand);
      color: #FFFFFF;
      transition: all 0.3s ease;
    }
    .btn-gradient:hover {
      opacity: 0.92;
      transform: translateY(-2px);
      box-shadow: 0 10px 25px -5px rgba(236, 72, 153, 0.4);
    }
    .glass-header {
      background: rgba(11, 13, 19, 0.88);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .card-stream {
      background: rgba(19, 22, 34, 0.85);
      border: 1px solid var(--border-subtle);
      transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-stream:hover {
      border-color: rgba(139, 92, 246, 0.4);
      transform: translateY(-4px);
      box-shadow: 0 15px 30px -10px rgba(139, 92, 246, 0.2);
    }
    .badge-chip {
      display: inline-flex;
      align-items: center;
      padding: 0.2rem 0.65rem;
      border-radius: 9999px;
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    details > summary::-webkit-details-marker {
      display: none;
    }
    details[open] summary svg {
      transform: rotate(180deg);
    }

/* roulang page: category3 */
:root {
  --bg-deep: #0B0D13;
  --card-bg: #131622;
  --border-subtle: rgba(255, 255, 255, 0.08);
  --gradient-brand: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%);
}
body {
  background-color: var(--bg-deep);
  color: #9CA3AF;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  overflow-x: hidden;
}
.text-gradient {
  background: var(--gradient-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.btn-gradient {
  background: var(--gradient-brand);
  color: #FFFFFF;
  transition: all 0.3s ease;
}
.btn-gradient:hover {
  opacity: 0.92;
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(236, 72, 153, 0.4);
}
.glass-header {
  background: rgba(11, 13, 19, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.card-stream {
  background: rgba(19, 22, 34, 0.85);
  border: 1px solid var(--border-subtle);
  transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.card-stream:hover {
  border-color: rgba(6, 182, 212, 0.45);
  transform: translateY(-4px);
  box-shadow: 0 15px 30px -10px rgba(6, 182, 212, 0.25);
}
.badge-spec {
  background: rgba(6, 182, 212, 0.12);
  border: 1px solid rgba(6, 182, 212, 0.3);
  color: #22D3EE;
}

/* roulang page: category4 */
:root {
      --bg-deep: #0B0D13;
      --card-bg: #131622;
      --border-subtle: rgba(255, 255, 255, 0.08);
      --gradient-brand: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%);
    }
    body {
      background-color: var(--bg-deep);
      color: #9CA3AF;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      overflow-x: hidden;
    }
    .text-gradient {
      background: var(--gradient-brand);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    .btn-gradient {
      background: var(--gradient-brand);
      color: #FFFFFF;
      transition: all 0.3s ease;
    }
    .btn-gradient:hover {
      opacity: 0.92;
      transform: translateY(-2px);
      box-shadow: 0 10px 25px -5px rgba(236, 72, 153, 0.4);
    }
    .glass-header {
      background: rgba(11, 13, 19, 0.88);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }
    .card-stream {
      background: rgba(19, 22, 34, 0.85);
      border: 1px solid var(--border-subtle);
      transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-stream:hover {
      border-color: rgba(139, 92, 246, 0.4);
      transform: translateY(-4px);
      box-shadow: 0 15px 30px -10px rgba(139, 92, 246, 0.2);
    }
    .poster-img {
      transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .card-stream:hover .poster-img {
      transform: scale(1.05);
    }
