{#snippet navigation()} {/snippet} {#if coursesLoaded && courses.length === 0}
{:else} {#if featured}
{#if featuredTypeMeta} {labels?.featuredLabel ?? 'Featured'} · {featuredTypeMeta.label} {/if}

{featured.title}

{featured.description}

{#if featured.lessonCount} {resolvedLessonsLabel(featured.lessonCount)} {/if} {#if featured.exerciseCount} {resolvedExercisesLabel(featured.exerciseCount)} {/if} {#if featured.duration} {featured.duration} {/if}
{featured.price || formatCost(featured.cost, featured.currency)}

Course outline

Pick up where you left off — anytime.

{#each Array.from({ length: Math.min(featured.lessonCount ?? 4, 4) }) as _, idx (idx)}
{String(idx + 1).padStart(2, '0')} {idx === 0 ? 'Foundations & setup' : idx === 1 ? 'Core concepts' : idx === 2 ? 'Hands-on practice' : 'Capstone project'} {idx === 0 ? '42 min' : idx === 1 ? '1h 12m' : idx === 2 ? '58 min' : '2h 30m'}
{/each}
{/if} {#if remainingCourses.length > 0 || (!featured && courses.length > 0)} {@const catalogCourses = featured ? remainingCourses : courses}

{labels?.catalogEyebrow ?? 'Catalog'}

{labels?.catalogHeading ?? 'More courses to take next.'}

{#if hasMoreCourses} {/if}
{#each catalogCourses as course, index (course.id)} {/each}
{/if} {/if}