'use client'; import { motion, AnimatePresence } from 'framer-motion'; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { personal } from '@/content/personal'; import styles from './Hero.module.scss'; const fadeUp = (delay = 0) => ({ initial: { opacity: 0, y: 28 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.65, ease: [0.22, 0.61, 0.36, 1], delay }, }); export default function Hero() { const [roleIndex, setRoleIndex] = useState(0); useEffect(() => { const interval = setInterval(() => { setRoleIndex(i => (i + 1) % personal.roles.length); }, 2800); return () => clearInterval(interval); }, []); return (
{/* Availability Badge */} {personal.availabilityText} {/* Heading */} Hi, I'm {personal.name} {/* Animated Role */} {personal.roles[roleIndex]} {/* Bio */} {personal.bio} {/* CTAs */} View Projects Experience
{/* Right side: grid + terminal */}
); }