/* ===== 全局 ===== */
* { margin:0; padding:0; box-sizing:border-box; }
body {
  font-family: -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  min-height: 100vh;
  color: #333;
  overflow-x: hidden;
}

/* ===== 背景轮播 ===== */
.bg-slideshow {
  position: fixed; inset: 0; z-index: -2;
}
.bg-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; animation: bgFade 16s infinite;
}
.bg-slide:nth-child(1) { animation-delay: 0s; }
.bg-slide:nth-child(2) { animation-delay: 4s; }
.bg-slide:nth-child(3) { animation-delay: 8s; }
.bg-slide:nth-child(4) { animation-delay: 12s; }

@keyframes bgFade {
  0%, 20% { opacity: 0; }
  25%, 95% { opacity: 1; }
  100% { opacity: 0; }
}

/* 背景遮罩：让前景内容清晰 */
.bg-overlay {
  position: fixed; inset: 0; z-index: -1;
  background: rgba(255,255,255,0.72);
}

/* ===== 爱心 ===== */
.hearts { position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.heart-float { position:absolute; bottom:-20px; color:rgba(255,105,180,0.25); font-size:18px; animation:floatUp linear infinite; }
@keyframes floatUp { to { transform:translateY(-110vh) rotate(360deg); opacity:0; } }

/* ===== 主容器：居中紧凑 ===== */
.page-wrapper {
  position: relative; z-index: 1;
  max-width: 960px;          /* 限制最大宽度，不撑太散 */
  margin: 0 auto;
  padding: 40px 20px 30px;
}

/* ===== 核心卡片 ===== */
.hero-card {
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.6);
  border-radius: 22px;
  padding: 36px 28px 32px;
  text-align: center;
  box-shadow: 0 12px 40px rgba(0,0,0,0.1);
  margin-bottom: 28px;
  animation: cardIn 0.8s ease-out;
}
@keyframes cardIn { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }

.avatars { display:flex; justify-content:center; align-items:center; gap:14px; margin-bottom:16px; }
.avatar {
  width:60px; height:60px; border-radius:50%;
  background: linear-gradient(135deg,#ff9a9e,#fecfef);
  display:flex; align-items:center; justify-content:center;
  font-size:28px; border:3px solid #fff; box-shadow:0 4px 12px rgba(0,0,0,0.1);
}
.heart-beat { font-size:24px; animation:beat 1.5s infinite; }
@keyframes beat { 0%,100%{transform:scale(1)} 50%{transform:scale(1.25)} }

.hero-title { font-size:26px; font-weight:800; color:#5e2760; margin-bottom:8px; }
.hero-sub { font-size:14px; line-height:1.7; color:#666; margin-bottom:20px; }

/* 倒计时 */
.countdown {
  background: linear-gradient(135deg, #667eea, #764ba2);
  padding: 16px 20px; border-radius: 14px;
  margin-bottom: 20px; color:#fff;
}
.countdown-label { font-size:13px; opacity:.85; margin-bottom:6px; }
.countdown-nums { display:flex; justify-content:center; gap:10px; align-items:baseline; }
.countdown-nums b { font-size:24px; background:rgba(255,255,255,0.2); padding:4px 10px; border-radius:8px; }
.countdown-nums small { font-size:12px; opacity:.8; }

.btn-enter {
  display:inline-block; padding:12px 32px;
  background:linear-gradient(135deg,#ff6b81,#ff4757);
  color:#fff; text-decoration:none; border-radius:28px;
  font-size:15px; font-weight:600;
  box-shadow:0 6px 18px rgba(255,71,87,0.35);
  transition:transform .3s;
}
.btn-enter:hover { transform:translateY(-3px); }

/* ===== 模块网格：3列2行紧凑 ===== */
.modules-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);  /* 3列 */
  gap: 14px;
  margin-bottom: 24px;
}

.module-card {
  display:flex; align-items:center; gap:12px;
  background:rgba(255,255,255,0.88);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.5);
  border-radius:14px;
  padding:16px 14px;
  text-decoration:none;
  transition:all .3s;
  box-shadow:0 4px 14px rgba(0,0,0,0.06);
}
.module-card:hover {
  transform:translateY(-4px);
  box-shadow:0 10px 24px rgba(0,0,0,0.12);
  background:#fff;
}
.module-icon {
  font-size:28px; flex-shrink:0;
  width:46px; height:46px;
  display:flex; align-items:center; justify-content:center;
  border-radius:12px;
}
.module-text h3 { font-size:14.5px; color:#444; margin-bottom:2px; }
.module-text p { font-size:11.5px; color:#888; line-height:1.4; }

/* 卡片左边框颜色 */
.module-card.purple { border-left:3px solid #e879f9; }
.module-card.pink   { border-left:3px solid #f9a8d4; }
.module-card.orange { border-left:3px solid #fcd34d; }
.module-card.green  { border-left:3px solid #86efac; }
.module-card.blue   { border-left:3px solid #93c5fd; }
.module-card.indigo { border-left:3px solid #a5b4fc; }

footer { text-align:center; padding:16px; color:#999; font-size:12px; }

/* ===== 响应式 ===== */
@media (max-width: 768px) {
  .page-wrapper { padding:20px 14px; }
  .hero-title { font-size:22px; }
  .modules-grid { grid-template-columns: 1fr 1fr; gap:10px; }
  .module-card { padding:12px 10px; }
  .module-text h3 { font-size:13px; }
  .module-text p { font-size:10.5px; }
}
@media (max-width: 480px) {
  .modules-grid { grid-template-columns: 1fr; }
}
