# Good Journey — Brand Contract

This file is the machine-readable brand contract for **Good Journey**. An agent that builds anything for this brand — a page, a deck, a PDF, an email, a component — applies it exactly.

| Field | Value |
|---|---|
| Brand | `goodjourney` |
| Brand name | Good Journey |
| Company | `goodjourney` |
| Website | https://goodjourneydonuts.com |
| Theme | `marketing` |
| Channel | `stable` |
| Version | 2 |
| Pointer seq | 2 |
| Manifest sha256 | `053c77ad8481a533d3dba66b5b16753add67d95ccec2a8d99373c444d81bfb9e` |
| Signing key id | `goodjourney-20260a97` |
| Guide schema | 2 |
| Generated at | 2026-10-03T19:08:18Z |
| Canonical URL | https://brandguide.goodjourneydonuts.com/api/public/v1/agent.md |

**Machine-readable siblings**

| File | URL |
|---|---|
| Discovery | https://brandguide.goodjourneydonuts.com/api/public/v1/.well-known/styleguide.json |
| This contract | https://brandguide.goodjourneydonuts.com/api/public/v1/agent.md |
| This contract (llms.txt) | https://brandguide.goodjourneydonuts.com/api/public/v1/llms.txt |
| Effective guide | https://brandguide.goodjourneydonuts.com/api/public/v1/effective.json |
| Signed manifest | https://brandguide.goodjourneydonuts.com/api/public/v1/manifest.json |
| Stylesheet (normative) | https://brandguide.goodjourneydonuts.com/api/public/v1/brand.css |
| Stylesheet (descriptive) | https://brandguide.goodjourneydonuts.com/api/public/v1/brand.descriptive.css |
| Tailwind v4 theme | https://brandguide.goodjourneydonuts.com/api/public/v1/tokens.tailwind.css |
| Design tokens (DTCG) | https://brandguide.goodjourneydonuts.com/api/public/v1/tokens.dtcg.json |
| Brand book (PDF) | https://brandguide.goodjourneydonuts.com/api/public/v1/guide.pdf |
| Asset bytes | `https://brandguide.goodjourneydonuts.com/api/public/v1/assets/<sha256>` |
| Logo redirect | `https://brandguide.goodjourneydonuts.com/api/public/v1/logo/<asset id>` |
| App icons (Web App Manifest) | https://brandguide.goodjourneydonuts.com/api/public/v1/appicons.json |
| App icon redirect | `https://brandguide.goodjourneydonuts.com/api/public/v1/appicon/<any\|maskable\|monochrome\|ios\|favicon>` |
| Document stylesheet | https://brandguide.goodjourneydonuts.com/api/public/v1/documents.css |
| Document index | https://brandguide.goodjourneydonuts.com/api/public/v1/documents.json |
| Document templates | `https://brandguide.goodjourneydonuts.com/api/public/v1/documents/<archetype>.html?format=<letter\|a4>` |

## 1. Protocol

1. **Fetch this file** from `https://brandguide.goodjourneydonuts.com/api/public/v1/agent.md` at the start of the work. Do not rely on a copy in your context, in a cached repo, or in your memory.
2. **Pin the version you built against.** This contract is Good Journey **v2**, manifest `053c77ad8481a533d3dba66b5b16753add67d95ccec2a8d99373c444d81bfb9e`. Record both in your output.
3. **Apply §2–§9 exactly.** They are not suggestions and not defaults; they are the brand.
4. **Never invent a value.** No colour, size, face, duration, radius, easing, spacing step or asset that is not listed in this file exists for this brand.
5. **If a value you need is missing, STOP and request it.** Ask the brand owner, or raise an overlay request against this master. Never approximate, never pick "something close", never sample a colour out of a screenshot.
6. **Report the manifest sha you built against** in your final message (see §10).
7. **Run the verification in §10 before declaring the work done.** "It looks right" is not a result.
8. **This tier is read-only.** There is no write path here. Changes to the brand happen only in the style-guide master, by a human.

**Other non-negotiables declared by this brand**

| Category | Rule |
|---|---|
| Sub-brands | Donuts and Cookies use the parent logotype plus their pill (DONUTS / COOKIES) and their flavour palette; they never get their own logotype. |
| Claims | Health and nutrition claims (zero added sugar, net carbs, keto, gluten-free, non-GMO) appear only as printed on the current pack. |
| Claims | In business and legal documents, health and performance claims — “no spikes”, “zero glycemic”, “diabetic-friendly”, customer counts and star ratings (“4,300 happy customers”), competitor nutrition comparisons — need owner and legal sign-off before the document leaves the company. |
| Accessibility | Every text pair meets WCAG 2.1 AA (4.5:1, 3:1 for large text); every interactive state has a visible focus ring and a reduced-motion alternative. |
| Contact | Website goodjourneydonuts.com · support hello@goodjourneyfoods.com · legal entity Good Journey LLC. One copyright line per page, “© <current year> Good Journey LLC”, set as live text — never baked into the logo artwork. |
| Documents | Business documents never carry the brand book’s title (“The Brand Wellness Manual”) in a header or footer; their footer reads “Good Journey LLC · goodjourneydonuts.com”. |

## 2. Identity and voice

**Positioning.** For people who want to enjoy the journey to good health, Good Journey offers unreasonably good, cheat-free donuts and cookies in a variety of popular flavors — made with real ingredients and a natural sweetener found in fruits and vegetables that tastes like cane sugar and is far better for you (pp. 6, 10, 11).

**Emotion.** Here’s where the journey gets sweet.

**Customer.** People on a journey to good health — from fitness lovers to people newly noticing they feel better eating cleaner — who are positive, energetic, open and always looking for ways to enhance their experience without compromising their lifestyle (p.19). Three types: the Expert (clean-eating, low price sensitivity, “This is legit. A no-brainer. Done.”), the Seeker (recently diagnosed, wants to do it right, “I’ve got this / They’ve got me”) and the Newbie (new to nutrition, wary of being duped, needs transparent, simple, supportive messages) (pp. 21–26).

**The tension**

| Pole | Traits |
|---|---|
| The Lover | passion, pleasure, indulgence, sensory, alluring |
| The Caregiver | compassion, nurturing, health, supportive, reassuring |

**Personality**

- Bold — confident, energetic, innovative (and not afraid to show it) (p.14)
- Real — authentic, honest, transparent, earnest, plainspoken (p.14)
- Healthy — healthy bodies, healthy minds, healthy attitudes (p.14)
- Playful — fun, bright, positive vibes (p.14)
- Primary archetype The Lover, secondary The Caregiver: delightful, health-conscious products that promote self-love and care for others (p.15)

**Signature moves**

| Name | What it is |
|---|---|
| The swooping R | The logotype's R kicks its leg into a wave under the N — the road of the journey. Never redrawn (pp. 28–33). |
| The sticker card | A cream card with a 4px navy keyline, 16px corners and a hard 0 6px 0 navy drop — no blur — that lifts 4px on hover. It frames every product, Instagram card and the comparison table’s featured column on the website (decision G-31). |
| The wave rule | A lime wavy line under every section label in the manual (pp. 19–55) — the road again, as a rule. A print and brand-book device; on the web the orange underline swash does its job (decision G-35). |
| The underline swash | A hand-drawn orange looped underline under one headline word — the website’s rule (decision G-35). |
| Colour-shift emphasis | A headline’s key phrase changes colour instead of weight: orange on cream at display size, lilac (or lime) on navy (website; decision G-36). The manual also uses periwinkle on cream — print only. |
| The highlighter | A flat lime block behind one phrase of a tagline (pp. 5, 17). |
| Stickers and doodles | Donut, cookie, smiley GOOD, “yum!”, “sweet”, “You’ll love” stickers and line doodles of rockets, stars and planets (pp. 1, 21–25, 30). On the web: the lime “You’ll love” starburst, the lime GOOD smiley seal across a band seam, navy hexagon claim badges, and doodles — “yum!”, “NEW!”, sparkles (decision G-35). |
| The elongated “goooood” | “Get the goooooooooood stuff!” (p.37), “IT’S GOOOOOOOOD TO SEE YOU!” (p.46) — the brand stretches its own name for joy. |

**Visual references**

- Bands alternating light and dark like the manual’s pages — cream, lilac and lime-wash against navy, violet and orange (pp. 2–56; website)
- Hand-drawn doodles — rockets, stars, speech bubbles saying “yum!” and “HI!”, looping arrows (pp. 1, 14, 21–25)
- Saturated product still life: packs, donuts and cookies on flat colour grounds that match the pack (pp. 4, 13, 45, 46, 54, 55)
- Real-customer UGC collages (p.7)
- Sticker cards and stickers with hard, unblurred offsets (p.30; website)

**Feels / never feels**

| Always feels | Never feels |
|---|---|
| Joyful | Clinical or diet-food |
| Indulgent | Preachy about sugar |
| Caring | Guilt-tripping |
| Honest | Goofy-sweetener cheap |
| Bright | Protein-bar macho |
| Energetic | Vague about ingredients |
| Supportive | — |
| Unreasonably good | — |

**Voice principles**

- Lead with delight, then reassure: taste first (“Highly delicious? Also yes.”), then the honest reason it is better for you (p.16).
- Plainspoken and transparent: real ingredients, clear labels, no hidden anything — the Newbie and the Seeker are afraid of being duped (pp. 23–26).
- Playful with a wink: GASP!, yikes, “goofy sweeteners”, stretched “goooood” (pp. 6, 9, 37, 46).
- Supportive, never preachy: good health is a journey; treats are part of it, not a detour (p.16). Be kind to yourself (pp. 55, 56).
- Favour: unreasonably good · cheat-free · real ingredients · natural sweetener · journey · sweet · treats · goodies · zero added sugar · low-carb · tasty vibes.
- Avoid: guilt language, diet-culture shame, medical promises, and any health or nutrition claim the pack does not carry.
- Speak as “we” to “you”; the founders sign as Helen & Kristoffer (p.46).

**Capitalization**

- The brand is GOOD JOURNEY in the logotype and Good Journey in copy; the ® accompanies the logotype (pp. 32–33), not running text. GOJO is a separate logotype (p.30).
- Headlines, labels and buttons are uppercase; taglines and body copy are sentence case.
- Flavour names are set as artwork: CHA·CHA, CHOC·A·LOT, COSMIC CHURRO — with the interpunct.
- Never uppercase a customer's name, an email address or a data value in the operator register.

**Microcopy — copy these registers, do not invent new ones**

| Context | Example |
|---|---|
| Brand line (pp. 1, 16, 55) | Here’s where the journey gets sweet. |
| Brand line (p.16) | Good health is a journey. Now treats don’t have to be a detour. |
| Brand line (p.16) | Low-carb? Yes. Highly delicious? Also yes. |
| Brand line (p.16) | Your sweet retreat. |
| Brand line (p.17) | Sometimes you gotta stop and eat the donuts. |
| Brand line (p.17) | It’s not the destination. It’s the Good Journey treats that matter. |
| Why (p.9) | Good health is a journey. We’re bringing the treats. |
| What (p.11) | We’re Good Journey. We make unreasonably good cheat-free donuts and cookies that make healthy eating fun. |
| Purpose + vision (p.5) | Be Earth’s most human-centric company, providing delicious, high-quality, and guilt-free foods that empower people to be happy and healthy. By 2035, we’ve empowered a billion people to be happy and healthy. |
| Website announcement rail (p.36) | Shop zero added sugar donuts and cookies with free shipping! |
| Website hero (p.36) | THE DONUTS YOU THOUGHT YOU COULDN’T HAVE AGAIN |
| Website hero body (p.36) | Tired of missing out because of blood sugar concerns, gluten sensitivity, or keto requirements? We get it. That’s why we created soft, perfectly sweet donuts that work with your body, not against it. |
| Website section (p.36) | REAL DONUT TASTE, ZERO REGRETS |
| Primary CTA (p.36) | SHOP NOW |
| Navigation (p.36) | Shop · About · Sign In |
| Trade show (p.37) | HIGH FIBER • KETO • NON GMO |
| Trade show (p.37) | Get the goooooooooood stuff! |
| Donut pack (p.4) | TASTY VIBES ONLY! |
| Donut pack flavour line (pp. 4, 38) | CHA·CHA — Horchata frosted cake donut · Gluten-Free · Keto · Delicious! |
| Mailer insert (p.46) | IT’S GOOOOOOOOD TO SEE YOU! |
| Cookie carton (p.55) | Be kind to yourself — have a cookie! We are committed to bringing you only the best products made with ingredients that make your body and mind happy. |
| Pack badges (p.55) | 0g ADDED SUGAR · 1g NET CARBS · GLUTEN FREE |
| Support line (p.55) | QUESTIONS? EMAIL HELLO@GOODJOURNEYFOODS.COM |
| Closing (p.56) | Thank you and be kind to yourself. |
| Website marquee band | WARNING: MAY CAUSE HAPPINESS |
| Website footer newsletter | Sign up for sweet surprises |
| Website hero | Real donuts. Zero sugar crash. |

**Registers**

| Register | Principles |
|---|---|
| Website, packaging, social and the brand book | Delight first, reassurance second.; One statement per band; one highlighted phrase per block.; Stickers and doodles may speak (“yum!”); body copy stays plain. |
| CRM, orders and back-office tools | Terse and literal; a label is a noun, an action a verb.; State counts and units: “12 open orders”.; Warm but brief in empty states; never playful in an error. |


## 3. Colour

### Cream page

The manual's light page and the website body: a cream ground, navy ink, lime highlights, an orange signal used as a fill. Every palette and flavour colour is declared here, with its print build.

Ground token: `--gj-surface`.

| Token | Role | Cream page (light) | Print build |
|---|---|---|---|
| `--gj-navy` | The brand ink: the wordmark, headlines, body copy, the navy blocks | #312E7C | cmyk: 92, 97, 29, 19 · notes: p.34 and p.52. p.43 prints this hex beside CMYK 43, 58, 0, 60 under a PINK swatch — see drift. · pantone: 669 C |
| `--gj-violet` | Secondary brand colour — a cooler, lighter navy | #5D59C4 | cmyk: 78, 78, 9, 1 · pantone: 7670 C |
| `--gj-orange` | The signal colour: primary pills, emphasis at display size, stickers, the promo band | #F15627 | cmyk: 0, 82, 96, 0 · pantone: 1585 C or 1655 U |
| `--gj-sky` | Sky blue — the Dark Chocolate pack, the website announcement rail | #5DAFF4 | cmyk: 60, 26, 0, 0 · pantone: 284 U |
| `--gj-lime` | Lime — secondary pills, the DONUTS pill, the starburst and smiley seal, accents on navy | #E9E72F | cmyk: 20, 0, 100, 0 · pantone: 394 C or 388 U |
| `--gj-pink` | Pink — the Horchata pack and sticker grounds | #FFD0E5 | cmyk: 0, 37, 0, 0 · pantone: 203 U |
| `--gj-lavender` | Lavender — persona panels, quote cards, the small-scale table cells | #D3D3EB | cmyk: 10, 10, 0, 8 · pantone: 7443 C |
| `--gj-lime-tint` | Pale lime — persona panels, quote cards, the large-scale table cells | #F1F2C4 | cmyk: 0, 0, 19, 5 · pantone: 0131 C |
| `--gj-cream` | Cream — the screen page, card grounds, labels on navy and orange | #FFFBF7 | cmyk: 0, 3, 6, 0 · notes: Print RGB 255, 248, 239 (#FFF8EF), p.34. Screens use #FFFBF7 (decision G-17). · pantone: 9226 U |
| `--gj-white` | White | #FFFFFF | cmyk: 0, 0, 0, 0 · pantone: WHITE INK |
| `--gj-denim` | Donuts · Dark Chocolate flavour — the deeper blue | #63A1D6 | cmyk: 70, 30, 0, 15 · pantone: 2143 U |
| `--gj-chocolate` | Donuts · Dark Chocolate flavour — chocolate brown | #543A34 | cmyk: 50, 67, 67, 50 · pantone: 7582 U |
| `--gj-brick` | Donuts · Horchata flavour — brick red | #D34D2A | cmyk: 15, 85, 100, 0 · pantone: 2347 U |
| `--gj-peach` | Donuts · Horchata flavour — peach | #FED09E | cmyk: 0, 20, 40, 0 · pantone: 4029 U |
| `--gj-marigold` | Cookies · Churro flavour — marigold | #FDB515 | cmyk: 0, 32, 100, 0 · pantone: 143 C |
| `--gj-tangerine` | Cookies · Churro flavour — tangerine | #F47522 | cmyk: 0, 52, 86, 4 · pantone: 158 C |
| `--gj-butter` | Cookies · Churro flavour — butter | #FFDD98 | cmyk: 0, 13, 40, 0 · pantone: 1205 C |
| `--gj-periwinkle-grey` | Cookies · Churro flavour — periwinkle grey | #8A8BC4 | cmyk: 30, 29, 0, 23 · pantone: 7446 C |
| `--gj-periwinkle` | The manual’s periwinkle — print and brand-book only; never on screen | #7878FA | — |
| `--gj-violet-ink` | The book's violet text colour | #5351BD | — |
| `--gj-ink-soft` | The book's soft body ink — persona copy | #646491 | — |
| `--gj-navy-deep` | The book's deep navy — gradient shadows on navy pages | #181752 | — |
| `--gj-lilac` | Lilac — light band ground (reviews), comparison header cells and keylines, emphasis on navy | #DED9FF | — |
| `--gj-lime-wash` | Lime-wash — the pale-lime panel (creators split) and ingredient circles | #F0F6D3 | — |
| `--gj-orange-light` | The promo band’s second orange — a FILL beside --gj-orange behind a scalloped edge | #F78650 | — |
| `--gj-pink-rule` | Pink rule — the 2px divider between FAQ rows | #F3A1C4 | — |
| `--gj-surface` | The page — cream | #FFFBF7 | — |
| `--gj-surface-raised` | Cards on the page — cream, framed by the navy keyline | #FFFBF7 | — |
| `--gj-surface-tint` | Lime-wash band — the pale-lime panel | #F0F6D3 | — |
| `--gj-surface-soft` | Lilac band — reviews, quote cards | #DED9FF | — |
| `--gj-ink` | Body copy, headlines, the wordmark | #312E7C | — |
| `--gj-ink-muted` | Secondary copy, captions, persona body | #646491 | — |
| `--gj-ink-secondary` | Secondary text — the violet copy (FAQ, inputs, option pills) | #5D59C4 | — |
| `--gj-on-ink` | Ink on a navy fill | #FFFBF7 | — |
| `--gj-accent` | The signal FILL — stickers, badges, display-size emphasis | #F15627 | — |
| `--gj-accent-ink` | Orange as small text — prices, ratings, review links, labels below 24px | #C5380D | — |
| `--gj-action` | The primary pill — orange, with a LARGE cream label | #F15627 | — |
| `--gj-action-hover` | The primary pill at hover — navy | #312E7C | — |
| `--gj-action-small` | An orange action whose label is below 24px | #C5380D | — |
| `--gj-on-action` | Label on the primary button | #FFFBF7 | — |
| `--gj-highlight` | The highlighter — lime behind a phrase | #E9E72F | — |
| `--gj-on-highlight` | Text on the highlighter | #312E7C | — |
| `--gj-link` | A link at rest — navy, underlined | #312E7C | — |
| `--gj-link-hover` | A link at hover and focus | #5D59C4 | — |
| `--gj-focus-ring` | The focus outline | #5D59C4 | — |
| `--gj-emphasis` | Colour-shift emphasis inside a display headline | #F15627 | — |
| `--gj-border` | The default hairline | rgba(49, 46, 124, 0.16) | — |
| `--gj-border-strong` | The 2px navy rule — tables, cards, boxes | #312E7C | — |
| `--gj-hairline` | A soft rule | #D3D3EB | — |
| `--gj-fill-soft` | A navy wash — empty states, chips | rgba(49, 46, 124, 0.06) | — |
| `--gj-positive` | Success as text and rule | #1E7A46 | — |
| `--gj-warning` | Warning as text and rule | #8F6301 | — |
| `--gj-negative` | Error as text and rule | #BB4425 | — |
| `--gj-info` | Information as text and rule | #0D6DBE | — |
| `--gj-radius-card` | Cards — product, review, Instagram | 16px | — |
| `--gj-radius-sm` | Inputs, chips | 10px | — |
| `--gj-radius-media` | Photographs inside cards | 12px | — |
| `--gj-radius-frame` | A framed photograph — cream 4px border | 14px | — |
| `--gj-radius-lg` | Galleries and the comparison table’s rounded ends | 20px | — |
| `--gj-radius-pill` | Buttons and the sign-in control | 999px | — |
| `--gj-shadow-sticker` | The sticker offset — a hard shadow | 3px 3px 0 rgba(35, 31, 32, 0.5) | — |
| `--gj-shadow-lift` | A lifted card | 0 12px 32px -20px rgba(49, 46, 124, 0.45) | — |
| `--gj-shadow-offset` | The sticker-card drop — a hard navy offset, no blur | 0 6px 0 #312E7C | — |
| `--gj-shadow-offset-hover` | The sticker card lifted (with translateY(-4px)) | 0 10px 0 #312E7C | — |
| `--gj-shadow-offset-sm` | Small controls — cart thumbnails, quantity steppers | 0 3px 0 #312E7C | — |
| `--gj-shadow-soft` | Review cards on the lilac band — the only soft shadow | 0 10px 24px rgba(49, 46, 124, 0.06) | — |
| `--font-display` | Section titles and H1s — display caps | "Obviously Narrow", obviously-narrow, "Barlow Condensed Black", "Barlow Condensed", "Arial Narrow", sans-serif | — |
| `--font-title` | Wide, heavy titles | "Obviously Black", Obviously, obviously, "Barlow Black", "Arial Black", sans-serif | — |
| `--font-headline` | Buttons, card titles, subtitles; the manual’s statements | "Barlow Condensed SemiBold", "Barlow Condensed", "Arial Narrow", sans-serif | — |
| `--font-label` | Labels and eyebrows — tracked caps | "Barlow Condensed Bold", "Barlow Condensed", "Arial Narrow", sans-serif | — |
| `--font-price` | Prices, navigation, claim badges | "Barlow SemiBold", Barlow, "Arial Narrow", sans-serif | — |
| `--font-sans` | Body copy, forms, operator UI | Poppins, "Helvetica Neue", Arial, sans-serif | — |
| `--font-sans-medium` | Lead paragraphs, footer links | "Poppins Medium", Poppins, "Helvetica Neue", Arial, sans-serif | — |
| `--font-sans-bold` | Poppins at 700 — inline emphasis in operator UI and documents | "Poppins Bold", Poppins, "Helvetica Neue", Arial, sans-serif | — |
| `--font-prose` | Brand-book body face | Bicyclette, bicyclette, Poppins, "Helvetica Neue", Arial, sans-serif | — |
| `--font-marquee` | The marquee band | "Bicyclette Black", bicyclette, "Barlow Black", "Arial Black", sans-serif | — |
| `--font-script` | Script accent — artwork only | alkaline, "Brush Script MT", cursive | — |

### Navy block

The manual's navy pages (pp. 3, 6, 11, 16, 19, 35, 44, 53) and the website header: navy ground, cream ink, lime as the accent. This is the brand's dark ground.

Ground token: `--gj-surface`.

| Token | Role | Cream page (light) | Print build |
|---|---|---|---|
| `--gj-surface` | The navy block | #312E7C | — |
| `--gj-surface-raised` | A card on navy — recessed | #26236B | — |
| `--gj-surface-tint` | The deep band | #181752 | — |
| `--gj-surface-soft` | A soft band on navy | #2A2774 | — |
| `--gj-ink` | Copy on navy | #FFFBF7 | — |
| `--gj-ink-muted` | Secondary copy on navy | #D3D3EB | — |
| `--gj-ink-secondary` | Supporting text on navy | #F0F6D3 | — |
| `--gj-on-ink` | Ink on a cream fill | #312E7C | — |
| `--gj-accent` | The signal on navy | #E9E72F | — |
| `--gj-accent-ink` | Signal text on navy | #E9E72F | — |
| `--gj-action` | The primary button on navy | #E9E72F | — |
| `--gj-action-hover` | The button at hover on navy | #FFFBF7 | — |
| `--gj-action-small` | A small-label action on navy | #E9E72F | — |
| `--gj-on-action` | Label on the lime button | #312E7C | — |
| `--gj-highlight` | The highlighter on navy | #E9E72F | — |
| `--gj-on-highlight` | Text on the highlighter | #312E7C | — |
| `--gj-link` | A link on navy | #E9E72F | — |
| `--gj-link-hover` | A link at hover on navy | #DED9FF | — |
| `--gj-focus-ring` | Focus outline on navy | #E9E72F | — |
| `--gj-emphasis` | Colour-shift emphasis on navy | #DED9FF | — |
| `--gj-border` | Hairline on navy | rgba(255, 251, 247, 0.18) | — |
| `--gj-border-strong` | Strong rule on navy | #FFFBF7 | — |
| `--gj-hairline` | Soft rule on navy | rgba(255, 251, 247, 0.12) | — |
| `--gj-fill-soft` | A cream wash on navy | rgba(255, 251, 247, 0.08) | — |
| `--gj-positive` | Success on navy | #7BD4A4 | — |
| `--gj-warning` | Warning on navy | #FDB515 | — |
| `--gj-negative` | Error on navy | #F58461 | — |
| `--gj-info` | Information on navy | #5DAFF4 | — |

### Contrast pairs (mandatory)

Algorithm: `wcag21`. Every pair below must meet its minimum in every mode. A combination that misses is a defect, not a judgement call.

| Ink | Grounds | Min ratio | Warn floor |
|---|---|---|---|
| `--gj-ink` | `--gj-surface`, `--gj-surface-raised`, `--gj-surface-tint`, `--gj-surface-soft` | 7 | — |
| `--gj-ink-muted` | `--gj-surface`, `--gj-surface-raised`, `--gj-surface-tint` | 4.5 | — |
| `--gj-ink-secondary` | `--gj-surface`, `--gj-surface-raised`, `--gj-surface-tint` | 4.5 | — |
| `--gj-accent-ink` | `--gj-surface`, `--gj-surface-raised`, `--gj-surface-tint` | 4.5 | — |
| `--gj-on-action` | `--gj-action`, `--gj-action-hover` | 3 | — |
| `--gj-on-action` | `--gj-action-small` | 4.5 | — |
| `--gj-on-highlight` | `--gj-highlight` | 7 | — |
| `--gj-link` | `--gj-surface`, `--gj-surface-raised`, `--gj-surface-tint` | 4.5 | — |
| `--gj-link-hover` | `--gj-surface`, `--gj-surface-raised`, `--gj-surface-tint` | 4.5 | — |
| `--gj-focus-ring` | `--gj-surface`, `--gj-surface-raised` | 3 | — |
| `--gj-positive` | `--gj-surface`, `--gj-surface-raised` | 4.5 | — |
| `--gj-warning` | `--gj-surface`, `--gj-surface-raised` | 4.5 | — |
| `--gj-negative` | `--gj-surface`, `--gj-surface-raised` | 4.5 | — |
| `--gj-info` | `--gj-surface`, `--gj-surface-raised` | 4.5 | — |
| `--gj-on-ink` | `--gj-ink` | 7 | — |
| `--gj-emphasis` | `--gj-surface` | 3 | — |

### Banned values

| Id | Severity | Kind | Match | Why |
|---|---|---|---|---|
| offpalette-neutral | warn | neutral-grey | lightnessRange=[0.15, 0.9] maxChannelSpread=10 | Good Journey has no grey: its neutrals are navy-hued. A flat grey is off-brand (the website’s Dawn greys are drift, G-23). |
| book-rendered-lime | warn | regex | #(?:[dD][eE][eE]46[23])\b | The manual's on-screen lime #DEE463 is a CMYK conversion, not the published web value #E9E72F (decision G-2). |
| printed-cream-hex | warn | regex | #(?:[fF][fF][fF]5[eE][cC])\b | The printed cream HEX disagrees with its own RGB and with every screen; screen cream is #FFFBF7 (decisions G-1, G-17). |
| print-cream-on-screen | warn | regex | #(?:[fF][fF][fF]8[eE][fF])\b | #FFF8EF is the manual’s print RGB; the screen cream is #FFFBF7 (decision G-17). |

### Colour rules

- Navy #312E7C is the brand ink; cream #FFFBF7 the screen page (#FFF8EF / CMYK 0, 3, 6, 0 in print). Text on cream is navy or violet #5D59C4 — nothing lighter.
- Orange #F15627 carries cream text only at large size — ≥ 24px, or ≥ 18.66px bold (≥ 18pt / 14pt bold in print): pill labels, display headlines, big numbers. Smaller orange text is --gj-accent-ink #C5380D. Sky, lime, pink and the flavour colours are fills.
- On navy, emphasis is lilac #DED9FF or lime; violet (2.04:1) and orange (3.37:1) never carry text on navy.
- Sky and lilac grounds take navy text only. Never cream or white on sky (2.29:1), never orange on lilac (2.54:1), never body-size orange on cream (3.34:1).
- Periwinkle #7878FA is a print and brand-book colour; on screen its jobs go to violet and lilac.


## 4. Typography

### Faces

| Role token | Family | Weights | Italics | Used for | Licence | Redistributable | File |
|---|---|---|---|---|---|---|---|
| `--font-display` | Obviously Narrow → Barlow Condensed Black | 900 — the bundled stand-in is its own family, requested at normal weight | no | Section titles, H1s, page-template headings and document titles — uppercase on marketing bands. | The Barlow Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/aa01966de3f608a765a172237a3ffc6161fe4c7e3870b1a904dc6437e54c4e24 |
| `--font-title` | Obviously (wide) → Barlow Black | 900 bundled (as its own family) | no | Wide titles; the manual’s divider titles. | The Barlow Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/6f5d995ccc4d8ffd9e8cb4c303fc1f3646d6c62d40269ef59463332f12d5b897 |
| `--font-headline` | Barlow Condensed | 600 | no | Button labels (uppercase), card and plan titles (Title Case), band subtitles, benefit labels; the manual’s statements. | The Barlow Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/215a93c696f442034a46fbb382958f753fda60e30490683aeea6b235fcbb2b66 |
| `--font-label` | Barlow Condensed Bold | 700 | no | Labels, eyebrows, footer headings, FAQ questions, table headers. | The Barlow Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/3787a5a419171630e6890cfa47c4da067474d005cd0ff8dc11ec090fdc3ee2b8 |
| `--font-price` | Barlow SemiBold | 600 | no | Prices and figures, navigation links, claim badges, product sub-headings. | The Barlow Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/4b52ddd4836b592df0e4832b8286956883cdc651b015126bdd18f184b7f90cc3 |
| `--font-sans` | Poppins | 400 (500 and 700 are their own family names) | no | Every running word on screen — body, navigation, forms, operator UI. | The Poppins Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/7d93459d86585bfcdbb7e0376056226adb25821ee54b96236fe2123e9560929f |
| `--font-sans-medium` | Poppins Medium | 500 | no | Lead paragraphs (24px / 1.2), footer links, small meta lines. | The Poppins Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/cd36de204aca2d5fa263a731f7c20009b5e3d754ba1f1e03c33e93a48f3e7446 |
| `--font-sans-bold` | Poppins Bold | 700 | no | Buttons, labels, table headers, emphasis. | The Poppins Project Authors — SIL Open Font License 1.1 (Google Fonts release, Fontsource 5.3.0 latin subset); OS/2 fsType 0. Free to use, embed and redistribute with the licence. | yes | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9338e65fc077355c7a87ae0d64cc101e23b9bf8ad78ae65f0f319c857311b526 |
| `--font-prose` | Bicyclette | 400, 400 italic, 700, 900 | yes | Print and collateral body copy in the brand book; on screen only where a licensed copy is loaded. | — | — | not bundled |
| `--font-marquee` | Bicyclette Black → Barlow Black | 900 | no | The marquee band — one repeating line, uppercase, 128px. Never in documents. | — | — | not bundled |
| `--font-script` | alkaline | one | no | Artwork only — packaging flavour lines and stickers. Never live UI text. | — | — | not bundled |

A face whose licence is **not** redistributable is never bundled and never self-hosted by a consumer: license it yourself or fall back to the next family in the stack.

**Font stacks — use verbatim**

| Role token | font-family |
|---|---|
| `--font-display` | `"Obviously Narrow", obviously-narrow, "Barlow Condensed Black", "Barlow Condensed", "Arial Narrow", sans-serif` |
| `--font-title` | `"Obviously Black", Obviously, obviously, "Barlow Black", "Arial Black", sans-serif` |
| `--font-headline` | `"Barlow Condensed SemiBold", "Barlow Condensed", "Arial Narrow", sans-serif` |
| `--font-label` | `"Barlow Condensed Bold", "Barlow Condensed", "Arial Narrow", sans-serif` |
| `--font-price` | `"Barlow SemiBold", Barlow, "Arial Narrow", sans-serif` |
| `--font-sans` | `Poppins, "Helvetica Neue", Arial, sans-serif` |
| `--font-sans-medium` | `"Poppins Medium", Poppins, "Helvetica Neue", Arial, sans-serif` |
| `--font-sans-bold` | `"Poppins Bold", Poppins, "Helvetica Neue", Arial, sans-serif` |
| `--font-prose` | `Bicyclette, bicyclette, Poppins, "Helvetica Neue", Arial, sans-serif` |
| `--font-marquee` | `"Bicyclette Black", bicyclette, "Barlow Black", "Arial Black", sans-serif` |
| `--font-script` | `alkaline, "Brush Script MT", cursive` |

### Scale

`pt` is `px × 0.75` — use it for print and decks.

| Token | Size | Used by |
|---|---|---|
| `--gj-text-display` | clamp(2.375rem, 3.9vw, 3.5rem) | Section title / H1 — --font-display, uppercase, line-height 1.03, +2px (56px desktop, 38px mobile) |
| `--gj-text-display-xl` | clamp(2.375rem, 4.7vw, 4.2rem) | The product-grid title — SHOP BEST SELLERS (67.2px) |
| `--gj-text-wide` | clamp(1.75rem, 2.8vw, 2.5rem) | Wide title — --font-title, uppercase (40px / 28px) |
| `--gj-text-subtitle` | 1.85rem | Band subtitle — --font-headline, sentence case, line-height 1.6 (29.6px) |
| `--gj-text-card-title` | clamp(1.25rem, 2.4vw, 2.2rem) | Card and plan titles — --font-headline, Title Case, +0.96px (35.2px / 20px) |
| `--gj-text-button` | clamp(1.5rem, 2vw, 1.8rem) | Pill labels — --font-headline, uppercase (28.8px / 24px) — always large |
| `--gj-text-label` | 1.25rem | Labels and eyebrows — --font-label, uppercase, +0.04em (20px) |
| `--gj-text-lead` | 1.5rem | Lead — --font-sans-medium, line-height 1.2 (24px; 16px mobile) |
| `--gj-text-base` | 1rem | Body — --font-sans, line-height 1.6 |
| `--gj-text-price` | 1.25rem | Prices and claim badges — --font-price, +1.2px (20px) |
| `--gj-text-small` | 0.875rem | Captions, legal lines — the marketing floor |
| `--gj-text-statement` | clamp(2.5rem, 5.8vw, 7rem) | Brand book — the manual’s statement headline (Barlow Condensed 600, line-height 0.89) |
| `--gj-text-title` | clamp(3rem, 9vw, 10.75rem) | Brand book — divider title (Barlow Black, 172px on the page) |
| `--gj-text-marquee` | clamp(4rem, 9vw, 8rem) | The marquee band — --font-marquee, uppercase (128px) |

### Specimens

| Name | Spec | Voice | Sample |
|---|---|---|---|
| Section title | Obviously Narrow Black → Barlow Condensed Black · uppercase · +2px · one phrase in --gj-emphasis | display | Why is Good Journey better? |
| Wide title | Obviously Black → Barlow Black · uppercase | display | See why our customers love us |
| Button label | Barlow Condensed SemiBold · uppercase · ≥ 24px — always large, so cream on orange passes AA-large | caps | Shop now |
| Card title | Barlow Condensed SemiBold · Title Case · +0.96px | caps | Donut Variety Pack (12 Donuts) |
| Label | Barlow Condensed Bold · uppercase · +0.04em | caps | Reach out |
| Subtitle | Barlow Condensed SemiBold · sentence case · line-height 1.6 | prose | Real donuts. Zero sugar crash. |
| Lead | Poppins Medium · 24px / 1.2 | prose | The donuts you thought you couldn’t have again. |
| Body | Poppins 400 · 16px / 1.6 · navy | prose | Tired of missing out because of blood sugar concerns, gluten sensitivity, or keto requirements? We get it. |
| Price | Barlow SemiBold · +1.2px | caps | $54.99 |
| Statement (brand book) | The manual’s statement: Barlow Condensed 600 · uppercase · line-height 0.89 · untracked | display | Good health is a journey. We’re bringing the treats. |

### Typography rules

- Bundled families do all the screen and document work: Barlow Condensed (Black section titles — the Obviously Narrow stand-in; Bold labels; SemiBold buttons, card titles and subtitles), Barlow (Black wide titles, SemiBold prices and navigation) and Poppins (Regular body, Medium lead, Bold emphasis).
- Section titles and H1s are display caps tracked about +0.035em (2px at 56px); labels are Barlow Condensed Bold caps at +0.04em; card titles are Title Case; body copy, taglines and subtitles are sentence case. The manual’s untracked statements stay a brand-book style.
- Emphasis inside a headline is a colour change, never a weight change.
- Each bundled cut is its own family at normal weight: ask for “Barlow Condensed Black”, never Barlow Condensed at weight 900 — a weight request on a single-cut family synthesises a fake bold.
- Obviously, Obviously Narrow, Bicyclette and alkaline are licensed faces and are never bundled or self-hosted from this guide. They lead their stacks so a properly licensed install wins; everywhere else the open stand-ins render.
- Type floor 14px marketing, 12px operator; 8pt in print (captions), 10pt for running text.

- Minimum rendered size: 14px.
- At most 3 weights per family.
- `--font-display` never renders below 16px.
- `--font-title` never renders below 32px.

- Headline emphasis is a colour change, never a weight change.
- Obviously, Obviously Narrow, Bicyclette and alkaline are licensed faces: never bundled, self-hosted or embedded from this guide. Production use of Obviously needs a purchased OH no Type licence for the medium (web, print, app), and Bicyclette a proper licence of its own. Until then the bundled open stand-ins render: Barlow Condensed Black for Obviously Narrow, Barlow Black for Obviously, Poppins for Bicyclette.

### Iconography

| Field | Value |
|---|---|
| Style | Marketing icons are flat duotone glyphs — navy plus one of orange, sky or lime — drawn with a slightly wobbly hand, 48–60px, free-standing (no circle). A “no X” claim is an orange ring with a slash. Doodles are monoline in cream, navy, lime or orange. An icon labels and carries a word; a doodle decorates (decision G-45). |
| Library | Marketing: the website’s own duotone benefit icons (icon.benefits) and the manual’s hand-drawn doodles (image.doodles) as illustration. Operator: Lucide. |
| Grid | Operator 24 × 24 on a 2px keyline. Marketing benefit icons stand free at 48–60px over a two-line Barlow Condensed label. |
| Stroke width | 2px at 24px (the doodles in the manual are drawn at ~2px on the 1920px page). |
| Corner radius | Round caps and joins throughout. |

| Token | Size | Use |
|---|---|---|
| — | 16px · 1rem · 12pt | Operator — table row, chip |
| — | 20px · 1.25rem · 15pt | Operator — toolbar, sidebar |
| — | 24px · 1.5rem · 18pt | Marketing — inline with labels |
| — | 48–60px | Marketing — benefit icons, free-standing (website) |

- Operator icons take currentColor; marketing icons keep their two brand colours.
- Doodles are decoration and aria-hidden.
- No brand mark is redrawn as an icon.
- The two sets never mix on one surface.
- A benefit icon states a claim only the current pack carries.


## 5. Shape, layout, elevation

### Radius

- Maximum corner radius: **20px**.
- Exempt selectors: `\brounded-full\b`, `\bgj-btn\b`, `\bgj-sticker\b`.

### Spacing scale

| Token | Value | Role |
|---|---|---|
| `--gj-space-1` | 4px · 0.25rem · 3pt | — |
| `--gj-space-2` | 8px · 0.5rem · 6pt | — |
| `--gj-space-3` | 16px · 1rem · 12pt | — |
| `--gj-space-4` | 24px · 1.5rem · 18pt | — |
| `--gj-space-5` | 40px · 2.5rem · 30pt | — |
| `--gj-space-6` | 64px · 4rem · 48pt | — |
| `--gj-space-7` | 96px · 6rem · 72pt | — |
| `--gj-gutter` | clamp(16px, 8vw, 158px) | — |

### Structure

| Token | Value | Role |
|---|---|---|
| `--gj-page-max` | 1280px · 80rem · 960pt | Content measure (the website runs 1162–1300px) |
| `--gj-prose-max` | 68ch | Running text measure |
| `--gj-header-height` | 128px · 8rem · 96pt | Site header — 128px desktop, 80px mobile, sticky, hides on scroll (decision G-34) |
| `--gj-rule-width` | 2px · 0.125rem · 1.5pt | Box rules and table borders (pp. 15, 32–33) |
| `--gj-header-height-mobile` | 80px · 5rem · 60pt | Site header on mobile |
| `--gj-band-padding` | clamp(48px, 6.7vw, 96px) | Band block padding — 64–96px desktop, 48–56px mobile (decision G-38) |
| `--gj-card-border` | 4px · 0.25rem · 3pt | The sticker card’s navy keyline (decision G-31) |

### Breakpoints

| Value | Meaning | Note |
|---|---|---|
| 640px | Phone → large phone | — |
| 768px | Tablet: two columns | — |
| 1024px | Desktop navigation | — |
| 1440px | Wide: statements reach full size | — |

### Max widths

| Value | Used by |
|---|---|
| 1280px | Every page |
| 68ch | Paragraphs |

### z-index

| Value | Used by |
|---|---|
| 10 | Sticky header |
| 40 | Drawers |
| 50 | Modals and toasts |

### Layout policies

- Pages are full-bleed bands on seven grounds: cream, lilac, lime-wash and sky (light); navy, violet and orange (dark). Light and dark alternate and two bands of the same ground never touch (decision G-38).
- Dark bands (navy, violet, orange) are short statement bands; light bands carry the grids, tables and cards.
- Each band carries one centred section title (sometimes with one subtitle), its content, and at most one action centred under it.
- Stickers and doodles sit at a band’s edge or across a seam, never under text — at most one per band.
- Photography runs full-bleed, in a cream 4px frame, or as cut-outs in circles; never with a soft shadow.

### Elevation

- Policy: **tokens-only**.
- The only shadow tokens permitted: `--gj-shadow-offset`, `--gj-shadow-offset-hover`, `--gj-shadow-offset-sm`, `--gj-shadow-soft`, `--gj-shadow-sticker`, `--gj-shadow-lift`, `--gj-shadow-overlay`.

### Shape and layout rules

- Bands alternate light (cream, lilac, lime-wash, sky) and dark (navy, violet, orange); two bands of the same ground never touch.


## 6. Motion

### Easings

| Token | Value | Use |
|---|---|---|
| `--gj-ease` | `cubic-bezier(0.22, 1, 0.36, 1)` | Reveals and hovers (G-8) |
| `--gj-ease-in-out` | `ease-in-out` | Colour changes |

### Durations

| Token | Value | Use |
|---|---|---|
| `--gj-duration-quick` | 150ms | Hover colour |
| `--gj-duration-base` | 250ms | Sticker pop, card lift |
| `--gj-duration-header` | 350ms | The header hiding on scroll-down and returning |
| `--gj-duration-reveal` | 400ms | A band revealing once |

### Choreography

| Name | How it moves |
|---|---|
| Card lift | A sticker card rises 4px and its hard navy drop grows from 6px to 10px, 150ms. Nothing blurs. |
| Button hover | The orange pill turns navy over 150ms (optionally rising 2px); the lime pill turns cream on navy. |
| Header | The header hides on scroll-down and returns on scroll-up, 350ms cubic-bezier(.4, 0, .2, 1). |
| Marquee (exception) | One brand line loops right-to-left, 110s linear (50s mobile), on the web only; it stops under prefers-reduced-motion and never appears in documents (decision G-44). |
| Sticker pop | A sticker scales from 94% with a 3° tilt to rest, 250ms on --gj-ease. Stickers only — the logo never moves (p.31). |
| Reveal | A band fades and rises 12px into place once, 400ms. |

### Caps and bans

- No transition or animation exceeds 400ms.
- Banned keywords: `bounce`, `elastic`, `shimmer`, `blink`, `wobble`.
- Never: Bounce and elastic easing in UI.
- Never: Motion on the logo — it never spins, wiggles or pops (p.31).
- Never: Auto-advancing carousels (the marquee band is the one governed exception, web only).
- Never: Blinking or flashing text.
- Never: Loops inside a cart, checkout or form.
- Never: Motion as the only carrier of a state.

### Reduced motion

- `prefers-reduced-motion: reduce` **must** be honoured — a build that omits it fails the check.
- Under prefers-reduced-motion: reduce, the marquee stops, cards do not lift, stickers appear at rest without the pop, bands appear without the rise; colour transitions remain. Nothing is communicated by motion alone.


## 7. Assets

Every asset below is content-addressed and immutable. Fetch it by URL; never redraw, retrace, recolour or regenerate a mark.

| Asset | Kind | Role | Colorway | Background | Mode | Format | Purpose | Platform | Label | URL |
|---|---|---|---|---|---|---|---|---|---|---|
| `logo.primary` | logo | primary | one-color | --gj-surface | light | svg | — | web | Navy on cream — the primary mark (pp. 28, 32) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/63aa6978ee7b29c097d4871fe5528cd433ab96d9bd0ae9940b9a60b3875f09b5 |
| `logo.primary` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Cream on navy, sky or photography (p.29) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/365c001fd040a1b8e7b1d86d529127586369caa4020070ebadc06a10daecd6e4 |
| `logo.primary` | logo | primary | lime | --gj-navy | dark | svg | — | web | Lime on navy — the cover (p.1) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/1fdbd85c9c6fadbbfd202516ebd69b31fdf86c492e8b297e0a3ffffb51213292 |
| `logo.primary` | logo | mono | mono | #FFFFFF | light | svg | — | web | Single-ink black — production only (decision G-11) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/b7a388a399b897c9f4baae075faee2116605c53489a5cd32bcd243da9bb05e47 |
| `logo.primary` | logo | inverse | mono | #000000 | dark | svg | — | web | Single-ink white — production only (decision G-11) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/d62e2e785581044967b246dc41c91406d25c1ad9e135cb89c0e61840284d97af |
| `logo.primary` | logo | primary | one-color | --gj-surface | light | svg | — | web | Small-scale cut, navy — below 200 × 200 px or 2 × 2 in (p.32) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/4cf6ecf57b8a9ad7bffe1e9463c5fd2929e71c56f130adfe9c531b69059d4ddf |
| `logo.primary` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Small-scale cut, cream (p.32) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/83cb11b5bbe08516c41b7f258d5e08db60f19321c405aea56862dfac38ca8aa2 |
| `logo.primary` | logo | primary | one-color | --gj-surface | light | png | — | email | Navy on cream, 2048 px raster | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/e20b74bd500148b6897775295a291c39be523139c09839d0aff2ecaa6cb46de1 |
| `logo.primary` | logo | inverse | inverse | --gj-navy | dark | png | — | email | Cream, 2048 px raster | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/20615c3078b462891991eb760759b92ab9fc26dbc06bc4d43c2c3bf2c67d6160 |
| `logo.horizontal` | logo | lockup | one-color | --gj-surface | light | svg | — | web | Navy on cream (p.33) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/31f3f8141e978a4094edbfdce05d3bda8d617a7b5256201a162ed1838559823b |
| `logo.horizontal` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Cream on navy — the website header (p.36) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/37187099cb336bfca92ba6ac45952dc79857e51ff91792dc056d2705a35bcdd8 |
| `logo.horizontal` | logo | lockup | pink | --gj-navy | dark | svg | — | web | Pink on navy (p.29) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/2a54ead8155ffd662aba580ba42b325e19e0e620b696015cc2589fd2479fe111 |
| `logo.horizontal` | logo | mono | mono | #FFFFFF | light | svg | — | web | Single-ink black (decision G-11) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/49fa5264cdfe19f480d152f5c7d8fa3dd263d4a5dd192345c1787507e56253b5 |
| `logo.horizontal` | logo | inverse | mono | #000000 | dark | svg | — | web | Single-ink white (decision G-11) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/20af107b5e902e41697a6993e5d3f22f0e3067a44b5ef828e7f530f3d4f97b80 |
| `logo.horizontal` | logo | lockup | one-color | --gj-surface | light | svg | — | web | Small-scale cut, navy — below 100 × 300 px or 1 × 3 in (p.33) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/c2786cf368b247747d46278cea0000a3d285b414058470fb22d597a389824318 |
| `logo.horizontal` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Small-scale cut, cream (p.33) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9051009ac904f05b482a0d303bb3e1134d01af16e4076fd9b6be0aa1c15e6f9f |
| `logo.horizontal` | logo | lockup | one-color | --gj-surface | light | png | — | email | Navy, 2048 px raster | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/b0c13e205a33e3a7087d786205a752d0ef3c7f3adb58c6ee92724adb5d61b89e |
| `logo.horizontal` | logo | inverse | inverse | --gj-navy | dark | png | — | email | Cream, 2048 px raster | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/f7153b452ed84607f72af9c99a208e8615c9b53a015a5c8850bc1d310cef240c |
| `logo.mark` | logo | mark | one-color | --gj-surface | light | svg | — | web | Navy on cream (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/79eea02cf52e140fa5785c100f1ba206f2912e9d7658419f46cec2fd3fee8c9d |
| `logo.mark` | logo | inverse | inverse | --gj-sky | dark | svg | — | web | Cream on sky (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/6d6b5c40e6394a8cdd3c7efaf8e959ec9ddb7d53e3d8b4ef28618c45cdd03015 |
| `logo.mark` | logo | mark | sky | --gj-lime | light | svg | — | web | Sky on lime (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/b262d13a9b05084bee1ac4476be7b2fb03c41f3ec8460b40c812dee0df4bf06d |
| `logo.mark` | logo | mark | orange | --gj-pink | light | svg | — | web | Orange on pink (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/e029475c6ef12a5459a051e9b2cebfe2edbbcc2a2b662a7c43219160964fb525 |
| `logo.mark` | logo | mono | mono | #FFFFFF | light | svg | — | web | Single-ink black (decision G-11) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/babf7a325a0a2fe5bbb06903e9f673441d09f36b18c045653486a28718efb490 |
| `logo.mark` | logo | inverse | mono | #000000 | dark | svg | — | web | Single-ink white (decision G-11) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/4ac0b319bc9a367435f250c6396ae5304057fa7d118c2e379e50364721775d96 |
| `logo.mark` | logo | mark | one-color | --gj-surface | light | png | — | web | Navy, 1024 px raster | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/807a8eae08af3b146532b3331aec05f9e44ee2cb93ae7b28e97987fb21af775f |
| `logo.mark` | logo | inverse | inverse | --gj-navy | dark | png | — | web | Cream, 1024 px raster | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/11f658808c01ef59617f23ba92e21dd3d16ba6413f12da96677068da93239610 |
| `logo.seal` | logo | mark | full-color | --gj-navy | any | svg | — | web | The scalloped seal from the manual's running header (pp. 28–37), as drawn | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/ed1b257b83461959b1fdec00cc56cc9f0febe468493aca32dfac0705b79356ca |
| `logo.gojo` | logo | wordmark | one-color | --gj-surface | light | svg | — | web | Navy on cream (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/743426e59dd1abb9be3d30629d912f2b3b0a6e6a6f09fc8f9492c4b9365ae3b6 |
| `logo.gojo` | logo | inverse | inverse | --gj-sky | dark | svg | — | web | Cream on sky (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/f84109401a7b6ad48e1167d70dc45ceda139cf193c549a9c8e146d04f5186a10 |
| `logo.gojo` | logo | wordmark | orange | --gj-pink | light | svg | — | web | Orange on pink (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/2ea4398b7b9ee1d3a730f443415e83c992e05ef00252f7172f90a18e2d4d3c56 |
| `logo.gojo` | logo | wordmark | sky | --gj-lime | light | svg | — | web | Sky on lime (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/651981e6a29686de7d4965e79b64bd3282955a78323ef33a055f6557bbe1da60 |
| `logo.gojo` | logo | wordmark | pink | --gj-navy | dark | svg | — | web | Pink on navy (p.30) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/7ca9f8ce4869fb1c829a0afb1b417dd6ced0d274331adb97710627011dde969a |
| `logo.donuts` | logo | lockup | one-color | --gj-surface | light | svg | — | web | Stacked, navy (p.41) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/fd6cc9b85250fc2e3a68f31447c2f16e2b9bd52400fc190764d7b9266395a2c9 |
| `logo.donuts` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Stacked, cream (p.39) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/efc6c40c596929395a5451dc39f982e771ebff2f2b9e26cde87ed45c58b8f422 |
| `logo.donuts` | logo | lockup | one-color | --gj-surface | light | svg | — | web | Horizontal, navy (p.42) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/343504aacd93327f8346680a3faf25410ca4fa8aed35070c98ad58840ca77b12 |
| `logo.donuts` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Horizontal, cream (p.39) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/3a18c51acc3b775f0860afa7416c65ea63fc528631c1754bb0c1c26083455d1f |
| `logo.donuts` | logo | lockup | lime-pill | --gj-navy | dark | svg | — | web | Cream logotype, lime pill, navy DONUTS — on navy (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/a5beeefea08a379b9c12c601aeb7feb2743f1c9c16317f7e026c3e2a171d6dc9 |
| `logo.cookies` | logo | lockup | one-color | --gj-surface | light | svg | — | web | Stacked, navy (p.50) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/ccb859f6485e2a244e189d32216bb7171a76d24ded5d1a822cb2af57211dd6d5 |
| `logo.cookies` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Stacked, cream (p.48) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/3bb0a4b9b430abb5277262fe2150d81fcf628c1e1cc5d532bd96e46b6671ab6d |
| `logo.cookies` | logo | lockup | one-color | --gj-surface | light | svg | — | web | Horizontal, navy (p.51) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/f52532996e1c95ea1f68dd513706b3f1fb9823189b2d9cf3b4560b04e470d27a |
| `logo.cookies` | logo | inverse | inverse | --gj-navy | dark | svg | — | web | Horizontal, cream (p.48) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/d97544d674abc79a9f709b01686629ca7b61db9600ca7b9c3563fe4b62ef8e31 |
| `image.stickers` | image | primary | full-color | --gj-surface | any | svg | — | web | The sticker sheet (p.30), as drawn; the offset shadows are omitted | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/29db9fdcd7573567987c230cbf36483ef3f1faca1c8501d3cf0db4abb42af0ca |
| `pattern.wave` | pattern | primary | one-color | --gj-surface | any | svg | — | web | The manual’s wavy underline under every section label (pp. 2, 19–20, 29–55), lime — print and brand book | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/1808cc4dd3e5e5e4a97a89d270c272260b9868e34e54bdeee399ce09f13ce755 |
| `pattern.underline-swash` | pattern | primary | one-color | --gj-surface | any | svg | — | web | Orange looped underline under one headline word (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/e652815b0408a0c0df887a0fd25c210edfd3ed8a13ff5b9bf3487764445e078f |
| `pattern.scallop-divider` | pattern | primary | one-color | --gj-orange-light | any | svg | — | web | Orange scalloped edge — horizontal (website promo band) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/aa11eb11380dbbb1cf3a40edc529e57900d1d6778ab60f330b5da69b21dc266d |
| `pattern.scallop-divider` | pattern | primary | one-color | --gj-orange-light | any | svg | — | web | Orange scalloped edge — vertical (website promo split) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/3d11f9ef9c76435419ea39b3826be49917e983f901697e4e72f967ea9d9de7be |
| `image.starburst` | image | primary | full-color | --gj-surface | any | svg | — | web | Lime starburst with navy “You’ll love” — beside a section title (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/fc63d095ac6012aaf5bd3e1095dfe8d09c30495beecae7728e3df127e6574371 |
| `image.smiley-seal` | image | primary | full-color | --gj-surface | any | svg | — | web | Lime seal, navy ring — across a band seam (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/80dc9fbb283ead71a9433336ead022ce681d10cc02af71ff669270cf6acf4032 |
| `image.smiley-seal` | image | primary | full-color | --gj-navy | dark | svg | — | web | Cream seal, navy ring — on navy and photography (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/605b29c9cd8576763859e1c7b454cbe170ed52df20624332eb5d2a7150706174 |
| `image.claim-badges` | image | primary | full-color | --gj-orange | any | svg | — | web | Navy hexagon — 0g* added sugar (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/37cc7ab812cff44cdcdb280301fa58d7eaa2ce1c32a4001c252b4ce0d1482f66 |
| `image.claim-badges` | image | primary | full-color | --gj-orange | any | svg | — | web | Navy hexagon — 1g* net carbs (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/fd4d9c5b48de919e35dc9702098c43ab1d79dd3860620bd5dccd7a616102ef55 |
| `image.claim-badges` | image | primary | full-color | --gj-orange | any | svg | — | web | Navy hexagon — gluten free (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/7ee3234447e9f2298861fc666e7c171ffa46c3be416aff687e3442ec88fdbecb |
| `image.doodles` | image | primary | full-color | --gj-surface | any | svg | — | web | “yum!” speech bubble (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/73600d882a45577deb9d2355800b7c977453b5553028a9c17f416c49b3bf2fa9 |
| `image.doodles` | image | primary | full-color | --gj-orange | any | svg | — | web | “NEW!” with an arrow — cream, on orange (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/614603fefe1a427ae902f764eb243358018d3f656611411aa406d4b4863ba23b |
| `image.doodles` | image | primary | full-color | --gj-violet | any | svg | — | web | Lime sparkle ticks (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/d342bd81a7c8165868ac18e275cb2496e4ce8f7c8f86723ad40d415cc322438c |
| `image.doodles` | image | primary | full-color | --gj-surface | any | svg | — | web | Smiling donut face (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/b19051d676778b808f606b91594858c9b7bf0d94c0716a7145c77bcf93d9950e |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | No added sugar — duotone (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/f3ec7f3f91c16e339570c6a960ef96cd36fcd92ac1dcb2e59aeec3fe1a1d0bfd |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | Gluten free — duotone (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/87045ecee17a4666c09ff48b949e9a3db68d0d6e0237db8fd402cff730775415 |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | Net carbs — lime figure (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/4bd76a51eee3f5c80cdb0e3991ba508796c5a9702bff4289d9e81579a8033d52 |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | Natural ingredients — lime sprout (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/451931d023a8f1528d7dd722e300970664cee36d972b7d0e2660beb9c6dedeb5 |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | Taste — lime steam (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/c8e08d8e6f94116521cba175531669c6e19db09a89612e2a739ddbbf7b586830 |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | Donut with a check (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/75213273f3c04d30acce683c7f124a9256c50e7d469ca5c78643622787aa02b3 |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | Zero sugar — orange slashed ring (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/ff6bba86adf8c1b6b63890a51bfb61853a30743eedccd25b2df9e9ab44fccb7a |
| `icon.benefits` | icon | primary | full-color | --gj-surface | any | svg | — | web | No wheat — orange slashed ring (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9b36fdc120e1a7e71bd9e4237acc2dccdd8c8a256628244ce83d9d17b302d928 |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | svg | — | web | Master (vector) — navy Gj on full-bleed lime | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/785011b9759e8f44c3eefc5994e369102eedef0be161a9ed4da6199256570194 |
| `appicon.pwa` | appicon | appicon | full-color | — | any | svg | — | web | Rounded tile (vector) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/cc4d65369a058745d4d4e939d4b231e778594fc5e0e32e2ee4fbf6077512ca6b |
| `appicon.pwa` | appicon | appicon | full-color | — | any | png | any | pwa | PWA 192 (any) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/fa4b18961e0dd09090ac42f480512bcec566a19767c5509b71aa5d300c1a698c |
| `appicon.pwa` | appicon | appicon | full-color | — | any | png | any | pwa | PWA 512 (any) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/fa286ba78044d2fa31e926ce0a8da520e8346bbd236ccb12edc662cd02c2fb57 |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | maskable | pwa | PWA 192 (maskable) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/2c61b64d0259cdcaa83c73f7701fb84889ba53d315f0aab273493fe296a8b532 |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | maskable | pwa | PWA 512 (maskable) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/f5d76aaddb648421bbbb90a519717c6db26d761243e843dda66c752dd14c78a4 |
| `appicon.pwa` | appicon | appicon | mono | — | any | png | monochrome | pwa | PWA 512 (monochrome) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9d603fb40b4702113b0a9be5dea93b7a88bf4643c6a4a42a82dff9fea31e5854 |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | — | ios | iOS 180 (apple-touch-icon) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/b155ecd9bbcc8809a1c79640241ca3970ffcfa07eb8c20a043618fa86ffcee3e |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | — | ios | iPad Pro 167 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/424054e8adb22b941d9fabacf39abd2c22847d535309861e48d57f19c038f89a |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | — | ios | iPad 152 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/58b7420466fd02f74abc2e6bd2a7cd01e678ab40fae5fa8ffa2895fef8b9446e |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | — | ios | iPhone 120 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/0013a49c4478f5877de8410a8af09290ca2f9a487aa5800bfa88a15194ff3fa8 |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | — | ios | App Store 1024 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/27998337246c8f20f92c11669b34979ba249d743c0da2e55785872e4af9f7148 |
| `appicon.pwa` | appicon | favicon | full-color | — | any | png | — | web | Favicon 16 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/01364861f0feffd84a91470984f96885a40699f5d32b0b010095cf28f9895284 |
| `appicon.pwa` | appicon | favicon | full-color | — | any | png | — | web | Favicon 32 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9c41c455247af2dbc177f9d59992602c173a3a3fbd27c5d254933a6726687371 |
| `appicon.pwa` | appicon | favicon | full-color | — | any | png | — | web | Favicon 48 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/a2697c26a855ab13592546abd492bbcdd4ad4367c806b7fb93059b44d2ea43af |
| `appicon.pwa` | appicon | favicon | full-color | — | any | ico | — | web | favicon.ico (16/32/48) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/42603c28c737d122e5e7b49aec9b08c455ba9034be212d0f4ecc58fbf2fe0e80 |
| `appicon.pwa` | appicon | appicon | full-color | --gj-lime | any | png | — | windows | Windows tile 150 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/690e6e44e1bf5d0da7241cbb824070268091c50a20ab48a3e00ffecec5872d54 |
| `appicon.pwa` | appicon | appicon | full-color | — | any | png | — | macos | macOS 1024 (rounded tile; not the Apple template squircle) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/db3535ff39c6191f42f6fc3960183a9cbc6fae37b1f8ea496e4f5025d0e7fa32 |
| `appicon.pwa` | appicon | mono | mono | #FFFFFF | light | png | — | web | One-colour black | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9d603fb40b4702113b0a9be5dea93b7a88bf4643c6a4a42a82dff9fea31e5854 |
| `appicon.pwa` | appicon | mono | mono | #FFFFFF | light | svg | — | web | One-colour black (vector) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/c3c3796890255b8388358ce16dc2eece79e2ec3bda689507c4304922d730b488 |
| `appicon.pwa` | appicon | inverse | inverse | #000000 | dark | png | — | web | One-colour white | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/14e96857b3000d1481f78971365da6f06529092ca27573b0371854fc4b8df1dd |
| `appicon.pwa` | appicon | inverse | inverse | #000000 | dark | svg | — | web | One-colour white (vector) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/2d7014a388fb43ed021eab866779331d29390dcfeecd253418af178f0e9b3bc0 |
| `og.social` | og | og | — | — | any | png | — | social | og:image 1200 × 630 — lime stacked logotype and the tagline on navy (decision G-10) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/407477c3e0e2d924aac064a198f6bb24e36abf2944f4e3eae79b889f6cfe098e |
| `font.headline` | font | font | — | — | any | woff2 | — | web | Barlow Condensed SemiBold 600 — buttons, card titles, subtitles (website); the manual’s headlines | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/215a93c696f442034a46fbb382958f753fda60e30490683aeea6b235fcbb2b66 |
| `font.label` | font | font | — | — | any | woff2 | — | web | Barlow Condensed Bold 700 — labels, eyebrows, footer headings (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/3787a5a419171630e6890cfa47c4da067474d005cd0ff8dc11ec090fdc3ee2b8 |
| `font.display` | font | font | — | — | any | woff2 | — | web | Barlow Condensed Black 900 — the open stand-in for Obviously Narrow Black (decision G-49) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/aa01966de3f608a765a172237a3ffc6161fe4c7e3870b1a904dc6437e54c4e24 |
| `font.title` | font | font | — | — | any | woff2 | — | web | Barlow Black 900 — section titles | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/6f5d995ccc4d8ffd9e8cb4c303fc1f3646d6c62d40269ef59463332f12d5b897 |
| `font.price` | font | font | — | — | any | woff2 | — | web | Barlow SemiBold 600 — prices, navigation, claim badges (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/4b52ddd4836b592df0e4832b8286956883cdc651b015126bdd18f184b7f90cc3 |
| `font.sans` | font | font | — | — | any | woff2 | — | web | Poppins Regular 400 — the website text face (p.35) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/7d93459d86585bfcdbb7e0376056226adb25821ee54b96236fe2123e9560929f |
| `font.sans-medium` | font | font | — | — | any | woff2 | — | web | Poppins Medium 500 — lead paragraphs, footer links (website) | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/cd36de204aca2d5fa263a731f7c20009b5e3d754ba1f1e03c33e93a48f3e7446 |
| `font.sans-bold` | font | font | — | — | any | woff2 | — | web | Poppins Bold 700 | https://brandguide.goodjourneydonuts.com/api/public/v1/assets/9338e65fc077355c7a87ae0d64cc101e23b9bf8ad78ae65f0f319c857311b526 |

### Clear space, minimum size, misuse

| Asset | Clear space | Minimum size | Never |
|---|---|---|---|
| `logo.primary` | The height of the “O” in GOOD on every side (pp. 29, 39, 48) — 15.3% of the stacked logotype's width, 8.9% of the horizontal logotype's width. | Use the small-scale cut below 200 × 200 px on screen or 2 × 2 in in print (p.32). No absolute minimum is printed. | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `logo.horizontal` | The height of the “O” in GOOD on every side (p.29) — 8.9% of the logotype's width. | Use the small-scale cut below 100 × 300 px on screen or 1 × 3 in in print (p.33). | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `logo.mark` | — | — | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `logo.seal` | — | — | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `logo.gojo` | — | — | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `logo.donuts` | The height of the “O” in GOOD on every side (p.39). | Small-scale cuts below 200 × 200 px (stacked) or 100 × 300 px (horizontal) (pp. 41–42); only the large-scale cuts are extracted here. | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `logo.cookies` | The height of the “O” in GOOD on every side (p.48). | Small-scale cuts below 200 × 200 px (stacked) or 100 × 300 px (horizontal) (pp. 50–51); only the large-scale cuts are extracted here. | Do not stretch the marks or make them illegible (p.31).; Do not use colours that are off-brand; use the approved palette (p.31).; Do not place over complex backgrounds or on backgrounds of insufficient contrast (p.31).; Do not use drop shadows or other unapproved graphic treatments (p.31).; Do not reconfigure the mark (p.31).; Do not rotate, tilt or skew the marks (p.31). |
| `image.stickers` | — | — | Stickers are accents: one cluster per layout, never behind body copy.; Never recolour a sticker outside the palette. |
| `pattern.underline-swash` | — | — | Under one word per band, never a whole line.; Orange only; never recoloured. |
| `pattern.scallop-divider` | — | — | Divides two orange fields; never a text underline. |
| `image.starburst` | — | — | Beside a title, never over it.; One per page. |
| `image.smiley-seal` | — | — | Across a seam or a corner; never over text.; Never in legal documents. |
| `image.claim-badges` | — | — | A row of three at most.; The claims must match the current pack, asterisk and footnote included; in business and legal documents they need owner and legal sign-off. |
| `image.doodles` | — | — | Decoration only: at most one per band, at an edge, never under text.; Never in legal documents. |
| `icon.benefits` | — | — | Each icon carries its word; the claim matches the pack.; Never mixed with operator (Lucide) icons. |
| `appicon.pwa` | — | — | Never redraw the Gj: every cut is the p.30 monogram, scaled.; Never place the icon tile on lime without a rule — it disappears. |

### Choosing a cut

`GET https://brandguide.goodjourneydonuts.com/api/public/v1/logo/<asset id>` answers with a 302 to the right variant. It accepts `?mode=light|dark`, `?colorway=`, `?format=svg|png` and ranks role > colorway > background/mode > format, degrading to the closest cut rather than returning nothing. `pdf` print masters and `woff2` faces are never redirected to — fetch those by their asset URL above.

### Asset and imagery rules

- Keep clear space equal to the height of the “O” in GOOD on every side of every logotype and lockup.
- Use the small-scale stacked logotype below 200 × 200 px / 2 × 2 in, and the small-scale horizontal below 100 × 300 px / 1 × 3 in.
- Never stretch, recolour off-palette, place on busy or low-contrast grounds, add drop shadows, reconfigure, rotate, tilt or skew the marks.
- The logotype is an asset, never live type: no font in this guide draws the swooping R.


## 8. Components

### Announcement rail — `announcement-bar`

| Field | Value |
|---|---|
| Group | Chrome |
| Selectors | `.gj-announcement` |
| Spec | A full-width sky rail over the header carrying one offer, 48px tall. |

| State | Spec |
|---|---|
| Rest | --gj-sky ground, --gj-navy ink (4.91:1), --font-headline 22px, +0.96px, centred, height 48px |

- One message.
- Navy ink only — cream on sky is 2.29:1 and fails even at 22px (decisions G-3, G-24).

Tokens consumed: `--font-headline`, `--gj-navy`, `--gj-sky`.

### Site header — `site-header`

| Field | Value |
|---|---|
| Group | Chrome |
| Selectors | `.gj-header` |
| Spec | A navy bar: Shop and About on the left, the cream horizontal logotype centred (about 336px), cart and a Sign In outline pill on the right. |

| State | Spec |
|---|---|
| Rest | .gj-on-navy, height 128px (80px mobile), --font-price 20px cream links, hover opacity .8 |
| Scroll | sticky; hides on scroll-down, returns on scroll-up, 350ms |
| Mobile | menu button left, logotype centre, cart right; the menu opens a navy sheet with --font-title 28px links |

- The logotype is an asset, never live type.
- No shadow under the header.

Tokens consumed: `--font-price`, `--font-title`.

### Primary pill — `btn-primary`

| Field | Value |
|---|---|
| Group | Actions |
| Selectors | `.gj-btn`, `.gj-btn--primary` |
| Spec | The orange pill — SHOP NOW, ADD TO CART, BUY NOW — with a large cream label. |

| State | Spec |
|---|---|
| Rest | --gj-action (#F15627) ground, --gj-on-action label, --font-headline uppercase 28.8px (24px mobile), radius --gj-radius-pill, padding 8px 48px or full width of its column |
| Hover | --gj-action-hover (navy), 150ms, optional translateY(-2px) |
| Focus | 3px --gj-focus-ring outline, 2px offset |
| Small label | a label below 24px moves the pill to --gj-action-small (#C5380D, 5.17:1) |
| On navy | lime pill, navy label |

- One primary per band.
- The label is always ≥ 24px (or ≥ 18.66px bold) — that is what makes cream on #F15627 AA-large (3.34:1) (decision G-29).

Tokens consumed: `--font-headline`, `--gj-action`, `--gj-action-hover`, `--gj-action-small`, `--gj-focus-ring`, `--gj-on-action`, `--gj-radius-pill`.

### Secondary pill — `btn-secondary`

| Field | Value |
|---|---|
| Group | Actions |
| Selectors | `.gj-btn`, `.gj-btn--secondary` |
| Spec | The lime pill — SHOP ALL PRODUCTS, FOLLOW US ON INSTAGRAM. |

| State | Spec |
|---|---|
| Rest | --gj-lime ground, --gj-navy label (8.79:1), --font-headline uppercase 24–28.8px, pill |
| Hover | cream ground, navy label, 150ms |

- Under a grid, never beside a primary pill (decision G-30).

Tokens consumed: `--font-headline`, `--gj-lime`, `--gj-navy`.

### Pill on orange — `btn-on-orange`

| Field | Value |
|---|---|
| Group | Actions |
| Selectors | `.gj-btn`, `.gj-btn--on-orange` |
| Spec | The navy pill — the only action on an orange band (BUY NOW in the promo split). |

| State | Spec |
|---|---|
| Rest | --gj-navy ground, cream label (11.25:1), --font-headline uppercase 28px, pill |

- An orange band never carries an orange pill (decision G-30).

Tokens consumed: `--font-headline`, `--gj-navy`.

### Outline pill — `btn-outline`

| Field | Value |
|---|---|
| Group | Actions |
| Selectors | `.gj-btn--outline` |
| Spec | The Sign In control: a 3px cream outline pill on navy. |

| State | Spec |
|---|---|
| Rest | transparent, 3px solid cream border, --font-price 20px cream, padding 16px 56px |
| Hover | fills cream, navy label |

- Secondary actions in the header only (decision G-30).

Tokens consumed: `--font-price`.

### Split hero — `hero`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-hero` |
| Spec | Product photograph left (about 54%), cream panel right: rating eyebrow, display H1, one lead line, a full-width primary pill, then a three-up benefit row. |

| State | Spec |
|---|---|
| Desktop | 700px tall; H1 --font-display 56px / 57.6 +2px; lead --font-sans-medium 24px; benefits grid 1fr 1.3fr 1fr, gap 32px |
| Mobile | photo full-bleed above, panel stacks |

- The rating eyebrow is orange at 20px bold (AA-large) — smaller, it is --gj-accent-ink.
- Only claim a rating or customer count the business can substantiate (decision G-51).

Tokens consumed: `--font-display`, `--font-sans-medium`, `--gj-accent-ink`.

### Statement band — `statement-band`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-statement` |
| Spec | A full-bleed band with one display statement whose key phrase changes colour, and one subtitle. |

| State | Spec |
|---|---|
| On cream | navy statement, --gj-emphasis (orange) phrase at display size |
| On navy | cream statement, lilac (or lime) phrase |

- Emphasis is colour, never weight.
- Never orange emphasis on lilac (2.54:1) (decision G-36).

Tokens consumed: `--gj-emphasis`.

### Section label — `section-label`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-label` |
| Spec | Tracked caps — on the web with the orange underline swash under one headline word; in the brand book over the lime wave rule. |

| State | Spec |
|---|---|
| Rest | --font-label, +0.04em, uppercase, 20px |
| Web | pattern.underline-swash under one word, at most once per band |
| Brand book | pattern.wave 8px below |

- On screen the swash is the only decorative rule; the wave rule belongs to print (decision G-35).

Tokens consumed: `--font-label`.

### Highlighter — `highlighter`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-highlight` |
| Spec | A lime block behind a phrase of a tagline (pp. 5, 17). |

| State | Spec |
|---|---|
| Rest | --gj-highlight ground, --gj-on-highlight ink, no radius, 0.1em inline padding |

- One highlighted phrase per block.

Tokens consumed: `--gj-highlight`, `--gj-on-highlight`.

### Bar quote — `pull-quote`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-pullquote` |
| Spec | Body copy introduced by a 28px-wide vertical bar (pp. 6, 9, 10, 11, 19). |

| State | Spec |
|---|---|
| On navy | lime bar |
| On cream | violet bar |

- The bar is as tall as the paragraph.

### Numbered list — `numbered-list`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-numbered` |
| Spec | Numbers in lime discs (pp. 21–25) or tall display numerals. |

| State | Spec |
|---|---|
| Disc | lime disc, navy Barlow Black numeral |
| Tall | --font-display numerals in violet, or orange at ≥ 24px |

- Two digits always: 01, 02.

Tokens consumed: `--font-display`.

### Sticker card — `product-card`

| Field | Value |
|---|---|
| Group | Commerce |
| Selectors | `.gj-product-card` |
| Spec | The website’s product card: a cream card framed by a 4px navy keyline with a hard navy drop. Claim flag, photograph, title, price, stars, review link, full-width orange pill. |

| State | Spec |
|---|---|
| Rest | --gj-surface-raised, 4px solid --gj-navy, radius --gj-radius-card (16px), --gj-shadow-offset; content padding 0 24px 24px |
| Hover | translateY(-4px), --gj-shadow-offset-hover, 150ms |
| Content | title --font-headline Title Case 35.2px; price --font-price 20px +1.2px; orange stars; review link --gj-accent-ink underlined; pill 80% wide |

- The same frame dresses Instagram cards, the product gallery and the comparison table’s featured column.
- One claim flag per card, as printed on the pack (decision G-31).

Tokens consumed: `--font-headline`, `--font-price`, `--gj-accent-ink`, `--gj-navy`, `--gj-radius-card`, `--gj-shadow-offset`, `--gj-shadow-offset-hover`, `--gj-surface-raised`.

### Claim flag — `claim-flag`

| Field | Value |
|---|---|
| Group | Commerce |
| Selectors | `.gj-claim-flag` |
| Spec | A two-cell tab on a card’s top-left corner: a sky square with a cream check, then a cream tab with the claim (“3g net carbs”). |

| State | Spec |
|---|---|
| Rest | flag 70px tall; icon cell --gj-sky 60px; text cell cream, --font-price 20px +1.2px navy |

- Claims exactly as the pack prints them (decision G-37).

Tokens consumed: `--font-price`, `--gj-sky`.

### Benefit row — `benefit-grid`

| Field | Value |
|---|---|
| Group | Commerce |
| Selectors | `.gj-benefits` |
| Spec | Three to six duotone benefit icons over two-line labels — under the hero, or around the product photo on navy. |

| State | Spec |
|---|---|
| On cream | icon.benefits glyphs 48–60px, --font-headline 22px navy labels, line-height 1 |
| On navy | same glyphs, cream labels |

- Claims must match the label exactly.
- Icons stand free — no circle (decision G-45).

Tokens consumed: `--font-headline`.

### Benefit orbit — `benefit-orbit`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-orbit` |
| Spec | A navy band: a centred statement with lilac emphasis and one subtitle; a product photo on a scalloped blob with a swirl doodle; six benefits placed three left, three right. |

| State | Spec |
|---|---|
| Rest | .gj-on-navy, container 1216px; benefit labels --font-headline 22px cream, max 180px |

- One per page (decision G-37).

Tokens consumed: `--font-headline`.

### Marquee band — `marquee-band`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-marquee` |
| Spec | A violet strip, 144px tall, with one repeating brand line in cream (“WARNING: MAY CAUSE HAPPINESS”). |

| State | Spec |
|---|---|
| Rest | --gj-violet ground, --font-marquee 128px uppercase cream, gap 48px |
| Motion | 110s linear loop (50s mobile) |
| Reduced motion | static |

- Web only; in documents it is a static section opener (decisions G-37, G-44).

Tokens consumed: `--font-marquee`, `--gj-violet`.

### Review masonry — `review-masonry`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-reviews` |
| Spec | A lilac band: a wide-title headline, three columns of review cards (video cards span two rows), one orange pill under the grid. |

| State | Spec |
|---|---|
| Rest | --gj-lilac ground, grid 1000px; cards cream, radius 16px, --gj-shadow-soft, padding 25.6px |
| Card | title --font-label 20px caps in quotes; body Poppins 14–16px navy; author --font-label navy |

- Never orange text on lilac — the headline’s emphasis phrase is navy-underlined with the swash instead (decisions G-36, G-37).

Tokens consumed: `--font-label`, `--gj-lilac`, `--gj-shadow-soft`.

### Comparison table — `comparison-table`

| Field | Value |
|---|---|
| Group | Commerce |
| Selectors | `.gj-compare` |
| Spec | A label column, then the featured “us” column (navy head with the DONUTS lockup, sky value cells, 5px navy side keylines, 20px rounded foot, hard navy drop), then competitor columns (lilac heads, cream cells, 5px lilac underlines). Booleans are icons. A dated source line sits under the table. |

| State | Spec |
|---|---|
| Rest | labels --font-headline 19px navy left; values Poppins 20px navy centred |
| Mobile | scrolls sideways, the label column sticky |

- Navy text on sky (4.91:1).
- Competitor data carries its date and source, and is reviewed before it is published (decisions G-37, G-51).

Tokens consumed: `--font-headline`.

### Ingredient carousel — `ingredient-carousel`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-ingredients` |
| Spec | A cream band: title and subtitle, a row of lime-wash circles holding cut-out ingredient photographs, the name in the wide title face and one line of Poppins between arrows. |

| State | Spec |
|---|---|
| Rest | circles --gj-lime-wash about 240px (active 290px) |

- One ingredient in focus at a time (decision G-37).

Tokens consumed: `--gj-lime-wash`.

### Promo split — `promo-split`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-promo` |
| Spec | An orange band split in two: a still life on the lighter orange behind a vertical scalloped edge with navy claim badges; a NEW! doodle, a cream display title, one lead line and a navy pill. |

| State | Spec |
|---|---|
| Rest | --gj-orange with --gj-orange-light 70/30, 672px; title --font-display 56px cream (AA-large) |

- Text on orange is display size only; the action is btn-on-orange (decision G-37).

Tokens consumed: `--font-display`, `--gj-orange`, `--gj-orange-light`.

### Creators split — `creators-split`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-creators` |
| Spec | Half photograph on a sky field with hand-lettered name labels, half lime-wash panel with a display title, one paragraph and an orange pill; the GOOD smiley seal straddles the seam. |

| State | Spec |
|---|---|
| Rest | no gutter, 800px; body Poppins 20px navy |

- The founders’ note or the about page (decision G-37).

### Community band — `community-band`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-community` |
| Spec | A violet band: a left-aligned display title and subtitle, four Instagram post cards in the sticker frame, a lime pill with a sparkle doodle. |

| State | Spec |
|---|---|
| Rest | --gj-violet ground, padding 64px 0 80px; title cream (5.52:1) |

- Real customer posts only, with permission (decision G-37).

Tokens consumed: `--gj-violet`.

### FAQ accordion — `faq-accordion`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-faq` |
| Spec | A cream band: a centred title, optional orange category heads, one column of rows separated by 2px pink rules; the first row is open. |

| State | Spec |
|---|---|
| Rest | question --font-label 28px caps violet; answer Poppins 16px / 25px violet, max 800px; rule 2px --gj-pink-rule |
| Category head | --font-title 40px orange (display size) |

- Each question appears once per page — no section repeats another (decision G-37).

Tokens consumed: `--font-label`, `--font-title`, `--gj-pink-rule`.

### Legal page — `legal-page`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-legal` |
| Spec | The website’s styled page template for terms, rules and policies: one left column, a display H1 in Title Case, the effective date, numbered clauses with the clause name bold inline, Poppins body. |

| State | Spec |
|---|---|
| Rest | column 1162px (68–75ch in documents); H1 --font-display 56px / 67.2 Title Case +2.24px; body Poppins 16px / 25.6 navy; 16px between paragraphs |

- Every legal page uses this template — never an unstyled policy page.
- No stickers, no orange text (decision G-37).

Tokens consumed: `--font-display`.

### Framed photo — `framed-photo`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-framed` |
| Spec | A photograph in a 4px cream frame with 14px corners on a navy band; a collage tilts its polaroids −4° to +4°. |

| State | Spec |
|---|---|
| Rest | border 4px solid --gj-cream, radius --gj-radius-frame, max 600px |

- No soft shadows (decision G-37).

Tokens consumed: `--gj-cream`, `--gj-radius-frame`.

### Quote card — `quote-card`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-quote-card` |
| Spec | A cream card on lilac, or a lilac card on cream, with a large navy closing quote mark. |

| State | Spec |
|---|---|
| Rest | radius --gj-radius-card, --gj-surface-soft or --gj-surface-raised, navy text |

- Navy text only on lilac.

Tokens consumed: `--gj-radius-card`, `--gj-surface-raised`, `--gj-surface-soft`.

### Sticker accent — `sticker`

| Field | Value |
|---|---|
| Group | Decoration |
| Selectors | `.gj-sticker` |
| Spec | One sticker — the starburst, the smiley seal, a claim badge or a doodle — at a band’s edge or across a seam. |

| State | Spec |
|---|---|
| Rest | flat on the web (no shadow); --gj-shadow-sticker in the brand book; rotate −8° to 8° |
| Reveal | gj-pop once |

- Decorative: aria-hidden.
- Never over text or the logo; at most one per band (decision G-35).

Tokens consumed: `--gj-shadow-sticker`.

### Navy band — `navy-band`

| Field | Value |
|---|---|
| Group | Content |
| Selectors | `.gj-on-navy` |
| Spec | The brand’s dark ground — header, statement bands, the footer. |

| State | Spec |
|---|---|
| Rest | cream ink, lilac emphasis, lime accents |

- Violet never carries text on navy (2.04:1).

### Footer — `site-footer`

| Field | Value |
|---|---|
| Group | Chrome |
| Selectors | `.gj-footer` |
| Spec | A navy band in three columns: the stacked logotype and small links; a big wide-title menu (FAQ · ABOUT · SHOP) with cream social circles; REACH OUT with the support address and SIGN UP FOR SWEET SURPRISES with an email field. A centred legal line closes it. |

| State | Spec |
|---|---|
| Rest | .gj-on-navy, padding 64px 0 32px; menu --font-title 40px cream; headings --font-label 20px; links --font-sans-medium 16px |
| Legal line | “© <current year> Good Journey LLC” as live text, centred |

- Support address hello@goodjourneyfoods.com; website goodjourneydonuts.com; entity Good Journey LLC (decision G-41).
- One copyright year per page, never baked into the logo (decision G-40).

Tokens consumed: `--font-label`, `--font-sans-medium`, `--font-title`.


## 9. How to apply, by target

Three targets, three recipes. Pick the one that matches what you are building; do not improvise a fourth.

### A. An Ada-fleet web app (Next.js + FastAPI)

1. Install the consumer package `ada-pip-styleguide` (and its kit `@stritz/styleguide-kit`) into the project.
2. Ask the brand owner for a **subscription endpoint issued at this master** — the credential block carries `STYLEGUIDE_API_URL=https://brandguide.goodjourneydonuts.com`, a project-scoped `STYLEGUIDE_API_TOKEN`, `STYLEGUIDE_BRAND=goodjourney` and `STYLEGUIDE_CHANNEL=stable`. The public tier you are reading is for tools OUTSIDE the fleet; a fleet app subscribes and gets signature verification, overlays and push updates.
3. Render `<BrandStyles/>` in the root layout and `<BrandLogo/>` wherever a mark appears. Never hand-write a logo `<img>`.
4. Mount the kit's `/styleguide` viewer route so the project can show the brand it is actually serving.
5. Add `styleguide-check --strict` to CI. A FAIL is a broken build.

### B. Any other web project (no Ada, no wheel)

1. Vendor `https://brandguide.goodjourneydonuts.com/api/public/v1/brand.css` and `https://brandguide.goodjourneydonuts.com/api/public/v1/tokens.tailwind.css` into the repository, plus every asset from §7 the project actually uses.
2. Link the stylesheet in the document head, before your own CSS. If you use Tailwind v4, `@import` the theme file after `@import "tailwindcss";`.
3. Use the token names from §3–§6. Do not restate their values in your own CSS; reference the custom properties.
4. Re-vendor whenever the version at `https://brandguide.goodjourneydonuts.com/api/public/v1/.well-known/styleguide.json` changes.
5. Verify:

```
npx styleguide-check --effective https://brandguide.goodjourneydonuts.com/api/public/v1/effective.json \
  --css <your css glob> --strict
```

### C. A document — PDF, deck, proposal, report, email

- **This brand publishes document layouts — follow §12 (Documents) for any printed or PDF document; the notes below are the fallback for formats §12 does not cover (decks, email).**
- Page ground: `#FFFBF7`.
- Footer ink: `#312E7C`.
- Footer line: 'Good Journey LLC · goodjourneydonuts.com'.
- Document UI face: `Poppins, "Helvetica Neue", Arial, sans-serif`.
- Slide/page ground: `--gj-surface` (#FFFBF7).
- Headings: Obviously Narrow → Barlow Condensed Black — Section titles, H1s, page-template headings and document titles — uppercase on marketing bands.
- Running text: Bicyclette.
- Labels, captions, tables: Poppins.
- Type sizes: use the `pt` column in §4 — it is the px scale × 0.75, already computed.
- Logos: take the `pdf` print master from §7 where one exists, otherwise the `svg`; respect the clear space and minimum size in §7.
- Colour: the print builds (Pantone/CMYK) in §3 where the brand declares them.

Use `https://brandguide.goodjourneydonuts.com/api/public/v1/guide.pdf` as the visual reference — it is this exact version's brand book, rendered by the master.


## 10. Verify

Run this before you say the work is done:

```
npx styleguide-check --effective https://brandguide.goodjourneydonuts.com/api/public/v1/effective.json \
  --css <your css glob> --strict --json
```

A clean result is: exit code `0`, `totals.FAIL == 0`, and every family (`contrast`, `banned-values`, `token-liveness`, `demo-safety`, `drift`, `lock-violations`, `asset-integrity`, `literals`) reporting PASS or INFO. A WARN is a thing to explain, not a thing to ignore. A FAIL is not done.

Then report exactly this sentence:

```
Built against Good Journey v2 manifest 053c77ad8481a533d3dba66b5b16753add67d95ccec2a8d99373c444d81bfb9e; styleguide-check: 0 FAIL
```


## 11. Governance

**Locked** — Never change these. A delta on a locked path is dropped by the resolver and recorded as a violation — it does not silently apply.

`assets`, `assets.appicon.pwa`, `assets.font.display`, `assets.font.headline`, `assets.font.label`, `assets.font.price`, `assets.font.sans`, `assets.font.sans-bold`, `assets.font.sans-medium`, `assets.font.title`, `assets.logo.cookies`, `assets.logo.donuts`, `assets.logo.gojo`, `assets.logo.horizontal`, `assets.logo.mark`, `assets.logo.primary`, `assets.logo.seal`, `identity`, `rules`, `tokens.marketing.--gj-cream`, `tokens.marketing.--gj-ink`, `tokens.marketing.--gj-lavender`, `tokens.marketing.--gj-lilac`, `tokens.marketing.--gj-lime`, `tokens.marketing.--gj-lime-tint`, `tokens.marketing.--gj-lime-wash`, `tokens.marketing.--gj-navy`, `tokens.marketing.--gj-orange`, `tokens.marketing.--gj-pink`, `tokens.marketing.--gj-sky`, `tokens.marketing.--gj-violet`, `tokens.marketing.--gj-white`, `typography`, `voice`

**Tunable** — A project may change these through an APPROVED overlay, never by overriding CSS locally.

`assets.icon.benefits`, `assets.image.claim-badges`, `assets.image.doodles`, `assets.image.smiley-seal`, `assets.image.starburst`, `assets.image.stickers`, `assets.og.social`, `assets.pattern.scallop-divider`, `assets.pattern.underline-swash`, `assets.pattern.wave`, `layout`, `motion`, `tokens`, `tokens.marketing.--font-display`, `tokens.marketing.--font-headline`, `tokens.marketing.--font-label`, `tokens.marketing.--font-marquee`, `tokens.marketing.--font-price`, `tokens.marketing.--font-prose`, `tokens.marketing.--font-sans`, `tokens.marketing.--font-sans-bold`, `tokens.marketing.--font-sans-medium`, `tokens.marketing.--font-script`, `tokens.marketing.--font-title`, `tokens.marketing.--gj-accent`, `tokens.marketing.--gj-accent-ink`, `tokens.marketing.--gj-action`, `tokens.marketing.--gj-action-hover`, `tokens.marketing.--gj-action-small`, `tokens.marketing.--gj-border`, `tokens.marketing.--gj-border-strong`, `tokens.marketing.--gj-brick`, `tokens.marketing.--gj-butter`, `tokens.marketing.--gj-chocolate`, `tokens.marketing.--gj-denim`, `tokens.marketing.--gj-emphasis`, `tokens.marketing.--gj-fill-soft`, `tokens.marketing.--gj-focus-ring`, `tokens.marketing.--gj-hairline`, `tokens.marketing.--gj-highlight`, `tokens.marketing.--gj-info`, `tokens.marketing.--gj-ink-muted`, `tokens.marketing.--gj-ink-secondary`, `tokens.marketing.--gj-ink-soft`, `tokens.marketing.--gj-link`, `tokens.marketing.--gj-link-hover`, `tokens.marketing.--gj-marigold`, `tokens.marketing.--gj-navy-deep`, `tokens.marketing.--gj-negative`, `tokens.marketing.--gj-on-action`, `tokens.marketing.--gj-on-highlight`, `tokens.marketing.--gj-on-ink`, `tokens.marketing.--gj-orange-light`, `tokens.marketing.--gj-peach`, `tokens.marketing.--gj-periwinkle`, `tokens.marketing.--gj-periwinkle-grey`, `tokens.marketing.--gj-pink-rule`, `tokens.marketing.--gj-positive`, `tokens.marketing.--gj-radius-card`, `tokens.marketing.--gj-radius-frame`, `tokens.marketing.--gj-radius-lg`, `tokens.marketing.--gj-radius-media`, `tokens.marketing.--gj-radius-pill`, `tokens.marketing.--gj-radius-sm`, `tokens.marketing.--gj-shadow-lift`, `tokens.marketing.--gj-shadow-offset`, `tokens.marketing.--gj-shadow-offset-hover`, `tokens.marketing.--gj-shadow-offset-sm`, `tokens.marketing.--gj-shadow-soft`, `tokens.marketing.--gj-shadow-sticker`, `tokens.marketing.--gj-surface`, `tokens.marketing.--gj-surface-raised`, `tokens.marketing.--gj-surface-soft`, `tokens.marketing.--gj-surface-tint`, `tokens.marketing.--gj-tangerine`, `tokens.marketing.--gj-violet-ink`, `tokens.marketing.--gj-warning`, `tokens.navy.--gj-accent`, `tokens.navy.--gj-accent-ink`, `tokens.navy.--gj-action`, `tokens.navy.--gj-action-hover`, `tokens.navy.--gj-action-small`, `tokens.navy.--gj-border`, `tokens.navy.--gj-border-strong`, `tokens.navy.--gj-emphasis`, `tokens.navy.--gj-fill-soft`, `tokens.navy.--gj-focus-ring`, `tokens.navy.--gj-hairline`, `tokens.navy.--gj-highlight`, `tokens.navy.--gj-info`, `tokens.navy.--gj-ink`, `tokens.navy.--gj-ink-muted`, `tokens.navy.--gj-ink-secondary`, `tokens.navy.--gj-link`, `tokens.navy.--gj-link-hover`, `tokens.navy.--gj-negative`, `tokens.navy.--gj-on-action`, `tokens.navy.--gj-on-highlight`, `tokens.navy.--gj-on-ink`, `tokens.navy.--gj-positive`, `tokens.navy.--gj-surface`, `tokens.navy.--gj-surface-raised`, `tokens.navy.--gj-surface-soft`, `tokens.navy.--gj-surface-tint`, `tokens.navy.--gj-warning`

**Requesting an exception.** Ask the brand owner to raise an overlay request on this master (https://brandguide.goodjourneydonuts.com). An overlay is per-project, is reviewed by a human, and only then reaches your build. Publishing, promoting, rolling back, yanking and issuing a subscription all require a human administrator with MFA — no agent, no service account and no automation can perform any of them.

**What needs a human:** any change to a locked path; any new asset; any new token; any change to the contrast pairs, the banned values or the governance map; and every publish.


## 12. Documents

Business documents borrow the website’s layout language: a white page with cream, lilac, lime-wash, navy and violet bands; Barlow Condensed display caps over Poppins text; the sticker card for key facts; navy for the bands that matter. Pick the archetype, fill its blocks in order, and let the tokens do the colour.

Every document this brand sends — one-pager, pricing sheet, proposal, agreement, business plan, letter — is built from the archetypes and blocks below and printed with the brand's own stylesheet `https://brandguide.goodjourneydonuts.com/api/public/v1/documents.css` on top of `https://brandguide.goodjourneydonuts.com/api/public/v1/brand.css`. Machine index: `https://brandguide.goodjourneydonuts.com/api/public/v1/documents.json`.

### The procedure (convert any input document)

1. **Classify** the input into ONE archetype below by its purpose. When two fit, take the one with the smaller page budget. Unsure: `proposal` for anything addressed to one client, `one-pager` for anything that sells one thing.
2. **Fetch** the template `https://brandguide.goodjourneydonuts.com/api/public/v1/documents/<archetype>.html?format=<letter|a4>` — Letter for US recipients, A4 elsewhere, otherwise `letter`.
3. **Map** the input's content onto the recipe, in recipe order: each heading, paragraph, table, price, quote and signature goes into the block whose purpose matches. `repeat` blocks may repeat; `optional` blocks may be deleted; every required slot (marked * below) must be filled. Content with no matching block goes in `body`.
4. **Fill** only the `data-slot` regions. Delete unused optional blocks and every `[bracketed]` placeholder. Keep the classes, the two `<link>`s, the `data-format`/`data-archetype` attributes and the block order.
5. **Rewrite** the copy in the archetype's voice register (§2), within each slot's word limit, following the archetype's content guidance, do and don't.
6. **Never** add a colour, font, size, spacing or inline style: every visual decision is already in `documents.css`/`brand.css`. What the blocks cannot express goes in `callout` or `body` — never ad-hoc CSS.
7. **Render** to PDF from the brand origin (so fonts and the logo resolve) with WeasyPrint — the reference renderer — or a browser's print dialog (Chrome prints page numbers but no running heads).
8. **Self-check** before sending — every line must hold:
   - the page count is within the archetype's budget;
   - no `[bracketed]` placeholder text remains and every required slot is filled;
   - the HTML contains no hex/rgb colour, no `font-family`, no `style=` attribute and no extra `<link>`/`<script>`;
   - tables have a header row and numbers are right-aligned (`data-numeric`);
   - at most one `cta-band`; legal clauses are numbered by the stylesheet, never by hand;
   - running header, footer and page numbers appear as the chrome below says;
   - the copy passes §2 (voice) and §1 (protocol).

### Page setup

| Format | Margins (T R B L) | Bleed | Columns | Gutter | Baseline |
|---|---|---|---|---|---|
| US Letter (default) | 0.75in 0.75in 0.85in 0.75in | 0.125in | 12 | 0.25in | — |
| A4 | 18mm 18mm 22mm 18mm | 3mm | 12 | 6mm | — |

### Running chrome

| Field | Value |
|---|---|
| Header | none |
| Footer | text |
| Footer text | Good Journey LLC · goodjourneydonuts.com |
| Page numbers | none (n-of-total) |
| Rules | no |
| First page | footer on, header off, pageNumber off |

### Document palette

Resolved in mode `light`. Use the token, never the value.

| Role | Token | Value |
|---|---|---|
| page | `--gj-white` | #FFFFFF |
| ink | `--gj-navy` | #312E7C |
| inkStrong | `--gj-navy` | #312E7C |
| muted | `--gj-violet` | #5D59C4 |
| rule | `--gj-lilac` | #DED9FF |
| accent | `--gj-accent-ink` | #C5380D |
| accentInk | `--gj-cream` | #FFFBF7 |
| desk | `--gj-cream` | #FFFBF7 |

### Print type scale

Class `sg-doc-t-<role>`.

| Role | Face token | Size | Leading | Weight | Other |
|---|---|---|---|---|---|
| title | `--font-display` | 36pt | 38pt | 900 | 0.035em uppercase |
| h1 | `--font-display` | 26pt | 28pt | 900 | 0.035em uppercase |
| h2 | `--font-display` | 17pt | 20pt | 900 | 0.03em uppercase |
| h3 | `--font-headline` | 13pt | 16pt | 600 | 0.02em |
| lead | `--font-sans-medium` | 13pt | 17pt | 500 | — |
| body | `--font-sans` | 10pt | 16pt | 400 | — |
| small | `--font-sans` | 8.5pt | 13pt | 400 | — |
| caption | `--font-sans-medium` | 8pt | 11pt | 500 | — |
| eyebrow | `--font-label` | 9pt | 11pt | 700 | 0.04em uppercase |
| numeral | `--font-price` | 28pt | 30pt | 600 | 0.02em |
| quote | `--font-headline` | 16pt | 21pt | 600 | — |

### Blocks

Class `sg-doc-<id>`; `*` = required slot.

| Block | Kind | Use it for | Slots |
|---|---|---|---|
| `cover` | cover | The first page of any document longer than one page. | logo, eyebrow, title*, subtitle, meta |
| `cover-compact` | cover | The top of a one-pager: the cream panel at the height of its content, not the 4.5-inch cover. | logo, eyebrow, title*, subtitle, meta |
| `letterhead` | letterhead | The top of letters, legal documents, quotes and invoices. | logo, sender*, date*, recipient* |
| `section-opener` | section-opener | Opens a major section of a proposal or business plan. | number, eyebrow, heading*, lead |
| `section-opener-violet` | section-opener | The alternate opener, so consecutive sections change ground. | number, eyebrow, heading*, lead |
| `body` | body | Running prose: anything that is paragraphs. | heading, text* |
| `two-column` | two-column | Two parallel ideas side by side — before/after, founders, problem/solution. | heading, left*, right* |
| `callout` | callout | The one fact the reader must not miss — a key number, a guarantee, a deadline. | label, text* |
| `key-numbers` | callout | Two to four headline numbers — an executive summary or a results box. | label, text* |
| `pull-quote` | pull-quote | A line lifted from this document, to slow the reader down. | quote*, attribution |
| `testimonial` | testimonial | A customer or partner in their own words. | quote*, name*, role |
| `data-table` | data-table | Any table of figures — financials, specifications, schedules. | caption, table*, note |
| `comparison-table` | data-table | Us against the alternatives, row by row. | caption, table*, note |
| `price-block` | price-block | One price: a single product, a case, a programme. | label, amount*, period, note, features |
| `pricing-table` | pricing-table | Two to four tiers or packs side by side, one recommended. | tiers*, note |
| `feature-grid` | feature-grid | Three to six benefits or features, each a title and one sentence. | heading, items* |
| `feature-grid-navy` | feature-grid | The “why Good Journey” page of a proposal or plan. | heading, items* |
| `faq` | body | Terms explained, objections answered — the FAQ appendix. | heading, text* |
| `cta-band` | cta-band | The single next step the reader should take. | heading*, text, action |
| `signature` | signature | Where the parties sign — proposals, agreements, order forms. | parties* |
| `sign-off` | signature | The close of a letter — one signatory. | parties* |
| `legal-clause` | legal-clause | One numbered clause of terms, an agreement, rules or a policy. | number, heading*, text*, subclauses |
| `footnotes` | footnotes | Sources, dates and qualifications for numbers and claims. | items* |
| `contact` | contact | Who to write to, at the end of a document. | name, lines* |
| `closing` | contact | The last page or closing band of a long document. | name, lines* |
| `line-items` | data-table | The products or services on a quote or invoice. | caption, table*, note |
| `total` | price-block | The amount due or quoted. | label, amount*, period, note, features |
| `terms` | body | Payment, delivery and validity terms on a quote or invoice. | heading, text* |

**`cover`** — mirrors split-hero (home): the cream panel — eyebrow, display headline, one lead line

- The stacked or horizontal navy logotype, top left; never redrawn, never on a busy ground.
- One colour-shift phrase in the title (class sg-doc-accent): orange #F15627 is AA-large only, so it is used at title size and nowhere smaller.
- No stickers on a cover that carries a client’s name.
- `eyebrow`: Document type in caps — PROPOSAL, WHOLESALE PRICING, COMPANY PROFILE; ≤ 4 words
- `meta`: Prepared for <name, organisation> · <Month D, YYYY>; ≤ 14 words
- `subtitle`: One sentence on what the reader gets, in the brand voice; ≤ 25 words
- `title`: What this document is, in plain words — one phrase may be wrapped in sg-doc-accent (orange, display size); ≤ 8 words; required

**`cover-compact`** — mirrors split-hero (home): the cream panel — eyebrow, display headline, one lead line

- The stacked or horizontal navy logotype, top left; never redrawn, never on a busy ground.
- One colour-shift phrase in the title (class sg-doc-accent): orange #F15627 is AA-large only, so it is used at title size and nowhere smaller.
- No stickers on a cover that carries a client’s name.
- `eyebrow`: ONE-PAGER, PRODUCT LINE or PROGRAMME; ≤ 4 words
- `meta`: Optional: Month YYYY; ≤ 3 words
- `subtitle`: One sentence on what the buyer gets; ≤ 20 words
- `title`: The offer, one accent phrase; ≤ 8 words; required

**`letterhead`** — mirrors site-header (the logotype) and site-footer (the contact lines)

- The navy horizontal logotype; clear space equal to the height of the O in GOOD.
- Contact lines exactly as the brand writes them: goodjourneydonuts.com, hello@goodjourneyfoods.com, Good Journey LLC.
- `date`: Month D, YYYY; ≤ 4 words
- `recipient`: Recipient name, organisation, address — one per line
- `sender`: Good Journey LLC · goodjourneydonuts.com · hello@goodjourneyfoods.com — one per line

**`section-opener`** — mirrors benefit-orbit / navy statement band: cream display caps, lilac or lime emphasis

- Alternate with section-opener-violet: two openers of the same ground never follow each other.
- Emphasis on navy is lilac or lime, never orange.
- `eyebrow`: Section label in caps; ≤ 4 words
- `heading`: The section’s claim in display caps — one phrase may change colour; ≤ 8 words; required
- `lead`: One or two sentences that open the section; ≤ 35 words
- `number`: Two digits: 01, 02; ≤ 1 words

**`section-opener-violet`** — mirrors marquee-band — static: the violet strip with one cream line

- Cream on violet is 5.52:1 — body-size text is allowed; lilac is not (4.19:1).
- Never animated, never repeated as a pattern.
- `heading`: The section’s claim in display caps; ≤ 8 words; required
- `lead`: One or two sentences; ≤ 35 words
- `number`: Two digits: 01, 02; ≤ 1 words

**`body`** — mirrors page-template: one left column, Poppins 16px / 1.6

- Measure ≤ 68 characters; one column.
- Bold for a term being defined; colour, not weight, for emphasis in headings.
- `heading`: Heading in display caps; ≤ 8 words
- `text`: Paragraphs of three to five sentences; required

**`two-column`** — mirrors creators-split and about-bands (two-column bios)

- Columns of similar length; never a table in disguise.
- `heading`: Heading in display caps; ≤ 8 words

**`callout`** — mirrors sticker-card: cream card, navy keyline, hard navy drop

- One per page.
- Tools that can draw it (Docs, Word, InDesign) frame it like the website: 3pt navy keyline, 12pt corners, a 4.5pt hard navy drop, no blur.
- `label`: Label in caps; ≤ 4 words
- `text`: The fact, in one or two sentences; ≤ 45 words; required

**`key-numbers`** — mirrors creators-split: the lime-wash panel

- Every number has a source and a date in footnotes.
- Claims about health or customers need sign-off (hard rule).
- `label`: What the numbers measure; ≤ 5 words
- `text`: Each number with its unit and one line of context; ≤ 60 words; required

**`pull-quote`** — mirrors review-masonry headline on the lilac band

- Navy only on lilac — never orange (2.54:1).
- `quote`: A sentence from this document; ≤ 25 words; required

**`testimonial`** — mirrors review-masonry: a review card on the lilac band

- Verbatim and attributable; never edited for claims.
- Star ratings and customer counts only with a dated source (hard rule).
- `name`: First name and last initial, or full name with permission; ≤ 5 words; required
- `quote`: The customer’s words, verbatim, with permission; ≤ 50 words; required
- `role`: City, or role and organisation; ≤ 8 words

**`data-table`** — mirrors comparison-table, light variant: lilac rules, navy figures

- A header row on every table; figures right-aligned in tabular Barlow-or-Poppins numerals; totals in the tfoot row.
- No zebra stripes and no vertical rules.
- `caption`: What the table shows, with the unit; ≤ 10 words
- `note`: Source and date; ≤ 20 words

**`comparison-table`** — mirrors comparison-table (home, product pages): label column, the featured “us” column, competitor columns, a dated source line

- Column order: the label column, Good Journey, then competitors.
- Yes/No cells as words or the brand’s icons, never colour alone.
- Competitor data is dated, sourced and approved before it is sent (hard rule).
- `caption`: The question the table answers — e.g. WHY IS GOOD JOURNEY BETTER?; ≤ 8 words
- `note`: Competitive information as of <Month YYYY>; sources; ≤ 25 words; required

**`price-block`** — mirrors sticker-card with the price in Barlow SemiBold

- Prices carry the currency and the unit; a compare-at price is struck through in navy.
- A validity date on every price.
- `amount`: $0.00; ≤ 2 words; required
- `features`: What is included, one line each; ≤ 30 words
- `label`: Product or plan name; ≤ 6 words
- `note`: Conditions: minimums, validity date; ≤ 20 words
- `period`: per case of 12 / per month; ≤ 5 words

**`pricing-table`** — mirrors comparison-table’s featured column and the product grid of sticker cards

- Mark exactly one tier recommended (data-highlight).
- The same inclusions in the same order in every tier.
- `note`: Conditions that apply to every tier; ≤ 30 words
- `tiers`: Tier: name, price, unit, three to five inclusions, who it is for

**`feature-grid`** — mirrors benefit-grid under the hero

- Benefits the pack can back; claims verbatim.
- `heading`: Heading in display caps; ≤ 8 words
- `items`: Benefit: two-to-four-word title, one sentence

**`feature-grid-navy`** — mirrors benefit-orbit: the navy band with benefits around the product

- One per document.
- Never next to another navy block.
- `heading`: WHY GOOD JOURNEY — or the claim it proves; ≤ 8 words

**`faq`** — mirrors faq-accordion: caps questions, violet answers, pink rules

- Each question once; group by topic.
- Answers are plain and specific — no claims the pack does not carry.
- `heading`: The question, in caps, as a customer would ask it; ≤ 14 words
- `text`: The answer in two to four sentences; ≤ 80 words; required

**`cta-band`** — mirrors promo split’s navy pill, as a band: navy ground, cream text, a lime accent

- One per document.
- The action is written out (an address or URL), never only a link.
- Never directly after another navy block.
- `action`: Write to hello@goodjourneyfoods.com or visit goodjourneydonuts.com; ≤ 12 words
- `heading`: The next step as a verb in caps — ORDER YOUR FIRST CASE; ≤ 8 words; required
- `text`: Why now, in one sentence; ≤ 25 words

**`signature`** — mirrors legal-page, with the sticker card’s order

- Good Journey signs as Good Journey LLC.
- Never split across pages.
- `parties`: Party: legal name, signatory name, title, date

**`sign-off`** — mirrors the founders’ note (Helen & Kristoffer)

- A warm close in the brand voice, then the name.
- `parties`: Name, title, Good Journey LLC

**`legal-clause`** — mirrors legal-page: numbered clauses, the clause name bold inline, Poppins body

- Numbers in navy, never orange.
- No stickers, doodles or colour bands inside legal text.
- Defined terms in bold at first use.
- `heading`: Clause name in Title Case; ≤ 6 words; required
- `subclauses`: Sub-clause — one obligation each
- `text`: The clause, precise and complete

**`footnotes`** — mirrors comparison-table’s dated source line

- Every statistic, rating, customer count and competitor figure gets a numbered note with its date.

**`contact`** — mirrors site-footer: REACH OUT and the support address

- The brand’s own lines; no personal mobile numbers unless agreed.
- `lines`: goodjourneydonuts.com · hello@goodjourneyfoods.com · phone — one per line; required
- `name`: Contact name and title, or Good Journey LLC; ≤ 8 words

**`closing`** — mirrors site-footer: the navy band with the stacked logotype and the legal line

- Ends the document; nothing follows it.
- One copyright year, as live text.
- `lines`: goodjourneydonuts.com · hello@goodjourneyfoods.com · © <year> Good Journey LLC; required
- `name`: Good Journey LLC; ≤ 4 words

**`line-items`** — mirrors cart line items, as a table

- Columns: item · description · quantity · unit price · amount; figures right-aligned.
- `caption`: Items; ≤ 2 words
- `note`: Prices in USD; taxes and shipping as stated; ≤ 15 words

**`total`** — mirrors the cart total, in a sticker card

- One total per document, with its currency.
- `amount`: $0.00; ≤ 2 words; required
- `label`: Total due / Quote total; ≤ 3 words
- `note`: Due date or quote validity date; ≤ 12 words
- `period`: USD; ≤ 2 words

**`terms`** — mirrors legal-page body, small

- Plain, specific, dated.
- `heading`: TERMS; ≤ 2 words
- `text`: Payment terms, delivery, validity, returns — short sentences; ≤ 120 words; required

### Archetypes

#### One-pager — `one-pager`

A single page that sells one thing — a product line, a programme, the company to a buyer.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/one-pager.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/one-pager.html?format=a4
- Voice register: `marketing`
- Pages: max 1

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `cover-compact` | once | compact: eyebrow, title, one subtitle — at most a month-and-year meta line |
| 2 | `feature-grid-navy` | once | three benefits |
| 3 | `price-block` | optional | — |
| 4 | `testimonial` | optional | — |
| 5 | `cta-band` | once | — |
| 6 | `contact` | once | — |

*Do*

- Lead with delight, then the honest reason it is better.
- One action, written out.
- Keep the band order: cream, navy, cream, lilac, navy, white.

*Don't*

- No second page.
- No more than one testimonial.
- No claim the pack does not print.

*Content*

- ≤ 250 words in total.
- Title ≤ 8 words; subtitle one sentence.
- Three benefits, each a short title and one sentence.
- The price block OR the testimonial, not both — the page holds one of them below the benefits.

#### Pricing sheet — `pricing-sheet`

Wholesale or retail prices, packs and terms for a buyer.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/pricing-sheet.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/pricing-sheet.html?format=a4
- Voice register: `marketing`
- Pages: max 2, min 1

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `cover` | once | eyebrow WHOLESALE PRICING, title, valid-from date in meta |
| 2 | `body` | optional | two sentences on who the prices are for |
| 3 | `pricing-table` | once | — |
| 4 | `price-block` | repeat-optional | — |
| 5 | `comparison-table` | optional | — |
| 6 | `data-table` | optional | terms: MOQ, case pack, lead time, shipping |
| 7 | `faq` | repeat-optional | — |
| 8 | `footnotes` | optional | — |
| 9 | `cta-band` | once | — |
| 10 | `contact` | once | — |

*Do*

- Every price has a currency, a unit and a validity date.
- Mark one recommended pack.
- Put minimums and lead times in the table, not in prose.

*Don't*

- No unexplained discounts.
- No competitor prices without a dated source.

*Content*

- Order: who it is for → packs and prices → terms → next step.
- Pack names exactly as on the pack.

#### Proposal — `proposal`

A document addressed to one client or partner: the opportunity, what we will do, the price and the next step.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/proposal.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/proposal.html?format=a4
- Voice register: `marketing`
- Pages: max 12, min 4

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `cover` | once | meta: Prepared for <client> · <date> |
| 2 | `section-opener` | once | 01 THE OPPORTUNITY |
| 3 | `body` | repeat | — |
| 4 | `section-opener-violet` | once | 02 WHAT WE PROPOSE — alternate the two openers |
| 5 | `body` | repeat | — |
| 6 | `two-column` | optional | — |
| 7 | `feature-grid-navy` | once | WHY GOOD JOURNEY |
| 8 | `comparison-table` | optional | — |
| 9 | `pricing-table` | optional | — |
| 10 | `price-block` | repeat-optional | — |
| 11 | `testimonial` | optional | — |
| 12 | `callout` | optional | — |
| 13 | `cta-band` | once | next steps |
| 14 | `signature` | optional | — |
| 15 | `footnotes` | optional | — |
| 16 | `contact` | once | — |

*Do*

- Name the client on the cover and in the first paragraph.
- Alternate navy and violet openers.
- End with dated next steps.

*Don't*

- Never two navy blocks in a row.
- No stickers or doodles near the client’s name or the price.
- No unapproved claims.

*Content*

- Opportunity → proposal → why us → price → proof → next step.
- Each section opens with its claim, then the evidence.
- Paragraphs of three to five sentences; “we” to “you”.

#### Legal document — `legal`

Terms, agreements, policies, rules and disclaimers.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/legal.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/legal.html?format=a4
- Pages: min 1

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `letterhead` | once | parties or addressee; the date is the effective date |
| 2 | `body` | once | heading: the document title; text: version, effective date, and the recitals |
| 3 | `legal-clause` | repeat | — |
| 4 | `signature` | optional | — |
| 5 | `footnotes` | optional | — |

*Do*

- Number every clause; one obligation per sub-clause.
- State the effective date and version at the top.
- Use the entity name Good Journey LLC.

*Don't*

- No bands, stickers, doodles, orange text or marketing claims.
- Never the unstyled policy-page look — this template is the brand’s legal page.

*Content*

- Plain, precise sentences; defined terms in bold at first use.
- The website’s legal pages (sweepstakes rules, shipping policy, affiliate licensing agreement) are the model for order and tone.
- Health claims or customer numbers in a legal document need owner and legal sign-off.

#### Business plan — `business-plan`

The company’s plan for investors, lenders or partners: market, product, operations, financials.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/business-plan.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/business-plan.html?format=a4
- Voice register: `marketing`
- Pages: max 40, min 10

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `cover` | once | — |
| 2 | `key-numbers` | once | executive summary: three to four numbers |
| 3 | `body` | once | executive summary |
| 4 | `section-opener` | repeat | one per chapter, alternating with section-opener-violet |
| 5 | `section-opener-violet` | repeat-optional | — |
| 6 | `body` | repeat | — |
| 7 | `two-column` | repeat-optional | team |
| 8 | `comparison-table` | optional | market |
| 9 | `data-table` | repeat | financials |
| 10 | `callout` | optional | — |
| 11 | `pull-quote` | optional | — |
| 12 | `faq` | repeat-optional | appendix |
| 13 | `footnotes` | once | — |
| 14 | `closing` | once | — |

*Do*

- Source and date every number.
- One idea per section opener.
- Financial tables with totals in the footer row.

*Don't*

- No unsourced market sizes.
- No health promises — the product claims are the pack’s.

*Content*

- Executive summary ≤ 1 page.
- Chapters: problem, product, customers, market, competition, go-to-market, operations, team, financials, ask.

#### Letter — `letter`

A letter or memo to one person.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/letter.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/letter.html?format=a4
- Voice register: `marketing`
- Pages: max 2

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `letterhead` | once | — |
| 2 | `body` | repeat | — |
| 3 | `sign-off` | once | — |
| 4 | `contact` | optional | — |

*Do*

- Warm, plainspoken, signed by a person.

*Don't*

- No bands, stickers or tables.

*Content*

- ≤ 400 words.
- Open with the reason for writing; close with one clear ask.

#### Quote — `quote`

Prices offered to one customer for a defined order, with a validity date.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/quote.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/quote.html?format=a4
- Voice register: `operator`
- Pages: max 2

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `letterhead` | once | — |
| 2 | `body` | optional | one line on what is quoted |
| 3 | `line-items` | once | — |
| 4 | `total` | once | — |
| 5 | `terms` | once | — |
| 6 | `contact` | once | — |

*Do*

- Quote number, date and validity in the letterhead block.

*Don't*

- No marketing copy in the line items.

*Content*

- Item names exactly as on the pack.

#### Invoice — `invoice`

A request for payment for delivered goods or services.

- Template: https://brandguide.goodjourneydonuts.com/api/public/v1/documents/invoice.html?format=letter · https://brandguide.goodjourneydonuts.com/api/public/v1/documents/invoice.html?format=a4
- Voice register: `operator`
- Pages: max 2

| # | Block | Occurs | Note |
|---|---|---|---|
| 1 | `letterhead` | once | — |
| 2 | `line-items` | once | — |
| 3 | `total` | once | — |
| 4 | `terms` | once | — |
| 5 | `contact` | once | — |

*Do*

- Invoice number, issue date and due date in the letterhead block.

*Don't*

- Nothing decorative.

*Content*

- Payment instructions in the terms block.

### Document rules

- Print on a white page; cream, lilac, lime-wash, navy and violet arrive as bands and cards. On screen-only PDFs the cream may run to the page edge.
- Never two blocks of the same ground back to back — alternate light (cream, lilac, lime-wash, white) and dark (navy, violet).
- Two families per page: Barlow (Condensed) for display, labels and figures; Poppins for reading.
- Weights are the bundled cuts’ real weights — display caps 900 (Barlow Condensed Black), h3 and quotes 600, eyebrows 700, lead and captions 500, reading text 400. Never ask a family for a weight it does not ship: the renderer would fake a bold.
- One colour-shift phrase per heading (class sg-doc-accent): orange #F15627 only at title and h1 size on light grounds; lilac or lime on navy.
- Orange text below 18pt is the accent ink #C5380D; navy text only on sky and lilac.
- The footer reads “Good Journey LLC · goodjourneydonuts.com” — never the brand book’s title.
- Stickers, doodles and claim badges: at most one per page, at a band’s edge, never over text, never in legal documents or near a client’s name or a price.
- Health claims, ratings, customer counts and competitor figures need owner and legal sign-off before a document leaves the company.
- The licensed display faces are never embedded in a document unless the owner supplies licensed files; the bundled stand-ins render.
