Every token in index.html lives here too. Change once, change everywhere. The brand is sunset + campfire + chunky + playful. No iMessage blue. No Apple-restrained minimalism. Warm paper, ember pops, Fraunces italics, drop-shadows you can feel.
An inline SVG — not an emoji, not an image. Multi-layer campfire mark: ember-deep outer flame · ember middle · sunbeam inner tongue · log wood crossed beneath · soft ground shadow. Renders crisp at every size from 16px favicon up.
Paired with the wordmark in Fraunces italic, SOFT 100, WONK 1. Minimum clear-space equals the flame's height. Use 🔥 emoji only in body copy, never as the mark.
Sunset-campfire. Cream paper as canvas, ember + ember-deep for heat, sunbeam yellow for warmth, lavender for life, warm black (night) for ink. No cool tones. No iMessage blue.
Fraunces is the display face — a variable serif with opsz, SOFT, and WONK axes. Italics get SOFT 100, WONK 1 for extra personality. Body is Outfit — warm geometric sans with character. No cold Inter-style neutrality.
Chunky neo-brutalist — thick borders, hard drop-shadows, buttons that press down on click. Not iMessage-polite. Not emoji-flat. Tactile and loud.
Hover: lifts 2px. Active: presses down 6px into shadow. Shadow is solid night — not blur.
Ember tier card. Ribbon sits rotated -2° at top-center, night pill with sunbeam text.
The ones you want warm forever.
Every prevented lead-death = real money.
6 keyframes, 8s cycle, staggered delays. Respect prefers-reduced-motion at implementation.
Warm. Direct. Specific over generic. Matches the founder's texting voice — which is the product. No AI-PR language. No consultant mush.
WCAG AA across the palette. Chunky borders help low-vision and motion-sensitive users alike. Native HTML, no ARIA gymnastics.
night on cream : 13.1:1 (AAA)
night-soft on cream : 5.4:1 (AA)
marshmallow on ember-deep : 4.9:1 (AA)
marshmallow on night : 16.8:1 (AAA)
Sparks animation respects prefers-reduced-motion — disable when requested.
Focus: 3px dashed outline in ember-deep, 4px offset.
All interactives keyboard-reachable. No div-as-button. Native <details> for FAQ.