# Pledge Now, Pay Later — Brand Guide
> **This is the single source of truth.** Every UI change, every new page, every generated asset must follow this document. When in doubt, refer to the visual assets in `brand/`.
---
## Brand Assets Location
All brand assets live in the `brand/` directory at the project root:
```
brand/
├── photography/ 20 landing page photos (Gemini 3 Pro)
├── logo/ 6 logo variations
├── color-palette/ 3 palette reference cards
├── typography/ 3 type specimen sheets
├── moodboard/ 3 visual direction boards
├── brand-guide/ 7 brand guide pages
├── social-templates/ 4 social media templates
└── icons/ 6 line icons in brand colors
```
Production images served from `public/images/landing/` (copied from `brand/photography/`).
### Asset Generation Rules
- **Photography**: Generate with `gemini-3-pro-image-preview` (Nano Banana Pro). Documentary candid style. Save to `brand/photography/` AND `public/images/landing/`.
- **Icons**: Line-only, 2px stroke, single brand color, white background. Save to `brand/icons/`.
- **Social templates**: Use brand colors + Inter typography only. Save to `brand/social-templates/`.
- **Any new visual asset**: Save to the appropriate `brand/` subfolder first, then copy to `public/` if needed for the website.
---
## Core Identity
**Name:** Pledge Now, Pay Later
**Archetype:** The Steward — quiet authority, precision with warmth, trusted with money
**Insight:** People don't break promises. Systems do.
**Promise:** Every pledge tracked. Every donor reminded. Every penny accounted for.
### What We Are
The missing infrastructure between "I'll donate" and the money arriving.
### What We Are Not
- Not a payment processor
- Not a CRM
- Not a fundraising platform
- Not a charity website builder
---
## Color System
Every color has a psychological job. No decorative color usage.
| Token | Hex | Name | Psychological Job | Use For |
|-------|-----|------|-------------------|---------|
| `midnight` | `#111827` | Midnight | Authority | Primary text, dark sections, logo, default buttons |
| `promise-blue` | `#1E40AF` | Promise Blue | Action | Links, CTAs, active states, interactive elements |
| `generosity-gold` | `#F59E0B` | Generosity Gold | Warmth | Pending states, highlights, volunteer accent |
| `fulfilled-green` | `#16A34A` | Fulfilled Green | Completion | Paid badges, success states, confirmations |
| `alert-red` | `#DC2626` | Alert Red | Urgency | Overdue, errors, needs-attention (never decorative) |
| `paper` | `#F9FAFB` | Paper | Calm | Page backgrounds, alternating rows |
### Legacy Aliases (still in tailwind config)
`trust-blue` = `promise-blue`, `warm-amber` = `generosity-gold`, `success-green` = `fulfilled-green`, `danger-red` = `alert-red`
### 60-30-10 Rule
- **60%** Midnight + Paper (the base — dark text on light, or white text on dark)
- **30%** Promise Blue (the action layer — everything interactive)
- **10%** Gold + Green + Red (status indicators only)
### Reference
- `brand/color-palette/01-primary-palette.jpg` — 6 color swatches
- `brand/color-palette/02-tints-and-shades.jpg` — extended scales
- `brand/color-palette/03-color-psychology.jpg` — psychological roles
---
## Typography
**Font:** Inter (Google Fonts)
**Import:** `@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap')`
| Level | Size | Weight | Tracking | Tailwind |
|-------|------|--------|----------|----------|
| Display | 72-96px | Black (900) | -0.025em | `text-7xl md:text-9xl font-black tracking-tighter` |
| H1 | 48-60px | Black (900) | -0.02em | `text-4xl md:text-5xl font-black tracking-tight` |
| H2 | 30-36px | ExtraBold (800) | -0.015em | `text-3xl font-black tracking-tight` |
| H3 | 18-24px | Bold (700) | normal | `text-lg font-bold` or `text-base font-bold` |
| Body | 14-16px | Regular (400) | normal | `text-sm` or `text-base` |
| Caption | 11-12px | Medium (500) | 0.05em | `text-xs font-medium tracking-wide` |
### Numbered Steps Pattern
Use `01`, `02`, `03` in Display/large size as visual anchors instead of icons:
```jsx
01
```
### Reference
- `brand/typography/01-typeface-specimen.jpg`
- `brand/typography/02-heading-scale.jpg`
- `brand/typography/03-numbers-in-brand.jpg`
---
## Logo
**Mark:** Solid square, zero border-radius, `bg-midnight`, white "P" in Inter Black.
```jsx
{/* Standard logo mark */}
P
{/* With wordmark */}
P
Pledge Now, Pay Later
```
### Rules
- Never round the mark corners
- Never add shadows or gradients to the mark
- Never use emoji (🤲) as a logo substitute
- Minimum clear space = 1.5× height of mark on all sides
- Three versions: dark on white, white on dark, blue mark on white
### Reference
- `brand/logo/01-lockup-dark-on-white.jpg` — primary
- `brand/logo/02-lockup-white-on-dark.jpg` — reversed
- `brand/logo/03-lockup-blue-mark.jpg` — blue accent
- `brand/logo/04-mark-dark.jpg` — mark only
- `brand/logo/05-mark-blue.jpg` — blue mark only
- `brand/logo/06-favicon.jpg` — edge-to-edge favicon
---
## Design Rules
### DO
```
✓ Sharp edges everywhere (rounded-lg max on interactive elements)
✓ Typography as the hero — headlines readable without images
✓ Numbered steps (01, 02, 03) instead of icons
✓ Dark sections (bg-gray-950) for key stats and CTAs (max 2 per page)
✓ border-l-2 accents for feature lists
✓ gap-px grids for comparisons
✓ Solid flat colors only
✓ Generous whitespace
```
### DO NOT
```
✗ rounded-2xl, rounded-3xl, rounded-full (except avatars/progress bars)
✗ bg-gradient-to-* anything
✗ shadow-lg shadow-{color}/25 (colored shadows)
✗ backdrop-blur, glass effects
✗ Emoji as visual anchors in headings
✗ group-hover:scale-105 or any scale animations
✗ animate-pulse-ring, animate-bounce-gentle (decorative animations)
✗ More than 2 dark sections per page
✗ Color on heading text — color goes on borders, badges, backgrounds
✗ "AI-powered" as a feature name
```
### Three Signature UI Patterns
**1. Left-Border Accent**
```jsx
Feature name
Description text
```
**2. Gap-Px Grid**
```jsx
Cell 1
Cell 2
Cell 3
```
**3. Dark Inversion**
```jsx
Key stat or CTA
```
### Reference
- `brand/brand-guide/07-ui-patterns.jpg` — all three patterns visualized
---
## Button Variants
```jsx