/* roulang page: index */
/* ============ 设计变量 ============ */
:root {
  --bg-deep: #060d1f;
  --bg-deep-2: #0a1228;
  --panel: rgba(255, 255, 255, .05);
  --panel-strong: rgba(255, 255, 255, .08);
  --border-glass: rgba(148, 184, 255, .18);
  --primary: #1e5bff;
  --primary-deep: #103ec2;
  --neon: #00e5ff;
  --accent: #00ffa3;
  --text-main: #e9effc;
  --text-dim: #8e9db9;
  --radius: 20px;
  --radius-sm: 12px;
  --radius-pill: 999px;
  --shadow-card: 0 8px 32px rgba(0, 0, 0, .28);
  --shadow-glow: 0 12px 45px rgba(0, 229, 255, .25);
  --gradient-btn: linear-gradient(135deg, #1e5bff, #00e5ff);
  --max-width: 1280px;
  --font-main: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

/* ============ 基础重置 ============ */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--font-main);
  background: linear-gradient(135deg, var(--bg-deep) 0%, var(--bg-deep-2) 100%);
  color: var(--text-main);
  line-height: 1.9;
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(600px 360px at 12% -4%, rgba(30, 91, 255, .12), transparent 70%),
    radial-gradient(520px 320px at 88% 0%, rgba(0, 229, 255, .08), transparent 70%),
    linear-gradient(135deg, var(--bg-deep), var(--bg-deep-2));
  pointer-events: none;
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(148, 184, 255, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 184, 255, .04) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity: .5;
  pointer-events: none;
}
img {
  max-width: 100%;
  display: block;
}
a {
  text-decoration: none;
  color: inherit;
}
button {
  font: inherit;
  border: none;
  background: none;
  cursor: pointer;
  color: inherit;
}
ul,
ol {
  list-style: none;
}

/* ============ 容器 ============ */
.container {
  width: min(var(--max-width), 94vw);
  margin-inline: auto;
}
.section {
  padding: 96px 0;
}
.section-head {
  max-width: 720px;
  margin-bottom: 48px;
}
.section-head.center {
  margin-inline: auto;
  text-align: center;
}
.section-head .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: .04em;
  color: #8ff4ff;
  background: rgba(0, 229, 255, .1);
  border: 1px solid rgba(0, 229, 255, .22);
  border-radius: var(--radius-pill);
  padding: 6px 16px;
  margin-bottom: 20px;
}
.section-head .eyebrow::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--neon);
  box-shadow: 0 0 12px rgba(0, 229, 255, .7);
}
.section-head h2 {
  font-size: clamp(28px, 3.4vw, 38px);
  font-weight: 700;
  line-height: 1.3;
  color: var(--text-main);
}
.section-head p {
  margin-top: 14px;
  color: var(--text-dim);
  font-size: 16px;
}

/* ============ 浮动 Dock 导航 ============ */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding-top: 16px;
  pointer-events: none;
}
.dock-wrap {
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.dock-nav {
  width: min(1240px, 94vw);
  height: 68px;
  pointer-events: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--radius-pill);
  padding: 0 18px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
}
.brand-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  font-size: 17px;
  font-weight: 800;
  color: var(--text-main);
}
.brand-logo .logo-mark {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: var(--gradient-btn);
  box-shadow: 0 0 18px rgba(0, 229, 255, .4);
  flex-shrink: 0;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0 8px;
  flex: 1;
  justify-content: center;
}
.nav-links a {
  padding: 7px 16px;
  border-radius: var(--radius-pill);
  font-size: 15px;
  font-weight: 500;
  color: var(--text-dim);
  transition: color .22s ease, background .22s ease;
  white-space: nowrap;
}
.nav-links a:hover {
  color: var(--text-main);
  background: rgba(255, 255, 255, .08);
}
.nav-links a.active {
  color: #8ff4ff;
  background: rgba(0, 229, 255, .14);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}
.dock-search {
  display: flex;
  align-items: center;
  position: relative;
}
.search-toggle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .1);
  transition: background .2s ease, border-color .2s ease;
}
.search-toggle:hover {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(0, 229, 255, .4);
}
.search-toggle svg {
  width: 18px;
  height: 18px;
}
.dock-search input {
  width: 0;
  opacity: 0;
  height: 40px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .06);
  padding: 0;
  color: var(--text-main);
  transition: width .25s ease, opacity .2s ease, padding .25s ease;
}
.dock-search.open input {
  width: 180px;
  opacity: 1;
  padding: 0 16px;
  margin-right: 8px;
}
.dock-search input:focus {
  outline: none;
  border-color: var(--neon);
  box-shadow: 0 0 0 3px rgba(0, 229, 255, .18);
}
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--gradient-btn);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  padding: 12px 24px;
  border-radius: var(--radius-pill);
  box-shadow: 0 8px 28px rgba(30, 91, 255, .35);
  transition: transform .25s ease, box-shadow .25s ease;
  white-space: nowrap;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 0 1px rgba(0, 229, 255, .5), 0 14px 40px rgba(0, 229, 255, .3);
}
.btn-primary:active {
  transform: scale(.96);
}
.btn-primary:focus-visible,
.nav-links a:focus-visible,
.search-toggle:focus-visible {
  outline: 2px solid rgba(0, 229, 255, .6);
  outline-offset: 3px;
}
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--panel);
  border: 1px solid var(--border-glass);
  color: var(--text-main);
  font-weight: 600;
  font-size: 15px;
  padding: 12px 24px;
  border-radius: var(--radius-pill);
  transition: background .25s ease, color .25s ease, border-color .25s ease;
  white-space: nowrap;
}
.btn-ghost:hover {
  background: rgba(255, 255, 255, .1);
  color: var(--neon);
  border-color: rgba(0, 229, 255, .4);
}
.btn-ghost:active {
  transform: scale(.96);
}

/* ============ 竖屏感 Hero ============ */
.hero {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 120px 0 64px;
  position: relative;
  background: url('/assets/images/backpic/back-1.png') center 20% / cover no-repeat;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 13, 31, .72) 0%, rgba(6, 13, 31, .88) 100%);
  z-index: 1;
}
.hero .container {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
}
.hero-phone {
  width: min(400px, 92vw);
  aspect-ratio: 3 / 4;
  background: linear-gradient(140deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .04));
  border: 1px solid var(--border-glass);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border-radius: 36px;
  box-shadow: var(--shadow-card), 0 0 80px rgba(30, 91, 255, .18);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 36px 32px;
}
.hero-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 229, 255, .12);
  border: 1px solid rgba(0, 229, 255, .25);
  color: #8ff4ff;
  font-size: 13px;
  border-radius: var(--radius-pill);
  padding: 7px 18px;
  margin-bottom: 24px;
}
.hero-chip::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--neon);
  box-shadow: 0 0 10px rgba(0, 229, 255, .8);
}
.hero-phone h1 {
  font-size: clamp(36px, 5vw, 52px);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin-bottom: 16px;
}
.hero-phone h1 .highlight {
  background: linear-gradient(120deg, var(--neon), var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero-sub {
  color: var(--text-dim);
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 30px;
  max-width: 300px;
}
.hero-cta {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 32px;
}
.hero-phone .btn-primary,
.hero-phone .btn-ghost {
  min-width: 130px;
}
.hero-scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: var(--text-dim);
  font-size: 12px;
  letter-spacing: .08em;
}
.scroll-dot {
  width: 26px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: var(--radius-pill);
  display: flex;
  justify-content: center;
  padding-top: 7px;
}
.scroll-dot::after {
  content: "";
  width: 4px;
  height: 8px;
  border-radius: var(--radius-pill);
  background: var(--neon);
  animation: scrollPulse 1.8s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { transform: translateY(0); opacity: .6; }
  50% { transform: translateY(8px); opacity: 1; }
}

/* ============ 爆款片段卡 ============ */
.showcase-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.clip-card {
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
  background: rgba(255, 255, 255, .04);
  border: 1px solid var(--border-glass);
  box-shadow: var(--shadow-card);
  transition: transform .3s ease, border-color .3s ease;
}
.clip-card:hover {
  transform: translateY(-4px);
  border-color: rgba(0, 229, 255, .4);
}
.clip-cover {
  aspect-ratio: 9 / 13;
  overflow: hidden;
  position: relative;
}
.clip-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.clip-card:hover .clip-cover img {
  transform: scale(1.03);
}
.clip-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, .75), transparent 60%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  z-index: 2;
}
.clip-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 3;
  background: rgba(6, 13, 31, .7);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--radius-pill);
  padding: 4px 12px;
  font-size: 12px;
  color: #fff;
}
.clip-hot {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  background: rgba(0, 229, 255, .18);
  border: 1px solid rgba(0, 229, 255, .35);
  color: #8ff4ff;
  font-size: 12px;
  font-weight: 700;
  border-radius: var(--radius-pill);
  padding: 4px 12px;
}
.clip-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(0, 229, 255, .6);
  backdrop-filter: blur(12px);
  display: grid;
  place-items: center;
  color: #fff;
  transition: transform .3s ease, box-shadow .3s ease;
}
.clip-play svg {
  width: 20px;
  height: 20px;
  margin-left: 3px;
}
.clip-card:hover .clip-play {
  transform: translate(-50%, -50%) scale(1.1);
  box-shadow: 0 0 30px rgba(0, 229, 255, .4);
}
.clip-duration {
  position: absolute;
  bottom: 14px;
  right: 14px;
  z-index: 3;
  font-size: 12px;
  color: rgba(255, 255, 255, .85);
  background: rgba(0, 0, 0, .45);
  border-radius: var(--radius-pill);
  padding: 3px 10px;
}
.clip-title {
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
  margin-bottom: 4px;
}
.clip-cat {
  font-size: 12px;
  color: rgba(255, 255, 255, .75);
}

/* ============ 资讯列表 ============ */
.news-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.news-card {
  background: linear-gradient(140deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
  border: 1px solid var(--border-glass);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border-radius: 18px;
  padding: 20px 24px;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.news-card:hover {
  border-color: rgba(0, 229, 255, .4);
  transform: translateX(4px);
  box-shadow: 0 8px 30px rgba(0, 229, 255, .1);
}
.news-link {
  display: flex;
  align-items: center;
  gap: 20px;
}
.news-date {
  width: 72px;
  min-height: 72px;
  flex-shrink: 0;
  background: rgba(0, 229, 255, .1);
  border: 1px solid rgba(0, 229, 255, .2);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 17px;
  font-weight: 700;
  color: #8ff4ff;
  line-height: 1.2;
  padding: 8px 6px;
}
.news-body {
  flex: 1;
  min-width: 0;
}
.news-body h3 {
  font-size: 17px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 6px;
}
.news-body p {
  font-size: 15px;
  color: var(--text-dim);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.7;
}
.news-meta {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 14px;
}
.tag {
  display: inline-flex;
  align-items: center;
  background: rgba(0, 229, 255, .12);
  border: 1px solid rgba(0, 229, 255, .25);
  color: #8ff4ff;
  font-size: 13px;
  border-radius: var(--radius-pill);
  padding: 4px 14px;
}
.news-arrow {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .06);
  border: 1px solid var(--border-glass);
  color: var(--text-dim);
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.news-card:hover .news-arrow {
  background: rgba(0, 229, 255, .15);
  color: #8ff4ff;
  border-color: rgba(0, 229, 255, .4);
}
.empty-state {
  background: linear-gradient(140deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
  border: 1px dashed var(--border-glass);
  border-radius: var(--radius);
  padding: 56px 24px;
  text-align: center;
  color: var(--text-dim);
  font-size: 16px;
}
.empty-state svg {
  width: 40px;
  height: 40px;
  margin: 0 auto 14px;
  opacity: .5;
}

/* ============ 种草清单 ============ */
.recipe-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.recipe-left {
  position: sticky;
  top: 120px;
}
.recipe-index {
  font-size: clamp(60px, 7vw, 76px);
  font-weight: 800;
  line-height: 1;
  color: rgba(0, 229, 255, .4);
  margin-bottom: 18px;
}
.recipe-left h2 {
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 18px;
}
.recipe-left .recipe-desc {
  color: var(--text-dim);
  font-size: 16px;
  margin-bottom: 36px;
}
.recipe-metrics {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
}
.metric-item .metric-num {
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 700;
  color: var(--text-main);
  line-height: 1.2;
}
.metric-item .metric-label {
  font-size: 13px;
  color: var(--text-dim);
}
.recipe-rows {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.recipe-row {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 20px;
  align-items: center;
  background: linear-gradient(140deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
  border: 1px solid var(--border-glass);
  border-radius: 18px;
  padding: 16px;
  transition: border-color .3s ease, transform .3s ease;
}
.recipe-row:hover {
  border-color: rgba(0, 229, 255, .5);
  transform: translateX(4px);
}
.recipe-thumb {
  width: 76px;
  height: 76px;
  border-radius: 14px;
  overflow: hidden;
}
.recipe-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.recipe-info .row-num {
  font-size: 12px;
  color: var(--neon);
  letter-spacing: .05em;
  font-weight: 700;
}
.recipe-info h3 {
  font-size: 17px;
  font-weight: 600;
  margin: 2px 0 4px;
}
.recipe-info p {
  font-size: 14px;
  color: var(--text-dim);
  line-height: 1.6;
}

/* ============ 评论 / 口碑条 ============ */
.review-summary {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.review-score {
  font-size: 44px;
  font-weight: 800;
  color: var(--text-main);
  line-height: 1;
}
.review-score small {
  font-size: 18px;
  color: var(--text-dim);
  font-weight: 400;
}
.review-stars {
  display: flex;
  gap: 3px;
  color: var(--accent);
  font-size: 18px;
}
.review-count {
  color: var(--text-dim);
  font-size: 15px;
}
.review-strip {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 12px;
}
.review-strip::-webkit-scrollbar {
  height: 6px;
}
.review-strip::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .15);
  border-radius: var(--radius-pill);
}
.review-card {
  min-width: 320px;
  scroll-snap-align: start;
  background: linear-gradient(140deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
  border: 1px solid var(--border-glass);
  border-radius: var(--radius);
  padding: 24px;
}
.review-card .stars {
  color: var(--accent);
  font-size: 16px;
  letter-spacing: 2px;
  margin-bottom: 14px;
}
.review-card blockquote {
  font-size: 15px;
  color: var(--text-main);
  line-height: 1.7;
  margin-bottom: 20px;
}
.review-user {
  display: flex;
  align-items: center;
  gap: 12px;
}
.review-user img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, .15);
}
.review-user .name {
  font-size: 14px;
  font-weight: 600;
}
.review-user .role {
  font-size: 12px;
  color: var(--text-dim);
}
.brand-tape {
  display: flex;
  justify-content: center;
  gap: 42px;
  flex-wrap: wrap;
  margin-top: 36px;
  color: var(--text-dim);
  opacity: .6;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .04em;
}

/* ============ 一键跟买 CTA ============ */
.cta-panel {
  position: relative;
  background: linear-gradient(140deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .03));
  border: 1px solid var(--border-glass);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  border-radius: 32px;
  padding: 72px 32px;
  text-align: center;
  overflow: hidden;
  box-shadow: var(--shadow-card);
}
.cta-panel::before {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(0, 229, 255, .2), transparent 70%);
  top: -80px;
  right: -60px;
  filter: blur(40px);
  pointer-events: none;
}
.cta-panel .cta-inner {
  position: relative;
  z-index: 2;
}
.cta-panel h2 {
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 800;
  line-height: 1.3;
  margin-bottom: 16px;
}
.cta-panel h2 .highlight {
  background: linear-gradient(120deg, var(--neon), var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.cta-panel .cta-sub {
  color: var(--text-dim);
  font-size: 16px;
  max-width: 560px;
  margin: 0 auto 36px;
}
.cta-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  flex-wrap: wrap;
}
.cta-actions .btn-primary {
  min-width: 180px;
  height: 56px;
  font-size: 17px;
}
.cta-points {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
}
.cta-point {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-main);
  font-size: 15px;
  font-weight: 500;
}
.cta-point svg {
  width: 18px;
  height: 18px;
  color: var(--accent);
}

/* ============ FAQ ============ */
.faq-list {
  max-width: 860px;
  margin: 0 auto;
}
.faq-item {
  background: linear-gradient(140deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-sm);
  margin-bottom: 12px;
  overflow: hidden;
  transition: border-color .3s ease, box-shadow .3s ease;
}
.faq-item.active {
  border-color: rgba(0, 229, 255, .45);
  box-shadow: 0 0 24px rgba(0, 229, 255, .1);
}
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 22px;
  min-height: 56px;
  font-size: 16px;
  font-weight: 600;
  color: var(--text-main);
  text-align: left;
}
.faq-icon {
  position: relative;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  background: var(--neon);
  border-radius: 2px;
  transition: transform .25s ease, opacity .25s ease;
}
.faq-icon::before {
  width: 16px;
  height: 2px;
  left: 2px;
  top: 9px;
}
.faq-icon::after {
  width: 2px;
  height: 16px;
  left: 9px;
  top: 2px;
}
.faq-item.active .faq-icon::after {
  transform: rotate(90deg);
  opacity: 0;
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}
.faq-item.active .faq-answer {
  max-height: 260px;
}
.faq-answer p {
  padding: 0 22px 20px;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.8;
}

/* ============ 页脚 ============ */
.site-footer {
  border-top: 1px solid var(--border-glass);
  background: rgba(4, 8, 20, .75);
  padding: 64px 0 32px;
  margin-top: 80px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 48px;
}
.footer-brand .brand-logo {
  margin-bottom: 14px;
}
.footer-brand p {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.7;
  max-width: 280px;
}
.footer-col h4 {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 18px;
  color: var(--text-main);
}
.footer-col ul li {
  margin-bottom: 10px;
}
.footer-col ul a {
  color: var(--text-dim);
  font-size: 14px;
  transition: color .2s ease;
}
.footer-col ul a:hover {
  color: var(--neon);
}
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255, 255, 255, .08);
  padding-top: 24px;
  font-size: 13px;
  color: var(--text-dim);
}
.footer-social {
  display: flex;
  gap: 12px;
}
.footer-social a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .1);
  color: var(--text-dim);
  transition: background .2s ease, color .2s ease;
}
.footer-social a:hover {
  background: rgba(0, 229, 255, .12);
  color: var(--neon);
}
.footer-social svg {
  width: 16px;
  height: 16px;
}

/* ============ 响应式 ============ */
@media (max-width: 1280px) {
  .showcase-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .recipe-wrap {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .recipe-left {
    position: static;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .section {
    padding: 56px 0;
  }
  .dock-nav {
    gap: 10px;
    padding: 0 12px;
  }
  .nav-links {
    overflow-x: auto;
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
    mask-image: linear-gradient(to right, transparent, #000 20px, #000 calc(100% - 20px), transparent);
  }
  .nav-links a {
    padding: 6px 12px;
    font-size: 14px;
  }
  .header-actions .btn-primary {
    padding: 8px 16px;
    font-size: 13px;
  }
  .search-toggle {
    width: 36px;
    height: 36px;
  }
  .showcase-grid {
    grid-template-columns: 1fr;
  }
  .hero-cta {
    flex-direction: column;
    width: 100%;
  }
  .hero-cta .btn-primary,
  .hero-cta .btn-ghost {
    width: 100%;
  }
  .recipe-wrap {
    grid-template-columns: 1fr;
  }
  .recipe-metrics {
    gap: 20px;
  }
  .news-link {
    flex-direction: column;
    align-items: flex-start;
  }
  .news-meta {
    width: 100%;
    justify-content: space-between;
  }
  .review-card {
    min-width: 85vw;
  }
  .cta-actions {
    flex-direction: column;
  }
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
  .brand-tape {
    gap: 24px;
  }
}
@media (max-width: 520px) {
  .dock-nav {
    height: 60px;
    padding: 0 10px;
  }
  .brand-logo {
    font-size: 15px;
  }
  .brand-logo .logo-mark {
    width: 24px;
    height: 24px;
  }
  .header-actions .btn-primary {
    padding: 7px 12px;
    font-size: 12px;
  }
  .dock-search.open input {
    width: 120px;
  }
  .hero-phone {
    border-radius: 28px;
    padding: 28px 20px;
  }
  .hero-phone h1 {
    font-size: 32px;
  }
  .news-card {
    padding: 16px;
  }
  .news-date {
    width: 60px;
    min-height: 60px;
    font-size: 14px;
  }
  .recipe-rows {
    gap: 12px;
  }
  .recipe-row {
    grid-template-columns: 60px 1fr;
    padding: 12px;
  }
  .recipe-thumb {
    width: 60px;
    height: 60px;
    border-radius: 12px;
  }
  .cta-panel {
    padding: 48px 20px;
    border-radius: 24px;
  }
}

/* roulang page: category1 */
:root {
            --bg-deep: #060d1f;
            --bg-deep-2: #0a1228;
            --panel: rgba(255, 255, 255, .05);
            --panel-strong: rgba(255, 255, 255, .08);
            --border-glass: rgba(148, 184, 255, .18);
            --primary: #1e5bff;
            --primary-deep: #103ec2;
            --neon: #00e5ff;
            --accent: #00ffa3;
            --text-main: #e9effc;
            --text-dim: #8e9db9;
            --radius: 20px;
            --radius-sm: 12px;
            --radius-pill: 999px;
            --shadow-card: 0 8px 32px rgba(0, 0, 0, .28);
            --shadow-glow: 0 12px 45px rgba(0, 229, 255, .25);
            --gradient-btn: linear-gradient(135deg, #1e5bff, #00e5ff);
            --max-width: 1280px;
        }

        *,
        *::before,
        *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
            background: linear-gradient(rgba(148, 184, 255, .025) 1px, transparent 1px),
                linear-gradient(90deg, rgba(148, 184, 255, .025) 1px, transparent 1px),
                radial-gradient(circle at 18% 12%, rgba(30, 91, 255, .1), transparent 42%),
                radial-gradient(circle at 82% 8%, rgba(0, 229, 255, .08), transparent 38%),
                linear-gradient(135deg, var(--bg-deep), var(--bg-deep-2));
            background-size: 44px 44px, 44px 44px, 100% 100%, 100% 100%, 100% 100%;
            color: var(--text-main);
            line-height: 1.9;
            -webkit-font-smoothing: antialiased;
            min-height: 100vh;
        }

        img {
            max-width: 100%;
            display: block;
            object-fit: cover;
        }

        a {
            color: inherit;
            text-decoration: none;
            transition: color .25s ease;
        }

        ul,
        ol {
            list-style: none;
        }

        button,
        input {
            font-family: inherit;
            font-size: inherit;
            border: none;
            outline: none;
            background: none;
            color: inherit;
        }

        .container {
            max-width: var(--max-width);
            margin: 0 auto;
            padding: 0 24px;
        }

        /* ===== 浮动 Dock 导航 ===== */
        .site-header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            padding-top: 16px;
            pointer-events: none;
        }

        .site-header .container {
            pointer-events: auto;
        }

        .dock-nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            width: min(1240px, 94vw);
            height: 68px;
            margin: 0 auto;
            padding: 0 20px;
            border-radius: var(--radius-pill);
            background: rgba(255, 255, 255, .08);
            border: 1px solid rgba(255, 255, 255, .12);
            backdrop-filter: blur(20px) saturate(140%);
            -webkit-backdrop-filter: blur(20px) saturate(140%);
            box-shadow: 0 8px 32px rgba(0, 0, 0, .28);
        }

        .brand-logo {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font-size: 16px;
            font-weight: 800;
            letter-spacing: .02em;
            white-space: nowrap;
        }

        .logo-mark {
            width: 26px;
            height: 26px;
            border-radius: 8px;
            background: linear-gradient(135deg, #1e5bff, #00e5ff);
            box-shadow: 0 0 18px rgba(0, 229, 255, .5);
            flex-shrink: 0;
        }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .nav-links a {
            padding: 7px 15px;
            border-radius: var(--radius-pill);
            font-size: 14px;
            font-weight: 500;
            color: var(--text-dim);
            white-space: nowrap;
            transition: background .25s ease, color .25s ease;
        }

        .nav-links a:hover {
            background: rgba(255, 255, 255, .08);
            color: var(--text-main);
        }

        .nav-links a.active {
            background: rgba(0, 229, 255, .14);
            color: #8ff4ff;
        }

        .header-actions {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .dock-search {
            position: relative;
            display: flex;
            align-items: center;
        }

        .dock-search input {
            width: 0;
            height: 40px;
            padding: 0;
            border: 1px solid transparent;
            border-radius: var(--radius-pill);
            background: rgba(255, 255, 255, .06);
            font-size: 14px;
            color: var(--text-main);
            opacity: 0;
            transition: width .3s ease, opacity .3s ease, padding .3s ease, border-color .3s ease;
        }

        .dock-search.open input {
            width: 170px;
            padding: 0 16px;
            opacity: 1;
            border-color: rgba(148, 184, 255, .25);
        }

        .dock-search input:focus {
            border-color: var(--neon);
            box-shadow: 0 0 12px rgba(0, 229, 255, .15);
        }

        .search-toggle {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: var(--text-dim);
            background: rgba(255, 255, 255, .06);
            transition: background .25s ease, color .25s ease;
        }

        .search-toggle:hover {
            background: rgba(255, 255, 255, .12);
            color: var(--neon);
        }

        .search-toggle svg {
            width: 18px;
            height: 18px;
        }

        .btn-primary {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            background: linear-gradient(135deg, #1e5bff, #00e5ff);
            color: #fff;
            font-weight: 700;
            font-size: 14px;
            border-radius: var(--radius-pill);
            padding: 10px 22px;
            cursor: pointer;
            white-space: nowrap;
            transition: transform .25s ease, box-shadow .25s ease;
            box-shadow: 0 4px 20px rgba(0, 229, 255, .2);
        }

        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 0 0 1px rgba(0, 229, 255, .5), 0 14px 40px rgba(0, 229, 255, .3);
        }

        .btn-primary:active {
            transform: scale(.96);
        }

        /* ===== 薄型 Hero ===== */
        .cat-hero {
            position: relative;
            padding: 148px 0 68px;
            text-align: center;
            background: linear-gradient(to bottom, rgba(6, 13, 31, .87), rgba(6, 13, 31, .95)),
                url('/assets/images/backpic/back-1.png') center/cover no-repeat;
            border-bottom: 1px solid var(--border-glass);
        }

        .cat-hero::after {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 360px;
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(0, 229, 255, .5), transparent);
        }

        .cat-hero .breadcrumb {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            font-size: 14px;
            color: var(--text-dim);
            margin-bottom: 20px;
        }

        .cat-hero .breadcrumb a {
            color: var(--text-dim);
            transition: color .25s ease;
        }

        .cat-hero .breadcrumb a:hover {
            color: var(--neon);
        }

        .cat-hero .breadcrumb span {
            color: rgba(142, 157, 185, .5);
        }

        .cat-hero .breadcrumb .current {
            color: var(--text-main);
        }

        .cat-hero h1 {
            font-size: clamp(36px, 5vw, 52px);
            font-weight: 800;
            line-height: 1.2;
            letter-spacing: .01em;
            margin-bottom: 18px;
            background: linear-gradient(135deg, #e9effc, #8ff4ff);
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .cat-hero .hero-note {
            font-size: 16px;
            color: var(--text-dim);
            max-width: 480px;
            margin: 0 auto;
        }

        /* ===== 主体两列 ===== */
        .cat-main {
            display: grid;
            grid-template-columns: 1fr 360px;
            gap: 48px;
            padding: 72px 24px 32px;
        }

        .cat-content {
            min-width: 0;
        }

        .cat-content h2 {
            font-size: 26px;
            font-weight: 700;
            line-height: 1.4;
            margin: 44px 0 16px;
            color: var(--text-main);
            position: relative;
            padding-left: 16px;
        }

        .cat-content h2::before {
            content: '';
            position: absolute;
            left: 0;
            top: 6px;
            bottom: 6px;
            width: 3px;
            border-radius: 3px;
            background: linear-gradient(180deg, var(--primary), var(--neon));
        }

        .cat-content p {
            color: var(--text-dim);
            line-height: 1.9;
            margin-bottom: 18px;
            font-size: 15px;
        }

        .cat-content img {
            border-radius: 16px;
            margin: 28px 0 8px;
            box-shadow: var(--shadow-card);
            width: 100%;
            height: auto;
        }

        /* 侧边收录卡片 */
        .cat-side {
            position: sticky;
            top: 104px;
            align-self: flex-start;
        }

        .cat-side-card {
            background: linear-gradient(140deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
            border: 1px solid var(--border-glass);
            border-radius: var(--radius);
            backdrop-filter: blur(16px) saturate(140%);
            -webkit-backdrop-filter: blur(16px) saturate(140%);
            box-shadow: var(--shadow-card);
            padding: 28px 24px;
        }

        .cat-side-card h3 {
            font-size: 18px;
            font-weight: 700;
            margin-bottom: 8px;
            color: var(--text-main);
        }

        .cat-side-card .side-desc {
            font-size: 13px;
            color: var(--text-dim);
            margin-bottom: 18px;
            line-height: 1.6;
        }

        .cat-side-card ul li {
            border-bottom: 1px solid rgba(148, 184, 255, .12);
        }

        .cat-side-card ul li:last-child {
            border-bottom: none;
        }

        .cat-side-card ul a {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 14px 4px;
            font-size: 14px;
            color: var(--text-main);
            transition: color .25s ease, padding-left .25s ease;
        }

        .cat-side-card ul a span {
            color: var(--neon);
            font-size: 18px;
            opacity: .6;
            transition: opacity .25s ease, transform .25s ease;
        }

        .cat-side-card ul a:hover {
            color: #8ff4ff;
            padding-left: 8px;
        }

        .cat-side-card ul a:hover span {
            opacity: 1;
            transform: translateX(4px);
        }

        /* ===== 小型 CTA ===== */
        .cat-cta {
            padding: 32px 24px 72px;
        }

        .cta-panel {
            position: relative;
            background: linear-gradient(140deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
            border: 1px solid var(--border-glass);
            border-radius: 24px;
            backdrop-filter: blur(16px) saturate(140%);
            -webkit-backdrop-filter: blur(16px) saturate(140%);
            box-shadow: var(--shadow-card);
            padding: 56px 32px;
            text-align: center;
            overflow: hidden;
        }

        .cta-panel::before {
            content: '';
            position: absolute;
            top: -80px;
            right: -80px;
            width: 240px;
            height: 240px;
            border-radius: 50%;
            background: rgba(0, 229, 255, .1);
            filter: blur(90px);
            pointer-events: none;
        }

        .cta-panel h2 {
            font-size: clamp(24px, 3.5vw, 34px);
            font-weight: 700;
            line-height: 1.3;
            margin-bottom: 12px;
            color: var(--text-main);
        }

        .cta-panel p {
            font-size: 15px;
            color: var(--text-dim);
            margin-bottom: 28px;
        }

        .cta-actions {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 24px;
            flex-wrap: wrap;
        }

        .cta-panel .btn-primary {
            padding: 16px 34px;
            font-size: 16px;
            min-width: 180px;
            min-height: 56px;
        }

        .cta-points {
            display: flex;
            gap: 18px;
            flex-wrap: wrap;
            justify-content: center;
        }

        .cta-points span {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 14px;
            color: var(--text-main);
            background: rgba(255, 255, 255, .06);
            border: 1px solid rgba(148, 184, 255, .14);
            border-radius: var(--radius-pill);
            padding: 8px 16px;
        }

        .cta-points span::before {
            content: '';
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--accent);
            box-shadow: 0 0 8px rgba(0, 255, 163, .6);
        }

        /* ===== FAQ ===== */
        .faq-section {
            padding: 24px 24px 96px;
        }

        .faq-section .section-head {
            text-align: center;
            margin-bottom: 40px;
        }

        .faq-section .section-head h2 {
            font-size: 30px;
            font-weight: 700;
            color: var(--text-main);
            margin-bottom: 8px;
        }

        .faq-section .section-head p {
            font-size: 15px;
            color: var(--text-dim);
        }

        .faq-list {
            max-width: 860px;
            margin: 0 auto;
        }

        .faq-item {
            margin-bottom: 12px;
            border: 1px solid var(--border-glass);
            border-radius: var(--radius);
            background: linear-gradient(140deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
            backdrop-filter: blur(14px) saturate(140%);
            -webkit-backdrop-filter: blur(14px) saturate(140%);
            transition: border-color .3s ease, box-shadow .3s ease;
            overflow: hidden;
        }

        .faq-item.active {
            border-color: rgba(0, 229, 255, .45);
            box-shadow: 0 0 24px rgba(0, 229, 255, .1);
        }

        .faq-question {
            display: flex;
            align-items: center;
            justify-content: space-between;
            width: 100%;
            padding: 0 22px;
            height: 58px;
            cursor: pointer;
            font-size: 16px;
            font-weight: 600;
            color: var(--text-main);
            text-align: left;
            background: none;
            border: none;
            transition: color .25s ease;
        }

        .faq-question:hover {
            color: #8ff4ff;
        }

        .faq-icon {
            position: relative;
            width: 22px;
            height: 22px;
            flex-shrink: 0;
        }

        .faq-icon::before,
        .faq-icon::after {
            content: '';
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            background: var(--neon);
            border-radius: 2px;
            transition: transform .3s ease;
        }

        .faq-icon::before {
            width: 14px;
            height: 2px;
        }

        .faq-icon::after {
            width: 2px;
            height: 14px;
        }

        .faq-item.active .faq-icon::after {
            transform: translate(-50%, -50%) rotate(90deg);
            opacity: 0;
        }

        .faq-answer {
            max-height: 0;
            padding: 0 22px;
            overflow: hidden;
            transition: max-height .35s ease, padding .35s ease;
            color: var(--text-dim);
            font-size: 15px;
            line-height: 1.7;
        }

        .faq-item.active .faq-answer {
            max-height: 300px;
            padding: 0 22px 22px;
        }

        /* ===== 页脚 ===== */
        .site-footer {
            border-top: 1px solid var(--border-glass);
            background: rgba(6, 13, 31, .6);
            backdrop-filter: blur(14px);
            -webkit-backdrop-filter: blur(14px);
            padding: 56px 0 28px;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
            gap: 40px;
            margin-bottom: 36px;
        }

        .footer-brand .brand-logo {
            font-size: 18px;
            margin-bottom: 14px;
        }

        .footer-brand p {
            font-size: 14px;
            color: var(--text-dim);
            line-height: 1.7;
            max-width: 280px;
        }

        .footer-col h4 {
            font-size: 15px;
            font-weight: 700;
            color: var(--text-main);
            margin-bottom: 16px;
        }

        .footer-col ul li {
            margin-bottom: 9px;
        }

        .footer-col ul a {
            font-size: 14px;
            color: var(--text-dim);
            transition: color .25s ease;
        }

        .footer-col ul a:hover {
            color: #8ff4ff;
        }

        .footer-bottom {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 12px;
            padding-top: 24px;
            border-top: 1px solid rgba(148, 184, 255, .12);
            font-size: 13px;
            color: var(--text-dim);
        }

        .footer-social {
            display: flex;
            gap: 12px;
        }

        .footer-social a {
            width: 34px;
            height: 34px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, .06);
            border: 1px solid rgba(148, 184, 255, .14);
            color: var(--text-dim);
            transition: background .25s ease, color .25s ease, border-color .25s ease;
        }

        .footer-social a:hover {
            background: rgba(0, 229, 255, .12);
            color: #8ff4ff;
            border-color: rgba(0, 229, 255, .3);
        }

        .footer-social svg {
            width: 15px;
            height: 15px;
        }

        /* ===== 响应式 ===== */
        @media (max-width: 1279px) {
            .cat-main {
                grid-template-columns: 1fr 300px;
                gap: 32px;
            }
        }

        @media (max-width: 1023px) {
            .footer-grid {
                grid-template-columns: 1fr 1fr;
            }

            .cat-main {
                grid-template-columns: 1fr;
                padding: 48px 24px 24px;
            }

            .cat-side {
                position: static;
            }
        }

        @media (max-width: 767px) {
            .dock-nav {
                width: 96vw;
                height: auto;
                min-height: 62px;
                padding: 10px 16px;
                flex-wrap: wrap;
            }

            .nav-links {
                order: 3;
                width: 100%;
                display: flex;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                gap: 2px;
                margin-top: 6px;
                padding-bottom: 4px;
            }

            .nav-links a {
                padding: 6px 12px;
                font-size: 13px;
                flex-shrink: 0;
            }

            .header-actions {
                margin-left: auto;
            }

            .cat-hero {
                padding: 130px 0 48px;
            }

            .cat-hero h1 {
                font-size: 34px;
            }

            .cat-content h2 {
                font-size: 22px;
            }

            .cta-panel {
                padding: 40px 20px;
            }

            .cta-actions {
                flex-direction: column;
                gap: 14px;
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 28px;
            }

            .footer-bottom {
                flex-direction: column;
                align-items: flex-start;
            }
        }

        @media (max-width: 520px) {
            .container {
                padding: 0 18px;
            }

            .dock-nav {
                padding: 8px 12px;
            }

            .brand-logo {
                font-size: 14px;
            }

            .btn-primary {
                padding: 9px 16px;
                font-size: 13px;
            }

            .cat-hero h1 {
                font-size: 30px;
            }

            .cat-main {
                padding: 40px 18px 16px;
            }

            .faq-section {
                padding: 16px 18px 64px;
            }
        }

/* roulang page: article */
:root{
  --bg-deep:#060d1f;
  --bg-deep-2:#0a1228;
  --panel:rgba(255,255,255,.05);
  --panel-strong:rgba(255,255,255,.08);
  --border-glass:rgba(148,184,255,.18);
  --primary:#1e5bff;
  --primary-deep:#103ec2;
  --neon:#00e5ff;
  --accent:#00ffa3;
  --text-main:#e9effc;
  --text-dim:#8e9db9;
  --radius:20px;
  --radius-sm:12px;
  --radius-pill:999px;
  --shadow-card:0 8px 32px rgba(0,0,0,.28);
  --shadow-glow:0 12px 45px rgba(0,229,255,.25);
  --gradient-btn:linear-gradient(135deg,#1e5bff,#00e5ff);
  --max-width:1280px;
  --font-main:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-main);
  background:
    radial-gradient(900px 420px at 12% -5%,rgba(30,91,255,.13),transparent 60%),
    radial-gradient(760px 420px at 108% 12%,rgba(0,229,255,.09),transparent 60%),
    linear-gradient(135deg,var(--bg-deep),var(--bg-deep-2));
  background-attachment:fixed;
  color:var(--text-main);
  line-height:1.75;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:52px 52px;
  pointer-events:none;
  z-index:0;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}
ul,ol{list-style:none}
.container{max-width:var(--max-width);margin:0 auto;padding-left:24px;padding-right:24px;width:100%}
.site-header,main,.site-footer{position:relative;z-index:1}

/* ===== Dock Navigation ===== */
.site-header{padding-top:16px;position:sticky;top:0;z-index:100}
.dock-wrap{display:flex;justify-content:center}
.dock-nav{
  width:min(1240px,94vw);
  height:68px;
  display:flex;
  align-items:center;
  gap:26px;
  padding:0 18px;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-card);
}
.brand-logo{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;font-size:16px;font-weight:800;letter-spacing:.2px;color:var(--text-main)}
.logo-mark{
  width:26px;height:26px;border-radius:9px;
  background:var(--gradient-btn);
  box-shadow:0 0 18px rgba(0,229,255,.45);
  display:inline-block;flex-shrink:0;
}
.nav-links{display:flex;align-items:center;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{
  padding:7px 15px;
  border-radius:var(--radius-pill);
  font-size:14px;
  font-weight:500;
  color:var(--text-dim);
  white-space:nowrap;
  transition:background .25s ease,color .25s ease;
}
.nav-links a:hover{background:rgba(255,255,255,.1);color:var(--text-main)}
.nav-links a.active{background:rgba(0,229,255,.14);color:#8ff4ff}
.header-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.dock-search{display:flex;align-items:center;gap:6px;position:relative}
.dock-search input{
  width:168px;height:38px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.13);
  border-radius:var(--radius-pill);
  padding:0 36px 0 16px;
  font-size:13px;
  color:var(--text-main);
  outline:none;
  transition:border .2s ease,box-shadow .2s ease,width .25s ease;
}
.dock-search input::placeholder{color:rgba(142,157,185,.7)}
.dock-search input:focus{border-color:var(--neon);box-shadow:0 0 0 3px rgba(0,229,255,.15)}
.search-toggle{
  position:absolute;right:4px;top:50%;transform:translateY(-50%);
  width:32px;height:32px;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:none;border-radius:50%;
  color:var(--text-dim);cursor:pointer;transition:color .2s ease,background .2s ease;
}
.search-toggle:hover{color:var(--neon);background:rgba(0,229,255,.1)}
.search-toggle svg{width:17px;height:17px}

/* ===== Buttons ===== */
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--gradient-btn);
  color:#fff;font-weight:700;font-size:14px;
  padding:13px 24px;
  border-radius:var(--radius-pill);
  border:none;cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,opacity .2s ease;
  box-shadow:0 4px 22px rgba(0,229,255,.28);
  line-height:1.2;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(0,229,255,.5),0 14px 40px rgba(0,229,255,.3)}
.btn-primary:active{transform:scale(.96)}
.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:2px solid var(--neon);outline-offset:3px}
.btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--panel);
  border:1px solid var(--border-glass);
  border-radius:var(--radius-pill);
  color:var(--text-main);
  font-size:14px;font-weight:600;
  padding:13px 24px;
  transition:background .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease;
  cursor:pointer;
}
.btn-secondary:hover{background:rgba(255,255,255,.1);border-color:rgba(0,229,255,.4);color:var(--neon)}
.btn-secondary:active{transform:scale(.97)}
.btn-secondary svg{width:16px;height:16px}

/* ===== Breadcrumb ===== */
.breadcrumb{
  display:flex;align-items:center;flex-wrap:wrap;
  gap:8px;
  font-size:14px;
  color:var(--text-dim);
  padding:34px 0 22px;
}
.breadcrumb a{transition:color .2s ease}
.breadcrumb a:hover{color:var(--neon)}
.crumb-sep{color:rgba(142,157,185,.4)}
.crumb-current{
  max-width:340px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--text-main);
}

/* ===== Article Detail ===== */
.article-page{min-height:70vh}
.article-detail{max-width:920px;margin:0 auto;padding-bottom:40px}
.article-head{
  text-align:center;
  padding:4px 0 32px;
}
.article-category-chip{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(0,229,255,.12);
  border:1px solid rgba(0,229,255,.25);
  color:#8ff4ff;
  border-radius:var(--radius-pill);
  padding:5px 16px;
  font-size:13px;font-weight:600;
  margin-bottom:20px;
  white-space:nowrap;
}
.article-head h1{
  font-size:clamp(30px,4.4vw,46px);
  font-weight:800;
  line-height:1.25;
  color:var(--text-main);
  letter-spacing:.3px;
  max-width:820px;
  margin:0 auto 22px;
}
.article-meta{
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:10px 28px;
  font-size:13px;
  color:var(--text-dim);
}
.meta-item{display:inline-flex;align-items:center;gap:7px}
.meta-item svg{width:15px;height:15px;opacity:.75}

/* ===== Article Content ===== */
.article-content{
  max-width:820px;
  margin:0 auto;
  padding:30px 0 42px;
}
.article-content p{
  font-size:16px;
  line-height:1.9;
  color:rgba(233,239,252,.86);
  margin:0 0 20px;
}
.article-content h2{
  font-size:26px;
  font-weight:700;
  color:var(--text-main);
  margin:42px 0 18px;
  padding-left:14px;
  border-left:4px solid var(--neon);
  line-height:1.4;
}
.article-content h3{
  font-size:21px;
  font-weight:600;
  color:var(--text-main);
  margin:32px 0 14px;
}
.article-content ul,.article-content ol{
  margin:18px 0 24px;
  padding-left:26px;
  font-size:16px;
  line-height:1.85;
  color:rgba(233,239,252,.85);
}
.article-content ul{list-style:disc}
.article-content ol{list-style:decimal}
.article-content li{margin-bottom:8px}
.article-content blockquote{
  border-left:3px solid var(--neon);
  background:rgba(0,229,255,.06);
  border-radius:0 14px 14px 0;
  padding:16px 22px;
  margin:24px 0;
  color:var(--text-dim);
  font-size:15px;
  font-style:normal;
  line-height:1.8;
}
.article-content img{
  border-radius:16px;
  max-width:100%;
  height:auto;
  margin:26px auto;
  box-shadow:var(--shadow-card);
}
.article-content strong{color:#b9e8ff;font-weight:700}
.article-content a{color:var(--neon);text-decoration:underline;word-break:break-all}
.article-content hr{border:none;height:1px;background:rgba(148,184,255,.16);margin:34px 0}
.article-content code{
  background:rgba(0,229,255,.1);
  color:#8ff4ff;
  border-radius:6px;
  padding:2px 8px;
  font-size:.9em;
}

/* ===== Not Found ===== */
.not-found{
  text-align:center;
  padding:80px 24px;
  background:var(--panel);
  border:1px solid var(--border-glass);
  border-radius:var(--radius);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  box-shadow:var(--shadow-card);
}
.not-found .nf-icon{
  width:56px;height:56px;
  margin:0 auto 18px;
  border-radius:16px;
  background:rgba(0,229,255,.1);
  display:flex;align-items:center;justify-content:center;
}
.not-found .nf-icon svg{width:26px;height:26px;color:var(--neon)}
.not-found h2{font-size:22px;font-weight:700;margin-bottom:10px}
.not-found p{color:var(--text-dim);font-size:15px;margin-bottom:24px}

/* ===== Article Tags & Share ===== */
.article-tags{
  max-width:820px;
  margin:0 auto;
  padding:26px 0 16px;
  border-top:1px solid rgba(148,184,255,.14);
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:18px;
}
.tag-list{display:flex;flex-wrap:wrap;gap:10px}
.tag-chip{
  background:rgba(0,229,255,.12);
  border:1px solid rgba(0,229,255,.25);
  color:#8ff4ff;
  border-radius:var(--radius-pill);
  padding:4px 13px;
  font-size:13px;
  font-weight:500;
  transition:background .2s ease,border-color .2s ease;
}
.tag-chip:hover{background:rgba(0,229,255,.2);border-color:rgba(0,229,255,.45)}
.share-row{display:flex;align-items:center;gap:8px}
.share-label{font-size:13px;color:var(--text-dim);margin-right:4px}
.share-btn{
  width:34px;height:34px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--panel);
  border:1px solid var(--border-glass);
  color:var(--text-dim);
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.share-btn:hover{background:rgba(0,229,255,.12);border-color:rgba(0,229,255,.35);color:var(--neon);transform:translateY(-2px)}
.share-btn svg{width:16px;height:16px}

/* ===== Related Posts ===== */
.related-posts{
  padding:58px 0 42px;
  border-top:1px solid rgba(148,184,255,.12);
}
.section-head{max-width:820px;margin:0 auto 30px}
.section-head h2{font-size:30px;font-weight:700;color:var(--text-main);margin-bottom:8px}
.section-head p{font-size:15px;color:var(--text-dim)}
.related-grid{
  max-width:820px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.related-card{
  display:flex;
  flex-direction:column;
  background:linear-gradient(140deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  border:1px solid var(--border-glass);
  border-radius:var(--radius);
  overflow:hidden;
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  box-shadow:var(--shadow-card);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.related-card:hover{transform:translateY(-4px);box-shadow:0 16px 44px rgba(0,0,0,.38),0 0 0 1px rgba(0,229,255,.25);border-color:rgba(0,229,255,.35)}
.related-cover{aspect-ratio:16/10;overflow:hidden}
.related-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.related-card:hover .related-cover img{transform:scale(1.04)}
.related-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.related-body h3{font-size:17px;font-weight:600;line-height:1.5;color:var(--text-main)}
.related-body p{font-size:13px;color:var(--text-dim);line-height:1.65;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.related-date{font-size:12px;color:rgba(142,157,185,.65);margin-top:auto}

/* ===== Article Actions ===== */
.article-actions{
  padding:12px 0 64px;
  text-align:center;
}
.article-actions .btn-secondary{min-width:150px}

/* ===== Footer ===== */
.site-footer{
  background:rgba(6,13,31,.72);
  border-top:1px solid rgba(148,184,255,.14);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  padding:58px 0 0;
  margin-top:20px;
}
.footer-grid{
  display:grid;
  grid-template-columns:2.2fr 1fr 1fr 1.2fr;
  gap:36px 48px;
  padding-bottom:40px;
}
.footer-brand .brand-logo{margin-bottom:16px}
.footer-brand p{font-size:14px;color:var(--text-dim);line-height:1.85;max-width:340px}
.footer-col h4{font-size:15px;font-weight:600;color:var(--text-main);margin-bottom:16px}
.footer-col ul li{margin-bottom:9px}
.footer-col ul li a{font-size:14px;color:var(--text-dim);transition:color .2s ease,padding-left .2s ease}
.footer-col ul li a:hover{color:var(--neon);padding-left:4px}
.footer-bottom{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;
  padding:22px 0;
  border-top:1px solid rgba(148,184,255,.12);
  font-size:13px;
  color:rgba(142,157,185,.75);
}
.footer-bottom span{line-height:1.2}
.footer-social{display:flex;align-items:center;gap:10px;margin-left:auto}
.footer-social a{
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--panel);
  border:1px solid var(--border-glass);
  color:var(--text-dim);
  transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease;
}
.footer-social a:hover{color:var(--neon);border-color:rgba(0,229,255,.4);transform:translateY(-2px)}
.footer-social svg{width:17px;height:17px}

/* ===== Responsive ===== */
@media (max-width:1023px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 36px}
  .related-grid{grid-template-columns:repeat(2,1fr)}
  .related-card:last-child{grid-column:1/-1;max-width:calc(50% - 10px);margin:0 auto;width:100%}
}
@media (max-width:767px){
  .site-header{padding-top:10px}
  .dock-nav{width:96vw;height:62px;padding:0 12px;gap:10px}
  .brand-logo .logo-mark{width:24px;height:24px}
  .dock-search input{display:none}
  .search-toggle{position:static;transform:none;display:inline-flex;width:34px;height:34px}
  .nav-links{flex:1;min-width:0}
  .nav-links a{padding:7px 11px;font-size:13px}
  .header-actions .btn-primary{padding:11px 16px;font-size:13px}
  .article-head h1{font-size:28px}
  .article-meta{gap:8px 18px}
  .article-content{padding:24px 0 34px}
  .article-content p,.article-content ul,.article-content ol{font-size:15px}
  .related-grid{grid-template-columns:1fr;gap:16px}
  .related-card:last-child{grid-column:auto;max-width:none}
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .footer-brand p{max-width:none}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:8px}
  .footer-social{margin-left:0;margin-top:8px}
  .breadcrumb{padding-top:22px}
  .crumb-current{max-width:200px}
}
@media (max-width:520px){
  .dock-nav{gap:6px}
  .header-actions{margin-left:auto}
  .header-actions .btn-primary{display:none}
  .nav-links a{padding:6px 9px}
  .article-head h1{font-size:24px}
  .article-content h2{font-size:22px}
  .article-content h3{font-size:19px}
  .tag-list{gap:8px}
  .tag-chip{padding:3px 10px;font-size:12px}
}

/* roulang page: category2 */
:root {
  --bg-deep: #060d1f;
  --bg-deep-2: #0a1228;
  --panel: rgba(255,255,255,.05);
  --panel-strong: rgba(255,255,255,.08);
  --border-glass: rgba(148,184,255,.18);
  --primary: #1e5bff;
  --primary-deep: #103ec2;
  --neon: #00e5ff;
  --accent: #00ffa3;
  --text-main: #e9effc;
  --text-dim: #8e9db9;
  --radius: 20px;
  --radius-sm: 12px;
  --radius-pill: 999px;
  --shadow-card: 0 8px 32px rgba(0,0,0,.28);
  --shadow-glow: 0 12px 45px rgba(0,229,255,.25);
  --gradient-btn: linear-gradient(135deg, #1e5bff, #00e5ff);
  --max-width: 1280px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  background: linear-gradient(135deg, var(--bg-deep), var(--bg-deep-2));
  color: var(--text-main);
  line-height: 1.7;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(600px 400px at 10% 0%, rgba(30,91,255,.12), transparent 60%),
    radial-gradient(500px 380px at 90% 10%, rgba(0,229,255,.08), transparent 60%),
    linear-gradient(rgba(148,184,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148,184,255,.03) 1px, transparent 1px);
  background-size: auto, auto, 44px 44px, 44px 44px;
  pointer-events: none;
  z-index: 0;
}

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input { font-family: inherit; }

/* ===== Buttons ===== */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--gradient-btn);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  border-radius: var(--radius-pill);
  padding: 13px 24px;
  border: none;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 0 1px rgba(0,229,255,.5), 0 14px 40px rgba(0,229,255,.3);
}
.btn-primary:active { transform: scale(.96); }

.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--panel);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-pill);
  padding: 13px 24px;
  color: var(--text-main);
  font-weight: 600;
  font-size: 15px;
  transition: all .25s ease;
}
.btn-ghost:hover { background: var(--panel-strong); color: var(--neon); }

/* ===== Header / Dock Nav ===== */
.site-header {
  position: relative;
  z-index: 100;
  padding-top: 16px;
}
.dock-wrap { width: min(1240px, 94vw); }
.dock-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  padding: 0 20px;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-card);
}
.brand-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .5px;
  white-space: nowrap;
}
.logo-mark {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: var(--gradient-btn);
  box-shadow: 0 0 16px rgba(0,229,255,.4);
  flex-shrink: 0;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 4px;
}
.nav-links a {
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  font-size: 14px;
  color: var(--text-dim);
  white-space: nowrap;
  transition: all .2s ease;
}
.nav-links a:hover { background: rgba(255,255,255,.1); color: var(--text-main); }
.nav-links a.active {
  background: rgba(0,229,255,.14);
  color: #8ff4ff;
  font-weight: 600;
}
.header-actions { display: flex; align-items: center; gap: 12px; }
.dock-search { display: flex; align-items: center; position: relative; }
.dock-search input {
  width: 0;
  opacity: 0;
  height: 40px;
  border: none;
  border-radius: var(--radius-pill);
  background: rgba(255,255,255,.06);
  padding: 0;
  color: var(--text-main);
  font-size: 14px;
  transition: width .25s ease, opacity .25s ease, padding .25s ease, border-color .25s ease;
}
.dock-search input::placeholder { color: var(--text-dim); }
.dock-search.open input {
  width: 190px;
  opacity: 1;
  padding: 0 16px;
  border: 1px solid rgba(0,229,255,.3);
  box-shadow: 0 0 16px rgba(0,229,255,.12);
}
.dock-search.open input:focus { outline: none; border-color: var(--neon); }
.search-toggle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-dim);
  background: var(--panel);
  border: 1px solid var(--border-glass);
  transition: all .2s ease;
  flex-shrink: 0;
}
.search-toggle:hover { color: var(--neon); border-color: rgba(0,229,255,.4); }
.search-toggle svg { width: 18px; height: 18px; }

/* ===== Hero Mini ===== */
.hero-mini {
  position: relative;
  padding: 96px 0 72px;
  background-size: cover;
  background-position: center;
  text-align: center;
  overflow: hidden;
  z-index: 1;
}
.hero-mini::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(400px 200px at center, rgba(0,229,255,.1), transparent 70%);
  pointer-events: none;
}
.breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 14px;
  color: var(--text-dim);
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.breadcrumb a:hover { color: var(--neon); }
.breadcrumb .current { color: rgba(255,255,255,.7); }
.hero-mini h1 {
  position: relative;
  z-index: 1;
  font-size: clamp(38px, 5vw, 52px);
  font-weight: 800;
  line-height: 1.15;
  background: linear-gradient(90deg, #fff, #8ff4ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero-mini p {
  position: relative;
  z-index: 1;
  margin-top: 12px;
  font-size: 16px;
  color: var(--text-dim);
}

/* ===== Category Main ===== */
.cat-main { padding: 72px 0 48px; position: relative; z-index: 1; }
.cat-layout { display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: start; }
.cat-content h2 {
  font-size: 28px;
  font-weight: 700;
  margin-top: 40px;
  margin-bottom: 16px;
  line-height: 1.3;
}
.cat-content h2:first-child { margin-top: 0; }
.cat-content p {
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.9;
  margin-bottom: 20px;
}
.cat-content img {
  width: 100%;
  border-radius: var(--radius);
  margin: 28px 0;
  box-shadow: var(--shadow-card);
  object-fit: cover;
}
.cat-aside { position: sticky; top: 100px; }
.cat-list-card {
  background: linear-gradient(140deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  border: 1px solid var(--border-glass);
  border-radius: var(--radius);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  padding: 28px;
  box-shadow: var(--shadow-card);
}
.cat-list-card h3 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border-glass);
}
.cat-list-card ul li { margin-bottom: 4px; }
.cat-list-card a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  color: var(--text-dim);
  font-size: 14px;
  transition: all .2s ease;
}
.cat-list-card a:hover {
  background: rgba(0,229,255,.08);
  color: #8ff4ff;
  transform: translateX(4px);
}
.cat-list-card a span { color: var(--neon); font-size: 16px; transition: transform .2s ease; }
.cat-list-card a:hover span { transform: translateX(3px); }

/* ===== Process ===== */
.process-section { padding: 24px 0 80px; position: relative; z-index: 1; }
.process-section > .container > h2 {
  font-size: 32px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 12px;
}
.process-section > .container > .process-sub {
  text-align: center;
  color: var(--text-dim);
  font-size: 15px;
  margin-bottom: 40px;
}
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.process-item {
  background: var(--panel);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius);
  padding: 24px;
  transition: all .3s ease;
}
.process-item:hover {
  border-color: rgba(0,229,255,.4);
  box-shadow: var(--shadow-glow);
  transform: translateY(-2px);
}
.process-num { font-size: 32px; font-weight: 800; color: rgba(0,229,255,.4); }
.process-item h3 { font-size: 16px; font-weight: 600; margin: 12px 0 8px; }
.process-item p { font-size: 13px; color: var(--text-dim); line-height: 1.6; }

/* ===== Mini CTA ===== */
.mini-cta { padding: 24px 0 80px; position: relative; z-index: 1; }
.cta-panel {
  position: relative;
  background: linear-gradient(140deg, rgba(30,91,255,.15), rgba(0,229,255,.06));
  border: 1px solid var(--border-glass);
  border-radius: calc(var(--radius) + 8px);
  padding: 64px 32px;
  text-align: center;
  overflow: hidden;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.cta-panel::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(0,229,255,.15), transparent 70%);
  filter: blur(80px);
  pointer-events: none;
}
.cta-panel h2 {
  position: relative;
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  margin-bottom: 12px;
}
.cta-panel p {
  position: relative;
  color: var(--text-dim);
  font-size: 15px;
  margin-bottom: 28px;
}
.cta-panel .btn-primary {
  position: relative;
  min-width: 180px;
  height: 56px;
  font-size: 16px;
}
.cta-points {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 28px;
  margin-top: 24px;
  font-size: 13px;
  color: var(--text-main);
}
.cta-points span { display: inline-flex; align-items: center; gap: 6px; }
.cta-points span::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px rgba(0,255,163,.5);
  flex-shrink: 0;
}

/* ===== FAQ ===== */
.faq-section { padding: 0 0 96px; position: relative; z-index: 1; }
.faq-section > .container > h2 {
  font-size: 32px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 40px;
}
.faq-item {
  background: linear-gradient(140deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border: 1px solid var(--border-glass);
  border-radius: var(--radius);
  margin-bottom: 12px;
  overflow: hidden;
  transition: border-color .3s ease;
}
.faq-item.active { border-color: rgba(0,229,255,.45); }
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  padding: 0 22px;
  font-size: 16px;
  font-weight: 600;
  text-align: left;
  color: var(--text-main);
  transition: color .2s ease;
}
.faq-question:hover { color: #8ff4ff; }
.faq-icon { position: relative; width: 16px; height: 16px; flex-shrink: 0; }
.faq-icon::before, .faq-icon::after {
  content: "";
  position: absolute;
  background: var(--neon);
  border-radius: 2px;
  transition: transform .3s ease;
}
.faq-icon::before { left: 0; right: 0; top: 7px; height: 2px; }
.faq-icon::after { top: 0; bottom: 0; left: 7px; width: 2px; }
.faq-item.active .faq-icon::after { transform: scaleY(0); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-answer p {
  padding: 0 22px 22px;
  color: var(--text-dim);
  font-size: 15px;
  line-height: 1.7;
}
.faq-item.active .faq-answer { max-height: 260px; }

/* ===== Footer ===== */
.site-footer {
  position: relative;
  z-index: 1;
  border-top: 1px solid var(--border-glass);
  background: rgba(6,13,31,.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: 64px 0 32px;
  margin-top: 40px;
}
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 40px; }
.footer-brand p { margin-top: 16px; font-size: 14px; color: var(--text-dim); line-height: 1.8; }
.footer-col h4 { font-size: 15px; font-weight: 600; margin-bottom: 16px; }
.footer-col ul li { margin-bottom: 10px; }
.footer-col ul a { font-size: 14px; color: var(--text-dim); transition: color .2s ease; }
.footer-col ul a:hover { color: var(--neon); }
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--border-glass);
  font-size: 13px;
  color: var(--text-dim);
}
.footer-social { display: flex; gap: 10px; }
.footer-social a {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--panel);
  border: 1px solid var(--border-glass);
  color: var(--text-dim);
  transition: all .2s ease;
}
.footer-social a:hover { color: var(--neon); border-color: rgba(0,229,255,.4); }
.footer-social svg { width: 16px; height: 16px; }

/* ===== Responsive ===== */
@media (max-width: 1024px) {
  .cat-layout { grid-template-columns: 1fr 300px; gap: 32px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .dock-nav {
    flex-wrap: wrap;
    height: auto;
    min-height: 64px;
    padding: 10px 16px;
    gap: 8px;
    border-radius: 28px;
  }
  .nav-links {
    order: 3;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px 0;
    gap: 6px;
  }
  .nav-links a { flex-shrink: 0; }
  .header-actions { margin-left: auto; }
  .dock-search.open input { width: 140px; }
  .hero-mini { padding: 64px 0 56px; }
  .cat-layout { grid-template-columns: 1fr; }
  .cat-aside { position: static; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .cta-panel { padding: 48px 24px; }
}

@media (max-width: 520px) {
  .container { padding: 0 16px; }
  .brand-logo { font-size: 15px; }
  .btn-primary, .btn-ghost { width: 100%; }
  .process-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .cta-points { flex-direction: column; gap: 10px; }
  .dock-search input {
    position: absolute;
    right: 0;
    top: 48px;
    z-index: 20;
    background: rgba(10,18,40,.96);
  }
  .dock-search.open { order: 4; width: 100%; }
  .dock-search.open input {
    position: static;
    width: 100%;
    opacity: 1;
    padding: 0 14px;
  }
  .hero-mini h1 { font-size: 36px; }
  .cat-content h2 { font-size: 24px; }
  .faq-section > .container > h2 { font-size: 26px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}
