Patterns
Card
Base interaction affordance shared by SummaryCard, QuoteCard, and SpotlightCard. Provides consistent hover background, active-press opacity, and removes default link/button styling.
Cursor Affordance
Pointer-following label on hover, with a static fallback on touch where a component needs one. Provides interaction hints without cluttering the resting state.
Dithered Field
Ordered dithering as the one way the site renders a continuous quantity — a Bayer 8×8 threshold on a 2px grid, two colours, a cell either on or off. Both surfaces that use it would otherwise be gradients: SkyBand draws the sky at each end of the document, Nav's veil paints ground under the cluster. Because Bayer8 is uniform on 0–1, the threshold level IS the local coverage fraction, which is what lets coverage be measured against a contrast requirement rather than judged.
Prose
Renders markdown-to-HTML content with consistent treatment — ink-secondary dash list markers, inline link hovers, paragraph spacing. Applied via the `.prose` class on any `set:html` container.
Scroll Reveal
Scroll-triggered entrance animation. Elements start invisible and translated down by half a cell, then fade and slide in over 0.45s when they enter the viewport. The stagger advances children in 0.05s increments. Respects prefers-reduced-motion. On the home flow the reveal is per block — each passage, figure, divider and byline carries it — rather than per group or per paragraph.