Plates & badges
Prices are set in the display serif so the numerals stop fighting the Manrope labels
around them. The plate reads --hb-gold, not --hb-accent: a price
is gold on the pink Vibrators page and gold on the blue BDSM page.
Ink/gold, gold/ink, paper-deep for neutral. .hb-badge--accent is the only one
that follows the character colour — use it for realm labels, never for stock or sale.
Chips carry the realm accent; the current one inverts to gold so the active position is always the brand colour, whatever realm the page is in.
Price left, square Add right. In the comic card the price moves up into the gold plate top-right and the buyline stays as the place for Add.
Form controls
Destructive actions happen immediately, with no “are you sure?”: a 5-second toast with Undo. Adding to cart gets no toast at all — the button plays Added and the cart badge twitches.
Typography
- Bullet items get a flat gold square marker
- Two-line items hang cleanly off the marker with a 12px gutter
- Never round dots, never dashes
- Numbered steps use serif gold numerals
- Same rhythm as bullets, numerals align left
- Used in guides and how-to blocks
Variables
Never re-tinted by a page. Price plates, the one primary CTA, the logo, the card lift
shadow. Click any swatch to copy its var().
These values are read from the live page, so on a plain page they are gold. Open a collection with a character to watch the whole channel move:
Small plates stay flat --hb-gold. On a bright gradient fill the light inner
contour is not drawn.
One shared hover gesture: translate(−3px, −3px) plus a hard shadow, no blur.
prefers-reduced-motion zeroes every duration and the lift in one place, in
the tokens file — nothing else has to check for it.