feat: refonte layout viewport + passe motion + finitions SEO/sécurité

- Layout app-style 100dvh : zéro scroll desktop (accueil, jeu, bilan, explorer),
  zéro superposition mobile (sauts sortis de la carte, badges consolidés en une puce,
  barre d'actions opaque z-indexée, indices en panneau interne, sheet explorer dégagé)
- CSS jeu mutualisé (jeu.css) + partager() factorisé (lib/partage.ts)
- Motion gwoka : reveals syncopés, révélation designée (ligne de distance animée,
  score en count-up, marqueur qui tombe), transitions d'état, bilan en cascade
- SEO : Seo.svelte (canonical, OG, Twitter), robots.txt, sitemap.xml
- Sécurité : hooks.server.ts (CSP, nosniff, DENY, Referrer-Policy, Permissions-Policy)
- Dette : 4 clés i18n mortes, zip debug ignoré
- Vérifié puppeteer : mobile 390x844 (0 overlap, 0 scroll), desktop 1440x900
  (0 scroll même +2 indices), révélation complète, zéro erreur console/CSP
This commit is contained in:
sucupira
2026-07-21 16:32:47 -04:00
parent 67142428ac
commit 9b867243fd
25 changed files with 1368 additions and 753 deletions
+1 -5
View File
@@ -56,8 +56,6 @@ const fr = {
}
},
resultat: {
bravo: 'Bravo !',
score: 'Score',
points: 'points',
distance: 'Distance',
km: 'km',
@@ -94,7 +92,6 @@ const fr = {
telecharger: 'Télécharger limage',
taPosition: 'Ta position',
positionReelle: 'Position réelle',
manche: 'Manche',
titreSeed: 'Défi — seed',
copierLien: 'Copier le lien du défi',
lienCopie: 'Lien copié !'
@@ -115,8 +112,7 @@ const fr = {
},
micro: {
bravo: 'Bravo !',
kiteSaYe: 'Kité sa ye ?',
pwenBlinde: 'Pwen blindé'
kiteSaYe: 'Kité sa ye ?'
},
langue: {
fr: 'Français',