/* 全局重置与暗色模式变量 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; background: #f8f9fc; color: #1a1a2e; transition: background 0.3s, color 0.3s; line-height: 1.6; }
body.dark { background: #0f0f1a; color: #e4e4ec; }
a { text-decoration: none; color: inherit; }
img, svg { display: block; max-width: 100%; }
.container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
/* 玻璃效果卡片 */
.glass { background: rgba(255,255,255,0.35); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 32px; box-shadow: 0 20px 40px -12px rgba(0,0,0,0.15); border: 1px solid rgba(255,255,255,0.2); }
body.dark .glass { background: rgba(20,20,40,0.6); border-color: rgba(255,255,255,0.08); }
.card { background: #ffffff; border-radius: 28px; padding: 28px; box-shadow: 0 8px 24px rgba(0,0,0,0.04); transition: transform 0.2s, box-shadow 0.2s; }
body.dark .card { background: #1c1c2e; box-shadow: 0 8px 24px rgba(0,0,0,0.4); }
.card:hover { transform: translateY(-4px); box-shadow: 0 20px 32px rgba(0,0,0,0.08); }
/* 按钮渐变 */
.btn-primary { background: linear-gradient(135deg, #f0c040, #e6a800); color: #1a1a2e; border: none; padding: 12px 32px; border-radius: 60px; font-weight: 600; cursor: pointer; transition: all 0.2s; display: inline-block; }
.btn-primary:hover { transform: scale(1.02); box-shadow: 0 8px 20px rgba(240,192,64,0.3); }
/* 头部导航 */
.header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,0.7); backdrop-filter: blur(16px); border-bottom: 1px solid rgba(0,0,0,0.05); padding: 12px 0; }
body.dark .header { background: rgba(15,15,26,0.8); border-color: rgba(255,255,255,0.05); }
.header .container { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.logo svg { width: 48px; height: 48px; }
.nav { display: flex; gap: 28px; align-items: center; }
.nav a { font-weight: 500; position: relative; padding: 4px 0; }
.nav a.active::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 100%; height: 3px; background: #f0c040; border-radius: 4px; }
.menu-toggle { display: none; background: none; border: none; font-size: 28px; cursor: pointer; color: #1a1a2e; }
body.dark .menu-toggle { color: #e4e4ec; }
.dark-toggle { background: none; border: 1px solid #ccc; border-radius: 30px; padding: 4px 12px; font-size: 18px; cursor: pointer; }
/* 移动菜单 */
@media (max-width: 768px) {
  .nav { display: none; width: 100%; flex-direction: column; background: rgba(255,255,255,0.9); backdrop-filter: blur(12px); padding: 20px 0; border-radius: 32px; margin-top: 12px; }
  body.dark .nav { background: rgba(20,20,40,0.9); }
  .nav.open { display: flex; }
  .menu-toggle { display: block; }
}
/* Hero区域 */
.hero { padding: 60px 0 80px; background: linear-gradient(145deg, #eef2ff 0%, #ffffff 100%); }
body.dark .hero { background: linear-gradient(145deg, #14142a, #1a1a2e); }
.hero .container { display: flex; align-items: center; gap: 40px; flex-wrap: wrap; }
.hero-text { flex: 1 1 400px; }
.hero-text h1 { font-size: clamp(2.2rem, 6vw, 3.8rem); font-weight: 700; line-height: 1.2; margin-bottom: 24px; }
.hero-text p { font-size: 1.2rem; opacity: 0.8; margin-bottom: 32px; max-width: 600px; }
.hero-visual { flex: 1 1 300px; background: rgba(240,192,64,0.1); border-radius: 60px; padding: 20px; }
.hero-visual svg { width: 100%; height: auto; }
/* 轮播 (banner) */
.carousel { overflow: hidden; position: relative; border-radius: 40px; margin: 40px 0; }
.carousel-track { display: flex; transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1); }
.carousel-item { min-width: 100%; padding: 40px 32px; background: linear-gradient(135deg, #f0c04020, #f8f9fc); border-radius: 40px; }
body.dark .carousel-item { background: #1c1c2e; }
.carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.6); backdrop-filter: blur(4px); border: none; border-radius: 40px; padding: 12px 18px; font-size: 24px; cursor: pointer; }
.carousel-btn.prev { left: 16px; }
.carousel-btn.next { right: 16px; }
/* 网格布局 */
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
.section-title { font-size: 2rem; font-weight: 600; margin: 60px 0 32px; position: relative; display: inline-block; }
.section-title::after { content: ''; display: block; width: 60px; height: 4px; background: #f0c040; border-radius: 8px; margin-top: 8px; }
/* 数字动画 */
.stat-number { font-size: 2.8rem; font-weight: 700; color: #f0c040; }
/* 页脚 */
.footer { background: #1a1a2e; color: #ccc; padding: 48px 0 24px; margin-top: 60px; }
body.dark .footer { background: #0a0a14; }
.footer a { color: #aaa; }
.footer a:hover { color: #f0c040; }
.footer .grid-4 { gap: 32px; }
/* 通用动画 */
.fade-up { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.faq-item { border-bottom: 1px solid rgba(0,0,0,0.05); padding: 20px 0; cursor: pointer; }
body.dark .faq-item { border-color: rgba(255,255,255,0.05); }
.faq-question { font-weight: 600; display: flex; justify-content: space-between; align-items: center; }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; opacity: 0.7; }
.faq-item.open .faq-answer { max-height: 400px; margin-top: 12px; }
/* 返回顶部 */
.back-top { position: fixed; bottom: 40px; right: 40px; background: #f0c040; color: #1a1a2e; border: none; border-radius: 60px; padding: 12px 18px; font-size: 24px; box-shadow: 0 8px 20px rgba(0,0,0,0.2); cursor: pointer; display: none; z-index: 200; }
.back-top.show { display: block; }
/* 文章卡片等 */
.article-card { border-radius: 28px; padding: 20px; background: #fff; }
body.dark .article-card { background: #1c1c2e; }
.tag { background: #f0c04020; border-radius: 30px; padding: 4px 14px; font-size: 0.8rem; }