import { motion, useMotionValue, useSpring } from "framer-motion" import React, { useEffect, useRef, useState } from "react" export const Hero3DLogo: React.FC = () => { const containerRef = useRef(null) const [isHovered, setIsHovered] = useState(false) // Mouse position tracking with springs for smooth animation const mouseX = useMotionValue(0) const mouseY = useMotionValue(0) // Spring configs for smooth following const springConfig = { damping: 25, stiffness: 200 } const mouseXSpring = useSpring(mouseX, springConfig) const mouseYSpring = useSpring(mouseY, springConfig) useEffect(() => { const handleMouseMove = (e: MouseEvent) => { if (!containerRef.current) return const rect = containerRef.current.getBoundingClientRect() const x = e.clientX - rect.left const y = e.clientY - rect.top mouseX.set(x) mouseY.set(y) } window.addEventListener("mousemove", handleMouseMove) return () => window.removeEventListener("mousemove", handleMouseMove) }, [mouseX, mouseY]) return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > {/* Gradient background */}
{/* Animated background elements */}
{/* Static mountain with perspective */}
{/* Mountain image - static */}
Nepal Mountain
{/* Interactive clouds and lightning effect */}
{/* Mouse-reactive glow effect - only on background */} {/* Animated floating clouds - bottom 15% */}
{/* Cloud layer 1 - moving right */} {/* Cloud layer 2 - moving right, delayed */} {/* Cloud layer 3 - moving right, different speed */}
{/* Static 3D Text */}

Timeline Studio

{/* Glow effect */}
{/* Depth of field blur overlay */}
) }