Evergreen Finance
Build a "Kova" fintech landing page in React + Vite + Tailwind CSS + Framer Motion + Lucide React. The page has 3 sections: a full-screen Hero with a boomerang video background, a Testimonial section, and a Features section. Use the exact specifications below. Do NOT use purple/indigo colors anywhere.
FONTS
Load these two web fonts in index.html via <link> tags:
https://db.onlinewebfonts.com/c/53077f9a3eee9c479d37d6af20394ded?family=Cooper+BT+W01+Lighthttps://db.onlinewebfonts.com/c/5ade3423145f3b9f7031574333ca0b73?family=Cooper+BT+W01+Medium
Define two utility classes in your CSS:
.font-cooper—font-family: 'Cooper BT W01 Light', 'Georgia', serif;.font-cooper-medium—font-family: 'Cooper BT W01 Medium', 'Cooper BT W01 Light', 'Georgia', serif; font-weight: 500;
COLOR PALETTE
- Primary dark green:
#08150C - Hover dark green:
#1a2e1f - Warm cream background:
#FDF5EB - Light beige card:
#EBE4DC - Inner card beige:
#F4F1EC - Donut chart colors:
#C46B2D,#7A8C3E,#A8B87A,#B8AFA4 - Body/text: stone-600, stone-700, stone-800 (Tailwind)
- Accent greens: emerald-400, emerald-500 (Tailwind)
ANIMATIONS (FadeUp Component)
Create a reusable <FadeUp> component using Framer Motion with two modes:
immediate(prop): Animates on mount usinganimate="visible"— used for Hero elements.- Default (scroll-triggered): Uses
whileInView="visible"withviewport={{ once: true, margin: '-60px' }}— used for Testimonial and Features sections.
Variants:
hidden:{ opacity: 0, y: 24, filter: 'blur(8px)' }visible:{ opacity: 1, y: 0, filter: 'blur(0px)' }- Transition:
{ duration: 0.7, delay: [configurable], ease: [0.25, 0.1, 0.25, 1] }
Props: children, delay (default 0), className, immediate (default false).
SECTION 1: HERO (full viewport height)
Background — Boomerang Video
Create a <BoomerangVideoBg> component that:
- Loads this video (muted, playsInline, crossOrigin="anonymous"):
https://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260517_070729_32a7eb4e-d6e2-4571-badc-91b4dab1ecbe.mp4 - Captures every frame into offscreen canvas elements (max width 960px) as the video plays through once using
requestVideoFrameCallback(with arequestAnimationFramefallback). - After the video ends, plays back captured frames in a forward/reverse boomerang loop on a visible
<canvas>at 30fps. - Wraps everything in
absolute inset-0 w-full h-full scale-[1.08] origin-center. - Shows the
<video>while capturing, then swaps to the<canvas>once frames are ready.
Navbar (FadeUp delay=0, immediate)
- Flex row,
justify-between, paddingpx-5 sm:px-10 lg:px-16 py-5 - Left: Brand name "Kova" in
font-cooper text-xl sm:text-2xl text-[#08150C] tracking-tight - Center (hidden on mobile,
hidden md:flex): Links "Explore", "Pricing" (active with underline bar), "Perks", "Reach" —text-sm text-stone-700, hover totext-[#08150C]. Active link hasfont-medium text-[#08150C]withabsolute -bottom-1 left-0 right-0 h-0.5 bg-[#08150C] rounded-fullunderline span. - Right desktop: "Get Started" button —
bg-[#08150C] text-white text-sm font-medium px-5 py-2.5 rounded-xl hover:bg-[#1a2e1f] - Right mobile: Hamburger (Menu/X icons from Lucide, size 22), toggles a dropdown menu with same links + button, styled
bg-white/95 backdrop-blur-md shadow-lg
Hero Content (centered, flex-col items-center text-center)
px-5 sm:px-10 pt-8 sm:pt-14 pb-8 sm:pb-14- Heading (FadeUp delay=0.1, immediate):
font-cooper text-[2.2rem] sm:text-5xl md:text-6xl lg:text-7xl text-[#08150C] leading-tight max-w-5xl tracking-tight— Text: "Own your money and build the wealth you deserve" - Subtext (FadeUp delay=0.25, immediate):
mt-4 sm:mt-5 text-sm sm:text-base text-stone-600 max-w-sm sm:max-w-md leading-relaxed— Text: "Step into a smarter way to bank, right from your pocket. Kova gives you instant control over your money, wherever you are." - CTA Buttons (FadeUp delay=0.4, immediate): Two buttons in
flex-col sm:flex-row gap-3:- "Watch 30s Demo" — white/80 backdrop-blur, border stone-200, Play icon (size 14, fill-stone-800), rounded-xl
- "Get the App" — bg-[#08150C] text-white, Download icon (size 14), rounded-xl
Dashboard Cards (bottom of hero, FadeUp immediate)
Three cards in a flex row (items-end justify-center gap-2 sm:gap-4), outer two hidden on mobile (hidden sm:block):
- SavingsCard (delay=0.55, w-44 sm:w-64): White/95 backdrop-blur rounded-2xl, shows "Savings" label, "+25%" badge, "+12%" badge, an SVG line chart (green polyline with gradient fill), month labels Jan-Apr.
- OthersCard (delay=0.65, w-44 sm:w-72): "Others" header with "Monthly" dropdown pill, three percentage stats (78% Groceries, 43% Entertain., 23% Transport), bar chart (12 bars, 5th bar orange
#f97316, rest gray#d1d5db). - BillPayCard (delay=0.75, w-44 sm:w-64): "Bill Pay" header with "Monthly" dropdown pill, "-8%" red badge, bar chart (12 bars, 7th bar dark
#08150C, rest light gray#e5e7eb), month labels.
SECTION 2: TESTIMONIAL
Background: bg-[#FDF5EB] py-14 sm:py-20 px-5 sm:px-10 lg:px-20
Layout: max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-[3fr_2fr] gap-10 md:gap-16 items-center
Left Column (scroll-animated FadeUp, staggered delays 0 through 0.4):
- Heading (delay=0):
font-cooper-medium text-2xl sm:text-3xl text-[#08150C] leading-snug mb-6 sm:mb-8— "Trusted by ambitious, fast-moving teams" - Company badge (delay=0.1): Dark square icon "A" (
w-7 h-7 rounded-md bg-[#08150C]) + "Arcvex" text - Quote (delay=0.2):
font-cooper text-stone-700 text-lg sm:text-xl md:text-2xl leading-relaxed mb-5 sm:mb-6— "With Kova, I have full visibility into our team's spending in real time. It feels like having a sharp financial advisor available at every hour, helping us stay on budget and make wiser calls." - Attribution (delay=0.3): "Maya Reeves" (text-sm font-semibold) + "Director, Arcvex" (text-xs text-stone-500)
- Button (delay=0.4): "All Stories" with arrow SVG icon, same dark button style
Right Column (FadeUp delay=0.15, scroll-triggered):
- A looping muted autoplay video:
https://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260517_074029_c7a854bd-2d6e-4b62-96b3-ae8c16311e44.mp4 - Styling:
w-full rounded-2xl object-cover aspect-square, wrapped inmax-w-xs sm:max-w-sm
SECTION 3: FEATURES
Background: bg-[#FDF5EB] py-14 sm:py-20 px-5 sm:px-10 lg:px-20
Layout: max-w-7xl mx-auto
Header Row (scroll-animated):
- Heading (FadeUp delay=0):
font-cooper-medium text-2xl sm:text-3xl md:text-4xl text-[#08150C] leading-snug— "Designed to sharpen every decision" - Button (FadeUp delay=0.1): "Watch Demo" with Play icon (size 13, fill-white), same dark button style
Cards Grid: grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4
Each card is aspect-[3/4] rounded-2xl overflow-hidden, scroll-animated with staggered delays (0.05, 0.15, 0.25, 0.35):
Card 1 — Smart Budgeting (delay=0.05):
- Background image (absolute, object-cover):
https://images.higgs.ai/?default=1&output=webp&url=https%3A%2F%2Fd8j0ntlcm91z4.cloudfront.net%2Fuser_38xzZboKViGWJOttwIXH07lWA1P%2Fhf_20260517_061249_f20dfeda-1033-45ce-a3ee-070965599cbf.png&w=1280&q=85 - Gradient overlay:
bg-gradient-to-t from-[#08150C]/80 via-[#08150C]/20 to-transparent - Top label: Sparkles icon (Lucide, size 16, white) + "Smart Budgeting" in white text-sm font-medium
- Bottom text: "Let AI reshape how you plan your spending. Kova adapts to your..." in
text-white/80 text-sm sm:text-base
Card 2 — Bank-Grade Security (delay=0.15):
- Background image:
https://images.higgs.ai/?default=1&output=webp&url=https%3A%2F%2Fd8j0ntlcm91z4.cloudfront.net%2Fuser_38xzZboKViGWJOttwIXH07lWA1P%2Fhf_20260517_061305_db631f5f-185f-4fda-a7a8-1dd7359ef2ea.png&w=1280&q=85 - Same gradient overlay
- Top label: ShieldCheck icon (Lucide, size 16, white) + "Bank-Grade Security"
- Bottom text: "Keep your money safe with end-to-end encryption, live fraud alerts, and two-factor auth..."
Card 3 — Spend Insights (delay=0.25):
- NO background image. Solid background
#EBE4DC, withp-5 - Top label: PieChart icon (Lucide, size 16, text-stone-700) + "Spend Insights" in
text-stone-700 text-sm font-medium - Inner container:
rounded-2xl p-4with background#F4F1EC, centered content:- "Monthly Spend" title (text-sm sm:text-base font-semibold text-stone-800)
- "1 Apr – 30 May 2026" subtitle (text-xs sm:text-sm text-stone-500)
- Donut chart (SVG, viewBox="0 0 36 36",
-rotate-90): 4 colored arcs using strokeDasharray/strokeDashoffset on circles (r=14, strokeWidth=5). Colors:#C46B2D(26.4/61.56),#7A8C3E(22/65.96, offset -26.4),#A8B87A(17.6/70.36, offset -48.4),#B8AFA4(22/65.96, offset -66) - Center overlay: "50%" bold + "of budget" small text
Card 4 — Wealth Building (delay=0.35):
- Background image:
https://images.higgs.ai/?default=1&output=webp&url=https%3A%2F%2Fd8j0ntlcm91z4.cloudfront.net%2Fuser_38xzZboKViGWJOttwIXH07lWA1P%2Fhf_20260517_061316_50e651f8-02d0-4add-9ddb-7d81d15ac02e.png&w=1280&q=85 - Same gradient overlay
- Top label: TrendingUp icon (Lucide, size 16, white) + "Wealth Building"
- Bottom text: "Grow your net worth with tools that help you set targets, monitor gains, and act..."
DEPENDENCIES
{
"framer-motion": "^12.38.0",
"lucide-react": "^0.344.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
}
Dev: Vite, Tailwind CSS 3, TypeScript, PostCSS, Autoprefixer.
GLOBAL CSS (index.css)
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; overflow-x: hidden; }
}
.font-cooper {
font-family: 'Cooper BT W01 Light', 'Georgia', serif;
}
.font-cooper-medium {
font-family: 'Cooper BT W01 Medium', 'Cooper BT W01 Light', 'Georgia', serif;
font-weight: 500;
}
RESPONSIVE BEHAVIOR
- Mobile-first. Cards stack on small screens (1 col), 2 cols at
sm, 4 cols atlg. - Hero dashboard cards: outer two hidden below
sm. - Nav links/CTA hidden below
md, replaced by hamburger menu. - All text sizes step up at
smandmdbreakpoints. - Testimonial grid is single column on mobile,
3fr 2fratmd.
KEY IMPLEMENTATION NOTES
- The entire page background is white for the hero (video fills it) and
#FDF5EBfor the lower two sections. - All buttons use
rounded-xl(not full pill). - The BoomerangVideoBg uses
scale-[1.08]to prevent edge gaps during playback. - No page scroll on the hero (
min-h-screen overflow-hidden). - The hero content uses
flex-1 flex flex-col justify-betweento push cards to the bottom.