Build a personal portfolio website with a minimalist design aesthetic and smooth animations. Here are the full requirements:
Use all mock placeholder content throughout.
IMPORTANT BUILD INSTRUCTIONS:
Now I'll build all the components in parallel.
Now I'll write everything in parallel — globals, layout, and all components at once.
Now write all components in parallel:
Now write the main page with the scroll-reveal initializer:
Also update the @theme inline block in globals.css to wire the new fonts properly:
The portfolio is fully built. Here's a summary of what was created:
app/page.tsx — root page that mounts all sections and initialises the IntersectionObserver for scroll-reveal animationscomponents/portfolio/Nav.tsx — sticky nav with glass blur on scroll, active-section highlighting, and a slide-in mobile hamburger menucomponents/portfolio/HeroSection.tsx — full-screen hero with staggered CSS fadeSlideUp entrance animations and two CTAscomponents/portfolio/AboutSection.tsx — two-column bio with minimal skill-tag badgescomponents/portfolio/ServicesSection.tsx — 4-card grid with hover lift effectcomponents/portfolio/ProjectsSection.tsx — 3-column project grid with overlay "View Project" on hovercomponents/portfolio/CaseStudiesSection.tsx — horizontal case study cards with problem / outcome split layoutcomponents/portfolio/ContactSection.tsx — large headline, email link, social icons, and copyright footerThe design uses a warm off-white background (#f8f7f4), near-black foreground, and a single warm amber accent (#b8956a), with Inter for body text and Playfair Display for headings.