Spaces:
Sleeping
Sleeping
File size: 21,586 Bytes
1ce59e0 b8b3edf 1ce59e0 24c58d8 1ce59e0 b8b3edf 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 b8b3edf 24c58d8 b8b3edf 24c58d8 b8b3edf 24c58d8 b8b3edf 24c58d8 b8b3edf 24c58d8 b8b3edf 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 b8b3edf 24c58d8 1ce59e0 b8b3edf 1ce59e0 24c58d8 b8b3edf 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 b8b3edf 24c58d8 b8b3edf 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 b8b3edf 24c58d8 b8b3edf 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 b8b3edf 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 1ce59e0 24c58d8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 | import React, { useState, useEffect } from 'react';
import { useNavigate, Link } from 'react-router-dom';
import {
Cpu, Sparkles, ArrowRight, Loader2, ChevronDown,
ShieldCheck, Globe, Activity, Layers, Database, Lock, Eye, Building2, BarChart3, Radio, RefreshCw,
BrainCircuit, Network, Server, Fingerprint, Key, Wallet, FileText, Zap,
ChevronLeft, GitPullRequest, Box, Code, ChevronRight, Shield, MessageSquare, Plus, Info,
ArrowUpRight, FileCode, Terminal, ArrowRightLeft, Bitcoin
} from 'lucide-react';
import { apiClient } from '../services/api';
// Landing Page Components
import NexusNode from './landing/NexusNode';
import IntelligenceAlpha from './landing/IntelligenceAlpha';
import SystemFabric from './landing/SystemFabric';
import RegistryVault from './landing/RegistryVault';
import PrivacyManifesto from './landing/PrivacyManifesto';
import AssetFoundry from './landing/AssetFoundry';
import QuantumCompute from './landing/QuantumCompute';
import LiquidityMesh from './landing/LiquidityMesh';
import EncryptionProtocol from './landing/EncryptionProtocol';
import OracleAuthority from './landing/OracleAuthority';
const FEATURE_CARDS = [
{ id: 1, title: "Neural Parity", desc: "Real-time ledger consensus across 1,200 nodes with zero-drift synchronization.", icon: Fingerprint, color: "blue", img: "https://images.unsplash.com/photo-1639762681485-074b7f938ba0?q=80&w=2832&auto=format&fit=crop" },
{ id: 2, title: "Quantum Oracle", desc: "Predictive treasury drift detection using qubit-stabilized neural forecasting models.", icon: Cpu, color: "purple", img: "https://images.unsplash.com/photo-1451187580459-43490279c0fa?q=80&w=2872&auto=format&fit=crop" },
{ id: 3, title: "Liquidity Mesh", desc: "High-velocity disbursement fabrics optimized for sub-millisecond M2M settlement.", icon: Network, color: "emerald", img: "https://images.unsplash.com/photo-1614850523296-d8c1af93d400?q=80&w=2570&auto=format&fit=crop" },
{ id: 4, title: "Sovereign ID", desc: "Encapsulated identity vault utilizing RSA-OAEP-4096 and rotating high-entropy seeds.", icon: Lock, color: "rose", img: "https://images.unsplash.com/photo-1558494949-ef010cbdcc51?q=80&w=2546&auto=format&fit=crop" },
{ id: 5, title: "Foundry Sync", desc: "Global distribution node Map with proximity-optimized gateway handshakes.", icon: Globe, color: "cyan", img: "https://images.unsplash.com/photo-1484417894907-623942c8ee29?q=80&w=2832&auto=format&fit=crop" }
];
const Landing: React.FC = () => {
const navigate = useNavigate();
const [isDemoLoading, setIsDemoLoading] = useState(false);
const [scrollY, setScrollY] = useState(0);
const [activeFeatureIndex, setActiveFeatureIndex] = useState(0);
useEffect(() => {
const handleScroll = () => setScrollY(window.scrollY);
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, []);
const handleDemoAccess = async () => {
if (isDemoLoading) return;
setIsDemoLoading(true);
try {
const { success } = await apiClient.auth.login('alex', 'password123');
if (success) {
window.dispatchEvent(new Event('auth-update'));
navigate('/overview');
}
} catch (err) {
console.error("Handshake failed.");
} finally {
setIsDemoLoading(false);
}
};
const nextFeature = () => setActiveFeatureIndex(p => (p + 1) % FEATURE_CARDS.length);
const prevFeature = () => setActiveFeatureIndex(p => (p - 1 + FEATURE_CARDS.length) % FEATURE_CARDS.length);
return (
<div className="min-h-screen bg-[#020202] text-white font-sans overflow-x-hidden relative selection:bg-blue-600/30 selection:text-white">
{/* Dynamic Backgrounds */}
<div className="fixed inset-0 z-0 pointer-events-none">
<div className="absolute inset-0 bg-[radial-gradient(circle_at_50%_0%,_#1e1b4b_0%,_transparent_60%)] opacity-40"></div>
<div className="absolute inset-0 bg-[linear-gradient(to_right,#80808008_1px,transparent_1px),linear-gradient(to_bottom,#80808008_1px,transparent_1px)] bg-[size:60px_60px]"></div>
</div>
{/* FORTUNE 1200 MEGA HEADER */}
<nav className={`fixed top-0 left-0 w-full z-[100] px-10 py-6 flex justify-between items-center transition-all duration-700 ${scrollY > 50 ? 'backdrop-blur-3xl bg-black/80 border-b border-white/5 py-4' : 'bg-transparent'}`}>
<div className="flex items-center gap-12">
<Link to="/" className="flex items-center gap-6 group">
<div className="w-12 h-12 bg-white rounded-2xl flex items-center justify-center group-hover:rotate-12 transition-transform duration-700 shadow-2xl border border-zinc-900">
<Cpu size={24} className="text-black" />
</div>
<div>
<h1 className="text-xl font-black italic tracking-tighter text-white uppercase leading-none">AIBanking<span className="text-blue-500 not-italic">.dev</span></h1>
<p className="text-[8px] uppercase tracking-[0.6em] font-black text-zinc-600 mt-1">Institutional Consensus</p>
</div>
</Link>
<div className="hidden xl:flex items-center gap-8">
<MegaNavItem label="Commercial" items={[
{ icon: Zap, title: "Treasury Nodes", desc: "Automated liquidity mesh.", to: "/protocol/treasury" },
/* Fix: Use ArrowRightLeft which is now imported */
{ icon: ArrowRightLeft, title: "Disbursements", desc: "Real-time global routing.", to: "/payments" },
{ icon: Database, title: "Collections", desc: "Consolidated node intake.", to: "/protocol/collections" }
]} />
<MegaNavItem label="Institutional" items={[
{ icon: Building2, title: "Prime Brokerage", desc: "HFT neural execution.", to: "/protocol/prime" },
{ icon: ShieldCheck, title: "Custody Layer", desc: "RSA-OAEP vaulting.", to: "/protocol/custody" },
{ icon: FileText, title: "Trust Services", desc: "Deterministic ledger audit.", to: "/protocol/trust" }
]} />
<MegaNavItem label="Global Markets" items={[
/* Fix: Use Bitcoin which is now imported */
{ icon: Bitcoin, title: "Asset Foundry", desc: "Relic synthesis node.", to: "/crypt" },
{ icon: Globe, title: "Forex Mesh", desc: "Sub-ms currency parity.", to: "/protocol/forex" }
]} />
<MegaNavItem label="Tech Stack" items={[
{ icon: Code, title: "API Registry", desc: "FDX v6.5 native sync.", to: "/dcr" },
{ icon: Server, title: "Node Map", desc: "Global cluster health.", to: "/connectivity" },
{ icon: Terminal, title: "SDK Blueprint", desc: "M2M automation core.", to: "/documentation" }
]} />
</div>
</div>
<div className="flex items-center gap-8">
<button onClick={() => navigate('/login')} className="hidden md:block text-[10px] font-black uppercase tracking-[0.4em] text-zinc-500 hover:text-white transition-colors">Client Terminal</button>
<button onClick={handleDemoAccess} className="px-8 py-4 bg-blue-600 text-white rounded-full font-black text-[10px] uppercase tracking-[0.4em] hover:bg-blue-500 transition-all flex items-center gap-4 shadow-[0_0_30px_rgba(37,99,235,0.3)] group active:scale-95">
{isDemoLoading ? <Loader2 size={14} className="animate-spin" /> : <Sparkles size={14} className="group-hover:scale-125 transition-transform" />}
Connect Node
</button>
</div>
</nav>
{/* HERO SECTION */}
<section className="relative z-10 min-h-screen flex flex-col justify-center items-center px-10 pt-40 pb-20 text-center overflow-hidden">
<div className="absolute inset-0 z-0 opacity-30">
<img src="https://images.unsplash.com/photo-1639322537228-f710d846310a?q=80&w=2832&auto=format&fit=crop" className="w-full h-full object-cover blur-[140px] scale-110" alt="Liquid Space" />
</div>
<div className="relative z-10 space-y-16">
<div className="inline-flex items-center gap-4 px-10 py-4 bg-blue-600/10 border border-blue-600/20 rounded-full animate-in zoom-in-95 duration-1000 relative overflow-hidden group">
<div className="absolute inset-0 bg-gradient-to-r from-transparent via-white/5 to-transparent animate-[shimmer_2s_infinite]"></div>
<Activity size={18} className="text-blue-500" />
<span className="text-[12px] font-black uppercase tracking-[0.8em] text-blue-500">Subspace_Mesh_Stabilized</span>
</div>
<h1 className="text-[10rem] lg:text-[14rem] font-black italic tracking-tighter uppercase leading-[0.7] mb-12 drop-shadow-2xl">
Sovereign <br /><span className="text-blue-600 not-italic decoration-blue-900/40 underline-offset-[30px] underline decoration-[20px]">Assets</span>
</h1>
<p className="text-zinc-500 text-3xl lg:text-4xl font-bold italic max-w-6xl mx-auto mb-16 leading-relaxed">
"The definitive interface for <span className="text-white">high-velocity institutional liquidity</span>. Route neural signals through the mesh with absolute cryptographic parity."
</p>
<div className="flex flex-wrap justify-center gap-10 pt-10">
<button
onClick={handleDemoAccess}
className="px-16 py-8 bg-white text-black rounded-[2.5rem] font-black text-sm uppercase tracking-[0.6em] flex items-center gap-8 hover:bg-blue-600 hover:text-white transition-all shadow-[0_40px_80px_rgba(255,255,255,0.1)] group active:scale-95"
>
{isDemoLoading ? <Loader2 size={24} className="animate-spin" /> : <span>Initialize Registry</span>}
<ArrowRight size={24} className="group-hover:translate-x-4 transition-transform duration-700" />
</button>
<button onClick={() => navigate('/documentation')} className="px-16 py-8 bg-zinc-950 border border-zinc-900 text-white rounded-[2.5rem] font-black text-sm uppercase tracking-[0.6em] flex items-center gap-8 hover:border-blue-600 transition-all shadow-2xl group active:scale-95">
<FileCode size={24} className="text-blue-500" />
Manual_v6.5
</button>
</div>
</div>
<div className="mt-40 animate-bounce opacity-20"><ChevronDown size={64} /></div>
</section>
{/* FEATURE SHUFFLE */}
<section className="relative z-10 py-60 px-10 bg-zinc-950/20">
<div className="max-w-[1400px] mx-auto grid grid-cols-1 lg:grid-cols-2 gap-32 items-center">
<div className="space-y-16">
<div className="space-y-6">
<h3 className="text-blue-500 font-black text-xs uppercase tracking-[0.8em]">Endless Feature Stack</h3>
<h2 className="text-8xl lg:text-[10rem] font-black italic text-white tracking-tighter uppercase leading-[0.85]">Infinite <br /> <span className="text-blue-600 not-italic">Optimization</span></h2>
</div>
<p className="text-zinc-500 text-2xl font-bold leading-relaxed italic max-w-2xl">
"Our architectural layers are infinite. Swipe through the core protocols that define the future of sovereign digital wealth management."
</p>
<div className="flex gap-8">
<button onClick={prevFeature} className="p-8 bg-zinc-900 border border-zinc-800 rounded-3xl hover:bg-zinc-800 text-zinc-500 hover:text-white transition-all"><ChevronLeft size={32} /></button>
<button onClick={nextFeature} className="p-8 bg-zinc-900 border border-zinc-800 rounded-3xl hover:bg-zinc-800 text-zinc-500 hover:text-white transition-all"><ChevronRight size={32} /></button>
</div>
</div>
<div className="relative h-[800px] flex items-center justify-center">
{FEATURE_CARDS.map((card, i) => {
const isActive = activeFeatureIndex === i;
const isPrev = (activeFeatureIndex - 1 + FEATURE_CARDS.length) % FEATURE_CARDS.length === i;
const isNext = (activeFeatureIndex + 1) % FEATURE_CARDS.length === i;
let offset = isActive ? 0 : isNext ? 80 : isPrev ? -80 : 160; let opacity = isActive ? 1 : isNext || isPrev ? 0.4 : 0;
let scale = isActive ? 1 : 0.8;
let zIndex = isActive ? 50 : 30;
return (
<div
key={card.id}
className="absolute inset-0 transition-all duration-1000 ease-[cubic-bezier(0.23,1,0.32,1)]"
style={{ transform: `translateX(${offset}px) scale(${scale})`, opacity, zIndex }}
>
<div className="w-full h-full bg-zinc-950 border border-zinc-900 rounded-[5rem] overflow-hidden shadow-[0_100px_200px_rgba(0,0,0,0.8)] relative group">
<img src={card.img} className="absolute inset-0 w-full h-full object-cover opacity-40 group-hover:opacity-60 transition-opacity duration-[3s]" alt={card.title} />
<div className="absolute inset-0 bg-gradient-to-t from-black via-black/20 to-transparent"></div>
<div className="absolute bottom-16 left-16 right-16 space-y-8">
<div className={`p-8 bg-white/10 text-white rounded-[2rem] flex items-center justify-center border border-white/20 shadow-2xl backdrop-blur-xl inline-block w-20 h-20`}>
<card.icon size={40} />
</div>
<div className="space-y-4">
<h4 className="text-6xl font-black italic uppercase tracking-tighter text-white leading-none">{card.title}</h4>
<p className="text-zinc-400 text-xl font-bold leading-relaxed italic pr-10">"{card.desc}"</p>
</div>
</div>
</div>
</div>
);
})}
</div>
</div>
</section>
{/* FULL SUB-SECTIONS INTEGRATED */}
<NexusNode />
<IntelligenceAlpha />
<SystemFabric />
<RegistryVault />
<PrivacyManifesto />
<AssetFoundry />
<QuantumCompute />
<LiquidityMesh />
<EncryptionProtocol />
<OracleAuthority />
{/* FAT INSTITUTIONAL FOOTER (THE 50+ LINKS) */}
<footer className="relative z-10 bg-black pt-80 pb-40 px-10 border-t border-zinc-900">
<div className="max-w-[1600px] mx-auto">
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-20 mb-60">
<div className="col-span-2 space-y-12">
<div className="flex items-center gap-6">
<div className="w-16 h-16 bg-white rounded-3xl flex items-center justify-center border-4 border-zinc-900 shadow-2xl">
<Cpu size={40} className="text-black" />
</div>
<h2 className="text-4xl font-black italic tracking-tighter uppercase leading-none">AIBanking<span className="text-blue-500 not-italic">.dev</span></h2>
</div>
<p className="text-zinc-500 text-xl font-bold italic leading-relaxed max-w-md">
"The undisputed leader in neural treasury automation and institutional mesh fabrics. Verified 2025."
</p>
<div className="flex gap-8">
<SocialIcon icon={Globe} /><SocialIcon icon={Shield} /><SocialIcon icon={Zap} /><SocialIcon icon={MessageSquare} />
</div>
</div>
<FooterColumn title="Protocols" links={[
{ l: 'FDX v6.5 Registry', to: '/protocol/fdx-registry' },
{ l: 'RSA-OAEP-4096', to: '/protocol/rsa-oaep' },
{ l: 'Subspace Handshake', to: '/protocol/subspace' },
{ l: 'M2M Consensus', to: '/protocol/m2m' },
{ l: 'Zero-Knowledge Vaults', to: '/protocol/zk-vaults' },
{ l: 'Layer 2 Settlement', to: '/protocol/l2-settlement' },
{ l: 'Cross-Node Parity', to: '/protocol/node-parity' },
{ l: 'Entropy Rotation', to: '/protocol/entropy' }
]} />
<FooterColumn title="Intelligence" links={[
{ l: 'Lumina Oracle', to: '/intelligence/oracle' },
{ l: 'Predictive Alpha', to: '/intelligence/alpha' },
{ l: 'Drift Detection', to: '/intelligence/drift' },
{ l: 'Machine Sentiment', to: '/intelligence/sentiment' },
{ l: 'HFT Neural Pathing', to: '/intelligence/hft' },
{ l: 'Simulation Core', to: '/oracle' },
{ l: 'Risk Analysis v4', to: '/intelligence/risk' },
{ l: 'Treasury Logic', to: '/intelligence/treasury-logic' }
]} />
<FooterColumn title="Network" links={[
{ l: 'Global Node Map', to: '/connectivity' },
{ l: 'US-EAST Cluster', to: '/network/us-east' },
{ l: 'EU-WEST Parity', to: '/network/eu-west' },
{ l: 'APAC Dispersal', to: '/network/apac' },
{ l: 'Latency Hubs', to: '/network/latency' },
{ l: 'Bare Metal Clusters', to: '/network/bare-metal' },
{ l: 'Edge Distribution', to: '/network/edge' },
{ l: 'Node Health Polling', to: '/network/health' }
]} />
<FooterColumn title="Institutional" links={[
{ l: 'Vault Registry', to: '/vault' },
{ l: 'Disbursements', to: '/payments' },
{ l: 'Collections', to: '/institutional/collections' },
{ l: 'Registry Settlement', to: '/institutional/settlement' },
{ l: 'Partner CRM', to: '/partners' },
{ l: 'KYC Handshake', to: '/institutional/kyc' },
{ l: 'Compliance Node', to: '/institutional/compliance' },
{ l: 'Asset Custody', to: '/institutional/custody' }
]} />
</div>
<div className="pt-20 border-t border-zinc-900 flex flex-col md:flex-row justify-between items-center gap-12">
<div className="flex flex-wrap justify-center md:justify-start gap-12 text-[10px] font-black uppercase tracking-[0.4em] text-zinc-600">
<button onClick={() => navigate('/manifesto')} className="hover:text-white transition-colors">Manifesto</button>
<button onClick={() => navigate('/documentation')} className="hover:text-white transition-colors">System Manual</button>
<button onClick={() => navigate('/documentation')} className="hover:text-white transition-colors">API Registry</button>
<button onClick={() => navigate('/airdrop')} className="hover:text-white transition-colors">Genesis Airdrop</button>
<button onClick={() => navigate('/documentation')} className="hover:text-white transition-colors">SLA Standard</button>
</div>
<p className="text-[10px] font-black uppercase tracking-[1em] text-zinc-800">Citibank Demo Business Inc • aibanking.dev Protocol</p>
</div>
</div>
</footer>
</div>
);
};
const MegaNavItem = ({ label, items }: { label: string, items: any[] }) => (
<div className="group relative py-4">
<button className="text-[10px] font-black uppercase tracking-[0.4em] text-zinc-400 group-hover:text-white transition-colors flex items-center gap-2">
{label} <ChevronDown size={10} />
</button>
<div className="absolute top-full left-0 w-[480px] bg-zinc-950 border border-zinc-900 rounded-[2.5rem] p-10 opacity-0 pointer-events-none group-hover:opacity-100 group-hover:translate-y-2 transition-all shadow-2xl space-y-6 z-[110]">
{items.map((item, i) => (
<Link key={i} to={item.to} className="flex gap-6 items-start hover:translate-x-2 transition-transform group/link">
<div className="p-3 bg-zinc-900 rounded-xl text-zinc-600 group-hover/link:text-blue-500 group-hover/link:bg-blue-500/10 transition-all">
<item.icon size={20} />
</div>
<div>
<h4 className="text-sm font-black text-white uppercase italic tracking-widest">{item.title}</h4>
<p className="text-[9px] text-zinc-500 font-bold leading-relaxed">{item.desc}</p>
</div>
</Link>
))}
</div>
</div>
);
const FooterColumn = ({ title, links }: { title: string, links: {l: string, to: string}[] }) => (
<div className="space-y-12">
<h4 className="text-[12px] font-black uppercase tracking-[0.6em] text-white italic">{title}</h4>
<ul className="space-y-6">
{links.map((link, i) => (
<li key={i}>
<Link to={link.to} className="text-[10px] font-bold text-zinc-600 hover:text-blue-400 transition-colors uppercase tracking-widest">{link.l}</Link>
</li>
))}
</ul>
</div>
);
const SocialIcon = ({ icon: Icon }: any) => (
<div className="p-4 bg-zinc-900 border border-zinc-800 rounded-2xl text-zinc-500 hover:text-white hover:border-blue-500 transition-all cursor-pointer shadow-xl">
<Icon size={24} />
</div>
);
export default Landing; |