feat(epic-4): chemins narratifs, easter eggs, challenge et contact

Epic 4: Chemins Narratifs, Challenge & Contact

Stories implementees:
- 4.1: Composant ChoiceCards pour choix narratifs binaires
- 4.2: Sequence d'intro narrative avec Le Bug
- 4.3: Chemins narratifs differencies avec useNarrativePath
- 4.4: Table easter_eggs et systeme de detection (API + composable)
- 4.5: Easter eggs UI (popup, notification, collection)
- 4.6: Page challenge avec puzzle de code
- 4.7: Page revelation "Monde de Code"
- 4.8: Page contact avec formulaire et stats

Fichiers crees:
- Frontend: ChoiceCards, IntroSequence, ZoneEndChoice, EasterEggPopup,
  CodePuzzle, ChallengeSuccess, CodeWorld, et pages intro/challenge/revelation
- API: EasterEggController, Model, Migration, Seeder

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-08 13:35:12 +01:00
parent 64b1a33d10
commit 7e87a341a2
38 changed files with 3037 additions and 96 deletions

View File

@@ -97,22 +97,8 @@
</section>
<!-- CTA section -->
<section class="container mx-auto px-4 pb-16">
<div class="rounded-xl bg-gradient-to-r from-sky-500/10 to-purple-500/10 p-8 text-center">
<h2 class="text-2xl font-semibold text-white">
{{ $t('testimonials.cta_title') }}
</h2>
<p class="mt-2 text-gray-400">
{{ $t('testimonials.cta_description') }}
</p>
<NuxtLink
to="/contact"
class="mt-4 inline-block rounded-lg bg-sky-500 px-6 py-3 font-medium text-white transition-colors hover:bg-sky-400"
>
{{ $t('testimonials.cta_button') }}
</NuxtLink>
</div>
</section>
<!-- Choice for next zone -->
<FeatureZoneEndChoice />
</div>
</template>
@@ -125,7 +111,7 @@ definePageMeta({
const { setPageMeta } = useSeo()
const { t } = useI18n()
const progressStore = useProgressStore()
const progressStore = useProgressionStore()
setPageMeta({
title: t('testimonials.page_title'),