# Warm-Hive Redesign — PR8 Build Plan (`apps/www` landing → warm-Hive identity) > Source design package: `docs/design_handoff_waggle_app/` — esp. > `design-files/Waggle Landing.html` (648 lines, the canonical landing reference) + > `design-files/styles/waggle.css` (token master) + `README.md §9` (landing copy notes). > Roadmap slot: `BUILD-PLAN.md §6` — **PR8, the final roadmap item** (PR1–PR7 all shipped to origin/main @ `58f64f22`). > Branch: `feature/warm-hive-pr8`. Merge convention: `--no-ff` (PR5/PR6/PR7 pattern). --- ## 0. Strategic gate — scope fork (resolved by evidence, recommend-and-proceed) PR8's slot in §6 reads "**full content + identity**." Recon resolved this: - **Content already shipped.** `apps/www` is a complete Next.js 15 (App Router) landing with deliberate, current copy — `app/page.tsx:24-28` documents the live structure as the chosen **"N2 IA"** with "the committed flat copy" (hero = *"Be the expert. We'll be the AI."*). `messages/en.json` (311 lines) holds the full marketing copy, intentionally **evolved past** the older `Waggle Landing.html` reference (current = 5 pillars + comparison/wow beats; the reference HTML = 6 pillars + BYO-agent + self-evolving sections). The current copy is the newer direction and is committed. - **Identity is stale.** `app/globals.css:4-26` still carries the **pre-redesign cool palette** (`--hive-950:#08090c`, `--honey-500:#e5a000`, blue-grey hive greys, saturated `--status-ai #a78bfa`/`--status-healthy #34d399`) and **Inter** as the typeface — none of the warm-Hive identity PR1 applied to `apps/web`. **Ratified scope (recommend-and-proceed unless founder objects):** **PR8 = identity reskin only.** Port the warm-Hive token values + Hanken Grotesk + honey-accent discipline + honeycomb/hex motifs onto the existing N2 landing. **Do NOT rewrite copy** to the older reference HTML. **Do NOT touch benchmark/proof claims** (honest-stats — see §5). Treat the reference HTML as the source of truth for *visual treatment*, `en.json` as the source of truth for *copy*. --- ## 1. Design contract (what "warm-Hive" means for the landing) From `waggle.css §7` (and as implemented in `apps/web` PR1): - **Dark default** surfaces: `--bg #14110b · --surface #1f1a12` (warm graphite, replaces cool `#08090c`). - **Honey accent**: `#e9a52c` (replaces `#e5a000`), used *sparingly* — primary buttons, active nav, key metrics, focus rings, 1–2 highlight words per headline. Never decorative fills. - **Type**: **Hanken Grotesk** (display+body, 300–800; headings 600 at `-0.02..-0.03em`) + **JetBrains Mono** (mono labels). Replaces Inter. - **Desaturated semantics**: `--intel #b196dd` (was `#a78bfa`), `--healthy #6cb78c` (was `#34d399`). - **Motifs**: honeycomb `.05` opacity SVG texture (warm line stroke), hexagon clip-path for the W mark / persona tiles, warm shadows + honey glow. - **Dark-only** for the landing (current site has no light theme; the design specifies both, but adding a landing theme toggle is out of reskin scope → deferred, §8). --- ## 2. Current state (grounded, file:line) | Fact | Evidence | |---|---| | Next.js 15.1 App Router, React 19, TS 5.9, **vanilla CSS (no Tailwind)** | `apps/www/package.json:14-24`, `globals.css:2` | | Tokens = old cool palette + Inter | `globals.css:4-40` | | Components style via inline `var(--hive-*)`/`var(--honey-*)` → value remap cascades | grep across `app/_components/*` | | **Hardcoded** hex (bypasses vars) — must fix explicitly | `layout.tsx:38-91` (Clerk), `HeroVisual.tsx:62-309` (SVG), `BrandPersonasCard.tsx:343-417` (`