← back to Grant
Add 6 Grant public-landing mockups
328ab8953677f36e6639cfa1acf59165a58705dc · 2026-05-30 08:59:42 -0700 · Steve
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
A mockups/01-river-flow.htmlA mockups/02-fit-feed.htmlA mockups/03-command-center.htmlA mockups/04-editorial.htmlA mockups/05-brutalist-data.htmlA mockups/06-calm-minimal.htmlA mockups/index.html
Diff
commit 328ab8953677f36e6639cfa1acf59165a58705dc
Author: Steve <steve@designerwallcoverings.com>
Date: Sat May 30 08:59:42 2026 -0700
Add 6 Grant public-landing mockups
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
mockups/01-river-flow.html | 159 +++++++++++++++++++++++++++++++++++++++++
mockups/02-fit-feed.html | 151 ++++++++++++++++++++++++++++++++++++++
mockups/03-command-center.html | 159 +++++++++++++++++++++++++++++++++++++++++
mockups/04-editorial.html | 121 +++++++++++++++++++++++++++++++
mockups/05-brutalist-data.html | 123 +++++++++++++++++++++++++++++++
mockups/06-calm-minimal.html | 120 +++++++++++++++++++++++++++++++
mockups/index.html | 118 ++++++++++++++++++++++++++++++
7 files changed, 951 insertions(+)
diff --git a/mockups/01-river-flow.html b/mockups/01-river-flow.html
new file mode 100644
index 0000000..a0e3edc
--- /dev/null
+++ b/mockups/01-river-flow.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — Deadline River</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,900&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
+<style>
+ :root{
+ --ink:#04231a; --deep:#022b20; --emerald:#059669; --accent:#10b981;
+ --mist:#d1fae5; --foam:#ecfdf5; --paper:#f6fffb; --slate:#0a3a2c;
+ }
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'Inter',sans-serif;color:var(--paper);background:var(--ink);overflow-x:hidden}
+ a{text-decoration:none;color:inherit}
+ .wrap{max-width:1200px;margin:0 auto;padding:0 28px}
+
+ /* nav */
+ nav{display:flex;align-items:center;justify-content:space-between;padding:26px 28px;max-width:1200px;margin:0 auto}
+ .logo{font-family:'Fraunces',serif;font-weight:900;font-size:24px;letter-spacing:-.5px;display:flex;align-items:center;gap:10px}
+ .logo svg{flex:none}
+ .navlinks{display:flex;gap:30px;font-size:15px;color:var(--mist);align-items:center}
+ .navlinks a:hover{color:#fff}
+ .btn{background:var(--accent);color:#022b20;font-weight:600;padding:11px 20px;border-radius:999px;font-size:15px;transition:.2s}
+ .btn:hover{background:#34d399;transform:translateY(-1px)}
+ .btn-ghost{border:1px solid rgba(209,250,229,.3);color:var(--mist);padding:10px 18px;border-radius:999px;font-size:15px}
+
+ /* hero */
+ .hero{position:relative;padding:70px 0 40px;text-align:center}
+ .eyebrow{display:inline-block;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:22px}
+ h1{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(42px,7vw,82px);line-height:.98;letter-spacing:-2px;max-width:14ch;margin:0 auto 24px}
+ h1 em{font-style:italic;color:var(--accent)}
+ .sub{font-size:20px;color:var(--mist);max-width:54ch;margin:0 auto 34px;line-height:1.55}
+ .cta-row{display:flex;gap:14px;justify-content:center;margin-bottom:18px}
+ .cta-row .btn{padding:15px 30px;font-size:17px}
+ .tiny{font-size:13px;color:#7dd3b0}
+
+ /* the river */
+ .river{position:relative;margin-top:60px;height:420px}
+ .river svg{width:100%;height:100%;display:block}
+ .deadline{position:absolute;background:rgba(255,255,255,.06);backdrop-filter:blur(8px);border:1px solid rgba(16,185,129,.35);border-radius:14px;padding:13px 16px;width:212px;box-shadow:0 12px 30px rgba(0,0,0,.4)}
+ .deadline .when{font-family:'Fraunces',serif;font-weight:600;color:var(--accent);font-size:13px;margin-bottom:4px}
+ .deadline .name{font-size:14.5px;font-weight:600;line-height:1.3;color:#fff}
+ .deadline .amt{font-size:13px;color:var(--mist);margin-top:5px}
+ .dot{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(16,185,129,.25)}
+ .d1{left:2%;top:8px} .d2{left:26%;top:155px} .d3{left:52%;top:30px} .d4{left:75%;top:175px}
+ .dot1{left:8%;top:90px} .dot2{left:32%;top:120px} .dot3{left:58%;top:108px} .dot4{left:81%;top:138px}
+
+ /* stats strip */
+ .strip{background:var(--deep);border-top:1px solid rgba(16,185,129,.18);border-bottom:1px solid rgba(16,185,129,.18);margin-top:50px;padding:34px 0}
+ .strip .wrap{display:flex;justify-content:space-around;flex-wrap:wrap;gap:24px;text-align:center}
+ .stat .n{font-family:'Fraunces',serif;font-weight:900;font-size:40px;color:#fff}
+ .stat .l{font-size:14px;color:var(--mist);margin-top:4px}
+
+ /* features */
+ .features{padding:80px 0}
+ .features h2{font-family:'Fraunces',serif;font-size:38px;font-weight:600;text-align:center;letter-spacing:-1px;margin-bottom:12px}
+ .features .lede{text-align:center;color:var(--mist);max-width:50ch;margin:0 auto 50px;font-size:17px}
+ .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
+ .card{background:var(--slate);border:1px solid rgba(16,185,129,.14);border-radius:16px;padding:26px;transition:.2s}
+ .card:hover{border-color:rgba(16,185,129,.4);transform:translateY(-3px)}
+ .card .ic{width:44px;height:44px;border-radius:12px;background:rgba(16,185,129,.16);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:22px}
+ .card h3{font-family:'Fraunces',serif;font-size:20px;font-weight:600;margin-bottom:8px}
+ .card p{color:var(--mist);font-size:15px;line-height:1.55}
+
+ /* closing */
+ .close{text-align:center;padding:80px 0 100px}
+ .close h2{font-family:'Fraunces',serif;font-size:clamp(34px,5vw,56px);font-weight:900;letter-spacing:-1.5px;margin-bottom:18px}
+ .close h2 em{color:var(--accent);font-style:italic}
+ footer{border-top:1px solid rgba(16,185,129,.15);padding:30px 0;color:#7dd3b0;font-size:14px;text-align:center}
+ @media(max-width:820px){.grid{grid-template-columns:1fr}.navlinks{display:none}.river{display:none}}
+</style>
+</head>
+<body>
+<nav>
+ <div class="logo">
+ <svg width="26" height="26" viewBox="0 0 26 26"><path d="M3 8c4-3 6 3 10 0s6 3 10 0M3 14c4-3 6 3 10 0s6 3 10 0M3 20c4-3 6 3 10 0s6 3 10 0" stroke="#10b981" stroke-width="2" fill="none" stroke-linecap="round"/></svg>
+ Grant
+ </div>
+ <div class="navlinks">
+ <a href="#">Discover</a><a href="#">Proposals</a><a href="#">Deadline River</a><a href="#">Pricing</a>
+ <a class="btn-ghost" href="#">Sign in</a>
+ <a class="btn" href="#">Start free</a>
+ </div>
+</nav>
+
+<section class="hero">
+ <div class="wrap">
+ <span class="eyebrow">Never miss a grant deadline</span>
+ <h1>Funding flows. <em>Catch it</em> before the deadline passes.</h1>
+ <p class="sub">Grant turns every funding source — federal, foundation, corporate, local, individual — into one fit-scored stream that surfaces your next deadline before it slips by. For under-resourced nonprofits, not $899-a-month dev teams.</p>
+ <div class="cta-row">
+ <a class="btn" href="#">Start free</a>
+ <a class="btn-ghost" href="#" style="padding:15px 30px;font-size:17px">See your fit scores</a>
+ </div>
+ <p class="tiny">No credit card · Federal feed powered by the live U.S. Federal Register API</p>
+ </div>
+
+ <div class="wrap">
+ <div class="river">
+ <svg viewBox="0 0 1140 420" preserveAspectRatio="none">
+ <defs>
+ <linearGradient id="riv" x1="0" y1="0" x2="1" y2="0">
+ <stop offset="0" stop-color="#022b20"/><stop offset=".5" stop-color="#059669"/><stop offset="1" stop-color="#10b981"/>
+ </linearGradient>
+ <linearGradient id="rivfade" x1="0" y1="0" x2="0" y2="1">
+ <stop offset="0" stop-color="#10b981" stop-opacity=".0"/><stop offset="1" stop-color="#10b981" stop-opacity=".25"/>
+ </linearGradient>
+ </defs>
+ <path d="M0,120 C200,40 280,260 480,180 C660,108 760,300 940,200 C1040,148 1100,210 1140,180 L1140,420 L0,420 Z" fill="url(#rivfade)"/>
+ <path d="M0,120 C200,40 280,260 480,180 C660,108 760,300 940,200 C1040,148 1100,210 1140,180" stroke="url(#riv)" stroke-width="5" fill="none"/>
+ <path d="M0,150 C200,80 280,290 480,210 C660,140 760,330 940,230 C1040,180 1100,240 1140,210" stroke="#10b981" stroke-width="1.5" fill="none" opacity=".4"/>
+ </svg>
+ <span class="dot dot1"></span><span class="dot dot2"></span><span class="dot dot3"></span><span class="dot dot4"></span>
+ <div class="deadline d1"><div class="when">Due in 6 days</div><div class="name">NEA Grants for Arts Projects</div><div class="amt">$10k–$100k · Federal · 94% fit</div></div>
+ <div class="deadline d2"><div class="when">Due in 19 days</div><div class="name">Kresge Foundation — Health</div><div class="amt">up to $250k · Foundation · 88% fit</div></div>
+ <div class="deadline d3"><div class="when">Due in 31 days</div><div class="name">Bank of America Charitable</div><div class="amt">$25k · Corporate · 81% fit</div></div>
+ <div class="deadline d4"><div class="when">Due in 44 days</div><div class="name">CA Arts Council — Local Impact</div><div class="amt">$18k · State/Local · 90% fit</div></div>
+ </div>
+ </div>
+</section>
+
+<div class="strip">
+ <div class="wrap">
+ <div class="stat"><div class="n">$2T+</div><div class="l">in grant records, fit-scored to your mission</div></div>
+ <div class="stat"><div class="n">5 sources</div><div class="l">federal · foundation · corporate · local · individual</div></div>
+ <div class="stat"><div class="n">1 feed</div><div class="l">every deadline in one flowing pipeline</div></div>
+ <div class="stat"><div class="n">< $299/mo</div><div class="l">the full arc, below Instrumentl's floor</div></div>
+ </div>
+</div>
+
+<section class="features">
+ <div class="wrap">
+ <h2>The whole journey, in one current</h2>
+ <p class="lede">Discover, score, draft, track, and reach out — without ever leaving the river.</p>
+ <div class="grid">
+ <div class="card"><div class="ic">🔎</div><h3>Fit-scored discovery</h3><p>Every grant gets a %-fit score tuned to your org profile — not a keyword firehose. Federal, foundation, corporate, and local in one ranked feed.</p></div>
+ <div class="card"><div class="ic">✍️</div><h3>Proposal generation</h3><p>Draft an LOI, a full proposal, or a one-pager in minutes. Grant writes from your mission and the funder's priorities.</p></div>
+ <div class="card"><div class="ic">📰</div><h3>Live news monitoring</h3><p>Funder priority shifts and new RFPs, sourced from the real U.S. Federal Register API — feeding your Deadline River the moment they post.</p></div>
+ <div class="card"><div class="ic">🤝</div><h3>Partner tracking</h3><p>Track nonprofits, politicians, corporations, and municipalities as co-applicants and warm intros — turn discovery into relationships.</p></div>
+ <div class="card"><div class="ic">✉️</div><h3>AI outreach templates</h3><p>Generate funder-specific outreach email the moment a deadline surfaces. Close the loop everyone else drops.</p></div>
+ <div class="card"><div class="ic">🌊</div><h3>The Deadline River</h3><p>A proactive pipeline, not a static calendar — driven by live news and partner signal so you act before deadlines pass.</p></div>
+ </div>
+ </div>
+</section>
+
+<section class="close">
+ <div class="wrap">
+ <h2>Stop fishing. <em>Start catching.</em></h2>
+ <p class="sub">Join the under-resourced orgs winning grants without the $10k tooling budget.</p>
+ <a class="btn" href="#" style="padding:16px 34px;font-size:18px">Find grants now</a>
+ </div>
+</section>
+
+<footer>Grant — Deadline River · Built for nonprofits priced out of Instrumentl & Candid · Federal data via the U.S. Federal Register API</footer>
+</body>
+</html>
diff --git a/mockups/02-fit-feed.html b/mockups/02-fit-feed.html
new file mode 100644
index 0000000..ad7bfea
--- /dev/null
+++ b/mockups/02-fit-feed.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — One fit-scored feed</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap" rel="stylesheet">
+<style>
+ :root{
+ --bg:#f4f7f5; --panel:#ffffff; --ink:#0c1f17; --muted:#5a6b62;
+ --emerald:#047857; --accent:#10b981; --line:#e2ebe5;
+ --fed:#2563eb; --found:#7c3aed; --corp:#ea580c; --local:#0891b2;
+ }
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'IBM Plex Sans',sans-serif;background:var(--bg);color:var(--ink)}
+ a{text-decoration:none;color:inherit}
+ .wrap{max-width:1240px;margin:0 auto;padding:0 30px}
+
+ nav{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
+ .nbar{display:flex;align-items:center;justify-content:space-between;height:66px;max-width:1240px;margin:0 auto;padding:0 30px}
+ .logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:21px;color:var(--emerald);display:flex;align-items:center;gap:8px}
+ .logo .badge{background:var(--emerald);color:#fff;border-radius:7px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:15px}
+ .navlinks{display:flex;gap:26px;font-size:15px;color:var(--muted);align-items:center}
+ .navlinks a:hover{color:var(--ink)}
+ .btn{background:var(--emerald);color:#fff;font-weight:600;padding:10px 20px;border-radius:9px;font-size:15px;font-family:'Space Grotesk',sans-serif}
+ .btn:hover{background:#036249}
+
+ .hero{padding:60px 0 30px;display:grid;grid-template-columns:1fr 1.05fr;gap:54px;align-items:center}
+ .pill{display:inline-flex;align-items:center;gap:8px;background:#e4f5ee;color:var(--emerald);font-size:13px;font-weight:600;padding:7px 14px;border-radius:999px;margin-bottom:22px}
+ h1{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:clamp(38px,4.6vw,58px);line-height:1.04;letter-spacing:-1.5px;margin-bottom:20px}
+ h1 span{color:var(--emerald)}
+ .sub{font-size:18px;color:var(--muted);line-height:1.6;margin-bottom:28px;max-width:46ch}
+ .cta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
+ .btn-lg{padding:14px 26px;font-size:16px}
+ .btn-out{border:1.5px solid var(--line);color:var(--ink);background:#fff;padding:13px 24px;border-radius:9px;font-weight:600;font-size:16px;font-family:'Space Grotesk',sans-serif}
+ .undr{margin-top:18px;font-size:13.5px;color:var(--muted)}
+
+ /* feed mock */
+ .feed{background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px -20px rgba(4,120,87,.22);overflow:hidden}
+ .feedhead{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
+ .feedhead .t{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px}
+ .filters{display:flex;gap:6px}
+ .chip{font-size:12px;padding:5px 11px;border-radius:999px;background:#eef3f0;color:var(--muted);font-weight:500}
+ .chip.on{background:var(--emerald);color:#fff}
+ .gcard{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:center}
+ .gcard:last-child{border-bottom:none}
+ .score{flex:none;width:58px;height:58px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Space Grotesk',sans-serif}
+ .score .pct{font-weight:700;font-size:19px;line-height:1}
+ .score .lab{font-size:9px;text-transform:uppercase;letter-spacing:.5px;opacity:.7}
+ .gmeta{flex:1;min-width:0}
+ .gmeta .nm{font-weight:600;font-size:15.5px;margin-bottom:5px}
+ .gmeta .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
+ .src{font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;color:#fff}
+ .src.fed{background:var(--fed)} .src.found{background:var(--found)} .src.corp{background:var(--corp)} .src.local{background:var(--local)}
+ .due{font-weight:600;color:var(--emerald)}
+
+ .strip{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0}
+ .strip .wrap{display:flex;justify-content:space-around;flex-wrap:wrap;gap:20px;align-items:center}
+ .scell{text-align:center}
+ .scell b{font-family:'Space Grotesk',sans-serif;font-size:15px}
+ .scell span{display:block;font-size:13px;color:var(--muted)}
+
+ .why{padding:80px 0}
+ .why h2{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:34px;letter-spacing:-1px;text-align:center;margin-bottom:10px}
+ .why p.l{text-align:center;color:var(--muted);max-width:50ch;margin:0 auto 46px}
+ .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
+ .col{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px}
+ .col h3{font-family:'Space Grotesk',sans-serif;font-size:18px;margin-bottom:8px}
+ .col p{color:var(--muted);font-size:14.5px;line-height:1.55}
+ .col .k{display:inline-block;font-size:12px;font-weight:600;color:var(--emerald);background:#e4f5ee;padding:4px 10px;border-radius:6px;margin-bottom:12px}
+
+ .closer{background:var(--emerald);color:#fff;text-align:center;padding:70px 0}
+ .closer h2{font-family:'Space Grotesk',sans-serif;font-size:clamp(30px,4vw,46px);font-weight:700;letter-spacing:-1px;margin-bottom:24px}
+ .closer .btn-w{background:#fff;color:var(--emerald);padding:15px 32px;border-radius:10px;font-weight:600;font-size:17px;font-family:'Space Grotesk',sans-serif;display:inline-block}
+ footer{padding:28px 0;text-align:center;color:var(--muted);font-size:13.5px}
+ @media(max-width:880px){.hero{grid-template-columns:1fr}.cols{grid-template-columns:1fr}.navlinks{display:none}}
+</style>
+</head>
+<body>
+<nav><div class="nbar">
+ <div class="logo"><span class="badge">G</span>Grant</div>
+ <div class="navlinks"><a href="#">Feed</a><a href="#">Fit scores</a><a href="#">Proposals</a><a href="#">Pricing</a><a href="#">Sign in</a><a class="btn" href="#">Start free</a></div>
+</div></nav>
+
+<section class="wrap hero">
+ <div>
+ <span class="pill">● One feed, every funding source</span>
+ <h1>Stop tab-hopping. <span>Every grant, ranked by fit.</span></h1>
+ <p class="sub">Federal, foundation, corporate, and local grants — siloed everywhere else — unified into a single feed and scored against your mission. See the 94%-fit opportunity before the 40% noise.</p>
+ <div class="cta-row">
+ <a class="btn btn-lg" href="#">See your fit scores</a>
+ <a class="btn-out" href="#">Browse the feed</a>
+ </div>
+ <p class="undr">Rivals are siloed — Grants.gov is federal-only, Candid is foundation-centric. Grant scores them all together.</p>
+ </div>
+
+ <div class="feed">
+ <div class="feedhead">
+ <div class="t">Your fit-scored feed</div>
+ <div class="filters"><span class="chip on">All</span><span class="chip">Federal</span><span class="chip">Foundation</span><span class="chip">Corporate</span><span class="chip">Local</span></div>
+ </div>
+ <div class="gcard">
+ <div class="score" style="background:#e4f5ee;color:#047857"><span class="pct">94%</span><span class="lab">fit</span></div>
+ <div class="gmeta"><div class="nm">NEA Grants for Arts Projects</div><div class="row"><span class="src fed">Federal</span><span>$10k–$100k</span><span class="due">Due in 6 days</span></div></div>
+ </div>
+ <div class="gcard">
+ <div class="score" style="background:#ede9fe;color:#7c3aed"><span class="pct">90%</span><span class="lab">fit</span></div>
+ <div class="gmeta"><div class="nm">Kresge Foundation — Health Equity</div><div class="row"><span class="src found">Foundation</span><span>up to $250k</span><span class="due">Due in 19 days</span></div></div>
+ </div>
+ <div class="gcard">
+ <div class="score" style="background:#cffafe;color:#0891b2"><span class="pct">88%</span><span class="lab">fit</span></div>
+ <div class="gmeta"><div class="nm">CA Arts Council — Local Impact</div><div class="row"><span class="src local">State / Local</span><span>$18k</span><span class="due">Due in 31 days</span></div></div>
+ </div>
+ <div class="gcard">
+ <div class="score" style="background:#ffedd5;color:#ea580c"><span class="pct">81%</span><span class="lab">fit</span></div>
+ <div class="gmeta"><div class="nm">Bank of America Charitable Fund</div><div class="row"><span class="src corp">Corporate</span><span>$25k</span><span class="due">Due in 44 days</span></div></div>
+ </div>
+ <div class="gcard">
+ <div class="score" style="background:#eef3f0;color:#5a6b62"><span class="pct">38%</span><span class="lab">fit</span></div>
+ <div class="gmeta"><div class="nm">Rural Broadband Infrastructure Pilot</div><div class="row"><span class="src fed">Federal</span><span>$1M+</span><span style="color:#9aa8a0">Low fit — filtered down</span></div></div>
+ </div>
+ </div>
+</section>
+
+<div class="strip"><div class="wrap">
+ <div class="scell"><b>4 source types</b><span>federal · foundation · corporate · local</span></div>
+ <div class="scell"><b>1 fit score</b><span>tuned to your org profile</span></div>
+ <div class="scell"><b>No double-tooling</b><span>free federal feed built in</span></div>
+ <div class="scell"><b>Individuals welcome</b><span>not just funded dev teams</span></div>
+</div></div>
+
+<section class="why wrap">
+ <h2>Precision the firehose can't give you</h2>
+ <p class="l">GrantWatch lists everything. Candid has the data. Neither ranks it for <em>you</em>.</p>
+ <div class="cols">
+ <div class="col"><span class="k">Vector B</span><h3>Source-unified</h3><p>Federal + foundation + corporate + local + individual in one ranked stream — no more paying for one tool and still tabbing over to Grants.gov.</p></div>
+ <div class="col"><span class="k">Fit scoring</span><h3>Ranked, not listed</h3><p>Every opportunity scored against your mission, budget, and history. The 38%-fit gets pushed down; the 94% rises to the top.</p></div>
+ <div class="col"><span class="k">Vector C</span><h3>Action, not reference</h3><p>Click a high-fit grant and draft the LOI in the same screen. Discovery flows straight into a proposal and outreach.</p></div>
+ </div>
+</section>
+
+<section class="closer"><div class="wrap">
+ <h2>See what actually fits your mission.</h2>
+ <a class="btn-w" href="#">See your fit scores</a>
+</div></section>
+
+<footer>Grant — Deadline River · One fit-scored feed for under-resourced nonprofits · Federal data via the U.S. Federal Register API</footer>
+</body>
+</html>
diff --git a/mockups/03-command-center.html b/mockups/03-command-center.html
new file mode 100644
index 0000000..7786d06
--- /dev/null
+++ b/mockups/03-command-center.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — Command Center</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=DM+Sans:wght@400;500;600&display=swap" rel="stylesheet">
+<style>
+ :root{
+ --bg:#070d12; --panel:#0e1820; --panel2:#13212c; --ink:#eaf2ee; --muted:#8aa39a;
+ --emerald:#059669; --accent:#10b981; --line:#1d2f3a; --teal:#22d3ee; --gold:#fbbf24;
+ }
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'DM Sans',sans-serif;background:radial-gradient(1100px 600px at 80% -10%,rgba(5,150,105,.18),transparent),var(--bg);color:var(--ink);min-height:100vh}
+ a{text-decoration:none;color:inherit}
+ .wrap{max-width:1280px;margin:0 auto;padding:0 30px}
+
+ nav{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1280px;margin:0 auto;padding:0 30px}
+ .logo{font-family:'Sora',sans-serif;font-weight:800;font-size:22px;display:flex;align-items:center;gap:9px}
+ .logo .sq{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--teal));display:flex;align-items:center;justify-content:center;color:#06281f;font-weight:800}
+ .navlinks{display:flex;gap:28px;font-size:15px;color:var(--muted);align-items:center}
+ .navlinks a:hover{color:#fff}
+ .btn{background:linear-gradient(135deg,var(--accent),#0ea5a0);color:#04201a;font-weight:700;padding:11px 22px;border-radius:10px;font-size:15px;font-family:'Sora',sans-serif}
+
+ .hero{text-align:center;padding:64px 0 36px}
+ .tag{display:inline-block;font-size:13px;color:var(--accent);letter-spacing:2px;text-transform:uppercase;font-weight:600;margin-bottom:20px}
+ h1{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(40px,5.5vw,68px);line-height:1.02;letter-spacing:-2px;max-width:18ch;margin:0 auto 20px}
+ h1 b{background:linear-gradient(120deg,var(--accent),var(--teal));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
+ .sub{font-size:19px;color:var(--muted);max-width:60ch;margin:0 auto 30px;line-height:1.55}
+ .cta-row{display:flex;gap:14px;justify-content:center}
+ .btn-lg{padding:15px 30px;font-size:17px}
+ .btn-ghost{border:1px solid var(--line);color:var(--ink);padding:14px 28px;border-radius:10px;font-weight:600;font-size:17px;font-family:'Sora',sans-serif}
+
+ /* dashboard */
+ .dash{margin-top:54px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 40px 90px -30px rgba(0,0,0,.8)}
+ .dwin{display:grid;grid-template-columns:200px 1fr;gap:16px}
+ .side{background:var(--panel2);border-radius:14px;padding:16px}
+ .side .org{font-family:'Sora',sans-serif;font-weight:700;font-size:15px;margin-bottom:3px}
+ .side .orgsub{font-size:12px;color:var(--muted);margin-bottom:18px}
+ .navitem{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;font-size:14px;color:var(--muted);margin-bottom:3px}
+ .navitem.on{background:rgba(16,185,129,.16);color:#fff;font-weight:600}
+ .navitem .e{font-size:16px}
+ .modgrid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(0,1fr);gap:14px}
+ .mod{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:16px;min-height:138px}
+ .mod .h{display:flex;align-items:center;gap:8px;font-family:'Sora',sans-serif;font-weight:600;font-size:13.5px;color:var(--muted);margin-bottom:12px}
+ .mod .h .e{width:26px;height:26px;border-radius:7px;background:rgba(16,185,129,.15);display:flex;align-items:center;justify-content:center;font-size:14px}
+ .big{font-family:'Sora',sans-serif;font-weight:800;font-size:30px}
+ .mline{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.4}
+ .mini{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line)}
+ .mini:last-child{border:none}
+ .mini .pct{color:var(--accent);font-weight:600;font-family:'Sora',sans-serif}
+ .barwrap{height:7px;background:#0a141a;border-radius:4px;overflow:hidden;margin-top:8px}
+ .bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--teal));border-radius:4px}
+ .span2{grid-column:span 2}
+ .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
+ .ch{font-size:11px;padding:4px 9px;border-radius:6px;background:rgba(34,211,238,.13);color:var(--teal)}
+ .ch.g{background:rgba(251,191,36,.14);color:var(--gold)}
+
+ .strip{display:flex;justify-content:center;gap:46px;flex-wrap:wrap;padding:54px 0 0;text-align:center}
+ .strip .n{font-family:'Sora',sans-serif;font-weight:800;font-size:34px;background:linear-gradient(120deg,var(--accent),var(--teal));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
+ .strip .l{font-size:13.5px;color:var(--muted);margin-top:4px}
+
+ .closer{text-align:center;padding:90px 0}
+ .closer h2{font-family:'Sora',sans-serif;font-weight:800;font-size:clamp(32px,4.5vw,52px);letter-spacing:-1.5px;margin-bottom:20px}
+ footer{border-top:1px solid var(--line);padding:30px 0;text-align:center;color:var(--muted);font-size:13.5px}
+ @media(max-width:960px){.modgrid{grid-template-columns:1fr 1fr}.dwin{grid-template-columns:1fr}.side{display:none}.navlinks{display:none}.span2{grid-column:span 1}}
+ @media(max-width:600px){.modgrid{grid-template-columns:1fr}}
+</style>
+</head>
+<body>
+<nav>
+ <div class="logo"><span class="sq">G</span>Grant</div>
+ <div class="navlinks"><a href="#">Workspace</a><a href="#">Discovery</a><a href="#">Proposals</a><a href="#">Outreach</a><a href="#">Pricing</a><a href="#">Sign in</a><a class="btn" href="#">Start free</a></div>
+</nav>
+
+<section class="hero wrap">
+ <span class="tag">The full seeker arc · one workspace</span>
+ <h1>Your entire grant operation, <b>on one screen.</b></h1>
+ <p class="sub">Discover → fit-score → draft → track deadlines → monitor news → reach out. Five modules other tools sell separately (or gate behind $899/mo), unified into a single command center built for under-resourced nonprofits.</p>
+ <div class="cta-row">
+ <a class="btn btn-lg" href="#">Start free</a>
+ <a class="btn-ghost" href="#">Take the tour</a>
+ </div>
+
+ <div class="dash">
+ <div class="dwin">
+ <aside class="side">
+ <div class="org">Riverside Youth Arts</div>
+ <div class="orgsub">501(c)(3) · est. 2019</div>
+ <div class="navitem on"><span class="e">⊞</span> Workspace</div>
+ <div class="navitem"><span class="e">🔎</span> Discovery</div>
+ <div class="navitem"><span class="e">✍️</span> Proposals</div>
+ <div class="navitem"><span class="e">📰</span> News</div>
+ <div class="navitem"><span class="e">🤝</span> Partners</div>
+ <div class="navitem"><span class="e">✉️</span> Outreach</div>
+ </aside>
+
+ <div class="modgrid">
+ <div class="mod">
+ <div class="h"><span class="e">🔎</span> Discovery</div>
+ <div class="big">42</div>
+ <div class="mline">high-fit grants matched this week across 4 sources</div>
+ </div>
+ <div class="mod">
+ <div class="h"><span class="e">🎯</span> Top fit score</div>
+ <div class="big">94%</div>
+ <div class="mline">NEA Grants for Arts Projects</div>
+ <div class="barwrap"><div class="bar" style="width:94%"></div></div>
+ </div>
+ <div class="mod">
+ <div class="h"><span class="e">🌊</span> Deadline River</div>
+ <div class="mini"><span>NEA Arts Projects</span><span class="pct">6d</span></div>
+ <div class="mini"><span>Kresge — Health</span><span class="pct">19d</span></div>
+ <div class="mini"><span>CA Arts Council</span><span class="pct">31d</span></div>
+ </div>
+ <div class="mod span2">
+ <div class="h"><span class="e">✍️</span> Proposals in flight</div>
+ <div class="mini"><span>NEA — full proposal</span><span class="pct">Draft 80%</span></div>
+ <div class="mini"><span>Kresge — letter of inquiry</span><span class="pct">Review</span></div>
+ <div class="mini"><span>BofA — one-pager</span><span class="pct">Sent</span></div>
+ </div>
+ <div class="mod">
+ <div class="h"><span class="e">📰</span> News (live)</div>
+ <div class="mline">3 new Federal Register notices match your mission</div>
+ <div class="chips"><span class="ch">RFP opened</span><span class="ch g">Priority shift</span></div>
+ </div>
+ <div class="mod span2">
+ <div class="h"><span class="e">🤝</span> Partners & outreach</div>
+ <div class="mini"><span>Rep. district office — co-letter</span><span class="pct">Warm</span></div>
+ <div class="mini"><span>City Arts Commission — municipal</span><span class="pct">Intro sent</span></div>
+ </div>
+ <div class="mod">
+ <div class="h"><span class="e">✉️</span> Outreach drafts</div>
+ <div class="big">5</div>
+ <div class="mline">funder-specific emails ready to send</div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="strip">
+ <div><div class="n">5</div><div class="l">modules, one product</div></div>
+ <div><div class="n">$0</div><div class="l">to start — no card</div></div>
+ <div><div class="n">< $299/mo</div><div class="l">below Instrumentl's floor</div></div>
+ <div><div class="n">1 login</div><div class="l">no more tool-stacking</div></div>
+ </div>
+</section>
+
+<section class="closer wrap">
+ <h2>One workspace. Every step from prospect to award.</h2>
+ <p class="sub">No competitor combines all five. The cheap ones are listings-only; the full ones cost a grant budget.</p>
+ <a class="btn btn-lg" href="#">Open your command center</a>
+</section>
+
+<footer>Grant — Deadline River · The full seeker arc in one workspace · News powered by the live U.S. Federal Register API</footer>
+</body>
+</html>
diff --git a/mockups/04-editorial.html b/mockups/04-editorial.html
new file mode 100644
index 0000000..eaaf2d0
--- /dev/null
+++ b/mockups/04-editorial.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — The Federal Register, watched for you</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,700;0,900;1,500&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&family=Archivo:wght@500;600;700&display=swap" rel="stylesheet">
+<style>
+ :root{
+ --paper:#fbf9f4; --ink:#1a1a17; --muted:#5c5a52; --rule:#dcd7c9;
+ --emerald:#0b6b4f; --accent:#0f9d63; --crimson:#9a3b2e; --cream:#f3efe3;
+ }
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'Source Serif 4',serif;background:var(--paper);color:var(--ink)}
+ a{text-decoration:none;color:inherit}
+ .wrap{max-width:1180px;margin:0 auto;padding:0 32px}
+
+ /* masthead */
+ .masthead{border-bottom:3px double var(--ink);padding:18px 0 14px}
+ .mtop{display:flex;align-items:center;justify-content:space-between;font-family:'Archivo',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}
+ .title{text-align:center;margin:10px 0 8px}
+ .title h1{font-family:'Playfair Display',serif;font-weight:900;font-size:clamp(44px,8vw,92px);letter-spacing:-1px;line-height:.9}
+ .title .sub{font-family:'Archivo',sans-serif;text-transform:uppercase;letter-spacing:4px;font-size:12px;color:var(--emerald);margin-top:8px;font-weight:600}
+ .mnav{display:flex;justify-content:center;gap:28px;font-family:'Archivo',sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:1px;padding-top:12px;color:var(--ink)}
+ .mnav a:hover{color:var(--emerald)}
+
+ /* lede grid */
+ .lede{display:grid;grid-template-columns:2.2fr 1fr;gap:0;border-bottom:1px solid var(--rule);margin-top:0}
+ .feature{padding:42px 40px 42px 0;border-right:1px solid var(--rule)}
+ .kicker{font-family:'Archivo',sans-serif;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--crimson);font-weight:700;margin-bottom:14px}
+ .feature h2{font-family:'Playfair Display',serif;font-weight:900;font-size:clamp(34px,4.6vw,56px);line-height:1.02;letter-spacing:-1px;margin-bottom:18px}
+ .feature .dek{font-size:20px;color:var(--muted);line-height:1.55;margin-bottom:24px;max-width:40ch}
+ .feature .dek .drop{float:left;font-family:'Playfair Display',serif;font-weight:900;font-size:62px;line-height:.72;padding:6px 10px 0 0;color:var(--emerald)}
+ .btn{display:inline-block;background:var(--emerald);color:#fff;font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;padding:13px 26px;border-radius:3px}
+ .btn:hover{background:#085740}
+ .btn-link{font-family:'Archivo',sans-serif;font-weight:600;font-size:15px;color:var(--emerald);margin-left:22px;border-bottom:2px solid var(--emerald);padding-bottom:2px}
+
+ .rail{padding:42px 0 42px 40px}
+ .rail .rh{font-family:'Archivo',sans-serif;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--muted);font-weight:700;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
+ .live{font-size:10px;color:var(--crimson);display:flex;align-items:center;gap:5px}
+ .live .blip{width:7px;height:7px;border-radius:50%;background:var(--crimson)}
+ .item{padding:13px 0;border-bottom:1px solid var(--rule)}
+ .item:last-child{border:none}
+ .item .src{font-family:'Archivo',sans-serif;font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--emerald);font-weight:700;margin-bottom:3px}
+ .item .hl{font-family:'Playfair Display',serif;font-weight:700;font-size:16.5px;line-height:1.25}
+ .item .meta{font-size:13px;color:var(--muted);margin-top:4px}
+
+ /* secondary stories */
+ .stories{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-bottom:3px double var(--ink)}
+ .story{padding:34px 28px;border-right:1px solid var(--rule)}
+ .story:last-child{border-right:none}
+ .story .num{font-family:'Playfair Display',serif;font-weight:900;font-size:30px;color:var(--accent)}
+ .story h3{font-family:'Playfair Display',serif;font-weight:700;font-size:22px;line-height:1.1;margin:8px 0 10px}
+ .story p{font-size:15.5px;color:var(--muted);line-height:1.55}
+
+ .pullquote{text-align:center;padding:60px 0;border-bottom:1px solid var(--rule)}
+ .pullquote blockquote{font-family:'Playfair Display',serif;font-style:italic;font-weight:500;font-size:clamp(24px,3.4vw,38px);line-height:1.3;max-width:24ch;margin:0 auto}
+ .pullquote cite{font-family:'Archivo',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--muted);display:block;margin-top:20px}
+
+ .closer{text-align:center;padding:70px 0}
+ .closer h2{font-family:'Playfair Display',serif;font-weight:900;font-size:clamp(30px,4.5vw,50px);letter-spacing:-1px;margin-bottom:14px}
+ .closer p{font-size:18px;color:var(--muted);max-width:46ch;margin:0 auto 26px}
+ footer{border-top:3px double var(--ink);padding:24px 0;text-align:center;font-family:'Archivo',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}
+ @media(max-width:880px){.lede{grid-template-columns:1fr}.feature{border-right:none;padding-right:0}.rail{padding-left:0;border-top:1px solid var(--rule)}.stories{grid-template-columns:1fr}.story{border-right:none;border-bottom:1px solid var(--rule)}.mnav{flex-wrap:wrap;gap:16px}}
+</style>
+</head>
+<body>
+<header class="masthead wrap">
+ <div class="mtop">
+ <span>Friday Edition · For Under-Resourced Nonprofits</span>
+ <span>Powered by the U.S. Federal Register API</span>
+ </div>
+ <div class="title">
+ <h1>The Grant Dispatch</h1>
+ <div class="sub">Grant — Deadline River</div>
+ </div>
+ <nav class="mnav">
+ <a href="#">Discovery</a><a href="#">Federal Watch</a><a href="#">Proposals</a><a href="#">Partners</a><a href="#">Pricing</a><a href="#">Sign in</a>
+ </nav>
+</header>
+
+<section class="wrap lede">
+ <article class="feature">
+ <div class="kicker">The Lead — Proactive Funding Intelligence</div>
+ <h2>We read the Federal Register so your team doesn't have to.</h2>
+ <p class="dek"><span class="drop">G</span>rant monitors the real U.S. Federal Register the moment notices post — new RFPs, funder priority shifts, agency program changes — and routes each one straight into your fit-scored feed and your Deadline River. The news isn't a separate tab; it <em>drives</em> the pipeline.</p>
+ <a class="btn" href="#">Start free</a>
+ <a class="btn-link" href="#">See what's posting now →</a>
+ </article>
+
+ <aside class="rail">
+ <div class="rh">Federal Watch <span class="live"><span class="blip"></span>LIVE</span></div>
+ <div class="item"><div class="src">Federal Register · NEA</div><div class="hl">Grants for Arts Projects — FY cycle opens</div><div class="meta">Matched to your mission · 94% fit · due in 6 days</div></div>
+ <div class="item"><div class="src">Federal Register · HHS</div><div class="hl">Community Health priority area expanded</div><div class="meta">Priority shift detected · affects 3 saved grants</div></div>
+ <div class="item"><div class="src">Federal Register · ED</div><div class="hl">Afterschool Enrichment RFP published</div><div class="meta">New opportunity · 87% fit · due in 28 days</div></div>
+ <div class="item"><div class="src">Federal Register · NEH</div><div class="hl">Humanities access guidelines revised</div><div class="meta">Eligibility broadened · re-scoring your matches</div></div>
+ </aside>
+</section>
+
+<section class="wrap stories">
+ <div class="story"><div class="num">01</div><h3>Discovery, unified</h3><p>Federal, foundation, corporate, and local grants in one fit-scored feed — not four siloed databases you check separately.</p></div>
+ <div class="story"><div class="num">02</div><h3>Drafted on demand</h3><p>Turn any high-fit notice into a letter of inquiry, a full proposal, or a one-pager — written from your mission and the funder's stated priorities.</p></div>
+ <div class="story"><div class="num">03</div><h3>Into outreach</h3><p>Generate funder-specific email and track partners — nonprofits, politicians, corporations, municipalities — as warm intros and co-applicants.</p></div>
+</section>
+
+<section class="pullquote wrap">
+ <blockquote>"The deadline isn't a date on a calendar. It's the end of a story the news already started telling."</blockquote>
+ <cite>The Grant editorial philosophy</cite>
+</section>
+
+<section class="closer wrap">
+ <h2>Read the funding landscape like a newsroom.</h2>
+ <p>Proactive, news-driven, relationship-aware — the pipeline that moves before the deadline does.</p>
+ <a class="btn" href="#">Find grants now</a>
+</section>
+
+<footer>Grant — Deadline River · Federal data via the live U.S. Federal Register API · Built for nonprofits priced out of the incumbents</footer>
+</body>
+</html>
diff --git a/mockups/05-brutalist-data.html b/mockups/05-brutalist-data.html
new file mode 100644
index 0000000..0aa2c8b
--- /dev/null
+++ b/mockups/05-brutalist-data.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — The Numbers</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Anton&family=Archivo+Black&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet">
+<style>
+ :root{
+ --black:#0a0a0a; --paper:#eef0e9; --emerald:#00e676; --deep:#00b85c;
+ --acid:#c6ff00; --ink:#0a0a0a; --line:#0a0a0a;
+ }
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'JetBrains Mono',monospace;background:var(--paper);color:var(--ink)}
+ a{text-decoration:none;color:inherit}
+ .wrap{max-width:1280px;margin:0 auto;padding:0 24px}
+
+ nav{display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid var(--ink);padding:16px 24px;max-width:1280px;margin:0 auto}
+ .logo{font-family:'Archivo Black',sans-serif;font-size:26px;letter-spacing:-1px;text-transform:uppercase}
+ .navlinks{display:flex;gap:4px;align-items:center}
+ .navlinks a{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:9px 12px;border:2px solid transparent}
+ .navlinks a:hover{border:2px solid var(--ink)}
+ .btn{background:var(--ink);color:var(--emerald);font-family:'Archivo Black',sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:1px;padding:12px 18px;border:2px solid var(--ink)}
+ .btn:hover{background:var(--emerald);color:var(--ink)}
+
+ .hero{border-bottom:4px solid var(--ink);padding:54px 0 40px}
+ .tag{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:3px;background:var(--acid);display:inline-block;padding:5px 12px;border:2px solid var(--ink);margin-bottom:26px}
+ h1{font-family:'Anton',sans-serif;font-size:clamp(56px,11vw,148px);line-height:.84;text-transform:uppercase;letter-spacing:-2px;margin-bottom:24px}
+ h1 .hl{background:var(--emerald);padding:0 8px;display:inline-block}
+ .sub{font-size:18px;font-weight:600;max-width:60ch;line-height:1.5;margin-bottom:30px}
+ .cta-row{display:flex;gap:0;flex-wrap:wrap}
+ .btn-lg{font-size:16px;padding:18px 30px}
+ .btn-out{background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-left:none;font-family:'Archivo Black',sans-serif;font-size:16px;text-transform:uppercase;letter-spacing:1px;padding:18px 30px}
+ .btn-out:hover{background:var(--acid)}
+
+ /* big numbers */
+ .numbers{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:4px solid var(--ink)}
+ .num{border-right:4px solid var(--ink);padding:34px 22px}
+ .num:last-child{border-right:none}
+ .num .big{font-family:'Anton',sans-serif;font-size:clamp(44px,5.5vw,76px);line-height:.9;letter-spacing:-1px}
+ .num.inv{background:var(--ink);color:var(--emerald)}
+ .num.green{background:var(--emerald)}
+ .num .lab{font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-top:12px;line-height:1.4}
+
+ /* compare */
+ .compare{border-bottom:4px solid var(--ink);padding:48px 0}
+ .compare h2{font-family:'Anton',sans-serif;font-size:clamp(32px,5vw,56px);text-transform:uppercase;letter-spacing:-1px;margin-bottom:28px}
+ table{width:100%;border-collapse:collapse;font-size:14px}
+ th,td{border:3px solid var(--ink);padding:14px 16px;text-align:left}
+ th{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:12px;letter-spacing:1px;background:var(--ink);color:var(--paper)}
+ td.you{background:var(--emerald);font-weight:600}
+ .yes{font-family:'Archivo Black',sans-serif}.no{color:#888}
+
+ .feat{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:4px solid var(--ink)}
+ .fcell{border-right:4px solid var(--ink);padding:28px 18px}
+ .fcell:last-child{border-right:none}
+ .fcell .e{font-family:'Anton',sans-serif;font-size:34px;display:block;margin-bottom:10px}
+ .fcell h3{font-family:'Archivo Black',sans-serif;font-size:15px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;line-height:1.1}
+ .fcell p{font-size:13px;line-height:1.5;font-weight:500}
+
+ .closer{border-bottom:4px solid var(--ink);padding:70px 0;text-align:center;background:var(--ink);color:var(--paper)}
+ .closer h2{font-family:'Anton',sans-serif;font-size:clamp(40px,8vw,96px);text-transform:uppercase;letter-spacing:-2px;line-height:.88;margin-bottom:28px}
+ .closer h2 .hl{background:var(--emerald);color:var(--ink);padding:0 8px}
+ .closer .btn{background:var(--emerald);color:var(--ink);font-size:18px;padding:18px 36px}
+ footer{padding:22px 0;text-align:center;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px}
+ @media(max-width:880px){.numbers{grid-template-columns:1fr 1fr}.num:nth-child(2){border-right:none}.feat{grid-template-columns:1fr}.fcell{border-right:none;border-bottom:4px solid var(--ink)}.navlinks a:not(.btn){display:none}table{font-size:12px}th,td{padding:9px}}
+</style>
+</head>
+<body>
+<nav>
+ <div class="logo">Grant▪</div>
+ <div class="navlinks"><a href="#">Discover</a><a href="#">Score</a><a href="#">Draft</a><a href="#">Pricing</a><a class="btn" href="#">Start free</a></div>
+</nav>
+
+<section class="hero wrap">
+ <span class="tag">Deadline River · The full seeker arc</span>
+ <h1>$2 Trillion<br>in grants.<br><span class="hl">Zero</span> missed deadlines.</h1>
+ <p class="sub">Federal, foundation, corporate, local, and individual grants — fit-scored into one feed, drafted into proposals, tracked to the day. The whole machine, below Instrumentl's $299/mo floor.</p>
+ <div class="cta-row">
+ <a class="btn btn-lg" href="#">Start free</a>
+ <a class="btn-out" href="#">See the numbers</a>
+ </div>
+</section>
+
+<section class="numbers">
+ <div class="num"><div class="big">$2T+</div><div class="lab">in grant records, fit-scored to your org</div></div>
+ <div class="num inv"><div class="big">5</div><div class="lab">source types unified into one ranked feed</div></div>
+ <div class="num green"><div class="big">94%</div><div class="lab">fit on your top match this week</div></div>
+ <div class="num"><div class="big">$0</div><div class="lab">to start — no credit card, no gate</div></div>
+</section>
+
+<section class="compare wrap">
+ <h2>The math against the incumbents.</h2>
+ <table>
+ <tr><th>Tool</th><th>Entry price</th><th>All 4 sources</th><th>Fit scoring</th><th>Drafts proposals</th><th>Serves individuals</th></tr>
+ <tr><td>Instrumentl</td><td>$299/mo</td><td class="no">Partial</td><td class="yes">Yes</td><td class="no">$499+/mo</td><td class="no">No</td></tr>
+ <tr><td>Candid / FDO</td><td>~$1,199/yr</td><td class="no">Foundation</td><td class="no">Light</td><td class="no">No</td><td class="no">No</td></tr>
+ <tr><td>Grants.gov</td><td>Free</td><td class="no">Federal only</td><td class="no">No</td><td class="no">Forms only</td><td class="no">Federal</td></tr>
+ <tr><td>GrantWatch</td><td>$249/yr</td><td class="no">Noisy</td><td class="no">Light</td><td class="no">No</td><td class="yes">Yes</td></tr>
+ <tr><td class="you">Grant</td><td class="you">< $299/mo</td><td class="you yes">Yes</td><td class="you yes">Yes</td><td class="you yes">LOI / full / 1-pager</td><td class="you yes">Yes</td></tr>
+ </table>
+</section>
+
+<section class="feat">
+ <div class="fcell"><span class="e">01</span><h3>Discover</h3><p>One fit-scored feed across federal, foundation, corporate, and local sources.</p></div>
+ <div class="fcell"><span class="e">02</span><h3>Draft</h3><p>LOI, full proposal, or one-pager — generated from your mission.</p></div>
+ <div class="fcell"><span class="e">03</span><h3>Watch</h3><p>Live news from the real U.S. Federal Register API feeds your pipeline.</p></div>
+ <div class="fcell"><span class="e">04</span><h3>Partner</h3><p>Track nonprofits, politicians, corporations, and municipalities.</p></div>
+ <div class="fcell"><span class="e">05</span><h3>Reach out</h3><p>AI outreach templates close the loop into funder relationships.</p></div>
+</section>
+
+<section class="closer">
+ <div class="wrap">
+ <h2>Quit paying<br><span class="hl">$899/mo</span> for half<br>the machine.</h2>
+ <a class="btn" href="#">Find grants now</a>
+ </div>
+</section>
+
+<footer>Grant — Deadline River · For under-resourced nonprofits · Federal data via the U.S. Federal Register API</footer>
+</body>
+</html>
diff --git a/mockups/06-calm-minimal.html b/mockups/06-calm-minimal.html
new file mode 100644
index 0000000..508dd17
--- /dev/null
+++ b/mockups/06-calm-minimal.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — Never miss a deadline</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Epilogue:wght@400;500;600;700&family=Newsreader:ital,opsz,wght@0,6..72,400;1,6..72,400&display=swap" rel="stylesheet">
+<style>
+ :root{
+ --bg:#ffffff; --soft:#f5f8f6; --ink:#13211c; --muted:#677a71;
+ --emerald:#059669; --accent:#10b981; --line:#e8efeb; --mist:#ecfdf5;
+ }
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'Epilogue',sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
+ a{text-decoration:none;color:inherit}
+ .wrap{max-width:1080px;margin:0 auto;padding:0 28px}
+
+ nav{display:flex;align-items:center;justify-content:space-between;height:80px;max-width:1080px;margin:0 auto;padding:0 28px}
+ .logo{font-weight:700;font-size:21px;letter-spacing:-.5px;display:flex;align-items:center;gap:9px}
+ .logo .d{width:11px;height:11px;border-radius:50%;background:var(--emerald)}
+ .navlinks{display:flex;gap:30px;font-size:15px;color:var(--muted);align-items:center}
+ .navlinks a:hover{color:var(--ink)}
+ .btn{background:var(--emerald);color:#fff;font-weight:600;padding:11px 22px;border-radius:999px;font-size:15px}
+ .btn:hover{background:#047a55}
+ .btn-text{color:var(--ink);font-weight:600;font-size:15px}
+
+ .hero{text-align:center;padding:96px 0 70px;max-width:760px;margin:0 auto}
+ .badge{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--emerald);background:var(--mist);padding:8px 16px;border-radius:999px;margin-bottom:32px;font-weight:500}
+ .badge .pulse{width:7px;height:7px;border-radius:50%;background:var(--accent)}
+ h1{font-size:clamp(40px,6vw,68px);font-weight:700;letter-spacing:-2px;line-height:1.02;margin-bottom:24px}
+ h1 em{font-family:'Newsreader',serif;font-style:italic;font-weight:400;color:var(--emerald)}
+ .sub{font-size:20px;color:var(--muted);line-height:1.6;max-width:50ch;margin:0 auto 40px}
+ .cta-row{display:flex;gap:14px;justify-content:center;align-items:center}
+ .btn-lg{padding:16px 32px;font-size:17px}
+ .trust{margin-top:24px;font-size:14px;color:var(--muted)}
+
+ /* quiet product line */
+ .line{margin:60px auto 0;max-width:560px;background:var(--soft);border:1px solid var(--line);border-radius:18px;padding:8px}
+ .lrow{display:flex;align-items:center;gap:14px;padding:15px 18px;background:#fff;border-radius:13px;margin-bottom:6px;box-shadow:0 1px 0 rgba(0,0,0,.02)}
+ .lrow:last-child{margin-bottom:0}
+ .lrow .ic{width:38px;height:38px;border-radius:10px;background:var(--mist);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none}
+ .lrow .t{flex:1;text-align:left}
+ .lrow .t b{font-size:15px;font-weight:600;display:block}
+ .lrow .t span{font-size:13.5px;color:var(--muted)}
+ .lrow .v{font-size:13px;font-weight:600;color:var(--emerald);background:var(--mist);padding:5px 11px;border-radius:999px}
+
+ /* steps */
+ .steps{padding:90px 0;text-align:center}
+ .steps h2{font-size:34px;font-weight:700;letter-spacing:-1px;margin-bottom:8px}
+ .steps .l{color:var(--muted);font-size:17px;margin-bottom:54px}
+ .three{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;text-align:left}
+ .step .n{font-family:'Newsreader',serif;font-style:italic;font-size:22px;color:var(--accent);margin-bottom:12px}
+ .step h3{font-size:19px;font-weight:600;margin-bottom:8px}
+ .step p{color:var(--muted);font-size:15px;line-height:1.6}
+
+ /* value band */
+ .band{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:60px 0}
+ .band .wrap{display:flex;justify-content:space-around;flex-wrap:wrap;gap:30px;text-align:center}
+ .vc b{font-size:15px;font-weight:600}
+ .vc span{display:block;font-size:13.5px;color:var(--muted);margin-top:3px}
+ .vc .lead{font-family:'Newsreader',serif;font-style:italic;font-size:30px;color:var(--emerald);display:block;margin-bottom:6px}
+
+ .closer{text-align:center;padding:100px 0}
+ .closer h2{font-size:clamp(32px,4.5vw,48px);font-weight:700;letter-spacing:-1.5px;margin-bottom:18px}
+ .closer h2 em{font-family:'Newsreader',serif;font-style:italic;font-weight:400;color:var(--emerald)}
+ .closer p{font-size:18px;color:var(--muted);margin-bottom:30px}
+ footer{border-top:1px solid var(--line);padding:34px 0;text-align:center;color:var(--muted);font-size:14px}
+ @media(max-width:780px){.three{grid-template-columns:1fr}.navlinks{display:none}}
+</style>
+</head>
+<body>
+<nav>
+ <div class="logo"><span class="d"></span>Grant</div>
+ <div class="navlinks"><a href="#">How it works</a><a href="#">Pricing</a><a href="#">Sign in</a><a class="btn" href="#">Start free</a></div>
+</nav>
+
+<section class="hero">
+ <span class="badge"><span class="pulse"></span>Never miss a grant deadline</span>
+ <h1>Find the grants that fit. <em>Win the ones that matter.</em></h1>
+ <p class="sub">Grant unifies every funding source into one fit-scored feed, drafts your proposal, and keeps every deadline flowing — so a one-person nonprofit can compete with a full development team.</p>
+ <div class="cta-row">
+ <a class="btn btn-lg" href="#">Start free</a>
+ <a class="btn-text" href="#">See your fit scores →</a>
+ </div>
+ <p class="trust">Free to start · No credit card · Built for nonprofits priced out of Instrumentl & Candid</p>
+
+ <div class="line">
+ <div class="lrow"><div class="ic">🔎</div><div class="t"><b>NEA Grants for Arts Projects</b><span>Federal · $10k–$100k</span></div><div class="v">94% fit</div></div>
+ <div class="lrow"><div class="ic">✍️</div><div class="t"><b>Letter of inquiry — drafted</b><span>Generated from your mission</span></div><div class="v">Ready</div></div>
+ <div class="lrow"><div class="ic">🌊</div><div class="t"><b>Deadline River</b><span>Next deadline surfaced automatically</span></div><div class="v">in 6 days</div></div>
+ </div>
+</section>
+
+<section class="steps wrap">
+ <h2>Three steps. One quiet workflow.</h2>
+ <p class="l">No firehose, no 47-field search form, no $899/mo gate.</p>
+ <div class="three">
+ <div class="step"><div class="n">01</div><h3>Tell us your mission</h3><p>Describe your work once. Grant scores federal, foundation, corporate, and local grants against your profile — and filters out the noise.</p></div>
+ <div class="step"><div class="n">02</div><h3>Draft in a click</h3><p>Turn any high-fit match into a letter of inquiry, a full proposal, or a one-pager — written from your mission and the funder's priorities.</p></div>
+ <div class="step"><div class="n">03</div><h3>Never miss a date</h3><p>Your Deadline River keeps every deadline flowing, fed by live news from the real U.S. Federal Register — and ready outreach when it's time.</p></div>
+ </div>
+</section>
+
+<div class="band"><div class="wrap">
+ <div class="vc"><span class="lead">5</span><b>sources, one feed</b><span>federal · foundation · corporate · local · individual</span></div>
+ <div class="vc"><span class="lead">$0</span><b>to start</b><span>no card, no commitment</span></div>
+ <div class="vc"><span class="lead">1</span><b>workflow</b><span>discover → draft → deadline → outreach</span></div>
+</div></div>
+
+<section class="closer wrap">
+ <h2>The deadline is coming. <em>Be ready.</em></h2>
+ <p>Start free today — find your first high-fit grant in minutes.</p>
+ <a class="btn btn-lg" href="#">Find grants now</a>
+</section>
+
+<footer>Grant — Deadline River · AI grant discovery, drafting & deadline tracking for nonprofits · Federal data via the U.S. Federal Register API</footer>
+</body>
+</html>
diff --git a/mockups/index.html b/mockups/index.html
new file mode 100644
index 0000000..e0e8f8a
--- /dev/null
+++ b/mockups/index.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Grant — 6 Landing-Page Concepts</title>
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,900&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
+<style>
+ :root{--bg:#04231a;--ink:#f6fffb;--muted:#9fd9c4;--emerald:#059669;--accent:#10b981;--line:rgba(16,185,129,.18)}
+ *{box-sizing:border-box;margin:0;padding:0}
+ body{font-family:'Inter',sans-serif;background:radial-gradient(900px 500px at 80% -10%,rgba(16,185,129,.16),transparent),var(--bg);color:var(--ink);min-height:100vh}
+ .wrap{max-width:1180px;margin:0 auto;padding:54px 30px 80px}
+ header{margin-bottom:46px}
+ .eyebrow{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:14px}
+ h1{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(34px,5vw,56px);letter-spacing:-1.5px;line-height:1.02;margin-bottom:14px}
+ .lede{font-size:18px;color:var(--muted);max-width:62ch;line-height:1.55}
+ .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
+ .card{display:block;background:#0a3a2c;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:.2s}
+ .card:hover{transform:translateY(-4px);border-color:rgba(16,185,129,.5);box-shadow:0 24px 50px -20px rgba(0,0,0,.6)}
+ .thumb{height:168px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
+ .thumb .num{position:absolute;top:12px;left:14px;font-family:'Fraunces',serif;font-weight:900;font-size:15px;background:rgba(0,0,0,.35);backdrop-filter:blur(4px);padding:4px 10px;border-radius:8px;color:#fff;z-index:2}
+ .meta{padding:18px 20px}
+ .meta h2{font-family:'Fraunces',serif;font-size:20px;font-weight:600;margin-bottom:6px;text-transform:capitalize}
+ .meta p{font-size:14px;color:var(--muted);line-height:1.5}
+ .meta .open{margin-top:12px;font-size:13px;font-weight:600;color:var(--accent)}
+ a{text-decoration:none;color:inherit}
+ footer{margin-top:54px;padding-top:24px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
+
+ /* mini CSS-art thumbnails (no images) */
+ .t1{background:linear-gradient(160deg,#022b20,#04231a)}
+ .t1 svg{position:absolute;bottom:0;width:100%;height:90%}
+ .t2{background:#f4f7f5;display:flex;flex-direction:column;gap:6px;padding:18px 16px;justify-content:center}
+ .t2 .r{display:flex;align-items:center;gap:9px}
+ .t2 .s{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:600 10px Inter;color:#fff}
+ .t2 .b{height:8px;border-radius:4px;background:#dde7e1;flex:1}
+ .t3{background:linear-gradient(135deg,#0e1820,#13212c);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:7px;padding:16px}
+ .t3 i{background:#1a2c37;border:1px solid rgba(16,185,129,.25);border-radius:7px}
+ .t3 i:nth-child(2){background:rgba(16,185,129,.18)}
+ .t4{background:#fbf9f4;padding:16px;color:#1a1a17}
+ .t4 .mh{font-family:'Fraunces',serif;font-weight:900;font-size:24px;text-align:center;border-bottom:3px double #1a1a17;padding-bottom:8px;margin-bottom:9px}
+ .t4 .cols{display:grid;grid-template-columns:2fr 1fr;gap:9px}
+ .t4 .bb{height:7px;background:#dcd7c9;border-radius:3px;margin-bottom:6px}
+ .t4 .bb.g{background:#0b6b4f}
+ .t5{background:#eef0e9;padding:0;display:grid;grid-template-columns:1fr 1fr;color:#0a0a0a}
+ .t5 .cell{border:3px solid #0a0a0a;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:900;font-size:30px}
+ .t5 .cell.b{background:#0a0a0a;color:#00e676}.t5 .cell.g{background:#00e676}
+ .t6{background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#13211c}
+ .t6 .pill{font-size:10px;color:#059669;background:#ecfdf5;padding:5px 12px;border-radius:999px}
+ .t6 .h{font-family:'Fraunces',serif;font-weight:600;font-size:18px}
+ .t6 .cta{font-size:11px;font-weight:600;color:#fff;background:#059669;padding:7px 16px;border-radius:999px}
+ @media(max-width:880px){.grid{grid-template-columns:1fr 1fr}}
+ @media(max-width:560px){.grid{grid-template-columns:1fr}}
+</style>
+</head>
+<body>
+<div class="wrap">
+ <header>
+ <div class="eyebrow">Grant — Deadline River · Public landing concepts</div>
+ <h1>6 ways the homepage could look</h1>
+ <p class="lede">Net-new public marketing landing for Grant — an AI grant-discovery & fundraising platform for under-resourced nonprofits. Six distinct directions, each a different typeface pairing, palette, and hero composition. Click any card to open the full-page concept.</p>
+ </header>
+
+ <div class="grid">
+
+ <a class="card" href="01-river-flow.html">
+ <div class="thumb t1"><span class="num">01</span>
+ <svg viewBox="0 0 300 150" preserveAspectRatio="none"><path d="M0,60 C60,20 90,110 150,80 C210,55 240,120 300,90 L300,150 L0,150 Z" fill="rgba(16,185,129,.22)"/><path d="M0,60 C60,20 90,110 150,80 C210,55 240,120 300,90" stroke="#10b981" stroke-width="3" fill="none"/><circle cx="70" cy="48" r="5" fill="#10b981"/><circle cx="150" cy="80" r="5" fill="#10b981"/><circle cx="235" cy="98" r="5" fill="#10b981"/></svg>
+ </div>
+ <div class="meta"><h2>River Flow</h2><p>The "Deadline River" metaphor as hero — a flowing SVG timeline of upcoming deadlines you catch before they pass.</p><div class="open">Open concept →</div></div>
+ </a>
+
+ <a class="card" href="02-fit-feed.html">
+ <div class="thumb t2"><span class="num" style="background:rgba(0,0,0,.2);color:#0c1f17">02</span>
+ <div class="r"><span class="s" style="background:#047857">94</span><span class="b"></span></div>
+ <div class="r"><span class="s" style="background:#7c3aed">90</span><span class="b"></span></div>
+ <div class="r"><span class="s" style="background:#0891b2">88</span><span class="b"></span></div>
+ <div class="r"><span class="s" style="background:#ea580c">81</span><span class="b"></span></div>
+ </div>
+ <div class="meta"><h2>Fit Feed</h2><p>The unified fit-scored feed front-and-center — grant cards with %-fit scores and federal / foundation / corporate / local source badges.</p><div class="open">Open concept →</div></div>
+ </a>
+
+ <a class="card" href="03-command-center.html">
+ <div class="thumb t3"><span class="num">03</span><i></i><i></i><i></i><i></i><i></i><i></i></div>
+ <div class="meta"><h2>Command Center</h2><p>The full seeker arc as one workspace — five modules (discover, draft, deadlines, news, outreach) on a single dashboard hero.</p><div class="open">Open concept →</div></div>
+ </a>
+
+ <a class="card" href="04-editorial.html">
+ <div class="thumb t4"><span class="num" style="background:rgba(0,0,0,.2)">04</span>
+ <div class="mh">The Grant Dispatch</div>
+ <div class="cols"><div><div class="bb g" style="width:90%"></div><div class="bb"></div><div class="bb" style="width:70%"></div></div><div><div class="bb" style="width:80%"></div><div class="bb"></div><div class="bb" style="width:60%"></div></div></div>
+ </div>
+ <div class="meta"><h2>Editorial</h2><p>Proactive, news-driven magazine layout leaning on the real U.S. Federal Register feed — a newsroom for funding intelligence.</p><div class="open">Open concept →</div></div>
+ </a>
+
+ <a class="card" href="05-brutalist-data.html">
+ <div class="thumb t5"><span class="num">05</span>
+ <div class="cell">$2T</div><div class="cell b">5</div><div class="cell g">94%</div><div class="cell">$0</div>
+ </div>
+ <div class="meta"><h2>Brutalist Data</h2><p>Bold, numbers-forward, high-contrast — $2T available, 5 sources unified, zero missed deadlines, beating the incumbents on price.</p><div class="open">Open concept →</div></div>
+ </a>
+
+ <a class="card" href="06-calm-minimal.html">
+ <div class="thumb t6"><span class="num" style="background:rgba(0,0,0,.15)">06</span>
+ <span class="pill">● Never miss a deadline</span>
+ <span class="h">Find grants that fit.</span>
+ <span class="cta">Start free</span>
+ </div>
+ <div class="meta"><h2>Calm Minimal</h2><p>Conversion-focused minimal SaaS — generous whitespace, one quiet three-step workflow, one strong CTA.</p><div class="open">Open concept →</div></div>
+ </a>
+
+ </div>
+
+ <footer>Grant — Deadline River · 6 net-new public-landing concepts · All copy grounded in real product facts & the committed competitor peer-survey · No stock photos (SVG / CSS only)</footer>
+</div>
+</body>
+</html>
← f2decb0 news: replace AI-fabricated discovery with real Federal Regi
·
back to Grant
·
Build out fit-feed landing as real /landing route (interacti 5692f38 →