Let me start by reading the existing project files to understand the current setup.
Now I have full context. Let me start building. First, I need to add framer-motion to the dependencies and set up the entire design system, fonts, globals, and content layer.
Now let me set up the complete design system. I'll update globals.css, tailwind config, layout, and create the content layer all in parallel where possible.
Now update the Tailwind config and globals to map the font variables:
Now let me create the content layer and all components. Let me start with the content layer:
Now let me create all the components. I'll start with the Navbar and Hero:
Now let me create the Services and AI Showcase components:
Now let's assemble everything in the main page:
The full Ztek Interactive marketing site is now built. Here's what was delivered:
Design System: Custom palette (#81ACED primary, #4A8CEB accent, #F0EFE4 cream background, #333333 charcoal) with Plus Jakarta Sans for headings, Cormorant Garamond for dramatic serif emphasis, and JetBrains Mono for data/UI elements. A subtle SVG turbulence noise overlay and generous rounded-[2rem]/rounded-[3rem] radius system are applied globally.
Components: All 8 sections are implemented — a floating island Navbar with scroll-aware glass morphism and a "System Ready" chip, a full-height Hero with Unsplash background and telemetry pill, Services as artifact-style tiles with schematic hover animations, AiShowcase with three interactive artifacts (typewriter feed, animated code diff, and a workflow node router with traveling pulse), a ClientsMarquee with gradient edge fades, a WorkGrid linking to /work/[slug] detail pages, a premium dark CtaSection, and a charcoal Footer with operational status indicator.
Content Layer: lib/content.ts exports typed functions (getHero(), getServices(), getWorkItems(), etc.) with realistic static JSON — designed for a zero-refactor swap to Sanity later. The /work/[slug] pages render full case studies from the same content layer with challenge/solution/results structure.
You can send messages while the preview loads