Landing hero
The promise's type, and since 2026-08-15 that is all it is: the headline at the one size this product spends --type-hero on, and the paragraph under it.
What it is
It was two columns until 2026-08-14, and the founder took the second one away. The right column held a card with the example total and a field of fourteen drifting merchants: the proof, standing beside the claim. It read flat, and the reason is structural. A proof pinned in a box next to the promise is a screenshot of the argument. The same fourteen, given a stage of their own directly below and allowed to gather into the list while the reader scrolls, is the argument happening. So the hero makes the claim alone and hands the proof to the landing story. A structure change to a frozen file, written into wireframes/index.html at the block it changes and recorded as D-Hero.
It was centred until 2026-08-15, and then it stopped being a block at all. The argument for centring was real while it held: a centred headline, one paragraph and two buttons is what an opening looks like, and it puts the eye in the middle of the screen where the story that follows is going to happen. The founder chose the other hero - the landing orbit, the round window - and there the promise is not centred and not a block: it holds the LEFT edge, inside .osay, as the first thing one pinned section says before it hands the screen to the window. Three rules were deleted, not moved: .lp-hero > .lp-wrap, .lp-hero .actions and .lp-hero > .lp-wrap > .muted matched a class no page writes in either corpus any more.
What is left is exactly what is still rendered. .lp-h1 and .lp-lead, both inside .osay on the landing and in the grey. That is the whole component now: two type roles and no box. The eyebrow, the actions and the reassurance line are still on the page, word for word, but they are placed by the orbit, which is the block that owns where they stand.
Anatomy
.lp-h1the one place--type-herois spent. Tracked in, because at this size the default fitting opens up and a headline set loose reads as a poster rather than as a sentence somebody means.lp-leadthe promise in one sentence, at the reading measure
Behaviour on width
No point of its own, and no box to have one. The only thing that changes across the range is the headline, which is fluid in the token rather than stepped here. The 47.5rem rule that made it two columns went with the panel on 2026-08-14; the centred column itself went with the hero on 2026-08-15.
Limits
The headline's measure is 14ch and not --container-text, and it is the one width this file sets. 52ch is a reading measure, for prose a person works through; a headline is read in one glance and wants to break where the sentence does. 14ch puts "See what you're paying for." on its own lines and "Calmly." alone underneath.
The headline is fluid, and it was not at first. The token was written as a flat 3.5rem with a comment refusing fluid on the ground that there was no content reason. There was: at a fixed 56px the headline ran to four lines at 390 and pushed the lead, both buttons and the whole proof panel below the fold. A headline that pushes its own call to action off the screen is not a headline. Measured after: 42px at 390, 52 at the tablet point, 56 from about 920 up.
Where it comes from
Drawn by design/system/components/landing-hero.css through ../system/index.css, the same entry point a product screen loads. It stands on the coloured landing and on wireframes/index.html, and on nothing else: the landing is the only public surface this product has. Registered in docs/inventory.md and in _nav.js, in the organism group.