TWP Logo

Brand Style Guide

A comprehensive reference for maintaining visual consistency across the TWP website, presentations, and all brand touchpoints. Every color, font, spacing value, component, and image asset documented in one place.

Brand TWP — The Wanamaker Project
Design System Precision Architecture
Version 1.0 — April 2026
01

Every color, documented.

The TWP palette is built on deep navy foundations with a single electric emerald accent. White is used at varying opacities to create a layered typographic hierarchy. All colors are defined in OKLCH for perceptual uniformity, with hex approximations provided for convenience.

Primary Accent
Primary — Emerald Accent
#00E87B · oklch(0.78 0.2 155)
CTAs, accent text, metric values, active indicators, glow effects. The single accent color across the entire brand.
Emerald Glow
#3DFFA3 · oklch(0.85 0.22 155)
Text glow effects, bright highlights. Used sparingly for text-shadow and emphasis moments.
Primary Dim
rgba(0, 232, 123, 0.15)
Icon backgrounds, ghost button fills, subtle accent areas. Low-opacity primary for backgrounds.
Primary Border
rgba(0, 232, 123, 0.25)
Hover borders, active card outlines, TWP+AI comparison panel border.
Background Surfaces
Background — Deep Navy
#080B14 · oklch(0.12 0.02 260)
Page background, hero section, primary body background. The foundational dark surface.
Surface — Navy Deep
#0D1017 · oklch(0.15 0.02 260)
Card interiors, service cards, case study cards. One step lighter than the page background.
Surface — Navy Mid
#111620 · oklch(0.18 0.02 260)
Hover states for cards, elevated surfaces, navbar background with backdrop-blur.
Surface — Navy Card
#151A28 · oklch(0.2 0.02 260)
Elevated card backgrounds, secondary surfaces, comparison panels.
Muted Surface
#1A1E2E · oklch(0.22 0.015 260)
Muted backgrounds, secondary panels, less prominent card areas.
Footer Background
#060912
Footer section background. Slightly darker than the page background for visual separation.
Text & Typography Colors
Aa
Heading Text
rgba(255, 255, 255, 0.90)
Section headings, card titles, emphasized body text. Near-white for maximum contrast.
Aa
Body Text
rgba(255, 255, 255, 0.60)
Primary body copy, descriptions, paragraph text. Comfortable reading contrast on dark backgrounds.
Aa
Subtext
rgba(255, 255, 255, 0.50)
Wanamaker section body, AI section descriptions. Slightly subdued for secondary content.
Aa
Muted Text
rgba(255, 255, 255, 0.40)
Stat labels, card descriptions, tertiary information, nav links in default state.
Aa
Faint Text
rgba(255, 255, 255, 0.25)
Client logo placeholders, section labels, copyright text. Barely visible, decorative text.
Aa
Pure White
#FFFFFF
Logo, hero headline, hover states. Full white used only for maximum emphasis moments.
Borders & Utility
Border
rgba(255, 255, 255, 0.08)
Card borders, section dividers, table rules. Subtle separation between surfaces.
Subtle Border
rgba(255, 255, 255, 0.06)
Inner card dividers, stat bar separators, proof point borders.
Border Hover
rgba(255, 255, 255, 0.15)
Secondary button border, hover state borders for interactive elements.
Red Indicator
#E5484D
Negative comparison dots in the "Traditional Agency" panel. Used only for contrast against emerald.
02

Three fonts, one system.

The typographic system pairs an editorial serif for display headlines with a geometric sans-serif for body text and a monospaced face for data readouts. This creates a "publication meets terminal" aesthetic that reinforces TWP's data-driven positioning.

Instrument Serif
Display & Headlines
Google Fonts
fonts.google.com/specimen/Instrument+Serif
400 Regular Every Dollar Accountable
400 Italic Accountable. Optimized.
Geist
Body, UI & Navigation
Google Fonts
fonts.google.com/specimen/Geist
300 Light Performance Marketing
400 Regular Performance Marketing
500 Medium Performance Marketing
600 Semibold Performance Marketing
700 Bold Performance Marketing
JetBrains Mono
Data Readouts, Labels & Code
Google Fonts
fonts.google.com/specimen/JetBrains+Mono
400 Regular $2.4B+ Ad Spend
500 Medium 43% Reduction
Live Type Specimen — Heading Hierarchy
H1 — Hero
Instrument Serif · 5.5rem / 88px
line-height: 1.05 · tracking: tight
Every Dollar Accountable.
H2 — Section
Instrument Serif · 3.75rem / 60px
line-height: 1.1 · tight
Numbers that speak louder
H3 — Card Title
Geist · 1.125rem / 18px
weight: 600 · line-height: 1.4
Programmatic & Display
H4 — Subsection
Instrument Serif · 1.875rem / 30px
line-height: 1.2
B2B Marketers
Live Type Specimen — Body & Data
Body — Large
Geist · 1.125rem / 18px
weight: 400 · line-height: 1.7
TWP is the AI-native performance marketing agency that goes beyond Google and Meta. We deploy intelligent systems across every channel.
Body — Regular
Geist · 0.9375rem / 15px
weight: 400 · line-height: 1.7
AI-optimized programmatic buying across premium inventory, with real-time bidding intelligence that eliminates wasted impressions.
Caption / Label
JetBrains Mono · 0.625rem / 10px
tracking: 0.3em · uppercase
Performance Marketing, Reimagined
Data Readout — Large
JetBrains Mono · 4.375rem / 70px
weight: 500 · tracking: tight
43%
Data Readout — Medium
JetBrains Mono · 1.5rem / 24px
weight: 400 · tracking: tight
$2.4B+    340+    2.8x
Section Number
JetBrains Mono · 0.875rem / 14px
color: primary/60%
01    02    03    04    05    06
Presentation Fallback Fonts

The primary brand fonts (Instrument Serif, Geist, JetBrains Mono) are web-only fonts loaded via Google Fonts CDN. Because these typefaces are not universally available in presentation software, the branded PowerPoint / Google Slides template uses the following approved fallbacks that preserve the typographic intent of the brand as closely as possible.

Georgia
Fallback for Instrument Serif — Headlines
System font
Replaces Instrument Serif
Every Dollar Accountable.
Accountable. Optimized. Measurable.
Use for: slide titles, section headers, pull quotes.
Weights: Regular (400), Italic (400i), Bold (700), Bold Italic (700i).
Arial
Fallback for Geist — Body & UI
System font
Replaces Geist
TWP is the AI-native performance marketing agency that goes beyond Google and Meta.
Bold label text
Use for: body copy, bullet points, captions, navigation labels.
Weights: Regular (400), Bold (700).
Courier New
Fallback for JetBrains Mono — Data & Labels
System font
Replaces JetBrains Mono
43%
Performance Marketing, Reimagined
Use for: stat callouts, section numbers, data labels, code snippets.
Weights: Regular (400), Bold (700).
Primary Web Font Role Presentation Fallback Notes
Instrument Serif Display & Headlines Georgia Closest serif match; use italic for emphasis
Geist Body & UI Arial Clean sans-serif; universally available
JetBrains Mono Data & Labels Courier New Monospace fallback for stats and code
03

Structure & rhythm.

Generous vertical rhythm with 120px+ section padding creates a publication-like reading experience. The grid system uses a centered container with responsive padding and a 1360px max-width.

Property Value Usage
Section Padding (Desktop) py: 9rem (144px) Vertical padding for all major content sections
Section Padding (Tablet) py: 6rem (96px) Reduced vertical padding below 1024px breakpoint
Section Top Offset pt: 6rem (96px) Additional top padding after section divider line
Container Max Width 1360px Maximum content width on desktop (1024px+)
Container Padding (Mobile) px: 1.25rem (20px) Horizontal padding below 640px
Container Padding (Tablet) px: 2rem (32px) Horizontal padding 640px–1024px
Container Padding (Desktop) px: 3rem (48px) Horizontal padding above 1024px
Card Grid Gap 1.25rem (20px) Gap between service cards, feature cards, proof points
Section Heading → Content mb: 4rem–7rem Space between section heading and first content block
Navbar Height h: 5rem (80px) Fixed navbar height on desktop (h-20)
Border Radius 0.5rem (8px) base Base radius. Cards use rounded-sm (calc(0.5rem - 4px) = 4px)
Scroll Margin Top 5rem (80px) Offset for anchor links to clear fixed navbar
Grid System
Layout Grid Where Used
Services Grid grid-cols-2 lg:grid-cols-4 8 service capability cards
B2B / B2C Panels grid lg:grid-cols-2 Side-by-side audience panels
Metrics Row grid-cols-2 lg:grid-cols-4 Results section counter metrics
Proof Points grid sm:grid-cols-2 4 case result cards
Case Studies grid md:grid-cols-2 lg:grid-cols-3 3 editorial case study cards
AI Features grid sm:grid-cols-2 lg:grid-cols-3 6 AI capability feature cards
Client Logos grid-cols-2 sm:grid-cols-4 lg:grid-cols-8 8 placeholder client logo cells
Wanamaker Section grid lg:grid-cols-12 (7+5) Text column (7/12) + image column (5/12)
AI Section Top grid lg:grid-cols-2 Text + comparison left, AI visual right
Footer grid-cols-2 lg:grid-cols-12 Brand (4) + 3 nav columns (2 each) + CTA (2)
Viewport (100%)
← 48px padding 48px padding →
Content Area — max-width: 1360px
04

Components, rendered.

Live rendered examples of every reusable UI component on the TWP website. Each component follows the Precision Architecture design system.

Buttons
Primary: Emerald fill, dark text, glow shadow. Used for main CTAs.
Secondary: Transparent, white/15% border. Used for secondary actions.
Ghost: Primary/10% fill, primary border. Used in footer and compact contexts.
Navigation Bar
Fixed position, backdrop-blur(20px), transparent → solid background on scroll. Height: 80px desktop, 64px mobile. Mobile: hamburger menu with slide-down panel.
Service Card

Programmatic & Display

AI-optimized programmatic buying across premium inventory, with real-time bidding intelligence.

📺

Connected TV & OTT

Precision-targeted CTV campaigns with household-level attribution.

Background: white/2%. Border: white/5%, hover → primary/20%. Icon in 40px primary/10% box. Lucide icons at 22px, strokeWidth 1.5.
Metric / Stat Callouts
43%
Average Reduction in CAC
2.8x
Average ROAS Improvement
$4.8M
Pipeline Generated
JetBrains Mono, 4.375rem on desktop, primary color with text-shadow glow. Animated count-up on scroll (ease-out cubic, 2.2s duration).
Gradient Border Card

B2B Marketers

We speak your language — MQLs, SQLs, pipeline velocity, and closed-won revenue.

1px gradient border using mask-composite technique. Gradient: 135deg from primary/40% to transparent at 60%. Used on B2B/B2C panels, Wanamaker portrait, case study cards.
Section Divider
1px height. Gradient: transparent → white/10% at 20% → primary/30% at 50% → white/10% at 80% → transparent. Placed at the top of every section.
Tags / Badges
Meta TikTok Programmatic CTV LinkedIn ABM
11px font, white/4% background, white/6% border, 4px radius. Used in case study cards to show channel mix.
Section Label Pattern
01 The Origin
Every section begins with this pattern: monospaced number (primary/60%) + 3rem emerald line + uppercase tracking label. Creates consistent wayfinding.
Stats Bar (Hero Bottom)
$2.4B+
Ad Spend Managed
340+
Brands Served
12+
Channels Optimized
3-column grid with 1px white/6% dividers. Positioned at the bottom of the hero section. JetBrains Mono for values.
05

Visual assets.

Every image used on the TWP website. All assets are AI-generated and served via CDN. Local copies are available in /twp-style-guide/images/ for use in presentations.

TWP Logo
twp-logo-transparent.webp
Brand logo — white on transparent. Used in navbar (h-10/40px) and footer (h-8/32px). CSS filter brightness(0) invert(1) applied for crisp rendering.
4.7 KB · WebP
Hero Background
twp-hero-bg.webp
Hero section background. Dark abstract tech/data visualization. Displayed at 40% opacity with gradient overlays (bottom fade + left-to-right fade).
68.6 KB · WebP · Full-bleed cover
Wanamaker Portrait
wanamaker-emerald-final-comp.webp
Wanamaker origin section — right column. Real historical photograph of John Wanamaker (c. 1890), background removed, emerald (#00FF88) duotone treatment applied, bottom fade into dark background. Displayed at 90% opacity with gradient-border card treatment.
WebP · background-removed · emerald duotone
Channels Mosaic
twp-channels-mosaic.webp
Services section background. Multi-channel marketing mosaic. Displayed at 10% opacity behind the services grid with a heavy dark overlay.
62.9 KB · WebP · Full-bleed cover
AI Visual
twp-ai-visual.webp
AI Advantage section — right column. Abstract AI/neural network visualization. Square aspect ratio with bottom gradient fade. Floating "14,000+ Daily AI optimizations" card overlaid.
174.2 KB · WebP · aspect-ratio 1/1
Data Abstract
twp-data-abstract.webp
Results section background. Abstract data visualization. Displayed at 15% opacity with 85% dark overlay. Creates depth behind the metric counters.
114.5 KB · WebP · Full-bleed cover
06

Depth & atmosphere.

Gradients, glow effects, and border treatments that create the layered, atmospheric feel of the TWP brand.

Hero Vertical Overlay
linear-gradient(to bottom, #080B14/70%, #080B14/50%, #080B14)
Layered over hero background image for text readability
Hero Horizontal Overlay
linear-gradient(to right, #080B14/80%, transparent, transparent)
Left-to-right fade ensuring left-aligned text is always readable
Image Bottom Fade
linear-gradient(to top, #080B14, transparent, transparent)
Applied to Wanamaker portrait and AI visual for seamless edge blending
Section Divider
linear-gradient(90deg, transparent, white/10% 20%, primary/30% 50%, white/10% 80%, transparent)
1px horizontal line between every major section
Gradient Border
linear-gradient(135deg, primary/40%, transparent 60%) via mask-composite
Applied to B2B/B2C panels, Wanamaker portrait, case study cards. Creates a subtle emerald edge glow.
43%
Text Glow (Emerald)
text-shadow: 0 0 40px oklch(0.78 0.2 155 / 30%)
Applied to hero headline accent words and large metric values
Button Glow (Emerald)
box-shadow: 0 0 30px primary/20%, 0 0 60px primary/10%
Applied to primary CTA buttons for a luminous, attention-drawing effect
Image Dark Overlay
#080B14 at 85% opacity
Heavy overlay on Results section background image. Ensures metric counters remain fully legible.
07

Motion & interaction.

All animations use Framer Motion and are triggered by IntersectionObserver scroll detection. The motion language is restrained and purposeful — elements reveal as the user scrolls, creating a sense of progressive disclosure.

Scroll Reveal — Fade Up

Framer Motion · IntersectionObserver

The primary entrance animation. Elements start with opacity: 0, y: 30 and animate to opacity: 1, y: 0 over 0.7–0.8s with staggered delays (0.1–0.15s between siblings). Triggered once when the element enters the viewport at 8–15% visibility threshold. Used on section headings, card grids, and text blocks.

Scroll Reveal — Slide In

Framer Motion · IntersectionObserver

Horizontal entrance for split layouts. B2B panel: x: -30 → 0. B2C panel: x: 30 → 0. Section labels slide from x: -20 → 0. Duration 0.6–0.8s. Creates a sense of content assembling from the edges.

Metric Counter Animation

Custom Hook · requestAnimationFrame

Numbers count up from 0 to their target value using requestAnimationFrame with an ease-out cubic curve: 1 - Math.pow(1 - progress, 3). Duration: 2.2 seconds. Triggered once on scroll visibility. Decimal values (e.g., 2.8x) use toFixed(1). Before animation triggers, displays "—" as placeholder.

Scale Reveal — Images

Framer Motion · IntersectionObserver

Images (Wanamaker portrait, AI visual) enter with opacity: 0, scale: 0.9–0.95 and animate to opacity: 1, scale: 1 over 0.9–1.0s. Creates a subtle "emerging from depth" effect that draws attention to visual assets.

Hero Entrance Sequence

Framer Motion · Staggered Auto-play

The hero section plays a choreographed entrance on page load (no scroll trigger needed): eyebrow label (0.2s delay) → headline (0.35s) → subheadline (0.55s) → CTA buttons (0.7s) → stats bar (0.9s). Each element fades up from y: 20–40. Total sequence: ~1.7 seconds.

Hover Transitions

CSS Transitions

All interactive elements use CSS transitions with 300–500ms duration: card borders shift from white/5% → primary/20%, card backgrounds brighten subtly, nav links transition color, CTA buttons use filter: brightness(1.1), and the secondary button border shifts to primary/40%. Arrow icons translate x: 0 → 4px on button hover.

Navbar Scroll Behavior

React useState + useEffect · scroll listener

The navbar starts transparent and transitions to a solid background with backdrop-blur(20px) after scrolling past 50px. Uses a scrolled state boolean that toggles the background class. Transition duration: 500ms on all properties.