/* =========================================================
   THEME: FLASH IMPACT 3D (PC ORIGINAL + SAFEMODE)
   ========================================================= */

/* ---------------------------------------------------------
   1. セクション初期状態（PCオリジナルの3D回転＆トランスフォーム）
   --------------------------------------------------------- */
main section {
  opacity: 0;
  filter: blur(20px);
  /* PCオリジナルの変形数値を完全保持 */
  transform: perspective(1000px) rotateX(-35deg) scale(0.7) translateY(150px);
  transition: 
    opacity 0.9s cubic-bezier(0.19, 1, 0.22, 1),
    filter 0.9s cubic-bezier(0.19, 1, 0.22, 1),
    transform 1s cubic-bezier(0.19, 1, 0.22, 1);
  will-change: transform, opacity, filter;
  /* スマホ等で大きな3D回転時に画面外へスクロールバーが出るのを防ぐ安全枠 */
  max-width: 100vw;
  box-sizing: border-box;
}

main section:nth-child(even) {
  transform: perspective(1000px) rotateY(35deg) scale(0.7) translateX(-200px);
}

/* ---------------------------------------------------------
   2. 発火時（PCオリジナルのドカンと進入）
   --------------------------------------------------------- */
main section.is-visible {
  opacity: 1;
  filter: blur(0px);
  transform: perspective(1000px) rotateX(0deg) rotateY(0deg) scale(1) translate(0, 0);
}

/* タイトルの跳ね上がり（PCオリジナル） */
main section.is-visible h1 {
  animation: bounce-title 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}

/* カードの連続ポップアップ（PCオリジナル） */
main section.is-visible ul > li {
  animation: pop-cards 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}

main section.is-visible ul > li:nth-child(1) { animation-delay: 0.1s; }
main section.is-visible ul > li:nth-child(2) { animation-delay: 0.2s; }
main section.is-visible ul > li:nth-child(3) { animation-delay: 0.3s; }
main section.is-visible ul > li:nth-child(4) { animation-delay: 0.4s; }

@keyframes bounce-title {
  0% { transform: scale(0.3) translateY(-100px); opacity: 0; }
  70% { transform: scale(1.1) translateY(10px); opacity: 1; }
  100% { transform: scale(1) translateY(0); }
}

@keyframes pop-cards {
  0% { transform: scale(0) rotate(-10deg); opacity: 0; }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* ---------------------------------------------------------
   3. 画面全体ネオンフラッシュ（PCオリジナル）
   --------------------------------------------------------- */
#section-flash-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: radial-gradient(circle, rgba(0, 243, 255, 0.4) 0%, rgba(255, 0, 255, 0) 70%);
  pointer-events: none;
  opacity: 0;
  z-index: 9999;
  transition: opacity 0.3s ease-out;
}

#section-flash-overlay.flash {
  opacity: 1;
}