Two registers,
one feeling.
The marketing surface is cinematic, dark, and loader-driven. The app is calm, light, and gets out of the way. Two languages, one underlying typographic and color logic. This page is the source of truth for both.
Type scale
Fraunces for display, Inter for UI, JetBrains Mono for labels & numbers.
96 / 88px · letter -3%
64 / 60px · letter -3%
40 / 44px · letter -2%
28 / 32px
15 / 23px
11px caps · letter .2em
Tokens
Neutral UI palette for the app. Two brand palettes that theme any surface. Cinematic palette for marketing.
Neutral UI · light app
Cinematic · marketing
Brand · Nordhem
Brand · Bauwerk
8pt grid
All padding, gaps, and offsets snap to this scale. No half-pixels, no orphans.
Radius & elevation
Five radii, three elevation levels. Buttons use r-2/r-pill; cards use r-3/r-4; wallet pass uses r-card (18px).
chips, ticks
buttons, inputs
panels
large cards
wallet pass
Building blocks
Two button registers (app + cinematic), inputs, and cards.
Buttons · app (light)
Buttons · cinematic (dark)
Inputs
Card
Linen duvet, second night free
Members-only, in-store, this week.
Chart styling
Motion guidelines
Animation is currency. Spend it on marketing. Save it in the app.
Cinematic, scroll-driven, loader-led
- Page loader · 1.6–2.8s, bar + counter
- Hero parallax, mouse-tilt on wallet card
- Section reveal · 600–1000ms, ease-out
- Headline mask-rise · per line, staggered
- Marquees · 40s infinite, no reverse
No theatre in the workspace
- No page loaders
- No scroll-triggered reveals
- Transitions ≤ 200ms, ease-out only
- Hover lifts ≤ 1px
- Charts may animate once on mount (≤ 600ms), never again
Two functions
cubic-bezier(.2,.7,.2,1) — marketing reveals.
cubic-bezier(.4,0,.2,1) — app micro-interactions.
Respect it
All scroll reveals, parallax, and the loader collapse to a 120ms fade when prefers-reduced-motion: reduce. The page must remain fully readable without animation.
Both registers
The two voices, side by side. Same brand. Same idea. Different job.
Loyalty that lives
inside the wallet.
The marketing register. Big serif, ample air, accent gold, optional grain. Used on the landing page, auth, and any narrative surface where we are selling, not serving.
Welcome back, Anna.
The workspace register. Inter, generous whitespace, restrained color, no shadow theatrics. Reads like a serious tool.