@mevdragon/vidfarm-devcli 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.agents/skills/farmville-saas-ux/SKILL.md +156 -0
  2. package/.agents/skills/farmville-saas-ux/assets/starter.html +294 -0
  3. package/.agents/skills/farmville-saas-ux/references/components.md +340 -0
  4. package/.agents/skills/farmville-saas-ux/references/porting-guide.md +121 -0
  5. package/.agents/skills/farmville-saas-ux/references/tokens.md +271 -0
  6. package/.agents/skills/vidfarm-media/SKILL.md +2 -1
  7. package/.agents/skills/vidfarm-media/references/tts.md +20 -1
  8. package/demo/dist/app.css +1 -1
  9. package/demo/dist/app.js +74 -74
  10. package/dist/src/account-pages-legacy.js +2 -2
  11. package/dist/src/app.js +682 -12
  12. package/dist/src/config.js +13 -0
  13. package/dist/src/editor-chat.js +3 -2
  14. package/dist/src/frontend/homepage-client.js +211 -2
  15. package/dist/src/frontend/homepage-shared.js +197 -0
  16. package/dist/src/frontend/homepage-store.js +39 -1
  17. package/dist/src/frontend/homepage-view.js +150 -5
  18. package/dist/src/homepage.js +234 -18
  19. package/dist/src/landing-page.js +367 -0
  20. package/dist/src/primitive-registry.js +278 -2
  21. package/dist/src/reskin/agency-page.js +255 -0
  22. package/dist/src/reskin/calendar-page.js +252 -0
  23. package/dist/src/reskin/chat-page.js +414 -0
  24. package/dist/src/reskin/discover-page.js +380 -0
  25. package/dist/src/reskin/document.js +74 -0
  26. package/dist/src/reskin/help-page.js +318 -0
  27. package/dist/src/reskin/index-page.js +62 -0
  28. package/dist/src/reskin/job-runs-page.js +249 -0
  29. package/dist/src/reskin/library-page.js +515 -0
  30. package/dist/src/reskin/login-page.js +225 -0
  31. package/dist/src/reskin/pricing-page.js +359 -0
  32. package/dist/src/reskin/settings-page.js +353 -0
  33. package/dist/src/reskin/theme.js +265 -0
  34. package/dist/src/services/serverless-records.js +63 -0
  35. package/dist/src/services/swipe-customize.js +434 -0
  36. package/package.json +1 -1
  37. package/public/assets/homepage-client-app.js +23 -23
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: farmville-saas-ux
3
+ description: >-
4
+ A portable design system for building or restyling any website / SaaS / landing page / app UI
5
+ into the warm, sunny, storybook-meets-clean-SaaS aesthetic exemplified by Fillout.com — illustrated
6
+ painterly hero, floating frosted-glass pill nav, heavy rounded display type, a honey-gold "joy"
7
+ accent over a neutral base, pill buttons, soft 2xl–3xl rounded cards, diffuse low-opacity shadows,
8
+ and a warm-dark charcoal footer. Use this skill whenever the user wants a UI to feel friendly,
9
+ wholesome, optimistic, "cozy", "cute but professional", "Fillout-style", "Notion/Linear-but-warmer",
10
+ playful, rounded, or wants to re-theme / reskin an existing site or component into this style — even
11
+ if they don't name it. Also triggers on requests for warm SaaS landing pages, cheerful marketing
12
+ sites, friendly dashboards, or a cohesive design-token set (colors, fonts, radii, shadows, spacing).
13
+ Do NOT use it for dark technical/cyberpunk, brutalist, luxury-minimal, or corporate-enterprise looks.
14
+ ---
15
+
16
+ # Farmville SaaS UX
17
+
18
+ A design system that makes software feel like a **sunny afternoon** — warm, wholesome, optimistic,
19
+ and hand-illustrated — while staying crisp, trustworthy, and conversion-ready like a top SaaS.
20
+
21
+ "Farmville" is the *soul*: storybook warmth, golden light, rounded friendliness, a little delight.
22
+ "SaaS" is the *discipline*: a strict neutral base, tight type, generous whitespace, and soft rigor.
23
+ Every screen should read as **cozy + credible at the same time.**
24
+
25
+ Distilled from Fillout.com. This skill is portable: apply it to a brand-new build **or** reskin any
26
+ existing website/component. When re-theming, keep the target's structure and copy — swap only the
27
+ design language described here.
28
+
29
+ ---
30
+
31
+ ## The soul in one paragraph
32
+
33
+ Imagine a Ghibli sky over a clean form builder. Big, rounded, confident headlines float in warm light.
34
+ The navigation is a little frosted-glass pill that hovers just below the top edge. Buttons are fully
35
+ rounded pills — charcoal on light, honey-gold when you want to spark joy. Content lives on soft white
36
+ cards with barely-there borders and shadows so diffuse they feel like sunlight, not drop-shadows.
37
+ Nothing is sharp. Nothing is loud. One golden accent does all the celebrating; everything else is a
38
+ calm neutral gray. It feels *handmade and safe* — a product you'd trust with your data and also want
39
+ to hug.
40
+
41
+ ---
42
+
43
+ ## The 8 signature moves (this is what makes it recognizable)
44
+
45
+ Copy these and the style reads instantly. Skip them and it's just another gray SaaS page.
46
+
47
+ 1. **Illustrated painterly hero.** A warm, sunny, *hand-illustrated* full-bleed scene behind the hero
48
+ — blue sky, golden-hour cumulus clouds, lush green foliage, a soft city. Not a photo, not a flat
49
+ gradient, not an abstract mesh. This optimistic illustration is the #1 tell. (Fallbacks for when
50
+ you can't commission art are in `references/components.md` → Hero.)
51
+ 2. **Floating frosted-glass pill nav.** The nav bar is a *detached* rounded pill with translucent
52
+ white fill, `backdrop-blur`, a hairline border, and a soft shadow — sitting with margin from the
53
+ top, not glued edge-to-edge.
54
+ 3. **Heavy, rounded, two-tone display type.** Headlines are big and bold (700–800) in a warm rounded
55
+ grotesque, tracking pulled tight. On the illustrated hero, split the headline into a **translucent
56
+ line + a solid line** (e.g. `Forms that` at ~55% white over `do it all` at 100% white).
57
+ 4. **Honey-gold as the only "joy" accent.** `#ffc738`. Use it *sparingly* for delight — the primary
58
+ CTA in the footer, star ratings, badges, the logo, small highlights. On light backgrounds the
59
+ workhorse button is charcoal `#171717`; gold is the special one.
60
+ 5. **Soft card system.** White cards, `1rem–1.5rem` (2xl–3xl) radius, a `#ededed` hairline border, a
61
+ diffuse shadow, and generous inner padding. On hover they lift ~2px and the shadow deepens. The
62
+ border is a *uniform* hairline on all four sides — never a thicker or colored side border (no
63
+ `border-left` status stripes / edge accents). Signal status or category with a pill or dot *inside*
64
+ the card instead.
65
+ 6. **Pill badges with a mini glyph.** Small rounded-full chips like `🔥 Features` or `📋 Forms by Zite`
66
+ — a tiny icon/emoji + a word, used to label section intros.
67
+ 7. **Colored icon tiles & node chips.** Rounded-square tiles with a *pastel-tint* background and a
68
+ colored glyph (violet AI, green branch, gold publish). Product mockups show connected "node" cards.
69
+ 8. **Warm-dark charcoal footer.** Near-black `#171717` footer with the logo in **amber gold**, muted
70
+ gray link columns, and pill-shaped trust badges ("SOC II", "256-bit AES").
71
+
72
+ ---
73
+
74
+ ## Non-negotiable feel checks
75
+
76
+ Before you ship a screen, it should pass all of these — they're the difference between "warm SaaS" and
77
+ "generic template":
78
+
79
+ - **Curves everywhere.** No sharp 90° corners on interactive elements. CTAs & nav = full pills.
80
+ Cards = 16–24px. Inputs & small chips = 6–12px. If a corner looks sharp, round it.
81
+ - **One accent, calm base.** Exactly one celebratory hue (honey-gold). Everything else is the neutral
82
+ gray scale + charcoal ink. Resist adding a second bright brand color to compete with the gold.
83
+ - **Sunlight, not drop-shadows.** Shadows are large-radius, low-opacity (`#0000001a` ≈ 10% black),
84
+ never dark or tight. They suggest soft ambient light.
85
+ - **No side borders on cards.** Card borders are the same `1px` hairline on all four sides. No
86
+ colored `border-left`/`border-right` accent stripes — status lives in a pill or dot inside the card.
87
+ - **Air.** Sections breathe with `~6rem` vertical padding; content maxes at `~72rem` and stays centered;
88
+ section intros are centered (badge → big headline → one-line subhead → CTA).
89
+ - **Warm, human copy voice.** Short, plain, optimistic ("Forms that do it all", "It all starts with a
90
+ form"). If you write microcopy, keep it friendly and confident, never jargon-heavy.
91
+
92
+ ---
93
+
94
+ ## Workflow
95
+
96
+ **Building fresh:**
97
+ 1. Read `references/tokens.md` and paste the `:root` token block into the project's global CSS. This is
98
+ the whole design system as CSS variables — do not hand-pick ad-hoc values.
99
+ 2. Load the fonts (Hanken Grotesk + Inter, see tokens.md).
100
+ 3. Build sections top-to-bottom using the recipes in `references/components.md` (nav → hero → logo cloud
101
+ → feature cards → integrations → CTA → footer). Lean on the 8 signature moves.
102
+ 4. Open `assets/starter.html` as a working reference — it implements the entire system in one file. Copy
103
+ from it liberally.
104
+
105
+ **Reskinning an existing site/component:** follow `references/porting-guide.md`. The short version: keep
106
+ their DOM & copy; swap fonts → round corners → neutralize palette to gray + one gold accent → soften
107
+ shadows → float the nav into a glass pill → warm the hero → generous re-padding → warm-dark the footer →
108
+ sprinkle delight (stars, emoji badges, arrow-nudge CTAs).
109
+
110
+ **Always verify visually.** This is a look-and-feel skill — render the page in a browser (or the
111
+ `/run` skill) and eyeball it against the signature moves and feel checks above. Tokens alone don't
112
+ guarantee the vibe; the illustrated hero, the pill nav, and the gold restraint carry it.
113
+
114
+ ---
115
+
116
+ ## Quick token reference (full set in `references/tokens.md`)
117
+
118
+ **Fonts** — Display: `Hanken Grotesk` (free, closest to Fillout's proprietary *blMelody*; alternates:
119
+ Figtree, Gantari, Onest). Body/UI: `Inter`. Weights: display 700–800, body 400/500, semibold 600.
120
+ Tracking: headings `-0.02em` to `-0.03em`; body normal. Leading: display 1.0–1.05, body 1.5–1.6.
121
+
122
+ **Core colors:**
123
+ | Role | Hex |
124
+ |---|---|
125
+ | Honey-gold accent | `#ffc738` (soft `#f6c744`, deep `#fcb900`, tints `#ffe9cc` `#fff5e4`) |
126
+ | Ink / dark surface | `#171717` (deepest `#0a0a0a`) |
127
+ | Body text | `#404040` heading, `#737373` secondary, `#a3a3a3` muted |
128
+ | Borders | `#ededed` hairline, `#d4d4d4` strong |
129
+ | Surfaces | `#ffffff` card, `#fbfbfb` page, `#f5f5f5` section tint |
130
+ | Support pastels | sky `#3f9fe0`/tint `#e2effd`, violet `#9f5bde`/tint `#e4ddfd`, green `#22c55e`, coral `#f97316`/tint `#ffe9cc` |
131
+
132
+ **Radius:** md `6px` (inputs), xl `12px` (buttons, icon tiles), 2xl `16px` (cards), 3xl `24px` (big cards,
133
+ image frames), `full` (nav, pill buttons, badges).
134
+
135
+ **Shadows** (low-opacity, diffuse): `sm 0 1px 3px #0000001a`, `md 0 4px 6px -1px #0000001a`,
136
+ `lg 0 10px 15px -3px #0000001a`, `xl 0 20px 25px -5px #0000001a`. Gold focus ring
137
+ `0 0 0 3px #f6c744, 0 0 14px rgba(246,199,68,.4)`.
138
+
139
+ **Spacing:** 4px base unit. Section padding `~96px` vertical. Container max `~1152–1280px`, centered,
140
+ generous gutters.
141
+
142
+ **Motion:** ease-out, 150–250ms. Hover = lift 1–2px + shadow deepen; CTA arrows nudge right ~3px.
143
+
144
+ ---
145
+
146
+ ## Reference files
147
+
148
+ - `references/tokens.md` — the complete copy-paste token system (CSS `:root` variables): fonts, full
149
+ color scale, type scale, radii, shadows, spacing, motion, glass/blur. **Start here.**
150
+ - `references/components.md` — detailed HTML+CSS recipes for every signature component: glass pill nav,
151
+ illustrated hero (+ 3 tiers of fallback backgrounds), pill buttons, soft cards, badges, icon tiles,
152
+ workflow nodes, logo cloud, review cards, integration grid, warm-dark footer.
153
+ - `references/porting-guide.md` — step-by-step method to convert any existing website/component into
154
+ this style, with a before/after checklist.
155
+ - `assets/starter.html` — a single self-contained page implementing the full system. Open it, copy from
156
+ it, or use it as the skeleton for a new build.
@@ -0,0 +1,294 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Farmville SaaS — Starter</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
10
+ <style>
11
+ :root{
12
+ --font-display:"Hanken Grotesk","blMelody",ui-sans-serif,system-ui,sans-serif;
13
+ --font-body:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;
14
+ /* honey gold — the one joy accent */
15
+ --gold-500:#ffc738;--gold-600:#f6c744;--gold-700:#fcb900;--gold-tint:#fff5e4;--gold-tint2:#ffe9cc;
16
+ /* ink + neutral scale */
17
+ --ink:#171717;--n-800:#262626;--n-700:#404040;--n-600:#525252;--n-500:#737373;--n-400:#a3a3a3;
18
+ --n-300:#d4d4d4;--n-200:#ededed;--n-100:#f5f5f5;--n-50:#fbfbfb;--white:#fff;
19
+ /* support pastels */
20
+ --sky:#3f9fe0;--sky-tint:#e2effd;--violet:#9f5bde;--violet-tint:#e4ddfd;--green:#22c55e;--green-tint:#dcfce7;--coral:#f97316;--coral-tint:#ffe9cc;
21
+ /* semantic */
22
+ --bg:var(--n-50);--bg-section:var(--n-100);--surface:var(--white);--border:var(--n-200);--border-strong:var(--n-300);
23
+ --text:var(--n-700);--text-muted:var(--n-500);--text-faint:var(--n-400);
24
+ /* radius */
25
+ --r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:16px;--r-3xl:24px;--r-full:9999px;
26
+ /* shadow */
27
+ --shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;
28
+ --shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;
29
+ --shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;
30
+ --shadow-card:0 1px 2px #0000000d,0 8px 24px -12px #00000014;--shadow-nav:0 4px 24px -8px #00000026,0 1px 2px #0000000d;
31
+ --ring-gold:0 0 0 3px var(--gold-600),0 0 14px rgba(246,199,68,.4);
32
+ /* type */
33
+ --text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-4xl:2.25rem;--text-5xl:3rem;
34
+ --display:clamp(3rem,7vw,6rem);
35
+ /* space + motion */
36
+ --section-y:clamp(4rem,9vw,7rem);--container:75rem;--gutter:clamp(1rem,4vw,2rem);
37
+ --glass-blur:16px;--ease:cubic-bezier(.22,1,.36,1);--dur:220ms;
38
+ }
39
+ *{box-sizing:border-box;margin:0;padding:0}
40
+ html{font-size:16px}
41
+ body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5}
42
+ a{text-decoration:none;color:inherit}
43
+ h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--ink)}
44
+ .container{width:min(var(--container),100%);margin:0 auto;padding:0 var(--gutter)}
45
+
46
+ /* nav */
47
+ .nav-wrap{position:sticky;top:0;z-index:50;padding:16px var(--gutter);display:flex;justify-content:center}
48
+ .glass{background:rgba(255,255,255,.72);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border);box-shadow:var(--shadow-nav)}
49
+ .nav{width:min(var(--container),100%);display:flex;align-items:center;gap:24px;padding:10px 12px 10px 24px;border-radius:var(--r-full)}
50
+ .brand{font-family:var(--font-display);font-weight:800;font-size:22px;color:var(--ink);letter-spacing:-.02em}
51
+ .nav-links{display:flex;gap:2px;margin:0 auto;list-style:none}
52
+ .nav-links a{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border-radius:var(--r-lg);font-size:15px;font-weight:500;color:var(--n-700);transition:background var(--dur) var(--ease)}
53
+ .nav-links a:hover{background:#0000000a}
54
+ .caret{font-size:11px;color:var(--n-400)}
55
+ .nav-cta{display:flex;align-items:center;gap:8px}
56
+ .link-quiet{padding:8px 12px;font-size:15px;font-weight:500;color:var(--n-700)}
57
+ @media(max-width:820px){.nav-links{display:none}}
58
+
59
+ /* buttons */
60
+ .btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--r-full);font-family:var(--font-body);font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}
61
+ .btn .arrow{transition:transform var(--dur) var(--ease)}
62
+ .btn:hover .arrow{transform:translateX(3px)}
63
+ .btn-ink{background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}
64
+ .btn-ink:hover{background:#000;box-shadow:var(--shadow-md);transform:translateY(-1px)}
65
+ .btn-gold{background:var(--gold-500);color:var(--ink);font-weight:700;box-shadow:var(--shadow-sm)}
66
+ .btn-gold:hover{background:var(--gold-700);box-shadow:0 6px 18px -6px rgba(252,185,0,.6);transform:translateY(-1px)}
67
+ .btn-ghost{background:#fff;color:var(--ink);border-color:var(--border);box-shadow:var(--shadow-xs)}
68
+ .btn-ghost:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
69
+ .btn-lg{padding:15px 26px;font-size:16px}
70
+
71
+ /* badges */
72
+ .badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--r-full);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-xs);font-size:14px;font-weight:500;color:var(--n-700)}
73
+
74
+ /* hero (Tier-2 pure-CSS sunny sky, no image asset needed) */
75
+ .hero{position:relative;overflow:hidden;text-align:center;padding:120px var(--gutter) 110px}
76
+ .hero-art{position:absolute;inset:0;z-index:0;background:
77
+ radial-gradient(58% 46% at 78% 20%,rgba(255,241,204,.9),transparent 60%),
78
+ linear-gradient(180deg,#3f9fe0 0%,#6cc0f5 55%,#a9dbfb 100%)}
79
+ .hero-art::after{content:"";position:absolute;right:9%;bottom:16%;width:340px;height:130px;
80
+ background:radial-gradient(ellipse 60% 60% at 30% 60%,#fff,transparent 70%),radial-gradient(ellipse 50% 70% at 66% 50%,#fff,transparent 70%);filter:blur(2px);opacity:.95}
81
+ .hero-art::before{content:"";position:absolute;left:6%;top:30%;width:220px;height:90px;
82
+ background:radial-gradient(ellipse 60% 60% at 40% 60%,#fff,transparent 72%);filter:blur(3px);opacity:.8}
83
+ .hero-inner{position:relative;z-index:1;max-width:820px;margin:0 auto;display:grid;gap:22px;justify-items:center}
84
+ .hero h1{font-size:var(--display);line-height:1;letter-spacing:-.03em;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.12)}
85
+ .hero h1 .soft{color:rgba(255,255,255,.55)}
86
+ .hero-sub{font-size:var(--text-xl);line-height:1.5;color:rgba(255,255,255,.94)}
87
+ .hero .badge{background:rgba(255,255,255,.9)}
88
+
89
+ /* floating screenshot */
90
+ .hero-shot{position:relative;z-index:2;width:min(64rem,100%);margin:-70px auto 0;background:#fff;border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:var(--shadow-xl);padding:20px}
91
+ .shot-row{display:flex;gap:16px;flex-wrap:wrap}
92
+ .shot-pane{flex:1;min-width:220px;background:linear-gradient(180deg,#fafaff,#f4f2fb);border-radius:var(--r-2xl);padding:22px;min-height:180px}
93
+
94
+ /* sections */
95
+ .section{padding:var(--section-y) 0}
96
+ .section-tint{background:var(--bg-section)}
97
+ .center-intro{text-align:center;display:grid;gap:16px;justify-items:center;margin-bottom:48px}
98
+ .section-title{font-size:var(--text-5xl);letter-spacing:-.025em}
99
+ .section-sub{font-size:var(--text-xl);color:var(--text-muted)}
100
+
101
+ /* cards */
102
+ .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
103
+ @media(max-width:820px){.grid-2{grid-template-columns:1fr}}
104
+ .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3xl);padding:32px;box-shadow:var(--shadow-card);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
105
+ .card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
106
+ .card h3{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
107
+ .card p{color:var(--text-muted);font-size:var(--text-lg)}
108
+ .card-media{margin-top:24px;background:var(--n-50);border:1px solid var(--border);border-radius:var(--r-2xl);padding:20px;display:flex;gap:12px;flex-wrap:wrap}
109
+
110
+ /* icon tiles + nodes */
111
+ .tile{width:40px;height:40px;border-radius:var(--r-xl);display:grid;place-items:center;font-size:18px;flex:none}
112
+ .tile-violet{background:var(--violet-tint);color:var(--violet)}.tile-green{background:var(--green-tint);color:var(--green)}
113
+ .tile-gold{background:var(--gold-tint2);color:var(--gold-700)}.tile-sky{background:var(--sky-tint);color:var(--sky)}.tile-coral{background:var(--coral-tint);color:var(--coral)}
114
+ .node{display:inline-flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:var(--r-2xl);padding:12px 16px;box-shadow:var(--shadow-sm)}
115
+ .node-title{font-weight:600;font-size:15px;color:var(--ink)}.node-sub{font-size:13px;color:var(--text-muted)}
116
+
117
+ /* logo cloud */
118
+ .logo-cloud{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:48px;margin-bottom:8px}
119
+ .logo{opacity:.5;filter:grayscale(1);font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--n-800);transition:opacity var(--dur) var(--ease)}
120
+ .logo:hover{opacity:.8}
121
+
122
+ /* stat cards */
123
+ .trust-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
124
+ @media(max-width:820px){.trust-wrap{grid-template-columns:1fr}}
125
+ .stat-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
126
+ .stat-card{display:grid;gap:12px}
127
+ .stat-head{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
128
+ .stat-num{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:700;letter-spacing:-.02em;color:var(--ink)}
129
+ .stars{color:var(--gold-500);font-size:20px;letter-spacing:2px}
130
+
131
+ /* integration grid */
132
+ .int-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:40px}
133
+ .int-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-2xl);padding:20px;box-shadow:var(--shadow-card);text-align:center}
134
+ .int-icons{display:flex;justify-content:center;gap:8px;margin-bottom:16px}
135
+ .int-icon{width:52px;height:52px;border-radius:var(--r-xl);background:#fff;border:1px solid var(--border);display:grid;place-items:center;box-shadow:var(--shadow-xs);font-size:22px}
136
+ .int-label{font-weight:600;color:var(--ink);font-size:15px}
137
+
138
+ /* footer */
139
+ .footer{background:var(--ink);color:var(--n-400);padding:80px var(--gutter) 40px}
140
+ .footer-inner{width:min(var(--container),100%);margin:0 auto}
141
+ .footer-top{display:grid;grid-template-columns:1.4fr 3fr;gap:40px;margin-bottom:40px}
142
+ @media(max-width:820px){.footer-top{grid-template-columns:1fr}}
143
+ .footer-brand{font-family:var(--font-display);font-weight:800;font-size:28px;color:var(--gold-500)}
144
+ .footer-tagline{color:var(--n-500);margin-top:8px}
145
+ .footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
146
+ @media(max-width:560px){.footer-cols{grid-template-columns:repeat(2,1fr)}}
147
+ .footer-col h4{color:var(--n-400);font-size:14px;font-weight:600;margin-bottom:14px;font-family:var(--font-body)}
148
+ .footer-col a{display:block;color:var(--n-300);font-size:15px;padding:6px 0;transition:color var(--dur) var(--ease)}
149
+ .footer-col a:hover{color:#fff}
150
+ .trust-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding-top:32px;border-top:1px solid #ffffff1a}
151
+ .trust-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-full);background:#ffffff0d;color:var(--n-400);font-size:14px}
152
+
153
+ :where(a,button,input,textarea):focus-visible{outline:none;box-shadow:var(--ring-gold)}
154
+ </style>
155
+ </head>
156
+ <body>
157
+
158
+ <!-- NAV -->
159
+ <header class="nav-wrap">
160
+ <nav class="nav glass">
161
+ <a class="brand" href="#">Fillout</a>
162
+ <ul class="nav-links">
163
+ <li><a href="#">Products <span class="caret">⌄</span></a></li>
164
+ <li><a href="#">Templates <span class="caret">⌄</span></a></li>
165
+ <li><a href="#">Integrations <span class="caret">⌄</span></a></li>
166
+ <li><a href="#">Pricing</a></li>
167
+ </ul>
168
+ <div class="nav-cta">
169
+ <a class="link-quiet" href="#">Log in</a>
170
+ <a class="btn btn-ink" href="#">Get started <span class="arrow">→</span></a>
171
+ </div>
172
+ </nav>
173
+ </header>
174
+
175
+ <!-- HERO -->
176
+ <section class="hero">
177
+ <div class="hero-art"></div>
178
+ <div class="hero-inner">
179
+ <span class="badge">📋 Forms by Zite</span>
180
+ <h1><span class="soft">Forms that</span><br>do it all</h1>
181
+ <p class="hero-sub">Make any form with Fillout,<br>the all-in-one form solution.</p>
182
+ <a class="btn btn-ink btn-lg" href="#">Get Started <span class="arrow">→</span></a>
183
+ </div>
184
+ </section>
185
+ <div class="hero-shot">
186
+ <div class="shot-row">
187
+ <div class="shot-pane" style="flex:.9">
188
+ <div class="node"><span class="tile tile-sky">📄</span><div><div class="node-title">Form submitted</div><div class="node-sub">Submission trigger</div></div></div>
189
+ </div>
190
+ <div class="shot-pane">
191
+ <div class="node"><span class="tile tile-violet">✦</span><div><div class="node-title">AI action</div><div class="node-sub">Qualify lead</div></div></div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+
196
+ <!-- LOGO CLOUD + TRUST -->
197
+ <section class="section">
198
+ <div class="container">
199
+ <div class="logo-cloud">
200
+ <span class="logo">TrueCar</span><span class="logo">BOMBAS</span><span class="logo">wayfair</span>
201
+ <span class="logo">The Athletic</span><span class="logo">HACK CLUB</span><span class="logo">HARVARD</span>
202
+ </div>
203
+ </div>
204
+ <div class="container" style="margin-top:56px">
205
+ <div class="trust-wrap">
206
+ <div>
207
+ <h2 style="font-size:var(--text-4xl)">100,000+ organizations trust Fillout for secure data intake</h2>
208
+ <p style="margin-top:16px;color:var(--text-muted);font-size:var(--text-lg)"><strong style="color:var(--ink)">Average rating of 4.8 out of 5</strong> from hundreds of reviews across G2 Business Reviews and Product Hunt.</p>
209
+ </div>
210
+ <div class="stat-row">
211
+ <div class="card stat-card"><div class="stat-head"><span class="tile tile-coral">G</span> Business reviews</div><div class="stat-num">5/5</div><div class="stars">★★★★★</div></div>
212
+ <div class="card stat-card"><div class="stat-head"><span class="tile tile-coral">P</span> Product Hunt</div><div class="stat-num">4.7/5</div><div class="stars">★★★★★</div></div>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ </section>
217
+
218
+ <!-- FEATURES -->
219
+ <section class="section section-tint">
220
+ <div class="container center-intro">
221
+ <span class="badge">🔥 Features</span>
222
+ <h2 class="section-title">It all starts with a form</h2>
223
+ <p class="section-sub">Build the exact form you need, in minutes.</p>
224
+ </div>
225
+ <div class="container grid-2">
226
+ <div class="card">
227
+ <h3>Create with drag-and-drop</h3>
228
+ <p>Choose from pre-built themes or create your own, with your fonts, logo, colors, custom CSS &amp; more.</p>
229
+ <div class="card-media">
230
+ <span class="tile tile-gold">Aa</span><span class="tile tile-sky">✉</span><span class="tile tile-violet">▦</span>
231
+ </div>
232
+ </div>
233
+ <div class="card">
234
+ <h3>Automate with smart forms</h3>
235
+ <p>Reduce manual work with intelligent routing.</p>
236
+ <div class="card-media" style="flex-direction:column;align-items:flex-start;gap:10px">
237
+ <div class="node"><span class="tile tile-violet">✦</span><div><div class="node-title">AI action</div><div class="node-sub">Qualify lead</div></div></div>
238
+ <div class="node"><span class="tile tile-green">⋔</span><div><div class="node-title">Branch</div><div class="node-sub">Based on priority</div></div></div>
239
+ </div>
240
+ </div>
241
+ </div>
242
+ </section>
243
+
244
+ <!-- INTEGRATIONS -->
245
+ <section class="section">
246
+ <div class="container center-intro">
247
+ <h2 class="section-title">Integrate with all your apps</h2>
248
+ <p class="section-sub">Get more done with the tools you already use.</p>
249
+ </div>
250
+ <div class="container">
251
+ <div class="int-grid">
252
+ <div class="int-card"><div class="int-icons"><span class="int-icon">🟠</span><span class="int-icon">☁️</span><span class="int-icon">🅿️</span></div><div class="int-label">Capture and manage leads</div></div>
253
+ <div class="int-card"><div class="int-icons"><span class="int-icon">💬</span><span class="int-icon">📨</span><span class="int-icon">🎮</span></div><div class="int-label">Get notified instantly</div></div>
254
+ <div class="int-card"><div class="int-icons"><span class="int-icon">🔷</span><span class="int-icon">📊</span><span class="int-icon">🟦</span></div><div class="int-label">Track lead conversions</div></div>
255
+ <div class="int-card"><div class="int-icons"><span class="int-icon">📁</span><span class="int-icon">📓</span><span class="int-icon">🟩</span></div><div class="int-label">Create or update records</div></div>
256
+ <div class="int-card"><div class="int-icons"><span class="int-icon">📅</span><span class="int-icon">📞</span><span class="int-icon">🗓️</span></div><div class="int-label">Book more meetings</div></div>
257
+ </div>
258
+ <div style="text-align:center;margin-top:40px"><a class="btn btn-ghost" href="#">View all integrations <span class="arrow">→</span></a></div>
259
+ </div>
260
+ </section>
261
+
262
+ <!-- CTA -->
263
+ <section class="section section-tint">
264
+ <div class="container center-intro" style="margin:0">
265
+ <h2 class="section-title">Make your first form in minutes</h2>
266
+ <a class="btn btn-gold btn-lg" href="#" style="margin-top:8px">Get started <span class="arrow">→</span></a>
267
+ </div>
268
+ </section>
269
+
270
+ <!-- FOOTER -->
271
+ <footer class="footer">
272
+ <div class="footer-inner">
273
+ <div class="footer-top">
274
+ <div>
275
+ <div class="footer-brand">Fillout</div>
276
+ <div class="footer-tagline">The all-in-one form solution</div>
277
+ </div>
278
+ <div class="footer-cols">
279
+ <div class="footer-col"><h4>General</h4><a href="#">Home</a><a href="#">Pricing</a><a href="#">Careers</a><a href="#">Blog</a></div>
280
+ <div class="footer-col"><h4>Product</h4><a href="#">Forms</a><a href="#">Scheduling</a><a href="#">Payments</a><a href="#">Workflows</a></div>
281
+ <div class="footer-col"><h4>AI tools</h4><a href="#">AI Form Builder</a><a href="#">AI Quiz Maker</a><a href="#">AI Survey Maker</a><a href="#">PDF to Form</a></div>
282
+ <div class="footer-col"><h4>Resources</h4><a href="#">Help Center</a><a href="#">Status</a><a href="#">About</a><a href="#">Compare</a></div>
283
+ </div>
284
+ </div>
285
+ <div class="trust-row">
286
+ <span class="trust-pill">🛡️ SOC II Type 2 Compliant</span>
287
+ <span class="trust-pill">🔒 256-bit AES Data encryption</span>
288
+ <span class="trust-pill">🎧 24/5 Support. Here if you need us</span>
289
+ </div>
290
+ </div>
291
+ </footer>
292
+
293
+ </body>
294
+ </html>