/* roulang page: index */
:root {
  --bg-deep: #060A14;
  --bg-secondary: #0B1120;
  --bg-card: rgba(16, 24, 48, 0.65);
  --bg-solid: #10182B;
  --brand-main: #4CC9F0;
  --brand-light: #7DE2FF;
  --brand-soft: #E0F6FF;
  --text-heading: #F2F6FC;
  --text-body: #C3D2E3;
  --text-muted: #8DA3BF;
  --accent-amber: #FFB75E;
  --accent-green: #35E0A1;
  --border-light: rgba(120, 180, 255, 0.16);
  --radius-card: 18px;
  --radius-lg: 24px;
  --shadow-card: 0 8px 28px -8px rgba(2, 8, 24, 0.7);
  --shadow-lg: 0 20px 60px rgba(0, 6, 18, 0.7);
  --font-main: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  --font-num: Inter, Bahnschrift, Roboto, sans-serif;
}

/* ========== Reset ========== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--bg-deep);
  color: var(--text-body);
  font-family: var(--font-main);
  line-height: 1.7;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; }

a { color: var(--brand-main); text-decoration: none; transition: color 0.2s ease; }
a:hover { color: var(--brand-light); }

.container { max-width: 1280px; }
.container-wide { max-width: 1400px; }

h1, h2, h3, h4, h5 {
  color: var(--text-heading);
  font-weight: 800;
  letter-spacing: 0.02em;
}

::selection { background: rgba(76, 201, 240, 0.28); color: #fff; }

:focus-visible {
  outline: 2px solid var(--brand-main);
  outline-offset: 3px;
  border-radius: 6px;
}

/* ========== Buttons ========== */
.btn {
  font-weight: 600;
  border-radius: 12px;
  padding: 0.72rem 1.4rem;
  font-size: 0.98rem;
  transition: all 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
  border: 1px solid transparent;
}

.btn-glow {
  --btn-bg: var(--brand-main);
  background: linear-gradient(135deg, #3FB9E0 0%, #4CC9F0 55%, #7DE2FF 100%);
  color: #07111E;
  border: none;
  box-shadow: 0 6px 18px rgba(76, 201, 240, 0.28);
  position: relative;
}

.btn-glow:hover, .btn-glow:focus {
  color: #07111E;
  background: linear-gradient(135deg, #57CFF5 0%, #7DE2FF 100%);
  box-shadow: 0 0 0 4px rgba(76, 201, 240, 0.16), 0 10px 26px rgba(76, 201, 240, 0.35);
  transform: translateY(-2px);
}

.btn-glow:active {
  transform: translateY(0);
  box-shadow: 0 0 0 4px rgba(76, 201, 240, 0.12), 0 4px 12px rgba(76, 201, 240, 0.24);
}

.btn-ghost {
  background: rgba(16, 24, 48, 0.62);
  border: 1px solid var(--border-light);
  color: var(--text-heading);
  backdrop-filter: blur(10px);
}

.btn-ghost:hover, .btn-ghost:focus {
  color: #fff;
  border-color: rgba(76, 201, 240, 0.48);
  background: rgba(76, 201, 240, 0.1);
  box-shadow: 0 0 0 3px rgba(76, 201, 240, 0.1);
  transform: translateY(-2px);
}

.btn-ghost:active { transform: translateY(0); }

.btn-amber {
  background: linear-gradient(135deg, #EFAC50 0%, #FFC37E 100%);
  color: #1C1204;
  font-weight: 700;
  border: none;
}

.btn-amber:hover {
  color: #1C1204;
  box-shadow: 0 0 0 4px rgba(255, 183, 94, 0.18), 0 8px 22px rgba(255, 183, 94, 0.28);
  transform: translateY(-2px);
}

/* ========== Header / Nav ========== */
.site-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  min-height: 72px;
  z-index: 1030;
  background: rgba(6, 10, 20, 0.78);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(100, 160, 255, 0.1);
  transition: all 0.3s ease;
}

.site-nav.scrolled {
  background: rgba(6, 10, 20, 0.92);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
}

.brand-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff !important;
  font-weight: 800;
  font-size: 1.22rem;
  white-space: nowrap;
}

.logo-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(76, 201, 240, 0.22), rgba(76, 201, 240, 0.06));
  border: 1px solid rgba(76, 201, 240, 0.5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-light);
  font-size: 1.15rem;
  box-shadow: 0 0 16px rgba(76, 201, 240, 0.25);
}

.brand-text { line-height: 1.2; display: inline-flex; flex-direction: column; }

.brand-version-tag {
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--bg-deep);
  background: var(--accent-amber);
  padding: 1px 7px;
  border-radius: 20px;
  letter-spacing: 0.08em;
  display: inline-block;
  width: max-content;
  margin-top: 2px;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0;
}

.nav-links .nav-item {
  list-style: none;
}

.nav-links a {
  color: var(--text-body);
  font-weight: 500;
  font-size: 0.95rem;
  position: relative;
}

.nav-links a:hover { color: #fff; }

.nav-links a.active {
  color: var(--brand-light);
}

.nav-links a.active::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 100%;
  height: 2px;
  border-radius: 4px;
  background: var(--brand-main);
  box-shadow: 0 0 12px rgba(76, 201, 240, 0.7);
}

.nav-cta-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.nav-cta-wrap .btn { white-space: nowrap; }

.btn-download-pulse {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  position: relative;
}

.btn-download-pulse::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-green);
  box-shadow: 0 0 0 0 rgba(53, 224, 161, 0.45);
  animation: pulse 1.8s infinite;
}

@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(53, 224, 161, 0.45); }
  70% { box-shadow: 0 0 0 10px rgba(53, 224, 161, 0); }
  100% { box-shadow: 0 0 0 0 rgba(53, 224, 161, 0); }
}

.navbar-toggler {
  border: 1px solid var(--border-light);
  color: #fff;
  padding: 8px 11px;
  background: rgba(16, 24, 48, 0.5);
}

.navbar-toggler:hover { border-color: var(--brand-main); }

/* ========== Mobile bottom bar ========== */
.mobile-bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1040;
  background: rgba(6, 10, 20, 0.94);
  backdrop-filter: blur(18px);
  border-top: 1px solid var(--border-light);
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
  display: none;
  gap: 10px;
}

.mobile-bottom-bar .btn { flex: 1; }

@media (max-width: 991.98px) {
  body { padding-bottom: 76px; }
  .mobile-bottom-bar { display: flex; }
  .nav-desktop-cta { display: none !important; }
  .navbar-collapse {
    background: rgba(6, 10, 20, 0.97);
    border: 1px solid var(--border-light);
    border-radius: 16px;
    padding: 16px;
    margin-top: 12px;
    backdrop-filter: blur(20px);
  }
  .nav-links {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .nav-links a {
    display: block;
    padding: 9px 6px;
    border-radius: 8px;
  }
  .nav-links a.active {
    background: rgba(76, 201, 240, 0.1);
    padding-left: 14px;
  }
  .nav-links a.active::after { display: none; }
}

/* ========== Hero ========== */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding-top: 120px;
  padding-bottom: 64px;
  overflow: hidden;
  background: url("/assets/images/backpic/back-1.png") center center / cover no-repeat;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 78% 28%, rgba(76, 201, 240, 0.22), transparent 48%),
    radial-gradient(ellipse at 14% 82%, rgba(53, 224, 161, 0.10), transparent 40%),
    linear-gradient(90deg, rgba(6, 10, 20, 0.94) 0%, rgba(6, 10, 20, 0.72) 52%, rgba(6, 10, 20, 0.34) 100%);
  z-index: 1;
}

.hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 160px;
  background: linear-gradient(180deg, transparent, var(--bg-deep));
  z-index: 2;
}

.hero-content {
  position: relative;
  z-index: 3;
  max-width: 860px;
}

.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(16, 24, 48, 0.62);
  border: 1px solid var(--border-light);
  color: var(--brand-light);
  border-radius: 30px;
  padding: 8px 16px;
  font-size: 0.84rem;
  font-weight: 600;
  backdrop-filter: blur(8px);
  margin-bottom: 24px;
}

.hero-tag i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-green);
  box-shadow: 0 0 12px var(--accent-green);
  display: inline-block;
}

.hero h1 {
  font-size: 56px;
  line-height: 1.18;
  font-weight: 800;
  margin-bottom: 14px;
  letter-spacing: 0.01em;
}

.hero h1 .gradient-text {
  background: linear-gradient(92deg, var(--brand-light) 0%, var(--brand-main) 45%, #4CC9F0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 38px rgba(76, 201, 240, 0.18);
}

.hero-subtitle {
  font-size: 1.22rem;
  color: var(--text-body);
  font-weight: 500;
  margin-bottom: 24px;
}

.hero-prose {
  font-size: 1.02rem;
  color: var(--text-muted);
  max-width: 640px;
  margin-bottom: 32px;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 34px;
}

.hero-actions .btn { min-width: 170px; padding: 0.85rem 1.6rem; }

.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
}

.hero-badges li {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.92rem;
  color: var(--text-body);
}

.hero-badges li i {
  color: var(--accent-green);
  font-size: 1rem;
}

.scroll-hint {
  position: absolute;
  right: 24px;
  bottom: 66px;
  z-index: 4;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  font-size: 0.78rem;
  color: var(--text-muted);
  letter-spacing: 0.14em;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  opacity: 0.85;
}

.scroll-hint::after {
  content: "";
  width: 1px;
  height: 38px;
  background: linear-gradient(180deg, var(--brand-main), transparent);
  margin-left: 2px;
}

@media (max-width: 767.98px) {
  .hero { padding-top: 100px; padding-bottom: 40px; min-height: auto; }
  .hero h1 { font-size: 36px; }
  .hero-subtitle { font-size: 1.05rem; }
  .scroll-hint { display: none; }
  .hero-actions .btn { min-width: 100%; }
}

/* ========== Trust strip ========== */
.trust-strip {
  background: rgba(11, 17, 32, 0.75);
  border-block: 1px solid var(--border-light);
  padding: 26px 0;
  position: relative;
  z-index: 5;
}

.trust-strip .trust-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 12px 10px;
}

.trust-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(76, 201, 240, 0.08);
  border: 1px solid rgba(76, 201, 240, 0.24);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-main);
  font-size: 1.1rem;
  flex-shrink: 0;
}

.trust-text strong {
  display: block;
  color: var(--text-heading);
  font-size: 0.98rem;
  line-height: 1.3;
}

.trust-text span {
  font-size: 0.82rem;
  color: var(--text-muted);
}

@media (max-width: 767.98px) {
  .trust-item { justify-content: flex-start; }
}

/* ========== Section ========== */
.section {
  padding: 88px 0;
  position: relative;
}

.section-head {
  margin-bottom: 44px;
}

.section-label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brand-main);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.section-label::before {
  content: "";
  width: 24px;
  height: 2px;
  background: var(--brand-main);
  border-radius: 2px;
}

.section-title {
  font-size: 38px;
  line-height: 1.2;
  margin-bottom: 14px;
}

.section-desc {
  font-size: 0.98rem;
  color: var(--text-muted);
  max-width: 680px;
}

@media (max-width: 767.98px) {
  .section { padding: 56px 0; }
  .section-title { font-size: 28px; }
}

/* ========== Feature block ========== */
.feature-backdrop {
  background: #080E1A;
  padding: 96px 0;
}

.feature-grid {
  display: grid;
  grid-template-columns: 0.85fr 1fr;
  gap: 28px;
  align-items: stretch;
}

.feature-main-card {
  background: linear-gradient(155deg, rgba(76, 201, 240, 0.14), rgba(16, 24, 48, 0.72) 60%);
  border: 1px solid rgba(76, 201, 240, 0.28);
  border-radius: var(--radius-lg);
  padding: 40px;
  backdrop-filter: blur(10px);
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.f-main-icon {
  width: 68px;
  height: 68px;
  border-radius: 18px;
  background: rgba(76, 201, 240, 0.15);
  border: 1px solid rgba(76, 201, 240, 0.35);
  color: var(--brand-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 22px;
}

.f-main-card h3 { font-size: 28px; margin-bottom: 12px; }

.f-main-card p { color: var(--text-body); margin-bottom: 28px; font-size: 0.98rem; }

.feature-check-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.feature-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 7px 0;
  color: var(--text-muted);
  font-size: 0.94rem;
}

.feature-check-list li i { color: var(--accent-green); margin-top: 5px; font-size: 0.9rem; }

.feature-side {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(2, auto);
  gap: 20px;
}

.f-side-card {
  background: var(--bg-solid);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  padding: 28px;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.f-side-card:hover {
  border-color: rgba(76, 201, 240, 0.4);
  transform: translateY(-3px);
  box-shadow: var(--shadow-card);
}

.f-side-card:nth-child(2) { margin-top: 22px; }
.f-side-card:nth-child(3) { margin-top: -8px; }

.f-side-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: rgba(76, 201, 240, 0.1);
  color: var(--brand-main);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  margin-bottom: 16px;
}

.f-side-card h4 { font-size: 1.05rem; margin-bottom: 10px; color: var(--text-heading); }

.f-side-card p { font-size: 0.9rem; color: var(--text-muted); margin-bottom: 0; }

@media (max-width: 991.98px) {
  .feature-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
  .feature-side { grid-template-columns: 1fr; grid-template-rows: auto; }
  .f-side-card:nth-child(2), .f-side-card:nth-child(3) { margin-top: 0; }
  .feature-main-card { padding: 26px; }
}

/* ========== Version highlight ========== */
.version-panel {
  background: linear-gradient(135deg, rgba(11, 17, 32, 0.9), rgba(6, 10, 20, 0.98));
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  box-shadow: var(--shadow-card);
}

.version-media {
  position: relative;
  min-height: 360px;
}

.version-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.version-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(75deg, rgba(6, 10, 20, 0.2) 10%, transparent);
}

.version-note-card {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  background: rgba(6, 10, 20, 0.86);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(76, 201, 240, 0.36);
  border-radius: 14px;
  padding: 12px 18px;
  color: var(--brand-light);
  font-size: 0.82rem;
  display: flex;
  align-items: center;
  gap: 10px;
}

.version-note-card i { font-size: 1rem; }

.version-content { padding: 48px; }

.version-content .tag-alpha {
  display: inline-block;
  background: rgba(76, 201, 240, 0.12);
  color: var(--brand-main);
  border: 1px solid rgba(76, 201, 240, 0.28);
  border-radius: 30px;
  font-size: 0.84rem;
  font-weight: 600;
  padding: 5px 14px;
  margin-bottom: 18px;
}

.version-content h2 { font-size: 32px; line-height: 1.35; margin-bottom: 24px; }

.version-list {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
}

.version-list li {
  position: relative;
  padding: 9px 0 9px 31px;
  color: var(--text-body);
  font-size: 0.97rem;
}

.version-list li::before {
  content: "\f058";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.85rem;
  position: absolute;
  left: 0;
  top: 12px;
  color: var(--accent-green);
}

.link-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.95rem;
}

@media (max-width: 991.98px) {
  .version-panel { grid-template-columns: 1fr; }
  .version-media { min-height: 240px; }
  .version-media img { max-height: 300px; }
  .version-content { padding: 28px; }
}

/* ========== News / CMS area ========== */
.news-section {
  background: radial-gradient(ellipse at 10% 10%, rgba(76, 201, 240, 0.07), transparent 40%), radial-gradient(ellipse at 90% 90%, rgba(255, 183, 94, 0.05), transparent 40%), var(--bg-deep);
  padding: 88px 0;
}

.news-item {
  display: block;
  background: linear-gradient(180deg, rgba(16, 24, 48, 0.56), rgba(16, 24, 48, 0.76));
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  padding: 24px;
  height: 100%;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.news-item:hover {
  border-color: rgba(76, 201, 240, 0.42);
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
}

.news-item .news-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.badge-tag {
  background: rgba(76, 201, 240, 0.12);
  color: var(--brand-main);
  border: 1px solid rgba(76, 201, 240, 0.22);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 40px;
}

.news-date {
  font-size: 0.8rem;
  color: var(--text-muted);
  font-family: var(--font-num);
  letter-spacing: 0.04em;
}

.news-item h3 {
  font-size: 1.12rem;
  line-height: 1.45;
  margin-bottom: 10px;
  color: var(--text-heading);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s ease;
}

.news-item:hover h3 { color: var(--brand-light); }

.news-item p {
  font-size: 0.9rem;
  color: var(--text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 16px;
}

.news-read {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--brand-main);
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.news-empty {
  background: var(--bg-card);
  border: 1px dashed rgba(120, 180, 255, 0.26);
  border-radius: var(--radius-card);
  text-align: center;
  padding: 56px 20px;
  color: var(--text-muted);
}

.news-empty i { font-size: 2.4rem; color: rgba(76, 201, 240, 0.5); margin-bottom: 16px; display: block; }

@media (max-width: 575.98px) {
  .news-section { padding: 56px 0; }
}

/* ========== Reviews ========== */
.review-block {
  padding: 80px 0;
}

.review-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.review-card {
  background: var(--bg-solid);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-card);
  padding: 28px;
  position: relative;
  transition: transform 0.25s ease, border-color 0.25s ease;
}

.review-card:hover {
  border-color: rgba(76, 201, 240, 0.35);
  transform: translateY(-4px);
}

.review-card .quote-mark {
  color: rgba(76, 201, 240, 0.22);
  font-size: 2.6rem;
  line-height: 0.8;
  position: absolute;
  right: 22px;
  top: 18px;
}

.review-text { color: var(--text-body); font-size: 0.94rem; margin: 18px 0 20px; }

.review-user {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--border-light);
  padding-top: 18px;
}

.review-user .avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(76, 201, 240, 0.28), rgba(53, 224, 161, 0.2));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
}

.review-user strong { display: block; color: var(--text-heading); font-size: 0.9rem; }

.review-user span { font-size: 0.76rem; color: var(--text-muted); }

.stars { color: var(--accent-amber); font-size: 0.75rem; letter-spacing: 2px; margin-top: 3px; }

@media (max-width: 767.98px) {
  .review-grid { grid-template-columns: 1fr; }
}

/* ========== Member ========== */
.member-tip {
  background: linear-gradient(90deg, rgba(255, 183, 94, 0.08), transparent);
  border: 1px solid rgba(255, 183, 94, 0.18);
  border-radius: var(--radius-card);
  padding: 28px 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.member-tip strong { display: block; color: var(--text-heading); font-size: 1.1rem; margin-bottom: 4px; }
.member-tip span { color: var(--text-muted); font-size: 0.94rem; }

/* ========== FAQ ========== */
.faq-accordion .accordion-item {
  background: rgba(16, 24, 48, 0.55);
  border: 1px solid var(--border-light);
  border-radius: 14px !important;
  margin-bottom: 14px;
  overflow: hidden;
}

.faq-accordion .accordion-item:not(:first-of-type) { border-top: 1px solid var(--border-light); }

.faq-accordion .accordion-button {
  background: transparent;
  color: var(--text-heading);
  font-weight: 600;
  font-size: 1rem;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
}

.faq-accordion .accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237DE2FF'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.faq-accordion .accordion-button:not(.collapsed) {
  background: rgba(76, 201, 240, 0.08);
  box-shadow: none;
  color: var(--brand-light);
}

.faq-question {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.faq-q-icon {
  width: 34px;
  height: 34px;
  background: rgba(76, 201, 240, 0.1);
  color: var(--brand-main);
  border-radius: 50%;
  font-weight: 800;
  font-size: 0.82rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.faq-accordion .accordion-body {
  padding: 0 20px 18px 66px;
  color: var(--text-muted);
  font-size: 0.95rem;
  border-top: 1px solid rgba(120, 180, 255, 0.06);
}

@media (max-width: 575.98px) {
  .faq-accordion .accordion-body { padding-left: 20px; }
}

/* ========== CTA ========== */
.cta-block {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  padding: 72px 40px;
  background: url("/assets/images/backpic/back-3.png") center center / cover no-repeat;
  text-align: center;
  border: 1px solid var(--border-light);
}

.cta-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(6, 10, 20, 0.95) 0%, rgba(6, 10, 20, 0.84) 55%, rgba(76, 201, 240, 0.22) 110%);
  z-index: 1;
}

.cta-block > * { position: relative; z-index: 2; }

.cta-block h2 {
  font-size: 36px;
  margin-bottom: 14px;
  color: #fff;
}

.cta-block p {
  font-size: 1.05rem;
  color: var(--text-body);
  max-width: 620px;
  margin: 0 auto 30px;
}

.step-mini {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 30px;
  font-size: 0.9rem;
  color: var(--text-body);
}

.step-mini span { display: inline-flex; align-items: center; gap: 6px; }

.step-mini i { color: var(--brand-main); }

@media (max-width: 575.98px) {
  .cta-block { padding: 44px 20px; }
  .cta-block h2 { font-size: 26px; }
}

/* ========== Footer ========== */
.footer-site {
  background: #04080F;
  border-top: 1px solid var(--border-light);
  padding: 64px 0 24px;
  overflow: hidden;
}

.footer-brand p {
  font-size: 0.9rem;
  color: var(--text-muted);
  margin: 16px 0 0;
  max-width: 260px;
}

.footer-title {
  color: var(--text-heading);
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 18px;
  position: relative;
  padding-bottom: 10px;
}

.footer-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 28px;
  height: 2px;
  background: var(--brand-main);
  border-radius: 2px;
}

.footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-list li { margin-bottom: 10px; }

.footer-list a {
  color: var(--text-muted);
  font-size: 0.9rem;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.footer-list a:hover {
  color: var(--brand-light);
  transform: translateX(3px);
}

.footer-list a i { font-size: 0.6rem; color: var(--brand-main); }

.footer-support {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-support span {
  color: var(--text-muted);
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer-support i { color: var(--brand-main); }

.footer-bottom {
  border-top: 1px solid rgba(120, 180, 255, 0.1);
  margin-top: 48px;
  padding-top: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--text-muted);
  font-size: 0.78rem;
}

.footer-bottom a { color: var(--text-muted); }
.footer-bottom a:hover { color: var(--brand-main); }

/* ========== Modal ========== */
.download-modal .modal-content {
  background: #0D1526;
  border: 1px solid rgba(120, 180, 255, 0.22);
  border-radius: 20px;
  color: var(--text-body);
}

.download-modal .modal-header {
  border-bottom: 1px solid var(--border-light);
  padding: 20px 26px;
}

.download-modal .modal-title {
  color: var(--text-heading);
  font-weight: 700;
  font-size: 1.2rem;
}

.download-modal .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 0.8;
}

.download-modal .modal-body { padding: 24px 26px; }

.download-modal .modal-footer {
  border-top: 1px solid var(--border-light);
  padding: 15px 26px 22px;
}

.download-option {
  background: var(--bg-solid);
  border: 1px solid var(--border-light);
  border-radius: 16px;
  padding: 26px;
  text-align: center;
}

.download-option i {
  font-size: 2rem;
  color: var(--brand-main);
  margin-bottom: 14px;
}

.download-option h6 { color: var(--text-heading); font-size: 1.05rem; margin-bottom: 6px; }

.download-option p { font-size: 0.86rem; color: var(--text-muted); margin-bottom: 4px; }

.download-option .btn { width: 100%; margin-top: 10px; }

/* ========== Miscellaneous tweaks ========== */
.text-accent { color: var(--brand-main); }
.text-amber { color: var(--accent-amber); }
.bg-soft-green { color: var(--accent-green); }

.media-card-cover img { border-radius: 14px; width: 100%; object-fit: cover; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* roulang page: category1 */
:root {
            --bg-deep: #060a14;
            --bg-panel: #0b1120;
            --bg-card: rgba(16, 24, 48, 0.72);
            --bg-solid: #10182b;
            --brand-main: #4cc9f0;
            --brand-soft: #7de2ff;
            --brand-light: #e0f6ff;
            --amber: #ffb75e;
            --green: #35e0a1;
            --text-body: #d7e2f2;
            --text-muted: #8da3bf;
            --border-line: rgba(120, 180, 255, 0.16);
            --radius-card: 20px;
            --radius-pill: 999px;
            --shadow-sm: 0 2px 6px rgba(0, 6, 18, 0.5);
            --shadow-md: 0 8px 28px -8px rgba(2, 8, 24, 0.7);
            --shadow-lg: 0 20px 60px rgba(0, 6, 18, 0.7);
            --font-cn: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", sans-serif;
            --font-digit: "Inter", "Bahnschrift", "Arial", sans-serif;
            --ease: cubic-bezier(.2, .8, .2, 1);
            --top-nav-h: 72px;
        }

        *,
        *::before,
        *::after {
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            margin: 0;
            font-family: var(--font-cn);
            font-size: 15px;
            line-height: 1.75;
            color: var(--text-body);
            background-color: var(--bg-deep);
            letter-spacing: 0.01em;
            -webkit-font-smoothing: antialiased;
            background-image: radial-gradient(circle at 82% 8%, rgba(76, 201, 240, 0.08), transparent 30%), radial-gradient(circle at 12% 26%, rgba(255, 183, 94, 0.05), transparent 24%);
        }

        img {
            max-width: 100%;
            height: auto;
        }

        a {
            color: var(--brand-main);
            text-decoration: none;
            transition: color 0.2s var(--ease);
        }

        a:hover {
            color: var(--brand-soft);
        }

        button,
        input {
            font-family: inherit;
        }

        ul,
        ol {
            padding-left: 1.1rem;
        }

        h1,
        h2,
        h3,
        h4 {
            color: #fff;
            font-weight: 700;
            letter-spacing: 0.015em;
        }

        .text-brand {
            color: var(--brand-main);
        }

        .text-muted-light {
            color: var(--text-muted);
        }

        .text-span-gradient {
            background: linear-gradient(120deg, var(--brand-soft), var(--brand-main));
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }

        .container {
            max-width: 1280px;
        }

        h1 {
            font-size: clamp(32px, 5vw, 44px);
            line-height: 1.25;
        }

        h2 {
            font-size: clamp(26px, 3.6vw, 34px);
            line-height: 1.35;
        }

        h3 {
            font-size: 22px;
            line-height: 1.4;
        }

        .section-block {
            padding: 84px 0;
        }

        .section-block+.section-block {
            padding-top: 0;
        }

        @media (max-width: 767.98px) {
            .section-block {
                padding: 58px 0;
            }
        }

        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-size: 13px;
            font-weight: 600;
            letter-spacing: 0.06em;
            color: var(--brand-soft);
            padding: 6px 14px;
            border: 1px solid rgba(124, 226, 255, 0.28);
            border-radius: 999px;
            background: rgba(76, 201, 240, 0.08);
            margin-bottom: 14px;
        }

        .section-headline {
            margin: 0 0 12px;
        }

        .section-lead {
            max-width: 720px;
            color: var(--text-muted);
            font-size: 16px;
            margin-bottom: 40px;
        }

        .glass-card {
            background: var(--bg-card);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--border-line);
            border-radius: var(--radius-card);
            box-shadow: var(--shadow-md);
        }

        .solid-card {
            background: var(--bg-solid);
            border: 1px solid var(--border-line);
            border-radius: var(--radius-card);
        }

        .section-kicker {
            display: block;
            font-size: 13px;
            font-weight: 600;
            letter-spacing: .06em;
            color: var(--green);
            text-transform: uppercase;
            margin-bottom: 4px;
        }

        .btn-glow {
            background: linear-gradient(135deg, var(--brand-soft), var(--brand-main));
            color: #05121c;
            border: 0;
            font-weight: 700;
            padding: 12px 24px;
            border-radius: var(--radius-pill);
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: transform .2s var(--ease), box-shadow .25s var(--ease), color .2s;
            white-space: nowrap;
        }

        .btn-glow:hover,
        .btn-glow:focus-visible {
            color: #05121c;
            transform: translateY(-2px);
            box-shadow: 0 0 0 4px rgba(76, 201, 240, .15), 0 8px 22px rgba(76, 201, 240, .28);
        }

        .btn-glow:active {
            transform: translateY(0);
        }

        .btn-ghost {
            background: transparent;
            color: #eaf7ff;
            border: 1px solid rgba(210, 234, 255, .42);
            padding: 11px 22px;
            border-radius: var(--radius-pill);
            font-weight: 600;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: transform .2s var(--ease), border-color .2s, color .2s, box-shadow .2s;
            white-space: nowrap;
        }

        .btn-ghost:hover,
        .btn-ghost:focus-visible {
            color: #fff;
            border-color: var(--brand-soft);
            box-shadow: 0 0 0 4px rgba(76, 201, 240, .1);
            transform: translateY(-2px);
        }

        .btn-ghost:active {
            transform: translateY(0);
        }

        .badge-mini {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            background: rgba(53, 224, 161, .1);
            border: 1px solid rgba(53, 224, 161, .25);
            color: var(--green);
            font-size: 12px;
            font-weight: 500;
            border-radius: 99px;
            padding: 4px 10px;
        }

        .badge-warn-mini {
            background: rgba(255, 183, 94, .1);
            border-color: rgba(255, 183, 94, .26);
            color: var(--amber);
        }

        /* ===== 导航栏 ===== */
        .site-nav {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            width: 100%;
            min-height: var(--top-nav-h);
            z-index: 1080;
            background: rgba(6, 10, 20, .82);
            backdrop-filter: blur(14px);
            -webkit-backdrop-filter: blur(14px);
            border-bottom: 1px solid transparent;
            transition: background-color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s;
        }

        .site-nav.scrolled {
            background: rgba(6, 10, 20, .94);
            border-bottom-color: rgba(100, 160, 255, .16);
            box-shadow: 0 6px 24px rgba(0, 0, 0, .2);
        }

        .site-nav .container {
            min-height: var(--top-nav-h);
            display: flex;
            align-items: center;
            flex-wrap: wrap;
        }

        .brand-logo {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            color: #fff;
            font-size: 24px;
            font-weight: 800;
            line-height: 1;
            letter-spacing: .02em;
            transition: color .2s;
        }

        .brand-logo:hover {
            color: #fff;
        }

        .logo-icon {
            width: 43px;
            height: 43px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 12px;
            background: linear-gradient(135deg, rgba(76, 201, 240, .24), rgba(76, 201, 240, .08));
            border: 1px solid rgba(120, 210, 255, .5);
            color: var(--brand-soft);
            font-size: 20px;
            box-shadow: 0 0 18px rgba(76, 201, 240, .25);
        }

        .brand-text {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            font-size: 19px;
            line-height: 1.2;
            font-weight: 800;
        }

        .brand-version-tag {
            display: inline-block;
            font-size: 10px;
            font-weight: 600;
            color: var(--amber);
            border: 1px solid rgba(255, 183, 94, .4);
            letter-spacing: 0.08em;
            border-radius: 6px;
            padding: 2px 5px;
            line-height: 1.1;
            margin-top: 3px;
            background: rgba(255, 183, 94, .1);
        }

        .nav-links {
            display: flex;
            flex-direction: column;
            gap: 4px;
            margin: 0;
            padding: 0;
            list-style: none;
        }

        .nav-links a {
            display: inline-block;
            font-weight: 600;
            color: var(--text-body);
            padding: 8px 2px;
            border-bottom: 2px solid transparent;
            line-height: 1.4;
            transition: color .2s, border-color .2s;
        }

        .nav-links a:hover {
            color: #fff;
        }

        .nav-links a.active {
            color: #fff;
            border-bottom-color: var(--brand-main);
        }

        .nav-cta-box {
            display: flex;
            gap: 10px;
            margin-top: 8px;
        }

        @media (min-width: 992px) {
            .site-nav .container {
                flex-wrap: nowrap;
            }

            .brand-logo {
                margin-right: 12px;
            }

            .nav-links {
                flex-direction: row;
                align-items: center;
                gap: 26px;
                margin: 0 auto 0 0;
                padding-left: 16px;
            }

            .nav-links a {
                padding: 6px 2px;
            }

            .nav-cta-box {
                margin-top: 0;
                margin-left: 10px;
                align-items: center;
            }
        }

        header {
            height: var(--top-nav-h);
        }

        /* 移动端底栏 */
        .mobile-dock {
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            z-index: 1090;
            background: rgba(6, 10, 20, .96);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border-top: 1px solid rgba(100, 160, 255, .16);
            padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
            display: none;
        }

        body.with-dock {
            padding-bottom: 78px;
        }

        @media (max-width: 991.98px) {
            .mobile-dock {
                display: flex;
                gap: 10px;
            }

            .mobile-dock .btn {
                flex: 1;
                justify-content: center;
                width: auto;
            }
        }

        .navbar-toggler {
            background: transparent;
            border: 1px solid rgba(120, 180, 255, .26);
            color: #a7d7ff;
            width: 42px;
            height: 42px;
            border-radius: 10px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            line-height: 1;
        }

        .navbar-toggler:hover {
            color: #fff;
            border-color: var(--brand-main);
        }

        /* ===== 页面英雄区 ===== */
        .category-hero {
            position: relative;
            padding: 120px 0 72px;
            color: #fff;
            background:
                linear-gradient(180deg, rgba(6, 10, 20, .55) 0%, rgba(6, 10, 20, .82) 90%),
                url('/assets/images/backpic/back-2.png') center center / cover no-repeat;
            border-bottom: 1px solid var(--border-line);
            overflow: hidden;
        }

        .category-hero::after {
            content: "";
            position: absolute;
            right: -80px;
            bottom: -140px;
            width: 360px;
            height: 360px;
            background: radial-gradient(circle, rgba(76, 201, 240, .12), transparent 65%);
            pointer-events: none;
        }

        .category-hero .breadcrumb-bar {
            position: relative;
            z-index: 2;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            margin-bottom: 22px;
        }

        .breadcrumb {
            background: rgba(8, 13, 27, .55);
            border: 1px solid var(--border-line);
            padding: 6px 12px;
            border-radius: 999px;
            font-size: 13px;
            margin: 0;
            backdrop-filter: blur(8px);
        }

        .breadcrumb-item a {
            color: var(--text-muted);
        }

        .breadcrumb-item.active::before {
            color: rgba(220, 235, 255, .5);
        }

        .breadcrumb-item.active {
            color: #fff;
        }

        .category-hero .hero-inner {
            position: relative;
            z-index: 2;
            max-width: 800px;
        }

        .hero-badges {
            display: flex;
            flex-wrap: wrap;
            gap: 10px 14px;
            margin-top: 22px;
            align-items: center;
        }

        .hero-badges .safe-chip {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: rgba(220, 240, 255, .85);
            font-size: 13px;
            line-height: 1.4;
            padding: 8px 15px;
            border-radius: 999px;
            border: 1px solid var(--border-line);
            background: rgba(10, 17, 32, .72);
        }

        .hero-badges .safe-chip i {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--green);
            box-shadow: 0 0 0 4px rgba(53, 224, 161, .12);
        }

        .category-hero .hero-note {
            margin-top: 8px;
            color: var(--text-muted);
        }

        /* ===== 信任 / 官方通道 ===== */
        .trust-strip {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
        }

        @media (max-width: 767.98px) {
            .trust-strip {
                grid-template-columns: 1fr;
                gap: 14px;
            }
        }

        .trust-item {
            background: rgba(13, 20, 38, .74);
            border: 1px solid var(--border-line);
            border-radius: 18px;
            padding: 22px 24px;
            display: flex;
            gap: 16px;
            align-items: flex-start;
        }

        .trust-icon {
            width: 42px;
            height: 42px;
            flex: 0 0 42px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 12px;
            color: var(--brand-soft);
            background: rgba(76, 201, 240, .1);
            border: 1px solid rgba(122, 215, 255, .24);
            font-size: 18px;
        }

        .trust-item h3 {
            font-size: 16px;
            margin-bottom: 2px;
        }

        .trust-item p {
            margin-bottom: 0;
            color: var(--text-muted);
            font-size: 14px;
            line-height: 1.7;
        }

        /* ===== 版本服务主视觉 ===== */
        .release-split {
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
            gap: 30px;
            align-items: stretch;
        }

        @media (max-width: 991.98px) {
            .release-split {
                grid-template-columns: 1fr;
            }
        }

        .release-media {
            position: relative;
            min-height: 380px;
            border-radius: 22px;
            overflow: hidden;
            border: 1px solid var(--border-line);
            background: linear-gradient(150deg, rgba(15, 25, 46, .15), rgba(10, 18, 34, .9)), url('/assets/images/backpic/back-1.png') center center / cover no-repeat;
            display: flex;
            align-items: flex-end;
            padding: 28px;
        }

        .release-media .version-caption {
            padding: 16px 20px;
            border-radius: 18px;
            background: rgba(6, 10, 20, .64);
            border: 1px solid var(--border-line);
            backdrop-filter: blur(10px);
            width: 100%;
            color: #fff;
        }

        .release-media h3 {
            margin-bottom: 4px;
            font-size: 20px;
        }

        .release-media p {
            margin-bottom: 0;
            font-size: 14px;
            color: var(--text-muted);
        }

        .feature-list {
            padding: 0;
            margin: 0;
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .feature-item {
            display: flex;
            gap: 14px;
            align-items: flex-start;
            padding: 18px 18px;
            border-radius: 16px;
            background: rgba(16, 24, 48, .62);
            border: 1px solid rgba(120, 180, 255, .12);
            transition: transform .24s var(--ease), border-color .24s;
        }

        .feature-item:hover {
            transform: translateY(-2px);
            border-color: rgba(124, 225, 255, .34);
        }

        .feature-item .f-icon {
            color: var(--brand-soft);
            font-size: 17px;
            width: 36px;
            height: 36px;
            flex: 0 0 36px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 12px;
            background: rgba(76, 201, 240, .1);
        }

        .feature-item h3 {
            font-size: 16px;
            margin-bottom: 3px;
        }

        .feature-item p {
            color: var(--text-muted);
            font-size: 14px;
            margin: 0;
        }

        /* ===== 两张专题大卡 ===== */
        .entry-bento {
            display: grid;
            grid-template-columns: repeat(12, 1fr);
            gap: 24px;
        }

        .entry-card {
            position: relative;
            grid-column: span 6;
            min-height: 360px;
            border-radius: 22px;
            overflow: hidden;
            border: 1px solid var(--border-line);
            box-shadow: var(--shadow-sm);
            display: flex;
            align-items: flex-end;
            transition: transform .25s var(--ease), border-color .25s, box-shadow .25s;
        }

        .entry-card:hover {
            transform: translateY(-4px);
            border-color: rgba(124, 225, 255, .36);
            box-shadow: var(--shadow-md);
        }

        .entry-card .card-inner {
            position: relative;
            width: 100%;
            padding: 28px;
            background: linear-gradient(180deg, transparent, rgba(6, 10, 20, .95) 90%);
            color: #fff;
        }

        .entry-card .card-inner h3 {
            margin: 0 0 8px;
        }

        .entry-card p {
            color: var(--text-muted);
            font-size: 14px;
            margin-bottom: 18px;
        }

        .entry-card--left {
            background: url('/assets/images/coverpic/cover-3.png') center center / cover no-repeat;
        }

        .entry-card--right {
            background: url('/assets/images/coverpic/cover-4.png') center center / cover no-repeat;
        }

        .link-arrow {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-weight: 600;
            font-size: 14px;
            color: #fff;
        }

        .link-arrow i {
            color: var(--brand-soft);
            transition: transform .2s;
        }

        .entry-card:hover .link-arrow i {
            transform: translateX(4px);
        }

        @media (max-width: 991.98px) {
            .entry-bento {
                grid-template-columns: 1fr;
            }

            .entry-card {
                grid-column: span 1;
                min-height: 330px;
            }
        }

        /* ===== 版本时间轴 ===== */
        .timeline-wrap {
            background: linear-gradient(180deg, rgba(11, 17, 32, .78), rgba(8, 13, 26, .5)), url('/assets/images/backpic/back-3.png') top center / cover no-repeat;
            border-radius: 24px;
            border: 1px solid var(--border-line);
            padding: clamp(22px, 4vw, 56px);
        }

        .timeline-list {
            list-style: none;
            padding: 0;
            margin: 0;
            position: relative;
        }

        .timeline-list::before {
            content: "";
            position: absolute;
            left: 11px;
            top: 16px;
            bottom: 16px;
            width: 1px;
            background: linear-gradient(180deg, rgba(76, 201, 240, .6), rgba(120, 180, 255, .1));
        }

        .timeline-item {
            display: grid;
            grid-template-columns: 30px 1fr;
            gap: 14px;
            padding-bottom: 20px;
        }

        .timeline-item:last-child {
            padding-bottom: 0;
        }

        .timeline-dot {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: var(--bg-deep);
            border: 1px solid var(--brand-main);
            color: var(--brand-soft);
            box-shadow: 0 0 12px rgba(76, 201, 240, .35);
            transform: translateX(0);
        }

        .timeline-dot i {
            font-size: 10px;
        }

        .timeline-body {
            background: rgba(11, 18, 36, .68);
            border: 1px solid var(--border-line);
            border-radius: 16px;
            padding: 16px 18px;
        }

        .timeline-body h3 {
            font-size: 16px;
            margin: 0 0 4px;
        }

        .timeline-body p {
            margin: 0;
            color: var(--text-muted);
            font-size: 14px;
            line-height: 1.75;
        }

        /* ===== 公告小卡 ===== */
        .announcement-note {
            display: grid;
            grid-template-columns: auto 1fr auto;
            gap: 20px;
            align-items: center;
            padding: 24px 24px;
            background: linear-gradient(135deg, rgba(255, 183, 94, .1), rgba(76, 201, 240, .09) 65%);
            border: 1px solid rgba(255, 183, 94, .22);
            border-radius: 20px;
        }

        @media (max-width: 767.98px) {
            .announcement-note {
                grid-template-columns: 1fr;
            }
        }

        .announcement-note .announce-icon {
            width: 56px;
            height: 56px;
            border-radius: 16px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 183, 94, .12);
            border: 1px solid rgba(255, 183, 94, .32);
            color: var(--amber);
            font-size: 22px;
        }

        .announcement-note h3 {
            margin-bottom: 2px;
            font-size: 19px;
        }

        .announcement-note p {
            margin: 0;
            color: var(--text-muted);
            font-size: 14px;
        }

        .announcement-note .date-tag {
            font-size: 13px;
            color: var(--amber);
            font-family: var(--font-digit);
            font-weight: 600;
        }

        /* ===== CTA ===== */
        .cta-panel {
            background:
                linear-gradient(115deg, rgba(6, 10, 20, .92), rgba(11, 21, 42, .75) 70%),
                url('/assets/images/backpic/back-1.png') center center / cover no-repeat;
            border: 1px solid rgba(120, 190, 255, .22);
            border-radius: 26px;
            padding: 56px 32px;
            text-align: center;
            color: #fff;
        }

        @media (max-width: 767.98px) {
            .cta-panel {
                padding: 42px 20px;
            }
        }

        .cta-panel h2 {
            font-size: clamp(26px, 4vw, 34px);
            max-width: 740px;
            margin: 0 auto 12px;
        }

        .cta-panel p {
            color: var(--text-muted);
            max-width: 660px;
            margin: 0 auto 28px;
            font-size: 16px;
        }

        /* ===== FAQ ===== */
        .faq-shell {
            background: var(--bg-panel);
            border: 1px solid var(--border-line);
            border-radius: 24px;
            padding: 28px;
        }

        .faq-shell .accordion-item {
            background: transparent;
            border: 0;
            border-bottom: 1px solid rgba(120, 180, 255, .13);
            border-radius: 0 !important;
        }

        .faq-shell .accordion-item:last-child {
            border-bottom: 0;
        }

        .faq-shell .accordion-button {
            background: transparent;
            color: #ecf5ff;
            font-weight: 600;
            font-size: 16px;
            padding: 18px 14px;
            box-shadow: none;
            border-radius: 0 !important;
        }

        .faq-shell .accordion-button:not(.collapsed) {
            color: #fff;
            background: rgba(76, 201, 240, .06);
        }

        .faq-shell .accordion-button:focus {
            box-shadow: none;
        }

        .faq-shell .accordion-button::after {
            background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237de2ff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
            filter: invert(0);
        }

        .faq-shell .accordion-body {
            color: var(--text-muted);
            font-size: 15px;
            padding: 0 18px 20px;
            line-height: 1.9;
        }

        /* ===== 页脚 ===== */
        .footer-site {
            margin-top: 40px;
            background: rgba(6, 10, 20, .96);
            border-top: 1px solid var(--border-line);
            padding: 64px 0 34px;
        }

        .footer-site .brand-logo {
            font-size: 20px;
        }

        .footer-site .brand-logo .logo-icon {
            width: 40px;
            height: 40px;
            font-size: 17px;
        }

        .footer-site .brand-logo .brand-text {
            font-size: 18px;
        }

        .footer-site .row>p {
            color: var(--text-muted);
            margin-top: 18px;
            font-size: 14px;
            max-width: 360px;
        }

        .footer-title {
            color: #e6f2ff;
            font-size: 16px;
            padding-bottom: 8px;
            border-bottom: 1px solid var(--border-line);
            margin-bottom: 18px;
        }

        .footer-list {
            list-style: none;
            margin: 0;
            padding: 0;
        }

        .footer-list li {
            margin-bottom: 11px;
        }

        .footer-list a {
            color: var(--text-muted);
            font-size: 14px;
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }

        .footer-list a i {
            font-size: 9px;
            color: var(--brand-main);
            opacity: .7;
        }

        .footer-list a:hover {
            color: #fff;
        }

        .footer-support {
            display: flex;
            flex-direction: column;
            gap: 10px;
            margin-top: 4px;
        }

        .footer-support span {
            color: var(--text-muted);
            font-size: 14px;
        }

        .footer-support i {
            color: var(--brand-soft);
            margin-right: 5px;
        }

        .footer-bottom {
            border-top: 1px solid rgba(120, 180, 255, .12);
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: 12px;
            padding-top: 22px;
            margin-top: 30px;
            color: #6d84a0;
            font-size: 13px;
        }

        @media (max-width: 600px) {
            .footer-bottom {
                justify-content: center;
                text-align: center;
            }
        }

        /* Bootstrap 定制 */
        .modal-content {
            background: #0d1526;
            border: 1px solid rgba(120, 180, 255, .3);
            border-radius: 22px;
            color: var(--text-body);
            box-shadow: var(--shadow-lg);
            overflow: hidden;
        }

        .modal-header {
            border-bottom: 1px solid var(--border-line);
        }

        .modal-body {
            padding: 24px;
        }

        .btn-close {
            filter: invert(1) grayscale(1) brightness(2);
        }

        .btn-download-icon {
            width: 48px;
            height: 48px;
            border-radius: 14px;
            background: rgba(76, 201, 240, .12);
            border: 1px solid rgba(76, 201, 240, .28);
            color: var(--brand-soft);
            font-size: 22px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .modal-list {
            padding: 0;
            margin: 0;
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 14px;
        }

        .modal-list li {
            display: flex;
            gap: 14px;
            background: rgba(16, 24, 48, .5);
            border: 1px solid var(--border-line);
            border-radius: 14px;
            padding: 14px;
            align-items: flex-start;
        }

        .modal-list .download-text h5 {
            font-size: 15px;
            color: #fff;
            margin: 0 0 4px;
        }

        .modal-list .download-text p {
            font-size: 13px;
            color: var(--text-muted);
            margin: 0;
        }

        a:focus-visible,
        button:focus-visible,
        .btn:focus-visible {
            outline: 2px solid var(--brand-soft);
            outline-offset: 2px;
        }

        .picture-card img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        @media (min-width: 992px) {
            .navbar-expand-lg .navbar-collapse {
                flex-grow: 0;
                display: flex;
                align-items: center;
            }
        }

/* roulang page: article */
:root {
  --bg-deep: #060A14;
  --bg-sub: #0B1120;
  --bg-card: rgba(16, 24, 48, 0.68);
  --card-solid: #10182B;
  --brand-main: #4CC9F0;
  --brand-soft: #7DE2FF;
  --accent-gold: #FFB75E;
  --mint: #35E0A1;
  --text-main: #EDF5FF;
  --text-body: #C3D2E5;
  --text-dim: #8DA3BF;
  --text-deep: #1B2A3C;
  --border: rgba(120, 180, 255, .16);
  --border-strong: rgba(76, 201, 240, .4);
  --radius-card: 18px;
  --radius-btn: 12px;
  --shadow-sm: 0 2px 6px rgba(0, 6, 18, .5);
  --shadow-md: 0 8px 28px -8px rgba(2, 8, 24, .7);
  --shadow-lg: 0 20px 60px rgba(0, 6, 18, .7);
  --font-body: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  --font-num: Inter, Bahnschrift, "Bahnschrift SemiCondensed", system-ui;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: var(--font-body);
  background-color: var(--bg-deep);
  background-image:
    radial-gradient(circle at 18% 12%, rgba(76, 201, 240, .07), transparent 32%),
    radial-gradient(circle at 82% 6%, rgba(53, 224, 161, .04), transparent 22%),
    radial-gradient(circle at 78% 88%, rgba(76, 201, 240, .05), transparent 28%);
  background-attachment: fixed;
  color: var(--text-body);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a {
  text-decoration: none;
  color: inherit;
}
a:focus-visible,
button:focus-visible {
  outline: 3px solid rgba(76, 201, 240, .42);
  outline-offset: 3px;
  border-radius: 8px;
}
img {
  max-width: 100%;
  display: block;
}
.container {
  max-width: 1280px;
  padding-left: 24px;
  padding-right: 24px;
}
.section-space {
  padding: 68px 0;
}
.site-nav {
  position: sticky;
  top: 0;
  z-index: 1050;
  width: 100%;
  background: rgba(6, 10, 20, .84);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(100, 160, 255, .12);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.site-nav > .container {
  padding-top: 8px;
  padding-bottom: 8px;
}
.brand-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #ffffff !important;
  white-space: nowrap;
}
.logo-icon {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(76, 201, 240, .26), rgba(76, 201, 240, .08));
  border: 1px solid rgba(76, 201, 240, .42);
  border-radius: 12px;
  font-size: 20px;
  color: var(--brand-soft);
  box-shadow: 0 0 18px rgba(76, 201, 240, .18);
}
.brand-text {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .01em;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.brand-version-tag {
  font-size: 11px;
  font-weight: 600;
  color: var(--accent-gold);
  border: 1px solid rgba(255, 183, 94, .4);
  padding: 3px 8px;
  border-radius: 999px;
  line-height: 1;
  white-space: nowrap;
}
.navbar-toggler {
  border: 1px solid rgba(255, 255, 255, .18);
  width: 44px;
  height: 44px;
  border-radius: 12px;
  color: #fff;
  background: rgba(255, 255, 255, .06);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.navbar-toggler:hover {
  border-color: var(--border-strong);
  color: var(--brand-soft);
}
.nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nav-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-body);
  font-size: 15px;
  font-weight: 500;
  padding: 10px 14px;
  border-radius: 10px;
  transition: color .2s cubic-bezier(.2, .8, .2, 1), background .2s cubic-bezier(.2, .8, .2, 1), box-shadow .2s;
}
.nav-links a:hover {
  color: #ffffff;
  background: rgba(76, 201, 240, .1);
  box-shadow: 0 0 0 1px rgba(76, 201, 240, .1) inset;
}
.nav-links a.active {
  color: #ffffff;
  font-weight: 600;
  background: linear-gradient(135deg, rgba(76, 201, 240, .18), rgba(76, 201, 240, .06));
  box-shadow: inset 0 0 0 1px rgba(76, 201, 240, .28);
}
.btn-glow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid rgba(76, 201, 240, .55) !important;
  background: linear-gradient(135deg, rgba(76, 201, 240, .2), rgba(76, 201, 240, .06)) !important;
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 600;
  border-radius: 12px;
  letter-spacing: .01em;
  padding: 11px 18px;
  position: relative;
  transition: box-shadow .2s cubic-bezier(.2, .8, .2, 1), transform .2s, border-color .2s;
}
.btn-glow:hover {
  color: #fff;
  box-shadow: 0 0 0 4px rgba(76, 201, 240, .15), 0 10px 26px -4px rgba(76, 201, 240, .3);
  transform: translateY(-1px);
  border-color: rgba(125, 226, 255, .85) !important;
}
.btn-glow:active {
  transform: translateY(0);
  box-shadow: 0 0 0 3px rgba(76, 201, 240, .14);
}
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, .24) !important;
  background: rgba(255, 255, 255, .04) !important;
  color: var(--text-main) !important;
  font-size: 14px;
  font-weight: 600;
  padding: 11px 18px;
  border-radius: 12px;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn-ghost:hover {
  background: rgba(255, 255, 255, .09) !important;
  border-color: rgba(255, 255, 255, .4) !important;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, .04);
}
.mobile-cta-bar {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1090;
  background: rgba(6, 10, 20, .92);
  border-top: 1px solid rgba(120, 180, 255, .18);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  padding: 10px 16px 12px;
  gap: 10px;
}
.mobile-cta-bar .btn {
  flex: 1;
  min-height: 46px;
}
.article-banner {
  position: relative;
  min-height: 320px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  color: #ffffff;
  padding: 72px 0 56px;
  isolation: isolate;
  border-bottom: 1px solid rgba(100, 160, 255, .12);
}
.article-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 10, 20, .93) 0%, rgba(6, 10, 20, .76) 48%, rgba(6, 10, 20, .6) 100%);
  z-index: -1;
}
.article-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 10, 20, .24) 0%, rgba(6, 10, 20, .7) 100%);
  z-index: -1;
}
.article-banner-inner {
  position: relative;
  max-width: 920px;
  margin: 0 auto;
}
.article-banner-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #cfeaff;
  background: rgba(76, 201, 240, .14);
  border: 1px solid rgba(76, 201, 240, .34);
  border-radius: 999px;
  padding: 6px 14px;
  margin-bottom: 18px;
}
.article-banner-label i {
  color: var(--brand-soft);
}
.article-banner h1,
.article-cover-h1 {
  font-size: clamp(30px, 4vw, 46px);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: .01em;
  color: #ffffff;
  margin: 0 0 18px;
  text-shadow: 0 6px 32px rgba(0, 0, 0, .32);
}
.article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  margin-top: 14px;
  color: rgba(237, 245, 255, .82);
}
.article-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
}
.article-meta i {
  color: var(--brand-soft);
}
.meta-cat {
  background: rgba(255, 183, 94, .13);
  border: 1px solid rgba(255, 183, 94, .3);
  color: #ffe1b8;
  padding: 4px 12px;
  border-radius: 999px;
  font-weight: 600;
}
.breadcrumb-soft {
  margin-bottom: 28px;
  font-size: 14px;
  color: rgba(225, 240, 255, .74);
}
.breadcrumb-soft a {
  color: #9FC7DD;
  padding: 4px 2px;
  transition: color .2s;
}
.breadcrumb-soft a:hover {
  color: #7DE2FF;
}
.breadcrumb-soft .sep {
  margin: 0 8px;
  opacity: .5;
}
.article-layout-wrap {
  padding: 56px 0 72px;
}
.article-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: start;
  gap: 40px;
}
.article-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.cms-content-article {
  position: relative;
  width: 100%;
  background: #f7f9fc;
  background-image: linear-gradient(180deg, #ffffff, #f4f8fb);
  color: var(--text-deep);
  border: 1px solid rgba(153, 184, 213, .18);
  border-radius: 20px;
  box-shadow: var(--shadow-lg);
  padding: clamp(26px, 5vw, 54px);
  overflow-wrap: break-word;
  font-size: 16px;
}
.cms-content-article > *:last-child {
  margin-bottom: 0;
}
.cms-content-article p {
  margin: 0 0 1.7em;
  line-height: 1.9;
  font-size: 16px;
  color: #24364a;
}
.cms-content-article h1,
.cms-content-article h2,
.cms-content-article h3,
.cms-content-article h4 {
  color: #0e2035;
  font-weight: 700;
  margin: 2.2em 0 .8em;
  line-height: 1.44;
  letter-spacing: .01em;
}
.cms-content-article h2 {
  font-size: 26px;
  padding-top: 10px;
}
.cms-content-article h3 {
  font-size: 21px;
}
.cms-content-article h4 {
  font-size: 18px;
}
.cms-content-article a {
  color: #0274b8;
  border-bottom: 1px solid rgba(2, 116, 184, .24);
  transition: color .2s, border-color .2s;
}
.cms-content-article a:hover {
  color: #044f7c;
  border-color: #044f7c;
}
.cms-content-article ul,
.cms-content-article ol {
  margin: 0 0 1.6em;
  padding-left: 1.4em;
  line-height: 1.9;
}
.cms-content-article li {
  margin-bottom: .45em;
}
.cms-content-article blockquote {
  margin: 2em 0;
  padding: 18px 24px;
  border-left: 4px solid var(--brand-main);
  background: rgba(76, 201, 240, .06);
  border-radius: 6px 14px 14px 6px;
  color: #31526d;
  font-size: 15px;
}
.cms-content-article blockquote p {
  margin-bottom: .4em;
}
.cms-content-article img {
  border-radius: 16px;
  margin: 28px auto;
  box-shadow: 0 14px 34px -12px rgba(10, 30, 50, .45);
}
.cms-content-article table {
  width: 100%;
  margin: 2em 0;
  border-collapse: collapse;
  background: #ffffff;
  border: 1px solid #d7e3ee;
  border-radius: 12px;
  overflow: hidden;
  font-size: 14px;
  color: #24364a;
}
.cms-content-article table th {
  background: #eaf2f8;
  color: #12304d;
  font-weight: 700;
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid #cbdbea;
}
.cms-content-article table td {
  padding: 11px 14px;
  border-top: 1px solid #dee9f2;
}
.cms-content-article table tr:hover td {
  background: #f1f7fb;
}
.cms-content-article pre {
  background: #0b1522;
  color: #dff2ff;
  border-radius: 14px;
  padding: 18px;
  overflow: auto;
}
.cms-content-article hr {
  border: 0;
  border-top: 1px solid rgba(100, 140, 180, .22);
  margin: 2em 0;
}
.article-unavailable {
  background: var(--bg-card);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 60px 34px;
  text-align: center;
  color: var(--text-main);
  box-shadow: var(--shadow-md);
}
.article-unavailable .unavailable-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  border-radius: 24px;
  margin-bottom: 22px;
  font-size: 34px;
  color: var(--brand-soft);
  background: rgba(76, 201, 240, .1);
  border: 1px solid rgba(76, 201, 240, .24);
}
.article-unavailable h1 {
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 14px;
}
.article-unavailable p {
  color: var(--text-dim);
  max-width: 520px;
  margin: 0 auto 26px;
}
.article-share-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-radius: 16px;
  padding: 16px 20px;
}
.article-share-panel .share-label {
  color: var(--text-body);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.article-share-list {
  display: flex;
  gap: 10px;
}
.article-share-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  height: 44px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(255, 255, 255, .16);
  color: var(--text-main);
  transition: transform .2s ease, border-color .2s, background .2s, color .2s;
}
.article-share-list a:hover {
  transform: translateY(-2px);
  border-color: rgba(76, 201, 240, .5);
  color: var(--brand-soft);
  background: rgba(76, 201, 240, .08);
}
.article-aside {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}
.side-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-radius: var(--radius-card);
  padding: 24px;
  box-shadow: var(--shadow-sm);
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.side-card:hover {
  border-color: rgba(76, 201, 240, .34);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.side-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.side-card-title {
  font-size: 16px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.side-card-title i {
  color: var(--brand-soft);
  font-size: 18px;
}
.side-card-more {
  font-size: 13px;
  color: var(--text-dim);
  transition: color .2s;
}
.side-card-more:hover {
  color: var(--brand-soft);
}
.side-author {
  display: flex;
  align-items: center;
  gap: 14px;
}
.author-avatar {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, rgba(76, 201, 240, .24), rgba(76, 201, 240, .06));
  border: 1px solid rgba(76, 201, 240, .3);
  color: #7DE2FF;
  font-size: 22px;
}
.side-author strong {
  display: block;
  color: #ffffff;
  font-size: 15px;
  margin-bottom: 2px;
}
.side-author span {
  font-size: 13px;
  color: var(--text-dim);
}
.side-author-desc {
  color: var(--text-dim);
  font-size: 13px;
  line-height: 1.75;
  margin: 18px 0 0;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}
.side-download-title {
  font-size: 19px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 8px;
  line-height: 1.4;
}
.side-download-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(53, 224, 161, .12);
  border: 1px solid rgba(53, 224, 161, .3);
  padding: 5px 10px;
  border-radius: 999px;
  color: #8ff5cf;
  font-size: 12px;
  margin-bottom: 18px;
}
.side-download-list {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
}
.side-download-list li {
  padding-left: 26px;
  position: relative;
  font-size: 14px;
  margin-bottom: 10px;
  color: var(--text-body);
}
.side-download-list li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 0;
  color: var(--mint);
  font-size: 13px;
}
.side-link-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.side-link-list li + li {
  border-top: 1px solid var(--border);
}
.side-link-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 4px;
  color: var(--text-body);
  font-size: 14px;
  transition: color .2s, padding-left .2s;
}
.side-link-list a:hover {
  color: var(--brand-soft);
  padding-left: 10px;
}
.side-link-list i {
  font-size: 12px;
  color: var(--brand-main);
  opacity: .8;
}
.aside-download-cta {
  margin-top: 6px;
}
.aside-download-cta .btn-glow {
  width: 100%;
  min-height: 46px;
}
.section-related {
  position: relative;
  padding: 72px 0;
  border-top: 1px solid var(--border);
}
.section-title {
  font-size: 30px;
  line-height: 1.3;
  font-weight: 800;
  color: #ffffff;
  margin: 0;
}
.section-title .title-mark {
  display: inline-block;
  width: 8px;
  height: 24px;
  background: linear-gradient(180deg, #7DE2FF, #4CC9F0);
  border-radius: 99px;
  margin-right: 12px;
  box-shadow: 0 0 14px rgba(76, 201, 240, .55);
}
.section-subtitle {
  color: var(--text-dim);
  margin: 10px 0 0;
  font-size: 15px;
}
.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 36px;
}
.section-go-link {
  color: var(--brand-soft);
  font-weight: 600;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  transition: gap .2s;
}
.section-go-link:hover {
  gap: 12px;
}
.related-card-list {
  display: grid;
  gap: 20px;
}
.related-card {
  display: flex;
  align-items: stretch;
  background: var(--bg-card);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  transition: transform .24s cubic-bezier(.2, .8, .2, 1), border-color .24s, box-shadow .24s;
}
.related-card:hover {
  transform: translateY(-3px);
  border-color: rgba(76, 201, 240, .46);
  box-shadow: var(--shadow-md), 0 0 0 1px rgba(76, 201, 240, .1);
}
.related-thumb {
  flex: 0 0 270px;
  min-height: 160px;
  overflow: hidden;
  background: #0e1a2b;
}
.related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease, opacity .3s;
}
.related-card:hover .related-thumb img {
  transform: scale(1.04);
  opacity: .9;
}
.related-content {
  flex: 1;
  padding: 24px 26px;
  min-width: 0;
}
.related-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #91e9ff;
  background: rgba(76, 201, 240, .12);
  border: 1px solid rgba(76, 201, 240, .3);
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.related-content h3 {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 8px;
  line-height: 1.4;
}
.related-content p {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.75;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.related-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--brand-soft);
  font-size: 14px;
  font-weight: 600;
}
.related-link:hover {
  gap: 12px;
}
.faq-section {
  background: linear-gradient(180deg, rgba(11, 17, 32, .95), rgba(6, 10, 20, 1));
}
.faq-wrap {
  max-width: 900px;
}
.accordion {
  margin-top: 12px;
}
.accordion-item {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px !important;
  margin-bottom: 12px;
  overflow: hidden;
  color: var(--text-body);
}
.accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: rgba(76, 201, 240, .4);
}
.accordion-button {
  background: transparent;
  color: #ffffff;
  font-size: 16px;
  font-weight: 600;
  padding: 18px 20px;
  box-shadow: none !important;
  border-radius: 0;
}
.accordion-button:not(.collapsed) {
  background: rgba(76, 201, 240, .08);
  color: var(--brand-soft);
}
.accordion-button:hover {
  background: rgba(255, 255, 255, .04);
}
.accordion-button:focus {
  box-shadow: 0 0 0 3px rgba(76, 201, 240, .16) !important;
}
.accordion-button::after {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' fill='%237DE2FF'%3E%3Cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3E%3C/svg%3E");
  background-size: 16px;
}
.accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' fill='%237DE2FF'%3E%3Cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8z'/%3E%3C/svg%3E");
}
.accordion-body {
  color: var(--text-body);
  font-size: 14px;
  line-height: 1.9;
  padding: 4px 20px 22px;
}
.cta-download {
  position: relative;
  padding: 80px 0;
  overflow: hidden;
  border-top: 1px solid var(--border);
  background:
    radial-gradient(circle at 18% 50%, rgba(76, 201, 240, .12), transparent 30%),
    radial-gradient(circle at 88% 30%, rgba(53, 224, 161, .07), transparent 34%);
  text-align: center;
  color: #fff;
}
.cta-download h2 {
  font-size: clamp(28px, 4.4vw, 44px);
  font-weight: 800;
  line-height: 1.3;
  margin: 0 0 16px;
}
.cta-download .cta-text {
  max-width: 680px;
  margin: 0 auto 28px;
  color: var(--text-dim);
  font-size: 16px;
}
.cta-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin-bottom: 30px;
}
.cta-safe {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--text-dim);
  background: rgba(255, 255, 255, .05);
  padding: 8px 16px;
  border-radius: 999px;
  margin: 0 6px;
}
.cta-safe i {
  color: var(--mint);
  font-size: 16px;
}
.cta-download .btn-lg-x {
  min-height: 56px;
  padding: 14px 34px;
  font-size: 17px;
}
.cta-download .btn-lg-x i {
  font-size: 20px;
}
.footer-site {
  background: #040812;
  border-top: 1px solid rgba(100, 160, 255, .12);
  padding: 64px 0 32px;
}
.footer-site .brand-logo {
  margin-bottom: 16px;
}
.footer-site p {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.8;
  max-width: 460px;
}
.footer-title {
  font-size: 16px;
  color: #ffffff;
  font-weight: 700;
  margin: 0 0 18px;
}
.footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-list li {
  margin-bottom: 10px;
}
.footer-list a {
  color: var(--text-dim);
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color .2s, transform .2s;
}
.footer-list a i {
  font-size: 10px;
  color: rgba(76, 201, 240, .62);
}
.footer-list a:hover {
  color: var(--brand-soft);
  transform: translateX(3px);
}
.footer-support {
  display: grid;
  gap: 12px;
  font-size: 14px;
  color: var(--text-dim);
}
.footer-support span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.footer-support i {
  color: var(--brand-soft);
  width: 18px;
  text-align: center;
}
.footer-bottom {
  border-top: 1px solid var(--border);
  margin-top: 44px;
  padding-top: 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--text-dim);
  font-size: 13px;
}
.footer-bottom a {
  color: var(--text-dim);
  transition: color .2s;
}
.footer-bottom a:hover {
  color: var(--brand-soft);
}
.modal-backdrop {
  background-color: #02040a;
}
.modal-content {
  background: #0c1425;
  border: 1px solid var(--border-strong);
  border-radius: 20px;
  box-shadow: var(--shadow-lg);
}
.modal-header {
  border-bottom-color: rgba(120, 180, 255, .16);
}
.modal-header .modal-title {
  color: #ffffff;
  font-weight: 700;
}
.modal-content .btn-close {
  filter: invert(1);
  opacity: .7;
}
.modal-body {
  padding: 28px;
}
.download-modal-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.download-modal-brand .logo-icon {
  width: 54px;
  height: 54px;
  font-size: 26px;
  border-radius: 16px;
}
.download-modal-brand strong {
  display: block;
  font-size: 19px;
  color: #fff;
}
.download-modal-brand span {
  font-size: 13px;
  color: var(--text-dim);
}
.download-steps {
  display: grid;
  gap: 14px;
  margin: 22px 0;
}
.download-step {
  display: flex;
  gap: 14px;
  background: rgba(255, 255, 255, .03);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
}
.download-step .step-num {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(76, 201, 240, .14);
  border: 1px solid rgba(76, 201, 240, .3);
  color: var(--brand-soft);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.download-step h4 {
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
}
.download-step p {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.7;
  margin: 0;
}
.toast-tip {
  position: fixed;
  bottom: 110px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  z-index: 1180;
  background: rgba(13, 26, 44, .96);
  color: #e8f3ff;
  border: 1px solid rgba(76, 201, 240, .5);
  font-size: 14px;
  padding: 10px 20px;
  border-radius: 999px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s, transform .25s, visibility .25s;
  box-shadow: var(--shadow-md);
  white-space: nowrap;
}
.toast-tip.show {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
@media (max-width: 1199.98px) {
  .related-thumb {
    flex-basis: 230px;
  }
}
@media (max-width: 991.98px) {
  .site-nav {
    position: sticky;
  }
  .site-nav > .container {
    flex-wrap: wrap;
  }
  .nav-links {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    margin-top: 6px !important;
  }
  .nav-links a {
    justify-content: flex-start;
    width: 100%;
    padding: 12px 14px;
  }
  .collapse:not(.show) {
    display: none;
  }
  .navbar-collapse.collapsing {
    flex-basis: auto;
  }
  .article-banner {
    min-height: 286px;
    padding: 46px 0 40px;
  }
  .article-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .article-aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  .section-space {
    padding: 52px 0;
  }
  .section-related {
    padding: 56px 0;
  }
  .related-card {
    flex-direction: column;
  }
  .related-thumb {
    min-height: 180px;
    flex-basis: 180px;
    max-height: 220px;
  }
  .related-thumb img {
    object-position: center 36%;
  }
  .cta-download {
    padding: 56px 0;
  }
  .mobile-cta-bar {
    display: flex;
  }
  body {
    padding-bottom: 0;
  }
  .footer-site {
    padding-bottom: 96px;
  }
}
@media (max-width: 767.98px) {
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }
  .site-nav > .container {
    padding-left: 16px;
    padding-right: 16px;
  }
  .brand-text {
    font-size: 16px;
  }
  .brand-logo {
    gap: 8px;
  }
  .article-banner {
    min-height: 240px;
    padding: 42px 0 34px;
  }
  .article-banner h1,
  .article-cover-h1 {
    font-size: 26px;
    line-height: 1.35;
  }
  .article-meta {
    gap: 8px 12px;
  }
  .cms-content-article {
    padding: 24px 19px;
    border-radius: 16px;
    font-size: 15px;
  }
  .cms-content-article h2 {
    font-size: 22px;
  }
  .cms-content-article h3 {
    font-size: 19px;
  }
  .article-unavailable {
    padding: 36px 20px;
  }
  .section-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 24px;
  }
  .section-title {
    font-size: 25px;
  }
  .article-aside {
    grid-template-columns: 1fr;
  }
  .related-content {
    padding: 20px;
  }
  .related-content h3 {
    font-size: 18px;
  }
  .footer-site {
    padding-top: 46px;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
}
@media (max-width: 480px) {
  .article-meta span {
    font-size: 13px;
  }
  .article-share-panel {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .article-share-list {
    justify-content: flex-end;
  }
  .mobile-cta-bar .btn {
    font-size: 13px;
    padding: 10px 10px;
  }
}

/* roulang page: category2 */
:root {
      --bg-deep: #060A14;
      --bg-panel: #0B1120;
      --bg-card: rgba(16, 24, 48, 0.72);
      --bg-solid: #10182B;
      --brand-main: #4CC9F0;
      --brand-high: #7DE2FF;
      --brand-soft: #E0F6FF;
      --amber: #FFB75E;
      --mint: #35E0A1;
      --text-body: #EAF2FB;
      --text-soft: #8DA3BF;
      --border-soft: rgba(120, 180, 255, 0.16);
      --border-line: rgba(100, 160, 255, 0.12);
      --radius-md: 16px;
      --radius-lg: 22px;
      --radius-xl: 28px;
      --shadow-soft: 0 2px 6px rgba(0, 6, 18, 0.5);
      --shadow-card: 0 8px 28px -8px rgba(2, 8, 24, 0.7);
      --shadow-deep: 0 20px 60px rgba(0, 6, 18, 0.7);
      --transition: 200ms cubic-bezier(.2, .8, .2, 1);
      --font-body: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
      --font-num: "Inter", "Bahnschrift", "Segoe UI", sans-serif;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      background: var(--bg-deep);
      color: var(--text-body);
      font-family: var(--font-body);
      font-size: 16px;
      line-height: 1.75;
      letter-spacing: 0.01em;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    body::before {
      content: "";
      position: fixed;
      inset: 0;
      z-index: -2;
      background:
        radial-gradient(circle at 18% 8%, rgba(76, 201, 240, 0.16) 0, rgba(76, 201, 240, 0) 28%),
        radial-gradient(circle at 86% 16%, rgba(255, 183, 94, 0.07) 0, rgba(255, 183, 94, 0) 26%),
        radial-gradient(circle at 46% 84%, rgba(53, 224, 161, 0.08) 0, rgba(53, 224, 161, 0) 30%),
        linear-gradient(180deg, #060A14 0%, #081021 100%);
      pointer-events: none;
    }

    .container {
      max-width: 1280px;
    }

    a {
      color: inherit;
      text-decoration: none;
      transition: color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition);
    }

    img {
      max-width: 100%;
      display: block;
    }

    button,
    input {
      font-family: inherit;
      font-size: inherit;
    }

    input:focus,
    button:focus-visible,
    a:focus-visible {
      outline: 2px solid rgba(76, 201, 240, 0.6);
      outline-offset: 3px;
    }

    .text-secondary {
      color: var(--text-soft) !important;
    }

    .section-title {
      font-size: 30px;
      font-weight: 700;
      line-height: 1.3;
      margin: 0 0 8px;
    }

    .section-more {
      font-size: 14px;
      color: var(--brand-main);
      font-weight: 600;
      white-space: nowrap;
    }

    .section-more i {
      margin-left: 4px;
      transition: transform var(--transition);
    }

    .section-more:hover {
      color: var(--brand-high);
    }

    .section-more:hover i {
      transform: translateX(4px);
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.14em;
      color: var(--brand-main);
      margin-bottom: 12px;
      text-transform: uppercase;
    }

    .eyebrow::before {
      content: "";
      width: 22px;
      height: 2px;
      background: linear-gradient(90deg, var(--brand-main), transparent);
      display: inline-block;
    }

    .brand-logo {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: #fff;
    }

    .brand-logo .logo-icon {
      width: 38px;
      height: 38px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 12px;
      background: linear-gradient(135deg, rgba(76, 201, 240, .22), rgba(76, 201, 240, .04));
      color: var(--brand-main);
      border: 1px solid rgba(76, 201, 240, .45);
      font-size: 18px;
    }

    .brand-logo .brand-text {
      font-size: 18px;
      font-weight: 700;
      color: #fff;
      line-height: 1.2;
      display: flex;
      align-items: center;
      gap: 7px;
    }

    .brand-version-tag {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      color: var(--amber);
      background: rgba(255, 183, 94, .12);
      border: 1px solid rgba(255, 183, 94, .35);
      border-radius: 20px;
      padding: 2px 8px;
      letter-spacing: .05em;
    }

    /* ---------- nav ---------- */
    .site-nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1040;
      min-height: 72px;
      background: rgba(6, 10, 20, .76);
      -webkit-backdrop-filter: blur(14px) saturate(130%);
      backdrop-filter: blur(14px) saturate(130%);
      border-bottom: 1px solid var(--border-line);
      transition: background var(--transition), border-color var(--transition);
    }

    .site-nav .nav-inner-row {
      min-height: 72px;
    }

    .nav-links {
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 4px;
      margin: 0;
      padding: 0;
    }

    .nav-links li a {
      position: relative;
      display: inline-flex;
      align-items: center;
      height: 44px;
      font-size: 15px;
      font-weight: 600;
      color: var(--text-soft);
      padding: 0 14px;
      border-radius: 12px;
    }

    .nav-links li a:hover {
      color: #fff;
      background: rgba(76, 201, 240, .08);
    }

    .nav-links li a.active {
      color: var(--brand-soft);
    }

    .nav-links li a.active::after {
      content: "";
      position: absolute;
      left: 14px;
      right: 14px;
      bottom: 4px;
      height: 2px;
      border-radius: 4px;
      background: linear-gradient(90deg, var(--brand-main), transparent);
    }

    .navbar-toggler {
      border: 1px solid var(--border-soft);
      background: rgba(255, 255, 255, .04);
      color: #fff;
      width: 44px;
      height: 44px;
      border-radius: 12px;
    }

    .navbar-toggler:hover {
      background: rgba(76, 201, 240, .12);
      color: var(--brand-high);
    }

    .navbar-toggler:focus {
      box-shadow: 0 0 0 3px rgba(76, 201, 240, .18);
    }

    @media (min-width: 992px) {
      .site-nav .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
      }
      .nav-links {
        flex-wrap: nowrap;
      }
    }

    @media (max-width: 991.98px) {
      .site-nav {
        min-height: 64px;
      }
      .site-nav .navbar-collapse {
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        z-index: 1030;
        background: rgba(6, 10, 20, .96);
        padding: 16px 20px 18px;
        border-bottom: 1px solid var(--border-line);
        box-shadow: 0 22px 48px rgba(0, 0, 0, .45);
        max-height: calc(100vh - 64px);
        overflow-y: auto;
      }
      .nav-links {
        flex-direction: column;
        align-items: stretch;
      }
      .nav-links li a {
        width: 100%;
        height: 48px;
      }
      .nav-links li a.active::after {
        display: none;
      }
      .nav-links li a.active {
        background: rgba(76, 201, 240, .12);
      }
    }

    /* ---------- buttons ---------- */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      border-radius: 14px;
      font-weight: 600;
      line-height: 1.5;
      transition: box-shadow var(--transition), transform var(--transition), background var(--transition), color var(--transition), border-color var(--transition);
      border: 1px solid transparent;
    }

    .btn-glow {
      position: relative;
      overflow: hidden;
      padding: 12px 24px;
      background: linear-gradient(135deg, var(--brand-main), rgba(76, 201, 240, .72));
      color: #05101e;
      border: 1px solid rgba(224, 246, 255, .4);
      box-shadow: 0 6px 22px rgba(76, 201, 240, .26);
    }

    .btn-glow:hover,
    .btn-glow:focus {
      color: #02121d;
      background: linear-gradient(135deg, #7DE2FF, #4CC9F0);
      box-shadow: 0 0 0 4px rgba(76, 201, 240, .15), 0 10px 30px rgba(76, 201, 240, .35);
      transform: translateY(-1px);
    }

    .btn-glow:active {
      transform: translateY(1px);
      box-shadow: 0 0 0 3px rgba(76, 201, 240, .18);
    }

    .btn-ghost {
      padding: 11px 22px;
      background: rgba(16, 24, 48, .5);
      color: var(--text-body);
      border: 1px solid var(--border-soft);
      backdrop-filter: blur(6px);
    }

    .btn-ghost:hover,
    .btn-ghost:focus {
      color: var(--brand-high);
      border-color: rgba(76, 201, 240, .5);
      background: rgba(76, 201, 240, .08);
      transform: translateY(-1px);
    }

    .btn-ghost:active {
      transform: translateY(1px);
    }

    .btn-sm {
      padding: 8px 15px;
      border-radius: 11px;
      font-size: 14px;
    }

    .btn-lgx {
      padding: 15px 30px;
      border-radius: 16px;
      font-size: 16px;
    }

    /* ---------- category hero ---------- */
    .category-hero {
      position: relative;
      padding: 154px 0 72px;
      background: linear-gradient(180deg, rgba(6, 10, 20, .35) 0%, rgba(6, 10, 20, .54) 52%, #060A14 100%);
      border-bottom: 1px solid var(--border-line);
    }

    .category-hero::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: url("/assets/images/backpic/back-2.png");
      background-position: center 18%;
      background-size: cover;
      background-repeat: no-repeat;
      opacity: .24;
      pointer-events: none;
    }

    .category-hero::after {
      content: "";
      position: absolute;
      inset: auto 0 0 0;
      height: 150px;
      background: linear-gradient(180deg, transparent, #060A14);
      pointer-events: none;
    }

    .category-hero .container {
      position: relative;
      z-index: 2;
    }

    .hero-breadcrumb {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      color: var(--text-soft);
      background: rgba(10, 17, 30, .7);
      border: 1px solid var(--border-soft);
      padding: 8px 16px;
      border-radius: 50px;
      backdrop-filter: blur(6px);
      margin-bottom: 24px;
    }

    .hero-breadcrumb a {
      color: var(--text-soft);
    }

    .hero-breadcrumb a:hover {
      color: var(--brand-main);
    }

    .hero-breadcrumb i {
      font-size: 10px;
      color: rgba(141, 163, 191, .6);
    }

    .category-hero h1 {
      margin: 0 0 14px;
      font-size: clamp(32px, 4vw, 48px);
      line-height: 1.18;
      font-weight: 800;
      letter-spacing: .02em;
    }

    .category-hero h1 .gradient {
      background: linear-gradient(105deg, var(--brand-soft) 5%, var(--brand-main) 70%, #7DE2FF 110%);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .hero-desc {
      max-width: 620px;
      color: var(--text-soft);
      font-size: 17px;
      line-height: 1.85;
    }

    .hero-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 22px;
    }

    .hero-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(11, 17, 32, .6);
      border: 1px solid var(--border-soft);
      color: var(--text-body);
      font-size: 13px;
      font-weight: 500;
      padding: 5px 12px;
      border-radius: 50px;
      backdrop-filter: blur(5px);
    }

    .hero-pill i {
      color: var(--mint);
    }

    @media (max-width: 767px) {
      .category-hero {
        padding: 120px 0 50px;
      }
      .hero-desc {
        font-size: 15px;
      }
    }

    /* ---------- sections spacing ---------- */
    .s-section {
      padding: 78px 0;
    }

    .s-section-sm {
      padding: 54px 0;
    }

    @media (max-width: 767px) {
      .s-section {
        padding: 50px 0;
      }
      .s-section-sm {
        padding: 38px 0;
      }
      .section-title {
        font-size: 24px;
      }
    }

    /* ---------- glass card, feature cards ---------- */
    .glass-card {
      background: var(--bg-card);
      border: 1px solid var(--border-soft);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-card);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }

    .feature-media-card {
      position: relative;
      overflow: hidden;
      border-radius: var(--radius-lg);
      border: 1px solid var(--border-soft);
      box-shadow: var(--shadow-card);
      background: var(--bg-solid);
      min-height: 300px;
      transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
    }

    .feature-media-card:hover {
      transform: translateY(-4px);
      border-color: rgba(76, 201, 240, .35);
      box-shadow: var(--shadow-deep);
    }

    .feature-media-card .poster-cover {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: .82;
    }

    .feature-media-card .poster-mask {
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(6, 10, 20, 0) 0%, rgba(6, 10, 20, .28) 60%, rgba(6, 10, 20, .86) 100%);
      z-index: 1;
    }

    .feature-media-card .poster-tag {
      position: absolute;
      top: 16px;
      left: 16px;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 13px;
      background: rgba(6, 10, 20, .66);
      border: 1px solid rgba(255, 255, 255, .18);
      border-radius: 50px;
      color: #fff;
      font-size: 12px;
      letter-spacing: .04em;
      backdrop-filter: blur(6px);
    }

    .feature-media-card .poster-content {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2;
      padding: 28px;
    }

    .feature-media-card .poster-content h3 {
      color: #fff;
      font-size: 23px;
      font-weight: 700;
      margin-bottom: 6px;
    }

    .feature-media-card .poster-content p {
      margin: 0;
      color: rgba(234, 242, 251, .82);
      font-size: 14px;
      line-height: 1.7;
    }

    .feature-desc-panel {
      padding: 36px 30px;
      background: linear-gradient(135deg, rgba(16, 24, 48, .92), rgba(8, 13, 25, .92));
      border: 1px solid var(--border-soft);
      border-radius: var(--radius-lg);
      transition: border-color var(--transition);
    }

    .feature-desc-panel:hover {
      border-color: rgba(76, 201, 240, .22);
    }

    .feature-num {
      font-family: var(--font-num);
      font-size: 14px;
      letter-spacing: .18em;
      color: var(--brand-main);
      font-weight: 600;
    }

    .feature-desc-panel h3 {
      font-size: 24px;
      font-weight: 700;
      color: #fff;
      line-height: 1.45;
      margin: 8px 0 14px;
    }

    .feature-desc-panel p,
    .feature-desc-panel ul {
      color: var(--text-soft);
      font-size: 15px;
    }

    .feature-desc-panel ul {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .feature-desc-panel ul li {
      position: relative;
      padding-left: 24px;
      margin-top: 8px;
    }

    .feature-desc-panel ul li::before {
      content: "\f00c";
      position: absolute;
      left: 0;
      top: 1px;
      font-family: "Font Awesome 6 Free";
      font-weight: 900;
      font-size: 12px;
      color: var(--mint);
    }

    @media (max-width: 991.98px) {
      .feature-desc-panel {
        padding: 24px 22px;
      }
      .feature-media-card {
        min-height: 210px;
      }
    }

    /* ---------- activity list panel ---------- */
    .activity-panel {
      background: var(--bg-panel);
      border: 1px solid var(--border-line);
      border-radius: var(--radius-xl);
      padding: 36px 38px;
      position: relative;
      overflow: hidden;
    }

    .activity-panel::before {
      content: "";
      position: absolute;
      top: -90px;
      right: -90px;
      width: 260px;
      height: 260px;
      background: radial-gradient(circle, rgba(76, 201, 240, .08), transparent 68%);
      pointer-events: none;
    }

    .activity-list {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .activity-item {
      display: flex;
      align-items: flex-start;
      gap: 22px;
      padding: 22px 4px;
      border-bottom: 1px solid rgba(120, 180, 255, .12);
      transition: background var(--transition);
    }

    .activity-item:last-child {
      border-bottom: 0;
    }

    .activity-item:hover .activity-title {
      color: var(--brand-high);
    }

    .activity-index {
      flex: 0 0 42px;
      height: 42px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      background: rgba(76, 201, 240, .1);
      border: 1px solid rgba(76, 201, 240, .18);
      font-family: var(--font-num);
      font-size: 16px;
      color: var(--brand-main);
      font-weight: 700;
      margin-top: 4px;
      transition: all var(--transition);
    }

    .activity-item:hover .activity-index {
      background: rgba(76, 201, 240, .2);
      border-color: rgba(76, 201, 240, .5);
    }

    .activity-info {
      flex: 1;
      min-width: 0;
    }

    .activity-title {
      margin: 0 0 6px;
      font-size: 17px;
      font-weight: 700;
      color: #EAF2FB;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
    }

    .activity-title a {
      color: inherit;
    }

    .activity-title a:hover {
      color: var(--brand-main);
    }

    .activity-summary {
      color: var(--text-soft);
      font-size: 14px;
      line-height: 1.75;
      margin: 0 0 8px;
      max-width: 820px;
    }

    .activity-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      align-items: center;
      font-size: 12px;
      color: rgba(141, 163, 191, .8);
    }

    .activity-meta .meta-tag {
      display: inline-block;
      font-size: 11px;
      border-radius: 20px;
      padding: 3px 10px;
      border: 1px solid transparent;
    }

    .tag-mint {
      color: var(--mint);
      background: rgba(53, 224, 161, .1);
      border-color: rgba(53, 224, 161, .24) !important;
    }

    .tag-amber {
      color: var(--amber);
      background: rgba(255, 183, 94, .1);
      border-color: rgba(255, 183, 94, .24) !important;
    }

    .tag-blue {
      color: var(--brand-main);
      background: rgba(76, 201, 240, .08);
      border-color: rgba(76, 201, 240, .22) !important;
    }

    @media (max-width: 575.98px) {
      .activity-panel {
        padding: 20px 16px;
      }
      .activity-item {
        gap: 16px;
      }
      .activity-index {
        flex: 0 0 34px;
        height: 34px;
        font-size: 13px;
      }
      .activity-title {
        font-size: 15px;
      }
    }

    /* ---------- version card ---------- */
    .version-card {
      position: relative;
      overflow: hidden;
      border-radius: var(--radius-lg);
      border: 1px solid var(--border-soft);
      background: linear-gradient(145deg, rgba(255, 183, 94, .06) 0%, rgba(16, 24, 48, .92) 45%);
      box-shadow: var(--shadow-card);
    }

    .version-card::before {
      content: "";
      position: absolute;
      top: -60px;
      right: -40px;
      width: 180px;
      height: 180px;
      background: radial-gradient(circle, rgba(255, 183, 94, .1), transparent 70%);
    }

    .version-card .version-img {
      position: relative;
      min-height: 168px;
      overflow: hidden;
      background: url("/assets/images/coverpic/cover-6.png") center / cover no-repeat rgba(13, 20, 35, .5);
    }

    .version-card .version-img::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(6, 10, 20, .6) 0%, transparent 48%, rgba(6, 10, 20, .9) 100%);
    }

    .version-card .version-img .img-label {
      position: absolute;
      top: 16px;
      left: 16px;
      z-index: 1;
      color: #fff;
      font-size: 14px;
      font-weight: 600;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(6, 10, 20, .58);
      border: 1px solid rgba(255, 255, 255, .16);
      padding: 7px 13px;
      border-radius: 40px;
      backdrop-filter: blur(5px);
    }

    .version-card .version-img .img-label i {
      color: var(--amber);
    }

    .version-card .version-img .img-logo {
      position: absolute;
      left: 20px;
      bottom: 16px;
      z-index: 1;
      font-size: 20px;
      font-weight: 700;
      color: #fff;
      letter-spacing: .03em;
    }

    .version-card .version-body {
      padding: 20px 24px 24px;
    }

    .version-card h3 {
      font-size: 18px;
      font-weight: 700;
      margin-bottom: 8px;
      color: #fff;
    }

    .version-card .version-desc {
      color: var(--text-soft);
      font-size: 14px;
      line-height: 1.8;
    }

    .version-list-item {
      display: flex;
      gap: 10px;
      align-items: flex-start;
      margin-top: 8px;
      color: #cfdae8;
      font-size: 14px;
    }

    .version-list-item i {
      color: var(--brand-main);
      font-size: 12px;
      margin-top: 6px;
    }

    .version-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 20px;
    }

    /* ---------- steps ---------- */
    .step-card {
      background: rgba(11, 17, 32, .75);
      border: 1px solid var(--border-soft);
      border-radius: var(--radius-lg);
      padding: 26px 22px;
      transition: transform var(--transition), border-color var(--transition);
    }

    .step-card:hover {
      transform: translateY(-4px);
      border-color: rgba(76, 201, 240, .36);
    }

    .step-icon-wrap {
      width: 46px;
      height: 46px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(76, 201, 240, .12);
      color: var(--brand-main);
      font-size: 20px;
      border: 1px solid rgba(76, 201, 240, .3);
      margin-bottom: 16px;
    }

    .step-card h4 {
      font-size: 18px;
      font-weight: 700;
      margin-bottom: 10px;
    }

    .step-card p {
      color: var(--text-soft);
      font-size: 14px;
      margin: 0;
    }

    .step-link {
      font-weight: 700;
      font-family: var(--font-num);
      color: var(--nav) rgba(255,183,94,.8);
      font-size: 12px;
      letter-spacing: .08em;
      display: block;
      margin-bottom: 2px;
    }

    /* ---------- CTA banner ---------- */
    .cta-banner {
      position: relative;
      overflow: hidden;
      border-radius: 30px;
      background: linear-gradient(135deg, rgba(11, 17, 32, .7), rgba(76, 201, 240, .14));
      border: 1px solid var(--border-soft);
      box-shadow: var(--shadow-deep);
    }

    .cta-banner .cta-bg {
      position: absolute;
      inset: 0;
      background: url("/assets/images/backpic/back-3.png") no-repeat center center / cover;
      opacity: .18;
    }

    .cta-banner .cta-inner {
      position: relative;
      padding: 58px 50px;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 24px;
    }

    .cta-banner h2 {
      font-size: clamp(24px, 3vw, 36px);
      font-weight: 800;
      margin-bottom: 10px;
      letter-spacing: .02em;
    }

    .cta-banner p {
      color: var(--text-soft);
      max-width: 560px;
      margin: 0;
      font-size: 15px;
      line-height: 1.8;
    }

    .cta-banner .btn-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      align-items: center;
    }

    @media (max-width: 767px) {
      .cta-banner .cta-inner {
        padding: 32px 22px;
      }
    }

    /* ---------- FAQ ---------- */
    .faq-wrap {
      background: rgba(11, 17, 32, .84);
      border: 1px solid var(--border-line);
      border-radius: var(--radius-lg);
      padding: 28px;
    }

    .faq-wrap .accordion-button {
      font-size: 15px;
      font-weight: 600;
      color: var(--text-body);
      background: transparent;
      padding: 20px 12px;
      box-shadow: none;
    }

    .faq-wrap .accordion-item {
      background: transparent;
      border: 0;
      border-bottom: 1px solid rgba(120, 180, 255, .12);
    }

    .faq-wrap .accordion-item:last-child {
      border-bottom: 0;
    }

    .faq-wrap .accordion-button:not(.collapsed) {
      color: var(--brand-main);
      background: rgba(76, 201, 240, .06);
      border-radius: 10px;
    }

    .faq-wrap .accordion-button::after {
      font-family: "Font Awesome 6 Free";
      font-weight: 900;
      content: "\f078";
      background: none;
      width: auto;
      height: auto;
      color: var(--text-soft);
      transition: transform var(--transition);
    }

    .faq-wrap .accordion-button:not(.collapsed)::after {
      transform: rotate(180deg);
      color: var(--brand-main);
    }

    .faq-wrap .accordion-body {
      color: var(--text-soft);
      font-size: 14px;
      line-height: 1.9;
      padding: 0 16px 20px 42px;
    }

    .faq-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex: 0 0 28px;
      width: 28px;
      height: 28px;
      border-radius: 8px;
      background: rgba(76, 201, 240, .1);
      color: var(--brand-main);
      font-size: 12px;
      margin-right: 10px;
    }

    @media (max-width: 575px) {
      .faq-wrap {
        padding: 14px;
      }
      .faq-wrap .accordion-body {
        padding-left: 16px;
      }
    }

    /* ---------- modal ---------- */
    .modal-content {
      background: #0B1120;
      border: 1px solid var(--border-soft);
      border-radius: 24px;
      color: var(--text-body);
    }

    .modal-header {
      border-bottom: 1px solid var(--border-line);
      padding: 22px 26px;
    }

    .modal-title {
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 700;
    }

    .modal-title i {
      color: var(--brand-main);
    }

    .modal-body {
      padding: 24px 26px 30px;
    }

    .modal-footer {
      border-top: 1px solid var(--border-line);
      padding: 16px 24px;
    }

    .btn-close {
      background: transparent;
      color: #fff;
    }

    .btn-close:hover {
      background: transparent;
    }

    .btn-close::before {
      content: "\f00d";
      font-family: "Font Awesome 6 Free";
      font-weight: 900;
      font-size: 16px;
    }

    /* ---------- footer ---------- */
    .footer-site {
      background: #050910;
      border-top: 1px solid var(--border-line);
      padding: 64px 0 28px;
      position: relative;
      z-index: 2;
    }

    .footer-site .brand-logo {
      margin-bottom: 18px;
    }

    .footer-site p {
      font-size: 14px;
      line-height: 1.9;
      color: var(--text-soft);
      max-width: 320px;
    }

    .footer-title {
      color: #fff;
      font-size: 15px;
      font-weight: 700;
      margin-bottom: 18px;
      letter-spacing: .04em;
    }

    .footer-list {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .footer-list li a {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--text-soft);
      font-size: 14px;
      padding: 6px 0;
    }

    .footer-list li a i {
      font-size: 9px;
      color: rgba(76, 201, 240, .7);
    }

    .footer-list li a:hover {
      color: var(--brand-high);
      transform: translateX(4px);
    }

    .footer-support {
      display: flex;
      flex-direction: column;
      gap: 14px;
      color: var(--text-soft);
      font-size: 14px;
    }

    .footer-support i {
      width: 20px;
      color: var(--brand-main);
    }

    .footer-bottom {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 12px;
      border-top: 1px solid var(--border-line);
      margin-top: 28px;
      padding-top: 24px;
      color: rgba(141, 163, 191, .75);
      font-size: 13px;
    }

    .footer-bottom a {
      color: var(--brand-main);
    }

    .footer-bottom a:hover {
      color: var(--brand-high);
    }

    /* ---------- mobile fixed cta ---------- */
    .mobile-dock {
      display: none;
    }

    @media (max-width: 991.98px) {
      body {
        padding-bottom: 68px;
      }
      .mobile-dock {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1090;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 9px 14px 10px;
        background: rgba(6, 10, 20, .9);
        border-top: 1px solid var(--border-line);
        backdrop-filter: blur(14px);
      }
      .mobile-dock .btn {
        flex: 1;
        font-size: 14px;
        padding: 10px 12px;
      }
    }

    @media (max-width: 380px) {
      .btn-lgx {
        padding: 13px 20px;
        font-size: 15px;
      }
    }
