26 Oct 2026
How this site is built
Static pages, one accent colour, CSS motion without scripts, no downloaded fonts, one inline script.
Astro builds one HTML file per page and language; nothing runs on a server.
Colour
Paper, ink and one accent, red. Every colour is declared once for both themes with light-dark(), and a test checks every text and background pair for WCAG AA contrast in each.
Motion
Two kinds, one easing: a line is drawn (the elevation profile of a report, the icon of the current tab), a block settles (sections entering the viewport, the words of the name, the page on navigation). All in CSS: scroll-driven animations and view transitions. No script runs for them; under reduced motion none of them run. Only opacity and transforms are animated, so nothing changes the layout.
Weight
No web fonts. A text page is one HTML file, one stylesheet and one inline script of under a kilobyte for the theme: three requests with the icon, about 10 KB. Photographs are resized and re-encoded to WebP at build time; recordings load only when played.
Content
A project, a report, a note: one Markdown file, the facts in the front matter, checked against a schema at build time. A page is one file whose path is its address.
Checks
Before every push: lint, types, unit and component tests, the build, checks of the built pages, browser tests at four widths, and Lighthouse on a throttled phone against a budget.