10 Commits

Author SHA1 Message Date
6f561d8f50 Merge version_3 into main
Merge version_3 into main
2026-03-12 13:43:13 +00:00
b41daa976c Update src/app/page.tsx 2026-03-12 13:43:09 +00:00
c4917ffd79 Merge version_2 into main
Merge version_2 into main
2026-03-12 13:26:23 +00:00
91bcbf911f Update src/app/page.tsx 2026-03-12 13:26:19 +00:00
b38cdfe1f4 Merge version_2 into main
Merge version_2 into main
2026-03-12 13:25:58 +00:00
7d03911e04 Update src/app/styles/variables.css 2026-03-12 13:25:54 +00:00
65e610d0a9 Update src/app/styles/base.css 2026-03-12 13:25:54 +00:00
5f406d3888 Update src/app/page.tsx 2026-03-12 13:25:53 +00:00
719e69529f Merge version_1 into main
Merge version_1 into main
2026-03-12 13:07:03 +00:00
e9e6a67e6d Merge version_1 into main
Merge version_1 into main
2026-03-12 13:06:40 +00:00
3 changed files with 209 additions and 144 deletions

View File

@@ -10,7 +10,8 @@ import ContactText from "@/components/sections/contact/ContactText";
import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard"; import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard";
import PricingCardTwo from "@/components/sections/pricing/PricingCardTwo"; import PricingCardTwo from "@/components/sections/pricing/PricingCardTwo";
import FooterSimple from "@/components/sections/footer/FooterSimple"; import FooterSimple from "@/components/sections/footer/FooterSimple";
import { Database, Globe, Shield, Sparkles, Zap } from "lucide-react"; import RadialGradientBackground from "@/components/background/RadialGradientBackground";
import { Database, Globe, Shield, Sparkles, Zap, ArrowRight, Check } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
return ( return (
@@ -39,6 +40,13 @@ export default function LandingPage() {
</div> </div>
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="130% 130%"
position="50% 15%"
/>
<HeroBillboardRotatedCarousel <HeroBillboardRotatedCarousel
title="The investment analysis platform Europe's property market deserves." title="The investment analysis platform Europe's property market deserves."
description="Paste any European property listing URL. Get a full investment report in 60 seconds — net yield, tax breakdown, risk score, three scenarios." description="Paste any European property listing URL. Get a full investment report in 60 seconds — net yield, tax breakdown, risk score, three scenarios."
@@ -48,30 +56,38 @@ export default function LandingPage() {
buttons={[{ text: "Get early access →", href: "#waitlist" }]} buttons={[{ text: "Get early access →", href: "#waitlist" }]}
carouselItems={[ carouselItems={[
{ {
id: "1", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-using-trade-market-profit-data-screen-create-financial-investment-looking-stock-charts-statistics-male-broker-analyzing-hedge-hund-trend-forex-exchange_482257-39523.jpg?_wi=1", imageAlt: "Investment analysis dashboard showing metrics" id: "1", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-68ywkcgf.jpg?_wi=1", imageAlt: "Investment analysis dashboard showing metrics"
}, },
{ {
id: "2", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-using-trade-market-profit-data-screen-create-financial-investment-looking-stock-charts-statistics-male-broker-analyzing-hedge-hund-trend-forex-exchange_482257-39523.jpg?_wi=2", imageAlt: "Property investment report interface" id: "2", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-qj0y48af.jpg?_wi=1", imageAlt: "Property investment report interface"
}, },
{ {
id: "3", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-using-trade-market-profit-data-screen-create-financial-investment-looking-stock-charts-statistics-male-broker-analyzing-hedge-hund-trend-forex-exchange_482257-39523.jpg?_wi=3", imageAlt: "Real estate market analysis dashboard" id: "3", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-rn2r740d.jpg?_wi=1", imageAlt: "Real estate market analysis dashboard"
}, },
{ {
id: "4", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-using-trade-market-profit-data-screen-create-financial-investment-looking-stock-charts-statistics-male-broker-analyzing-hedge-hund-trend-forex-exchange_482257-39523.jpg?_wi=4", imageAlt: "Investment scenario comparison view" id: "4", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-yb3ch9ok.png?_wi=1", imageAlt: "Investment scenario comparison view"
}, },
{ {
id: "5", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-using-trade-market-profit-data-screen-create-financial-investment-looking-stock-charts-statistics-male-broker-analyzing-hedge-hund-trend-forex-exchange_482257-39523.jpg?_wi=5", imageAlt: "Tax breakdown and yield calculation" id: "5", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-68ywkcgf.jpg?_wi=2", imageAlt: "Tax breakdown and yield calculation"
}, },
{ {
id: "6", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-using-trade-market-profit-data-screen-create-financial-investment-looking-stock-charts-statistics-male-broker-analyzing-hedge-hund-trend-forex-exchange_482257-39523.jpg?_wi=6", imageAlt: "Risk assessment and scoring interface" id: "6", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-qj0y48af.jpg?_wi=2", imageAlt: "Risk assessment and scoring interface"
} }
]} ]}
autoPlay={true} autoPlay={true}
autoPlayInterval={5000} autoPlayInterval={5000}
/> />
</div> </div>
</div>
<div id="social-proof" data-section="social-proof"> <div id="social-proof" data-section="social-proof">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="140% 140%"
position="50% 20%"
/>
<SocialProofOne <SocialProofOne
title="Trusted by investors across Europe" title="Trusted by investors across Europe"
description="Join hundreds of property investors already using Terrivio" description="Join hundreds of property investors already using Terrivio"
@@ -84,8 +100,16 @@ export default function LandingPage() {
showCard={true} showCard={true}
/> />
</div> </div>
</div>
<div id="metrics" data-section="metrics"> <div id="metrics" data-section="metrics">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="135% 135%"
position="50% 25%"
/>
<MetricCardThree <MetricCardThree
title="Why Terrivio Stands Out" title="Why Terrivio Stands Out"
description="Powerful metrics that drive investor confidence" description="Powerful metrics that drive investor confidence"
@@ -100,13 +124,21 @@ export default function LandingPage() {
]} ]}
/> />
</div> </div>
</div>
<div id="features" data-section="features"> <div id="features" data-section="features">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="130% 130%"
position="50% 30%"
/>
<FeatureCardTwentyOne <FeatureCardTwentyOne
title="From URL to investment decision." title="From URL to investment decision."
description="No account needed. No spreadsheets. No guesswork." description="No account needed. No spreadsheets. No guesswork."
tag="HOW IT WORKS" tag="HOW IT WORKS"
imageSrc="http://img.b2bpic.net/free-vector/elegant-web-element-collection_23-2147543852.jpg?_wi=1" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-rn2r740d.jpg?_wi=2"
imageAlt="Three-step process visualization" imageAlt="Three-step process visualization"
mediaAnimation="slide-up" mediaAnimation="slide-up"
useInvertedBackground={false} useInvertedBackground={false}
@@ -124,8 +156,16 @@ export default function LandingPage() {
]} ]}
/> />
</div> </div>
</div>
<div id="demo" data-section="demo"> <div id="demo" data-section="demo">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="125% 125%"
position="50% 35%"
/>
<ContactText <ContactText
text="Try it yourself. Paste any real listing URL. No account needed." text="Try it yourself. Paste any real listing URL. No account needed."
animationType="reveal-blur" animationType="reveal-blur"
@@ -134,22 +174,38 @@ export default function LandingPage() {
buttons={[{ text: "Analyze →", href: "#analyze" }]} buttons={[{ text: "Analyze →", href: "#analyze" }]}
/> />
</div> </div>
</div>
<div id="markets" data-section="markets"> <div id="markets" data-section="markets">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="140% 140%"
position="50% 40%"
/>
<TestimonialAboutCard <TestimonialAboutCard
tag="COVERAGE" tag="COVERAGE"
title="13 European markets." title="13 European markets."
description="Local expertise in every region" description="Local expertise in every region"
subdescription="Local tax rules, STR regulations, rental yield data and price history — built in for every market." subdescription="Local tax rules, STR regulations, rental yield data and price history — built in for every market."
icon={Globe} icon={Globe}
imageSrc="http://img.b2bpic.net/free-vector/elegant-web-element-collection_23-2147543852.jpg?_wi=2" imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AqVgQeR7OoU3XeDyP8qH8ouFzg/uploaded-1773321908022-yb3ch9ok.png?_wi=2"
imageAlt="European market map coverage" imageAlt="European market map coverage"
mediaAnimation="slide-up" mediaAnimation="slide-up"
useInvertedBackground={false} useInvertedBackground={false}
/> />
</div> </div>
</div>
<div id="pricing" data-section="pricing"> <div id="pricing" data-section="pricing">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="135% 135%"
position="50% 45%"
/>
<PricingCardTwo <PricingCardTwo
title="Simple, transparent pricing." title="Simple, transparent pricing."
description="Founding Member pricing locked in at signup. Price increases after launch." description="Founding Member pricing locked in at signup. Price increases after launch."
@@ -182,12 +238,20 @@ export default function LandingPage() {
]} ]}
/> />
</div> </div>
</div>
<div id="final-cta" data-section="final-cta"> <div id="final-cta" data-section="final-cta">
<div className="relative">
<RadialGradientBackground
centerColor="var(--background)"
edgeColor="var(--color-background-accent)"
size="130% 130%"
position="50% 50%"
/>
<ContactText <ContactText
text="847 investors are already waiting. Join them. Founding Member pricing is limited." text="847 investors are already waiting. Join them. Founding Member pricing is limited."
animationType="entrance-slide" animationType="entrance-slide"
background={{ variant: "radial-gradient" }} background={{ variant: "animated-grid" }}
useInvertedBackground={true} useInvertedBackground={true}
buttons={[ buttons={[
{ text: "Join waitlist", href: "#waitlist" }, { text: "Join waitlist", href: "#waitlist" },
@@ -195,6 +259,7 @@ export default function LandingPage() {
]} ]}
/> />
</div> </div>
</div>
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterSimple <FooterSimple

View File

@@ -11,7 +11,7 @@ html {
body { body {
background-color: var(--background); background-color: var(--background);
color: var(--foreground); color: var(--foreground);
font-family: var(--font-inter-tight), sans-serif; font-family: var(--font-sf-pro-display), sans-serif;
position: relative; position: relative;
min-height: 100vh; min-height: 100vh;
overscroll-behavior: none; overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-inter-tight), sans-serif; font-family: var(--font-sf-pro-display), sans-serif;
} }

View File

@@ -10,15 +10,15 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #f7f6f7; --background: #0a0a0a;
--card: #ffffff; --card: #1a1a1a;
--foreground: #25190c; --foreground: #ffffff;
--primary-cta: #ff6207; --primary-cta: #ff6b35;
--primary-cta-text: #f7f6f7; --primary-cta-text: #f7f6f7;
--secondary-cta: #ffffff; --secondary-cta: #0a0a0a;
--secondary-cta-text: #25190c; --secondary-cta-text: #25190c;
--accent: #ffce93; --accent: #1f7cff;
--background-accent: #e8cfa8; --background-accent: #ff6b35;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);