GenCreator's visual system follows **Territory B (New Creative Publishing)**, approved on 2026-08-22 (`ADR-011` in `gencreator.ai/docs/DECISIONS.md` and `starlight-design-intelligence/brand-packs/gencreator/DESIGN.md`). Every release is treated as a small cultural object composed on warm uncoated paper stock with warm ink and a single spot-red registration mark.

## Light paper and spot-color palette [#light-paper-and-spot-color-palette]

Paper and ink carry at least **90% of every composition**. Spot red (`#c8322a`) appears once per object to register an edition number, source note, active state, or human approval signature.

| Token role | Hex / CSS value (`docs-platform` & brand pack) | OKLCH token (`gencreator.ai` `[data-territory='b']`) | Usage rule |
|---|---|---|---|
| **Warm paper canvas** | `#fbf9f5` (`--color-fd-background`) | `--paper: oklch(0.982 0.004 85)` | Primary uncoated page background (`color-scheme: light`) |
| **Stone card / laid paper** | `#f4f0e8` / `#f3efe7` (`--color-fd-card`) | `--paper-laid: oklch(0.958 0.006 85)` | Elevated cards, specimen containers, and callout surfaces |
| **Muted paper wash** | `#f2eee6` (`--color-fd-muted`) | `--paper-deep: oklch(0.918 0.008 85)` | Secondary bands, table headers, and code block backgrounds |
| **Hairline rule** | `#dfd9ce` (`--color-fd-border`) | `--rule: oklch(0.86 0.006 75)` | `1px` structural grid dividers |
| **Warm ink** | `#221f1b` (`--color-fd-foreground`) | `--ink: oklch(0.19 0.012 60)` | Primary body copy, headings, and strong rules |
| **Muted ink** | `#5c554c` (`--color-fd-muted-foreground`) | `--ink-soft: oklch(0.42 0.010 60)` | Captions, metadata, and secondary labels |
| **Spot red (signal)** | `#c8322a` (`--color-fd-primary`) | `--signal: oklch(0.55 0.21 27)` | Registration mark, active link underline, and hover border |
| **Spot red soft wash** | `rgba(200, 50, 42, 0.08)` (`--color-fd-accent`) | `--signal-wash: oklch(0.55 0.21 27 / 0.08)` | Subtle row hover and active sidebar wash |
| **Forest signal (semantic)** | `#1f6f5b` | Accessible semantic confirmation | Used when a state requires semantic distinction beyond brand red |

## Typography system [#typography-system]

Territory B separates editorial display, reading controls, and aligned technical metadata across three font roles:

1. **Editorial display (`Instrument Serif` / `Fraunces`):** Carries release titles, edition headers (`.edition-display`, `line-height: 1.02`, `letter-spacing: -0.012em`), and long-form editorial pull quotes (`.prose-editorial` in `gencreator.ai/app/globals.css`). Pinned font files (`InstrumentSerif-Regular.otf` and `InstrumentSerif-Italic.otf`, SIL OFL 1.1) are verified by SHA-256 in `brand-packs/gencreator/SOURCE_AUTHORITY.md`.
2. **Reading and UI controls (`Instrument Sans` / `Plus Jakarta Sans` / `Geist`):** Carries body prose, navigation, archival labels (`.archival-label`), and form controls (`InstrumentSans[wdth,wght].ttf`, SIL OFL 1.1).
3. **Monospace metadata (`JetBrains Mono` / `Geist Mono`):** Reserved strictly for source SHA-256 digests, timestamps, and code blocks—never used as decorative HUD chrome.

All headings and archival labels use **sentence case** (`"Edition 03, released 22 April 2026"`, never `EDITION · 03`). `text-transform: uppercase` is banned on Territory B brand and marketing surfaces.

## The `allowAmbientGlow: false` restraint rule [#the-allowambientglow-false-restraint-rule]

Unlike the dark-mode brands on this platform, GenCreator sets `surfaceMode: 'paper'` and `allowAmbientGlow: false` in `docs-platform/lib/brands.ts`. When `BrandDocsLayout` (`app/[brand]/layout.tsx`) renders a GenCreator page, it sets `data-surface="paper"` and `data-glow="off"` on the `.lz-brand` root container.

In `docs-platform/app/global.css`, those two attributes enforce three visual constraints:

1. **Paper surface palette (`[data-surface='paper']`):** Overrides Fumadocs CSS variables (`--color-fd-background: #fbf9f5`, `--color-fd-foreground: #221f1b`, `--color-fd-card: #f4f0e8`, `--color-fd-border: #dfd9ce`, `--color-fd-primary: #c8322a`).
2. **Zero radial spotlight (`[data-glow='off']`):** Hides the cursor-tracked radial glow pseudo-elements (`.lz-spot[data-glow='off']::before`, `.lz-spot[data-glow='off']::after`, and `.lz-brand[data-glow='off'] .lz-spot::before/::after { display: none; }`).
3. **Crisp `1px` border hover instead of glow shadow:** On pointer devices, hovering a card, figure, or code block under `data-glow="off"` applies `border-color: var(--brand-accent)` (`#c8322a`), `box-shadow: none`, and a restrained `-1px` vertical lift.

## Motion and texture budgets (`gencreator.ai/design.md`) [#motion-and-texture-budgets-gencreatoraidesignmd]

- **Photocopy grain (`.paper-texture::before`):** Uses an inline SVG `feTurbulence` noise filter (`baseFrequency="0.82"`, `numOctaves="3"`, `opacity: 0.055`, dropping to `0.04` under `prefers-reduced-motion: reduce`), placed at `z-index: -1` on paper containers and never behind body text.
- **Timing tokens:** `--motion-quick: 120ms`, `--motion-standard: 240ms`, and `--motion-signature: 1100ms` with `--ease-gc: cubic-bezier(0.22, 1, 0.36, 1)`, maximum routine travel of `24px`, and maximum stagger of `60ms`.
- **Surface-by-surface migration:** In `gencreator.ai`, routes opt into Territory B via `data-territory="b"` after passing desktop, mobile, contrast, and reduced-motion verification.
