/* 全体のベース設定 */
body {
  background-color: #050505;
  color: #e2e8f0;
  overflow-x: hidden;
}

/* スクロールアニメーション (FadeUp) */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.delay-200 { transition-delay: 0.2s; }
.delay-400 { transition-delay: 0.4s; }

/* スクロールバー非表示設定 */
.no-scrollbar::-webkit-scrollbar { 
  display: none; 
}
.no-scrollbar { 
  -ms-overflow-style: none; 
  scrollbar-width: none; 
}

/* -----------------------------------
   宇宙の演出用アニメーション (StarBackground)
----------------------------------- */
@keyframes animate-star-twinkle {
  0% { opacity: 0.1; transform: scale(0.8); }
  100% { opacity: 0.9; transform: scale(1.3); box-shadow: 0 0 10px rgba(255,255,255,0.8); }
}

@keyframes nebula-drift {
  0% { transform: scale(1) translate(0, 0); opacity: 0.8; }
  100% { transform: scale(1.1) translate(-2%, 3%); opacity: 1.2; }
}

@keyframes bgShoot {
  0% { transform: translate(0, 0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate(-100vw, 100vh); opacity: 0; }
}

.animate-star-twinkle {
  animation: animate-star-twinkle var(--duration, 3s) infinite alternate ease-in-out;
}

.animate-nebula-drift {
  animation: nebula-drift 25s infinite alternate ease-in-out;
}