Skip to content

Better Than Perfect Podcast Brand Guide

Better Than Perfect PodcastBrand Guide v2.2
Canonical brand system

Better Than Perfect

A full premium brand system for real conversations about imperfect relationships: visual identity, voice, website, photography, motion, audio, social profiles, and governance.

LockedMidnight Rose visual system
LockedNavy / wine alternation
New in v2Website, LUT, social profile kit
FixedWhite logo rollout

Rendered V2.2 Plates

Visual evidence

The v2.2 guide includes actual design plates, not only written direction. These assets are relative to this rich guide and can be used as implementation references.

Better Than Perfect Podcast Brand Guide v2.2

Version: 2.2
Owner: Echo / Better Than Perfect production system
Canonical status: Source of truth for BTP social templates, weekly automation, and creative QA
Last updated: 2026-07-08

How To Read This Guide

Every section is marked as either LOCKED or PROPOSED.

LOCKED means John has already approved the direction in production or the value is implemented in code. Treat it as law. Do not change it without John's approval and a fidelity check against approved references.

PROPOSED means this is the v2 strategic or creative recommendation. It is written to be used immediately, but it should be reviewed by John before being treated as final brand doctrine.

1. Brand Foundation

Status: PROPOSED

Positioning Statement

Better Than Perfect is a relationship podcast for people who are done pretending that love, healing, dating, and self-work are clean or linear. It sits in the space between soft therapy-speak and cynical dating content: honest enough to sting, warm enough to be useful, and practical enough to help someone make a better decision this week.

Core Promise

Real conversations about imperfect relationships, so listeners can stop performing "fine" and start telling the truth about what they want, what hurt them, and what they are ready for next.

Audience

Primary audience:

  • Adults navigating dating, breakups, attachment patterns, relationship repair, personal growth, and emotional honesty.
  • Social audience is mixed, with a female-leaning visual and emotional preference based on the approved shift toward softer, editorial, rose-gold and wine treatments.
  • Listeners want relationship advice that feels direct, not clinical; emotionally aware, not fragile; and candid, not performative.

Secondary audience:

  • People adjacent to the relationship moment: friends forwarding a post, partners trying to understand conflict, and fans of personal growth content who dislike preachy guru energy.

Brand Personality

  • Candid: Says the thing people are avoiding, without cruelty.
  • Warm: Lets honesty land without shaming the listener.
  • Premium: Feels editorial, composed, and intentional rather than trend-chasing.
  • Provocative: Creates enough tension to earn saves, shares, comments, and disagreement.
  • Grounded: Uses plain language and lived patterns instead of over-clinical diagnosis.

Values

  • Truth over performance: Better Than Perfect should never reward looking healed more than being honest.
  • Depth without fog: Emotional nuance is welcome; vague self-help language is not.
  • Responsibility without blame: The show can challenge listeners without turning pain into moral failure.
  • Human over polished: The brand should feel edited, not sanitized.
  • Useful conflict: A strong take is good when it helps a listener see a pattern more clearly.

Competitive Tone Positioning

BTP is the honest middle.

Against therapy-speak accounts:

  • Avoid: "Hold compassionate space for your relational activation."
  • Prefer: "If they came back tomorrow, you'd answer. Be honest about that."

Against cynical red-pill / gender-war content:

  • Avoid: "Never trust anyone. Dating is a market."
  • Prefer: "Do not use another person to avoid grieving the last one."

Against generic inspirational relationship pages:

  • Avoid: "You deserve love. Keep shining."
  • Prefer: "You may want love and still not be ready to date."

2. Verbal Identity

Voice status: LOCKED as provocative, real, never preachy.
Execution details: PROPOSED, except where pulled from the weekly skill.

Voice Pillars

Provocative

The brand should make a viewer pause, save, share, or argue. The take should be defensible from the episode, not inflammatory for its own sake.

Do:

  • "Most people do not want a partner. They want a rescue."
  • "Dating too soon can turn someone new into emotional anesthesia."

Do not:

  • "Everyone is toxic now."
  • "Modern dating is broken and nobody is loyal."

Real

The language should sound like something a thoughtful person would actually say out loud.

Do:

  • "If they came back tomorrow, you'd answer."
  • "No new person gets a clean first chance when you are still comparing them to your ex."

Do not:

  • "Your unresolved relational trauma may be informing maladaptive partner selection."
  • "Your inner child needs a new container."

Never Preachy

BTP can challenge a listener, but it should not talk down to them. The best lines feel like an uncomfortable mirror, not a lecture.

Do:

  • "Be honest before you reopen the door."
  • "You may not be ready yet. That is not a failure."

Do not:

  • "You need to heal before you deserve a relationship."
  • "If you do this, you are the problem."

Tone By Context

Context Tone Rule
Episode titles Searchable, direct, emotionally specific Lead with the problem or pattern. Avoid clever-only titles.
Carousel covers Editorial, second-person, high-stakes Numbered signs, patterns, mistakes, or questions.
Sign slides Intimate and blunt One sharp headline, one clarifying body beat.
Quote graphics Reflective and saveable Use speech-like lines, not slogans.
Question posts Direct and commentable Ask the question people can answer from lived experience.
Hot takes Contrarian but humane Remove hedging. Keep the claim defensible.
Captions Short, concrete, CTA-driven Hook, context, CTA, hashtags.
Comments Conversational and warm Ask one question. Do not over-explain.
YouTube descriptions Useful and searchable Include episode links when known and music attribution when required.

Title Formulas

  • "5 signs you're not ready to date again"
  • "Why dating feels so hard after a breakup"
  • "Are you actually ready to date again?"
  • "The pattern you keep calling chemistry"
  • "When missing them becomes the excuse"
  • "What to do before you reopen the door"

Preferred structures:

  • Numbered signs: "5 signs you're..."
  • Direct second-person questions: "Are you actually..."
  • Pattern naming: "The pattern you keep..."
  • Emotional contrast: "Ready vs. lonely"
  • Search-led phrasing: "How to know if..."

Words And Phrases To Avoid

Avoid over-clinical jargon unless the episode itself explains it plainly:

  • activation
  • dysregulation
  • relational container
  • trauma response, when used as a vague catch-all
  • anxious/avoidant as identity labels without context
  • narcissist, toxic, gaslighting, unless the episode specifically supports the term

Avoid hedging in hot takes:

  • maybe
  • might
  • sometimes
  • probably
  • could
  • sort of
  • kind of

Avoid moralizing:

  • should be ashamed
  • you deserve this because
  • real men / real women
  • high value / low value

Avoid empty self-help:

  • choose yourself
  • protect your peace
  • you are enough
  • everything happens for a reason

Caption Formula

Status: LOCKED from btp-social-weekly.

Every caption follows:

  1. Hook line.
  2. One or two short context sentences.
  3. CTA.
  4. Hashtags.

Rules:

  • Instagram first line: 125 characters or fewer.
  • TikTok: 80-180 characters before hashtags, front-load the point.
  • Facebook: 1-3 short sentences; links may be included.
  • YouTube Shorts: include episode links when known; include Kevin MacLeod attribution for slideshow Shorts using "Almost in F".
  • Do not put YouTube or Spotify URLs in Instagram captions; use "Full episode link in bio."
  • If a link is unknown, omit it. Never fabricate.

Standard hashtags:

  • Use 3-5 from: #BetterThanPerfect, #RelationshipPodcast, #DatingAdvice, #RelationshipAdvice, #HealingAfterBreakup.
  • Add exactly 2 episode-specific hashtags based on the topic.
  • Avoid policy-risky or explicit hashtags.

3. Visual Identity

Status: LOCKED

The approved system is V5 Midnight Rose: dark editorial backgrounds, white logo, and rose-gold accent elements, Baskerville display typography, Georgia supporting copy, Avenir Next letterspaced caps, ghost numerals/glyphs, and weekly navy/wine alternation.

Color System

Weekly Alternation

Status: LOCKED

Each episode week uses exactly one scheme across every generated asset. Do not mix navy and wine inside one episode's weekly pack.

Rule:

  • Episode week A: navy
  • Episode week B: wine
  • Next episode: flip back

The live state file tracks the next scheme at:

/Users/navi/clawd/agents/echo/vault/07_episodes/social-state.json

Shared Colors

Token HEX RGB Role
Ivory #F4F0E8 rgb(244, 240, 232) Primary headline text on dark backgrounds
Rose Gold #E3B7A0 rgb(227, 183, 160) Accent-only: dividers, progress fill, kickers, prompts, small text accents
Token HEX RGB Role
Navy gradient top #0A1A30 rgb(10, 26, 48) Background top
Navy gradient bottom #040C1A rgb(4, 12, 26) Background bottom
Navy glow #5A4650 rgb(90, 70, 80) Vignette glow overlay
Navy ghost numeral #343E54 rgb(52, 62, 84) Low-contrast numerals and glyphs
Navy body #B9B9BE rgb(185, 185, 190) Sign body copy
Navy muted #B4A096 rgb(180, 160, 150) Cover swipe text
Navy progress track #263044 rgb(38, 48, 68) Footer progress bar background
Navy footer #AAA5A0 rgb(170, 165, 160) Footer text

Wine Scheme

Token HEX RGB Role
Wine gradient top #3B0A1E rgb(59, 10, 30) Background top
Wine gradient bottom #1E0510 rgb(30, 5, 16) Background bottom
Wine glow #782D3C rgb(120, 45, 60) Vignette glow overlay
Wine ghost numeral #68283A rgb(104, 40, 58) Low-contrast numerals and glyphs
Wine body #D2B6AF rgb(210, 182, 175) Sign body copy
Wine muted #C8A096 rgb(200, 160, 150) Cover swipe text
Wine progress track #521C2C rgb(82, 28, 44) Footer progress bar background
Wine footer #C39E94 rgb(195, 158, 148) Footer text

Typography

Status: LOCKED

No third-party web fonts are required. Production rendering uses macOS system fonts.

Use Typeface Size at 1080x1350 Treatment
Cover headline Baskerville 112 pt Centered, ivory, line step 145 px
Sign slide headline Baskerville 90 pt Left aligned, ivory, line step 118 px
Recap / CTA headline Baskerville 90 pt base Fit down only when necessary
Quote body Baskerville Italic 88 pt base Centered; fit down to 56 pt if needed
Question body Baskerville 88 pt base Centered; fit down to 56 pt if needed
Hot take body Baskerville 92 pt base Centered; fit down to 58 pt if needed
Sign body Georgia 40 pt Left aligned, line step 58 px
CTA body Georgia 40 pt Centered
Cover subtitle Georgia Italic 38 pt Centered, rose gold
Question prompt Georgia Italic 40 pt Centered, rose gold
Cover swipe Georgia Italic 34 pt Centered near bottom
Kickers Avenir Next Medium 26 pt Letterspaced caps, 8 px tracking
Hot take kicker Avenir Next Medium 30 pt Letterspaced caps, 10 px tracking
Footer Avenir Next Medium 22 pt Letterspaced caps, 6 px tracking
Audiogram captions Avenir Next 60 pt Ivory with black stroke

Logo System

Status: LOCKED

Treatment:

  • Use the current Better Than Perfect logo with the white background removed.
  • On dark templates, render the logo pure white #FFFFFF; rose gold #E3B7A0 is accent-only for dividers, kickers, prompts, progress fill, and small text accents.
  • Cover slide logo: 150 px, centered at x=540, y=195.
  • Sign slide logo: 110 px, centered at x=960, y=120.
  • Question card logo: 140 px, centered at x=540, y=185.
  • Quote card logo: 110 px, centered below the quote block.
  • Audiogram logo: 135 px, centered at x=540, y=185.

Clear space:

  • Maintain at least one logo-mark width around the logo when possible.
  • Never let body text, ghost glyphs, or frame lines touch the mark.

Minimum size:

  • Feed graphics: never below 90 px.
  • Video/audiogram: never below 110 px.
  • Small UI/documentation thumbnails may scale below this only as previews, never as production creative.

Misuse rules:

  • Never stretch, skew, crop, or rotate the logo.
  • Never recolor it away from pure white on brand backgrounds; rose gold is no longer a logo tint.
  • Never place it on busy photography without a dark overlay.
  • Never restore the white box background on dark templates.
  • Never use off-brand shadows, bevels, glows, or sticker outlines.

Signature Motifs

Status: LOCKED

  • Ghost numerals and glyphs: Giant low-contrast Baskerville numerals or punctuation behind content. Sign numeral is 300 pt at (84, 150). Quote glyph is 420 pt at (70, 90). Question mark is 460 pt at (825, 420) with transparency.
  • Letterspaced kickers: Avenir Next Medium caps with 8-10 px tracking.
  • Accent dividers: Rose-gold 3 px horizontal lines, usually 120-156 px wide.
  • Progress footer: 6 px bar from x=90 to x=990, placed at y=1244-1250, with rose-gold fill showing slide progress.
  • Film grain: Image.effect_noise with alpha 8, subtle only.
  • Vignette glows: Blurred ellipses in upper-right and lower-left, using each scheme's glow color.
  • Generous margins: Primary feed graphics use a 90 px left/right margin on 1080 px width.
  • No border frames on carousel slides: The rejected rehearsal added frame-like decoration. The approved carousel does not.

4. Photography & Imagery

Status: PROPOSED

Direction

BTP photography should look like real relationship conversations captured with editorial restraint. Think warm, candid, emotionally present, and human. The viewer should feel close to a true conversation, not a staged stock shoot.

Host And Episode Photography

Use:

  • Candid expressions between thoughts.
  • Seated conversational compositions.
  • Warm interiors, soft natural light, evening lamps, or studio light that feels like a room.
  • Medium-close frames where eyes, hands, and posture carry emotion.
  • Negative space that can hold type when needed.
  • Imperfect but intentional moments: a pause, a half-smile, a direct look, a leaned-in reaction.

Avoid:

  • Harsh direct flash.
  • Clinical white backgrounds.
  • Generic stock couples.
  • Podcast cliches: oversized headphones as the hero, thumbs-up poses, fake laughing at microphones.
  • Overly glossy influencer portraits.
  • Busy backgrounds behind text.
  • Visuals that feel like therapy brochures.

Lighting And Grade

  • Soft directional key light.
  • Warm shadows, not orange shadows.
  • Slightly desaturated warm tones.
  • Deep enough blacks to sit beside navy and wine templates.
  • Skin should remain natural; do not push everything into a red or brown cast.

Photography With Templates

When text sits on photography:

  • Apply a dark navy or wine overlay before setting type.
  • Preserve the rose-gold accent system.
  • Use Baskerville for the main statement and Avenir Next for the kicker.
  • Keep text in open negative space; do not float it over faces.
  • If the image cannot support 90 px margins and clean readability, choose a different image.

5. Content Systems

Status: LOCKED

Weekly Cadence

Day Asset Status Purpose
Friday Generate and preview full pack LOCKED One approval moment for the week
Monday Carousel + slideshow Short LOCKED Main educational/social save asset
Wednesday Quote graphic LOCKED Emotional save/share post
Thursday Hot take graphic LOCKED Comment and share driver
Saturday Question of the week LOCKED Direct engagement post
Gap days Audiograms and editor clips LOCKED Keep feed active; fill around editor deliveries
Tuesday Clip gap check LOCKED Flag missing editor clips early

Status: LOCKED

Format: 8 slides, 1080x1350.

Purpose: Turn the episode into a saveable, searchable relationship framework.

Structure:

  1. Cover
  2. Sign 01
  3. Sign 02
  4. Sign 03
  5. Sign 04
  6. Sign 05
  7. Recap
  8. CTA

Key geometry:

  • Cover logo: 150 px at center y=195.
  • Cover kicker: BETTER THAN PERFECT ยท EP. N at y=295.
  • Cover headline: Baskerville 112 pt, starts y=460.
  • Sign kicker: SIGN at (90, 100).
  • Sign ghost number: Baskerville 300 pt at (84, 150).
  • Sign headline: Baskerville 90 pt, starts y=560.
  • Sign body: Georgia 40 pt, starts after headline.
  • Footer progress bar and footer text on all non-cover carousel slides.

Quote Graphic

Status: LOCKED

Format: 1080x1350.

Purpose: Pull the most saveable emotional line from the episode.

Rules:

  • Verbatim or lightly trimmed transcript line.
  • Max 20 words.
  • 2-4 visual lines.
  • Baskerville Italic body.
  • Ghost quotation mark.
  • Footer and centered logo.

Question Of The Week

Status: LOCKED

Format: 1080x1350.

Purpose: Turn the episode's central tension into comments.

Rules:

  • Direct second-person question.
  • Max 15 words.
  • 2-3 visual lines.
  • Prompt line: "Tell us in the comments." unless there is a stronger episode-specific prompt.
  • Ghost question mark.

Hot Take

Status: LOCKED

Format: 1080x1350.

Purpose: Create a defensible argument people want to agree with or challenge.

Rules:

  • Most contrarian supported claim from the transcript.
  • Statement form, not question form.
  • Max 14 words.
  • No hedging words.
  • Same dark template system.
  • Uses a thin rose-gold frame in the current renderer.

Note: the carousel itself must not use border frames. The hot-take card has a deliberate frame treatment in make_single.py.

Audiogram Short

Status: LOCKED

Format: 1080x1920.

Purpose: Create editor-independent Shorts from the strongest audio-only moments.

Rules:

  • Segment length: minimum 25 seconds; target 30-60 seconds.
  • Hook starts in first 5 seconds.
  • Segment is understandable without surrounding context.
  • Uses original episode or clip audio.
  • Waveform and captions must be readable in the bottom third.
  • Title max 55 characters.

Key geometry:

  • Logo 135 px at y=185.
  • Kicker at y=300.
  • Baskerville title starts around y=430.
  • "listen to this moment" Georgia Italic at y=690.
  • Waveform panel from (100, 1100) to (980, 1730).
  • Footer at bottom left.

Slideshow Short

Status: LOCKED

Format: 1080x1920.

Purpose: Turn the carousel into a vertical motion asset for Shorts/Reels/TikTok.

Rules:

  • Uses the 8 carousel slides.
  • Slides are scaled to 1080x1350 and padded into 1080x1920 with vertical offset.
  • Durations: 4.0, 4.5, 4.5, 4.5, 4.5, 4.5, 4.0, 5.0 seconds.
  • Crossfade: 0.6 seconds.
  • FPS: 30.
  • Default music: Kevin MacLeod, "Almost in F".

6. Application Rules

Status: LOCKED where practiced

Platform Specs

Asset Size Platforms
Carousels 1080x1350 Instagram, Facebook, TikTok photo carousel where supported
Quote / question / hot take 1080x1350 Instagram, Facebook, TikTok photo posts where supported
Slideshow Short 1080x1920 YouTube Shorts, TikTok, Instagram Reels
Audiogram Short 1080x1920 YouTube Shorts, TikTok, Instagram Reels

Approval Gate

Status: LOCKED

Nothing posts or schedules without John's explicit approval of that exact preview batch.

Approval covers:

  • Assets shown in the preview.
  • Captions.
  • First comments.
  • Schedule.
  • Platforms.

Approval does not automatically approve future weeks.

Music And Attribution

Status: LOCKED

The slideshow Short uses:

/Users/navi/clawd/agents/echo/skills/btp-social-weekly/assets/music_Almost_in_F.mp3

Attribution block required in every YouTube description for slideshow Shorts using that track:

Music: "Almost in F" by Kevin MacLeod
Licensed under Creative Commons: By Attribution 4.0 License
https://creativecommons.org/licenses/by/4.0/
Source: https://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100394

Audiograms use original episode/clip audio and do not add background music unless John approves a new format.

Pinned First Comments

Status: LOCKED

Every post gets a first-comment question when the platform supports it.

Rules:

  • One sentence.
  • Max 110 characters.
  • No hashtags.
  • No emojis.
  • No links.

Formulas:

Piece Formula Example
Carousel Ask which sign hit home "Which one hit home? 1-5 below."
Slideshow Short Ask the main readiness question "Which sign is hardest to admit?"
Quote Ask agree/disagree "Agree or disagree?"
Hot take Invite challenge "Am I wrong?"
Question post Restate the question "Are you actually ready to date again?"
Audiogram Ask about the moment's core claim "Have you ever used dating as a distraction?"
Clip Ask about the specific claim in the clip "Have you seen this pattern in dating?"

Platform support:

  • Instagram: platformSpecificData.firstComment supported for feed, reels, carousels.
  • Facebook: platformSpecificData.firstComment supported for feed posts.
  • YouTube: first comment can be posted/pinned for Shorts through the YouTube flow.
  • TikTok: no reliable documented first-comment support in current Zernio docs; store and flag manual/browser parity if needed.

Hashtag Standards

Status: LOCKED

Use 3-5 standard hashtags from:

  • #BetterThanPerfect
  • #RelationshipPodcast
  • #DatingAdvice
  • #RelationshipAdvice
  • #HealingAfterBreakup

Add exactly 2 episode-specific hashtags based on the topic.

Avoid policy-risky or explicit hashtags.

7. Governance

Status: LOCKED

Source Of Truth

This brand guide is the source of truth for:

  • Visual identity.
  • Social template rules.
  • Brand voice.
  • Template QA.
  • Weekly automation decisions.

Canonical markdown source:

/Users/navi/clawd/agents/echo/vault/01_brand/btp-brand-guide.md

Rich HTML reading copy:

/Users/navi/clawd/shared/rich-replies/r/btp-brand-guide/index.html

Change Control

Template changes require:

  1. John's approval of the proposed change.
  2. Update this brand guide.
  3. Update the relevant renderer/script.
  4. Run a fidelity check against approved reference images.
  5. Generate a side-by-side proof before production use.

Fidelity References

Approved reference assets:

  • Navy cover: media/ep136-carousel/variants/v5_navy_cover.png
  • Navy sign: media/ep136-carousel/variants/v5_navy_sign.png
  • Wine cover: media/ep136-carousel/variants/v5_wine_cover.png
  • Wine sign: media/ep136-carousel/variants/v5_wine_sign.png

Any future renderer must preserve the approved geometry, typography, palette, logo treatment, and spacing.

State Tracking

Status: LOCKED

The navy/wine alternation and weekly item statuses are tracked in:

/Users/navi/clawd/agents/echo/vault/07_episodes/social-state.json

Do not hand-flip the scheme casually. Production runs write the scheme once per episode and then flip next_scheme for the following episode.

Versioning

This guide is versioned in the Echo vault. Long-term changes should be noted in daily memory with a pointer, not pasted into MEMORY.md.

v2.2 Changelog

  • Rolled the BTP logo to pure white across production social templates and brand-background usage.
  • Demoted rose gold to accent-only: episode lines, dividers, prompts, progress fills, and small text accents stay rose gold.
  • Regenerated audiogram_frame.png with the white logo and updated every rendered guide plate that contains the BTP logo to use the pure-white lockup.

v2.1 Changelog

  • Fixed the audiogram and website logo rendering with a reusable transparent logo asset that preserves source aspect ratio.
  • Added printed brand-book graphical plates for color, type, logo usage, template anatomy, grid, motifs, and website UI components.
  • Added logo zoom evidence plate for future fidelity checks.

v2.0 Changelog

Status: LOCKED as guide history.

  • Fixed the audiogram logo treatment: the production renderer now removes the JPEG white field softly, crops the live mark, preserves logo aspect ratio, and downscales with LANCZOS instead of squeezing the mark into a square.
  • Expanded the guide from a social-template guide into a fuller brand system: website design, photography/color grading, LUT, motion, audio identity, social profile kit, brand architecture, and asset governance.
  • Added rendered plates: website homepage mockup, social avatar, highlight covers, 3x3 social grid rhythm, photography/LUT comparison, and refreshed audiogram frame.
  • Added BTP-Warm.cube as a working LUT asset in both the public guide assets folder and the Echo vault.

8. Website Design System

Status: PROPOSED

Strategic Role

The website should feel like the permanent home of Better Than Perfect, not a generic podcast archive. It should be dark-first, emotionally direct, and editorial: a place to listen, browse episodes, subscribe, and understand the promise of the show in under ten seconds.

Web Palette

Token HEX Usage
--btp-navy-900 #040C1A Page background, footer, dark cards
--btp-navy-800 #0A1A30 Hero gradient top, section bands
--btp-navy-700 #111E33 Episode cards, audio player bar
--btp-wine-800 #3B0A1E Newsletter block, feature accents, wine-week modules
--btp-rose #E3B7A0 Primary buttons, links, focus rings, dividers
--btp-ivory #F4F0E8 Primary text on dark
--btp-muted #CFC4BC Secondary body text
--btp-line rgba(227,183,160,.28) Hairlines, card borders

Typography

Status: PROPOSED for web implementation, derived from locked social typography.

Display stack: Baskerville, "Playfair Display", Georgia, serif.
Body stack: Georgia, "Times New Roman", serif.
UI stack: "Avenir Next", Avenir, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif.

Level Size Line height Use
Display XL 3.5rem mobile / 6.75rem desktop .96 Homepage hero headline
H1 3.5rem 1.0 Episode page title
H2 2.25rem 1.08 Section titles
H3 1.5rem 1.18 Card titles, subheads
Body large 1.125rem 1.55 Lead paragraphs
Body 1rem 1.6 Standard copy
Kicker .75rem 1.2 Avenir caps, .18em letter spacing

Rules:

  • Do not scale type directly with viewport width. Use breakpoint steps and clamp() only where min/max are explicit.
  • Never use negative letter spacing.
  • Keep body copy at 65-78 characters per line.
  • H1/H2 text should retain a human editorial pace: 2-4 lines is acceptable; single-line cleverness is not required.

Components

  • Height: 84px desktop, 68px mobile.
  • Background: rgba(4,12,26,.92) with optional backdrop-filter: blur(12px).
  • Left: pure-white logo, max width 170px, with 24px clear space.
  • Links: Avenir Next Medium, 12px, uppercase, 0.16em tracking, ivory at 78% opacity; hover/focus rose-gold.
  • Bottom border: 1px solid rgba(227,183,160,.22).

Hero

  • Dark navy gradient #0A1A30 to #040C1A with a soft wine glow in the upper-right.
  • Layout: 12-column grid, text spans columns 1-7, episode art/player spans 8-12.
  • Eyebrow: FEATURED EPISODE, rose-gold, Avenir caps.
  • H1: display serif, max width 760px.
  • Primary action: round pill, rose-gold fill, navy text, 56px height, 28px radius.
  • Secondary action: transparent pill, rose-gold border, ivory text.
  • Hero must show the actual episode or latest content; no abstract gradient-only landing page.

Episode Card Grid

  • Card width: 3-up desktop, 2-up tablet, 1-up mobile.
  • Radius: 10px max.
  • Background: #111E33; border 1px solid rgba(227,183,160,.18).
  • Thumbnail ratio: 4:3 with navy/wine template still or graded photography.
  • Metadata: Avenir caps, rose-gold, 11px.
  • Title: Baskerville/Georgia, 1.5rem, ivory.
  • Description: Georgia, 1rem, muted ivory.

Inline Audio Player Bar

  • Height: 112-132px desktop.
  • Background: #081222; border rose-gold at 22% opacity.
  • Play button: 56px circle, rose-gold fill, navy icon.
  • Waveform: rose-gold at 55% opacity over muted navy track.
  • Progress fill: rose-gold; inactive track #263044.

Buttons

Button Fill Text Border Hover
Primary #E3B7A0 #0A1A30 none Lighten fill 6%, translateY(-1px)
Secondary transparent #F4F0E8 #E3B7A0 1px Background rgba(227,183,160,.10)
Text link none #E3B7A0 underline on hover underline offset 4px

Focus ring: 2px solid #E3B7A0, offset 3px.

Newsletter Signup

  • Use wine block as the default conversion module.
  • Background: #3B0A1E; border 1px solid #E3B7A0 at 60% opacity.
  • Minimum height desktop: 300px.
  • Field radius: 999px; input fill ivory; button rose-gold.
  • Copy promise: one useful relationship truth per week, no motivational fog.
  • Background: #100F12 or #040C1A.
  • Include listen links, social links, contact, music/creative attribution when needed, and copyright.
  • Footer logo should be pure white on dark brand backgrounds; rose gold stays reserved for accents and actions.

Page Templates

Homepage

  1. Sticky nav.
  2. Feature hero with latest episode, play button, and branded episode art.
  3. Inline audio player for latest episode.
  4. Recent episodes grid.
  5. Social proof / best-of clips strip.
  6. Newsletter signup block.
  7. Footer.

Episode Page

  1. Episode hero with title, episode number, publish date, and player.
  2. One-paragraph episode thesis.
  3. Listen links.
  4. Key takeaways / signs / timestamps.
  5. Embedded Short or carousel preview.
  6. Transcript section, collapsed by default.
  7. Related episodes.

About Page

  1. Brand promise hero: real conversations about imperfect relationships.
  2. Host/production photography treated with BTP Warm grade.
  3. What the show believes / does not believe.
  4. Listener outcomes.
  5. Subscribe and follow links.

Website Design Plate

Rendered visual: shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/website_mockup.png
Standalone mockup file: shared/rich-replies/r/btp-brand-guide/assets/website-mockup.html

Accessibility

Status: LOCKED for contrast math, PROPOSED for web implementation.

Pair Ratio WCAG Result
Ivory #F4F0E8 on navy #0A1A30 15.05:1 Passes AA/AAA normal text
Ivory #F4F0E8 on navy bottom #040C1A 18.31:1 Passes AA/AAA normal text
Rose gold #E3B7A0 on navy #0A1A30 8.93:1 Passes AA/AAA normal text
Rose gold #E3B7A0 on wine #3B0A1E 7.83:1 Passes AA/AAA normal text
Navy #0A1A30 on rose gold #E3B7A0 8.93:1 Passes AA/AAA normal text
Muted #CFC4BC on navy #0A1A30 10.45:1 Passes AA/AAA normal text
Wine body #D2B6AF on wine #3B0A1E 6.65:1 Passes AA normal text

Avoid rose-gold text on ivory. It fails contrast for body copy and should only appear as decorative linework on light surfaces.

9. Photography & Color Grading

Status: PROPOSED

Brand Photography Look

BTP photography should feel like warm editorial realism: emotionally close, slightly desaturated, deep navy shadows, warm skin, and quiet practical light. It should look like a real conversation happened in the room five seconds before the shutter clicked.

Required cues:

  • Warm skin tones without orange cast.
  • Shadows pushed subtly toward navy/teal.
  • Highlights warm rose-gold, especially lamps, candles, wood, and paper.
  • Saturation reduced 10-15% from neutral capture.
  • Contrast shaped with a gentle S-curve: deeper blacks, protected skin highlights.
  • Directional light: window, lamp, or studio source that feels like a room.

Avoid:

  • Stock couple poses, thumbs-up podcast images, clinical white walls, over-smoothed skin, influencer gloss, heavy teal/orange blockbuster color, and busy backgrounds behind text.

Generated Photography Plates

Assets live in shared/rich-replies/r/btp-brand-guide/assets/. Current guide includes AI-generated editorial photography plates for:

  • Warm couple conversation.
  • Host-style portrait.
  • Intimate detail shot.
  • Moody interior with navy shadows.

BTP Warm LUT

Status: PROPOSED asset, implemented

Files:

  • Public guide asset: shared/rich-replies/r/btp-brand-guide/assets/BTP-Warm.cube
  • Canonical vault copy: agents/echo/vault/01_brand/luts/BTP-Warm.cube

Recipe:

  • White balance: warm highlights by approximately +4.5% red, +1.8% green, -1.8% blue above mid-gray.
  • Shadow tint: add +5.5% blue, +1.5% green, -2.5% red below mid-gray to pull shadows toward navy.
  • Saturation: multiply chroma by .88 (-12%).
  • Contrast: gentle S-curve around 0.5 with approximately 1.08x midtone contrast.
  • Blacks: keep rich, not crushed; preserve face detail.
  • Skin: never let the grade push skin magenta or gray.

BTP Midnight LUT Spec

Status: PROPOSED written spec

Use for wine-week moodier content, late-night reels, and dramatic episode stills.

  • White balance: warmer highlights than BTP Warm, +6% red, +2% green, -2% blue.
  • Shadows: deeper navy-wine cross tint, with blue lift in darkest shadows and wine-red lift in low mids.
  • Saturation: -18% global, then preserve skin saturation locally if grading manually.
  • Contrast: stronger S-curve than BTP Warm; black point may lower 3-5% if faces remain readable.
  • Use only when the image has enough lamp/window warmth to avoid becoming muddy.

Photography Plate Assets

Rendered visuals:

  • shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/photography_plates_contact_sheet.png
  • shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/photo_couple_conversation.png
  • shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/photo_host_portrait.png
  • shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/photo_detail_hands.png
  • shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/photo_moody_interior.png

Before / After Plate

Rendered visual: shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/photo_lut_before_after.png

Episode Shot List Standards

Capture per episode or recording block:

  • 6 host candids: seated, thinking, laughing naturally, listening, direct-to-camera, between-takes.
  • 4 detail inserts: hands, notebook, coffee, phone with notes, mic detail only if not cliche.
  • 4 room/BTS images: lamp, chairs, studio corner, production moment.
  • 2 negative-space frames for quote overlays.
  • 2 vertical portraits for Reels/Stories.

Minimum capture specs:

  • Still photos: 4000px long edge minimum, RAW preferred, JPEG acceptable only if high quality.
  • Social crop safety: capture loose enough for 4:5, 1:1, 9:16, and website 16:9 crops.
  • Shutter: avoid motion blur unless intentionally editorial.
  • Delivery: upload selects and RAWs to the episode media folder; do not flatten LUT into the only master.

10. Motion & Animation

Status: LOCKED where implemented, PROPOSED for broader motion language

Slideshow Short Motion

Status: LOCKED from make_short.py.

  • Format: 1080x1920, 30fps.
  • Source slides: 8 carousel PNGs at 1080x1350.
  • Pad into vertical frame at y offset 285px.
  • Durations: 4.0, 4.5, 4.5, 4.5, 4.5, 4.5, 4.0, 5.0 seconds.
  • Crossfade: 0.6s.
  • Zoompan: z='1+0.04*on/frames', centered x/y.
  • Music fade: in 1.5s, out 2.5s.

Audiogram Motion

Status: LOCKED from make_audiogram.py.

  • Format: 1080x1920, 30fps.
  • Segment length: 25-60s, target 30-60s.
  • Audio fade: in 0.3s, out 0.3s.
  • Audio loudnorm: I=-16, LRA=11, TP=-1.5.
  • Waveform: ffmpeg showwaves=s=820x220:mode=cline:colors=E3B7A0.
  • Waveform position: centered at x, y=780.
  • Caption style: ivory, black outline, bottom alignment, MarginV=210 when subtitle filter is available; PIL fallback uses Avenir Next 60pt.

Broader Motion Principles

Status: PROPOSED

  • Easing: cubic-bezier(.22,.61,.36,1) for UI; no elastic/bounce easing.
  • Text reveals: fade or 8-12px upward drift over 300-450ms.
  • Scene transitions: crossfade 0.5-0.8s.
  • Logo animation: fade only, max 300ms.
  • Caption animation: no bouncing words; if animated later, use phrase-level fade/slide, not karaoke chaos.

Never:

  • Spinning logos.
  • Bounce text.
  • Stock whooshes.
  • Glitch effects.
  • Fast zooms that feel like generic motivational reels.
  • Decorative particles/orbs unrelated to content.

11. Audio Identity

Status: LOCKED for current music and attribution; PROPOSED for future sonic identity.

Current Locked Music

The slideshow Short uses Kevin MacLeod, "Almost in F" under CC-BY 4.0.

Required YouTube attribution block:

Music: "Almost in F" by Kevin MacLeod
Licensed under Creative Commons: By Attribution 4.0 License
https://creativecommons.org/licenses/by/4.0/
Source: https://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100394

Future Sonic Direction

  • Intro sting: 3-5s, warm piano or soft keys, intimate room tone, no corporate podcast swell.
  • Mood: reflective, direct, late-evening conversation.
  • Avoid: ukulele, corporate marimba, EDM risers, aggressive cinematic booms.
  • Loudness target: -14 LUFS integrated for streaming exports; true peak -1.0 dBTP max.
  • Voiceover tone: close mic, natural breath, confident but not announcer-like.

12. Social Profile System

Status: PROPOSED, with rendered assets included.

Avatar

Asset: shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/btp_avatar_800.png

Spec:

  • Canvas: 800x800.
  • Background: navy gradient with subtle wine glow.
  • Logo: pure-white mark, center safe inside a circular crop.
  • Safe area: keep all critical logo detail inside a 640px circle centered at (400,400).
  • Never use the white-background JPG directly as a profile image.

Bio Formulas

Instagram, 150 characters:

Real conversations about imperfect relationships. Dating, breakups, healing, and the truth you keep avoiding. New episodes Fridays.

TikTok, 80 characters preferred:

Dating, breakups, healing, and uncomfortable relationship truths.

YouTube, 1-2 sentences:

Better Than Perfect is a relationship podcast about dating, breakups, healing, and the honest patterns people avoid saying out loud. New conversations every Friday.

Facebook page:

A relationship podcast for people who are done pretending love, dating, healing, and self-work are clean or linear.

Highlight Covers

Rendered assets:

  • highlight_signs.png
  • highlight_qa.png
  • highlight_episodes.png

Spec:

  • Canvas: 800x800.
  • Navy background.
  • Ghost glyph/numeral in locked low-contrast color.
  • Rose-gold Avenir caps label.
  • No icons unless a platform requires them; the brand motif is type-led.

Pinned-Post Strategy

Pin three posts when the platform supports it:

  1. Best evergreen carousel: what the show helps listeners see.
  2. Best short clip: high-retention, direct statement of the brand promise.
  3. Current episode or weekly question: freshness and comments.

Grid Rhythm

Rendered visual: shared/rich-replies/r/btp-brand-guide/https://betterthanperfectpod.com/content/images/2026/08/social_grid_rhythm.png

Rule:

  • Keep the weekly pack one scheme at a time, but alternate by episode week: navy โ†’ wine โ†’ navy.
  • Avoid posting three identical formats in a row. Preferred rhythm: carousel, clip/audiogram, quote, clip, hot take, question.
  • The grid should read as one brand from nine squares away: dark base, ivory type, rose-gold signals, no random palette breaks.

13. Brand Architecture & Extensions

Status: PROPOSED

Master Brand

Better Than Perfect remains the master brand for the podcast and all relationship-content extensions.

Naming pattern:

  • Better Than Perfect Podcast for the show.
  • Better Than Perfect Live for events.
  • Better Than Perfect Sessions for workshops or courses.
  • Better Than Perfect: [Topic] for limited series.

Avoid creating cute sub-brand names until there is a real audience/product reason. The parent brand should accumulate equity first.

Scheme Usage By Extension

  • Navy leads for evergreen authority, website, profile, episode archive, and flagship materials.
  • Wine leads for intimate, emotional, live, premium, or limited-run materials.
  • Rose-gold stays the connective tissue across all extensions.

Merch

  • Dark garments: rose-gold or ivory type, no full-color white-box logo.
  • Type-led slogans only if they sound like the show, not generic relationship merch.
  • Minimum mark size on apparel: 1.25in tall if using the full logo, 0.75in if using a simplified future monogram.

Live Events / Courses

  • Use BTP Warm photography plus navy overlay.
  • Event pages may use more wine than episode pages, but must keep ivory type and rose-gold action buttons.
  • Course graphics should feel calmer than hot-take posts: fewer arguments, more clarity.

Guest Promo Lockups

  • Guest photo receives BTP Warm or BTP Midnight grade.
  • Apply a navy overlay at 35-55% if type sits over image.
  • Use guest name in Baskerville, role/topic in Avenir caps.
  • Logo lockup: BTP logo left, guest/show lockup right, separated by a rose-gold 1px divider.
  • Never let guest brand colors override the BTP palette unless there is a formal co-brand campaign.

14. Asset Management & Governance v2

Status: LOCKED where practiced

Naming

Production social assets should follow:

epNNN_type_scheme_variant.ext

Examples:

  • ep137_carousel_wine_slide01.png
  • ep137_quote_wine.png
  • ep137_question_wine.png
  • ep137_hottake_wine.png
  • ep137_audiogram_wine_01.mp4
  • ep137_first-comments.json

Folder Structure

  • Production skill: agents/echo/skills/btp-social-weekly/
  • Episode/social state: agents/echo/vault/07_episodes/social-state.json
  • Canonical brand guide: agents/echo/vault/01_brand/btp-brand-guide.md
  • LUTs: agents/echo/vault/01_brand/luts/
  • Rich guide: shared/rich-replies/r/btp-brand-guide/
  • Guide assets: shared/rich-replies/r/btp-brand-guide/assets/
  • Working episode media: agents/echo/media/work/<project-slug>/
  • Deliverable docs/images: agents/echo/media/deliverables/<type>/

Approval Gate

Nothing posts or schedules without John's explicit approval of the exact preview batch. Approval covers assets, captions, first comments, schedule, and platforms for that batch only.

Fidelity Check Procedure

  1. Generate current assets from production renderer.
  2. Compare cover/sign outputs against approved references.
  3. Read the generated image visually before showing John.
  4. If geometry, logo, type size, palette, or spacing drift, fix the renderer before previewing.
  5. Update this guide after any approved change.

Logo Quality Rule

Status: LOCKED after v2 fix

For video/audiogram outputs, the logo must be composited from the reusable pure-white transparent asset with:

  • Soft white-field removal.
  • Cropped transparent mark.
  • Aspect ratio preserved.
  • LANCZOS downscale only.
  • No JPEG export before video encoding.
  • Minimum display size: 135px height for audiograms.

Status: LOCKED examples

The HTML version embeds the current production examples copied into:

/Users/navi/clawd/shared/rich-replies/r/btp-brand-guide/assets/

Included assets:

  • v5_navy_cover.png
  • v5_navy_sign.png
  • v5_wine_cover.png
  • v5_wine_sign.png
  • quote_navy.png
  • quote_wine.png
  • question_navy.png
  • question_wine.png
  • hottake_navy.png
  • hottake_wine.png
  • audiogram_frame.png

Sourced Values

Exact locked values were sourced from:

  • /Users/navi/clawd/agents/echo/tmp/ep136-carousel/make_v5_duo.py
  • /Users/navi/clawd/agents/echo/skills/btp-social-weekly/scripts/make_carousel.py
  • /Users/navi/clawd/agents/echo/skills/btp-social-weekly/scripts/make_single.py
  • /Users/navi/clawd/agents/echo/skills/btp-social-weekly/scripts/make_audiogram.py
  • /Users/navi/clawd/agents/echo/skills/btp-social-weekly/scripts/make_short.py
  • /Users/navi/clawd/agents/echo/skills/btp-social-weekly/SKILL.md

Values not sourced from code:

  • Brand foundation, photography direction, and competitive positioning are strategic proposals based on the approved creative direction and podcast content context.
Better Than Perfect Podcast Brand Guide v2.2. Relative assets only. Dirs 755 / files 644.