// Heavens Shot - Variation B: 稲妻ライブバトル (Lightning Battle)
// More dramatic: dark navy background, glowing neon accents, lightning everywhere

const VariantB = () => {
  const [countTrigger, setCountTrigger] = React.useState(0);
  const [selectedCourse, setSelectedCourse] = React.useState(1);
  const [slotRunning, setSlotRunning] = React.useState(true);

  React.useEffect(() => {
    const io = new IntersectionObserver((entries) => {
      entries.forEach(e => {
        if (e.isIntersecting) setCountTrigger(v => v + 1);
      });
    }, { threshold: 0.4 });
    document.querySelectorAll('.count-target-b').forEach(el => io.observe(el));
    return () => io.disconnect();
  }, []);

  const courses = [
    { price: '1万', prize: 20, label: 'LIGHT', sub: 'お試しプレイ' },
    { price: '5万', prize: 100, label: 'STANDARD', sub: 'バランス型', popular: true },
    { price: '10万', prize: 200, label: 'EXTREME', sub: '一撃特化' },
  ];

  return (
    <div className="variant-root variant-b">
      {/* ============ HERO ============ */}
      <section className="hero-b">
        <div className="hero-b-bg">
          {/* stars */}
          <div className="starfield">
            {Array.from({ length: 80 }).map((_, i) => (
              <div key={i} className="star" style={{
                left: `${Math.random() * 100}%`,
                top: `${Math.random() * 100}%`,
                width: 1 + Math.random() * 2 + 'px',
                height: 1 + Math.random() * 2 + 'px',
                animationDelay: `${Math.random() * 3}s`,
                opacity: 0.3 + Math.random() * 0.7,
              }} />
            ))}
          </div>
          <GodRays opacity={0.3} count={9} hue="sky" />
          <Sparkles count={25} size={10} color="#8EDCFF" />
          {/* lightning overlays */}
          <div className="hero-b-lightning">
            <Lightning variant="multi" intensity={0.7} />
          </div>
        </div>

        <div className="hero-b-content">
          <div className="hero-b-eyebrow">
            <div className="eyebrow-box">
              <div className="eyebrow-jp">天界の一撃</div>
              <div className="eyebrow-en">HEAVEN&apos;S SHOT</div>
            </div>
          </div>

          <h1 className="hero-b-title">
            <span className="hero-b-kana">ヘブンショット</span>
            <span className="hero-b-tagline">参加の流れ</span>
          </h1>

          <div className="hero-b-stats">
            <div className="hero-b-stat">
              <div className="hero-b-stat-num">
                <CountUp to={3} duration={900} trigger={countTrigger} />
                <span className="hero-b-stat-unit">STEP</span>
              </div>
              <div className="hero-b-stat-label">シンプルな流れ</div>
            </div>
            <div className="hero-b-stat-divider" />
            <div className="hero-b-stat">
              <div className="hero-b-stat-num">
                ×<CountUp to={3} duration={900} trigger={countTrigger} />
                <span className="hero-b-stat-unit">OVER</span>
              </div>
              <div className="hero-b-stat-label">配当で賞金獲得</div>
            </div>
            <div className="hero-b-stat-divider" />
            <div className="hero-b-stat">
              <div className="hero-b-stat-num lightning-text">
                <CountUp to={200} duration={1400} trigger={countTrigger} />
                <span className="hero-b-stat-unit">万円</span>
              </div>
              <div className="hero-b-stat-label">最大賞金</div>
            </div>
          </div>

          <div className="hero-b-chars">
            <div className="hero-b-char hb-char-1">
              <CharacterBadge src="assets/arquel.jpg" size={130} glow="gold" />
            </div>
            <div className="hero-b-char hb-char-2">
              <CharacterBadge src="assets/harpina.jpg" size={150} glow="sky" />
            </div>
            <div className="hero-b-char hb-char-3">
              <CharacterBadge src="assets/celephim.jpg" size={130} glow="sky" />
            </div>
          </div>

          <div className="scroll-cue">
            <span>SCROLL</span>
            <svg viewBox="0 0 20 30" width={14} height={22}>
              <path d="M10 2 L10 22 M4 16 L10 24 L16 16" stroke="#FFD87A" strokeWidth="2" fill="none" strokeLinecap="round" strokeLinejoin="round"/>
            </svg>
          </div>
        </div>
      </section>

      {/* ============ STEPS TIMELINE ============ */}
      <section className="steps-b">
        <div className="steps-b-header">
          <div className="section-chip-b">THE PROCESS</div>
          <h2 className="steps-b-title">
            <span className="bracket">「</span>
            天界への3ステップ
            <span className="bracket">」</span>
          </h2>
        </div>

        <div className="timeline">
          <div className="timeline-line" />

          {/* STEP 1 */}
          <div className="timeline-step">
            <div className="timeline-marker">
              <div className="marker-ring">
                <span>01</span>
              </div>
            </div>
            <div className="timeline-content">
              <div className="tl-card">
                <div className="tl-card-corner" />
                <div className="tl-card-header">
                  <div className="tl-step-label">STEP 01</div>
                  <h3 className="tl-step-title">プランを選んで申請</h3>
                </div>
                <div className="tl-card-body">
                  <div className="tl-char">
                    <CharacterBadge src="assets/arquel.jpg" size={120} glow="gold" />
                  </div>
                  <div className="tl-info">
                    <p>1万 / 5万 / 10万 の3コースから、挑む額を選択します。</p>
                    <div className="tl-chips">
                      <span className="tl-chip">1万円</span>
                      <span className="tl-chip">5万円</span>
                      <span className="tl-chip">10万円</span>
                    </div>
                    <p className="tl-note">※参加費はコースと同額</p>
                  </div>
                </div>
              </div>
            </div>
          </div>

          {/* STEP 2 */}
          <div className="timeline-step reverse">
            <div className="timeline-marker">
              <div className="marker-ring">
                <span>02</span>
              </div>
            </div>
            <div className="timeline-content">
              <div className="tl-card">
                <div className="tl-card-corner" />
                <div className="tl-card-header">
                  <div className="tl-step-label">STEP 02</div>
                  <h3 className="tl-step-title">ボーナスBUYで勝負</h3>
                </div>
                <div className="tl-card-body">
                  <div className="tl-char">
                    <CharacterBadge src="assets/harpina.jpg" size={120} glow="sky" />
                  </div>
                  <div className="tl-info">
                    <p>同じ金額でスロットのボーナスBUYを購入。即スピン開始！</p>
                    <div className="slot-showcase-b">
                      <SlotReel running={slotRunning} size={90} />
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>

          {/* STEP 3 */}
          <div className="timeline-step">
            <div className="timeline-marker">
              <div className="marker-ring impact">
                <span>03</span>
                <div className="marker-spark" />
              </div>
            </div>
            <div className="timeline-content">
              <div className="tl-card impact-card">
                <div className="tl-card-corner" />
                <div className="tl-card-lightning">
                  <Lightning variant="single" intensity={0.5} />
                </div>
                <div className="tl-card-header">
                  <div className="tl-step-label impact-label">FINAL</div>
                  <h3 className="tl-step-title">
                    <span className="impact-text">配当×3超え</span>で賞金GET
                  </h3>
                </div>
                <div className="tl-card-body">
                  <div className="tl-char">
                    <CharacterBadge src="assets/celephim.jpg" size={120} glow="gold" />
                  </div>
                  <div className="tl-info">
                    <p>BUY金額の<strong className="lightning-text">3倍を超えた配当</strong>で、そのまま賞金を獲得！</p>
                    <div className="impact-mult count-target-b">
                      <span className="mult-x-b">×</span>
                      <span className="mult-num-b"><CountUp to={3} duration={700} trigger={countTrigger} /></span>
                      <span className="mult-label-b">OVER</span>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </section>

      {/* ============ COURSES (BATTLE CARDS) ============ */}
      <section className="courses-b">
        <div className="courses-b-bg">
          <Sparkles count={25} size={6} color="#FFE54D" />
        </div>
        <div className="courses-b-header">
          <div className="section-chip-b">SELECT YOUR COURSE</div>
          <h2 className="steps-b-title">
            挑む額で、<span className="lightning-text">賞金が決まる</span>
          </h2>
        </div>

        <div className="battle-grid">
          {courses.map((c, i) => (
            <button
              key={i}
              className={`battle-card ${selectedCourse === i ? 'selected' : ''} ${c.popular ? 'popular' : ''}`}
              onClick={() => setSelectedCourse(i)}
            >
              {c.popular && <div className="battle-pop">★ POPULAR</div>}
              <div className="battle-card-glow" />
              <div className="battle-card-tier">{c.label}</div>
              <div className="battle-card-entry">
                <span className="entry-lbl">参加費</span>
                <span className="entry-val">{c.price}円</span>
              </div>
              <div className="battle-lightning-sep">
                <svg viewBox="0 0 80 20" width={80} height={20}>
                  <path d="M5 10 L30 10 M50 10 L75 10 M38 3 L32 17 L42 10 L38 17" stroke="#FFD87A" strokeWidth="2" fill="none" strokeLinecap="round"/>
                </svg>
              </div>
              <div className="battle-card-prize">
                <span className="prize-lbl">MAX</span>
                <span className="prize-val count-target-b">
                  <CountUp to={c.prize} duration={1200} trigger={countTrigger + selectedCourse + i} />
                </span>
                <span className="prize-u">万円</span>
              </div>
              <div className="battle-sub">{c.sub}</div>
              <div className="battle-select-hint">
                {selectedCourse === i ? '✓ SELECTED' : 'TAP TO SELECT'}
              </div>
            </button>
          ))}
        </div>

        <div className="duo-chars-b">
          <div className="duo-left-b">
            <CharacterBadge src="assets/lilicia.jpg" size={130} glow="crimson" />
          </div>
          <div className="duo-right-b">
            <CharacterBadge src="assets/lucifire.jpg" size={130} glow="crimson" />
          </div>
        </div>
      </section>

      {/* ============ FINAL CTA ============ */}
      <section className="final-cta-b">
        <div className="cta-b-bg">
          <div className="cta-b-lightning">
            <Lightning variant="multi" intensity={0.8} />
          </div>
          <Sparkles count={30} size={10} />
        </div>
        <div className="cta-b-inner">
          <div className="cta-b-warn">READY?</div>
          <h2 className="cta-b-title">
            天界の一撃を、<br/>
            <span className="lightning-text-big">掴み取れ。</span>
          </h2>
          <p className="cta-b-line">
            選択中: <strong>{courses[selectedCourse].price}円コース</strong>
            <span className="cta-b-sep">/</span>
            最大賞金 <strong className="lightning-text">{courses[selectedCourse].prize}万円</strong>
          </p>
          <button className="cta-b-button">
            <span className="cta-b-btn-shine" />
            <span className="cta-b-btn-text">
              <span className="cta-b-btn-jp">参加申請する</span>
              <span className="cta-b-btn-en">ENTER THE BATTLE</span>
            </span>
            <svg viewBox="0 0 24 24" width={22} height={22} style={{ position: 'relative' }}>
              <path d="M5 12 L19 12 M13 6 L19 12 L13 18" stroke="currentColor" strokeWidth="2.5" fill="none" strokeLinecap="round" strokeLinejoin="round"/>
            </svg>
          </button>
          <p className="cta-b-fineprint">※参加費は選択コースと同額 / 配当3倍超えで賞金獲得</p>
        </div>
      </section>
    </div>
  );
};

window.VariantB = VariantB;
