import React, { useRef, useEffect } from 'react'; import { gsap, ScrollTrigger } from '../lib/gsap.ts'; import { useReducedMotion } from '../hooks/useReducedMotion.ts'; import { SplitHeadline } from '../components/motion/SplitHeadline.tsx'; import { MagneticButton } from '../components/motion/MagneticButton.tsx'; import { Button } from '../components/ui/Button.tsx'; import { CountUp } from '../components/motion/CountUp.tsx'; import Marquee from '../components/motion/Marquee.tsx'; import BootCore from '../components/motion/BootCore.tsx'; import { Mountain, Shield, Activity, Zap } from 'lucide-react'; const HomePage: React.FC = () => { const reduced = useReducedMotion(); const heroRef = useRef(null); const curtainRef = useRef(null); const checklistRef = useRef(null); useEffect(() => { if (reduced) return; const ctx = gsap.context(() => { const tl = gsap.timeline(); tl.to(curtainRef.current, { y: '100%', duration: 1.2, ease: 'power3.inOut' }); if (checklistRef.current) { const items = checklistRef.current.querySelectorAll('.check-item'); tl.fromTo(items, { x: -20, opacity: 0 }, { x: 0, opacity: 1, duration: 0.4, stagger: 0.1 }, 0.5); } }); return () => ctx.revert(); }, [reduced]); const checkItems = [ { icon: Shield, label: 'Error Boundary Armed', status: 'ready' as const }, { icon: Activity, label: 'Router Integrity', status: 'verified' as const }, { icon: Zap, label: 'GSAP Plugins Registered', status: 'active' as const }, ]; return ( <>
{/* Hero */}

The Nepal 360 application has recovered from a blank-screen failure. All critical systems are operational and monitored.

{/* Checklist */}

Recovery Checklist

{checkItems.map((item, i) => (
{item.label} {item.status}
))}
{/* Stats */}
{/* Marquee */} {/* CTA */}

Ready to Explore?

Browse our curated journeys across Nepal's diverse landscapes.

); }; export default HomePage;