
The site narrates the company story across 5 sections: Hero with 3D pointer parallax, About (Company + Solutions) with a 3D stacked card carousel, Products with an animated tab switcher, Industries with a target-sector grid, and Contact with dual-country blocks (Italy + America). Fully responsive, no CMS, no auth, no i18n — content is static, hardcoded in per-section data.ts files.
useGSAP + gsap.quickTo across 3 independent layers (glow, robot arm, text) with different depths and durations. Active only on pointer: fine (no touch). Mobile: separate image (hero-mobile.webp) with diagonal gradient overlay for text legibility.fixed panel that slides down from the header using GSAP (height: 0 → window.innerHeight - navH), solid bg-background, links separated by border-primary dividers. Link click: preventDefault + setTimeout(320ms) to let the close animation finish before scrolling. Arrow rotates from rotate-135 to rotate-225 via Tailwind transition-transform.back.out(1), 0.55s) that slides under the active tab. Position computed via getBoundingClientRect() relative to the container. gsap.set for instant initial positioning without animation.scrollY + 40% viewport) replacing IntersectionObserver for reliable active section detection after anchor navigation.absolute inset-0 bg-white/5 backdrop-blur-xl layer with transition-opacity duration-700, visible when scrolled || open. backdrop-filter cannot be CSS-transitioned — opacity fade is the only correct solution.public/products/docs/. Optional pdfUrl field in Product — robot models (LTS-6, SCR-6, XPS-6) have no PDF yet.sitemap.ts, robots.ts, manifest.json, getPageMetadata() helper for OG + Twitter card + canonical URL. NEXT_PUBLIC_BASE_URL env var for canonical base.<link> in layout.tsx — requires domain whitelist in Adobe Fonts dashboard. Inter from next/font/google as CSS variable fallback.--primary: #ccff00, --background, --foreground) defined in globals.css. tailwind-merge + clsx via cn().@gsap/react 2.1.2. useGSAP for declarative animation lifecycle. gsap.quickTo for smooth parallax. back.out(1) for tab pill.Freccia, ScheduleButton, FeatureRow, ProductTags, MobileDropdown.babel-plugin-react-compiler, reactCompiler: true in next.config.ts) — automatic memoization. Next.js <Image> with priority on hero. Separate mobile/desktop images. pointer: fine check to disable parallax on touch devices.@gsap/react 2.1.2 (GSAP hook), embla-carousel-react 8.6.0 (carousel), radix-ui 1.4.3 (primitives), tw-animate-css 1.4.0 (utility animations)@tailwindcss/postcss Realized for Kineon in collaboration with Alybi di Proglio Alice