// Hero — phone tilts gently (capped, content always readable), floating stat chips
function Hero() {
  const [phase, setPhase] = React.useState(0);
  const [tilt, setTilt] = React.useState(0);
  const [parallax, setParallax] = React.useState(0);
  const heroRef = React.useRef(null);

  React.useEffect(() => {
    const id = setInterval(() => setPhase((p) => (p + 1) % 4), 4500);
    return () => clearInterval(id);
  }, []);

  React.useEffect(() => {
    const onScroll = () => {
      if (!heroRef.current) return;
      const r = heroRef.current.getBoundingClientRect();
      const t = Math.max(0, Math.min(1, 1 - r.bottom / (window.innerHeight + r.height)));
      // gentle tilt only — capped so content stays readable
      setTilt(-6 + t * 12); // -6° to +6°
    };
    const onMove = (e) => {
      const x = (e.clientX / window.innerWidth - 0.5) * 2;
      const y = (e.clientY / window.innerHeight - 0.5) * 2;
      setParallax(y * 4);
      // subtle horizontal nudge, capped
      setTilt((prev) => Math.max(-8, Math.min(8, prev * 0.95 + x * 0.4)));
    };
    onScroll();
    window.addEventListener("scroll", onScroll, { passive: true });
    window.addEventListener("mousemove", onMove);
    return () => {
      window.removeEventListener("scroll", onScroll);
      window.removeEventListener("mousemove", onMove);
    };
  }, []);

  const screens = ["home", "quiz", "result", "profile"];

  return (
    <section className="hero" id="top" ref={heroRef}>
      <div className="blob" style={{ background: "var(--o-200)", width: 460, height: 460, top: -120, left: -120 }}/>
      <div className="blob" style={{ background: "var(--g-300)", width: 380, height: 380, bottom: -120, right: -100, animationDelay: "3s" }}/>
      <div className="container hero-grid">
        <div>
          <div className="eyebrow">
            <span className="dot"/>
            Нова українська підготовка до НМТ
          </div>
          <h1 className="h-display">
            НМТ без стресу<br/>
            <span className="accent">Грай і готуйся</span>
          </h1>
          <p className="h-lede">
            20&nbsp;000+ питань, адаптивні тести, гейміфікація як у твоїх улюблених іграх.
            Створено діючими військовими — для нового покоління України.
          </p>
          <div className="cta-row">
            <a href="#download" className="btn btn-orange">
              Грати безкоштовно
              <Icon name="arrow" size={18}/>
            </a>
            <a href="#quiz" className="btn btn-ghost">
              Спробувати зараз
            </a>
          </div>
          <div className="hero-meta" style={{ alignItems: "center" }}>
            <span style={{ display: "inline-flex", alignItems: "center", gap: 8 }}>
              <span style={{ width: 28, height: 28, borderRadius: 9, background: "rgba(249,115,22,0.12)", color: "#F97316", display: "grid", placeItems: "center", flexShrink: 0 }}>
                <Icon name="book" size={15}/>
              </span>
              <span><b>12</b> предметів до підготовки</span>
            </span>
            <span style={{ display: "inline-flex", alignItems: "center", gap: 8 }}>
              <span style={{ width: 28, height: 28, borderRadius: 9, background: "rgba(59,130,246,0.12)", color: "#3B82F6", display: "grid", placeItems: "center", flexShrink: 0 }}>
                <Icon name="bolt" size={15}/>
              </span>
              <span><b>7+</b> варіантів проходження тестів</span>
            </span>
            <span style={{ display: "inline-flex", alignItems: "center", gap: 8 }}>
              <span style={{ width: 28, height: 28, borderRadius: 9, background: "rgba(202,138,4,0.14)", color: "#CA8A04", display: "grid", placeItems: "center", flexShrink: 0 }}>
                <Icon name="star" size={15}/>
              </span>
              <span><b>4.9</b> в App Store</span>
            </span>
          </div>
        </div>

        <div style={{ display: "grid", placeItems: "center", position: "relative" }}>
          <div style={{ position: "absolute", inset: 0, display: "grid", placeItems: "center" }}>
            <div style={{
              width: 380, height: 380, borderRadius: "9999px",
              border: "1px dashed rgba(15,23,42,0.12)",
              animation: "blob 20s ease-in-out infinite",
            }}/>
          </div>
          <PhoneMockup screen={screens[phase]} rotate={tilt} parallax={parallax}/>

          <FloatChip top="6%" left="-6%" rotate={-5} float="floatA"
            iconBg="#FFEDD5" iconColor="#F97316" iconName="flame"
            label="Стрік" value="7 днів 🔥"/>

          <FloatChip top="22%" right="-8%" rotate={4} float="floatB"
            iconBg="#DBEAFE" iconColor="#3B82F6" iconName="bolt"
            label="XP сьогодні" value="+120"/>

          <FloatChip top="46%" left="-12%" rotate={-3} float="floatC"
            iconBg="#FEF3C7" iconColor="#CA8A04" iconName="star"
            label="Рівень" value="Літописець"/>

          <FloatChip top="58%" right="-10%" rotate={5} float="floatA"
            iconBg="#DCFCE7" iconColor="#22C55E" iconName="target"
            label="Точність" value="82%"/>

          <FloatChip bottom="14%" left="-4%" rotate={-4} float="floatB"
            iconBg="#FFEDD5" iconColor="#F97316" iconName="book"
            label="Питань" value="2 460"/>

          <FloatChip bottom="2%" right="-2%" rotate={3} float="floatC"
            iconBg="#FCE7F3" iconColor="#DB2777" iconName="trophy"
            label="Досягнень" value="14"/>
        </div>
      </div>

      {/* marquee strip */}
      <div className="container" style={{ marginTop: 56 }}>
        <div className="marquee">
          <div className="marquee-track">
            {[...Array(2)].map((_, k) => (
              <React.Fragment key={k}>
                <span><i/>УКРАЇНСЬКА МОВА</span>
                <span><i/>МАТЕМАТИКА</span>
                <span><i/>ІСТОРІЯ УКРАЇНИ</span>
                <span><i/>АНГЛІЙСЬКА</span>
                <span><i/>БІОЛОГІЯ</span>
                <span><i/>ХІМІЯ</span>
                <span><i/>ФІЗИКА</span>
                <span><i/>ГЕОГРАФІЯ</span>
                <span><i/>20 000+ ПИТАНЬ</span>
              </React.Fragment>
            ))}
          </div>
        </div>
      </div>
    </section>
  );
}

function FloatChip({ top, bottom, left, right, rotate = 0, float = "floatA", iconBg, iconColor, iconName, label, value }) {
  return (
    <div className="float-chip" style={{
      top, bottom, left, right,
      "--rot": rotate + "deg",
      animation: `${float} 6s ease-in-out infinite`,
    }}>
      <span className="chip-icon" style={{ background: iconBg, color: iconColor }}>
        <Icon name={iconName}/>
      </span>
      <div>
        <div className="chip-label">{label}</div>
        <div className="chip-value">{value}</div>
      </div>
    </div>
  );
}
window.Hero = Hero;
