diff --git a/next.config.ts b/next.config.ts index 13a2dc6..025ca0d 100644 --- a/next.config.ts +++ b/next.config.ts @@ -2,6 +2,9 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { output: "standalone", + images: { + qualities: [75, 90, 95], + }, async redirects() { return [ { diff --git a/public/images/about_bg.png b/public/images/about_bg.png new file mode 100644 index 0000000..5cdfe3d Binary files /dev/null and b/public/images/about_bg.png differ diff --git a/public/images/meet_the_agents_bg.png b/public/images/meet_the_agents_bg.png new file mode 100644 index 0000000..0fb540d Binary files /dev/null and b/public/images/meet_the_agents_bg.png differ diff --git a/public/team/4.jpg b/public/team/4.jpg deleted file mode 100644 index 21b88b8..0000000 Binary files a/public/team/4.jpg and /dev/null differ diff --git a/public/team/4.png b/public/team/4.png new file mode 100644 index 0000000..3ffd5b0 Binary files /dev/null and b/public/team/4.png differ diff --git a/src/app/about_us/page.tsx b/src/app/about_us/page.tsx index 40ba68c..d3e6bba 100644 --- a/src/app/about_us/page.tsx +++ b/src/app/about_us/page.tsx @@ -32,23 +32,12 @@ export default function AboutUsPage() { position: 'relative', overflow: 'hidden', }}> {/* Background photo */} - +
{/* Accent blobs */}
- {/* Big ghost text */} -
LOYALY
@@ -102,53 +91,117 @@ export default function AboutUsPage() {
{[ { - label: 'Mission', emoji: '🎯', bg: 'linear-gradient(160deg, #ffffff 0%, #fdf4e2 100%)', textColor: '#171512', - border: 'rgba(244,190,40,0.45)', - pillBg: 'rgba(244,190,40,0.14)', pillText: '#8a5a14', pillBorder: 'rgba(244,190,40,0.5)', - orb1: 'rgba(244,190,40,0.20)', orb2: 'rgba(255,152,0,0.14)', - gfx: 'rgba(244,190,40,0.38)', + label: 'Mission', bg: 'linear-gradient(135deg, #111116 0%, #161622 100%)', textColor: 'rgba(255,255,255,0.6)', + border: 'rgba(244,190,40,0.18)', + titleColor: '#ffffff', + pillBg: '#f4be28', pillText: '#111116', pillBorder: 'none', + iconBorder: 'rgba(244,190,40,0.45)', iconGlow: 'rgba(244,190,40,0.25)', lineColor: '#f4be28', + heading: Our mission is simple., + orb1: 'rgba(244,190,40,0.08)', orb2: 'rgba(255,152,0,0.06)', + icon: ( + + + + + + + + ), body: 'Loyaly exists to close the gap between digital discovery and physical purchase. We give local stores the tools to compete, and give shoppers a reason to keep coming back.', }, { - label: 'Vision', emoji: '🔮', bg: 'linear-gradient(160deg, #fff7e2 0%, #ffe6a8 100%)', textColor: '#171512', - border: 'rgba(244,190,40,0.55)', - pillBg: '#f4be28', pillText: '#171512', pillBorder: 'rgba(201,150,15,0.6)', - orb1: 'rgba(255,255,255,0.7)', orb2: 'rgba(244,190,40,0.3)', - gfx: 'rgba(201,150,15,0.32)', + label: 'Vision', bg: 'linear-gradient(135deg, #ffd95a 0%, #f4be28 100%)', textColor: 'rgba(23,21,18,0.72)', + border: 'rgba(244,190,40,0.3)', + titleColor: '#171512', + pillBg: '#171512', pillText: '#ffd95a', pillBorder: 'none', + iconBorder: 'rgba(23,21,18,0.35)', iconGlow: 'rgba(23,21,18,0.06)', lineColor: '#171512', + heading: Our vision is bigger., + orb1: 'rgba(255,255,255,0.4)', orb2: 'rgba(244,190,40,0.18)', + icon: ( + + + + + + ), body: 'Empowering every neighbourhood, making exceptional in-store experiences and real Lyts accessible to all.', }, ].map((mv, i) => (
+ {/* SVG border drawing animation */} + + {/* Sharp core path */} + + {/* Animated background orbs (clipped to the card) */}
- {/* Pop-out corner sticker */} - {mv.emoji} +
+ {/* Left side: circular icon container */} +
+ {mv.icon} +
- {/* Tilted sticker-pill label */} - {mv.emoji} {mv.label} + {/* Right side: content stack */} +
+ {/* Badge */} + {mv.label} -

- {mv.body} -

+ {/* Heading */} +

{mv.heading}

+ + {/* Line separator */} +
+ + {/* Description */} +

{mv.body}

+
+
))} @@ -218,7 +271,7 @@ export default function AboutUsPage() { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6eb3d20..8e6543a 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -7,14 +7,14 @@ import BodyClassManager from '@/components/BodyClassManager'; import Preloader from '@/components/Preloader'; export const metadata: Metadata = { - title: 'Loyaly.AI | AI Powered Retail Intelligence', + title: 'Loyaly.AI | Offline Shopping. Online Intelligence.', description: - 'Loyaly.AI is an AI powered retail intelligence platform that turns every store visit into a loyalty opportunity. Understand customers, drive engagement, and grow revenue.', + 'Loyaly.AI is an offline shopping, online intelligence platform that turns every store visit into a loyalty opportunity. Understand customers, drive engagement, and grow revenue.', icons: { icon: '/favicon.ico', }, openGraph: { - title: 'Loyaly.AI | AI Powered Retail Intelligence', + title: 'Loyaly.AI | Offline Shopping. Online Intelligence.', description: 'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.', url: 'https://loyaly.ai', @@ -23,7 +23,7 @@ export const metadata: Metadata = { }, twitter: { card: 'summary_large_image', - title: 'Loyaly.AI | AI Powered Retail Intelligence', + title: 'Loyaly.AI | Offline Shopping. Online Intelligence.', description: 'Turn footfall into insight. Loyaly.AI uses AI to understand customer behaviour, personalise experiences, and maximise retail revenue.', }, diff --git a/src/app/solutions_page/page.tsx b/src/app/solutions_page/page.tsx index c1da28b..61ba936 100644 --- a/src/app/solutions_page/page.tsx +++ b/src/app/solutions_page/page.tsx @@ -102,23 +102,12 @@ export default function MeetTheCrewPage() { position: 'relative', overflow: 'hidden', }}> {/* Background photo */} - +
{/* Accent blobs */}
- {/* Big ghost text */} -
LOYALY
@@ -131,7 +120,7 @@ export default function MeetTheCrewPage() { Agents.

- The builders, thinkers, and retail obsessives behind Loyaly, working every day to make offline shopping as smart as online. + Four specialized AI agents working together to understand customers, optimize every interaction, and turn every visit into lasting loyalty.

diff --git a/src/app/use_cases/page.tsx b/src/app/use_cases/page.tsx index 522265f..8ce9f9a 100644 --- a/src/app/use_cases/page.tsx +++ b/src/app/use_cases/page.tsx @@ -17,43 +17,43 @@ const OUTCOMES = [ const CAPS = [ { - title: 'Merchant Campaign Platform', accent: '#7dd957', + title: 'Merchant Lyts Platform', accent: '#7dd957', bg: 'linear-gradient(140deg, #1d3f2b 0%, #0f2a1c 100%)', image: '/ai_agents/agent-1-c.png', icon: (<>), - desc: 'Register your store, upload products and inventory, then launch interactive promotional campaigns in minutes. Define maximum discounts per product and track performance in real time.', + desc: 'Launch Lyts campaigns in minutes. Add products, assign Lyts, create offers, and track customer engagement with a real-time merchant dashboard.', metrics: [ - { val: '5+', lbl: 'Game formats', icon: (<>) }, - { val: '1-click', lbl: 'Campaign setup', icon: (<>) }, + { val: '500+', lbl: 'Partner Stores', icon: (<>) }, + { val: '2 mins', lbl: 'Campaign Setup', icon: (<>) }, ], }, { - title: 'Game Based Discount Engine', accent: '#a78bfa', + title: 'Game Powered Lyts', accent: '#a78bfa', bg: 'linear-gradient(140deg, #2a2352 0%, #1a1838 100%)', image: '/ai_agents/agent-2-c.png', icon: (<>), - desc: 'Select a product, choose a game (Maze, Spin Wheel, Scratch Card, or Match Master) and set a maximum discount. Customers play once and discover their reward only after completing the game.', + desc: 'Powers Battery Challenges, Step Tracking, QR Check-ins, Spin Wheel, Scratch Cards, and personalized Lyts missions to increase engagement and customer retention.', metrics: [ - { val: '4×', lbl: 'Engagement lift', icon: (<>) }, - { val: '100%', lbl: 'Margin controlled', icon: () }, + { val: '6+', lbl: 'Game Formats', icon: (<>) }, + { val: '100%', lbl: 'Lyts Distribution', icon: () }, ], }, { - title: 'Smart Coupon System', accent: '#34d399', + title: 'Smart Lyts Engine', accent: '#34d399', bg: 'linear-gradient(140deg, #16704a 0%, #0d4d33 100%)', image: '/ai_agents/agent-4-c.png', icon: (), - desc: 'Generate daily surprise coupons through the Battery Challenge and other activities. Offer flat discounts, BOGO, percentage-off deals, festival specials, and brand promotions, fresh every day.', + desc: 'Automatically generate Lyts-based offers. Create percentage discounts, cashback, BOGO deals, festival campaigns, and personalized promotions that keep customers coming back.', metrics: [ - { val: '6', lbl: 'Coupon types', icon: (<>) }, - { val: 'Daily', lbl: 'Fresh surprises', icon: (<>) }, + { val: '10+', lbl: 'Offer Types', icon: (<>) }, + { val: 'Daily', lbl: 'Lyts Campaigns', icon: (<>) }, ], }, { - title: 'Footfall & Campaign Analytics', accent: '#ffd8a8', + title: 'AI Retail Intelligence', accent: '#ffd8a8', bg: 'linear-gradient(140deg, #ee7420 0%, #d1560a 100%)', image: '/ai_agents/agent-3-c.png', icon: (<>), - desc: 'Track which campaigns drove store visits, measure conversion rates, monitor repeat footfall, and optimize your promotional budget with a real-time analytics dashboard.', + desc: 'Monitor customer visits, product performance, Lyts activity, and campaign success with real-time AI insights. Turn every interaction into measurable business growth.', metrics: [ - { val: '98%', lbl: 'Count accuracy', icon: (<>) }, - { val: '<9ms', lbl: 'Real-time latency', icon: () }, + { val: '98%', lbl: 'Tracking Accuracy', icon: (<>) }, + { val: 'Real-time', lbl: 'AI Insights', icon: () }, ], }, ]; diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index e7790d6..875092b 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -128,7 +128,7 @@ export default function Footer() {

- AI powered retail intelligence that turns every walk in into a loyal customer. + Offline shopping. Online intelligence.

{SOCIALS.map(({ label, href, icon }) => ( @@ -150,9 +150,6 @@ export default function Footer() { {/* Nav columns */} {NAV.map(col => (
- {/* India retail market stats strip */} -
- {[ - { - val: '$2 Tn', label: 'Indian retail market by 2032, 26% CAGR', - icon: (<>), - }, - { - val: '5th', label: 'Largest retail destination globally', - icon: (<>), - }, - { - val: '10%', label: "Of India's GDP from retail", - icon: (<>), - }, - { - val: '12%', label: 'Of retail is organized, the rest is offline', - icon: (<>), - }, - { - val: '500M', label: "India's online shoppers by 2030, up from 250M", - icon: (<>), - }, - ].map((s, i) => ( -
-
- - - {s.icon} - - -
{s.val}
-
-
{s.label}
-
- ))} -
- {/* Grid wrapper */}
{/* Row 1: Red Stat Cards */} @@ -527,15 +475,6 @@ export default function ProblemSection({ isLoaded = true }: ProblemSectionProps) box-shadow: inset 0 1px 0 rgba(255,255,255,0.06); } - .problem-india-stat { - transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s cubic-bezier(0.22,1,0.36,1); - } - .problem-india-stat:hover { - border-color: rgba(239, 68, 68, 0.35); - box-shadow: 0 14px 30px -18px rgba(23,21,18,0.28); - transform: translateY(-3px); - } - .dark-bento-grid { display: grid; grid-template-columns: repeat(3, 1fr); @@ -592,7 +531,6 @@ export default function ProblemSection({ isLoaded = true }: ProblemSectionProps) #problem .problem-stats-row { grid-template-columns: 1fr !important; } #problem .dark-bento-grid { grid-template-columns: 1fr !important; } #problem .dark-bento-card-4 { grid-column: span 1; } - #problem .problem-india-stats { grid-template-columns: repeat(2, 1fr) !important; } } `} diff --git a/src/components/home/ProductsSection.tsx b/src/components/home/ProductsSection.tsx index 91bd27f..ebdc07a 100644 --- a/src/components/home/ProductsSection.tsx +++ b/src/components/home/ProductsSection.tsx @@ -653,7 +653,7 @@ export default function ProductsSection({ isLoaded = false }: ProductsSectionPro } .products-card { flex: 0 0 auto; - width: clamp(320px, 74vw, 880px); + width: clamp(320px, 90vw, 1280px); /* Fill the band between heading and progress bar, capped on huge screens */ height: min(740px, calc(100vh - var(--pt) - var(--pb))); } @@ -704,7 +704,7 @@ export default function ProductsSection({ isLoaded = false }: ProductsSectionPro } .products-track::-webkit-scrollbar { display: none; } .products-track { scrollbar-width: none; } - .products-card { height: auto; width: min(86vw, 460px); } + .products-card { height: auto; width: min(90vw, 520px); } .products-card { flex-direction: column !important; } .products-card-content { flex: 0 0 auto !important; } .products-card-visual { diff --git a/src/components/home/heroCarouselData.ts b/src/components/home/heroCarouselData.ts index 43842ff..348fa38 100644 --- a/src/components/home/heroCarouselData.ts +++ b/src/components/home/heroCarouselData.ts @@ -16,7 +16,7 @@ export interface HeroSlideData { export const HERO_SLIDES: HeroSlideData[] = [ { id: 'intro', - badge: 'AI-Powered Retail Intelligence', + badge: 'Offline Shopping. Online Intelligence.', headline: 'Turn Every Visit Into Loyalty', highlightWords: ['Loyalty'], description: diff --git a/src/components/use-cases/ProductsScrollSection.tsx b/src/components/use-cases/ProductsScrollSection.tsx index 3f23af2..8f77025 100644 --- a/src/components/use-cases/ProductsScrollSection.tsx +++ b/src/components/use-cases/ProductsScrollSection.tsx @@ -147,7 +147,7 @@ export default function ProductsScrollSection() {
Our Products

- AI Powered Retail Intelligence. + Offline Shopping. Online Intelligence.