/* ── 全局基础 ── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* 导航下拉现已改用 Tailwind group-hover，无需自定义 CSS */

/* TOC 精致滚动条 */
.custom-scrollbar::-webkit-scrollbar { width: 3px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 9999px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: #93c5fd; }

/* ── 动画 ── */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
.animate-pulse { animation: pulse-dot 2s cubic-bezier(0.4,0,0.6,1) infinite; }

/* ── Hero 渐变遮罩 ── */
.hero-fade {
  background: linear-gradient(to top, #ffffff 0%, transparent 60%);
  pointer-events: none;
}

/* ── 卡片悬浮 ── */
.card-hover {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}

/* ── CTA 按钮悬浮 ── */
.btn-primary {
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.btn-primary:hover {
  transform: translateY(-2px);
}

/* ── 底部网格背景 ── */
.dot-grid {
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.15) 1px, transparent 0);
  background-size: 32px 32px;
}
