Loading skeleton for the `/roadmap` grid view, rendering animated placeholder cards while roadmap data is being fetched. ## Key Components ### `RoadmapCardSkeleton` *(internal)* A 340px animated placeholder card mimicking the full grid card layout. Renders pulsing skeletons for: - Status badge (top-right) - Icon + title + subtitle - 3-line description block - Bottom action area (button + badge) > **Note:** Intentionally kept file-internal to avoid naming collision with `RoadmapCardSkeleton` from `lib/chat/entity-cards/roadmap-card.tsx`, which is a compact 56px chat-card variant. ### `RoadmapGridSkeleton` *(exported)* Renders a responsive 1→2 column grid of `RoadmapCardSkeleton` instances. ### `RoadmapGridSkeletonProps` | Prop | Type | Default | Description | |------|------|---------|-------------| | `count` | `number` | `4` | Number of skeleton cards to render | | `showLeftMargin` | `boolean` | `true` | Applies `md:ml-[120px]` to align with the page hero title block. Pass `false` for narrower surfaces (e.g. release detail page) | ## Usage Example ```typescript // Default: 4 cards with left margin (full roadmap page) // Custom count, no left margin (embedded in a narrower rail) // Typical Suspense / conditional pattern {isLoading ? : } ```