/***** 首页样式：白色 + 网格高阶风格 *****/

/* 锚点偏移，避免被吸顶导航遮挡 */
section { scroll-margin-top: 88px; }

/* 导航栏logo */
.navbar-brand img {
  height: 56px;
  width: auto;
}

/* 页脚间距 */
.site-footer {
  margin-top: 80px;
  padding-top: 60px !important;
}

/* 通用卡片悬停效果 */
.card.neo {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card.neo:hover {
  transform: translateY(-3px);
  box-shadow: -6px -6px 12px rgba(255,255,255,.9), 6px 6px 12px rgba(0,0,0,.08);
}

/* 客户logo墙间距 */
#cases .row {
  gap: 2rem !important;
}
#cases .col-6, #cases .col-sm-4, #cases .col-md-2 {
  margin-bottom: 1.5rem;
}

/* 页脚logo位置调整 */
.footer-brand {
  margin-top: 20px;
}
.footer-brand .brand {
  display: inline-block;
  margin-bottom: 10px;
}

/* Hero 背景动效 */
.hero {
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background:
    radial-gradient(circle at 20% 80%, rgba(37,99,235,0.03) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(0,194,255,0.03) 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, rgba(16,185,129,0.02) 0%, transparent 50%);
  animation: hero-bg-float 20s ease-in-out infinite;
  pointer-events: none;
}
.hero::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    linear-gradient(45deg, transparent 49%, rgba(37,99,235,0.02) 50%, transparent 51%),
    linear-gradient(-45deg, transparent 49%, rgba(0,194,255,0.02) 50%, transparent 51%);
  background-size: 60px 60px;
  animation: hero-grid-shift 15s linear infinite;
  pointer-events: none;
}

/* Hero 内容 */
.hero .hero-eyebrow {
  color: var(--primary-700);
  font-weight: 700;
  letter-spacing: .08em;
  font-size: 12px;
  text-transform: uppercase;
  margin-bottom: 10px;
  animation: hero-fade-in 1s ease-out;
}
.hero .hero-title {
  font-weight: 900;
  letter-spacing: -.02em;
  line-height: 1.15;
  font-size: clamp(28px, 5vw, 48px);
  animation: hero-fade-in 1s ease-out 0.2s both;
}
.hero .hero-sub {
  color: var(--text-2);
  max-width: 56ch;
  margin: 14px 0 18px;
  animation: hero-fade-in 1s ease-out 0.4s both;
}
.hero .hero-actions {
  display:flex;
  gap: 10px;
  margin-top: 8px;
  animation: hero-fade-in 1s ease-out 0.6s both;
}
.hero .hero-stats {
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
  animation: hero-fade-in 1s ease-out 0.8s both;
}
.hero .pill {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--text-2);
  font-weight: 600;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hero .pill:hover {
  transform: translateY(-2px);
  box-shadow: -4px -4px 8px rgba(255,255,255,.8), 4px 4px 8px rgba(0,0,0,.05);
}
.hero .pill i {
  color: var(--primary);
  animation: pill-icon-pulse 3s ease-in-out infinite;
}

/* Hero 右侧可视卡片 */
.hero-visual {
  padding: 18px;
  position: relative;
  overflow: hidden;
  animation: hero-visual-float 6s ease-in-out infinite;
}
.hero-visual.card {
  transition: transform .2s ease, box-shadow .25s ease;
}
.hero-visual::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg,
    rgba(37,99,235,0.1),
    rgba(0,194,255,0.1),
    rgba(16,185,129,0.1),
    rgba(37,99,235,0.1)
  );
  border-radius: inherit;
  z-index: -1;
  animation: hero-visual-glow 8s linear infinite;
  opacity: 0;
}
.hero-visual:hover::before {
  opacity: 1;
}

/* 3D 服务器机架 */
.server-rack {
  position: relative;
  margin-bottom: 16px;
  perspective: 1000px;
  animation: server-rack-hover 8s ease-in-out infinite;
}
.rack-frame {
  background: linear-gradient(145deg, #f8fafc, #e2e8f0);
  border-radius: 12px;
  padding: 12px;
  box-shadow: inset -2px -2px 6px rgba(255,255,255,.7), inset 2px 2px 6px rgba(0,0,0,.1);
  transform: rotateX(5deg) rotateY(-5deg);
  transition: transform 0.3s ease;
  position: relative;
  overflow: hidden;
}
.rack-frame::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(37,99,235,0.1), transparent);
  animation: server-scan 4s ease-in-out infinite;
}
.server-unit {
  height: 32px;
  margin: 4px 0;
  background: linear-gradient(145deg, #ffffff, #f1f5f9);
  border-radius: 6px;
  display: flex;
  align-items: center;
  padding: 0 8px;
  box-shadow: -2px -2px 4px rgba(255,255,255,.8), 2px 2px 4px rgba(0,0,0,.1);
  transition: all .3s ease;
  position: relative;
  overflow: hidden;
}
.server-unit.active {
  background: linear-gradient(145deg, #f0f9ff, #e0f2fe);
  box-shadow: -2px -2px 4px rgba(255,255,255,.9), 2px 2px 6px rgba(37,99,235,.1);
  animation: server-unit-pulse 3s ease-in-out infinite;
}
.server-unit.active::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(to bottom, var(--primary), var(--accent));
  animation: server-activity 2s ease-in-out infinite;
}
.server-lights { display: flex; gap: 4px; margin-right: 8px; }
.led {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  box-shadow: inset -1px -1px 2px rgba(0,0,0,.2), 0 0 4px currentColor;
  position: relative;
}
.led::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: radial-gradient(circle, currentColor 0%, transparent 70%);
  opacity: 0;
  animation: led-glow 3s ease-in-out infinite;
}
.led.green { background: #10b981; color: #10b981; animation: pulse-green 2s infinite; }
.led.blue { background: #3b82f6; color: #3b82f6; animation: pulse-blue 2.5s infinite; }
.led.orange { background: #f59e0b; color: #f59e0b; animation: pulse-orange 1.8s infinite; }
.led.gray { background: #9ca3af; color: #9ca3af; }
.server-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--text-2);
  position: relative;
}

/* 网络线缆 */
.network-cables { position: absolute; right: -8px; top: 20px; }
.cable {
  width: 2px;
  height: 80px;
  background: linear-gradient(to bottom, #6b7280, #4b5563);
  margin: 2px 0;
  border-radius: 1px;
  box-shadow: 1px 0 2px rgba(0,0,0,.3);
}

/* 云服务状态面板 */
.cloud-status {
  background: linear-gradient(145deg, #ffffff, #f8fafc);
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 12px;
  box-shadow: inset -3px -3px 6px rgba(255,255,255,.8), inset 3px 3px 6px rgba(0,0,0,.05);
  position: relative;
  overflow: hidden;
}
.cloud-status::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--primary), transparent);
  animation: status-scan 3s ease-in-out infinite;
}
.status-item {
  display: flex;
  align-items: center;
  margin: 8px 0;
  gap: 8px;
  animation: status-item-fade-in 1s ease-out;
}
.status-item:nth-child(1) { animation-delay: 0.2s; }
.status-item:nth-child(2) { animation-delay: 0.4s; }
.status-item:nth-child(3) { animation-delay: 0.6s; }
.status-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #e2e8f0, #cbd5e1);
  box-shadow: -2px -2px 4px rgba(255,255,255,.8), 2px 2px 4px rgba(0,0,0,.1);
  color: var(--primary);
  font-size: 12px;
  animation: status-icon-pulse 4s ease-in-out infinite;
  position: relative;
}
.status-icon::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 8px;
  background: linear-gradient(45deg, var(--primary), var(--accent));
  opacity: 0;
  animation: status-icon-glow 5s ease-in-out infinite;
}
.status-info { flex: 1; }
.status-value {
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
}
.status-label { font-size: 10px; color: var(--muted); }
.status-bar {
  width: 40px;
  height: 6px;
  background: linear-gradient(145deg, #e2e8f0, #cbd5e1);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset -1px -1px 2px rgba(255,255,255,.8), inset 1px 1px 2px rgba(0,0,0,.1);
  position: relative;
}
.status-bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
  animation: status-bar-shine 4s ease-in-out infinite;
}
.status-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  border-radius: 3px;
  transition: width .8s ease;
  position: relative;
  animation: status-fill-pulse 3s ease-in-out infinite;
  overflow: hidden;
}
.status-fill::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,0.3) 20%,
    rgba(255,255,255,0.6) 50%,
    rgba(255,255,255,0.3) 80%,
    transparent 100%
  );
  animation: progress-wave 2s ease-in-out infinite;
}
.status-fill::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 2px;
  height: 100%;
  background: rgba(255,255,255,0.8);
  animation: status-fill-indicator 2s ease-in-out infinite;
}

.hero-visual .hero-kpis {
  display:flex;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
  animation: kpis-fade-in 1s ease-out 1s both;
}
.hero-visual .kpi {
  flex: 1 1 100px;
  border-radius: 12px;
  padding: 12px;
  text-align: center;
  background: linear-gradient(145deg, #ffffff, #f8fafc);
  box-shadow: -3px -3px 6px rgba(255,255,255,.8), 3px 3px 6px rgba(0,0,0,.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  overflow: hidden;
}
.hero-visual .kpi::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(37,99,235,0.1), transparent);
  animation: kpi-shine 5s ease-in-out infinite;
}
.hero-visual .kpi:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: -5px -5px 10px rgba(255,255,255,.9), 5px 5px 10px rgba(0,0,0,.08);
}
.hero-visual .kpi span {
  display:block;
  font-weight: 800;
  font-size: 20px;
  animation: kpi-number-count 3s ease-out 1.5s both;
  position: relative;
}
.hero-visual .kpi span::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 2px;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  border-radius: 1px;
  animation: kpi-underline 2s ease-out 2s both;
}
.hero-visual .kpi small {
  color: var(--muted);
  animation: kpi-label-fade 1s ease-out 2.5s both;
}

/* 基础设施可视化组件 */
.infra-card {
  animation: infra-card-float 6s ease-in-out infinite;
  position: relative;
  overflow: hidden;
  transform-origin: center center;
}
.infra-card:nth-child(1) { animation-delay: 0s; }
.infra-card:nth-child(2) { animation-delay: 2s; }
.infra-card:nth-child(3) { animation-delay: 4s; }
.infra-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(45deg,
    rgba(37,99,235,0.1),
    rgba(0,194,255,0.1),
    rgba(16,185,129,0.1),
    rgba(37,99,235,0.1)
  );
  border-radius: inherit;
  z-index: -1;
  animation: infra-card-glow 8s linear infinite;
  opacity: 0;
  pointer-events: none;
}
.infra-card:hover::before {
  opacity: 1;
}
.infra-card .infra-visual {
  height: 80px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: infra-visual-pulse 4s ease-in-out infinite;
  transform-origin: center center;
}

/* 可用区展示 */
.availability-zones {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 8px;
}

.zone-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  width: 100%;
  max-width: 200px;
}

.zone-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 6px;
  background: linear-gradient(145deg, #f8fafc, #f1f5f9);
  border-radius: 8px;
  box-shadow:
    -2px -2px 4px rgba(255,255,255,0.8),
    2px 2px 4px rgba(0,0,0,0.05);
  transition: all 0.3s ease;
  border: 1px solid rgba(148,163,184,0.2);
}

.zone-item.active {
  background: linear-gradient(145deg, #dbeafe, #bfdbfe);
  border-color: rgba(37,99,235,0.3);
  box-shadow:
    -2px -2px 4px rgba(255,255,255,0.9),
    2px 2px 6px rgba(37,99,235,0.1);
}

.zone-item:hover {
  transform: translateY(-1px);
  box-shadow:
    -3px -3px 6px rgba(255,255,255,0.9),
    3px 3px 8px rgba(0,0,0,0.08);
}

.zone-icon {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 12px;
}

.zone-item.active .zone-icon {
  color: var(--primary);
  animation: pulse-zone 2s infinite;
}

.zone-name {
  font-size: 10px;
  font-weight: 600;
  color: var(--text-2);
  text-align: center;
  line-height: 1;
}

.zone-status {
  font-size: 8px;
  font-weight: 500;
  color: #94a3b8;
  text-align: center;
}

.zone-item.active .zone-status {
  color: var(--primary);
}

@keyframes pulse-zone {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.1);
    opacity: 0.8;
  }
}


/* 安全防护盾 */
.security-shield {
  position: relative;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  transform-origin: center center;
}
.shield-layers { position: absolute; inset: 0; }
.shield-layer {
  position: absolute;
  border-radius: 50%;
  border: 2px solid;
  animation: shield-pulse 3s infinite;
}
.layer-1 {
  inset: 0;
  border-color: var(--primary);
  background: radial-gradient(circle, rgba(37,99,235,.1), transparent);
}
.layer-2 {
  inset: 8px;
  border-color: var(--accent);
  animation-delay: 1s;
}
.layer-3 {
  inset: 16px;
  border-color: #10b981;
  animation-delay: 2s;
}
.security-icon {
  position: relative;
  z-index: 2;
  color: var(--primary);
  font-size: 20px;
}

/* 监控仪表盘 */
.monitoring-dashboard {
  width: 100px;
  height: 60px;
  background: linear-gradient(145deg, #f8fafc, #e2e8f0);
  border-radius: 8px;
  padding: 8px;
  box-shadow: inset -2px -2px 4px rgba(255,255,255,.8), inset 2px 2px 4px rgba(0,0,0,.05);
  margin: 0 auto;
  transform-origin: center center;
}
.metric-chart {
  display: flex;
  align-items: end;
  gap: 3px;
  height: 30px;
  margin-bottom: 6px;
}
.chart-bar {
  flex: 1;
  background: linear-gradient(to top, var(--primary), var(--accent));
  border-radius: 1px;
  animation: chart-update 4s infinite;
}
.alert-indicators {
  display: flex;
  gap: 4px;
  justify-content: center;
}
.alert-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  box-shadow: inset -1px -1px 2px rgba(0,0,0,.2);
}
.alert-dot.green { background: #10b981; animation: pulse-green 2s infinite; }
.alert-dot.orange { background: #f59e0b; animation: pulse-orange 1.5s infinite; }

/* Hero 背景动画 */
@keyframes hero-bg-float {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(30px, -30px) rotate(1deg); }
  66% { transform: translate(-20px, 20px) rotate(-1deg); }
}
@keyframes hero-grid-shift {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(60px) translateY(60px); }
}
@keyframes hero-fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes pill-icon-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

/* Hero 可视化动画 */
@keyframes hero-visual-float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-5px); }
}
@keyframes hero-visual-glow {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* 服务器机架动画 */
@keyframes server-rack-hover {
  0%, 100% { transform: rotateY(-1deg); }
  50% { transform: rotateY(1deg); }
}
@keyframes server-scan {
  0% { left: -100%; }
  50% { left: 100%; }
  100% { left: -100%; }
}
@keyframes server-unit-pulse {
  0%, 100% { box-shadow: -2px -2px 4px rgba(255,255,255,.9), 2px 2px 6px rgba(37,99,235,.1); }
  50% { box-shadow: -3px -3px 6px rgba(255,255,255,.95), 3px 3px 8px rgba(37,99,235,.15); }
}
@keyframes server-activity {
  0%, 100% { opacity: 0.3; height: 100%; }
  50% { opacity: 1; height: 80%; }
}
@keyframes led-glow {
  0%, 100% { opacity: 0; }
  50% { opacity: 0.6; }
}

/* 状态面板动画 */
@keyframes status-scan {
  0% { left: -100%; }
  100% { left: 100%; }
}
@keyframes status-item-fade-in {
  from { opacity: 0; transform: translateX(-10px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes status-icon-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes status-icon-glow {
  0%, 100% { opacity: 0; }
  50% { opacity: 0.3; }
}
@keyframes progress-wave {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}
@keyframes status-bar-shine {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}
@keyframes status-fill-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}
@keyframes status-fill-indicator {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}

/* KPI 卡片动画 */
@keyframes kpis-fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes kpi-shine {
  0% { left: -100%; }
  50% { left: 100%; }
  100% { left: -100%; }
}
@keyframes kpi-number-count {
  from { transform: scale(0.8); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
@keyframes kpi-underline {
  from { width: 0; }
  to { width: 20px; }
}
@keyframes kpi-label-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* 基础设施卡片动画 */
@keyframes infra-card-float {
  0%, 100% { transform: translateY(0px) translateX(0px); }
  50% { transform: translateY(-2px) translateX(0px); }
}
@keyframes infra-card-glow {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes infra-visual-pulse {
  0%, 100% { transform: scale(1) translateX(0px); }
  50% { transform: scale(1.01) translateX(0px); }
}

/* 基础动画效果 */
@keyframes pulse-green { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }
@keyframes pulse-blue { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } }
@keyframes pulse-orange { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes pulse-region { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2); } }
@keyframes data-flow { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; } }
@keyframes shield-pulse { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } }
@keyframes chart-update { 0%, 100% { opacity: 0.8; } 25% { opacity: 1; } 75% { opacity: 0.9; } }

/* Features */
.features-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.feature {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.feature:hover {
  transform: translateY(-5px);
  box-shadow: -6px -6px 12px rgba(255,255,255,.9), 6px 6px 12px rgba(0,0,0,.08);
}
.feature .icon { width: 42px; height: 42px; border-radius: 10px; display:grid; place-items:center; margin-bottom: 10px; color:#fff; background: linear-gradient(135deg, var(--primary), var(--accent)); box-shadow: 0 6px 18px rgba(37,99,235,.18); }

/* Products */
.product-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.product-card:hover {
  transform: translateY(-4px);
  box-shadow: -6px -6px 12px rgba(255,255,255,.9), 6px 6px 12px rgba(0,0,0,.08);
}
.product-card .product-visual {
  height: 60px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-origin: center center;
}

/* 云服务器可视化 */
.cloud-server {
  position: relative;
  width: 80px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  transform-origin: center center;
}
.server-icon {
  width: 40px;
  height: 40px;
  background: linear-gradient(145deg, #e2e8f0, #cbd5e1);
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: var(--primary);
  font-size: 18px;
  box-shadow: -3px -3px 6px rgba(255,255,255,.8), 3px 3px 6px rgba(0,0,0,.1);
}
.scaling-indicator {
  position: absolute;
  right: -8px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.scale-dot {
  width: 4px;
  height: 4px;
  background: var(--accent);
  border-radius: 50%;
  animation: scale-pulse 2s infinite;
}
.scale-dot:nth-child(2) { animation-delay: 0.3s; }
.scale-dot:nth-child(3) { animation-delay: 0.6s; }

/* 物理服务器可视化 */
.physical-server {
  width: 80px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  transform-origin: center center;
}
.server-chassis {
  width: 60px;
  height: 32px;
  background: linear-gradient(145deg, #374151, #1f2937);
  border-radius: 4px;
  position: relative;
  box-shadow: -2px -2px 4px rgba(255,255,255,.1), 2px 2px 4px rgba(0,0,0,.3);
}
.chassis-front {
  position: absolute;
  inset: 2px;
  background: linear-gradient(145deg, #4b5563, #374151);
  border-radius: 2px;
  display: flex;
  align-items: center;
  padding: 0 4px;
  gap: 2px;
}
.power-led {
  width: 4px;
  height: 4px;
  background: #9ca3af;
  border-radius: 50%;
}
.power-led.active {
  background: #10b981;
  box-shadow: 0 0 4px #10b981;
  animation: pulse-green 2s infinite;
}
.drive-bay {
  flex: 1;
  height: 8px;
  background: linear-gradient(145deg, #6b7280, #4b5563);
  border-radius: 1px;
  margin: 0 1px;
}
.drive-bay.active {
  background: linear-gradient(145deg, #3b82f6, #1d4ed8);
  box-shadow: 0 0 2px #3b82f6;
}

/* 网络拓扑可视化 */
.network-topology {
  position: relative;
  width: 80px;
  height: 40px;
  margin: 0 auto;
  transform-origin: center center;
}
.network-node {
  position: absolute;
  width: 20px;
  height: 20px;
}
.node-1 { top: 0; left: 0; }
.node-2 { top: 0; right: 0; }
.node-3 { bottom: 0; left: 50%; transform: translateX(-50%); }
.node-icon {
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #e2e8f0, #cbd5e1);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--primary);
  font-size: 10px;
  box-shadow: -2px -2px 4px rgba(255,255,255,.8), 2px 2px 4px rgba(0,0,0,.1);
}
.network-link {
  position: absolute;
  height: 1px;
  background: linear-gradient(90deg, var(--primary), var(--accent));
  animation: data-flow 2s infinite;
}
.link-1 { top: 10px; left: 20px; width: 40px; }
.link-2 { bottom: 10px; left: 30px; width: 20px; transform: rotate(-45deg); }

.product-card .badge { display:inline-block; font-size: 12px; font-weight:700; color: var(--primary-700); background: rgba(37,99,235,.1); border: 1px solid rgba(37,99,235,.22); border-radius: 999px; padding: 4px 10px; margin-bottom: 10px; }

/* 架构图 - 重新设计 */
.architecture-diagram {
  padding: 32px 24px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, #f8fafc, #f1f5f9);
}

.arch-layer {
  display: flex;
  align-items: center;
  margin: 0 0 40px 0;
  gap: 20px;
  position: relative;
  padding: 16px 0;
}

.arch-layer:last-child {
  margin-bottom: 0;
}

.layer-title {
  width: 80px;
  font-weight: 700;
  font-size: 15px;
  color: var(--text-1);
  text-align: left;
  flex-shrink: 0;
}

.layer-separator {
  width: 1px;
  height: 40px;
  background: linear-gradient(180deg, transparent, rgba(37,99,235,0.3), transparent);
  flex-shrink: 0;
}

.arch-components {
  display: flex;
  gap: 16px;
  flex: 1;
  justify-content: flex-start;
  align-items: center;
  padding-left: 20px;
}

.arch-component {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: linear-gradient(145deg, #ffffff, #f8fafc);
  border-radius: 12px;
  box-shadow:
    -3px -3px 6px rgba(255,255,255,0.9),
    3px 3px 6px rgba(0,0,0,0.08);
  transition: all 0.3s ease;
  border: 1px solid rgba(37,99,235,0.1);
  min-width: 80px;
}

.arch-component:hover {
  transform: translateY(-3px);
  box-shadow:
    -4px -4px 8px rgba(255,255,255,0.9),
    4px 4px 12px rgba(0,0,0,0.12);
  border-color: rgba(37,99,235,0.2);
}

.component-icon {
  width: 36px;
  height: 36px;
  background: linear-gradient(145deg, #e2e8f0, #cbd5e1);
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: var(--primary);
  font-size: 16px;
  box-shadow:
    inset -2px -2px 4px rgba(255,255,255,0.8),
    inset 2px 2px 4px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}

.arch-component:hover .component-icon {
  background: linear-gradient(145deg, #ddd6fe, #c4b5fd);
  color: #6366f1;
}

.component-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-2);
  text-align: center;
  line-height: 1.2;
}
.flow-1 { top: 30%; left: 20%; width: 60%; }
.flow-2 { top: 50%; left: 25%; width: 50%; animation-delay: 1s; }
.flow-3 { top: 70%; left: 30%; width: 40%; animation-delay: 2s; }

/* 产品动画 */
@keyframes scale-pulse { 0%, 100% { opacity: 0.4; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } }

/* Pricing */
.pricing-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.plan {
  position: relative;
  overflow:hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.plan:hover {
  transform: translateY(-6px);
  box-shadow: -8px -8px 16px rgba(255,255,255,.9), 8px 8px 16px rgba(0,0,0,.1);
}
.plan.highlight { border-color: rgba(37,99,235,.35); box-shadow: 0 16px 40px rgba(37,99,235,.08); }
.plan.highlight:hover {
  box-shadow: -8px -8px 16px rgba(255,255,255,.9), 8px 8px 16px rgba(37,99,235,.15);
}
.plan .plan-name { font-weight: 800; color: var(--text-2); margin-bottom: 8px; }
.plan .price { font-weight: 900; font-size: 28px; letter-spacing: -.02em; margin: 8px 0 12px; }
.plan .price span { font-size: 18px; color: var(--text-2); margin-right: 4px; }
.plan .price small { font-size: 12px; color: var(--muted); margin-left: 6px; }
.plan-features { list-style: none; padding: 0; margin: 0 0 14px; }
.plan-features li { position: relative; padding-left: 18px; margin: 6px 0; color: var(--text-2); }
.plan-features li::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: linear-gradient(135deg, var(--primary), var(--accent)); position:absolute; left:0; top:.6em; }

/* 响应式 */
@media (max-width: 1200px) {
  .features-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 992px) {
  .features-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .pricing-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 576px) {
  .features-grid { grid-template-columns: 1fr; }
  .pricing-grid { grid-template-columns: 1fr; }
  .hero .hero-actions { flex-direction: column; }
}
