### Requirement: Loading skeleton on main routes The application SHALL display a skeleton loading state during navigation to `/sessions` and `/users` routes, activated by Next.js App Router streaming via `loading.tsx` files. #### Scenario: Navigation to sessions page shows skeleton - **WHEN** a user navigates to `/sessions` - **THEN** a loading skeleton SHALL be displayed immediately while the page data loads #### Scenario: Navigation to users page shows skeleton - **WHEN** a user navigates to `/users` - **THEN** a loading skeleton SHALL be displayed immediately while the page data loads ### Requirement: Modal lazy loading Heavy modal components (ShareModal) SHALL be loaded lazily via `next/dynamic` to reduce the initial JS bundle size. #### Scenario: ShareModal not in initial bundle - **WHEN** a page loads that contains a ShareModal trigger - **THEN** the ShareModal component code SHALL NOT be included in the initial JS bundle - **THEN** the ShareModal code SHALL be fetched only when first needed