05 — OUTPUT SKILL: Homepage
Scope
Produces: A complete, self-contained HTML homepage for a root domain. Audience: Warm and cold traffic — prospects, referrals, organic visitors. Filename: homepage-[brandname]-v[n].html Lifecycle: Living document — updated when offers, proof, or events change.
Required Inputs
- Brand variant —
cyporaos(determines palette, fonts, tone) - Brand name — consumer-facing name (e.g., "Practice Builders")
- Tagline — short descriptor for meta and header
- Domain URL — root domain the homepage lives on
- Owner name — person behind the brand
- Owner photo URL — CDN-hosted image for about hero background
- Logo URL — CDN-hosted logo for header
- Hero headline — H1 text
- Hero subheadline — supporting paragraph(s)
- Target audience descriptor — eyebrow text (e.g., "For Consultants, CPAs & Advisors")
- Featured product — name, URL, description, sample output (4-5 bullets)
- Paid offer — name, URL, description, logistics (when, format, price, what you keep)
- Pattern/Problem copy — 2-3 paragraphs naming the audience's situation
- About copy — 2-3 paragraphs of bio
- Testimonial(s) — at least 1 with quote, name, title, company
- Contact email — for footer
- Social links — LinkedIn, Substack, etc. (optional)
- Legal page URLs — privacy, terms, disclaimer (optional)
Content Rules
- Zero internal acronyms in visible text. Spell out every product name, brand name, and framework name. "Client Intelligence Brief" not "CIB."
- Zero forbidden vocabulary. No leverage, synergy, coaching, mindset, journey, game-changer, crush it, level up, revolutionary, groundbreaking.
- Problem section validates, never lectures. Name the pattern. Do not say "you need to" or "the problem is you." The reader should nod in recognition, not feel scolded.
- About section states what the person does, not a credential list. Lead with the pattern they solve and how long they have been doing it. Credentials are implied by specificity.
- Featured product shows enough to click, not enough to buy. The delivery page closes the conversion. The homepage section creates curiosity and shows a sample.
- Paid offer shows logistics, not the full pitch. The offer page handles objections, framework details, and the full case. The homepage section shows: what, when, how much, what you walk away with.
- Pull quote stands alone. The single testimonial on the accent background must be powerful without context. Choose the most emotionally resonant quote, not the most specific.
- Footer is brand-neutral and Meta-compliant. No marketing copy in the footer. Disclaimers, attribution, contact, legal links only.
- Every CTA button uses the same visual treatment. Gold background (#b79d64), dark text (primary background color of the variant), 700 weight, 0.9rem, 4px border-radius,
1rem 2rempadding. - Non-breaking spaces before em dashes and at line-break-prone word boundaries. Use
to prevent orphans and awkward breaks. - HTML entities for special characters. Use
—’“”–×·— never raw unicode.
Brand Variant Reference
CYP / Practice Builders
COLORS
Primary background: #0f2d3e (Deep Teal)
Secondary/gradient: #3e666e (Slate Teal)
Light sections: #f1ede6 (Cream)
Alternate light: #f7f5f0 (Off White)
Text on dark: #f1ede6 (Cream)
Text on light: #0f2d3e or #3e666e
Muted text on light: #6b5d3e
Secondary text: #64748b
Gold accent: #b79d64
Gold dark: #9d8556
FONTS
Heading: 'Fraunces', serif (weights 400, 600, 700, 800)
Body: 'Montserrat', sans-serif (weights 300, 400, 500, 600, 700, 800)
GOOGLE FONTS
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,400;0,600;0,700;0,800;1,400&family=Montserrat:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
HERO GRADIENT
background: linear-gradient(135deg, #0f2d3e 0%, #3e666e 100%)
SCROLLBAR
track: #0f2d3e
thumb: #b79d64
thumb hover: #9d8556
AOS (Advisory OS)
COLORS
Primary background: #1a1a1a (Charcoal)
Secondary/gradient: #111111 (Deep Black)
Light sections: #f5f4f0 (Cream)
Alternate light: #faf9f7 (Off White)
Text on dark: #ffffff or #f5f4f0
Text on light: #1a1a1a
Muted text: #999999
Gold accent: #b79d64
Gold light: #d4b87a (hover)
Gold dark: #8a7548
FONTS
Heading: 'Cormorant Garamond', serif (weights 400, 600, 700)
Body: 'Inter', sans-serif (weights 300, 400, 500, 600)
GOOGLE FONTS
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
HERO GRADIENT
background: linear-gradient(135deg, #1a1a1a 0%, #111111 100%)
SCROLLBAR
track: #1a1a1a
thumb: #b79d64
thumb hover: #d4b87a
Production Steps
Step 1: Validate Inputs
Confirm all 18 required inputs are present. If any are missing, ask before building. Do not guess at copy, URLs, or brand details.
Load these reference files before writing any copy:
business-aos/reference/core/voice.md— vocabulary, tone, cadencebusiness-aos/reference/brand/visual-style-cyp.md(CYP) orvisual-style.md(AOS)business-aos/reference/brand/copy-qc.md— AI pattern detection
Step 2: Build the HTML
Build sections in order. Use the golden example (03-homepage-golden-example.html) as the structural reference.
Document structure:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- meta charset, viewport, title, description, OG tags -->
<!-- Google Fonts preconnect + link -->
<style>
/* Scrollbar styles */
/* About hero class-based CSS (all breakpoints) */
/* Responsive media queries (968px, 840px, 640px, 480px) */
</style>
</head>
<body style="margin: 0; padding: 0; font-family: '{{BODY_FONT}}', sans-serif; color: {{PRIMARY_BG}}; background: {{CREAM}}; line-height: 1.6; overflow-x: hidden;">
<!-- HEADER -->
<!-- HERO -->
<!-- THE PATTERN -->
<!-- FEATURED PRODUCT -->
<!-- PAID OFFER -->
<!-- ABOUT -->
<!-- PROOF -->
<!-- PULL QUOTE -->
<!-- BOTTOM CTA -->
<!-- FOOTER -->
</body>
</html>
Step 3: Section-by-Section Build
HEADER
<!-- HEADER -->
<header style="background: {{PRIMARY_BG}}; padding: 1.5rem 5%; position: sticky; top: 0; z-index: 100; border-bottom: 3px solid #b79d64;">
<div style="max-width: 1400px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem;">
<a href="{{DOMAIN_URL}}" style="display: flex; align-items: center; gap: 1rem; text-decoration: none;">
<img src="{{LOGO_URL}}" alt="{{BRAND_NAME}}" style="height: 45px;">
<div>
<div style="font-family: '{{HEADING_FONT}}', serif; font-size: 1.5rem; color: {{TEXT_ON_DARK}}; font-weight: 700; line-height: 1;">{{BRAND_NAME}}</div>
<div style="font-size: 0.7rem; color: #b79d64; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; margin-top: 0.35rem;">{{OWNER_NAME}}</div>
</div>
</a>
<nav>
<a href="#{{FEATURED_ANCHOR}}" style="color: {{TEXT_ON_DARK}}; text-decoration: none; margin-left: 2rem; font-weight: 500; font-size: 0.95rem;">{{FEATURED_NAV_LABEL}}</a>
<a href="#{{PAID_ANCHOR}}" style="color: {{TEXT_ON_DARK}}; text-decoration: none; margin-left: 2rem; font-weight: 500; font-size: 0.95rem;">{{PAID_NAV_LABEL}}</a>
<a href="#about" style="color: {{TEXT_ON_DARK}}; text-decoration: none; margin-left: 2rem; font-weight: 500; font-size: 0.95rem;">About</a>
</nav>
<a href="{{FEATURED_PRODUCT_URL}}" style="color: {{PRIMARY_BG}}; background: #b79d64; text-decoration: none; font-weight: 700; font-size: 0.85rem; padding: 0.75rem 1.25rem; border-radius: 4px;">{{HEADER_CTA_TEXT}}</a>
</div>
</header>
Header responsive (in block):
- At 968px:
header { flex-direction: column; text-align: center; }— header stacks, nav wraps centered - Nav links:
margin-left: 0,font-size: 0.85rem
Optional hamburger pattern (CYP Convertri only — requires JavaScript, not used in this kit): The CYP Convertri live site uses a hamburger icon at mobile breakpoints. This requires JS for the toggle and a slide-out drawer. Since this kit produces static HTML with no JavaScript, the nav-wrap pattern is the default. If deploying to Convertri with their native builder, the hamburger can be implemented using Convertri's built-in mobile menu component.
HERO
Two-column grid: grid-template-columns: 1fr 380px.
Left column:
- Eyebrow: uppercase, gold (#b79d64 on CYP, or variant muted), letter-spacing 2px
- H1: heading font, 3.25rem, 800 weight, line-height 1.1. Gold italic for the signature phrase.
- Subheadline: 1.15rem, slightly transparent text on dark
- CTA button: gold, primary action
- Subtext: small italic, friction-reducer ("Free. No credit card.")
Right column (side panel):
- Semi-transparent card:
background: rgba({{TEXTONDARK_RGB}}, 0.05); border: 1px solid rgba(183, 157, 100, 0.3); border-radius: 6px; - Gold top bar:
position: absolute; top: 0; height: 3px; background: #b79d64; - Product preview: name, short description, link
PROBLEM / PATTERN
Light background (cream). Left-aligned content, max-width 800px.
- Eyebrow: muted text, uppercase
- H2: heading font, 2.8rem
- 2-3 paragraphs naming the pattern. Final paragraph in bold muted text as the reframe question.
FEATURED PRODUCT
White (or alternate light) background. Two-column grid: 1fr 1fr.
- Left: description + CTA button
- Right: "Sample Output" panel with gold header bar and arrow-bulleted items
Sample output panel:
<div style="background: {{OFF_WHITE}}; border-radius: 6px; overflow: hidden;">
<div style="background: #b79d64; color: {{PRIMARY_BG}}; padding: 0.75rem 1.25rem; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;">Sample Output</div>
<div style="padding: 1.5rem;">
<!-- Arrow bullet items -->
<div style="font-size: 0.9rem; line-height: 1.6; margin-bottom: 1rem; padding-left: 1.25rem; position: relative;">
<span style="position: absolute; left: 0; color: #b79d64; font-weight: 700;">›</span>
<strong>Label</strong> — Description
</div>
</div>
</div>
PAID OFFER
Dark background (primary). Two-column grid: 1fr 1fr.
- Left: eyebrow, H2, description, CTA button
- Right: 2x2 logistics grid
Logistics card:
<div style="padding: 1.25rem; background: rgba({{TEXT_ON_DARK_RGB}}, 0.06); border: 1px solid rgba(183, 157, 100, 0.25); border-radius: 6px; display: flex; gap: 1rem; align-items: baseline;">
<div style="font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: #b79d64; font-weight: 600; min-width: 80px;">{{LABEL}}</div>
<div style="font-size: 1rem; color: {{TEXT_ON_DARK}}; font-weight: 600;">{{VALUE}}</div>
</div>
ABOUT (Hero Photo Treatment)
This section uses class-based CSS in the block — NOT inline styles. The gradient switch at 968px requires media queries that cannot be expressed inline.
HTML structure:
<!-- ABOUT -->
<section class="about-hero" id="about">
<div class="about-hero-bg">
<img src="{{OWNER_PHOTO_URL}}" alt="{{OWNER_NAME}} - {{BRAND_NAME}}">
</div>
<div class="about-hero-overlay"></div>
<div class="about-hero-content">
<div class="eyebrow">About</div>
<h2>{{OWNER_NAME}}</h2>
<p>{{ABOUT_PARAGRAPH_1}}</p>
<p>{{ABOUT_PARAGRAPH_2}}</p>
</div>
</section>
Required CSS (in block):
/* About Section - Full Bleed Hero Style */
.about-hero { position: relative; min-height: 600px; max-height: 750px; height: 75vh; overflow: hidden; background: {{PRIMARY_BG}}; }
.about-hero-bg { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; overflow: hidden; }
.about-hero-bg img { width: 100%; height: 100%; object-fit: cover; object-position: right top; }
.about-hero-overlay { position: absolute; inset: 0; z-index: 2; background: linear-gradient(to right, {{PRIMARY_BG}} 0%, {{PRIMARY_BG}} 30%, rgba({{PRIMARY_BG_RGB}},0.95) 40%, rgba({{PRIMARY_BG_RGB}},0.85) 50%, rgba({{PRIMARY_BG_RGB}},0.5) 60%, rgba({{PRIMARY_BG_RGB}},0.2) 70%, transparent 80%); pointer-events: none; }
.about-hero-content { position: relative; z-index: 3; display: flex; flex-direction: column; justify-content: center; height: 100%; padding: 60px 5% 60px 8%; max-width: 620px; }
.about-hero-content h2 { font-family: '{{HEADING_FONT}}', serif; font-size: 2.8rem; font-weight: 800; color: {{TEXT_ON_DARK}}; line-height: 1.2; margin-bottom: 1.25rem; }
.about-hero-content p { font-size: 1rem; color: rgba({{TEXT_ON_DARK_RGB}},0.8); line-height: 1.7; margin-bottom: 1.25rem; }
.about-hero-content .eyebrow { font-size: 0.9rem; color: #b79d64; letter-spacing: 2px; font-weight: 700; text-transform: uppercase; margin-bottom: 1rem; }
/* About responsive — gradient switch */
@media (max-width: 968px) {
.about-hero { min-height: 550px; max-height: none; height: auto; }
.about-hero-bg img { object-position: 70% top; }
.about-hero-overlay { background: linear-gradient(to top, {{PRIMARY_BG}} 0%, {{PRIMARY_BG}} 25%, rgba({{PRIMARY_BG_RGB}},0.95) 35%, rgba({{PRIMARY_BG_RGB}},0.8) 45%, rgba({{PRIMARY_BG_RGB}},0.4) 60%, transparent 80%); }
.about-hero-content { height: auto; min-height: 550px; padding: 60px 5%; max-width: 100%; justify-content: flex-end; }
}
@media (max-width: 768px) {
.about-hero { min-height: 600px; }
.about-hero-content { min-height: 600px; padding: 40px 5%; }
.about-hero-content h2 { font-size: 2rem; margin-bottom: 1rem; }
.about-hero-content p { font-size: 0.9rem; margin-bottom: 1rem; }
}
@media (max-width: 480px) {
.about-hero { min-height: 650px; }
.about-hero-content { min-height: 650px; padding: 30px 5%; }
.about-hero-content h2 { font-size: 1.75rem; }
.about-hero-content p { font-size: 0.85rem; }
}
Critical: The gradient switches from to right (desktop) to to top (mobile at 968px). Content switches from justify-content: center to flex-end. The photo stays visible at every breakpoint.
PROOF
Light background (cream). Includes:
- Context disclaimer (italic, small): "From Kathryn's advisory practice:" — when proof comes from a different offer
- Testimonial card: white background, gold left border (4px), serif italic quote, attribution below
- Optional roadmap paragraph below the testimonial
PULL QUOTE
Gold background (#b79d64). Centered.
- Quote: heading font, 2rem, 700 weight, dark text
- Attribution: 0.9rem, dark text, reduced opacity
BOTTOM CTA
Gradient background (same as hero). Centered.
- H2: heading font, 2.5rem
- Supporting paragraph: slightly transparent
- CTA button: gold, same treatment as all other CTAs
FOOTER
Dark background (primary). Gold top border.
Required content in order:
- Meta disclaimer (smallest text, left-aligned, most transparent)
- Testimonial context disclaimer (smallest text, left-aligned, slightly less transparent)
- Brand attribution line: "{{BRANDNAME}} is a brand of {{LEGALENTITY}} · {{YEAR}} · All Rights Reserved"
- Contact email with mailto link (gold color)
- Social links (centered, flex row with gap)
- Legal links: Privacy Policy | Terms of Service | Disclaimer (centered, pipe-separated)
Step 4: Responsive Media Queries
All responsive rules go in the block. The golden example includes these breakpoints:
968px — Primary collapse:
- All multi-column grids:
grid-template-columns: 1fr !important - Header:
flex-direction: column; text-align: center; - Nav:
flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 0.75rem; - About hero: gradient switch + content to flex-end (see About section above)
840px — Font reduction:
h1 { font-size: 2.2rem; }h2 { font-size: 1.8rem; }section { padding: 4rem 5%; }
640px — Further reduction:
h1 { font-size: 1.8rem; }h2 { font-size: 1.5rem; }section { padding: 3rem 4%; }- About hero increased min-height for content room
480px — Minimum sizes:
- About hero min-height 650px
- Smallest font sizes applied
Step 5: Copy QC Pass
Before visual review, run all copy through:
- voice.md — Check vocabulary, tone, cadence. Flag any forbidden words.
- copy-qc.md — Scan for all 11 AI patterns. Fix all P1 and P2 violations. Fix P3 if 2+ appear.
- Internal acronym scan — Search the HTML for CIB, PB, AOS, CPM, or any 2-4 letter capitalized abbreviation in visible text. Zero allowed.
- Read-aloud test — Read every visible line. If any line makes you shift into "presentation voice," rewrite it.
Step 6: Technical Validation
- Search for
var(— zero results required - Search for