import { useParallax } from '@/hooks/useScrollProgress'; import { Box } from '@/ui/Box'; import { Button } from '@/ui/Button'; import { Container } from '@/ui/Container'; import { Heading } from '@/ui/Heading'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; const discordUrl = process.env.NEXT_PUBLIC_DISCORD_URL || '#'; if (!process.env.NEXT_PUBLIC_DISCORD_URL) { console.warn('NEXT_PUBLIC_DISCORD_URL is not set. Discord button will use "#" as fallback.'); } export function LandingHero() { const sectionRef = useRef(null); const bgParallax = useParallax(sectionRef, 0.3); return ( {/* Background image layer with parallax */} {/* Racing red accent gradient */} {/* Racing stripes background */} {/* Checkered pattern overlay */} {/* Speed lines - left side */} {/* Carbon fiber accent - bottom */} {/* Radial gradient overlay with racing red accent */} League racing is incredible. What's missing is everything around it. If you've been in any league, you know the feeling: {/* Problem badges - mobile optimized */} {[ 'Results scattered across Discord', 'No long-term identity', 'No career progression', 'Forgotten after each season' ].map((text) => ( × {text} ))} The ecosystem isn't built for this. GridPilot gives your league racing a real home. ); }