:root {
  --primary: #6B4FA0;
  --primary-dark: #4A3570;
  --primary-light: #9B7FD4;
  --secondary: #E8A838;
  --accent: #FF6B6B;
}

::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: #0f0f13; }
::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 9px; }
::-webkit-scrollbar-thumb:hover { background: var(--primary-light); }

::selection { background: var(--primary); color: #fff; }

.text-gradient {
  background: linear-gradient(100deg, var(--primary-light), var(--accent));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* 主色发光按钮 */
.glow-primary { box-shadow: 0 8px 30px -8px rgba(108, 92, 231, .65); }

/* 顶部公告条流动渐变 */
.announce-bar {
  background: linear-gradient(90deg, var(--primary-dark), var(--primary), var(--accent), var(--primary));
  background-size: 300% 100%;
  animation: announce-flow 9s linear infinite;
}
@keyframes announce-flow { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }

/* 移动端抽屉导航（深色） */
.nav { transition: transform .3s ease; }
@media (max-width: 1023px) {
  .nav {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 82%; max-width: 320px;
    flex-direction: column;
    align-items: flex-start;
    background: #14141d;
    padding: 5.5rem 1.75rem 2rem;
    transform: translateX(100%);
    z-index: 60; overflow-y: auto;
    border-left: 1px solid rgba(255,255,255,.08);
  }
  .nav.active { transform: translateX(0); }
  .menu-overlay {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.6);
    opacity: 0; visibility: hidden;
    transition: opacity .3s ease;
    z-index: 55;
  }
  .menu-overlay.active { opacity: 1; visibility: visible; }
  body.menu-open { overflow: hidden; }
}

/* FAQ 折叠 */
.faq-answer {
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height .35s ease, opacity .35s ease;
}
.faq-icon { transition: transform .25s ease; }

/* 回到顶部 */
.back-to-top {
  opacity: 0; visibility: hidden;
  transition: opacity .3s ease, transform .3s ease;
}
.back-to-top.visible { opacity: 1; visibility: visible; }

@media print {
  header, footer, nav, .no-print { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
}
