",100)}),1e3);const skillItems=document.querySelectorAll(".skill-item");skillItems.forEach(((e,t)=>{gsap.to(e,{y:-10,duration:2,delay:.2*t,yoyo:!0,repeat:-1,ease:"power2.inOut"})}));const projectCards=document.querySelectorAll(".project-card");projectCards.forEach((e=>{e.addEventListener("mouseenter",(()=>{gsap.to(e,{scale:1.02,duration:.3,ease:"power2.out"})})),e.addEventListener("mouseleave",(()=>{gsap.to(e,{scale:1,duration:.3,ease:"power2.out"})}))}));const observerOptions={threshold:.1,rootMargin:"0px 0px -50px 0px"},observer=new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&(e.target.style.opacity="1",e.target.style.transform="translateY(0)")}))}),observerOptions);document.querySelectorAll("section").forEach((e=>{observer.observe(e)}));const heroTitle=document.querySelector(".hero-title");heroTitle&&(heroTitle.addEventListener("mouseenter",(()=>{heroTitle.style.animation="glitch 0.5s ease-in-out"})),heroTitle.addEventListener("animationend",(()=>{heroTitle.style.animation=""})));const glitchCSS="\n @keyframes glitch {\n 0% { transform: translateX(0); }\n 20% { transform: translateX(-2px); }\n 40% { transform: translateX(2px); }\n 60% { transform: translateX(-2px); }\n 80% { transform: translateX(2px); }\n 100% { transform: translateX(0); }\n }\n ",style=document.createElement("style");style.textContent=glitchCSS,document.head.appendChild(style);const preloader=document.createElement("div");preloader.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: var(--bg-primary);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000;\n transition: opacity 0.5s ease;\n ";const loader=document.createElement("div");loader.style.cssText="\n width: 50px;\n height: 50px;\n border: 3px solid rgba(0, 245, 255, 0.3);\n border-top: 3px solid var(--primary-color);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n ";const spinCSS="\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ",spinStyle=document.createElement("style");spinStyle.textContent=spinCSS,document.head.appendChild(spinStyle),preloader.appendChild(loader),document.body.appendChild(preloader),window.addEventListener("load",(()=>{setTimeout((()=>{preloader.style.opacity="0",setTimeout((()=>{preloader.remove()}),500)}),1e3)}));let konamiCode=[];const konamiSequence=[38,38,40,40,37,39,37,39,66,65];document.addEventListener("keydown",(e=>{konamiCode.push(e.keyCode),konamiCode.length>konamiSequence.length&&konamiCode.shift(),konamiCode.join("")===konamiSequence.join("")&&(document.body.style.animation="rainbow 2s linear infinite",setTimeout((()=>{document.body.style.animation=""}),5e3))}));const rainbowCSS="\n @keyframes rainbow {\n 0% { filter: hue-rotate(0deg); }\n 100% { filter: hue-rotate(360deg); }\n }\n ",rainbowStyle=document.createElement("style");rainbowStyle.textContent=rainbowCSS,document.head.appendChild(rainbowStyle);const images=document.querySelectorAll("img"),imageObserver=new IntersectionObserver(((e,t)=>{e.forEach((e=>{if(e.isIntersecting){const t=e.target;t.src=t.dataset.src||t.src,t.classList.remove("lazy"),imageObserver.unobserve(t)}}))}));images.forEach((e=>{imageObserver.observe(e)})),console.log("\n ╔═══════════════════════════════════════╗\n ║ ║\n ║ Hey Developer! 👋 ║\n ║ ║\n ║ Nice to see you checking out ║\n ║ the code! If you're interested ║\n ║ in collaborating, let's connect: ║\n ║ ║\n ║ 📧 benjminrichie@email.com ║\n ║ 🔗 linkedin.com/in/benjminrichie ║\n ║ ║\n ╚═══════════════════════════════════════╝\n ");