Hero, icons, and gallery tiles

The homepage is the #header section rendered by components/layout.tsx when isLanding is true (route is / or /home): a cloud icon span, an h1 reading “Hi, I’m Photon, a gallery-style portfolio for Dune” built from site.title plus this demo’s tagline, the site description as a supporting paragraph, and a single .button.scrolly action pointing at /blog. Below it, inner content stacks a six-icon feature column and gallery-style project tiles that deep-link into /blog, /about, /search, and /archives. Images come from static/html5up/images/pic*.jpg — the same asset set upstream ships, just referenced from Dune content instead of hard-coded HTML.

Compare with html5up.net/photon: icon spans (fa-code, fa-bolt, …), wide CTAs, and the gallery entry rhythm should match. The .button.scrolly class is wired up in this port’s inline script to smooth-scroll to an in-page anchor rather than a real page navigation, matching upstream’s single-page feel even though the target here is a full route. Dune deviations that matter for dogfooding: projects live under /blog instead of static HTML files, search is server-side /api/search, and contact forms from the original HTML5 UP demo have no mail backend wired up.