# Mirror Mirror — Visual Language Brief

**Established:** 2026-05-03 (S83-H162)
**Owner:** Brady
**Status:** Canonical. All MM imagery generated, sourced, or commissioned must conform.
**Counterpart:** RoseCourt has `~/docs/ecosystem/rc-authentic-media-directive.md`. This is MM's equivalent.

---

## Why this exists

Mirror Mirror has had a codified voice (`competent, direct, operational, trustworthy`) and palette (navy + sovereign gold + dawn light) since brand-stack documentation began. But it's never had a written visual language. Every hero image, every product shot, every flyer concept has required Brady-intuition rather than a reusable rule.

The result: zero hero images live on `/webinar/`, `/consult/`, `/learn/`, `/case-studies/`, `/automation-build/`. Every MM page falls back to a navy gradient. 18 Stripe products show generic placeholders.

This brief codifies the aesthetic so prompts are fast to write, output is consistent, and collaborators (designers, agencies, future hires) can produce on-brand work without Brady re-explaining the vibe each time.

---

## Voice anchor

> **Competent, direct, operational, trustworthy.** The person who actually runs the infrastructure they teach about.

— `shared/brands.py` BRAND_REGISTRY · MM voice dict

Best words: **reliable, sovereign, structured, portable, full-stack, stewardship, architecture.**

Avoid words: hustle, hack, automate everything, instant, passive, 10x.

CTA style: tiered entry — "free webinar to start, build from there."

---

## Palette

| Token | Hex | Usage |
|---|---|---|
| `primary` | `#0D1B2A` | Deep midnight navy. Backgrounds, dark surfaces, body text on light bg. |
| `secondary` | `#1B263B` | Dark slate. Section accents, secondary backgrounds. |
| `accent` | `#C9A227` | Sovereign gold. **Decoration only — fails AA on light bg (2.29:1).** Use for: borders, dividers, button backgrounds, icon strokes. |
| `accent_text` | `#8B6F1A` | AA-safe darker gold (5.5:1 on light). **Use for TEXT on light backgrounds** — links, captions, headings on cream. (H160-B addition.) |
| `muted` | `#A3B5C7` | Platinum silver. Decoration only — fails AA. Borders, dividers, gridlines. |
| `text_muted` | `#5C6B7A` | Twilight gray. AA-safe (5.19:1) for body text on light. |
| `background` | `#F7F9FC` | Dawn light. Default page background. |
| `surface` | `#FFFFFF` | White cards, modals, elevated surfaces. |
| `star` | `#E8DFD0` | Starlight cream. Hope accents, secondary highlights. |
| `midnight` | `#0A1628` | True midnight. Death-card depths — extreme contrast moments only. |

**Tarot identity** (from `shared/brands.py` `identity`): **Death** card depth (transformation), **Star** card hope (dawn-light beginnings), **Crown** integration (sovereignty). The aesthetic should feel like a system architect drew it at 2 AM with a single warm desk lamp.

---

## Aesthetic = Editorial / blueprint hybrid

**The look:** architectural technical drawings + isometric workflow diagrams + clean line-art schematics, rendered over midnight navy backgrounds with sovereign-gold accent strokes. Reinforces "competent, operational, infrastructure-first" voice. Distinctive vs the watercolor brands. Avoids photorealistic people.

### Yes — embrace these

- **Architectural technical drawings** — exploded views, cross-sections, dimension lines
- **Isometric workflow diagrams** — boxes and arrows showing data/process flow
- **Clean line-art schematics** — thin ink strokes on textured paper
- **System maps** — node + edge graphs, network topology
- **Data flow arrows** — directional, dotted or solid, often gold
- **Dark-mode terminal/dashboard *feel*** — green-on-black hint, monospace shadows, no actual UI screenshots
- **Subtle paper texture / paper grain** — print artifact, not digital sheen
- **Constellation hint** — Star/Crown tarot identity. A few connected dots in the background, never literal stars
- **Muted ink + navy washes** — printer's-ink density, not vector flatness
- **Negative space for typography** — 30%+ for headline overlays
- **Sovereign-gold accent strokes** — sparingly, like underlines under important nodes

### No — actively forbidden

- **Photorealistic people** — RoseCourt directive applies here too (no AI-generated humans on any brand surface)
- **Warm watercolor with pastel pink/cream** — that's RoseCourt's lane
- **Pixel art / 8-bit / SNES aesthetic** — that's Grove House
- **Mystic florals, candles, herbs, dreamy bokeh** — that's Witch Haven Grove
- **Theatrical stage lights, velvet curtains, dramatic spotlights** — that's Small Stage
- **Celebratory / event imagery** — that's RoseCourt
- **Consumer product shots** — MM doesn't sell products in that sense; we sell architecture
- **Cyberpunk neon, chrome, holographics, glitch art, sci-fi** — too flashy, undermines "competent operator" voice
- **Stock-photo deskscapes with smiling people** — generic, contradicts directive
- **3D rendered metallic logos, lens flares, sparkles** — corporate-2010 cliche

---

## Per-surface composition rules

### Page hero (16:9, ~1200×675 web)

- Subject placed in **lower-right third**
- Navy `#0D1B2A` gradient background, slight cool-violet shift bottom-left
- Gold-line system-diagram overlay floating top-left (low opacity, ~30%)
- **30% negative space top-left to lower-right** for headline + subhead overlay
- One sovereign-gold accent stroke (a connecting line, an arrow, an underline) — never more than one focal accent
- Subtle paper grain at full canvas

### Stripe product image (1:1, 1080×1080)

- Centered icon-style isometric of the product concept (e.g., webinar = playable arrow + node graph; consult = magnifying glass over a system diagram; course = stacked book + workflow arrow)
- Tight crop, minimal background (solid `#F7F9FC` dawn or solid `#0D1B2A` navy)
- Thin sovereign-gold border (1px, optional)
- Product label can overlay below the icon at 0.85rem (text only, no graphic banner)

### OG card (1.91:1, 1200×630)

- Subject left-third
- Large blank right two-thirds for headline overlay
- Mirror Mirror logo lockup in bottom-right corner (small)
- Navy bg with subtle gradient toward dawn-light at headline area
- AA-contrast for any text overlay (use `accent_text` not `accent` for type)

### Email header (16:5, 1200×375)

- Single isometric element on left
- Tagline overlay on right
- Conservative — emails get clipped on mobile

### Flyer print (8.5×11, future use)

- MM doesn't currently have flyers. If/when needed, follow RoseCourt's `flyer_standards_2026-04-27.md` structural template but apply MM aesthetic + palette.

---

## Forbidden terms (reminder from voice spec)

In any image-overlay copy, alt text, or caption, avoid:

- "hustle" / "hack" / "automate everything" / "instant" / "passive" / "10x"
- "magic" / "secret" / "hidden" — anything that implies non-transparency
- "guru" / "ninja" / "rockstar" — operator persona doesn't perform
- "transform your business" — too generic, not specific enough
- "AI-powered" — assume; don't sell

---

## Pre-flight checklist

Before promoting any MJ variant for MM, confirm:

1. ✅ **Palette adherent** — navy + gold dominant; no warm pinks, no theatrical reds
2. ✅ **No photoreal humans** — no faces, no full bodies; hands and environment OK
3. ✅ **Not warm-romantic** — wouldn't fit on a wedding invitation
4. ✅ **Not flashy** — no chrome, no neon, no lens flares
5. ✅ **System-architect feel** — looks like a thoughtful operator drew or selected it at 2 AM
6. ✅ **Negative space for type** — headline can overlay without crop conflict
7. ✅ **Paper grain / ink density** — not vector-flat, not digital-glossy
8. ✅ **One focal gold accent** — restraint over abundance

If any check fails, **regenerate**. Don't promote second-best for MM.

---

## Reference comparisons

| Brand | Aesthetic | Medium | Palette anchor |
|---|---|---|---|
| **RoseCourt** | Warm community / Phoenix urban | Watercolor + ink wash | Burgundy + dusty rose + cream |
| **Grove House** | Blue-collar / land-aware | SNES-RPG pixel art | Forest green + earth brown + mustard |
| **Witch Haven Grove** | Grounded mysticism | Dreamy tactile + analog film | Deep purple + lilac + cream |
| **Small Stage** | Theatrical / cinematic | Editorial moody | Terracotta + amber |
| **Mirror Mirror** | **Editorial / blueprint hybrid** | **Architectural ink + isometric** | **Navy + sovereign gold + dawn** |
| **LongHouse** | Research-grade / civic | Documentary minimal | Sage + warm gold + parchment |
| **CC:Universe** | Retro broadcast | VHS scanline + tube TV | Midnight blue + magenta |
| **Brady Hugins (personal)** | Documentary realism | Watercolor (RC overlap) | Slate + gold paper |

The MM lane is **the only one centered on technical architecture as art**. No other brand should drift into this territory; MM should not drift out of it.

---

## Workflow

1. **Slot** lives in `MJ_Prompt_Slots` (Holdings `tblbuoUHYCD1iEvOB`), section `mj-mirrormirror`
2. **Render** via `/admin/brady/` → "Render 4 Variants" button → fal.ai 4-variant flow
3. **Curate** via `/admin/curator/` (variant comparison UI) — apply pre-flight checklist
4. **Promote** via "Use this one" → `RC: Promote MJ Variant` workflow → R2 canonical path
5. **Wire** the new R2 URL into the relevant builder (per-image, lazy)
6. **Deploy** via wrangler pages deploy

---

## Active slots (as of S83-H162)

See `~/docs/ecosystem/research/mm_hero_prompts_2026-05-03.md` for full prompt text.

| slot_key | Page | R2 path | Status |
|---|---|---|---|
| `mm_webinar_hero` | /webinar/ | `mirrormirror/webinar/hero.webp` | Slot seeded, pending render |
| `mm_consult_hero` | /consult/ | `mirrormirror/consult/hero.webp` | Slot seeded, pending render |
| `mm_learn_hero` | /learn/ | `mirrormirror/learn/hero.webp` | Slot seeded, pending render |
| `mm_case_studies_hero` | /case-studies/ | `mirrormirror/case-studies/hero.webp` | Slot seeded, pending render |
| `mm_automation_build_hero` | /automation-build/ | `mirrormirror/automation-build/hero.webp` | Slot seeded, pending render |

---

## See also

- **Voice + palette source:** `~/builders/shared/brands.py` BRAND_REGISTRY → mirrormirror
- **Brand stack matrix:** `~/docs/ecosystem/brand/multi-personality_messaging_and_brand_stack.md`
- **MM hero prompts:** `~/docs/ecosystem/research/mm_hero_prompts_2026-05-03.md`
- **Ecosystem MJ batch:** `~/docs/ecosystem/research/ecosystem_mj_batch_2026-05-03.md`
- **MJ workflow SOP:** `~/docs/ecosystem/sops/dashboard_mj_use_this_one_2026-04-29.md`
- **RoseCourt counterpart:** `~/docs/ecosystem/rc-authentic-media-directive.md`

---

_Filed S83-H162-A1 (2026-05-03 by CC). The first MM-branded image is the test of this brief. If the first 5 heroes don't feel "Mirror Mirror" to Brady, the brief gets revised, not the renders._
