// variant-party.jsx — Variant B: PARTY MODE
// Bauhaus primary palette: pure white + bold red / blue / yellow / green.
// Clearly distinct from B-Side (dark neon) and Fiesta (warm cultural).

const PT = {
  bg: '#ffffff',         // pure white — stark contrast to B-Side dark and Fiesta cream
  ink: '#0a0a0a',        // neutral near-black
  inkDim: 'rgba(10,10,10,0.55)',
  pink: '#ff2d92',       // brand pink — kept
  hot: '#ff1f1f',        // bold primary red
  lemon: '#ffe600',      // pure yellow
  indigo: '#1a1aff',     // pure bold blue
  mint: '#00cc44',       // bold green
  hair: 'rgba(10,10,10,0.12)',
};
const ptDisplayFont = "'Big Shoulders Display', system-ui, sans-serif";
const ptMonoFont = "'JetBrains Mono', ui-monospace, monospace";
const ptSerifFont = "'Instrument Serif', serif";

// Confetti background — animated dots rising
function Confetti({ count = 36 }) {
  const dots = React.useMemo(() => Array.from({ length: count }).map((_, i) => {
    const palette = [PT.pink, PT.lemon, PT.indigo, PT.mint, PT.hot];
    return {
      left: Math.random() * 100,
      size: 6 + Math.random() * 14,
      delay: Math.random() * -20,
      dur: 9 + Math.random() * 8,
      color: palette[i % palette.length],
      shape: i % 3, // 0 dot, 1 square, 2 stripe
      rot: Math.random() * 360,
    };
  }), [count]);
  return (
    <div aria-hidden style={{ position: 'absolute', inset: 0, overflow: 'hidden', pointerEvents: 'none' }}>
      {dots.map((d, i) => (
        <div key={i} style={{
          position: 'absolute', bottom: -40,
          left: `${d.left}%`,
          width: d.shape === 2 ? d.size * 0.4 : d.size,
          height: d.shape === 2 ? d.size * 1.6 : d.size,
          background: d.color,
          borderRadius: d.shape === 0 ? '50%' : 2,
          transform: `rotate(${d.rot}deg)`,
          animation: `confetti-rise ${d.dur}s linear ${d.delay}s infinite`,
        }} />
      ))}
    </div>
  );
}

// A big pill button
function PTButton({ children, color = PT.ink, bg = PT.pink, href, big = false }) {
  return (
    <a href={href} style={{
      display: 'inline-flex', alignItems: 'center', gap: 10,
      fontFamily: ptDisplayFont, fontWeight: 800, fontStretch: '125%',
      fontSize: big ? 28 : 18, letterSpacing: '-0.01em',
      color, background: bg,
      padding: big ? '20px 36px' : '12px 22px', textDecoration: 'none',
      borderRadius: 999, border: `2px solid ${PT.ink}`,
      boxShadow: `${big ? 8 : 4}px ${big ? 8 : 4}px 0 0 ${PT.ink}`,
      transform: 'translateZ(0)',
    }}>{children}</a>
  );
}

// Sticker — rotated label
function PTSticker({ children, color = PT.lemon, rot = -6, size = 14 }) {
  return (
    <span style={{
      display: 'inline-block', background: color, color: PT.ink,
      fontFamily: ptMonoFont, fontWeight: 700, fontSize: size, letterSpacing: '0.12em', textTransform: 'uppercase',
      padding: '6px 12px', borderRadius: 4, border: `2px solid ${PT.ink}`,
      transform: `rotate(${rot}deg)`,
      boxShadow: `3px 3px 0 0 ${PT.ink}`,
    }}>{children}</span>
  );
}

// Nav
function PTNav() {
  return (
    <div style={{
      display: 'flex', alignItems: 'center', justifyContent: 'space-between',
      padding: '20px 40px', borderBottom: `3px solid ${PT.ink}`, background: PT.lemon, position: 'sticky', top: 0, zIndex: 10,
    }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
        <div style={{
          width: 36, height: 36, background: PT.ink, borderRadius: 8, display: 'grid', placeItems: 'center',
        }}>
          <VUBars count={4} color={PT.lemon} height={18} width={3} gap={2} />
        </div>
        <span style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 26, letterSpacing: '-0.02em' }}>kantahan<span style={{ color: PT.pink }}>.app</span></span>
      </div>
      <nav style={{ display: 'flex', gap: 26, fontFamily: ptDisplayFont, fontWeight: 700, fontStretch: '125%', fontSize: 18 }}>
        {[
          ['How it works', '#how'],
          ['Features', '#features'],
          ['Pricing', '#pricing'],
          ['Kantahan', '#kantahan'],
          ['FAQ', '#faq'],
        ].map(([t, h]) => (
          <a key={h} href={h} style={{ color: PT.ink, textDecoration: 'none' }}>{t}</a>
        ))}
      </nav>
      <PTButton href={SITE.display} bg={PT.pink} color={PT.ink}>▶ Launch</PTButton>
    </div>
  );
}

// HERO
function PTHero() {
  return (
    <section style={{
      position: 'relative', overflow: 'hidden',
      padding: '40px 40px 80px',
      background: `radial-gradient(ellipse at 20% 20%, rgba(255,45,146,0.18), transparent 50%), radial-gradient(ellipse at 80% 60%, rgba(58,38,255,0.16), transparent 55%), ${PT.bg}`,
    }}>
      <Confetti count={28} />

      {/* Stickers */}
      <div style={{ position: 'absolute', top: 70, right: 80, zIndex: 3 }}>
        <PTSticker color={PT.pink} rot={8} size={13}>★ FREE FOREVER</PTSticker>
      </div>
      <div style={{ position: 'absolute', top: 220, left: 60, zIndex: 3 }}>
        <PTSticker color={PT.mint} rot={-9} size={13}>NO APP! ✨</PTSticker>
      </div>
      <div style={{ position: 'absolute', bottom: 140, right: 120, zIndex: 3 }}>
        <PTSticker color={PT.indigo} rot={6} size={13}><span style={{ color: PT.lemon }}>50,000+ TRACKS</span></PTSticker>
      </div>

      <div style={{ position: 'relative', zIndex: 2, textAlign: 'center', maxWidth: 1100, margin: '0 auto' }}>
        <div style={{ fontFamily: ptMonoFont, fontSize: 12, letterSpacing: '0.3em', textTransform: 'uppercase', marginTop: 24, marginBottom: 14, color: PT.inkDim }}>
          ━━ a b-side · track 01 · home karaoke ━━
        </div>

        {/* Massive marquee headline */}
        <div style={{ marginBottom: 6 }}>
          <h1 style={{
            fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%',
            fontSize: 168, lineHeight: 0.85, letterSpacing: '-0.04em',
            margin: 0, color: PT.ink, textWrap: 'balance',
          }}>
            sing<span style={{ color: PT.pink, fontStyle: 'italic', display: 'inline-block', transform: 'rotate(-3deg)' }}>!</span>{' '}
            <span style={{ display: 'inline-block', position: 'relative' }}>
              <span style={{ color: PT.indigo }}>scream</span>
              <span style={{
                position: 'absolute', left: 0, right: 0, bottom: '8%', height: 14, background: PT.lemon,
                zIndex: -1, transform: 'skewX(-12deg)',
              }} />
            </span>{' '}
            cry.
          </h1>
        </div>

        <p style={{
          fontFamily: ptSerifFont, fontStyle: 'italic', fontSize: 32, lineHeight: 1.25,
          color: PT.ink, margin: '24px auto 32px', maxWidth: 760, textWrap: 'pretty',
        }}>
          Kantahan is browser-based karaoke. Plug a TV in, point your phone at the QR,
          and it's <span style={{ background: PT.pink, color: PT.lemon, padding: '0 8px', borderRadius: 4 }}>your turn at the mic.</span>
        </p>

        <div style={{ display: 'flex', gap: 18, justifyContent: 'center', flexWrap: 'wrap', marginBottom: 56 }}>
          <PTButton href={SITE.display} bg={PT.pink} big>▶ Start a session free</PTButton>
          <PTButton href="#how" bg={PT.bg} big>See how it works</PTButton>
        </div>

        {/* Live animated logo + screen mockup */}
        <div style={{
          position: 'relative', maxWidth: 900, margin: '0 auto',
          background: PT.ink, borderRadius: 18, padding: 18, border: `3px solid ${PT.ink}`,
          boxShadow: `12px 12px 0 0 ${PT.indigo}`,
        }}>
          <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', padding: '4px 10px 14px' }}>
            <div style={{ display: 'flex', gap: 7 }}>
              <span style={{ width: 12, height: 12, borderRadius: '50%', background: PT.hot }} />
              <span style={{ width: 12, height: 12, borderRadius: '50%', background: PT.lemon }} />
              <span style={{ width: 12, height: 12, borderRadius: '50%', background: PT.mint }} />
            </div>
            <span style={{ fontFamily: ptMonoFont, fontSize: 11, color: 'rgba(255,255,255,0.5)', letterSpacing: '0.2em' }}>{SITE.displayPath}</span>
            <span style={{ fontFamily: ptMonoFont, fontSize: 11, color: PT.mint, letterSpacing: '0.2em' }}>● LIVE</span>
          </div>
          <div style={{ background: '#0a0612', borderRadius: 10, padding: '40px 24px', position: 'relative', overflow: 'hidden' }}>
            <AnimatedLogo width={520} showMirror={true} />
            <div style={{ marginTop: 18, fontFamily: ptMonoFont, fontSize: 13, color: '#f5ecff', letterSpacing: '0.25em', textAlign: 'center', opacity: 0.7 }}>
              ▸ SCAN THE QR ▸ PICK A SONG ▸ HAND OFF THE MIC
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

// Big rotating marquee between sections
function PTMarquee({ text = 'KANTAHAN  ★  KANTAHAN  ✿  KANTAHAN  ●  KANTAHAN  ✦  ', bg = PT.ink, color = PT.lemon }) {
  const repeated = (text + text + text + text);
  return (
    <div style={{
      borderTop: `3px solid ${PT.ink}`, borderBottom: `3px solid ${PT.ink}`,
      background: bg, color, overflow: 'hidden', padding: '18px 0',
    }}>
      <div style={{
        whiteSpace: 'nowrap', display: 'inline-block',
        fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 56, letterSpacing: '-0.02em',
        animation: 'marquee 28s linear infinite',
      }}>
        {repeated}
      </div>
    </div>
  );
}

// How it works — three big colorful cards
function PTHow() {
  const steps = [
    { n: 1, t: 'Plug in.', body: `Open ${SITE.displayPath} on a laptop. Point a TV at it.`, mock: MockDisplay, color: PT.pink },
    { n: 2, t: 'Pass the phone.', body: 'Guests scan the QR. They pick songs from their pocket. No installs, no logins.', mock: MockRequest, color: PT.indigo },
    { n: 3, t: 'Lose your voice.', body: 'Auto-queue, singer rotation, banners for breaks. Sing till somebody cries.', mock: MockDJ, color: PT.mint },
  ];
  return (
    <section id="how" style={{ padding: '80px 40px', background: PT.bg, position: 'relative' }}>
      <div style={{ textAlign: 'center', marginBottom: 56 }}>
        <PTSticker color={PT.lemon} rot={-3}>HOW IT WORKS</PTSticker>
        <h2 style={{
          fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 96, lineHeight: 0.9,
          margin: '14px 0 8px', letterSpacing: '-0.03em',
        }}>
          Three steps. <span style={{ color: PT.pink, fontStyle: 'italic' }}>Zero homework.</span>
        </h2>
      </div>
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 24 }}>
        {steps.map((s, i) => (
          <div key={i} style={{
            background: s.color, color: PT.ink,
            border: `3px solid ${PT.ink}`, borderRadius: 18, padding: 22,
            boxShadow: `8px 8px 0 0 ${PT.ink}`,
            transform: `rotate(${(i - 1) * 0.8}deg)`,
            display: 'flex', flexDirection: 'column',
          }}>
            <div style={{
              fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 140, lineHeight: 0.8,
              letterSpacing: '-0.04em', color: PT.ink, opacity: 0.18,
            }}>{s.n}</div>
            <h3 style={{
              fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 52, lineHeight: 0.95,
              margin: '-30px 0 12px', letterSpacing: '-0.02em',
            }}>{s.t}</h3>
            <p style={{ fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 20, lineHeight: 1.35, margin: '0 0 18px' }}>{s.body}</p>
            <div style={{ borderRadius: 10, overflow: 'hidden', background: '#0a0612', border: `3px solid ${PT.ink}`, height: 200, marginTop: 'auto' }}>
              <s.mock />
            </div>
          </div>
        ))}
      </div>
    </section>
  );
}

// Features — chunky color blocks
function PTFeatures() {
  // Cycle palette per card
  const palette = [PT.pink, PT.indigo, PT.lemon, PT.mint, PT.hot, '#ffffff'];
  const inkOn = [PT.lemon, PT.lemon, PT.ink, PT.ink, PT.lemon, PT.ink];
  return (
    <section id="features" style={{ padding: '80px 40px', background: PT.ink, color: PT.bg, position: 'relative' }}>
      <div style={{ textAlign: 'center', marginBottom: 48 }}>
        <PTSticker color={PT.pink} rot={4}><span style={{ color: PT.lemon }}>EVERYTHING IN THE BOX</span></PTSticker>
        <h2 style={{
          fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 110, lineHeight: 0.88,
          margin: '14px 0 8px', letterSpacing: '-0.03em', color: PT.bg,
        }}>
          Built for <span style={{ color: PT.pink, fontStyle: 'italic' }}>actual parties.</span>
        </h2>
      </div>
      <div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 18 }}>
        {FEATURES.map((f, i) => (
          <div key={i} style={{
            background: palette[i % palette.length],
            color: inkOn[i % inkOn.length],
            border: `3px solid ${PT.ink}`, borderRadius: 16, padding: 24,
            boxShadow: `6px 6px 0 0 ${PT.bg}`,
            minHeight: 240,
          }}>
            <div style={{ fontFamily: ptMonoFont, fontWeight: 700, fontSize: 10, letterSpacing: '0.25em', marginBottom: 12, opacity: 0.8 }}>{f.monoTag}</div>
            <h3 style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 44, lineHeight: 0.95, margin: '0 0 8px', letterSpacing: '-0.02em' }}>{f.title}</h3>
            <div style={{ fontFamily: ptSerifFont, fontStyle: 'italic', fontSize: 18, marginBottom: 12 }}>{f.sub}</div>
            <p style={{ fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 16, lineHeight: 1.4, margin: 0 }}>{f.body}</p>
          </div>
        ))}
      </div>
    </section>
  );
}

// Pricing
function PTPricing() {
  return (
    <section id="pricing" style={{
      padding: '80px 40px', background: PT.lemon, position: 'relative', overflow: 'hidden',
      borderTop: `3px solid ${PT.ink}`, borderBottom: `3px solid ${PT.ink}`,
    }}>
      <div style={{ textAlign: 'center', marginBottom: 48 }}>
        <PTSticker color={PT.mint} rot={-4}>PRICING</PTSticker>
        <h2 style={{
          fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 112, lineHeight: 0.88,
          margin: '14px 0 6px', letterSpacing: '-0.03em',
        }}>
          Free for the home.<br /><span style={{ color: PT.pink }}>Pro for the room.</span>
        </h2>
      </div>
      <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 28, maxWidth: 1180, margin: '0 auto' }}>
        {[PRICING.free, PRICING.paid].map((tier, idx) => {
          const isPro = idx === 1;
          return (
            <div key={tier.name} style={{
              background: isPro ? PT.ink : PT.bg,
              color: isPro ? PT.bg : PT.ink,
              border: `3px solid ${PT.ink}`, borderRadius: 18, padding: 28,
              boxShadow: `10px 10px 0 0 ${isPro ? PT.pink : PT.indigo}`,
              transform: `rotate(${isPro ? 1 : -1}deg)`,
              position: 'relative',
            }}>
              {isPro && (
                <div style={{ position: 'absolute', top: -22, right: 24, transform: 'rotate(8deg)' }}>
                  <PTSticker color={PT.pink} rot={0}><span style={{ color: PT.lemon }}>FOR VENUES & BARS</span></PTSticker>
                </div>
              )}
              <div style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 70, lineHeight: 0.9, letterSpacing: '-0.03em' }}>{tier.name}</div>
              <div style={{ fontFamily: ptSerifFont, fontStyle: 'italic', fontSize: 22, margin: '6px 0 18px' }}>{tier.sub}</div>
              <div style={{ display: 'flex', alignItems: 'baseline', gap: 10, marginBottom: 14 }}>
                <span style={{
                  fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 100, lineHeight: 0.85,
                  color: isPro ? PT.pink : PT.ink,
                }}>{tier.price}</span>
                {!isPro && <span style={{ fontFamily: ptMonoFont, fontSize: 13 }}>/ forever-ish</span>}
              </div>
              <p style={{ fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 18, lineHeight: 1.4, margin: '0 0 22px' }}>{tier.blurb}</p>

              <ul style={{ listStyle: 'none', padding: 0, margin: '0 0 26px', display: 'grid', gap: 8 }}>
                {tier.features.map((f, i) => (
                  <li key={i} style={{
                    fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 17,
                    opacity: f.t ? 1 : 0.4,
                    textDecoration: f.t ? 'none' : 'line-through',
                    display: 'flex', alignItems: 'center', gap: 10,
                  }}>
                    <span style={{
                      display: 'inline-grid', placeItems: 'center', width: 22, height: 22,
                      background: f.t ? PT.pink : 'transparent', color: f.t ? PT.lemon : 'currentColor',
                      border: `2px solid ${isPro ? PT.bg : PT.ink}`,
                      borderRadius: 5, fontFamily: ptMonoFont, fontWeight: 700, fontSize: 13,
                    }}>{f.t ? '✓' : '×'}</span>
                    {f.label}
                  </li>
                ))}
              </ul>

              <PTButton href={tier.href} bg={isPro ? PT.pink : PT.indigo} color={isPro ? PT.ink : PT.lemon} big>
                {tier.cta} →
              </PTButton>
            </div>
          );
        })}
      </div>
    </section>
  );
}

// Kantahan meaning — playful, big
function PTKantahan() {
  return (
    <section id="kantahan" style={{
      padding: '90px 40px', background: PT.pink, color: PT.ink, position: 'relative', overflow: 'hidden',
      borderBottom: `3px solid ${PT.ink}`,
    }}>
      <Confetti count={18} />
      <div style={{ position: 'relative', zIndex: 2, maxWidth: 1200, margin: '0 auto', textAlign: 'center' }}>
        <PTSticker color={PT.lemon} rot={-5}>WHAT'S IN A NAME</PTSticker>
        <div style={{
          fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 240, lineHeight: 0.85,
          letterSpacing: '-0.04em', margin: '20px 0 8px', color: PT.ink,
        }}>
          kantahán
        </div>
        <div style={{ fontFamily: ptSerifFont, fontStyle: 'italic', fontSize: 30, marginBottom: 32, color: PT.ink, opacity: 0.85 }}>
          /kan·ta·hán/ &nbsp;·&nbsp; <span style={{ color: PT.indigo }}>Filipino, noun &amp; verb</span>
        </div>

        <p style={{
          fontFamily: ptSerifFont, fontStyle: 'italic', fontSize: 38, lineHeight: 1.3,
          margin: '0 auto 32px', maxWidth: 940, textWrap: 'balance',
        }}>
          "A Filipino party without karaoke is just <span style={{ background: PT.ink, color: PT.lemon, padding: '0 10px', borderRadius: 6 }}>a meeting with food.</span>"
        </p>

        <div style={{
          display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 18, maxWidth: 980, margin: '40px auto 0',
          textAlign: 'left',
        }}>
          {[
            { color: PT.lemon, t: 'Birthdays', body: 'The machine comes out before the cake. The cake comes out before the song is over.' },
            { color: PT.mint,  t: 'Tuesdays',  body: 'No occasion required. Someone said "kantahan tayo" and that was the occasion.' },
            { color: PT.indigo, ink: PT.lemon, t: '"My Way"', body: 'Always sung. Always emotional. Always at least one ballad past midnight.' },
          ].map((c, i) => (
            <div key={i} style={{
              background: c.color, color: c.ink || PT.ink,
              border: `3px solid ${PT.ink}`, borderRadius: 14, padding: 22,
              boxShadow: `5px 5px 0 0 ${PT.ink}`,
            }}>
              <div style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 38, lineHeight: 1, marginBottom: 10, letterSpacing: '-0.02em' }}>{c.t}</div>
              <p style={{ fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 17, lineHeight: 1.4, margin: 0 }}>{c.body}</p>
            </div>
          ))}
        </div>

        <p style={{
          fontFamily: ptDisplayFont, fontWeight: 700, fontStretch: '125%', fontSize: 24, marginTop: 40, maxWidth: 720, marginInline: 'auto',
          color: PT.ink,
        }}>
          We named the app after the <em>thing itself</em> — not the machine. Kantahan is what happens
          <strong style={{ background: PT.lemon, padding: '0 6px' }}> between </strong> the songs.
        </p>
      </div>
    </section>
  );
}

// FAQ
function PTFAQ() {
  const [open, setOpen] = React.useState(0);
  return (
    <section id="faq" style={{ padding: '80px 40px', background: PT.bg }}>
      <div style={{ textAlign: 'center', marginBottom: 40 }}>
        <PTSticker color={PT.indigo} rot={3}><span style={{ color: PT.lemon }}>FAQ</span></PTSticker>
        <h2 style={{
          fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 96, lineHeight: 0.9,
          margin: '14px 0 0', letterSpacing: '-0.03em',
        }}>
          You asked. <span style={{ color: PT.pink, fontStyle: 'italic' }}>We answered.</span>
        </h2>
      </div>
      <div style={{ maxWidth: 920, margin: '0 auto', display: 'grid', gap: 14 }}>
        {FAQS.map((item, i) => {
          const isOpen = open === i;
          const colors = [PT.lemon, PT.mint, PT.pink, PT.indigo, PT.hot, '#ffffff'];
          const inkOn = [PT.ink, PT.ink, PT.lemon, PT.lemon, PT.lemon, PT.ink];
          const bg = colors[i % colors.length];
          const ink = inkOn[i % inkOn.length];
          return (
            <div key={i} style={{
              background: bg, color: ink,
              border: `3px solid ${PT.ink}`, borderRadius: 14,
              boxShadow: `5px 5px 0 0 ${PT.ink}`,
              overflow: 'hidden',
            }}>
              <button onClick={() => setOpen(isOpen ? -1 : i)} style={{
                width: '100%', display: 'flex', justifyContent: 'space-between', alignItems: 'center',
                background: 'transparent', border: 'none', padding: '18px 24px', cursor: 'pointer',
                fontFamily: ptDisplayFont, fontWeight: 800, fontStretch: '125%', fontSize: 26,
                letterSpacing: '-0.01em', color: ink, textAlign: 'left',
              }}>
                <span>{item.q}</span>
                <span style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontSize: 36, lineHeight: 1 }}>{isOpen ? '−' : '+'}</span>
              </button>
              {isOpen && (
                <div style={{ padding: '0 24px 22px' }}>
                  <p style={{ fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 18, lineHeight: 1.5, margin: 0 }}>{item.a}</p>
                </div>
              )}
            </div>
          );
        })}
      </div>
    </section>
  );
}

// Big CTA strip
function PTCTA() {
  return (
    <section style={{ padding: '80px 40px', background: PT.ink, color: PT.bg, position: 'relative', overflow: 'hidden' }}>
      <Confetti count={20} />
      <div style={{ position: 'relative', zIndex: 2, textAlign: 'center' }}>
        <h2 style={{
          fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 130, lineHeight: 0.85,
          letterSpacing: '-0.04em', margin: 0,
        }}>
          ready to <span style={{ color: PT.pink, fontStyle: 'italic' }}>hold court?</span>
        </h2>
        <p style={{
          fontFamily: ptSerifFont, fontStyle: 'italic', fontSize: 28, margin: '20px auto 32px',
          maxWidth: 640, color: PT.bg, opacity: 0.85,
        }}>
          One URL. No installs. The TV does the rest.
        </p>
        <div style={{ display: 'flex', gap: 18, justifyContent: 'center', flexWrap: 'wrap' }}>
          <PTButton href={SITE.display} bg={PT.pink} big>▶ Start free</PTButton>
          <PTButton href="#pricing" bg={PT.lemon} big>Compare plans</PTButton>
        </div>
      </div>
    </section>
  );
}

// Footer
function PTFooter() {
  return (
    <footer style={{
      padding: '52px 40px 24px', background: PT.bg, color: PT.ink,
      borderTop: `3px solid ${PT.ink}`,
    }}>
      <div style={{ display: 'grid', gridTemplateColumns: '1.6fr 1fr 1fr 1.2fr', gap: 32, marginBottom: 36 }}>
        <div>
          <div style={{ background: PT.ink, padding: 18, borderRadius: 12, display: 'inline-block' }}>
            <AnimatedLogo width={240} showMirror={false} wordmarkColor={PT.bg} />
          </div>
          <p style={{ fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 17, marginTop: 16, maxWidth: 320, lineHeight: 1.4 }}>
            Karaoke for the living room, the bar, the rooftop — anywhere a TV and a wifi will reach.
          </p>
        </div>
        <div>
          <div style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 22, marginBottom: 10 }}>Product</div>
          <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'grid', gap: 6, fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 16 }}>
            <li><a href={SITE.display} style={{ color: PT.ink }}>Display</a></li>
            <li><a href={SITE.request} style={{ color: PT.ink }}>Request</a></li>
            <li><a href={SITE.dj} style={{ color: PT.ink }}>DJ console</a></li>
            <li><a href="#pricing" style={{ color: PT.ink }}>Pricing</a></li>
          </ul>
        </div>
        <div>
          <div style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 22, marginBottom: 10 }}>Hang out</div>
          <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'grid', gap: 6, fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 16 }}>
            <li><a href={SITE.mailto} style={{ color: PT.ink }}>{SITE.email}</a></li>
            <li><a href="#" style={{ color: PT.ink }}>github</a></li>
            <li><a href="#" style={{ color: PT.ink }}>instagram</a></li>
            <li><a href="#" style={{ color: PT.ink }}>x / twitter</a></li>
          </ul>
        </div>
        <div>
          <div style={{ fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 22, marginBottom: 10 }}>Pro launch list</div>
          <div style={{ display: 'flex', gap: 0, border: `3px solid ${PT.ink}`, borderRadius: 999, overflow: 'hidden', background: '#fff' }}>
            <input placeholder="your email" style={{
              flex: 1, background: 'transparent', border: 'none', padding: '12px 16px',
              fontFamily: ptDisplayFont, fontWeight: 600, fontSize: 15, color: PT.ink, outline: 'none',
            }} />
            <button style={{
              background: PT.pink, color: PT.ink, border: 'none',
              fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 16, padding: '0 18px', cursor: 'pointer',
            }}>JOIN</button>
          </div>
        </div>
      </div>

      <div style={{
        fontFamily: ptDisplayFont, fontWeight: 900, fontStretch: '125%', fontSize: 280, lineHeight: 0.85,
        letterSpacing: '-0.05em',
        color: 'transparent',
        WebkitTextStroke: `2px ${PT.ink}`,
        textAlign: 'center', margin: '0 0 10px', userSelect: 'none',
      }}>kantahan</div>

      <div style={{
        display: 'flex', justifyContent: 'space-between', alignItems: 'center',
        fontFamily: ptMonoFont, fontSize: 11, letterSpacing: '0.2em', color: PT.inkDim, textTransform: 'uppercase',
        borderTop: `2px solid ${PT.ink}`, paddingTop: 16, marginTop: 8,
      }}>
        <span>© 2026 kantahan.app · Made with sound &amp; soul</span>
        <span>Mabuhay ang kantahan 🎤</span>
      </div>
    </footer>
  );
}

function VariantParty() {
  return (
    <div style={{ background: PT.bg, color: PT.ink, minHeight: '100%' }}>
      <PTNav />
      <PTHero />
      <PTMarquee />
      <PTHow />
      <PTFeatures />
      <PTMarquee text="★ SCAN ★ SING ★ SCREAM ★ REPEAT ★ KEEP KARAOKE FREE ★ " bg={PT.pink} color={PT.ink} />
      <PTPricing />
      <PTKantahan />
      <PTFAQ />
      <PTCTA />
      <PTFooter />
    </div>
  );
}

window.VariantParty = VariantParty;
