/* 全局变量 */
:root {
  --primary: #7c3aed;
  --primary-light: #9b75f8;
  --accent: #f6c84a;
  --accent-light: #ffd566;
  --light: #faf8ff;
  --text: #2d2438;
  --text-2: #6b6280;
  --text-3: #9a8fb5;
  --glass-border: rgba(124, 58, 237, .2);
  --radius: 20px;
  --shadow: 0 12px 40px rgba(124, 58, 237, .12);
  --shadow-lg: 0 20px 60px rgba(124, 58, 237, .18);

}

/* 滚动条：与 tiaoyin/appindex 的全局写法保持一致 */
*::-webkit-scrollbar {
  width: 10px;
  height: 10px
}

*::-webkit-scrollbar-track {
  background: transparent;
  border-radius: 999px
}

*::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
  background-clip: padding-box
}

*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--primary), var(--accent))
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px
}

body {
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  color: var(--text);
  background: #fff;
  overflow-x: hidden;
  line-height: 1.6
}

a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: all .3s cubic-bezier(.4, 0, .2, 1)
}

img {
  max-width: 100%;
  display: block
}

/* 导航栏 */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 60px;
  background: rgba(18, 13, 29, .32);
  backdrop-filter: blur(10px) saturate(115%);
  border-bottom: 1px solid rgba(214, 196, 255, .14);
  transition: background .3s, backdrop-filter .3s, box-shadow .3s
}

.nav.scrolled {
  background: rgba(18, 13, 29, .42);
  backdrop-filter: blur(16px) saturate(125%);
  box-shadow: 0 8px 28px rgba(0, 0, 0, .16)
}

.nav.on-light {
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(16px) saturate(125%);
  border-bottom-color: rgba(124, 58, 237, .14);
  box-shadow: 0 8px 28px rgba(71, 40, 118, .10)
}

.nav.on-light .nav-logo .txt {
  color: #2a1a45
}

.nav.on-light .nav-links a {
  color: rgba(53, 31, 87, .76)
}

.nav.on-light .nav-links a:hover {
  color: #5b21b6;
  border: 1px solid rgba(124, 58, 237, .22);
  border-radius: 24px;
  background: rgba(124, 58, 237, .10);
  box-shadow: 0 4px 9px rgba(62, 36, 100, .10)
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: 12px
}

.nav-logo .ico {
  width: 32px;
  height: 32px;
  border-radius: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  position: relative;
  overflow: visible;
  animation: logo-spin 3.6s ease-in-out infinite alternate;
  transition: transform .35s cubic-bezier(.4,0,.2,1)
}

@keyframes logo-spin {
  from { transform: rotate(-20deg) }
  to { transform: rotate(20deg) }
}

.nav-logo .ico:hover {
  transform: rotate(-8deg) scale(1.1)
}

@keyframes icon-bounce {
  0%, 100% { transform: translateY(0) }
  25% { transform: translateY(-3px) }
  50% { transform: translateY(0) }
  75% { transform: translateY(-2px) }
}

.nav-logo .ico::before {
  display: none
}

.nav-logo .ico img {
  width: 28px;
  height: 28px;
  position: relative;
  z-index: 1;
  object-fit: contain
}

.nav-logo .txt {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #f5f0ff;
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif
}

.nav-logo .txt em {
  font-style: normal;
  font-weight: 900;
  background: linear-gradient(135deg, var(--primary) 0%, #c084fc 35%, var(--accent) 70%, #ffd566 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: text-shimmer 4s ease infinite;
  text-shadow: none;
  filter: drop-shadow(0 2px 4px rgba(124, 58, 237, .18))
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: 20px
}

.nav-act-btn {
  padding: 0 14px;
  border: 0;
  border-radius: 0;
  background: 0;
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .25s ease;
  white-space: nowrap
}

.nav-act-btn svg {
  vertical-align: -2px;
  margin-right: 4px
}

.nav-act-btn + .nav-act-btn {
  border-left: 1px solid rgba(255, 255, 255, .18)
}

.nav-act-btn:hover {
  opacity: .8
}

.nav-act-btn.nav-customize-trigger { color: #fb7185 }
.nav-act-btn.nav-agent-trigger { color: #60a5fa }
.nav-act-btn.nav-contact-trigger { color: #fbbf24 }

.nav.on-light .nav-act-btn + .nav-act-btn {
  border-left-color: rgba(124, 58, 237, .16)
}

.nav.on-light .nav-act-btn.nav-customize-trigger { color: #e11d48 }
.nav.on-light .nav-act-btn.nav-agent-trigger { color: #2563eb }
.nav.on-light .nav-act-btn.nav-contact-trigger { color: #d97706 }

@keyframes text-shimmer {
  0%, 100% { background-position: 0% 50% }
  50% { background-position: 100% 50% }
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 8px
}

.nav-links a {
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  min-width: 86px;
  text-align: center;
  padding: 8px 15px;
  border: 1px solid transparent;
  border-radius: 24px;
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: rgba(238, 231, 255, .76);
  transition: color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease
}

.nav-links a::after { content: none }

.nav-links a:hover {
  color: #fff;
  border-radius: 24px;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .20);
  box-shadow: 0 4px 9px rgba(62, 36, 100, .18)
}

/* Hero */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding: 80px 80px 80px;
  background:
    radial-gradient(ellipse at 15% 10%, rgba(113, 72, 197, .24), transparent 38%),
    radial-gradient(ellipse at 88% 76%, rgba(54, 34, 88, .42), transparent 43%),
    linear-gradient(135deg, #14101f 0%, #1c142a 48%, #100d19 100%)
}

/* 动态背景 - 柔和高级 */
.hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1
}

.hero-bg::before {
  content: '';
  position: absolute;
  top: -15%;
  left: -5%;
  width: 90%;
  height: 90%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(155, 117, 248, .18), transparent 68%);
  filter: blur(90px);
  animation: float1 12s ease-in-out infinite
}

.hero-bg::after {
  content: '';
  position: absolute;
  bottom: -15%;
  right: -5%;
  width: 80%;
  height: 80%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(210, 174, 255, .10), transparent 66%);
  filter: blur(90px);
  animation: float2 15s ease-in-out infinite
}

@keyframes float1 {

  0%,
  100% {
    transform: translate(0, 0) scale(1)
  }

  50% {
    transform: translate(15%, 15%) scale(1.2)
  }
}

@keyframes float2 {

  0%,
  100% {
    transform: translate(0, 0) scale(1)
  }

  50% {
    transform: translate(-15%, -15%) scale(1.25)
  }
}

/* 粒子效果 - 增强 */
.particles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1
}

.particle {
  position: absolute;
  width: var(--particle-size, 6px);
  height: var(--particle-size, 6px);
  background: rgba(155, 117, 248, 1);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(155, 117, 248, 1), 0 0 40px rgba(155, 117, 248, .6);
  animation: rise 12s infinite
}

.particle:nth-child(1) {
  left: 5%;
  animation-delay: 0s;
  animation-duration: 14s
}

.particle:nth-child(2) {
  left: 15%;
  animation-delay: 1.5s;
  animation-duration: 16s
}

.particle:nth-child(3) {
  left: 25%;
  animation-delay: 3s;
  animation-duration: 13s
}

.particle:nth-child(4) {
  left: 35%;
  animation-delay: .8s;
  animation-duration: 15s
}

.particle:nth-child(5) {
  left: 45%;
  animation-delay: 2.2s;
  animation-duration: 17s
}

.particle:nth-child(6) {
  left: 55%;
  animation-delay: 3.8s;
  animation-duration: 14s
}

.particle:nth-child(7) {
  left: 65%;
  animation-delay: 1.8s;
  animation-duration: 16s
}

.particle:nth-child(8) {
  left: 75%;
  animation-delay: 3.2s;
  animation-duration: 15s
}

.particle:nth-child(9) {
  left: 85%;
  animation-delay: 1.2s;
  animation-duration: 18s
}

.particle:nth-child(10) {
  left: 95%;
  animation-delay: 2.8s;
  animation-duration: 19s
}

@keyframes rise {
  0% {
    transform: translateY(100vh) scale(0);
    opacity: 0
  }

  10% {
    opacity: 1
  }

  90% {
    opacity: 1
  }

  100% {
    transform: translateY(-100px) scale(2);
    opacity: 0
  }
}

/* 网格背景 - 增强 */
.grid-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none
}

.grid-bg::before,
.grid-bg::after {
  content: '';
  position: absolute;
  top: -32vh;
  right: 1vw;
  width: 13px;
  height: 145vh;
  border-radius: 999px;
  transform: rotate(45deg);
  transform-origin: top center;
  filter: blur(6px);
  pointer-events: none
}

.grid-bg::before {
  background: linear-gradient(180deg, transparent, rgba(216, 192, 255, .90) 24%, rgba(155, 117, 248, .34) 58%, transparent 100%);
  box-shadow: 0 0 18px rgba(155, 117, 248, .72), 0 0 52px rgba(155, 117, 248, .30);
  animation: stage-beam-purple 5.6s ease-in-out infinite
}

.grid-bg::after {
  top: -25vh;
  right: 15vw;
  width: 9px;
  height: 128vh;
  background: linear-gradient(180deg, transparent, rgba(255, 218, 130, .78) 28%, rgba(246, 200, 74, .28) 62%, transparent 100%);
  box-shadow: 0 0 15px rgba(246, 200, 74, .58), 0 0 42px rgba(246, 200, 74, .22);
  animation: stage-beam-gold 8.4s ease-in-out infinite
}

@keyframes stage-beam-purple {
  0%, 100% { opacity: .08; transform: rotate(43deg) translateY(-8vh) }
  42%, 66% { opacity: .58; transform: rotate(46deg) translateY(13vh) }
}

@keyframes stage-beam-gold {
  0%, 100% { opacity: .05; transform: rotate(47deg) translateY(-12vh) }
  38%, 70% { opacity: .42; transform: rotate(42deg) translateY(16vh) }
}

.hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 56px;
  max-width: 1380px;
  margin: 40px auto 0;
  width: 100%
}

/* 左侧内容 */
.hero-left {
  flex: 1;
  min-width: 0;
  margin-left: 50px;
  position: relative
}

.hero-copy {
  min-width: 0;
  max-width: 560px
}

.hero-phone-video {
  position: absolute;
  z-index: 6;
  left: -136px;
  bottom: -4px;
  width: 225px;
  aspect-ratio: 9 / 16;
  padding: 7px;
  background: linear-gradient(145deg, #493a5f 0%, #1a1425 58%, #0f0c16 100%);
  border: 2px solid rgba(255, 255, 255, .9);
  border-radius: 23px;
  box-shadow: 20px 30px 44px rgba(22, 14, 34, .42), -8px 5px 18px rgba(155, 117, 248, .20), inset 1px 1px 0 rgba(255, 255, 255, .25);
  overflow: hidden;
  transform: none;
  transform-style: flat
}

.hero-phone-video video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #000;
  border-radius: 14px
}

.hero-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .52);
  border-radius: 50%;
  background: rgba(255, 255, 255, .2);
  box-shadow: 0 10px 28px rgba(22, 16, 34, .32), inset 0 1px 0 rgba(255, 255, 255, .48);
  color: #fff;
  cursor: pointer;
  transform: translate(-50%, -50%);
  backdrop-filter: blur(12px);
  transition: transform .25s ease, background .25s ease
}

.hero-video-play:hover {
  background: rgba(124, 58, 237, .5);
  transform: translate(-50%, -50%) scale(1.08)
}

.hero-video-play svg {
  width: 20px;
  height: 20px;
  margin-left: 2px;
  fill: currentColor
}

.hero-phone-video.is-playing .hero-video-play {
  opacity: 0;
  pointer-events: none
}

.hero-video-expand {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 8px;
  background: rgba(16, 11, 26, .48);
  color: #fff;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  backdrop-filter: blur(8px);
  transition: opacity .2s ease, background .2s ease
}

.hero-phone-video.is-playing .hero-video-expand {
  opacity: 1;
  pointer-events: auto
}

.hero-video-expand:hover {
  background: rgba(124, 58, 237, .72)
}

.hero-video-expand svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round
}

.hero-video-modal {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(12, 8, 20, .88);
  backdrop-filter: blur(10px)
}

.hero-video-modal.active {
  display: flex
}

.hero-video-modal-card {
  position: relative;
  width: min(88vw, 760px);
  max-height: calc(100vh - 56px);
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 24px;
  background: #17121f;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .5)
}

.hero-video-modal-card video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 17px;
  background: #000
}

.security-video-modal-card {
  position: relative;
  width: min(92vw, 960px);
  aspect-ratio: 16 / 9;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 24px;
  background: #17121f;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .5)
}

.security-video-modal-card iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 17px;
  background: #000
}

.hero-video-modal-close {
  position: absolute;
  z-index: 1;
  top: -12px;
  right: -12px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, .6);
  border-radius: 50%;
  background: #2a2039;
  color: #fff;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
  transition: transform .25s ease, background .25s ease, border-color .25s ease
}

.hero-video-modal-close:hover {
  background: #ef476f;
  border-color: #ff8ca6;
  transform: rotate(90deg)
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 28px;
  border-radius: 50px;
  background: rgba(155, 117, 248, .12);
  border: 1px solid rgba(205, 187, 255, .26);
  font-size: 20px;
  font-weight: 700;
  color: #d9c5ff;
  margin-bottom: 28px;
  backdrop-filter: blur(10px);
  box-shadow: 0 4px 20px rgba(124, 58, 237, .1)
}

.hero-badge .badge-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  animation: badge-icon-pulse 1.8s ease-in-out infinite
}

@keyframes badge-icon-pulse {
  0%, 100% { transform: scale(1); opacity: .85 }
  50% { transform: scale(1.2); opacity: 1 }
}

.hero h1 {
  font-size: 60px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 40px;
  letter-spacing: -1px
}

.hero h1 .grad {
  background: linear-gradient(135deg, #ffffff 0%, #d8c4ff 46%, #b28aff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  background-size: 200% 200%;
  animation: gradient 5s ease infinite
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0
}

@keyframes gradient {

  0%,
  100% {
    background-position: 0% 50%
  }

  50% {
    background-position: 100% 50%
  }
}

.hero .slogan {
  font-size: 24px;
  color: rgba(244, 239, 255, .88);
  margin-bottom: 16px;
  letter-spacing: 10px;
  font-weight: 300
}

.hero .slogan .dot-sep {
  font-size: 48px;
  color: var(--primary);
  margin: 0 2px;
  vertical-align: middle;
  line-height: 1
}

.hero .sub {
  font-size: 16px;
  color: rgba(222, 212, 241, .72);
  margin-bottom: 36px;
  line-height: 1.9;
  max-width: 520px
}

/* 横幅按钮组 - 炫酷美化 */
.hero-btns {
  display: flex;
  gap: 18px;
  margin-top: 40px
}

.hero-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 36px;
  border-radius: 32px;
  font-size: 16px;
  font-weight: 700;
  transition: box-shadow .4s cubic-bezier(.4, 0, .2, 1), border-color .4s ease, background .4s ease;
  cursor: pointer;
  border: none;
  overflow: visible;
  letter-spacing: .5px
}

.hero-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 32px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 50%, rgba(255, 255, 255, 0) 100%);
  background-size: 200% 100%;
  background-position: 100% 0;
  pointer-events: none;
  opacity: 0
}

.hero-btn:hover::before {
  animation: button-shine .6s ease both
}

@keyframes button-shine {
  0% { background-position: 100% 0; opacity: 0 }
  15% { opacity: 1 }
  85% { opacity: 1 }
  100% { background-position: -100% 0; opacity: 0 }
}

.download-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  z-index: 3;
  min-width: 20px;
  padding: 3px 6px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, rgba(124, 58, 237, .86), rgba(168, 85, 247, .86) 52%, rgba(250, 204, 21, .86));
  box-shadow: 0 3px 9px rgba(124, 58, 237, .22);
  font-size: 10px;
  line-height: 1.1;
  text-align: center
}

.hero-btn.primary {
  padding: 16px 51px;
  background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
  color: #fff;
  box-shadow: 0 8px 28px rgba(124, 58, 237, .35), 0 0 0 1px rgba(255, 255, 255, .1) inset, 0 2px 0 rgba(255, 255, 255, .2) inset
}

.hero-btn.primary::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .15), transparent 50%);
  pointer-events: none
}

.hero-btn.primary:hover {
  box-shadow: 0 14px 40px rgba(124, 58, 237, .5), 0 0 24px rgba(246, 200, 74, .35), 0 0 0 1px rgba(255, 255, 255, .2) inset, 0 2px 0 rgba(255, 255, 255, .25) inset
}

.hero-btn:not(.primary) {
  padding: 16px 36px;
  background: rgba(124, 58, 237, .34);
  color: #fff;
  border: 1px solid rgba(124, 58, 237, .56);
  box-shadow: 0 7px 20px rgba(124, 58, 237, .22)
}

.hero-btn:not(.primary)::after {
  content: '';
  position: absolute;
  inset: -10px;
  z-index: -1;
  border-radius: 999px;
  background: radial-gradient(circle at 18% 50%, rgba(250, 204, 21, .50), transparent 38%), radial-gradient(circle at 82% 50%, rgba(124, 58, 237, .42), transparent 42%);
  filter: blur(8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease
}

.hero-btn:not(.primary):hover {
  color: var(--primary);
  border-color: rgba(124, 58, 237, .42);
  background: #fff;
  box-shadow: 0 8px 22px rgba(124, 58, 237, .16)
}

.hero-btn:not(.primary):hover::after { opacity: 1 }

.download-loading {
  position: fixed;
  z-index: 3000;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(17, 10, 30, .52);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility .2s ease
}

.download-loading.active {
  opacity: 1;
  visibility: visible
}

.download-loading-card {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 278px;
  padding: 22px 26px;
  border: 1px solid rgba(255, 255, 255, .20);
  border-radius: 14px;
  color: #fff;
  background: rgba(45, 29, 72, .96);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .30);
  font-size: 16px;
  font-weight: 600
}

.download-loading-spinner {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border: 3px solid rgba(255, 255, 255, .28);
  border-top-color: #fff;
  border-radius: 50%;
  animation: download-loading-spin .75s linear infinite
}


@keyframes download-loading-spin {
  to { transform: rotate(360deg) }
}

.hero-btn svg {
  transition: transform .3s
}

.hero-btn:hover svg {
  transform: translateY(2px) scale(1.1)
}

/* 右侧软件界面 */
.hero-right {
  flex: 0 0 auto;
  width: 560px;
  display: flex;
  flex-direction: column;
  align-items: center;
  perspective: 1400px;
  perspective-origin: 45% 48%
}

.hero-right .monitor-frame {
  position: relative;
  width: 560px;
  margin-left: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: visible
}

.hero-right .monitor-screen {
  height: 500px;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  overflow: visible
}

.hero-right .monitor-frame::before {
  content: '';
  position: absolute;
  z-index: -1;
  left: -130px;
  bottom: -56px;
  width: 620px;
  height: 250px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(124, 58, 237, .20) 0%, rgba(155, 117, 248, .08) 38%, transparent 72%);
  filter: blur(18px);
  pointer-events: none
}

.hero-right .monitor-frame::after {
  content: '';
  position: absolute;
  z-index: -1;
  left: -74px;
  top: 46px;
  width: 175px;
  height: 210px;
  background-image: radial-gradient(rgba(205, 177, 255, .36) 1px, transparent 1px);
  background-size: 13px 13px;
  opacity: .62;
  pointer-events: none
}

.hero-right .monitor-screen::before,
.hero-right .monitor-screen::after,
.hero-right .monitor-stand,
.hero-right .widget-switcher,
.hero-right .widget-capsule-demo {
  display: none
}

.hero-right .widget-rounded-demo {
  display: flex;
  position: relative;
  width: 100%;
  height: 100%;
  opacity: 1;
  transform: none
}

.hero-right .widget-trio {
  width: 100%;
  height: 100%;
  transform-style: preserve-3d
}

.hero-right .widget-trio > .widget-rounded {
  display: none
}

.hero-right .widget-trio > .widget-rounded[data-style="0"] {
  display: block;
  left: 50%;
  top: 50%;
  width: 440px;
  transform: translate(-50%, -50%) !important;
  transform-origin: center center;
  opacity: 1 !important;
  filter: none !important;
  z-index: 2;
  box-shadow:
    0 22px 42px rgba(20, 13, 35, .34),
    0 8px 18px rgba(0, 0, 0, .22),
    0 0 22px rgba(155, 117, 248, .18),
    0 0 48px rgba(155, 117, 248, .08),
    inset 0 1px 0 rgba(255, 255, 255, .18)
}

/* 切换按钮 */
.widget-switcher {
  display: flex;
  gap: 8px;
  margin-bottom: 20px
}

.switch-btn {
  padding: 8px 22px;
  border-radius: 20px;
  border: 1px solid rgba(124, 58, 237, .2);
  background: rgba(255, 255, 255, .7);
  color: var(--text-2);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: .3s;
  backdrop-filter: blur(10px)
}

.switch-btn:hover {
  border-color: var(--primary);
  color: var(--primary);
  background: rgba(124, 58, 237, .06)
}

.switch-btn.active {
  background: linear-gradient(135deg, var(--primary), var(--accent));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 16px rgba(124, 58, 237, .3)
}

/* 展示容器 */
.widget-showcase {
  position: relative;
  width: 100%
}

/* 显示器外框 */
.monitor-frame {
  position: relative;
  width: 620px;
  margin-left: -30px;
  background: linear-gradient(145deg, #f0ecf5, #e8e2f0, #f5f0fa);
  border-radius: 20px;
  padding: 18px 18px 58px 18px;
  box-shadow:
    0 16px 48px rgba(155, 117, 248, .12),
    0 4px 16px rgba(0, 0, 0, .06),
    inset 0 1px 2px rgba(255, 255, 255, .8),
    inset 0 -1px 2px rgba(155, 117, 248, .08);
  border: 1.5px solid rgba(155, 117, 248, .15);
}

/* 显示器屏幕 */
.monitor-screen {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(155, 117, 248, .30) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(120, 80, 200, .07) 0%, transparent 45%),
    radial-gradient(ellipse at 50% 50%, rgba(192, 132, 252, .05) 0%, transparent 60%),
    linear-gradient(135deg, #2d2340 0%, #261e38 35%, #1f1830 65%, #181228 100%);
  border-radius: 12px;
  padding: 20px 16px;
  height: 380px;
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 0 40px rgba(0, 0, 0, .15), inset 0 0 80px rgba(155, 117, 248, .06);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 屏幕光晕效果 */
.monitor-screen::before {
  content: '';
  position: absolute;
  top: -20%;
  left: -10%;
  width: 60%;
  height: 60%;
  background: radial-gradient(ellipse, rgba(155, 117, 248, .12) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.monitor-screen::after {
  content: '';
  position: absolute;
  bottom: -15%;
  right: -5%;
  width: 50%;
  height: 55%;
  background: radial-gradient(ellipse, rgba(155, 117, 248, .18) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* 显示器底座 */
.monitor-stand {
  position: absolute;
  bottom: -28px;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 28px;
  background: linear-gradient(180deg, #e8e2f0, #d8d0e5);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 8px 16px rgba(155, 117, 248, .10);
}

.monitor-stand::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 56px;
  height: 8px;
  background: linear-gradient(180deg, #f0ecf5, #e8e2f0);
  border-radius: 4px 4px 0 0;
}

/* 切换按钮在显示器外框上 */
.monitor-frame .widget-switcher {
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}

.monitor-frame .switch-btn {
  padding: 5px 18px;
  border-radius: 14px;
  border: 1px solid rgba(155, 117, 248, .15);
  background: linear-gradient(135deg, rgba(240, 236, 245, .9), rgba(232, 226, 240, .85));
  color: rgba(100, 70, 150, .65);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: .3s;
  box-shadow: 0 2px 6px rgba(155, 117, 248, .08);
}

.monitor-frame .switch-btn:hover {
  border-color: rgba(155, 117, 248, .35);
  color: rgba(100, 70, 150, .9);
  background: linear-gradient(135deg, rgba(230, 220, 245, .95), rgba(220, 210, 238, .9));
  box-shadow: 0 3px 10px rgba(155, 117, 248, .15);
}

.monitor-frame .switch-btn.active {
  background: linear-gradient(135deg, rgba(155, 117, 248, .25), rgba(192, 132, 252, .20));
  color: rgba(100, 70, 150, .95);
  border-color: rgba(155, 117, 248, .30);
  box-shadow: 0 2px 8px rgba(155, 117, 248, .12);
}

.widget-demo {
  display: none;
  width: 100%;
  animation: widgetFadeIn .4s ease
}

.widget-demo.active {
  display: flex;
  justify-content: center
}

.widget-rounded-demo.active {
  transform: none;
  transform-origin: center center
}

.widget-capsule-demo.active {
  align-items: center
}

@keyframes widgetFadeIn {
  from {
    opacity: 0;
    transform: translateY(10px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

/* 胶囊悬浮窗 */
.widget-capsule-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-top: 14px;
  padding-left: 5px
}

.widget-capsule {
  width: 450px;
  height: 102px;
  margin: -3px 0;
  border-radius: 51px;
  background: #fff;
  border: 2px solid transparent;
  background-clip: padding-box;
  box-shadow:
    0 24px 80px rgba(155, 117, 248, 0.25),
    0 8px 32px rgba(0, 0, 0, 0.10),
    0 0 40px rgba(155, 117, 248, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  padding: 6px 12px 6px 8px;
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
  transition: all 0.3s ease;
  flex-shrink: 0;
  overflow: visible
}

.widget-capsule::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 51px;
  padding: 2px;
  background: linear-gradient(90deg, #9b75f8 0%, #c084fc 50%, #f6c84a 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none
}

/* 左侧圆形频谱 - 柔和深色背景（与胶囊配色协调） */
.widget-capsule-spectrum {
  flex: 0 0 122px;
  width: 122px;
  height: 122px;
  position: relative;
  border-radius: 50%;
  background:
    radial-gradient(circle at 16% -10%, rgba(155, 117, 248, 0.22), transparent 46%),
    radial-gradient(circle at 90% 110%, rgba(155, 117, 248, 0.12), transparent 54%),
    linear-gradient(165deg, #3d3248 0%, #322840 46%, #261e32 100%);
  border: none;
  box-shadow:
    0 8px 24px rgba(155, 117, 248, 0.18),
    0 0 32px rgba(155, 117, 248, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.15),
    inset 0 -1px 0 rgba(0, 0, 0, 0.30);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  margin-left: -19px;
  margin-top: -11px;
  margin-bottom: -11px;
  z-index: 5
}

.widget-capsule-spectrum::before {
  content: '';
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  border: 1px solid rgba(155, 117, 248, 0.20);
  box-shadow: 0 0 8px rgba(155, 117, 248, 0.08), inset 0 0 8px rgba(155, 117, 248, 0.05);
  z-index: 1
}

.widget-capsule-spectrum::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  padding: 3px;
  background: linear-gradient(135deg, #9b75f8 0%, #c084fc 40%, #f6c84a 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  z-index: 8;
  pointer-events: none
}

/* 圆形扩散频谱 - 紫黄射线 */
.spectrum-rays {
  position: absolute;
  inset: 16px;
  z-index: 2;
  animation: spectrum-spin 50s linear infinite
}

.spectrum-ray {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2px;
  border-radius: 1px;
  animation: ray-pulse 2.2s ease-in-out infinite
}

.spectrum-ray-outer {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.5px;
  border-radius: 1px;
  opacity: 0.40
}

@keyframes spectrum-spin {
  to {
    transform: rotate(360deg)
  }
}

@keyframes ray-pulse {

  0%,
  100% {
    opacity: 0.6
  }

  50% {
    opacity: 1
  }
}

/* 粒子炸开效果 */
.spectrum-particles {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  overflow: visible;
  border-radius: 50%
}

/* 圆角矩形的粒子在基调文字中间 */
.widget-rounded-spectrum .spectrum-particles {
  z-index: 3;
  inset: auto;
  top: 24px;
  right: 48px;
  width: 0;
  height: 0
}

.spectrum-particle {
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  opacity: 0
}

/* 基调标签 - 居中放大 + 切换动画 */
.widget-capsule-spectrum .key-label {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 2px;
  z-index: 10;
  pointer-events: none;
  white-space: nowrap;
  color: transparent;
  background: linear-gradient(90deg, #9b75f8, #f6c84a, #fff7da, #f6c84a, #9b75f8);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow: 0 0 12px rgba(155, 117, 248, 0.45), 0 0 6px rgba(246, 200, 74, 0.30);
  animation: key-shimmer 3s ease-in-out infinite;
  transition: opacity 0.3s ease, transform 0.3s ease
}

.widget-capsule-spectrum .key-label.key-switching {
  opacity: 0;
  transform: translate(-50%, -50%) scale(1.3)
}

@keyframes key-shimmer {

  0%,
  100% {
    background-position: 0% 50%
  }

  50% {
    background-position: 100% 50%
  }
}

/* 中间信息区 */
.widget-capsule-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  padding: 2px 0 2px 15px;
  margin-left: 1px
}

.widget-capsule-info .song-name {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  overflow: hidden
}

.widget-capsule-info .player-badge {
  display: none;
  flex: 0 0 auto;
  width: 25px;
  height: 25px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  overflow: visible
}

.widget-capsule-info .player-badge.is-visible {
  display: inline-flex
}

.widget-capsule-info .player-badge .player-icon {
  width: 24px;
  height: 24px
}

.widget-capsule-info .player-badge.is-playing .player-icon {
  animation: player-spin 3s linear infinite
}

@keyframes player-spin {
  from {
    transform: rotate(0deg)
  }

  to {
    transform: rotate(360deg)
  }
}

.widget-capsule-info .song-name span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 17px;
  font-weight: 600;
  color: inherit;
  letter-spacing: .3px
}

.widget-capsule-info .info-bottom {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: nowrap;
  height: 24px;
  margin-top: 1px;
  font-size: 15px;
  line-height: 24px;
  color: rgba(72, 38, 120, .90);
  font-weight: 500;
  letter-spacing: 0;
  white-space: nowrap;
  overflow: visible;
  padding: 0 0 0 -3px
}

.widget-capsule-info .info-bottom>span {
  white-space: nowrap;
  flex: 0 0 auto
}

.widget-capsule-info .info-key {
  display: inline-block;
  min-width: 60px;
  text-align: left
}

.widget-capsule-info .info-key-base {
  min-width: 65px;
  max-width: 65px;
  overflow: hidden;
  text-overflow: ellipsis
}

.widget-capsule-info .info-key-scale {
  min-width: 70px;
  margin-left: 10px
}

.widget-capsule-info .pitch-inline {
  flex: 0 0 auto;
  margin-left: auto;
  margin-right: 20px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.widget-capsule-info .pitch-inline .pitch-btn {
  width: 30px;
  height: 22px;
  border: 1px solid rgba(88, 40, 140, 0.22);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.6);
  color: rgba(72, 38, 120, .85);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center
}

.widget-capsule-info .pitch-inline .pitch-btn:hover {
  background: rgba(155, 117, 248, .18);
  border-color: rgba(155, 117, 248, .45);
  transform: scale(1.1)
}

.widget-capsule-info .pitch-inline .pitch-btn:active {
  transform: scale(0.95)
}

.widget-capsule-info .pitch-inline .pitch-value {
  font-size: 13px;
  font-weight: 700;
  color: rgba(88, 40, 140, 0.85);
  min-width: 16px;
  text-align: center;
  font-variant-numeric: tabular-nums
}

/* 底部滑块 */
.widget-capsule-sliders {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 0 0;
  width: 320px;
  margin-left: 80px;
  margin-top: 0;
  align-self: flex-start
}

.widget-capsule-sliders .slider-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  width: 100%
}

.widget-capsule-sliders .slider-label {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.3px;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
  flex: 0 0 auto;
  min-width: 58px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 0 4px rgba(155, 117, 248, .12);
  -webkit-font-smoothing: antialiased
}

.widget-capsule-sliders .slider-track {
  flex: 1;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.10);
  position: relative;
  cursor: default
}

.widget-capsule-sliders .slider-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #9b75f8, #f6c84a);
  box-shadow: 0 0 10px rgba(155, 117, 248, 0.40);
  transition: width 0.12s ease
}

.widget-capsule-sliders .slider-handle {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid #9b75f8;
  box-shadow: 0 2px 8px rgba(155, 117, 248, 0.40);
  cursor: grab;
  transition: left 0.12s ease, transform 0.2s ease
}

.widget-capsule-sliders .slider-handle:active {
  cursor: grabbing;
  transform: translate(-50%, -50%) scale(1.1)
}

.widget-capsule-sliders .slider-track:hover .slider-handle {
  transform: translate(-50%, -50%) scale(1.15);
  box-shadow: 0 3px 10px rgba(155, 117, 248, 0.35)
}


/* 圆角矩形悬浮窗 */
.widget-rounded {
  --v2-primary: #9b75f8;
  --v2-secondary: #f6c84a;
  --v2-primary-rgb: 155, 117, 248;
  position: relative;
  overflow: hidden;
  width: 400px;
  margin: 0 auto;
  border-radius: 38px;
  font-family: 'Microsoft YaHei', '微软雅黑', sans-serif;
  background:
    radial-gradient(ellipse at 50% -12%, rgba(8, 5, 16, .48), transparent 50%),
    radial-gradient(ellipse at 16% -10%, rgba(var(--v2-primary-rgb), .10), transparent 46%),
    radial-gradient(ellipse at 90% 110%, rgba(var(--v2-primary-rgb), .14), transparent 54%),
    radial-gradient(ellipse at 50% 125%, rgba(var(--v2-primary-rgb), .10), transparent 62%),
    radial-gradient(circle at 85% 20%, rgba(246, 200, 74, .05), transparent 38%),
    radial-gradient(circle at 15% 85%, rgba(155, 117, 248, .08), transparent 42%),
    radial-gradient(circle at 50% 50%, rgba(155, 117, 248, .08), transparent 70%),
    radial-gradient(circle at 75% 75%, rgba(246, 200, 74, .04), transparent 40%),
    radial-gradient(ellipse at 30% 40%, rgba(200, 164, 255, .06), transparent 50%),
    linear-gradient(165deg, #20182e 0%, #1f172c 40%, #1c1527 70%, #19131f 100%);
  border: 1px solid rgba(225, 210, 255, .28);
  box-shadow:
    0 18px 36px rgba(20, 14, 32, .42),
    0 5px 14px rgba(0, 0, 0, .30),
    0 0 34px rgba(155, 117, 248, .24),
    0 0 70px rgba(155, 117, 248, .10),
    inset 0 1px 0 rgba(255, 255, 255, .10),
    inset 0 -1px 0 rgba(7, 4, 14, .56),
    inset 1px 0 0 rgba(229, 214, 255, .09),
    inset -1px 0 0 rgba(0, 0, 0, .30)
}

/* 3份并排容器 - 轮播切换 */
.widget-trio {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  perspective: 1200px;
  height: 300px
}

.widget-trio > .widget-rounded {
  position: absolute;
  left: 50%;
  top: 50%;
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.7s, filter 0.7s;
  will-change: transform, opacity
}

/* 左侧位置 */
.widget-trio > .widget-rounded.pos-left {
  transform: translate(-50%, -50%) translateX(-290px) scale(0.62) rotateY(22deg);
  opacity: .40;
  filter: brightness(.78);
  z-index: 1
}

/* 中间位置 */
.widget-trio > .widget-rounded.pos-center {
  transform: translate(-50%, -50%) scale(0.72);
  opacity: 1;
  filter: none;
  z-index: 2
}

/* 右侧位置 */
.widget-trio > .widget-rounded.pos-right {
  transform: translate(-50%, -50%) translateX(290px) scale(0.62) rotateY(-22deg);
  opacity: .40;
  filter: brightness(.78);
  z-index: 1
}

/* 配色方案：蓝色 */
.widget-rounded[data-style="blue"] {
  display: none !important
}

/* 配色方案：粉红 */
.widget-rounded[data-style="pink"] {
  --v2-primary: #fb7185;
  --v2-secondary: #fb923c;
  --v2-primary-rgb: 251, 113, 133
}

.widget-rounded::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 50%, rgba(155, 117, 248, .05), transparent 65%),
    radial-gradient(ellipse 50% 30% at 80% 85%, rgba(246, 200, 74, .04), transparent 60%),
    radial-gradient(ellipse 40% 50% at 90% 30%, rgba(155, 117, 248, .05), transparent 55%);
  border-radius: inherit
}

/* 频谱区域 */
.widget-rounded-spectrum {
  position: relative;
  height: 100px;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 90%, rgba(var(--v2-primary-rgb), .32), transparent 60%),
    radial-gradient(ellipse at 50% 0%, rgba(255, 255, 255, .08), transparent 42%),
    radial-gradient(circle at 20% 50%, rgba(246, 200, 74, .06), transparent 50%),
    linear-gradient(180deg, rgba(255, 255, 255, .05), transparent 56%)
}

.widget-rounded-spectrum::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background:
    radial-gradient(ellipse at 12% 4%, rgba(255, 255, 255, .15), transparent 25%),
    radial-gradient(ellipse at 88% 8%, rgba(var(--v2-primary-rgb), .10), transparent 30%),
    linear-gradient(90deg, rgba(10, 8, 15, .10), transparent 18% 82%, rgba(10, 8, 15, .10))
}

.widget-rounded-spectrum::after {
  display: none
}

.widget-rounded::after {
  content: '';
  position: absolute;
  z-index: 12;
  bottom: 0;
  width: 34%;
  height: 2px;
  border-radius: 50%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .95), rgba(200, 164, 255, .82), transparent);
  box-shadow: 0 0 8px rgba(155, 117, 248, .85), 0 0 18px rgba(155, 117, 248, .45);
  animation: rounded-bottom-sweep 3.2s ease-in-out infinite;
  pointer-events: none
}

@keyframes rounded-bottom-sweep {
  0%, 18% { right: -36%; opacity: 0 }
  24% { opacity: 1 }
  66% { right: 102%; opacity: 1 }
  74%, 100% { right: 102%; opacity: 0 }
}

.widget-rounded-spectrum .spectrum-canvas {
  position: absolute;
  z-index: 2;
  inset: auto 4px 0;
  width: calc(100% - 8px);
  height: 76px;
  pointer-events: none
}

/* 基调标签 */
.widget-rounded-spectrum .key-label {
  position: absolute;
  top: 10px;
  right: 34px;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 2px;
  z-index: 4;
  pointer-events: none;
  white-space: nowrap;
  color: transparent;
  background: linear-gradient(135deg, #9b75f8 0%, #c8a4ff 25%, #d9b25e 50%, #e8d9a8 65%, #d9b25e 80%, #9b75f8 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 0 12px rgba(155, 117, 248, .35)) drop-shadow(0 0 5px rgba(217, 178, 94, .25));
  animation: key-shimmer 3s ease-in-out infinite
}

/* 信息行 */
.widget-rounded-info {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 24px 10px;
  background: linear-gradient(90deg, rgba(255, 255, 255, .038), transparent 30% 70%, rgba(var(--v2-primary-rgb), .08)), linear-gradient(180deg, rgba(255, 255, 255, .035), transparent 42%);
  border-top: 1px solid rgba(var(--v2-primary-rgb), .22);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06)
}

.widget-rounded-info .song-name {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: .2px;
  color: rgba(255, 255, 255, .94);
  text-shadow: 0 1px 3px rgba(0, 0, 0, .65), 0 0 8px rgba(155, 117, 248, .18);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis
}

.widget-rounded-info .player-badge {
  display: inline-flex;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  overflow: visible;
  filter: drop-shadow(0 0 6px rgba(155, 117, 248, .30))
}

.widget-rounded-info .player-badge .player-icon {
  width: 28px;
  height: 28px
}

.widget-rounded-info .status {
  font-size: 14px;
  font-weight: 400;
  color: #d9b25e;
  opacity: .92;
  white-space: nowrap;
  text-shadow: 0 0 8px rgba(217, 178, 94, .30), 0 1px 2px rgba(0, 0, 0, .5);
  -webkit-font-smoothing: antialiased
}

.widget-rounded-info .status::before {
  content: "●";
  margin-right: 4px
}

/* 升降调表盘区 */
.widget-rounded-gauge {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 18px 24px 20px;
  border-top: 1px solid rgba(var(--v2-primary-rgb), .10);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04)
}

.widget-rounded-gauge .pitch-button {
  position: relative;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(var(--v2-primary-rgb), .52);
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 30%, rgba(255, 255, 255, .12), transparent 50%),
    radial-gradient(circle at 50% 50%, rgba(var(--v2-primary-rgb), .20), transparent 72%),
    linear-gradient(180deg, #2a2238, #181320);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .14),
    inset 0 -1px 2px rgba(0, 0, 0, .40),
    inset 0 0 12px rgba(var(--v2-primary-rgb), .10),
    0 3px 8px rgba(0, 0, 0, .42),
    0 0 0 1px rgba(0, 0, 0, .20),
    0 0 14px rgba(var(--v2-primary-rgb), .16);
  color: color-mix(in srgb, var(--v2-primary) 60%, #f4eaff);
  font-size: 22px;
  font-weight: 400;
  line-height: 40px;
  text-align: center;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .8), 0 0 6px rgba(var(--v2-primary-rgb), .4);
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease
}

.widget-rounded-gauge .pitch-button::before {
  position: absolute;
  z-index: -1;
  content: "";
  inset: 4px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, .10);
  pointer-events: none
}

.widget-rounded-gauge .pitch-button:hover {
  filter: brightness(1.12);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .16),
    inset 0 -1px 2px rgba(0, 0, 0, .40),
    inset 0 0 16px rgba(var(--v2-primary-rgb), .16),
    0 3px 8px rgba(0, 0, 0, .42),
    0 0 0 1px rgba(0, 0, 0, .20),
    0 0 20px rgba(var(--v2-primary-rgb), .56)
}

.widget-rounded-gauge .pitch-button:active {
  transform: translateY(1px) scale(.97)
}

/* 圆形表盘 */
.widget-rounded-gauge .dial {
  position: relative;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background:
    repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .05) 0 1deg, transparent 1deg 3deg),
    conic-gradient(from 200deg, #3a2d46, #1a1420 25%, #42324f 50%, #1a1420 75%, #3a2d46);
  border: 2px solid rgba(255, 255, 255, .30);
  box-shadow:
    0 12px 28px rgba(0, 0, 0, .58),
    0 0 24px rgba(var(--v2-primary-rgb), .30),
    0 0 0 1px rgba(255, 255, 255, .08),
    inset 0 1px 1px rgba(255, 255, 255, .42),
    inset 0 -2px 4px rgba(0, 0, 0, .58),
    inset 0 0 0 6px rgba(0, 0, 0, .38),
    inset 0 0 0 7px rgba(255, 255, 255, .08),
    inset 0 0 0 8px rgba(0, 0, 0, .20)
}

/* 仪表盘背景 */
.widget-rounded-gauge .dial-face {
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, transparent 58%, rgba(0, 0, 0, .48) 68%, transparent 78%),
    radial-gradient(circle at 45% 38%, #352b45, #1b1522 68%, #100c18 100%);
  box-shadow:
    inset 0 2px 10px rgba(0, 0, 0, .65),
    inset 0 0 36px rgba(var(--v2-primary-rgb), .14),
    0 0 0 1px rgba(255, 255, 255, .08),
    inset 0 0 0 1px rgba(0, 0, 0, .48)
}

/* 呼吸光效 - 参考正式源码 */
.widget-rounded-gauge .dial-sweep {
  position: absolute;
  z-index: 1;
  inset: 32px;
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 215, 88, .62), transparent 22%),
    radial-gradient(circle at 68% 38%, rgba(246, 200, 74, .58), transparent 36%),
    radial-gradient(circle at 32% 76%, rgba(230, 48, 45, .54), transparent 26%),
    radial-gradient(circle at 45% 70%, rgba(155, 117, 248, .40), transparent 40%);
  filter: blur(3px);
  animation: dial-breathe 2.8s ease-in-out infinite alternate
}

/* 光晕环 - 参考正式源码 */
.widget-rounded-gauge .dial-sweep::after {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: radial-gradient(ellipse at 55% 45%, transparent 40%, rgba(155, 117, 248, .20) 61%, rgba(246, 200, 74, .12) 70%, transparent 78%);
  filter: blur(2px);
  animation: dial-breathe-ring 2.8s ease-in-out infinite alternate
}

/* 刻度容器 */
.widget-rounded-gauge .dial-ticks {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  z-index: 3;
  pointer-events: none
}

/* 刻度线 */
.widget-rounded-gauge .dial-tick {
  position: absolute;
  top: 8px;
  left: 50%;
  margin-left: -1px;
  width: 2px;
  height: 10px;
  border-radius: 2px;
  background: #9b75f8;
  transform-origin: 1px 62px;
  opacity: .85;
  box-shadow: 0 0 4px rgba(155, 117, 248, .6)
}

/* 中间刻度 - 白色 */
.widget-rounded-gauge .dial-tick.tick-center {
  background: #fff;
  height: 12px;
  box-shadow: 0 0 6px rgba(255, 255, 255, .6)
}

/* 正侧刻度 - 黄色 */
.widget-rounded-gauge .dial-tick[class*="tick-pos"] {
  background: #f6c84a;
  box-shadow: 0 0 4px rgba(246, 200, 74, .6)
}

/* 玻璃罩 - 参考正式源码 */
.widget-rounded-gauge .dial::after {
  content: '';
  position: absolute;
  z-index: 7;
  inset: 8px;
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(ellipse 62% 38% at 50% 16%, rgba(255, 255, 255, .34), transparent 62%),
    linear-gradient(180deg, rgba(255, 255, 255, .14), transparent 32%);
  box-shadow:
    inset 2px 2px 3px rgba(255, 255, 255, .32),
    inset -6px -10px 16px rgba(0, 0, 0, .28),
    0 0 7px rgba(155, 117, 248, .48);
  animation: dial-breathe-glass 2.8s ease-in-out infinite alternate
}


@keyframes dial-breathe {
  0% {
    opacity: .34;
    transform: scale(.86)
  }

  100% {
    opacity: .82;
    transform: scale(1.10)
  }
}

@keyframes dial-breathe-ring {
  0% {
    opacity: 0;
    transform: scale(.92)
  }

  100% {
    opacity: .70;
    transform: scale(1.08)
  }
}

@keyframes dial-breathe-glass {
  0% {
    opacity: .22
  }

  100% {
    opacity: .80
  }
}

.widget-rounded-gauge .dial-face {
  position: absolute;
  z-index: -1;
  /* 最底层 */
  inset: 6px;
  border-radius: 50%;
  background: #1a1420;
}

.widget-rounded-gauge .dial-needle {
  position: absolute;
  z-index: 3;
  top: 20px;
  left: 50%;
  width: 3px;
  height: 50px;
  transform: translateX(-50%) rotate(0deg);
  transform-origin: 50% 50px;
  border-radius: 3px 3px 0 0;
  background: linear-gradient(180deg, #ffffff 0%, var(--v2-secondary) 10%, var(--v2-secondary) 42%, color-mix(in srgb, var(--v2-secondary) 40%, var(--v2-primary)) 78%, var(--v2-primary) 100%);
  box-shadow:
    0 0 10px rgba(246, 200, 74, .75),
    0 0 4px rgba(var(--v2-primary-rgb), .55),
    0 1px 2px rgba(0, 0, 0, .40);
  transition: transform .16s cubic-bezier(.2, .9, .3, 1)
}

.widget-rounded-gauge .dial-cap {
  position: absolute;
  z-index: 8;
  top: 55px;
  left: 55px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #4d3e54, #1f1827 70%);
  border: 1px solid rgba(255, 255, 255, .10);
  box-shadow:
    0 3px 8px rgba(0, 0, 0, .52),
    inset 0 1px rgba(255, 255, 255, .18),
    inset 0 -1px 2px rgba(0, 0, 0, .40),
    0 0 8px rgba(var(--v2-primary-rgb), .24)
}

.widget-rounded-gauge .dial-cap::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 35% 30%, #ffffff, var(--v2-secondary) 40%, var(--v2-primary) 100%);
  box-shadow:
    0 0 8px rgba(246, 200, 74, .80),
    0 0 3px rgba(255, 255, 255, .60),
    inset 0 -1px 1px rgba(0, 0, 0, .20)
}

.widget-rounded-gauge .pitch-value {
  position: absolute;
  z-index: 9;
  top: 100px;
  left: 50%;
  width: auto;
  min-width: 24px;
  transform: translateX(-50%);
  font-size: 17px;
  font-weight: 400;
  text-align: center;
  color: var(--v2-secondary);
  text-shadow: 0 0 10px rgba(var(--v2-primary-rgb), .35), 0 0 4px rgba(246, 200, 74, .22), 0 1px 2px rgba(0, 0, 0, .5);
  -webkit-font-smoothing: antialiased;
  cursor: pointer
}

/* 圆角矩形底部滑块 */
.widget-rounded-sliders {
  position: relative;
  z-index: 10;
  pointer-events: auto;
  padding: 10px 30px 14px;
  background: linear-gradient(180deg, rgba(0, 0, 0, .10), transparent 42%), linear-gradient(180deg, rgba(var(--v2-primary-rgb), .05), transparent 50%);
  border-top: 1px solid rgba(var(--v2-primary-rgb), .18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05)
}

.widget-rounded-sliders .slider-row {
  display: grid;
  grid-template-columns: 72px 1fr 40px;
  align-items: center;
  gap: 10px;
  min-height: 36px
}

.widget-rounded-sliders .slider-label {
  font-size: 12px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, .85);
  font-weight: 400;
  letter-spacing: .7px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .6), 0 0 4px rgba(155, 117, 248, .12);
  -webkit-font-smoothing: antialiased
}

.widget-rounded-sliders .slider-value {
  text-align: right;
  color: #d9b25e;
  font-weight: 400;
  font-size: 12px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: .3px;
  text-shadow: 0 0 6px rgba(217, 178, 94, .30), 0 1px 2px rgba(0, 0, 0, .5);
  -webkit-font-smoothing: antialiased
}

.widget-rounded-sliders .slider-track {
  height: 6px;
  position: relative;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(155, 117, 248, .22), rgba(246, 200, 74, .16));
  border: 1px solid rgba(155, 117, 248, .28);
  box-shadow:
    inset 0 1px 5px rgba(0, 0, 0, .55),
    inset 0 0 8px rgba(155, 117, 248, .14),
    0 1px rgba(255, 255, 255, .06);
  cursor: pointer
}

.widget-rounded-sliders .slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 6px;
  width: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--v2-primary), #c084fc 52%, var(--v2-secondary));
  box-shadow:
    0 0 10px rgba(var(--v2-primary-rgb), .48),
    0 0 4px rgba(246, 200, 74, .35)
}

.widget-rounded-sliders .slider-handle {
  position: absolute;
  top: 50%;
  left: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 38% 32%, #fff, #f3edff 80%);
  border: 2px solid rgba(var(--v2-primary-rgb), .72);
  box-shadow:
    0 0 8px rgba(var(--v2-primary-rgb), .44),
    0 2px 6px rgba(0, 0, 0, .40),
    inset 0 1px rgba(255, 255, 255, .9),
    inset 0 -1px 2px rgba(0, 0, 0, .15);
  transition: box-shadow .18s ease, transform .18s ease;
  cursor: grab
}

.widget-rounded-sliders .slider-track:hover .slider-handle {
  transform: translate(-50%, -50%) scale(1.08);
  box-shadow:
    0 0 0 5px rgba(var(--v2-primary-rgb), .16),
    0 0 14px rgba(var(--v2-primary-rgb), .80),
    0 2px 8px rgba(0, 0, 0, .40),
    inset 0 1px rgba(255, 255, 255, .9)
}

.widget-rounded-sliders .slider-handle:active {
  cursor: grabbing
}

/* 通用Section */
.section {
  padding: 80px 80px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  background: #fff
}

.section-head {
  text-align: center;
  margin-bottom: 50px
}

.section-head h2 {
  font-size: 42px;
  font-weight: 800;
  letter-spacing: -.5px;
  margin-bottom: 12px;
  color: var(--text)
}

.section-head h2 .grad {
  background: linear-gradient(135deg, var(--primary), var(--accent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text
}

.section-head p {
  font-size: 16px;
  color: var(--text-2);
  margin-top: 10px
}

/* 多版本下载 */
.download-section {
  padding: 48px 80px 54px;
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
}

.download-section .section-head { margin-bottom: 30px; }
.download-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }

.download-card {
  position: relative;
  min-height: 270px;
  display: flex;
  flex-direction: column;
  padding: 19px 18px 12px;
  overflow: hidden;
  color: var(--text);
  text-decoration: none;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: 0 8px 22px rgba(124, 58, 237, .08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.download-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--primary), var(--primary-light) 55%, var(--accent));
}

.download-card::after {
  content: '';
  position: absolute;
  right: -44px;
  bottom: -60px;
  width: 145px;
  height: 145px;
  border-radius: 50%;
  background: rgba(124, 58, 237, .045);
  pointer-events: none;
}

.download-card:hover {
  z-index: 4;
  transform: translateY(-5px);
  border-color: rgba(124, 58, 237, .42);
  box-shadow: var(--shadow-lg);
}

.download-card-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  border: 1px solid rgba(124, 58, 237, .2);
  border-radius: 14px;
  color: var(--primary);
  background: var(--light);
  box-shadow: none;
}

.download-card-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.download-card-icon.is-pc,
.download-card-icon.is-rig,
.download-card-icon.is-android,
.download-card-icon.is-vst { color: var(--primary); border-color: rgba(124, 58, 237, .2); }
.download-card-copy { position: relative; z-index: 1; }
.download-card-kicker { color: var(--primary); font-size: 9px; font-weight: 900; letter-spacing: 1.35px; }
.download-card h3 { margin: 8px 0 7px; color: var(--text); font-size: 18px; line-height: 1.25; }
.download-card p { display: -webkit-box; min-height: 44px; margin: 0; overflow: hidden; color: var(--text-2); font-size: 12px; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.download-card-action { position: relative; display: flex; align-items: center; justify-content: center; width: fit-content; margin: 13px auto 0; padding: 9px 22px; overflow: hidden; color: #fff; font-size: 12px; font-weight: 900; border: 0; border-radius: 999px; background: linear-gradient(100deg, var(--primary), var(--primary-light) 58%, #8d60ed); background-size: 180% 100%; box-shadow: 0 7px 15px rgba(124, 58, 237, .24); transition: background-position .25s ease, transform .25s ease, box-shadow .25s ease; }
.download-card-action::after { content: ''; position: absolute; top: -30%; left: -35%; width: 24%; height: 160%; background: rgba(255, 255, 255, .42); transform: skewX(-24deg); transition: left .38s ease; }
.download-card:hover .download-card-action { background-position: 100% 0; transform: translateY(-2px); box-shadow: 0 11px 21px rgba(124, 58, 237, .34); }
.download-card:hover .download-card-action::after { left: 115%; }
.download-card:active .download-card-action { transform: translateY(0); box-shadow: 0 4px 10px rgba(124, 58, 237, .24); }

.download-action-wrap { position: relative; display: flex; justify-content: center; width: fit-content; margin: 13px auto 0; }
.download-action-wrap .download-card-action { margin: 0; }
.download-qr { position: absolute; z-index: 8; left: 50%; bottom: calc(100% + 10px); display: flex; flex-direction: column; align-items: center; gap: 5px; width: 138px; padding: 9px; opacity: 0; pointer-events: none; border: 1px solid rgba(214, 159, 36, .45); border-radius: 12px; background: #fffdf5; box-shadow: 0 12px 26px rgba(71, 51, 101, .18); transform: translate(-50%, 8px) scale(.94); transition: opacity .2s ease, transform .2s ease; }
.download-qr img { width: 112px; height: 112px; background: #fff; }
.download-qr b { color: #9a6200; font-size: 10px; white-space: nowrap; }
.download-action-wrap:hover .download-qr { opacity: 1; transform: translate(-50%, 0) scale(1); }

.download-preview-toggle { position: absolute; z-index: 7; top: 14px; right: 14px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 11px; color: #9a6200; font-size: 11px; font-weight: 900; border: 1px solid rgba(214, 159, 36, .42); border-radius: 999px; background: rgba(255, 249, 229, .94); box-shadow: 0 4px 11px rgba(161, 112, 12, .14); backdrop-filter: blur(8px); }
.download-preview-toggle::before { content: '⌕'; color: #b67a08; font-size: 14px; line-height: 1; }
.download-preview-toggle:hover { color: #fff; border-color: #9a6200; background: #b67a08; box-shadow: 0 6px 15px rgba(182, 122, 8, .28); }
.download-preview-toggle:hover::before { color: #fff2bc; }

.download-preview {
  position: absolute;
  z-index: 6;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 34px 14px 14px;
  opacity: 0;
  pointer-events: none;
  border-radius: inherit;
  border: 1px solid rgba(70, 40, 113, .46);
  background: linear-gradient(145deg, rgba(255, 255, 255, .99), rgba(246, 241, 255, .97));
  box-shadow: inset 0 0 0 3px rgba(124, 58, 237, .05);
  backdrop-filter: blur(5px);
  transition: opacity .2s ease;
}

.download-preview::before {
  content: '版本界面预览';
  position: absolute;
  top: 10px;
  left: 12px;
  padding: 4px 8px;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1px;
  border-radius: 5px;
  background: #382052;
}

.download-preview::after {
  content: '';
  position: absolute;
  top: 17px;
  right: 14px;
  width: 30px;
  height: 2px;
  background: linear-gradient(90deg, #382052, var(--accent));
}

.download-preview-toggle:hover + .download-preview,
.download-preview:hover { opacity: 1; pointer-events: auto; }
.download-preview img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; border: 1px solid rgba(124, 58, 237, .16); border-radius: 10px; background: #fff; box-shadow: 0 8px 18px rgba(71, 51, 101, .16); }
.download-card-mobile .download-preview img { object-fit: cover; object-position: center 36%; }
.download-preview-toggle:hover { z-index: 8; }

/* 视频区域 */
.video-section {
  background: #fff;
  padding: 44px 80px 80px
}

.video-wrap {
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  border: 0;
  background: #0e0917;
  outline: 3px solid #9670ea;
  box-shadow: 0 10px 24px rgba(25, 14, 46, .18)
}

.video-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0
}

.video-cover {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: #0e0917;
  cursor: pointer
}

.video-wrap > .video-cover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  transform: none
}

.video-cover .video-play {
  pointer-events: none
}

.video-wrap.is-playing .video-cover {
  display: none
}

.video-wrap video {
  display: block;
  width: 100%;
  height: auto
}

.video-wrap.is-playing .video-play,
.video-wrap.is-playing .video-info {
  opacity: 0;
  pointer-events: none
}

.video-wrap img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  opacity: .85;
  transition: all .4s
}

.video-wrap:hover img {
  opacity: .65;
  transform: scale(1.02)
}

.video-cover .video-play {
  z-index: 1
}

.video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90px;
  height: 90px;
  padding: 0;
  border: 0;
  outline: 0;
  appearance: none;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 12px 48px rgba(124, 58, 237, .6);
  transition: all .3s
}

.video-cover:hover .video-play,
.video-play:hover {
  transform: translate(-50%, -50%) scale(1.15);
  box-shadow: 0 16px 60px rgba(124, 58, 237, .8)
}

.video-play svg {
  display: block;
  width: 36px;
  height: 36px;
  fill: #fff;
  stroke: none;
  margin-left: 5px;
  filter: none
}

.video-play svg path {
  fill: #fff;
  stroke: none
}

.video-info {
  position: absolute;
  z-index: 3;
  bottom: 0;
  pointer-events: none;
  left: 0;
  right: 0;
  padding: 28px 36px;
  background: linear-gradient(transparent, rgba(0, 0, 0, .9));
  color: #fff
}

.video-info h3 {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 6px
}

.video-info p {
  font-size: 14px;
  opacity: .8
}

/* 特性区域 */
.features-section,
.players-section {
  background: #fff;
  position: relative
}

.features-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, .2), transparent)
}

.feat-grid,
.use-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px
}

.feat-card {
  background: var(--light);
  border: 1px solid rgba(124, 58, 237, .12);
  border-radius: var(--radius);
  padding: 36px 32px;
  transition: all .4s cubic-bezier(.4, 0, .2, 1);
  position: relative;
  overflow: hidden;
  box-shadow: 0 7px 14px rgba(62, 36, 100, .10)
}

.feat-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s
}

.feat-card:hover::before {
  transform: scaleX(1)
}

.feat-card:hover,
.use-card:hover {
  transform: translateY(-8px);
  background: #fff;
  border-color: rgba(124, 58, 237, .25);
  box-shadow: var(--shadow-lg)
}

.feat-ico {
  position: absolute;
  top: 0;
  right: 0;
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  color: rgba(124, 58, 237, .38);
  filter: drop-shadow(0 4px 9px rgba(124, 58, 237, .18));
  transform: none;
  transition: color .3s ease, transform .3s ease
}

.feat-card:hover .feat-ico {
  color: rgba(124, 58, 237, .56);
  filter: drop-shadow(0 5px 12px rgba(124, 58, 237, .26));
  transform: scale(1.05)
}

.feat-ico::before {
  display: none
}

.feat-ico svg {
  display: block;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  fill: currentColor
}

.feat-card:nth-child(1) .feat-ico svg,
.feat-card:nth-child(2) .feat-ico svg {
  width: 32px;
  height: 32px;
  flex-basis: 32px
}

.feat-card .feat-ico {
  background: none
}

.feat-card h3 {
  font-size: 19px;
  font-weight: 700;
  margin-bottom: 10px;
  color: var(--text)
}

.feat-card p,
.use-card p {
  font-size: 15px;
  color: var(--text-2);
  line-height: 1.8
}

/* 常见问题 */
.faq-section {
  width: 100%;
  max-width: none;
  background: linear-gradient(135deg, rgba(124, 58, 237, .055), rgba(236, 72, 153, .028));
  box-shadow: inset 0 1px rgba(124, 58, 237, .055), inset 0 -1px rgba(124, 58, 237, .055)
}

.faq-section .section-head {
  max-width: 1200px;
  margin: 0 auto 50px
}

.faq-grid {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px
}

.faq-item {
  background: #fff;
  border: 1px solid rgba(124, 58, 237, .14);
  border-radius: 16px;
  padding: 28px 32px;
  box-shadow: 0 4px 16px rgba(97, 67, 145, .045);
  transition: box-shadow .3s ease, border-color .3s ease
}

.faq-item summary {
  position: relative;
  padding: 0 34px 0 36px;
  color: var(--text);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
  list-style: none
}

.faq-item summary::-webkit-details-marker { display: none }

.faq-item summary::before {
  content: "Q";
  position: absolute;
  left: 0;
  top: 50%;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  color: rgba(99, 74, 145, .78);
  background: rgba(124, 58, 237, .10);
  font-size: 13px;
  line-height: 24px;
  text-align: center;
  transform: translateY(-50%)
}

.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  color: rgba(99, 74, 145, .60);
  font-size: 26px;
  font-weight: 400;
  line-height: 1;
  transform: translateY(-50%);
  transition: transform .25s ease
}

.faq-item[open] summary::after {
  content: "−";
  transform: translateY(-50%)
}

.faq-item:hover { 
  border-color: rgba(124, 58, 237, .20);
  box-shadow: 0 10px 28px rgba(97, 67, 145, .09)
}

.faq-item h3 {
  font-size: 17px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 10px;
  padding-left: 20px;
  position: relative
}

.faq-item h3::before {
  content: "Q";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 14px;
  font-weight: 800;
  color: var(--primary)
}

.faq-item p {
  position: relative;
  margin-top: 18px;
  padding-left: 36px;
  font-size: 15px;
  color: var(--text-2);
  line-height: 1.9
}

.faq-item p a {
  color: #7752b8;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(119, 82, 184, .45);
  text-underline-offset: 3px
}

.faq-item .current-page-url {
  overflow-wrap: anywhere;
  word-break: break-word
}

.faq-item p::before {
  content: "A";
  position: absolute;
  left: 0;
  top: 2px;
  width: 24px;
  height: 24px;
  border: 1px solid rgba(99, 74, 145, .22);
  border-radius: 50%;
  color: rgba(99, 74, 145, .68);
  font-size: 13px;
  font-weight: 700;
  line-height: 22px;
  text-align: center
}

/* 插件区域 */
.plugins-section {
  background: #fff
}

.plug-row {
  display: flex;
  gap: 28px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 48px
}

.plug-box {
  flex: 1;
  min-width: 340px;
  max-width: 500px;
  background: var(--light);
  border: 1px solid rgba(124, 58, 237, .12);
  border-radius: var(--radius);
  padding: 32px;
  transition: .3s;
  box-shadow: 0 7px 14px rgba(62, 36, 100, .10)
}

.plug-box:hover {
  background: #fff;
  border-color: rgba(124, 58, 237, .25);
  box-shadow: var(--shadow)
}

.plug-box h3 {
  font-size: 18px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text);
  font-weight: 700
}

.plug-box h3 .badge {
  padding: 4px 14px;
  border-radius: 14px;
  font-size: 12px;
  font-weight: 600
}

.plug-box:nth-child(1) h3 .badge {
  background: rgba(124, 58, 237, .15);
  color: var(--primary-light)
}

.plug-box:nth-child(2) h3 .badge {
  background: rgba(246, 200, 74, .2);
  color: var(--accent)
}

.plug-list {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.plug-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-radius: 12px;
  background: rgba(124, 58, 237, .04);
  transition: .3s;
  border: 1px solid transparent
}

.plug-item:hover {
  background: rgba(124, 58, 237, .08);
  border-color: rgba(124, 58, 237, .15);
  transform: translateX(6px)
}

.plug-item .dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--primary);
  flex-shrink: 0;
  box-shadow: 0 0 10px rgba(124, 58, 237, .4)
}

.plug-box:nth-child(2) .plug-item .dot {
  background: var(--accent);
  box-shadow: 0 0 10px rgba(246, 200, 74, .4)
}

.plug-item span {
  font-size: 15px;
  color: var(--text)
}

/* 宿主软件 */
.hosts-head {
  text-align: center;
  margin-bottom: 28px
}

.hosts-head h3 {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px
}

.hosts-head p {
  font-size: 15px;
  color: var(--text-2)
}

.hosts-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center
}

.host-chip {
  padding: 12px 26px;
  border-radius: 24px;
  background: var(--light);
  border: 1px solid rgba(124, 58, 237, .15);
  font-size: 15px;
  color: var(--text);
  transition: .3s;
  font-weight: 500;
  box-shadow: 0 4px 9px rgba(62, 36, 100, .09)
}

.host-chip:hover {
  background: #fff;
  border-color: rgba(124, 58, 237, .3);
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(124, 58, 237, .15)
}

/* 播放器区域 */
.players-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, .2), transparent)
}

.player-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto
}

.player-chip {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 28px;
  border-radius: 28px;
  background: var(--light);
  border: 1px solid rgba(124, 58, 237, .15);
  font-size: 15px;
  font-weight: 500;
  color: var(--text);
  transition: all .3s;
  box-shadow: 0 4px 9px rgba(62, 36, 100, .09)
}

.player-chip:hover {
  background: #fff;
  border-color: rgba(124, 58, 237, .3);
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(124, 58, 237, .12)
}

.player-chip .pdot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  box-shadow: 0 0 12px rgba(124, 58, 237, .3)
}

.use-card {
  background: var(--light);
  border: 1px solid rgba(124, 58, 237, .15);
  border-radius: var(--radius);
  padding: 36px 32px;
  text-align: center;
  transition: all .4s cubic-bezier(.4, 0, .2, 1);
  position: relative;
  overflow: hidden;
  box-shadow: 0 7px 14px rgba(62, 36, 100, .10)
}

.use-card::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--primary));
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .4s
}

.use-card:hover::after {
  transform: scaleX(1);
  transform-origin: left
}

.use-ico {
  width: 58px;
  height: 58px;
  border-radius: 15px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  transition: .3s;
  position: relative
}

.use-card:hover .use-ico {
  transform: scale(1.15) rotate(-5deg)
}

.use-ico::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 15px;
  background: inherit;
  filter: blur(12px);
  opacity: .4;
  z-index: -1
}

.use-ico svg {
  width: 30px;
  height: 30px;
  fill: #fff
}

.use-card h3 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--text)
}

/* 页脚 */
.footer {
  background: var(--light);
  padding: 26px 80px;
  position: relative
}

.footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(124, 58, 237, .15), transparent)
}

.footer-content {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 80px;
  margin-bottom: 50px
}

.footer-left {
  flex: 0 0 300px
}

.footer-left .nav-logo {
  margin-bottom: 18px
}

.footer-left p {
  color: var(--text-2);
  font-size: 14px;
  line-height: 2
}

.footer-center {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px
}

.footer-col h4 {
  color: var(--text);
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 20px
}

.footer-col a {
  display: block;
  color: var(--text-2);
  font-size: 14px;
  margin-bottom: 12px;
  transition: all .3s
}

.footer-col a:hover {
  color: var(--primary);
  transform: translateX(6px)
}

.footer-right {
  flex: 0 0 220px;
  text-align: right
}

.footer-right .social {
  display: flex;
  gap: 14px;
  justify-content: flex-end;
  margin-bottom: 18px
}

.footer-right .social-ico {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(124, 58, 237, .08);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .3s;
  border: 1px solid rgba(124, 58, 237, .15)
}

.footer-right .social-ico:hover {
  background: var(--primary);
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(124, 58, 237, .2)
}

.footer-right .social-ico svg {
  width: 20px;
  height: 20px;
  fill: #fff
}

.footer-right p {
  color: var(--text-2);
  font-size: 14px
}

.footer-bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 0;
  border-top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--text-3);
  font-size: 13px
}

.footer-company {
  color: var(--text-3);
  transition: color .25s ease
}

.footer-company:hover {
  color: var(--primary)
}

.footer-auth-icon {
  display: inline-block;
  vertical-align: -2px;
  margin-left: 4px;
  color: var(--primary);
  opacity: .72
}

.footer-actions {
  display: flex;
  gap: 16px
}

.footer-actions a {
  min-width: 104px;
  padding: 9px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease
}

.footer-actions a:nth-child(1) {
  color: #fff;
  background: linear-gradient(135deg, #e11d48, #fb7185);
  box-shadow: 0 4px 10px rgba(225, 29, 72, .24)
}

.footer-actions a:nth-child(2) {
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #60a5fa);
  box-shadow: 0 4px 10px rgba(37, 99, 235, .24)
}

.footer-actions a:nth-child(3) {
  color: #fff;
  background: linear-gradient(135deg, #d97706, #fbbf24);
  box-shadow: 0 4px 10px rgba(217, 119, 6, .24)
}

.footer-actions a:hover {
  transform: translateY(-2px);
  filter: brightness(1.04)
}

.footer-actions a:nth-child(1):hover { box-shadow: 0 7px 15px rgba(213, 139, 47, .28) }
.footer-actions a:nth-child(2):hover { box-shadow: 0 7px 15px rgba(124, 58, 237, .32) }
.footer-actions a:nth-child(3):hover { box-shadow: 0 7px 15px rgba(42, 160, 174, .28) }

.footer-actions .footer-customize-trigger,
.footer-actions .footer-agent-trigger,
.footer-actions .footer-contact-trigger {
  min-width: 104px;
  padding: 9px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #e11d48, #fb7185);
  box-shadow: 0 4px 10px rgba(225, 29, 72, .24);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease
}

.footer-actions .footer-customize-trigger:hover,
.footer-actions .footer-agent-trigger:hover,
.footer-actions .footer-contact-trigger:hover {
  transform: translateY(-2px);
  filter: brightness(1.04)
}

.footer-actions .footer-customize-trigger:hover { box-shadow: 0 7px 15px rgba(225, 29, 72, .30) }

.footer-actions .footer-agent-trigger {
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #60a5fa);
  box-shadow: 0 4px 10px rgba(37, 99, 235, .24)
}

.footer-actions .footer-agent-trigger:hover { box-shadow: 0 7px 15px rgba(37, 99, 235, .30) }

.footer-actions .footer-contact-trigger {
  color: #fff;
  background: linear-gradient(135deg, #d97706, #fbbf24);
  box-shadow: 0 4px 10px rgba(217, 119, 6, .24)
}

.footer-actions .footer-contact-trigger:hover { box-shadow: 0 7px 15px rgba(217, 119, 6, .30) }

.app-agent-modal,
.app-service-modal,
.customize-modal {
  position: fixed;
  z-index: 2100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(20, 12, 32, .52);
  backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease
}

.app-agent-modal.active,
.app-service-modal.active,
.customize-modal.active {
  opacity: 1;
  visibility: visible
}

.customize-modal-card {
  position: relative;
  width: min(730px, 100%);
  padding: 30px 34px 24px;
  border: 1px solid rgba(124, 58, 237, .18);
  border-radius: 20px;
  background: #fbfaff;
  box-shadow: 0 22px 64px rgba(15, 8, 29, .30);
  color: #3d3549;
  transform: translateY(14px) scale(.98);
  transition: transform .25s ease
}

.agent-modal.active .agent-modal-card,
.contact-modal.active .contact-modal-card,
.customize-modal.active .customize-modal-card {
  transform: translateY(0) scale(1)
}

.agent-modal-card { width: min(650px, 100%) }
.contact-modal-card { width: min(460px, 100%); text-align: center }

.contact-modal-card h2 {
  margin: 0 0 10px;
  color: #2f2540;
  font-size: 26px
}

.contact-modal-card p {
  margin: 0;
  color: #7b7187;
  font-size: 14px;
  line-height: 1.7
}

.contact-modal-actions { margin-top: 22px }

.contact-modal-actions a {
  display: inline-block;
  min-width: 150px;
  padding: 11px 22px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #d97706, #fbbf24);
  box-shadow: 0 5px 12px rgba(217, 119, 6, .22);
  font-size: 14px;
  font-weight: 600
}

.contact-modal-actions a:hover { filter: brightness(1.05) }

.customize-modal-close {
  position: absolute;
  top: -17px;
  right: -17px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(80, 55, 110, .18);
  border-radius: 50%;
  background: #fff;
  color: #765d94;
  box-shadow: 0 5px 14px rgba(46, 27, 77, .16);
  cursor: pointer;
  font: 22px/1 Arial, sans-serif;
  transition: .2s
}

.customize-modal-close:hover {
  border-color: #ef4444;
  background: #ef4444;
  color: #fff;
  transform: rotate(90deg)
}

.customize-modal-card h2 {
  margin: 0 0 7px;
  color: #2f2540;
  font-size: 26px
}

.customize-lead {
  margin: 0 0 18px;
  color: #7b7187;
  font-size: 14px;
  line-height: 1.65
}

.customize-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px
}

.customize-item {
  min-height: 86px;
  padding: 13px 15px;
  border: 1px solid #e5eefc;
  border-radius: 13px;
  background: #f8fbff
}

.customize-item b,
.customize-item span {
  display: block
}

.customize-item b {
  margin-bottom: 5px;
  color: #4b3869;
  font-size: 15px
}

.customize-item span {
  color: #887e94;
  font-size: 13px;
  line-height: 1.55
}

.customize-item-intro {
  grid-column: 1 / -1;
  min-height: auto;
  border-color: #c4b5fd;
  background: linear-gradient(135deg, #ede9fe, #f5f3ff)
}

.customize-item-intro b { color: #5b21b6 }
.customize-item-intro span { color: #68568a }

.customize-item-intro small {
  display: inline-block;
  margin-top: 7px;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(109, 40, 217, .16);
  color: #5b21b6;
  font-size: 11px
}

.customize-item:nth-child(2) { border-color: #93c5fd; background: linear-gradient(135deg, #eff6ff, #f8fbff) }
.customize-item:nth-child(2) b { color: #1d4ed8 }
.customize-item:nth-child(3) { border-color: #d8b4fe; background: linear-gradient(135deg, #faf5ff, #fdfaff) }
.customize-item:nth-child(3) b { color: #7e22ce }
.customize-item:nth-child(4) { border-color: #f9a8d4; background: linear-gradient(135deg, #fff1f7, #fff9fc) }
.customize-item:nth-child(4) b { color: #be185d }
.customize-item:nth-child(5) { border-color: #86efac; background: linear-gradient(135deg, #f0fdf4, #f8fffb) }
.customize-item:nth-child(5) b { color: #15803d }

.agent-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 22px
}

.agent-step {
  position: relative;
  min-height: 150px;
  padding: 22px 16px 16px;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  background: linear-gradient(135deg, #eff6ff, #f8fbff);
  text-align: center
}

.agent-step:nth-child(2) { border-color: #c4b5fd; background: linear-gradient(135deg, #f5f3ff, #fbfaff) }
.agent-step:nth-child(3) { border-color: #86efac; background: linear-gradient(135deg, #f0fdf4, #f8fffb) }

.agent-step i {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0 auto 12px;
  border-radius: 50%;
  color: #fff;
  background: #2563eb;
  font-style: normal;
  font-size: 15px;
  font-weight: 700
}

.agent-step:nth-child(2) i { background: #7c3aed }
.agent-step:nth-child(3) i { background: #16a34a }

.agent-step b,
.agent-step span { display: block }
.agent-step b { margin-bottom: 7px; color: #3b4e72; font-size: 15px }
.agent-step span { color: #788398; font-size: 13px; line-height: 1.55 }

.customize-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid #eee8f6
}

.customize-contact span {
  color: #7b7187;
  font-size: 13px
}

.customize-contact a {
  flex: 0 0 112px;
  padding: 10px 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #a855f7 52%, #facc15);
  box-shadow: 0 5px 12px rgba(124, 58, 237, .24);
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease
}

.customize-contact a:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow: 0 8px 18px rgba(124, 58, 237, .34)
}

/* 页脚代理与客服弹窗：与主程序 appindex 保持一致 */
.app-agent-modal,
.app-service-modal {
  z-index: 2200;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow: auto;
  background: rgba(49, 58, 70, .56);
  opacity: 1;
  visibility: visible;
  backdrop-filter: none
}

.app-agent-modal.active,
.app-service-modal.active { display: flex }

.app-agent-modal .agent-modal-dialog {
  position: relative;
  width: 100%;
  max-width: 720px;
  min-height: 430px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 16px 50px rgba(0, 0, 0, .24);
  overflow: visible;
  transform: none
}

.app-agent-modal .agent-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid #edf0f4
}

.app-agent-modal .customize-modal-close {
  top: -17px;
  right: -17px
}

.app-agent-modal .agent-modal-title {
  color: #313a46;
  font-size: 20px;
  font-weight: 600
}

.app-agent-modal .agent-modal-close {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #98a6ad;
  cursor: pointer;
  font-size: 27px;
  line-height: 1;
  transition: .2s
}

.app-agent-modal .agent-modal-close:hover {
  background: #fa5c7c;
  color: #fff;
  transform: rotate(90deg)
}

.app-agent-modal .agent-modal-body { padding: 36px 24px 48px }
.app-agent-modal .agent-modal-intro { margin: 0 0 24px; color: #98a6ad; text-align: center }

.app-agent-modal .agent-steps {
  display: flex;
  align-items: flex-start;
  margin: 0
}

.app-agent-modal .agent-step {
  flex: 1;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: center
}

.app-agent-modal .agent-step-line {
  flex: 0 0 46px;
  height: 2px;
  margin-top: 25px;
  background: #dfe3f7
}

.app-agent-modal .agent-step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin: 0 auto 13px;
  border-radius: 50%;
  background: #eef0ff;
  color: var(--primary);
  font-size: 24px
}

.app-agent-modal .agent-step:nth-child(3) .agent-step-icon { background: #e7f8f4; color: #0acf97 }
.app-agent-modal .agent-step:nth-child(5) .agent-step-icon { background: #fff5dc; color: #ffbc00 }
.app-agent-modal .agent-step-title { margin: 0; color: #313a46; font-size: 16px; font-weight: 600 }
.app-agent-modal .agent-step-text { margin: 7px auto 0; max-width: 150px; color: #98a6ad; font-size: 13px; line-height: 1.7 }

.app-agent-modal .agent-modal-actions {
  padding-top: 32px;
  text-align: center
}

.app-agent-modal .agent-modal-actions a {
  display: inline-block;
  min-width: 180px;
  margin: 0 4px;
  padding: 9px 16px;
  text-decoration: none;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500
}

.app-agent-modal .agent-outline-btn {
  border: 1px solid #7c3aed;
  color: #7c3aed;
  background: #fff;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease
}

.app-agent-modal .agent-outline-btn:hover {
  color: #fff;
  background: #7c3aed;
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(124, 58, 237, .28)
}

.app-agent-modal .agent-primary-btn {
  border: 0;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #a855f7 52%, #facc15);
  box-shadow: 0 5px 12px rgba(124, 58, 237, .24);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease
}

.app-agent-modal .agent-primary-btn:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow: 0 8px 18px rgba(124, 58, 237, .34)
}

.app-service-modal .video-modal-dialog {
  position: relative;
  width: 860px;
  max-width: calc(100vw - 40px);
  height: calc(70vh + 90px);
  min-height: 510px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 16px 50px rgba(0, 0, 0, .36);
  overflow: visible;
  transform: none
}

.app-service-modal .video-modal-body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 10px
}

.app-service-modal iframe { display: block; width: 100%; height: 100%; border: 0 }

.app-service-modal .customize-modal-close {
  top: -17px;
  right: -17px
}

/* 悬浮按钮 */
.float-contact {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 14px
}

.float-btn {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .3s cubic-bezier(.25,.8,.25,1);
  border: none;
  position: relative;
  box-shadow: 0 4px 14px rgba(0,0,0,.15), 0 1px 3px rgba(0,0,0,.08);
}

.float-btn svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: .3s;
}

.float-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.2), 0 2px 6px rgba(0,0,0,.1);
}
.float-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

.float-btn.kefu {
  background: #a855f7;
  box-shadow: 0 4px 16px rgba(168,85,247,.35);
}
.float-btn.daili {
  background: #3b82f6;
  box-shadow: 0 4px 16px rgba(59,130,246,.25);
}
.float-badge {
  position: absolute;
  top: -3px;
  right: -9px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  background: #1d4ed8;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(29,78,216,.4);
  pointer-events: none;
  overflow: hidden;
}
.float-badge::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.5), transparent);
  transform: skewX(-20deg);
  animation: badgeSweep 2.5s ease-in-out infinite;
}
@keyframes badgeSweep {
  0%, 100% { left: -100%; }
  50% { left: 150%; }
}
.float-btn.top {
  background: #f6c84a;
  box-shadow: 0 4px 16px rgba(246,200,74,.35);
}
.float-btn:hover {
  transform: translateY(-2px);
}
.float-btn.kefu:hover {
  box-shadow: 0 8px 24px rgba(168,85,247,.5);
}
.float-btn.daili:hover {
  box-shadow: 0 8px 24px rgba(59,130,246,.4);
}
.float-btn.top:hover {
  box-shadow: 0 8px 24px rgba(246,200,74,.5);
}

/* 悬浮按钮底部上升拖尾粒子 */
.float-particles {
  position: absolute;
  left: 50%;
  bottom: -4px;
  transform: translateX(-50%);
  width: 70px;
  height: 200px;
  pointer-events: none;
  z-index: -1;
  overflow: hidden;
}
.fp {
  position: absolute;
  left: 50%;
  bottom: -6px;
  border-radius: 50%;
  background: rgb(var(--c));
  opacity: 0;
  animation: fpRise 4.5s ease-out var(--d) infinite;
}
/* 拖尾光柱 */
.fp::after {
  content: '';
  position: absolute;
  bottom: 60%;
  left: 50%;
  transform: translateX(-50%);
  width: 1.5px;
  border-radius: 1px;
  background: linear-gradient(to bottom, rgb(var(--c)), transparent);
  opacity: .6;
}
@keyframes fpRise {
  0% {
    opacity: 0;
    transform: translate(calc(var(--dx) * 1px), 0) scale(.15);
  }
  8% {
    opacity: .9;
  }
  40% {
    opacity: .45;
  }
  100% {
    opacity: 0;
    transform: translate(calc(var(--dx) * 1px), calc(var(--dy) * -3px)) scale(var(--s));
  }
}

/* 动画效果 */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s ease, transform .8s ease
}

.reveal.in {
  opacity: 1;
  transform: translateY(0)
}

/* 软著证书模态框 */
#copyrightBadge {
  cursor: pointer;
  user-select: none;
  transition: all .3s
}

#copyrightBadge:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(124, 58, 237, .18)
}

.copyright-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(8px);
  justify-content: center;
  align-items: center
}

.copyright-modal.active {
  display: flex
}

.copyright-overlay {
  position: absolute;
  inset: 0;
  z-index: 0
}

.copyright-viewport {
  position: relative;
  z-index: 1;
  cursor: grab;
  max-width: 90vw;
  max-height: 90vh;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.1);
  transition: transform .05s linear
}

.copyright-viewport img {
  display: block;
  max-width: 80vw;
  max-height: 85vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 12px;
  pointer-events: none;
  user-select: none
}

/* 响应式 */
@media(max-width:1200px) {
  .hero-content {
    flex-direction: column;
    gap: 60px
  }

  .hero-left {
    margin-left: 0;
    text-align: center
  }

  .hero .sub {
    margin-left: auto;
    margin-right: auto
  }

  .hero-right {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center
  }

  .dl-card {
    width: 300px
  }

  .footer-content {
    flex-direction: column;
    gap: 50px
  }

  .footer-left,
  .footer-right {
    flex: 1;
    text-align: left
  }

  .footer-right {
    text-align: left
  }

  .footer-right .social {
    justify-content: flex-start
  }

  .footer-bottom {
    flex-direction: column;
    gap: 14px;
    text-align: center
  }
}

@media(max-width:1024px) {
  .nav {
    padding: 0 40px
  }

  .hero {
    padding: 120px 60px 60px
  }

  .section {
    padding: 100px 60px
  }

  .video-section {
    padding: 40px 60px 80px
  }

  .download-section {
    padding: 54px 60px
  }

  .download-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .footer {
    padding: 60px 60px 30px
  }

  .feat-grid,
  .use-grid {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width:768px) {
  .nav {
    padding: 0 24px
  }

  .nav-links a:not(.btn),
  .nav-logo .txt {
    display: none
  }

  .hero {
    min-height: auto;
    padding: 88px 28px 42px
  }

  .hero-content {
    gap: 24px;
    margin-top: 20px
  }

  .hero-left {
    width: 100%
  }

  .hero-copy {
    max-width: none
  }

  .hero-badge,
  .hero-phone-video {
    display: none
  }

  .hero .sub {
    display: none
  }

  .hero-btns {
    flex-direction: column;
    width: 100%;
    gap: 12px;
    margin-top: 26px
  }

  .hero-btns .hero-btn,
  .hero-btns .hero-btn.primary {
    justify-content: center;
    width: 100%;
    padding: 16px 28px
  }

  .hero-phone-video {
    position: relative;
    right: auto;
    bottom: auto;
    width: 168px;
    margin: 24px auto -4px;
    transform: none
  }

  .hero-right {
    order: -1;
    width: min(100%, 500px);
    margin: 30px 0 38px
  }

  .hero-right .monitor-frame {
    width: 100%
  }

  .hero-right .monitor-screen {
    height: 360px
  }

  .hero-right .widget-trio > .widget-rounded[data-style="0"] {
    width: min(440px, 88vw)
  }

  .hero h1 {
    font-size: 46px
  }

  .hero .slogan {
    font-size: 18px;
    letter-spacing: 5px
  }

  .section {
    padding: 56px 28px
  }

  .video-section {
    padding: 34px 28px 56px
  }

  .download-section {
    padding: 44px 28px
  }

  .download-grid {
    grid-template-columns: 1fr
  }

  .download-card {
    min-height: 320px
  }

  .download-preview {
    padding: 14px
  }

  .section-head {
    margin-bottom: 34px
  }

  .faq-section .section-head {
    margin-bottom: 34px
  }

  .section-head p,
  .hosts-head p {
    display: none
  }

  .faq-item summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2
  }

  .faq-item summary.faq-summary-compact,
  .faq-item:nth-child(-n+3) summary,
  .faq-item:nth-child(5) summary,
  .faq-item:nth-child(6) summary {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
  }

  .section-head h2 {
    font-size: 32px
  }

  .feat-grid,
  .use-grid {
    grid-template-columns: 1fr
  }

  .plug-row {
    flex-direction: column
  }

  .dl-card {
    width: 100%;
    max-width: 340px
  }

  .video-wrap .video-info {
    display: none
  }

  .video-wrap img {
    height: 280px
  }

  .footer {
    padding: 50px 32px 24px
  }

  .footer-version {
    display: none
  }

  .footer-center {
    grid-template-columns: 1fr
  }
}