Function
The card is the real card, not a labelled preview: it follows the name being typed and the avatar being picked, which is why the band takes them as values rather than reading the stored profile itself. It is the only place on the page that names the progress.
Every figure reads zero until hydration commits, the same rule the card's own progress line follows, because the learner's progress lives in the browser's store and the server has no figure to render. The stubs are sized by their labels rather than their numbers, so adopting the real figures moves nothing on the page.
Reading the achievements also records the tickets of lessons that were already complete — see useLearnerAchievements. That write is idempotent, so opening the Profile page can only bring a learner's tickets up to what they have already earned.
The Profile page's card column: the learner card, which carries the level's progress as a count and a bar, and under it two ticket stubs counting the tickets the learner has earned and the prizes they have claimed, each a link to the Achievements page where those tickets are spent and prizes live.