Unreasonable hospitality,
rendered in code.
The tokens, type, motifs, and voice rules that make FlowStay feel like FlowStay. One source of truth lives in src/styles/global.css. This page shows what's in there, in the form you'll actually use.
Twelve tokens. Every color on the site.
Gold is reserved for FlowStay wins, positive outcomes, and brand moments. Teal appears only in CRM-system highlights.
Two tokens lie. Read this before using them.
--lime is teal.#3BBFCC. Historical naming from an earlier palette. Only used once in the codebase (CRM highlight on TheKnowing)..btn-lime is gold.#DDB96E → #C9A96E → #B8934A). Inherited from the same earlier naming. All primary CTAs on the site use this.Three families. One mono for signal.
Plus Jakarta Sans for everything body + UI. JetBrains Mono for overlines and technical labels — the visual signal that says "this is metadata, not prose." DM Serif Display for rare brand moments where warmth matters.
var(--display) var(--font) var(--font) var(--font) var(--font) var(--font) var(--font) var(--mono) var(--mono) Signature FlowStay elements.
Reuse these. Don't reinvent them per section.
- Gold dot bullet
- Muted body text
- Flush with feature copy
Easing lives in --spring.
cubic-bezier(.16,1,.3,1). Use for any UI transition. GSAP scrub patterns drive the pinned sections on the homepage + /technology. We don't re-implement per section.
One character. Ten roles.
Matte-black ceramic humanoid with warm-gold seam inlays and a single gold visor light band. Every specialist reuses this silhouette, staged with one clear hospitality prop. Sol is the same character, distinguished by conductor stance, gold sun emblem, and constellation lines — never a different design.
Source prompts lock the character consistency. Generated with Nano Banana 2 (Gemini 3.1 Flash Image). Never swap the base design — edit variants by prop only.
/images/bots/bot-room-bookings.webp
/images/bots/bot-room-modifications.webp
/images/bots/bot-room-cancellations.webp
/images/bots/bot-in-room-dining.webp
/images/bots/bot-tables.webp
/images/bots/bot-wellness-spa.webp
/images/bots/bot-golf.webp
/images/bots/bot-marina.webp
/images/bots/bot-events-weddings.webp
/images/bots/bot-sol.webp Hard rules. No room for house style drift.
/technology H1 and the MeetTheTeam kicker.Patterns we keep breaking. Stop.
"Answers every call — any hour, any language."
"Answers every call, any hour, any language."
"Nine specialized AI agents. One shared guest file."
"Nine specialists. One Sol. Powered by FlowSense, a memory that anticipates."
"Bookings up 47% in the first month."
"Hotel websites convert at ~2.2%. FlowStay puts a voice on every page."
Render a new cartoon bot mascot per use case.
Edit the base bot PNG with image-to-image, prop-swap only.
The Astro site and the legacy demos use different tokens.
Everything above is the Astro site system — the only one you should build against for new components.
/public/demo-*.html and the accompanying tests/design-tokens.spec.ts use a separate legacy system: Cormorant Garamond / DM Sans / Sacramento typography, gold #d4a853, background #0a0a0f. These demos ship as iframe content inside the phone and laptop scrubs and are frozen. Don't port them forward, don't reuse their tokens. The token test locks them in place so drift is caught.
If a new component should match the demo iframes (rare), reuse the demo-system tokens inline. Don't pollute global.css.