Typography

Bembo

Body text. Set from ETbb, a digital revival of Bembo — the typeface cut by Francesco Griffo in 1496 for Aldus Manutius. Ligatures and oldstyle figures enabled.

Isenheim

Headings and display. Named for the Isenheim Altarpiece. Used in the app for date headers and surface titles.

Da Vinci

Footer signature. PF Da Vinci Script Pro. Rendered mirrored, as Leonardo wrote.

NewYorker

Decorative initials. Used sparingly in the app for collection headers and section dividers.

Werner colours

Six colours from Werner's 1814 Nomenclature of Colours — a taxonomy that mapped every colour in the natural world to a mineral, plant, or animal. Each swatch below is the actual pigment hue, as implemented in Aion.

Cochineal From the dried body of a scale insect
Gamboge Resin of the Garcinia tree
Verdigris Copper patina in vinegar vapour
Ultramarine Ground lapis lazuli from beyond the sea
Orpiment Arsenic trisulphide mineral
Lavender The flower of Lavandula angustifolia

Time-colour

Every minute of the day maps to a unique hue. The formula: hue = totalMinutes / 1440 × 360, saturation 85%, lightness 65%. Midnight is red, dawn is gold, noon is green, dusk is violet. The clock in the navbar and every timestamp in the app use this system.

Moon phase

The moon glyph in the footer is calculated from a synodic period model. Reference epoch: 6 January 2000, 18:14 UTC (a known new moon). Period: 29.53059 days. The age of the moon maps to one of eight Unicode phase glyphs. The same calculation runs in the app's Cartography surface.

Technology

Static site built with Astro. No JavaScript framework. Hosted on Cloudflare Pages, deployed from GitHub. View transitions for page navigation. Scroll choreography is a custom requestAnimationFrame loop — no scroll event listeners, no libraries. The kinetic typography uses spring physics with mouse repulsion. Total JavaScript is under 5KB gzipped.

Aesthetic

Pure black background. White at varying opacities. The design language is called obsidian — the same visual system as the app. Every element earns its brightness. The default state is silence.