diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx index b39f9a2..82bb612 100644 --- a/src/components/layout/Header.tsx +++ b/src/components/layout/Header.tsx @@ -35,7 +35,7 @@ export const Header = () => { isScrolled ? 'bg-mist/95 shadow-lg backdrop-blur-sm' : 'bg-transparent', )} > -
+
{ to={to} className={({ isActive }) => cn( - 'text-sm font-medium uppercase tracking-wide text-slate-500 transition-colors duration-300', - isActive && 'text-brand-600', + 'text-sm font-medium uppercase tracking-wide text-white transition-colors duration-300 hover:text-white/80', + isActive && 'text-white', ) } > @@ -104,15 +104,15 @@ export const Header = () => { transition={{ duration: 0.25, ease: 'easeOut' }} className="border-t border-slate-100 bg-mist/95 px-6 py-4 shadow-lg md:hidden" > -
+
{navItems.map(({ label, to }) => ( cn( - 'text-base font-medium uppercase tracking-wide text-slate-600', - isActive && 'text-brand-700', + 'text-base font-medium uppercase tracking-wide text-white transition-colors duration-300', + isActive && 'text-white', ) } > diff --git a/src/pages/about/components/AboutHero.tsx b/src/pages/about/components/AboutHero.tsx index 73d12ce..c699f17 100644 --- a/src/pages/about/components/AboutHero.tsx +++ b/src/pages/about/components/AboutHero.tsx @@ -16,7 +16,7 @@ export const AboutHero = () => { transition={{ duration: 0.6, ease: 'easeOut' }} className="relative z-10 px-6 py-20 sm:px-10 lg:px-16 lg:py-24" > -

+

About GeoMind

diff --git a/src/pages/home/HomePage.tsx b/src/pages/home/HomePage.tsx index a009fb0..0899d2d 100644 --- a/src/pages/home/HomePage.tsx +++ b/src/pages/home/HomePage.tsx @@ -3,54 +3,92 @@ import { ScrollLockedSection } from './components/ScrollLockedSection'; import { CtaSection } from './components/CtaSection'; import { FooterSection } from './components/FooterSection'; +const highlightTextClass = 'text-brand-500'; + const sections = [ { - id: 'deploy', - eyebrow: 'Deploy', - title: 'Launch seamlessly across your environments.', + id: 'datacenter-economy', + eyebrow: 'Datacenter Economy', + title: ( + <> + The Datacenter Economy,{' '} + Decentralized + + ), description: - 'Use this space to outline the deployment story. Highlight speed, reliability, or any differentiators that matter for your product rollout.', + 'Physical infrastructure meets profitable capacity. Deploy hardware, join the grid, earn from day one.', }, { - id: 'plug_play', - eyebrow: 'Plug & Play', - title: 'Connect data sources without orchestration headaches.', + id: 'deploy-anywhere', + eyebrow: 'Deployment Tiers', + title: ( + <> + Deploy Anywhere, Any Scale + + ), description: - 'Describe how integrations work and communicate the ease of getting started. Keep the copy short and scannable.', + 'Tier-H for homes and communities. Tier-S for enterprises and unused commercial space. Same economics, different scale.', }, { - id: 'slice', - eyebrow: 'Slice', - title: 'Break complex geospatial datasets into digestible layers.', + id: 'autonomous-stack', + eyebrow: 'Autonomous Stack', + title: ( + <> + Five Primitives, Zero Dependencies + + ), description: - 'Talk through the slicing concept in a sentence or two. This is placeholder text while the final story is drafted.', + 'Hardware ships with OS, Compute, Storage, Network, and GPU built-in. Fully autonomous operation eliminates vendor lock-in completely.', }, { - id: 'global', - eyebrow: 'Global', - title: 'Stay synchronized across every region you operate in.', + id: 'capacity-marketplace', + eyebrow: 'Marketplace', + title: ( + <> + Local Hardware, Global Liquidity + + ), description: - 'Explain the global coverage or synchronization narrative you want to share. Replace this block with final messaging later.', + 'The OS divides capacity into tradeable slices. Use what you need. Sell idle capacity automatically. Access scales instantly.', }, { - id: 'profit', - eyebrow: 'Profit', - title: 'Make the commercial case with defensible metrics.', + id: 'dual-revenue', + eyebrow: 'Revenue Streams', + title: ( + <> + Earn While You Operate + + ), description: - 'Use these lines to tease the ROI conversation. Mention efficiency, cost savings, or other proof points once they are ready.', + 'Run your workloads during business hours. Rent excess capacity 24/7. Infrastructure becomes an income-generating asset, not a cost center.', }, { - id: 'usecases', - eyebrow: 'Use Cases', - title: 'Show how teams activate the platform day-to-day.', + id: 'economic-advantage', + eyebrow: 'Economics', + title: ( + <> + Lower Costs, Higher Margins + + ), description: - 'Imagine this section as a carousel or story. For now, it is a placeholder where future customer narratives will land.', + 'Minimal datacenter build costs. Energy-efficient autonomous operation. No enterprise maintenance overhead. Math works from day one.', + }, + { + id: 'instant-demand', + eyebrow: 'Demand', + title: ( + <> + Built-In Customer Base + + ), + description: + 'Applications already consume capacity from the grid. Deploy hardware, connect to marketplace, start earning. No customer acquisition needed.', }, ]; export const HomePage = () => { return ( -
+
{sections.map((section) => ( diff --git a/src/pages/home/components/CtaSection.tsx b/src/pages/home/components/CtaSection.tsx index 11d0183..e9b6963 100644 --- a/src/pages/home/components/CtaSection.tsx +++ b/src/pages/home/components/CtaSection.tsx @@ -2,14 +2,14 @@ import { motion } from 'framer-motion'; export const CtaSection = () => { return ( -
+
Ready when you are @@ -18,7 +18,7 @@ export const CtaSection = () => { whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin: '-20%' }} transition={{ duration: 0.7, ease: 'easeOut', delay: 0.15 }} - className="text-4xl font-medium leading-tight text-ink sm:text-5xl" + className="text-4xl font-medium leading-tight text-white sm:text-5xl" > Drop in your call to action headline and invite people forward. @@ -27,7 +27,7 @@ export const CtaSection = () => { whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin: '-20%' }} transition={{ duration: 0.7, ease: 'easeOut', delay: 0.25 }} - className="max-w-2xl text-lg text-ink/70" + className="max-w-2xl text-lg text-white/70" > Use this block to reinforce the value proposition and give your visitor a clear next step. Consider pairing it with a lead capture form or direct contact pathway later. @@ -38,7 +38,7 @@ export const CtaSection = () => { whileInView={{ opacity: 1, y: 0 }} viewport={{ once: true, margin: '-20%' }} transition={{ duration: 0.6, ease: 'easeOut', delay: 0.35 }} - className="rounded-full border border-ink/10 bg-ink px-10 py-4 text-sm font-semibold uppercase tracking-[0.35em] text-mist transition-transform duration-300 hover:-translate-y-0.5 hover:shadow-[0_16px_36px_-24px_rgba(0,0,0,0.65)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ink/40 focus-visible:ring-offset-2 focus-visible:ring-offset-mist" + className="rounded-full border border-white/20 bg-white px-10 py-4 text-sm font-semibold uppercase tracking-[0.35em] text-black transition-transform duration-300 hover:-translate-y-0.5 hover:bg-white/90 hover:shadow-[0_16px_36px_-24px_rgba(0,0,0,0.65)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40 focus-visible:ring-offset-2 focus-visible:ring-offset-black" > Placeholder CTA diff --git a/src/pages/home/components/FooterSection.tsx b/src/pages/home/components/FooterSection.tsx index cac518c..69149aa 100644 --- a/src/pages/home/components/FooterSection.tsx +++ b/src/pages/home/components/FooterSection.tsx @@ -10,37 +10,37 @@ export const FooterSection = () => { const year = new Date().getFullYear(); return ( -