Component

PhotoGrid

The full homepage gallery — eight rows of ParallaxCards pulled from Sanity or falling back to Unsplash. Rows reveal independently on scroll.

Architecture

The gallery is rendered directly in apps/web/app/page.tsx as either SanityGallery (when CMS is configured) or UnsplashFallbackGallery.

tsx
// Sanity CMS (when configured)
<SanityGallery photos={photos} />

// Unsplash fallback (no CMS)
<UnsplashFallbackGallery />

Row stagger animation

Each GalleryRow triggers independently when scrolled into view (viewport margin: -80px). Cards within each row stagger at 0.3s intervals using Framer Motion variant propagation — no prop threading required.