/* ===== 공통 hidden/visible ===== */
.anim-hidden {
  opacity: 0;
  transform: translateY(32px);
}
/* JS가 .anim-visible 추가하거나 GSAP이 직접 제어 */

/* ===== Keyframes ===== */

/* Star appear (별 등장) */
@keyframes starAppear {
  from { opacity: 0; transform: scale(0); }
  to   { opacity: 1; transform: scale(1); }
}

/* DrawSVG fallback */
@keyframes drawBranch {
  from { stroke-dashoffset: var(--len); }
  to   { stroke-dashoffset: 0; }
}

/* Nebula pulse */
@keyframes nebulaPulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.05); }
}

/* Scroll indicator bounce */
@keyframes scrollBounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(8px); }
}
.hero__scroll-line {
  animation: scrollBounce 1.6s ease-in-out infinite;
}

/* Star twinkle */
@keyframes twinkle {
  0%, 100% { opacity: 0.3; }
  50%      { opacity: 1; }
}

/* CTA button hover */
.cta__btn:hover, .upload__btn:hover, .hero__cta-main:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  transition: filter 0.2s ease, transform 0.2s ease;
}

/* How card hover */
.how__card {
  transition: border-color 0.3s ease, transform 0.3s ease;
}
.how__card:hover {
  border-color: rgba(192,132,252,0.3);
  transform: translateY(-4px);
}

/* Nav link hover */
.hero__nav-links a {
  transition: color 0.2s ease;
}
.hero__nav-links a:hover { color: var(--t-primary); }
