# Colophon

How this site grows

Static HTML, hand-written CSS, and a few small modules. No framework, no trackers, no requests to anyone else's servers.

01 Stack

Small on purpose

Generator
Python and Jinja, 900 lines, writing plain HTML files
Type
Manrope and Fira Code, self-hosted variable fonts (81 KB)
CSS
15.9 KB compressed, organised in cascade layers
JavaScript
6.2 KB core, plus 6.7 KB loaded only where needed
Requests to third parties
None. A strict Content Security Policy enforces it.
Cookies
None
Works without JavaScript
Yes. Navigation, content, filters, and the demo all render server-side.
Build
d28b7ac, Oct 31, 2026

02 Platform

What your browser brings

Every feature below is a progressive enhancement. Where one is missing, the page falls back quietly. This list is checked live, in your browser.

Turn on JavaScript to run the checks.

  • Cross-document view transitionsPages morph into each other, with direction-aware slides. Not checked
  • View transition typesForward, backward, and deeper navigations animate differently. Not checked
  • Scroll-driven animationsThe manifesto, the project rail, and reading progress follow your scroll. Not checked
  • Anchor positioningThe navigation pill and copy hints are tethered to their targets. Not checked
  • Popover APIFootnotes, the menu drawer, and hints live in the top layer. Not checked
  • @starting-styleDialogs and popovers animate in from their closed state. Not checked
  • Discrete transitionsElements animate out before they are hidden. Not checked
  • Scroll-state queriesThe header condenses once the page scrolls. Not checked
  • Scroll target groupsTables of contents highlight the section you are reading. Not checked
  • Custom Highlight APISearch matches are highlighted without touching the DOM. Not checked
  • Speculation rulesLikely next pages are prerendered on hover. Not checked
  • Registered custom propertiesColours, angles, and weights interpolate smoothly. Not checked
  • OKLCH colourThe aurora palette is defined in a perceptual colour space. Not checked
  • Relational :has()The phone demo and tag filter run without JavaScript. Not checked
  • Exclusive accordionsQuestions open one at a time. Not checked
  • ::details-contentAccordions animate their height. Not checked
  • hidden=until-foundCollapsed releases are still found by find-in-page. Not checked
  • Text box trimDisplay type sits exactly on its grid. Not checked
  • field-sizingThe message box grows as you type. Not checked
  • sibling-index()Staggered effects without per-element styles. Not checked
  • Trusted TypesThe page refuses to turn strings into code. Not checked
  • WebGL2The home page terrain is drawn on the GPU. Not checked