1import{u as m,j as e,m as r}from"./vendor-motion-C0Ykwh7C.js";import{r as i,L as o}from"./vendor-react-D8ZVE-1i.js";import{h as c,p}from"./projects-Clb5hPl-.js";import{P as u}from"./ProjectCard-BwLNlIzs.js";import{A as n}from"./vendor-icons-CZ0fHw8h.js";import"./index-DQYSP24l.js";import"./index-C9VRkwIY.js";import"./index-CMnRXDm6.js";const v=()=>{const s=m(),l=i.useMemo(()=>c.map(t=>p.find(a=>a.id===t)).filter(t=>!!t),[]),d=i.useMemo(()=>Array.from({length:8}).map((t,a)=>({left:`${8+a*11}%`,top:`${20+a*8}%`,size:8+a%3*2,opacity:.04+a%4*.02,duration:6+a,delay:a*.5})),[]);return e.jsxs("section",{id:"projects-preview",className:"relative py-12 sm:py-14 lg:py-16 overflow-hidden",children:[e.jsxs("div",{className:"absolute inset-0 -z-10 pointer-events-none",children:[e.jsx(r.div,{className:"absolute inset-0",initial:{opacity:0},animate:{opacity:1},transition:{duration:1},style:{background:"radial-gradient(800px 400px at 60% -5%, rgba(59,130,246,0.08), transparent 65%), radial-gradient(700px 400px at 20% 105%, rgba(99,102,241,0.06), transparent 70%)"}}),e.jsx(r.div,{className:"absolute -top-20 left-1/3 w-[20rem] h-[20rem] rounded-full blur-3xl bg-gradient-to-tr from-blue-500/12 via-indigo-500/8 to-cyan-500/10",animate:s?{}:{y:[0,15,0],x:[0,20,0],scale:[1,1.03,1]},transition:s?{}:{duration:9,repeat:1/0,ease:"easeInOut"}}),e.jsx(r.div,{className:"absolute -bottom-16 right-1/4 w-[18rem] h-[18rem] rounded-full blur-3xl bg-gradient-to-tl from-sky-400/10 via-blue-500/8 to-indigo-600/8",animate:s?{}:{y:[0,-12,0],x:[0,-15,0],scale:[1,1.04,1]},transition:s?{}:{duration:10,repeat:1/0,ease:"easeInOut"}}),d.map((t,a)=>e.jsx(r.span,{className:"absolute rounded-full bg-blue-400/40 dark:bg-sky-300/40",style:{left:t.left,top:t.top,width:t.size,height:t.size,filter:"blur(1px)",opacity:t.opacity},initial:{y:0},animate:s?{}:{y:[0,-12,0]},transition:s?{}:{duration:t.duration,delay:t.delay,repeat:1/0,ease:"easeInOut"}},a))]}),e.jsxs("div",{className:"container mx-auto px-4 sm:px-6 max-w-7xl",children:[e.jsxs(r.div,{initial:{opacity:0}
1,whileInView:{opacity:1},viewport:{once:!0,amount:.6},transition:{duration:.6,ease:"easeOut"},className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-4 sm:gap-6 mb-8 sm:mb-10 lg:mb-12 text-center sm:text-left",children:[e.jsxs("div",{children:[e.jsx("p",{className:"eyebrow text-slate-500 dark:text-slate-400",children:"Featured Works"}),e.jsx("h2",{className:"mt-2 sm:mt-3 text-slate-900 dark:text-white",children:"Latest Projects"})]}),e.jsxs(o,{to:"/projects",className:"hidden sm:inline-flex items-center gap-2 self-end px-5 py-2.5 text-sm sm:text-base font-outfit font-semibold rounded-xl border border-blue-200/80 dark:border-white/[0.08] bg-blue-50/60 dark:bg-slate-950/90 backdrop-blur-md text-slate-900 dark:text-white hover:shadow-xl hover:shadow-blue-500/[0.08] dark:hover:shadow-sky-500/[0.05] transition-colors duration-500 hover:border-blue-300/70 dark:hover:border-sky-400/20 group focus-override whitespace-nowrap",children:[e.jsx("span",{children:"Browse all projects"}),e.jsx(r.span,{animate:s?{}:{x:[0,4,0]},transition:s?{}:{duration:2,repeat:1/0,ease:"easeInOut"},className:"inline-flex",children:e.jsx(n,{className:"w-4 sm:w-5 h-4 sm:h-5"})})]})]}),e.jsx("div",{className:"grid gap-4 sm:gap-5 lg:gap-6 sm:grid-cols-1 md:grid-cols-2 xl:grid-cols-3",children:l.map((t,a)=>e.jsx(u,{project:t,index:a},t.id))}),e.jsx(r.div,{initial:{opacity:0}
1,whileInView:{opacity:1},viewport:{once:!0,amount:.8},transition:{duration:.5},className:"mt-8 flex justify-center sm:hidden",children:e.jsxs(o,{to:"/projects",className:"inline-flex items-center gap-2 px-5 py-2.5 text-sm font-outfit font-semibold rounded-xl border border-blue-200/80 dark:border-white/[0.08] bg-blue-50/60 dark:bg-slate-950/90 backdrop-blur-md text-slate-900 dark:text-white hover:shadow-xl hover:shadow-blue-500/[0.08] dark:hover:shadow-sky-500/[0.05] transition-colors duration-500 hover:border-blue-300/70 dark:hover:border-sky-400/20 group focus-override whitespace-nowrap",children:[e.jsx("span",{children:"Browse all projects"}),e.jsx(r.span,{animate:s?{}:{x:[0,4,0]},transition:s?{}:{duration:2,repeat:1/0,ease:"easeInOut"},className:"inline-flex",children:e.jsx(n,{className:"w-4 h-4"})})]})})]})]})};export{v as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.