feat: homepage value proposition — 10-second clarity landing page (#809)
Replace the mission-control dashboard at / with a conversion-optimised public landing page. The dashboard moves to /dashboard. Landing page hierarchy: - 3-second glance: hero title + eyebrow + live-pulse badge - 10-second scan: four value cards (Lightning, Sovereign, Global, Pay-per-task) - 30-second exploration: expandable capability accordion (Code, Research, Creative, Analysis) - Social proof: HTMX-polled stat cards (jobs, sats, agents, uptime) - Audience CTAs: developers (API docs), end users (Try Now → /dashboard), investors (View Ledger) Changes: - src/dashboard/templates/landing.html — new landing page template - src/dashboard/app.py — / → landing.html; /dashboard → index.html - src/dashboard/templates/base.html — HOME stays /; add DASHBOARD → /dashboard - static/css/mission-control.css — landing page styles (lp-* namespace) Fixes #809 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -762,7 +762,13 @@ async def swarm_agents_sidebar():
|
||||
|
||||
@app.get("/", response_class=HTMLResponse)
|
||||
async def root(request: Request):
|
||||
"""Serve the main dashboard page."""
|
||||
"""Serve the public landing page (homepage value proposition)."""
|
||||
return templates.TemplateResponse(request, "landing.html", {})
|
||||
|
||||
|
||||
@app.get("/dashboard", response_class=HTMLResponse)
|
||||
async def dashboard(request: Request):
|
||||
"""Serve the main mission-control dashboard."""
|
||||
return templates.TemplateResponse(request, "index.html", {})
|
||||
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
<body>
|
||||
<header class="mc-header">
|
||||
<div class="mc-header-left">
|
||||
<a href="/" class="mc-title">MISSION CONTROL</a>
|
||||
<a href="/dashboard" class="mc-title">MISSION CONTROL</a>
|
||||
<span class="mc-subtitle">MISSION CONTROL</span>
|
||||
<span class="mc-conn-status" id="conn-status">
|
||||
<span class="mc-conn-dot amber" id="conn-dot"></span>
|
||||
@@ -138,6 +138,7 @@
|
||||
<!-- Desktop nav — grouped dropdowns matching mobile sections -->
|
||||
<div class="mc-header-right mc-desktop-nav">
|
||||
<a href="/" class="mc-test-link">HOME</a>
|
||||
<a href="/dashboard" class="mc-test-link">DASHBOARD</a>
|
||||
<div class="mc-nav-dropdown">
|
||||
<button class="mc-test-link mc-dropdown-toggle" aria-expanded="false">CORE ▾</button>
|
||||
<div class="mc-dropdown-menu">
|
||||
@@ -221,6 +222,7 @@
|
||||
<span class="mc-time" id="clock-mobile"></span>
|
||||
</div>
|
||||
<a href="/" class="mc-mobile-link">HOME</a>
|
||||
<a href="/dashboard" class="mc-mobile-link">DASHBOARD</a>
|
||||
<div class="mc-mobile-section-label">CORE</div>
|
||||
<a href="/calm" class="mc-mobile-link">CALM</a>
|
||||
<a href="/tasks" class="mc-mobile-link">TASKS</a>
|
||||
|
||||
207
src/dashboard/templates/landing.html
Normal file
207
src/dashboard/templates/landing.html
Normal file
@@ -0,0 +1,207 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Timmy AI Workshop | Lightning-Powered AI Jobs — Pay Per Task with Bitcoin{% endblock %}
|
||||
{% block meta_description %}Pay sats, get AI work done. No subscription. No signup. Instant global access. Timmy AI Workshop — Lightning-powered agents by Alexander Whitestone.{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="lp-wrap">
|
||||
|
||||
<!-- ══ HERO — 3-second glance ══════════════════════════════════════ -->
|
||||
<section class="lp-hero">
|
||||
<div class="lp-hero-eyebrow">LIGHTNING-POWERED AI WORKSHOP</div>
|
||||
<h1 class="lp-hero-title">Hire Timmy,<br>the AI that takes Bitcoin.</h1>
|
||||
<p class="lp-hero-sub">
|
||||
Pay sats, get AI work done.<br>
|
||||
No subscription. No signup. Instant global access.
|
||||
</p>
|
||||
<div class="lp-hero-cta-row">
|
||||
<a href="/dashboard" class="lp-btn lp-btn-primary">TRY NOW →</a>
|
||||
<a href="/docs/api" class="lp-btn lp-btn-secondary">API DOCS</a>
|
||||
<a href="/lightning/ledger" class="lp-btn lp-btn-ghost">VIEW LEDGER</a>
|
||||
</div>
|
||||
<div class="lp-hero-badge">
|
||||
<span class="lp-badge-dot"></span>
|
||||
AI tasks from <strong>200 sats</strong> — no account, no waiting
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══ VALUE PROP — 10-second scan ═════════════════════════════════ -->
|
||||
<section class="lp-section lp-value">
|
||||
<div class="lp-value-grid">
|
||||
<div class="lp-value-card">
|
||||
<span class="lp-value-icon">⚡</span>
|
||||
<h3>Instant Settlement</h3>
|
||||
<p>Jobs complete in seconds. Pay over Bitcoin Lightning — no credit card, no banking required.</p>
|
||||
</div>
|
||||
<div class="lp-value-card">
|
||||
<span class="lp-value-icon">🔒</span>
|
||||
<h3>Sovereign & Private</h3>
|
||||
<p>All inference runs locally. No cloud round-trips. Your prompts never leave the workshop.</p>
|
||||
</div>
|
||||
<div class="lp-value-card">
|
||||
<span class="lp-value-icon">🌐</span>
|
||||
<h3>Global Access</h3>
|
||||
<p>Anyone with a Lightning wallet can hire Timmy. No KYC. No geo-blocks. Pure open access.</p>
|
||||
</div>
|
||||
<div class="lp-value-card">
|
||||
<span class="lp-value-icon">💰</span>
|
||||
<h3>Pay Per Task</h3>
|
||||
<p>Zero subscription. Pay only for what you use, priced in sats. Start from 200 sats per job.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══ CAPABILITIES — 30-second exploration ════════════════════════ -->
|
||||
<section class="lp-section lp-caps">
|
||||
<h2 class="lp-section-title">What Timmy Can Do</h2>
|
||||
<p class="lp-section-sub">Four core capability domains — each backed by sovereign local inference.</p>
|
||||
|
||||
<div class="lp-caps-list">
|
||||
|
||||
<details class="lp-cap-item" open>
|
||||
<summary class="lp-cap-summary">
|
||||
<span class="lp-cap-icon">💻</span>
|
||||
<span class="lp-cap-label">Code</span>
|
||||
<span class="lp-cap-chevron">▾</span>
|
||||
</summary>
|
||||
<div class="lp-cap-body">
|
||||
<p>Generate, review, refactor, and debug code across any language. Timmy can write tests, explain legacy systems, and auto-fix issues through self-correction loops.</p>
|
||||
<ul class="lp-cap-bullets">
|
||||
<li>Code generation & refactoring</li>
|
||||
<li>Automated test writing</li>
|
||||
<li>Bug diagnosis & self-correction</li>
|
||||
<li>Architecture review & documentation</li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
<details class="lp-cap-item">
|
||||
<summary class="lp-cap-summary">
|
||||
<span class="lp-cap-icon">🔍</span>
|
||||
<span class="lp-cap-label">Research</span>
|
||||
<span class="lp-cap-chevron">▾</span>
|
||||
</summary>
|
||||
<div class="lp-cap-body">
|
||||
<p>Deep-dive research on any topic. Synthesise sources, extract key insights, produce structured reports — all without leaving the workshop.</p>
|
||||
<ul class="lp-cap-bullets">
|
||||
<li>Topic deep-dives & literature synthesis</li>
|
||||
<li>Competitive & market intelligence</li>
|
||||
<li>Structured report generation</li>
|
||||
<li>Source extraction & citation</li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
<details class="lp-cap-item">
|
||||
<summary class="lp-cap-summary">
|
||||
<span class="lp-cap-icon">✍</span>
|
||||
<span class="lp-cap-label">Creative</span>
|
||||
<span class="lp-cap-chevron">▾</span>
|
||||
</summary>
|
||||
<div class="lp-cap-body">
|
||||
<p>Copywriting, ideation, storytelling, brand voice — Timmy brings creative horsepower on demand, priced to the job.</p>
|
||||
<ul class="lp-cap-bullets">
|
||||
<li>Marketing copy & brand messaging</li>
|
||||
<li>Long-form content & articles</li>
|
||||
<li>Naming, taglines & ideation</li>
|
||||
<li>Script & narrative writing</li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
<details class="lp-cap-item">
|
||||
<summary class="lp-cap-summary">
|
||||
<span class="lp-cap-icon">📊</span>
|
||||
<span class="lp-cap-label">Analysis</span>
|
||||
<span class="lp-cap-chevron">▾</span>
|
||||
</summary>
|
||||
<div class="lp-cap-body">
|
||||
<p>Data interpretation, strategic analysis, financial modelling, and executive briefings — structured intelligence from raw inputs.</p>
|
||||
<ul class="lp-cap-bullets">
|
||||
<li>Data interpretation & visualisation briefs</li>
|
||||
<li>Strategic frameworks & SWOT</li>
|
||||
<li>Financial modelling support</li>
|
||||
<li>Executive summaries & board decks</li>
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══ SOCIAL PROOF ═════════════════════════════════════════════════ -->
|
||||
<section class="lp-section lp-stats">
|
||||
<h2 class="lp-section-title">Built on Sovereign Infrastructure</h2>
|
||||
<div class="lp-stats-grid">
|
||||
<div class="lp-stat-card"
|
||||
hx-get="/api/stats/jobs_completed"
|
||||
hx-trigger="load"
|
||||
hx-swap="innerHTML">
|
||||
<div class="lp-stat-num">—</div>
|
||||
<div class="lp-stat-label">JOBS COMPLETED</div>
|
||||
</div>
|
||||
<div class="lp-stat-card"
|
||||
hx-get="/api/stats/sats_settled"
|
||||
hx-trigger="load"
|
||||
hx-swap="innerHTML">
|
||||
<div class="lp-stat-num">—</div>
|
||||
<div class="lp-stat-label">SATS SETTLED</div>
|
||||
</div>
|
||||
<div class="lp-stat-card"
|
||||
hx-get="/api/stats/agents_live"
|
||||
hx-trigger="load"
|
||||
hx-swap="innerHTML">
|
||||
<div class="lp-stat-num">—</div>
|
||||
<div class="lp-stat-label">AGENTS ONLINE</div>
|
||||
</div>
|
||||
<div class="lp-stat-card"
|
||||
hx-get="/api/stats/uptime"
|
||||
hx-trigger="load"
|
||||
hx-swap="innerHTML">
|
||||
<div class="lp-stat-num">—</div>
|
||||
<div class="lp-stat-label">UPTIME</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══ AUDIENCE CTAs ════════════════════════════════════════════════ -->
|
||||
<section class="lp-section lp-audiences">
|
||||
<h2 class="lp-section-title">Choose Your Path</h2>
|
||||
<div class="lp-audience-grid">
|
||||
|
||||
<div class="lp-audience-card">
|
||||
<div class="lp-audience-icon">🧑‍💻</div>
|
||||
<h3>Developers</h3>
|
||||
<p>Integrate Timmy into your stack. REST API, WebSocket streams, and Lightning payment hooks — all documented.</p>
|
||||
<a href="/docs/api" class="lp-btn lp-btn-primary lp-btn-sm">API DOCS →</a>
|
||||
</div>
|
||||
|
||||
<div class="lp-audience-card lp-audience-featured">
|
||||
<div class="lp-audience-badge">MOST POPULAR</div>
|
||||
<div class="lp-audience-icon">⚡</div>
|
||||
<h3>Get Work Done</h3>
|
||||
<p>Open the workshop, describe your task, pay in sats. Results in seconds. No account required.</p>
|
||||
<a href="/dashboard" class="lp-btn lp-btn-primary lp-btn-sm">TRY NOW →</a>
|
||||
</div>
|
||||
|
||||
<div class="lp-audience-card">
|
||||
<div class="lp-audience-icon">📈</div>
|
||||
<h3>Investors & Partners</h3>
|
||||
<p>Lightning-native AI marketplace. Sovereign infrastructure, global reach, pay-per-task economics.</p>
|
||||
<a href="/lightning/ledger" class="lp-btn lp-btn-secondary lp-btn-sm">VIEW LEDGER →</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══ FINAL CTA ════════════════════════════════════════════════════ -->
|
||||
<section class="lp-section lp-final-cta">
|
||||
<h2 class="lp-final-cta-title">Ready to hire Timmy?</h2>
|
||||
<p class="lp-final-cta-sub">
|
||||
Timmy AI Workshop — Lightning-Powered Agents by Alexander Whitestone
|
||||
</p>
|
||||
<a href="/dashboard" class="lp-btn lp-btn-primary lp-btn-lg">ENTER THE WORKSHOP →</a>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -3075,3 +3075,347 @@
|
||||
padding: 0.4rem 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* ── Landing page (homepage value proposition) ────────────────── */
|
||||
|
||||
.lp-wrap {
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
padding: 0 1.5rem 4rem;
|
||||
}
|
||||
|
||||
/* Hero */
|
||||
.lp-hero {
|
||||
text-align: center;
|
||||
padding: 4rem 0 3rem;
|
||||
}
|
||||
.lp-hero-eyebrow {
|
||||
font-size: 10px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.18em;
|
||||
color: var(--purple);
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
.lp-hero-title {
|
||||
font-size: clamp(2rem, 6vw, 3.5rem);
|
||||
font-weight: 700;
|
||||
line-height: 1.1;
|
||||
color: var(--text-bright);
|
||||
margin-bottom: 1.25rem;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
.lp-hero-sub {
|
||||
font-size: 1.1rem;
|
||||
color: var(--text);
|
||||
line-height: 1.7;
|
||||
max-width: 480px;
|
||||
margin: 0 auto 2rem;
|
||||
}
|
||||
.lp-hero-cta-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.75rem;
|
||||
justify-content: center;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
.lp-hero-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.06em;
|
||||
color: var(--text-dim);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 999px;
|
||||
padding: 5px 14px;
|
||||
}
|
||||
.lp-badge-dot {
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
border-radius: 50%;
|
||||
background: var(--green);
|
||||
box-shadow: 0 0 6px var(--green);
|
||||
animation: lp-pulse 2s infinite;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@keyframes lp-pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.35; }
|
||||
}
|
||||
|
||||
/* Shared buttons */
|
||||
.lp-btn {
|
||||
display: inline-block;
|
||||
font-family: var(--font);
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.12em;
|
||||
border-radius: var(--radius-sm);
|
||||
padding: 10px 22px;
|
||||
text-decoration: none;
|
||||
transition: background 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
|
||||
cursor: pointer;
|
||||
}
|
||||
.lp-btn-primary {
|
||||
background: var(--purple);
|
||||
color: #fff;
|
||||
border: 1px solid var(--purple);
|
||||
}
|
||||
.lp-btn-primary:hover {
|
||||
background: #a855f7;
|
||||
border-color: #a855f7;
|
||||
box-shadow: 0 0 14px rgba(168, 85, 247, 0.45);
|
||||
color: #fff;
|
||||
}
|
||||
.lp-btn-secondary {
|
||||
background: transparent;
|
||||
color: var(--text-bright);
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
.lp-btn-secondary:hover {
|
||||
border-color: var(--purple);
|
||||
color: var(--purple);
|
||||
}
|
||||
.lp-btn-ghost {
|
||||
background: transparent;
|
||||
color: var(--text-dim);
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.lp-btn-ghost:hover {
|
||||
color: var(--text);
|
||||
border-color: var(--border);
|
||||
}
|
||||
.lp-btn-sm {
|
||||
font-size: 10px;
|
||||
padding: 8px 16px;
|
||||
}
|
||||
.lp-btn-lg {
|
||||
font-size: 13px;
|
||||
padding: 14px 32px;
|
||||
}
|
||||
|
||||
/* Shared section */
|
||||
.lp-section {
|
||||
padding: 3.5rem 0;
|
||||
border-top: 1px solid var(--border);
|
||||
}
|
||||
.lp-section-title {
|
||||
font-size: 1.35rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-bright);
|
||||
letter-spacing: -0.01em;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.lp-section-sub {
|
||||
color: var(--text-dim);
|
||||
font-size: 0.9rem;
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
/* Value cards */
|
||||
.lp-value-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: 1.25rem;
|
||||
}
|
||||
.lp-value-card {
|
||||
background: var(--bg-panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 1.5rem 1.25rem;
|
||||
}
|
||||
.lp-value-icon {
|
||||
font-size: 1.6rem;
|
||||
display: block;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.lp-value-card h3 {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-bright);
|
||||
letter-spacing: 0.05em;
|
||||
margin-bottom: 0.5rem;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.lp-value-card p {
|
||||
font-size: 0.85rem;
|
||||
color: var(--text);
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Capability accordion */
|
||||
.lp-caps-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.lp-cap-item {
|
||||
background: var(--bg-panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-md);
|
||||
overflow: hidden;
|
||||
transition: border-color 0.2s;
|
||||
}
|
||||
.lp-cap-item[open] {
|
||||
border-color: var(--purple);
|
||||
}
|
||||
.lp-cap-summary {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
padding: 1rem 1.25rem;
|
||||
cursor: pointer;
|
||||
list-style: none;
|
||||
user-select: none;
|
||||
}
|
||||
.lp-cap-summary::-webkit-details-marker { display: none; }
|
||||
.lp-cap-icon {
|
||||
font-size: 1.25rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.lp-cap-label {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.06em;
|
||||
color: var(--text-bright);
|
||||
text-transform: uppercase;
|
||||
flex: 1;
|
||||
}
|
||||
.lp-cap-chevron {
|
||||
font-size: 0.7rem;
|
||||
color: var(--text-dim);
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
.lp-cap-item[open] .lp-cap-chevron {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.lp-cap-body {
|
||||
padding: 0 1.25rem 1.25rem;
|
||||
border-top: 1px solid var(--border);
|
||||
}
|
||||
.lp-cap-body p {
|
||||
font-size: 0.875rem;
|
||||
color: var(--text);
|
||||
line-height: 1.65;
|
||||
margin: 0.875rem 0 0.75rem;
|
||||
}
|
||||
.lp-cap-bullets {
|
||||
margin: 0;
|
||||
padding-left: 1.1rem;
|
||||
font-size: 0.8rem;
|
||||
color: var(--text-dim);
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
/* Stats */
|
||||
.lp-stats-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
||||
gap: 1.25rem;
|
||||
}
|
||||
.lp-stat-card {
|
||||
background: var(--bg-panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 1.5rem 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
.lp-stat-num {
|
||||
font-size: 1.75rem;
|
||||
font-weight: 700;
|
||||
color: var(--purple);
|
||||
letter-spacing: -0.03em;
|
||||
line-height: 1;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.lp-stat-label {
|
||||
font-size: 9px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.14em;
|
||||
color: var(--text-dim);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
/* Audience CTAs */
|
||||
.lp-audience-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
|
||||
gap: 1.25rem;
|
||||
}
|
||||
.lp-audience-card {
|
||||
position: relative;
|
||||
background: var(--bg-panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius-md);
|
||||
padding: 1.75rem 1.5rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
.lp-audience-featured {
|
||||
border-color: var(--purple);
|
||||
background: rgba(124, 58, 237, 0.07);
|
||||
}
|
||||
.lp-audience-badge {
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
background: var(--purple);
|
||||
color: #fff;
|
||||
font-size: 8px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.14em;
|
||||
padding: 3px 10px;
|
||||
border-radius: 999px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.lp-audience-icon {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
.lp-audience-card h3 {
|
||||
font-size: 0.95rem;
|
||||
font-weight: 700;
|
||||
color: var(--text-bright);
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
margin: 0;
|
||||
}
|
||||
.lp-audience-card p {
|
||||
font-size: 0.85rem;
|
||||
color: var(--text);
|
||||
line-height: 1.65;
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* Final CTA */
|
||||
.lp-final-cta {
|
||||
text-align: center;
|
||||
border-top: 1px solid var(--border);
|
||||
padding: 4rem 0 2rem;
|
||||
}
|
||||
.lp-final-cta-title {
|
||||
font-size: clamp(1.5rem, 4vw, 2.5rem);
|
||||
font-weight: 700;
|
||||
color: var(--text-bright);
|
||||
margin-bottom: 0.75rem;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
.lp-final-cta-sub {
|
||||
color: var(--text-dim);
|
||||
font-size: 0.875rem;
|
||||
letter-spacing: 0.04em;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 600px) {
|
||||
.lp-hero { padding: 2.5rem 0 2rem; }
|
||||
.lp-hero-cta-row { flex-direction: column; align-items: center; }
|
||||
.lp-value-grid { grid-template-columns: 1fr; }
|
||||
.lp-stats-grid { grid-template-columns: repeat(2, 1fr); }
|
||||
.lp-audience-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user