The about modal is lazily mounted, so the credits and contact address are
not in the server-rendered HTML and no crawler ever sees them. Authorship
therefore goes in the head, where it is always present: a meta author, a
rel=author link to ruisaraiva.dev, and SoftwareApplication JSON-LD.
The structured data names Rui as author and Augusto and Miguel as
contributors, because the modal credits three people and the markup should
not tell a machine a tidier story than the page tells a reader.
Also adds public/llms.txt: accepted input formats, the 310px and 512px
minimums, and exactly what the zip contains, including that favicon.svg
only appears for SVG input and manifest.json only with the PWA option. It
is written from utils/favicon.ts and the route handler rather than from
memory. Note it is a static file, so it is the one thing here that can
drift from the sizes it documents.
Two hardcoded favycon.vercel.app strings become the SITE_URL constant the
rest of the file now uses.