feat(site): 🛬 PCBJam landing page — waitlist, sections, Tailwind

Replace the placeholder homepage with the PCBJam waitlist conversion page
(13 sections from the copy spec), shared chrome, and a real email-capture
backend, keeping the site zero-runtime-JS / zero-web-font.

- Tailwind v4 via @tailwindcss/postcss (the Vite plugin breaks on Astro 6
  rolldown-vite); Preflight skipped; brand tokens in :root + @theme inline.
- Waitlist: /api/waitlist serverless route (prerender=false) + Resend, with
  dual JSON/303 responses; WaitlistForm progressive enhancement bound on
  astro:page-load (survives ClientRouter swaps); honeypot + validation.
- New components (Icon, Placeholder, DemoVideo, SectionBand, Chip, EECredit,
  StatBar, Pillar, Step, CheckItem, WaitlistForm) + 13 section components.
- Redesigned Header (sticky, mobile menu, CTA) + 4-col Footer (KiCad
  attribution); BaseLayout gains full-bleed mode + OG/canonical meta.
- Assets scaffolded with marked placeholders; EE/generic/client SVGs copied.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Viktor Vaczi 2026-06-07 14:59:13 +02:00
commit 7f9dbdd068
61 changed files with 3459 additions and 116 deletions

View file

@ -0,0 +1,10 @@
<svg width="10" height="11" viewBox="0 0 10 11" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_217_4333)">
<path d="M9.93997 5.04832C9.93997 7.79377 7.71576 10.018 4.9703 10.018C2.22485 10.018 0.000488281 7.79377 0.000488281 5.04832C0.000488281 2.30286 2.22485 0.0786133 4.9703 0.0786133C7.71576 0.0786133 9.93997 2.30286 9.93997 5.04832Z" fill="#0E0C0C"/>
</g>
<defs>
<clipPath id="clip0_217_4333">
<rect width="10" height="10" fill="white" transform="translate(0 0.0786133)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 532 B