/* =============================================================
   BOUNTY — MUSIC CLIPPING CAMPAIGNS
   Uses the site's own classes plus creator-clipping.css
   (article-hero, definition-card, source-note, steps-list).
   Self-contained.
   ============================================================= */

const PHONE = "+35796441020";
const BOOK_URL = "https://calendly.com/cyrusgrecobusiness/30min";

function Nav() {
  const [scrolled, setScrolled] = React.useState(false);
  React.useEffect(() => {
    const on = () => setScrolled(window.scrollY > 12);
    window.addEventListener("scroll", on, { passive: true });
    on();
    return () => window.removeEventListener("scroll", on);
  }, []);
  return (
    <nav className={`nav${scrolled ? " scrolled" : ""}`}>
      <div className="wrap nav-inner">
        <a href="/" className="brand"><span>Bounty</span></a>
        <div className="nav-links">
          <a href="/#how">How it works</a>
          <a href="/#trusted">Why Bounty</a>
          <a href="/#dashboard">For Brands</a>
        </div>
      </div>
    </nav>
  );
}

function Footer() {
  return (
    <footer className="footer">
      <div className="wrap foot-inner">
        <div className="left">
          <div className="brand"><span>Bounty</span></div>
          <span className="copy">© {new Date().getFullYear()} Bounty</span>
        </div>
        <div className="foot-links">
          <a href="/#how">How it works</a>
          <a href="/#trusted">Why Bounty</a>
          <a href="/#dashboard">For Brands</a>
          <span className="foot-divider">·</span>
          <a href={"tel:" + PHONE} className="foot-contact-link">Text us</a>
        </div>
      </div>
    </footer>
  );
}

function FAQItem({ item, idx, openIdx, setOpenIdx }) {
  const isOpen = openIdx === idx;
  return (
    <div className={`faq-item${isOpen ? ' open' : ''}`}>
      <button className="faq-q" onClick={() => setOpenIdx(isOpen ? null : idx)} aria-expanded={isOpen}>
        <span className="faq-q-text">{item.q}</span>
        <span className="faq-toggle">{isOpen ? '−' : '+'}</span>
      </button>
      <div className="faq-a-wrap">
        <div className="faq-a-inner">
          <p>{item.a}</p>
        </div>
      </div>
    </div>
  );
}

const FAQ_ITEMS = [
  { q: 'What counts as source content for a music clipping campaign?', a: 'A release, a studio session, a live performance, a music video, or behind-the-scenes footage — anything with a real moment worth cutting into a clip.' },
  { q: 'Do clippers need a sync license or clearance?', a: 'You approve the source content as part of the brief, so clearance is handled before the bounty goes live, not left to individual clippers to figure out.' },
  { q: 'Is this only for major labels?', a: 'No. Independent artists and smaller labels run campaigns too — campaigns typically start at $5,000, with smaller pilots from $1,000 possible.' },
  { q: "How is this different from a label's own social team posting clips?", a: "An in-house team posts from one or two accounts. A clipping campaign puts the same source content in front of dozens of creators, each posting from their own account and earning based on the verified views they generate." },
];

function Page() {
  const [openIdx, setOpenIdx] = React.useState(null);

  return (
    <React.Fragment>
      <Nav />

      <header className="article-hero">
        <div className="wrap">
          <div className="eyebrow"><span className="dotbox" />For Artists & Labels</div>
          <h1 className="h1">Music clipping <span className="accent-bg">campaigns.</span></h1>
          <p className="lead">
            A release, a session, a live moment — cut into clips creators post from
            their own accounts, paid per verified view.
          </p>
        </div>
      </header>

      <div className="wrap">
        <div className="definition-card">
          <span className="lbl">Quick answer</span>
          <p>
            A <b>music clipping campaign</b> turns a release, studio session, or live
            moment into short-form clips that creators post across TikTok, Reels, and
            YouTube Shorts from their own accounts. You approve the source content and
            set the budget; creators earn based on the verified views their posts
            generate.
          </p>
        </div>
      </div>

      <section className="section tight dark">
        <div className="wrap">
          <div className="kicker-row">
            <div>
              <span className="eyebrow"><span className="dotbox" />Why it fits music</span>
              <h2 className="h2">This isn't a fringe <span className="it">tactic anymore.</span></h2>
            </div>
          </div>
          <div style={{ height: 24 }} />
          <p className="lead" style={{ maxWidth: 760 }}>
            Variety covered how clipping has reshaped music marketing directly — this
            isn't a repurposed ad-agency tactic borrowed for music, it's grown inside
            the industry it's now serving. Independent artists and labels are both
            already running campaigns; the model doesn't require major-label budget
            to work.
          </p>
          <p className="source-note">Source: Variety, on clipping in the music industry (2026).</p>
        </div>
      </section>

      <section className="section" id="how">
        <div className="wrap">
          <div className="kicker-row">
            <div>
              <span className="eyebrow"><span className="dotbox" />How it works</span>
              <h2 className="h2">From the session to the <span className="it">feed.</span></h2>
            </div>
          </div>
          <div style={{ height: 56 }} />
          <div className="steps-list">
            <div className="step-row">
              <div className="step-row-n">01</div>
              <h3>Send the moment</h3>
              <p>A release, a studio session, a live clip, a music video — approved and cleared for the campaign.</p>
            </div>
            <div className="step-row">
              <div className="step-row-n">02</div>
              <h3>The bounty goes live</h3>
              <p>Clippers discover it and start cutting short-form clips from what you've approved.</p>
            </div>
            <div className="step-row">
              <div className="step-row-n">03</div>
              <h3>Clips post everywhere</h3>
              <p>TikTok, Reels, YouTube Shorts — from creators' own accounts, not yours.</p>
            </div>
            <div className="step-row">
              <div className="step-row-n">04</div>
              <h3>You pay per verified view</h3>
              <p>No flat placement fee. The budget spends exactly as far as the clips actually reach.</p>
            </div>
          </div>
        </div>
      </section>

      <section className="section" id="faq">
        <div className="wrap">
          <div className="kicker-row">
            <div>
              <span className="eyebrow"><span className="dotbox" />FAQ</span>
              <h2 className="h2">Questions, <span className="it">answered.</span></h2>
            </div>
          </div>
          <div className="faq-list">
            {FAQ_ITEMS.map((it, i) => (
              <FAQItem key={i} item={it} idx={i} openIdx={openIdx} setOpenIdx={setOpenIdx} />
            ))}
          </div>
        </div>
      </section>

      <section className="section">
        <div className="wrap">
          <div className="eyebrow"><span className="dotbox" />Next step</div>
          <h2 className="h2">Send the track. We'll build the <span className="it">brief.</span></h2>
          <p className="lead">No pitch deck, no commitment — just a 30-minute call about what a campaign would look like.</p>
          <div style={{ height: 8 }} />
          <a className="btn btn-primary btn-lg" href={BOOK_URL} target="_blank" rel="noreferrer">
            <span className="dot" />Book a call<span className="arrow">&rarr;</span>
          </a>
        </div>
      </section>

      <Footer />
    </React.Fragment>
  );
}

ReactDOM.createRoot(document.getElementById("root")).render(<Page />);
