A personal website builder for the Atmosphere

Banner heroes, section grammar, and the sifa profile fields master

The hero now uses the imagery the user's PDS already holds. With a Bluesky banner present, the default hero renders it as a full-width band under the masthead with the avatar overlapping its lower edge; a new optional style field on page.mooring.site#heroSection selects the postcard variant instead, which mounts the banner as a framed photograph beside the type block. Without a banner the hero is a media-object row: a 184px avatar plate beside the name. The value space is open; unknown styles fall back to band. The content column now centres on a --shell width instead of anchoring left, and the banner hero splits into name + tagline on the left with the bio right of a hairline rule, filling the previously dead field right of the headlines. The sifa profile carries more than a headline, and the theme now shows it: pronouns sit beside the h1 in every hero variant, the career section opens with the about text as prose, and openTo tokens render as accent-outline chips with display labels mapped from id.sifa.defs (camelCase-split fallback for unknown tokens). Section grammar now differs by content type: writing is title-first with the document description as excerpt and a Read link; career rows stay date-first with the current role's date in accent and education under a Study sublabel; posts remain notes. Long unbreakable display names wrap instead of overflowing. og:image prefers the banner over the avatar. Articles centre on the measure. 11 new or updated unit tests (178 in web, 26 in lexicons). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>