Next.js 15 on the App Router, TypeScript strict, Tailwind, deployed to Cloudflare Workers. The hero is an interactive particle portrait on a raw HTML5 canvas - no Three.js - with the particle count scaled by device so it holds 60fps on a mid-range phone. Scroll work is Framer Motion, with GSAP where it needs it.