There is a gate, and it is real (Law iv): a figure renders only while every component of it traces to a live system of record. When a source goes quiet, the number is withheld — the system would rather go dark than lie. What changed is the signal. The gate no longer swaps a font; proof is the evidence contract, the source line and the state label.
The gate, live
The peel
The dotted underline under an earned figure is a door: press it and the claim peels to its evidence — claim → evidence → live source → timestamp. ProofCard renders the card; a fabricated receipt is the one unforgivable act in every code path.
import { ProofCard } from "@morna/ui";
<ProofCard who="maris" claim={{
text: "Collected €2,400 overnight",
evidence: [{ label: "Stripe · payout 18 Mar",
sourceRef: { label: "stripe:po_18mar", deepLink, integrity: "ok" } }],
}} />The retired serif gate
HeroNumber sets its value in --font-system-sans at --hero-weight: 600, and the compatibility class .serif-figure — which older call sites still wrap figures in — now resolves to the same sans, with the reason written beside it in styles.css. What replaced it: the evidence contract and the state label. A number is proven because it has a source you can open, not because it is italic.Two things made the swap hold. A font is invisible as a signal until you have seen the other one — nobody reads their first figure comparatively — and the serifs were fragile at display optical sizes, which is exactly where a hero figure lives. Newsreader is still mounted and still exported as --font-figure-serif for marketing and generated artifacts. It just no longer makes anything true.
Projections are labeled, never blurred
“Could add ~€X/mo” and “added €X” are different epistemic objects, and the difference is stated rather than styled. A projection renders plainly, carries its basis, and never gets a source line or the peel — because it has no source to open.