import React, { useState, useEffect } from 'react'; import { Github, Twitter, Linkedin, Mail, ArrowUpRight, Code, Palette, Zap } from 'lucide-react'; // --- DATA --- const PROJECTS = [ { id: 1, title: "NEO-BANK UI", category: "Product Design", image: "https://images.unsplash.com/photo-1563986768609-322da13575f3?auto=format&fit=crop&q=80&w=1200&h=800", year: "2025" }, { id: 2, title: "ECHO COMMERCE", category: "Fullstack Development", image: "https://images.unsplash.com/photo-1555421689-491a97ff2040?auto=format&fit=crop&q=80&w=1200&h=800", year: "2024" }, { id: 3, title: "VANGUARD AI", category: "Frontend & WebGL", image: "https://images.unsplash.com/photo-1620641788421-7a1c342ea42e?auto=format&fit=crop&q=80&w=1200&h=800", year: "2026" } ]; const GALLERY = [ "https://images.unsplash.com/photo-1600607686527-6fb886090705?auto=format&fit=crop&q=80&w=800&h=800", "https://images.unsplash.com/photo-1550745165-9bc0b252726f?auto=format&fit=crop&q=80&w=800&h=800", "https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?auto=format&fit=crop&q=80&w=800&h=800", "https://images.unsplash.com/photo-1558591710-4b4a1ae0f04d?auto=format&fit=crop&q=80&w=800&h=800", "https://images.unsplash.com/photo-1604871000636-074fa5117945?auto=format&fit=crop&q=80&w=800&h=800", "https://images.unsplash.com/photo-1574169208507-84376144848b?auto=format&fit=crop&q=80&w=800&h=800" ]; const NAV_LINKS = [ { name: 'Index', href: '#home' }, { name: 'About', href: '#about' }, { name: 'Work', href: '#work' }, { name: 'Gallery', href: '#gallery' }, { name: 'Contact', href: '#contact' } ]; export default function App() { const [activeSection, setActiveSection] = useState('home'); const [isScrolled, setIsScrolled] = useState(false); // Handle scroll spy and header background useEffect(() => { const handleScroll = () => { setIsScrolled(window.scrollY > 50); const sections = NAV_LINKS.map(link => link.href.substring(1)); let current = ''; for (const section of sections) { const element = document.getElementById(section); if (element && window.scrollY >= element.offsetTop - 200) { current = section; } } if (current !== activeSection) { setActiveSection(current); } }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, [activeSection]); return (