# NLT Labs — Merch Ideas

Creative merchandising concepts built on the production NLT mark, grounded in 2026 apparel research, and aimed squarely at **20- and 30-year-olds who'd actually choose to wear the brand**.

- **Why these designs:** [`MERCH-RESEARCH-2026.md`](./MERCH-RESEARCH-2026.md) · [`MERCH-WEARER-COPY-2026.md`](./MERCH-WEARER-COPY-2026.md) — trend synthesis + **who wears it / why it's cool** (no "demo" on garments).
- **Copy lanes:** [`merch-taglines.yaml`](./merch-taglines.yaml) — website vs merch vs street/graffiti vs Fun Drop.
- **The art:** [`designs/`](./designs/) — SVGs including **street lane** (`street-spray-chevron`, `street-tag-chosen`, `street-stencil-forward`, `sticker-bomb-mark`) plus Fun Drop and luxury grail pieces. Real mark geometry (`viewBox 0 0 551 746`, amber only).
- **See them on real garments:** open [`mockups.html`](./mockups.html) — every design composited onto **real cap / t-shirt / sweatshirt photos**, recolored per colorway with the print following the fabric folds (sources + method in [`mockups-photos/CREDITS.md`](./mockups-photos/CREDITS.md); rebuild with [`mockups-photos/build_mockups.py`](./mockups-photos/build_mockups.py)).
- **Quality gate / review loop:** [`scripts/merch_review_gate.py`](./scripts/merch_review_gate.py) + [`merch-brand-rubric.yaml`](./merch-brand-rubric.yaml) — brand thresholds, approve/reject, agent skill **merch-reviewer**.
- **Fashion / audience buyer:** [`scripts/merch_buyer_score.py`](./scripts/merch_buyer_score.py) + [`merch-audience-rubric.yaml`](./merch-audience-rubric.yaml) — trend + sell-through scoring after QA passes, agent skill **merch-buyer**.
- **Compositing catalog HTML:** [`scripts/generate_mockups_catalog.py`](./scripts/generate_mockups_catalog.py) — regenerates [`mockups.html`](./mockups.html) from [`merch-manifest.yaml`](./merch-manifest.yaml) (57 mockups).
- **AI hero library:** [`scripts/merch_ai_library.py`](./scripts/merch_ai_library.py) — prompts export, 👍/👎 voting, archive lane. Gallery: [`mockups-ai/index.html`](./mockups-ai/index.html). Taglines: [`merch-taglines.yaml`](./merch-taglines.yaml). Generate: [`scripts/generate_hero_mockups.py`](./scripts/generate_hero_mockups.py) + [`merch-ai-manifest.yaml`](./merch-ai-manifest.yaml).
- **Site preview:** [`merch.nltlabs.ai`](https://merch.nltlabs.ai/) — luxury lane hub + catalog.
- **Storefront:** [`store-catalog.yaml`](./store-catalog.yaml) · [`scripts/generate_storefront.py`](./scripts/generate_storefront.py) → [`merch.nltlabs.ai/shop/`](https://merch.nltlabs.ai/shop/) (sizes, research-backed pricing, Stripe checkout).
- **Drop specs:** [`drop-2-lineup.yaml`](./drop-2-lineup.yaml) (extends [`drop-1-lineup.yaml`](./drop-1-lineup.yaml)) · [`merch-fashion-audit.md`](./merch-fashion-audit.md) · [`merch-design-v2-brief.md`](./merch-design-v2-brief.md).
- **Drop 1 HTML:** [`drop-1-lineup.html`](./drop-1-lineup.html) redirects to the site hub (historical specs remain in YAML only).
- **Luxury lane (all audiences):** [`MERCH-LUXURY-RESEARCH-2026.md`](./MERCH-LUXURY-RESEARCH-2026.md) · [`merch-luxury-rubric.yaml`](./merch-luxury-rubric.yaml) · `merch_luxury_gate.py` · `merch_premium_loop.sh` — black caps, grail designs, Jordan/Travis/Apple positioning.
- **Fun Drop (monthly off-cycle):** [`MERCH-FUN-DROP-CONCEPT.md`](./MERCH-FUN-DROP-CONCEPT.md) · [`drop-fun-lineup.html`](./drop-fun-lineup.html) · [`drop-fun-2026-07.yaml`](./drop-fun-2026-07.yaml) · [`merch-fun-rubric.yaml`](./merch-fun-rubric.yaml) — 72h silly drops, 3–5 SKUs, cross-audience camp (not luxury).
- **Flat swatch lookbook:** [`lookbook.html`](./lookbook.html) — every design on its intended garment-color swatch, grouped by audience.

> **Status:** these are *concepts / a lookbook*, not the shipped logo pack. The production assets stay in [`../logo-pack/`](../logo-pack/). Nothing here changes the brand — it extends it onto apparel. Production type gets outlined by the print shop; confirm min stitch width / CMYK / Pantone per `docs/LOGO-PRINT-AND-SWAG.md`.

---

## The design idea

The mark reads as a **fast-forward chevron (▶▶)** — forward motion and clarity under noise. Every design pulls one thread from the brand voice and makes it wearable (see [`MERCH-WEARER-COPY-2026.md`](./MERCH-WEARER-COPY-2026.md)):

- **Motion / signal** → fast-forward, signal-from-noise, schematic.
- **Clarity** → the crest, the back hit, the line-art mark.
- **Adapt** (the Hawking decision test) → the teen glitch + loop pieces.
- **Walk alongside** (partnership) → twin chevrons, the woven label.

One signature color (amber) on neutral substrates (washed black, charcoal, stone, olive). Quiet where it should whisper (polos, professional), loud where it should shout (young back hits).

---

## Design index — 16 concepts across 6 audiences

| Design | Audience | Concept | Best garments | Placement | Colorway |
|---|---|---|---|---|---|
| `tech-signal-from-noise` | Tech | Waveform noise resolving into the clean mark | Tee, **pullover** | Full front / back | Warm gold + cream on washed black |
| `tech-schematic-blueprint` | Tech | Mark as an engineering schematic w/ dims + mono notes | Pullover, tee, **cap** | Front / left-chest / tote | Single deep-honey (1-color / embroidery) |
| `tech-fast-forward` | Tech | Three echoes = a fast-forward motion trail | **Cap**, sleeve, pullover | Cap front / sleeve / back-yoke | Gold + cream on dark |
| `professional-clarity-crest` | Professional | Circular crest: mark + `CLARITY UNDER UNCERTAINTY` | **Polo**, **cap** | Embroidered left-chest / cap front | Tonal deep-honey |
| `professional-woven-label` | Professional | Sewn woven-label / patch lockup | Polo, pullover, **cap** strap | Collar label / chest patch | Burnt amber on sand patch |
| `professional-walk-alongside` | Professional | Twin chevrons — shoulder-to-shoulder partnership | **Polo**, button-down, pullover | Left-chest, tonal | Tonal deep-honey |
| `men-varsity-block` | Men | Slab `NLT` + mark + `BUILT FOR CLARITY` banner | Tee, **pullover/hoodie** | Front center | Gold + cream on washed black |
| `men-sleeve-stripe` | Men | Vertical athletic sleeve tape, repeated mark | Tee, pullover, **cap** side | Sleeve / side-seam | Cream on gold stripe |
| `women-lineart-mark` | Women | Fine continuous-line outline of the mark | Fitted/relaxed tee, pullover, tote | Left-chest / back-neck | Burnt-amber tonal |
| `women-amber-arc` | Women | Soft sunrise arcs — clarity emerging at dawn | Relaxed / crop tee, pullover | Front center, small | Amber gradient |
| `young-back-hit` | Young | Oversized mark + `BUILT FOR CLARITY` statement | **Hoodie/pullover**, tee | Full back | Warm gold + cream on washed black |
| `young-chosen-not-assigned` | Young | **CHOSEN · NOT ASSIGNED** typographic statement | Tee, pullover, tote | Front | Vintage burnt-amber on stone |
| `street-tag-chosen` | Young | Tag-script CHOSEN + marker sweep | Tee | Front | Graffiti lane |
| `street-spray-chevron` | Teen | Spray overspray mark + drip | Tee | Front | Black |
| `street-stencil-forward` | Men | Stencil FORWARD MOTION | Tee | Front | Black |
| `street-hollow-nltlabs` | Teen | Hollow stencil NLTLABS tag | Cap | Front | Black |
| `street-wheatpaste-poster` | Young | Wheat-paste poster back hit | Tee | Back | Black |
| `street-puff-drip` | Teen | Puff print + drip mark | Tee | Front | Black |
| `young-stacked-monogram` | Young | Vertical `N/L/T` spine monogram + crown mark | Hoodie, tee, **beanie** side | Front / back-spine | Gold + cream on dark |
| `teen-glitch` | Teen | Amber-channel glitch + `ADAPT` (never cyan/blue) | Tee, pullover, sticker | Front | Amber glitch on stone/dark |
| `teen-sticker` | Teen | Die-cut sticker mark, burst + puff `▸▸ NLTLABS` pill | Sticker, tee pocket, **cap** patch | Pocket / cap / laptop | Gold + cream, puff-print |
| `teen-adapt-loop` | Teen | `ADAPT` + Hawking micro-line + chevron loops | Tee, hoodie, tote | Front | Gold + amber on light |

**Bold** = the garment each design is *most* made for.

---

## Garment quick-pick (hats · shirts · pullovers · polos)

- **Hats / caps:** `professional-clarity-crest` (embroidered crest), `tech-fast-forward`, `teen-sticker` (patch), `men-sleeve-stripe` (side), `professional-woven-label` (back strap), `women-lineart-mark` (small front).
- **Shirts / tees:** `young-chosen-not-assigned`, `men-varsity-block`, `teen-glitch`, `teen-adapt-loop`, `tech-signal-from-noise`, `women-amber-arc`, `young-back-hit` (back).
- **Pullovers / hoodies:** `young-back-hit` (hero), `tech-schematic-blueprint`, `young-stacked-monogram`, `tech-signal-from-noise`, `men-varsity-block`.
- **Polos:** `professional-clarity-crest`, `professional-walk-alongside`, `professional-woven-label` (left-chest, tonal embroidery — the premium 2026 move).

---

## Colorways & production notes

Pulled from `docs/LOGO-PRINT-AND-SWAG.md` / `docs/BRAND-STYLE-GUIDE.md §2`:

- **Amber on light/neutral:** `#bd6510` (deep honey) · **on dark:** `#e8941f` (warm gold) · **vintage/burnt:** `#98500e`
- **Near-black:** `#0B0F10` · **charcoal garment:** `#16130f` · **cream ink:** `#f5f0e6` · **sand patch:** `#d9d2c4`
- **Never** introduce blue / cyan / purple — amber is the only accent (even the `teen-glitch` "RGB" split is amber-channel only).
- **Tonal designs** (`*-walk-alongside`, `women-lineart`, `clarity-crest`) are built single-color on purpose → drop the amber and match thread to garment for the quiet-luxury finish.

### Rasterize for vendors

**Pre-rendered PNGs ship in [`png/`](./png/)** — every design at **2048px and 4096px wide, transparent** (`<design>-2048.png` / `<design>-4096.png`). Hand these straight to a shop, or send the SVG for true vector.

To re-export (mirrors the logo-pack workflow):

```bash
.venv-3d/bin/python - <<'PY'
import cairosvg, glob, os
os.makedirs("temp/merch-export", exist_ok=True)
for f in glob.glob("assets/merch-ideas/designs/*.svg"):
    out = "temp/merch-export/" + os.path.basename(f).replace(".svg", "-2048.png")
    cairosvg.svg2png(url=f, write_to=out, output_width=2048)  # transparent
PY
```

Send vendors the **SVG** first (vector); fall back to a 2048–4096 px transparent PNG. Ask for min stitch width / line weight and CMYK-or-Pantone separation.
