diff --git a/src/App.svelte b/src/App.svelte
index 719d74d..6d0e402 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -98,7 +98,7 @@
style="width: {wrapperWidth}; transform: {wrapperTransform}"
>
{#each slides.all as slide, i}
-
+
{#if slide.loaded}
← BEFORE
-
+
{featured.intro}
{/if}
-
+
{t('read_article')} →
{#if featured.cover}
{/if}
-
+
{t('read_article')} →
@@ -160,18 +160,18 @@
-
+
{t('read_article')} →
{#if article.cover}
{/if}
-
+
{t('read_article')} →
diff --git a/src/views/Home.svelte b/src/views/Home.svelte
index d237d8b..f5f8335 100644
--- a/src/views/Home.svelte
+++ b/src/views/Home.svelte
@@ -50,6 +50,7 @@
playsinline
loop
preload="auto"
+ tabindex="-1"
id="home-video"
class="home-video home-video-desktop"
poster={data.backgroundVideoPoster ?? undefined}
@@ -61,6 +62,7 @@
playsinline
loop
preload="auto"
+ tabindex="-1"
id="home-video-mobile"
class="home-video home-video-mobile"
poster={data.backgroundVideoMobilePoster ?? undefined}
@@ -81,8 +83,6 @@
e.key === 'Enter' && handleExplore()}
- tabindex="0"
>
{data.hero.ctaText}
@@ -128,7 +128,7 @@
/* Text overlay */
.home-text {
z-index: var(--z-content);
- grid-area: 9/1 / span 6 / span 20;
+ grid-area: 10/1 / span 6 / span 20;
width: 100%;
justify-self: center;
margin-top: 6vmax;
diff --git a/src/views/Play.svelte b/src/views/Play.svelte
index 0a299b7..936f443 100644
--- a/src/views/Play.svelte
+++ b/src/views/Play.svelte
@@ -285,7 +285,6 @@
alt=""
/>
{/if}
- {game.title}
{/each}
@@ -456,16 +455,10 @@
.play-carousel-item.active button :global(picture img) {
object-fit: cover;
transition: all 0.4s var(--ease-standard);
- border: 4px solid var(--color-primary);
+ border: 5px solid var(--color-primary);
border-radius: 25%;
}
- .play-carousel-title {
- font-size: var(--font-size-caption);
- color: var(--color-text);
- text-align: center;
- }
-
/* --- Mobile (≤ 700px) --- */
@media (max-width: 700px) {
.game-preview {
diff --git a/src/views/WhitePapers.svelte b/src/views/WhitePapers.svelte
index 4fff64e..f07ebe3 100644
--- a/src/views/WhitePapers.svelte
+++ b/src/views/WhitePapers.svelte
@@ -134,13 +134,13 @@
{#if item.intro}
{item.intro}
{/if}
-
+
{t('read_wp')} →
{#if item.cover}
diff --git a/test_anim__archive1/CLAUDE.md b/test_anim__archive1/CLAUDE.md
deleted file mode 100644
index d705010..0000000
--- a/test_anim__archive1/CLAUDE.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# CLAUDE.md
-
-This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
-
-## Project Overview
-
-This is a **prototype for an animated image gallery component** intended for integration into a Kirby CMS project. The animation displays images in a continuous scrolling pattern across multiple columns/rows.
-
-## Running the Project
-
-This is a PHP project with no build system. To run locally:
-```bash
-php -S localhost:8000
-```
-Then open `http://localhost:8000` in a browser.
-
-## Architecture
-
-### Configuration (index.php:1-28)
-
-The animation is configured via PHP variables at the top of `index.php`:
-- `$mode`: `'vertical'` or `'horizontal'` - scroll direction
-- `$set`: Image set name (e.g., `'LEGACY'`, `'OLLY'`)
-- `$secondsPerImage`: Controls animation speed
-- `$imagesSets`: Associative array defining image paths per set
-
-### Animation System
-
-**CSS-based infinite scroll** using duplicated images:
-- Images are rendered twice in each track (`index.php:63-68`) to create seamless looping
-- Animation translates from 0 to -50% (or vice versa), jumping back invisibly when the duplicate starts
-- Odd columns scroll down/right; even columns scroll up/left
-- Column offsets and delays are calculated based on image count to stagger the animation
-
-**Key CSS classes** (BEM notation):
-- `.gallery-animation--vertical` / `.gallery-animation--horizontal`: Mode modifiers
-- `.gallery-animation__wrapper`: Flex container for columns
-- `.gallery-animation__column`: Individual scrolling lane
-- `.gallery-animation__track`: Animated element containing images
-- `.gallery-animation__image`: Individual image styling
-
-**CSS custom properties**:
-- `--animation-duration`: Total cycle duration (set via PHP)
-- `--gap`: Spacing between columns/rows
-- `--vertical-wrapper-width`: Container width in vertical mode
-
-### Accessibility
-
-Respects `prefers-reduced-motion` by disabling animations (`style.css:149-153`).
-
-## Language
-
-Code comments and documentation are in French.
diff --git a/test_anim__archive1/NOTES.md b/test_anim__archive1/NOTES.md
deleted file mode 100644
index 39807c4..0000000
--- a/test_anim__archive1/NOTES.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Animation Galerie d'Images
-
-## Fichiers
-
-- `style.css` : CSS de l'animation (à intégrer dans le projet Kirby)
-- `index.html` : Page de test
-- `images/` : Images de test
-
-## Usage
-
-```html
-
-
-
-```
-
-### Variables CSS
-
-```css
-.gallery-animation {
- --animation-duration: 30s; /* Durée de l'animation */
- --gap: 1rem; /* Espacement entre colonnes/rangées */
-}
-```
-
-### Structure HTML
-
-**Mode vertical** (3 colonnes) :
-```html
-
-
-
-
-
-
-
-
-
-
-
-```
-
-**Mode horizontal** (3 rangées) : remplacer `--vertical` par `--horizontal` et `__column` par `__row`.
-
-## Comportement
-
-- Colonnes impaires : défilent vers le bas / droite
-- Colonnes paires : défilent vers le haut / gauche
-- Images dupliquées dans le HTML pour transition fluide
-- Décalage automatique entre colonnes/rangées via `animation-delay`
diff --git a/test_anim__archive1/images/LEGACY/apples-averywhere.png b/test_anim__archive1/images/LEGACY/apples-averywhere.png
deleted file mode 100644
index 8739857..0000000
Binary files a/test_anim__archive1/images/LEGACY/apples-averywhere.png and /dev/null differ
diff --git a/test_anim__archive1/images/LEGACY/legacy-menu-pause.png b/test_anim__archive1/images/LEGACY/legacy-menu-pause.png
deleted file mode 100644
index 7f70a11..0000000
Binary files a/test_anim__archive1/images/LEGACY/legacy-menu-pause.png and /dev/null differ
diff --git a/test_anim__archive1/images/LEGACY/legacy-screen-6.png b/test_anim__archive1/images/LEGACY/legacy-screen-6.png
deleted file mode 100644
index a2db396..0000000
Binary files a/test_anim__archive1/images/LEGACY/legacy-screen-6.png and /dev/null differ
diff --git a/test_anim__archive1/images/LEGACY/legacy-screen-7.png b/test_anim__archive1/images/LEGACY/legacy-screen-7.png
deleted file mode 100644
index a58506a..0000000
Binary files a/test_anim__archive1/images/LEGACY/legacy-screen-7.png and /dev/null differ
diff --git a/test_anim__archive1/images/LEGACY/run-and-eat-to-survive.png b/test_anim__archive1/images/LEGACY/run-and-eat-to-survive.png
deleted file mode 100644
index 4f6c0c7..0000000
Binary files a/test_anim__archive1/images/LEGACY/run-and-eat-to-survive.png and /dev/null differ
diff --git a/test_anim__archive1/images/LEGACY/you-won_t-live-forever.png b/test_anim__archive1/images/LEGACY/you-won_t-live-forever.png
deleted file mode 100644
index cbfd4f9..0000000
Binary files a/test_anim__archive1/images/LEGACY/you-won_t-live-forever.png and /dev/null differ
diff --git a/test_anim__archive1/images/OLLY/lesson_contentblock01.png b/test_anim__archive1/images/OLLY/lesson_contentblock01.png
deleted file mode 100644
index 0f5865d..0000000
Binary files a/test_anim__archive1/images/OLLY/lesson_contentblock01.png and /dev/null differ
diff --git a/test_anim__archive1/images/OLLY/lesson_contentblock04.png b/test_anim__archive1/images/OLLY/lesson_contentblock04.png
deleted file mode 100644
index acf132c..0000000
Binary files a/test_anim__archive1/images/OLLY/lesson_contentblock04.png and /dev/null differ
diff --git a/test_anim__archive1/images/OLLY/lesson_contentblock05.png b/test_anim__archive1/images/OLLY/lesson_contentblock05.png
deleted file mode 100644
index 2cd70f8..0000000
Binary files a/test_anim__archive1/images/OLLY/lesson_contentblock05.png and /dev/null differ
diff --git a/test_anim__archive1/images/OLLY/lesson_cover01.png b/test_anim__archive1/images/OLLY/lesson_cover01.png
deleted file mode 100644
index 301a42f..0000000
Binary files a/test_anim__archive1/images/OLLY/lesson_cover01.png and /dev/null differ
diff --git a/test_anim__archive1/images/OLLY/quiz_choosemode.png b/test_anim__archive1/images/OLLY/quiz_choosemode.png
deleted file mode 100644
index 478d0ed..0000000
Binary files a/test_anim__archive1/images/OLLY/quiz_choosemode.png and /dev/null differ
diff --git a/test_anim__archive1/images/OLLY/quiz_quadmode.png b/test_anim__archive1/images/OLLY/quiz_quadmode.png
deleted file mode 100644
index a02327f..0000000
Binary files a/test_anim__archive1/images/OLLY/quiz_quadmode.png and /dev/null differ
diff --git a/test_anim__archive1/index.php b/test_anim__archive1/index.php
deleted file mode 100644
index 8ef5840..0000000
--- a/test_anim__archive1/index.php
+++ /dev/null
@@ -1,76 +0,0 @@
- [
- 'images/LEGACY/apples-averywhere.png',
- 'images/LEGACY/legacy-menu-pause.png',
- 'images/LEGACY/legacy-screen-6.png',
- 'images/LEGACY/legacy-screen-7.png',
- 'images/LEGACY/run-and-eat-to-survive.png',
- 'images/LEGACY/you-won_t-live-forever.png',
- ],
- 'OLLY' => [
- 'images/OLLY/lesson_contentblock01.png',
- 'images/OLLY/lesson_contentblock04.png',
- 'images/OLLY/lesson_contentblock05.png',
- 'images/OLLY/lesson_cover01.png',
- 'images/OLLY/quiz_choosemode.png',
- 'images/OLLY/quiz_quadmode.png',
- ],
-];
-
-$images = $imagesSets[$set];
-$count = count($images);
-$duration = $count * $secondsPerImage; // durée calculée selon le nombre d'images
-
-// Décalage par colonne basé sur le nombre d'images
-// Colonnes 1 et 3 vont dans la même direction, donc décalées de 1/2
-// Colonne 2 va dans l'autre direction, décalée de 1/4
-$columns = [
- ['offset' => 0, 'delay' => 0],
- ['offset' => (int)($count / 3), 'delay' => $duration / 4],
- ['offset' => 0, 'delay' => $duration / 2],
-];
-
-function getShiftedImages($images, $offset) {
- return array_merge(
- array_slice($images, $offset),
- array_slice($images, 0, $offset)
- );
-}
-?>
-
-
-
-
-
- Test Animation Galerie
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test_anim__archive1/style.css b/test_anim__archive1/style.css
deleted file mode 100644
index fe48b32..0000000
--- a/test_anim__archive1/style.css
+++ /dev/null
@@ -1,158 +0,0 @@
-* { margin: 0; padding: 0; box-sizing: border-box; }
-body {
- min-height: 100vh;
-}
-.gallery-animation {
- --gap: 20px;
- --vertical-wrapper-width: 900px;
- --shadow-diffusion: 5px;
- --gallery-animation-width: 40vw;
- --max-portion : 0.7;
- position: fixed;
- top: 0;
- left: 0;
- width: var(--gallery-animation-width);
- height: 100vh;
- overflow: hidden;
-}
-
-.gallery-animation__wrapper {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- display: flex;
- background-color: green;
-}
-
-.gallery-animation__track {
- display: flex;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
-}
-
-.gallery-animation__image {
- object-fit: cover;
- flex-shrink: 0;
- filter: drop-shadow(0px 0px var(--shadow-diffusion) rgb(0, 0, 0));
-}
-
-/* ==========================================================================
- MODE VERTICAL
- ========================================================================== */
-
-.gallery-animation--vertical .gallery-animation__wrapper{
- width: var(--vertical-wrapper-width);
- flex-direction: row;
- justify-content: center;
- padding: 0 var(--gap);
- left: 50%;
- transform: translateX(-50%);
-}
-
-.gallery-animation--vertical .gallery-animation__column {
- width: min(100%, calc(var(--gallery-animation-width) * var(--max-portion)));
- display: flex;
- flex-direction: column;
- align-items: stretch;
- overflow: hidden;
-}
-
-.gallery-animation--vertical .gallery-animation__track {
- flex-direction: column;
- align-items: stretch;
- width: 100%;
- padding-inline: calc(var(--gap) / 2);
-}
-
-.gallery-animation--vertical .gallery-animation__image {
- width: 100%;
- height: auto;
- /* height: calc(100vh * var(--max-portion)); */ /* */
- object-fit: contain;
- margin-block: calc(var(--gap) / 2);
-}
-
-/* Animations verticales */
-.gallery-animation--vertical .gallery-animation__column:nth-child(odd) .gallery-animation__track {
- animation: scrollDown var(--animation-duration) linear infinite;
-}
-
-.gallery-animation--vertical .gallery-animation__column:nth-child(even) .gallery-animation__track {
- animation: scrollUp var(--animation-duration) linear infinite;
-}
-
-
-@keyframes scrollDown {
- from { transform: translateY(0); }
- to { transform: translateY(-50%); }
-}
-
-@keyframes scrollUp {
- from { transform: translateY(-50%); }
- to { transform: translateY(0); }
-}
-
-/* ==========================================================================
- MODE HORIZONTAL
- ========================================================================== */
-
-.gallery-animation--horizontal .gallery-animation__wrapper {
- flex-direction: column;
- padding: var(--gap) 0;
-}
-
-.gallery-animation--horizontal .gallery-animation__column {
- flex: 1;
- display: flex;
- flex-direction: row;
- align-items: stretch;
- overflow: hidden;
-}
-
-.gallery-animation--horizontal .gallery-animation__track {
- flex-direction: row;
- align-items: stretch;
- height: 100%;
- padding-block: calc(var(--gap) / 2);
-}
-
-.gallery-animation--horizontal .gallery-animation__image {
- height: 100%;
- width: auto;
- /* width: calc(var(--gallery-animation-width) * var(--max-portion)); */
- /* width: min(100%, calc(var(--gallery-animation-width) * var(--max-portion))); */
- object-fit: contain;
- margin-inline: calc(var(--gap) / 2);
-}
-
-/* Animations horizontales */
-.gallery-animation--horizontal .gallery-animation__column:nth-child(odd) .gallery-animation__track {
- animation: scrollRight var(--animation-duration) linear infinite;
-}
-
-.gallery-animation--horizontal .gallery-animation__column:nth-child(even) .gallery-animation__track {
- animation: scrollLeft var(--animation-duration) linear infinite;
-}
-
-
-@keyframes scrollRight {
- from { transform: translateX(-50%); }
- to { transform: translateX(0); }
-}
-
-@keyframes scrollLeft {
- from { transform: translateX(0); }
- to { transform: translateX(-50%); }
-}
-
-/* ==========================================================================
- REDUCED MOTION
- ========================================================================== */
-
-@media (prefers-reduced-motion: reduce) {
- .gallery-animation__track {
- animation: none !important;
- }
-}