diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..d4fe758
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,48 @@
+# MIT License
+
+Copyright (c) 2025 **Camélia Studio**
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+---
+
+## Traduction française (non officielle)
+
+Licence MIT
+
+Copyright (c) 2025 **Camélia Studio**
+
+La présente autorise, gratuitement, toute personne obtenant une copie de ce
+logiciel et des fichiers de documentation associés (le "Logiciel") à traiter
+le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser,
+de copier, de modifier, de fusionner, de publier, de distribuer, de concéder
+sous licence et/ou de vendre des copies du Logiciel, et à permettre aux personnes
+auxquelles le Logiciel est fourni de le faire, sous réserve des conditions
+suivantes :
+
+L'avis de copyright ci-dessus et cet avis d'autorisation doivent être inclus
+dans toutes les copies ou parties substantielles du Logiciel.
+
+LE LOGICIEL EST FOURNI "TEL QUEL", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU
+IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE,
+D'ADÉQUATION À UN USAGE PARTICULIER ET DE NON-VIOLATION. EN AUCUN CAS, LES
+AUTEURS OU LES DÉTENTEURS DU COPYRIGHT NE SERONT RESPONSABLES DE TOUTE
+RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION
+CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE
+LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.
\ No newline at end of file
diff --git a/assets/background.png b/assets/background.png
new file mode 100644
index 0000000..7039e1e
Binary files /dev/null and b/assets/background.png differ
diff --git a/assets/favicon.png b/assets/favicon.png
new file mode 100644
index 0000000..b2da3a1
Binary files /dev/null and b/assets/favicon.png differ
diff --git a/assets/script.js b/assets/script.js
new file mode 100644
index 0000000..884f1b9
--- /dev/null
+++ b/assets/script.js
@@ -0,0 +1,26 @@
+document.addEventListener("DOMContentLoaded", () => {
+    const button = document.getElementById("generate");
+    const result = document.getElementById("result");
+    
+    button.addEventListener("click", async () => {
+        try {
+            const bugsResponse = await fetch("data/bugs.json");
+            const featuresResponse = await fetch("data/features.json");
+            
+            if (!bugsResponse.ok || !featuresResponse.ok) {
+                throw new Error("Erreur lors du chargement des fichiers JSON.");
+            }
+            
+            const bugs = await bugsResponse.json();
+            const features = await featuresResponse.json();
+            
+            const bug = bugs.bugs[Math.floor(Math.random() * bugs.bugs.length)];
+            const feature = features.features[Math.floor(Math.random() * features.features.length)];
+            
+            result.textContent = `${bug} ${feature}`;
+        } catch (error) {
+            result.textContent = "Une erreur s'est produite. Veuillez réessayer.";
+            console.error(error);
+        }
+    });
+});
\ No newline at end of file
diff --git a/assets/styles.css b/assets/styles.css
new file mode 100644
index 0000000..e10df65
--- /dev/null
+++ b/assets/styles.css
@@ -0,0 +1,158 @@
+:root {
+    --bg-primary: #1a1b26;
+    --bg-secondary: #24283b;
+    --text-primary: #c0caf5;
+    --text-secondary: #a9b1d6;
+    --accent-primary: #9ece6a;
+    --accent-secondary: #73daca;
+    --error: #f7768e;
+}
+
+* {
+    margin: 0;
+    padding: 0;
+    box-sizing: border-box;
+}
+
+body {
+    font-family: 'Arial', sans-serif;
+    background-color: var(--bg-primary);
+    color: var(--text-primary);
+    line-height: 1.6;
+    min-height: 100vh;
+    display: flex;
+    flex-direction: column;
+}
+
+header {
+    background: linear-gradient(rgba(36, 40, 59, 0.85), rgba(36, 40, 59, 0.85)), url('../assets/background.png');
+    background-size: cover;
+    background-position: center;
+    padding: 2rem 1rem;
+    text-align: center;
+    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
+}
+
+.logo-container {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    gap: 1rem;
+    margin-bottom: 1rem;
+}
+
+.logo {
+    width: 48px;
+    height: 48px;
+}
+
+h1 {
+    color: var(--accent-primary);
+    font-size: 2.5rem;
+    margin-bottom: 0.5rem;
+}
+
+header p {
+    color: var(--text-secondary);
+    font-size: 1.2rem;
+}
+
+main {
+    flex: 1;
+    padding: 2rem 1rem;
+    max-width: 800px;
+    margin: 0 auto;
+    width: 100%;
+    text-align: center;
+}
+
+button {
+    background-color: var(--accent-primary);
+    color: var(--bg-primary);
+    border: none;
+    padding: 1rem 2rem;
+    font-size: 1.2rem;
+    border-radius: 8px;
+    cursor: pointer;
+    transition: transform 0.2s, background-color 0.2s;
+    font-weight: bold;
+}
+
+button:hover {
+    background-color: var(--accent-secondary);
+    transform: translateY(-2px);
+}
+
+button:active {
+    transform: translateY(0);
+}
+
+#result {
+    margin-top: 2rem;
+    padding: 1.5rem;
+    background-color: var(--bg-secondary);
+    border-radius: 8px;
+    font-size: 1.2rem;
+    line-height: 1.6;
+    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+}
+
+footer {
+    background-color: var(--bg-secondary);
+    color: var(--text-secondary);
+    padding: 1.5rem;
+    text-align: center;
+    margin-top: auto;
+}
+
+.footer-content {
+    max-width: 800px;
+    margin: 0 auto;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    flex-wrap: wrap;
+    gap: 1rem;
+}
+
+.footer-content p {
+    margin: 0;
+}
+
+.contribute-link {
+    color: var(--accent-primary);
+    text-decoration: none;
+    display: inline-flex;
+    align-items: center;
+    gap: 0.5rem;
+}
+
+.contribute-link:hover {
+    color: var(--accent-secondary);
+    text-decoration: underline;
+}
+
+@media (max-width: 600px) {
+    h1 {
+        font-size: 2rem;
+    }
+    
+    header p {
+        font-size: 1rem;
+    }
+    
+    button {
+        padding: 0.8rem 1.6rem;
+        font-size: 1rem;
+    }
+    
+    #result {
+        font-size: 1rem;
+        padding: 1rem;
+    }
+    
+    .footer-content {
+        flex-direction: column;
+        text-align: center;
+    }
+}
\ No newline at end of file
diff --git a/data/bugs.json b/data/bugs.json
new file mode 100644
index 0000000..bc888e8
--- /dev/null
+++ b/data/bugs.json
@@ -0,0 +1,50 @@
+{
+    "bugs": [
+      "À cause d'un bug sur le sort Roublardise,",
+      "À cause d'un bug sur les renvois de dommages,",
+      "À cause d'un bug sur l'hôtel des ventes,",
+      "À cause d'un bug sur la gestion des résistances,",
+      "À cause d'un bug sur les caractéristiques des familiers,",
+      "À cause d'un bug sur le système de quêtes,",
+      "À cause d'un bug sur les métiers de récolte,",
+      "À cause d'un bug sur le système de guildes,",
+      "À cause d'un bug sur les montures,",
+      "À cause d'un bug sur les enclos de guilde,",
+      "À cause d'un bug sur les maisons de joueurs,",
+      "À cause d'un bug sur le système de chat,",
+      "À cause d'un bug sur les émoticônes,",
+      "À cause d'un bug sur les échanges entre joueurs,",
+      "À cause d'un bug sur le système de combat,",
+      "À cause d'un bug sur l'affichage des points de vie,",
+      "À cause d'un bug sur les points d'action,",
+      "À cause d'un bug sur les points de mouvement,",
+      "À cause d'un bug sur les sorts communs,",
+      "À cause d'un bug sur les armes,",
+      "À cause d'un bug sur les boucliers,",
+      "À cause d'un bug sur les familiers,",
+      "À cause d'un bug sur les potions de téléportation,",
+      "À cause d'un bug sur les potions de rappel,",
+      "À cause d'un bug sur les potions de cité,",
+      "À cause d'un bug sur les zaaps,",
+      "À cause d'un bug sur les prismes d'alliance,",
+      "À cause d'un bug sur les percepteurs,",
+      "À cause d'un bug sur les avis de recherche,",
+      "À cause d'un bug sur les succès,",
+      "À cause d'un bug sur les titres et ornements,",
+      "À cause d'un bug sur les challenges en combat,",
+      "À cause d'un bug sur les donjons modulaires,",
+      "À cause d'un bug sur les compagnons,",
+      "À cause d'un bug sur les invocations,",
+      "À cause d'un bug sur l'affichage des états,",
+      "À cause d'un bug sur les coups critiques,",
+      "À cause d'un bug sur les résistances élémentaires,",
+      "À cause d'un bug sur les maîtrises d'armes,",
+      "À cause d'un bug sur les animations de sorts,",
+      "À cause d'un bug sur les effets visuels,",
+      "À cause d'un bug sur les sons en combat,",
+      "À cause d'un bug sur les musiques d'ambiance,",
+      "À cause d'un bug sur les notifications,",
+      "À cause d'un bug sur les raccourcis clavier,",
+      "À cause d'un bug sur l'interface utilisateur,"
+    ]
+  }
diff --git a/data/features.json b/data/features.json
new file mode 100644
index 0000000..1ae0da3
--- /dev/null
+++ b/data/features.json
@@ -0,0 +1,56 @@
+{
+    "features": [
+      "vous ne pouvez plus accéder à votre havre-sac.",
+      "le donjon Glourséleste a été désactivé.",
+      "les raccourcis claviers ont été réinitialisés.",
+      "les prismes d'alliance ne fonctionnent plus.",
+      "les potions de rappel vous téléportent à un emplacement aléatoire.",
+      "les percepteurs refusent de récolter des ressources.",
+      "les montiliers avancent à reculons.",
+      "les sorts de soin infligent désormais des dégâts.",
+      "les succès ne se débloquent plus.",
+      "les objets équipés disparaissent après un combat.",
+      "les quêtes principales ne progressent plus.",
+      "les enclos de guilde sont devenus inaccessibles.",
+      "les PNJ ne parlent plus.",
+      "les monstres ne lâchent plus de butin.",
+      "les HDV vendent les objets à un prix aléatoire.",
+      "les alliances de guildes sont dissoutes après chaque maintenance.",
+      "les défis entre joueurs provoquent une déconnexion immédiate.",
+      "les personnages perdent leurs points de vie en dehors des combats.",
+      "les échanges entre joueurs sont désactivés.",
+      "les familiers refusent de manger.",
+      "les animations de sorts ne se déclenchent plus.",
+      "les maps de certaines zones sont remplacées par un écran noir.",
+      "les joueurs ne peuvent plus entrer dans les tavernes.",
+      "les dopeuls ne donnent plus d'expérience.",
+      "les caractéristiques des personnages sont inversées.",
+      "les sorts à longue portée ne fonctionnent que au corps-à-corps.",
+      "les équipements perdent leurs bonus aléatoirement.",
+      "les monstres ignorent les joueurs et quittent le combat.",
+      "les boosts de statistiques disparaissent au lancement d’un combat.",
+      "les titres et ornements s’effacent à chaque connexion.",
+      "les potions de cité vous envoient dans la dimension Srambad.",
+      "les portails Eliotropes conduisent toujours à la même destination.",
+      "les personnages ne peuvent plus monter en niveau.",
+      "les parchemins de caractéristiques sont devenus inutilisables.",
+      "équiper un bouclier augmente les dégâts reçus.",
+      "toutes les invocations attaquent aléatoirement alliés et ennemis.",
+      "les familiers gagnent de l’énergie au lieu d’en perdre.",
+      "les coups critiques ont disparu du jeu.",
+      "les banques des joueurs se vident après chaque maintenance.",
+      "les sorts de déplacement ne fonctionnent plus en combat.",
+      "les invocations se retournent contre leur invocateur.",
+      "les dragodindes refusent de se reproduire.",
+      "les objets de quête sont échangés avec des objets inutiles.",
+      "les équipements perdent aléatoirement des stats après un combat.",
+      "les interfaces de discussion affichent des messages aléatoires.",
+      "les récompenses de succès sont attribuées aux mauvais personnages.",
+      "les zaaps changent leur destination de manière imprévisible.",
+      "les échanges entre deux membres d'une même guilde suppriment les objets transférés.",
+      "les consommables restaurent moins de points de vie qu’indiqué.",
+      "lors des combats JcJ les statistiques des bonus de panoplies ne s'appliquent plus.",
+      "les personnages se figent après un combat et doivent se reconnecter."
+    ]
+  }
+  
\ No newline at end of file
diff --git a/data/liste-bugs.json b/data/liste-bugs.json
new file mode 100644
index 0000000..d0cf718
--- /dev/null
+++ b/data/liste-bugs.json
@@ -0,0 +1,50 @@
+{
+    "bugs": [
+      "À cause d'un bug sur le sort Roublardise",
+      "À cause d'un bug sur les renvois de dommages",
+      "À cause d'un bug sur l'hôtel des ventes",
+      "À cause d'un bug sur la gestion des résistances",
+      "À cause d'un bug sur les caractéristiques des familiers",
+      "À cause d'un bug sur le système de quêtes",
+      "À cause d'un bug sur les métiers de récolte",
+      "À cause d'un bug sur le système de guildes",
+      "À cause d'un bug sur les montures",
+      "À cause d'un bug sur les enclos de guilde",
+      "À cause d'un bug sur les maisons de joueurs",
+      "À cause d'un bug sur le système de chat",
+      "À cause d'un bug sur les émoticônes",
+      "À cause d'un bug sur les échanges entre joueurs",
+      "À cause d'un bug sur le système de combat",
+      "À cause d'un bug sur l'affichage des points de vie",
+      "À cause d'un bug sur les points d'action",
+      "À cause d'un bug sur les points de mouvement",
+      "À cause d'un bug sur les sorts communs",
+      "À cause d'un bug sur les armes",
+      "À cause d'un bug sur les boucliers",
+      "À cause d'un bug sur les familiers",
+      "À cause d'un bug sur les potions de téléportation",
+      "À cause d'un bug sur les potions de rappel",
+      "À cause d'un bug sur les potions de cité",
+      "À cause d'un bug sur les zaaps",
+      "À cause d'un bug sur les prismes d'alliance",
+      "À cause d'un bug sur les percepteurs",
+      "À cause d'un bug sur les avis de recherche",
+      "À cause d'un bug sur les succès",
+      "À cause d'un bug sur les titres et ornements",
+      "À cause d'un bug sur les challenges en combat",
+      "À cause d'un bug sur les donjons modulaires",
+      "À cause d'un bug sur les compagnons",
+      "À cause d'un bug sur les invocations",
+      "À cause d'un bug sur l'affichage des états",
+      "À cause d'un bug sur les coups critiques",
+      "À cause d'un bug sur les résistances élémentaires",
+      "À cause d'un bug sur les maîtrises d'armes",
+      "À cause d'un bug sur les animations de sorts",
+      "À cause d'un bug sur les effets visuels",
+      "À cause d'un bug sur les sons en combat",
+      "À cause d'un bug sur les musiques d'ambiance",
+      "À cause d'un bug sur les notifications",
+      "À cause d'un bug sur les raccourcis clavier",
+      "À cause d'un bug sur l'interface utilisateur"
+    ]
+  }
diff --git a/data/liste-features.json b/data/liste-features.json
new file mode 100644
index 0000000..1ae0da3
--- /dev/null
+++ b/data/liste-features.json
@@ -0,0 +1,56 @@
+{
+    "features": [
+      "vous ne pouvez plus accéder à votre havre-sac.",
+      "le donjon Glourséleste a été désactivé.",
+      "les raccourcis claviers ont été réinitialisés.",
+      "les prismes d'alliance ne fonctionnent plus.",
+      "les potions de rappel vous téléportent à un emplacement aléatoire.",
+      "les percepteurs refusent de récolter des ressources.",
+      "les montiliers avancent à reculons.",
+      "les sorts de soin infligent désormais des dégâts.",
+      "les succès ne se débloquent plus.",
+      "les objets équipés disparaissent après un combat.",
+      "les quêtes principales ne progressent plus.",
+      "les enclos de guilde sont devenus inaccessibles.",
+      "les PNJ ne parlent plus.",
+      "les monstres ne lâchent plus de butin.",
+      "les HDV vendent les objets à un prix aléatoire.",
+      "les alliances de guildes sont dissoutes après chaque maintenance.",
+      "les défis entre joueurs provoquent une déconnexion immédiate.",
+      "les personnages perdent leurs points de vie en dehors des combats.",
+      "les échanges entre joueurs sont désactivés.",
+      "les familiers refusent de manger.",
+      "les animations de sorts ne se déclenchent plus.",
+      "les maps de certaines zones sont remplacées par un écran noir.",
+      "les joueurs ne peuvent plus entrer dans les tavernes.",
+      "les dopeuls ne donnent plus d'expérience.",
+      "les caractéristiques des personnages sont inversées.",
+      "les sorts à longue portée ne fonctionnent que au corps-à-corps.",
+      "les équipements perdent leurs bonus aléatoirement.",
+      "les monstres ignorent les joueurs et quittent le combat.",
+      "les boosts de statistiques disparaissent au lancement d’un combat.",
+      "les titres et ornements s’effacent à chaque connexion.",
+      "les potions de cité vous envoient dans la dimension Srambad.",
+      "les portails Eliotropes conduisent toujours à la même destination.",
+      "les personnages ne peuvent plus monter en niveau.",
+      "les parchemins de caractéristiques sont devenus inutilisables.",
+      "équiper un bouclier augmente les dégâts reçus.",
+      "toutes les invocations attaquent aléatoirement alliés et ennemis.",
+      "les familiers gagnent de l’énergie au lieu d’en perdre.",
+      "les coups critiques ont disparu du jeu.",
+      "les banques des joueurs se vident après chaque maintenance.",
+      "les sorts de déplacement ne fonctionnent plus en combat.",
+      "les invocations se retournent contre leur invocateur.",
+      "les dragodindes refusent de se reproduire.",
+      "les objets de quête sont échangés avec des objets inutiles.",
+      "les équipements perdent aléatoirement des stats après un combat.",
+      "les interfaces de discussion affichent des messages aléatoires.",
+      "les récompenses de succès sont attribuées aux mauvais personnages.",
+      "les zaaps changent leur destination de manière imprévisible.",
+      "les échanges entre deux membres d'une même guilde suppriment les objets transférés.",
+      "les consommables restaurent moins de points de vie qu’indiqué.",
+      "lors des combats JcJ les statistiques des bonus de panoplies ne s'appliquent plus.",
+      "les personnages se figent après un combat et doivent se reconnecter."
+    ]
+  }
+  
\ No newline at end of file
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..3e009ee
--- /dev/null
+++ b/index.php
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="fr">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>À cause de Flash</title>
+    <meta name="description" content="T'inquiète frère, une fois sur le moteur Unity il n'y aura plus aucun soucis !">
+    <link rel="stylesheet" href="assets/styles.css">
+    <link rel="icon" type="image/png" href="assets/favicon.png">
+</head>
+<body>
+    <header>
+        <div class="logo-container">
+            <img src="assets/favicon.png" alt="Logo À cause de Flash" class="logo">
+            <h1>À cause de Flash</h1>
+        </div>
+        <p>T'inquiète frère, une fois sur le moteur Unity il n'y aura plus aucun soucis !</p>
+    </header>
+    
+    <main>
+        <button id="generate">Générer une phrase</button>
+        <p id="result"></p>
+    </main>
+    
+    <footer>
+        <div class="footer-content">
+            <p>© 2025 <a href="https://camelia-studio.org/" class="contribute-link" target="_blank" rel="noopener">Camélia Studio</a> (licence MIT) - Site non officiel sur Dofus</p>
+            <a href="https://git.crystalyx.net/camelia-studio/A-cause-de-Flash" class="contribute-link" target="_blank" rel="noopener">
+                Venir sur Gitea ajouter des bugs !
+            </a>
+        </div>
+    </footer>
+    
+    <script src="assets/script.js"></script>
+</body>
+</html>
\ No newline at end of file