# MédailleCollect — site de présentation

Site statique en HTML, CSS et JavaScript. Aucun build ni installation de dépendances nécessaire. L’application web est un service distinct, accessible depuis les liens du site.

## Prévisualisation

Depuis ce dossier, lancer un serveur HTTP statique, par exemple :

```sh
python -m http.server 4173 --bind 127.0.0.1
```

Ouvrir `http://127.0.0.1:4173`. Le serveur HTTP permet aux avis de charger `reviews.json` ; une ouverture directe en `file://` peut bloquer ce chargement.

## Organisation

- `index.html` : accueil, présentation des collections, captures interactives et téléchargements.
- `stats.html`, `avis.html`, `versions.html`, `reseaux.html`, `alexandre.html` : pages du projet.
- `cgu.html`, `confidentialite.html` : textes juridiques.
- `assets/site.css` : mise en page responsive, couleurs, composants et thèmes.
- `assets/experience.css` : illustrations de collection et effets visuels.
- `assets/atelier.css` : surfaces crème, sauge et or, reliefs et galerie des huit écrans.
- `assets/coin-3d.js` : moteur WebGL partagé entre la médaille gravée et le billet souvenir, avec deux faces et rotation interactive.
- `assets/medal-face.svg`, `assets/ticket-face.svg` : illustrations de secours si WebGL est indisponible.
- `assets/theme.js` : restauration du thème avant l’affichage.
- `assets/site.js` : navigation, thèmes, onglets accessibles et fenêtres de dialogue.
- `assets/experience.js` : animations, préférence de mouvement, effets de survol et agrandissement des captures.
- `assets/reviews.js` : affichage des avis, filtres et réponses.
- `assets/stats.js` : statistiques publiques et historique des inscriptions.
- `reviews.json` et `scrape_reviews.py` : avis et script de récupération existant.

## Captures et animations

Conserver les proportions natives des images : les attributs `width` et `height` décrivent leurs dimensions originales, le CSS adapte la largeur avec une hauteur automatique. Les cadres d’aperçu affichent les images entières.

Les huit captures WebP de `screenshots/` couvrent l’accueil, le catalogue, l’exploration, la collection, la photothèque, l’atlas, la timeline et le profil. Leur format natif est de 665 × 1440 pixels. Chaque aperçu peut être agrandi.

La médaille utilise WebGL natif, sans moteur externe ni modèle à télécharger. Faites-la glisser horizontalement, utilisez les flèches du clavier ou les boutons recto/verso et recentrage. Son rendu s’arrête hors écran et en arrière-plan ; le réglage de réduction des mouvements suspend les mouvements automatiques, tout en conservant les commandes manuelles. Une illustration SVG reste visible sans JavaScript ou sans WebGL.

L’onglet « Billets 0 € » utilise les mêmes commandes et préférences. Le billet possède une légère courbure, une tranche fine, deux illustrations distinctes et une bande aux reflets irisés. Ses faces sont dessinées localement, sans chargement externe ; il s’agit d’une illustration de billet souvenir.

Les animations utilisent CSS, IntersectionObserver et Web Animations, sans bibliothèque supplémentaire. Les boucles fonctionnent uniquement dans les sections visibles. Le bouton « Animations actives » permet de les désactiver ; la préférence est mémorisée localement. Le réglage système de réduction des mouvements est prioritaire. Sans JavaScript, les contenus et les liens restent lisibles.

## Données et publication

Les avis proviennent de `reviews.json`. Les statistiques conservent les endpoints publics existants du service Railway (`/stats/public` et `/stats/users/history`). En cas d’indisponibilité, le site affiche un message explicite, sans inventer de données. Les polices Google Fonts et Chart.js nécessitent un accès réseau.

Pour publier, transférer les huit pages HTML, les dossiers `assets/`, `logo/`, `screenshots/` et `reviews.json` vers l’hébergement statique existant. Conserver le script de récupération des avis à son emplacement d’exécution si une tâche serveur l’utilise. Les fichiers `.save` ne sont pas nécessaires au site.

Les originaux et les résultats de vérification locale sont sauvegardés à côté du projet, dans `../.medaillecollect-backups/` ; ce dossier ne fait pas partie des fichiers à publier.
