/* Sparkols Vibrant Glass-Pop - Shared Design System */
.blob-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}

.blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
}

.blob-1 {
  top: -10%;
  right: -5%;
  width: 600px;
  height: 600px;
  background: linear-gradient(135deg, #ce48d5, #ff9a9e);
  animation: blob-float 10s infinite ease-in-out;
}

.blob-2 {
  bottom: 10%;
  left: -10%;
  width: 500px;
  height: 500px;
  background: linear-gradient(135deg, #a18cd1, #fbc2eb);
  animation: blob-float 12s infinite ease-in-out reverse;
}

.blob-3 {
  top: 40%;
  left: 30%;
  width: 300px;
  height: 300px;
  background: linear-gradient(135deg, #84fab0, #8fd3f4);
  opacity: 0.35;
  animation: blob-float 8s infinite ease-in-out 1s;
}

@keyframes blob-float {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(30px, 50px); }
}

.glass-panel {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.8);
}

.glass-card {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.65);
  transition: all 0.3s ease;
}

.glass-card:hover {
  transform: translateY(-6px);
  background: rgba(255, 255, 255, 0.75);
  border-color: rgba(206, 72, 213, 0.4);
  box-shadow: 0 12px 40px rgba(206, 72, 213, 0.15);
}

.text-gradient {
  background: linear-gradient(to right, #ce48d5, #6a11cb);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.timeline-line {
  background: linear-gradient(to bottom, #ce48d5 0%, #a18cd1 50%, #84fab0 100%);
}

.icon-3d {
  filter: drop-shadow(0 10px 8px rgba(0, 0, 0, 0.08));
}

/* Mobile menu overlay & panel */
#mobile-menu {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
#mobile-menu.open {
  opacity: 1;
  pointer-events: auto;
}
#mobile-menu-panel {
  transform: translateX(100%);
  transition: transform 0.3s ease-out;
}
#mobile-menu.open #mobile-menu-panel {
  transform: translateX(0);
}
body.menu-open {
  overflow: hidden;
}

/* Hero headline: 主标题自适应视口，两行始终不换行且不截断（通过限制最大字号保证第一行在容器内完整显示） */
.hero-headline {
  width: 100%;
  overflow: hidden;
}
.hero-headline-line {
  font-size: clamp(0.75rem, 3.2vw, 2.5rem);
  white-space: nowrap;
  display: block;
}
@media (min-width: 640px) {
  .hero-headline-line {
    font-size: clamp(1.25rem, 3.5vw, 2.75rem);
  }
}
@media (min-width: 1280px) {
  .hero-headline-line {
    font-size: clamp(2rem, 2.8vw, 2.65rem);
  }
}
