diff --git a/legacy/admin.html b/legacy/admin.html
deleted file mode 100644
index 639a447..0000000
--- a/legacy/admin.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-Fragen-Admin
-
-
-
-
-
-Fragen-Editor
-
-
-
-Neue Frage hinzufügen
-
-
-
-
- Hinzufügen
-
-
-
-
-
diff --git a/legacy/css/style.css b/legacy/css/style.css
deleted file mode 100644
index 3541ef6..0000000
--- a/legacy/css/style.css
+++ /dev/null
@@ -1,160 +0,0 @@
-:root {
- --bg: #0b0b15;
- --fg: #f5f5f5;
- --accent: #c9a86a;
- --accent-soft: #e6c98f;
- --box-bg: rgba(255,255,255,0.05);
-}
-body {
- background: var(--bg);
- color: var(--fg);
- font-family: "Georgia", serif;
- text-align: center;
- padding: 20px;
-}
-.hidden { display: none; }
-
-.box {
- border: 2px solid var(--accent);
- padding: 20px;
- margin: 20px auto;
- width: 90%;
- max-width: 600px;
- background: var(--box-bg);
- border-radius: 10px;
-}
-
-input, textarea {
- padding: 10px;
- border-radius: 5px;
- border: none;
- margin-top: 10px;
- width: 80%;
- max-width: 250px;
- text-align: center;
-}
-
-button {
- padding: 10px 20px;
- background: var(--accent);
- border: none;
- border-radius: 5px;
- cursor: pointer;
- margin-top: 10px;
- font-weight: bold;
- color: #000;
-}
-button:hover {
- background: var(--accent-soft);
-}
-
-/* Fortschrittsleiste */
-.progress-container {
- width: 90%;
- max-width: 600px;
- margin: 10px auto;
- background: rgba(255,255,255,0.1);
- border-radius: 10px;
- border: 1px solid var(--accent);
- overflow: hidden;
-}
-.progress-bar {
- height: 14px;
- background: linear-gradient(90deg, #c9a86a, #e6c98f);
- width: 0%;
- transition: width 0.3s;
-}
-
-/* Briefumschlag */
-.intro-envelope {
- position: relative;
- width: 220px;
- height: 150px;
- margin: 0 auto 20px;
-}
-
-.envelope-body {
- width: 100%;
- height: 100%;
- background: #f5f5dc;
- border-radius: 5px;
- border: 2px solid #c9a86a;
- position: relative;
- overflow: hidden;
- z-index: 1;
-}
-
-.envelope-flap {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background: #e6d8a8;
- clip-path: polygon(0 0, 50% 60%, 100% 0);
- transform-origin: top;
- transition: transform 0.8s ease-in-out;
- z-index: 2;
-}
-
-.open .envelope-flap {
- transform: rotateX(180deg);
-}
-
-.sparkle::after {
- content: "";
- position: absolute;
- top: -10px;
- left: 50%;
- width: 6px;
- height: 6px;
- border-radius: 50%;
- background: #ffeaa7;
- box-shadow:
- 0 0 8px #ffeaa7,
- -20px -10px 6px rgba(255,255,255,0.6),
- 15px -5px 6px rgba(255,255,255,0.5),
- -10px 10px 6px rgba(255,255,255,0.4),
- 20px 15px 6px rgba(255,255,255,0.5);
- animation: sparkle 0.7s ease-out forwards;
-}
-
-@keyframes sparkle {
- from { opacity: 1; transform: translate(-50%, 0) scale(1); }
- to { opacity: 0; transform: translate(-50%, -20px) scale(0.5); }
-}
-
-/* loesungen.html */
-.loesungen-list .box {
- background: #222;
- border-left: 4px solid var(--accent);
- border: none;
-}
-
-/* vorschlag.html & admin.html */
-body.light-theme {
- background: #f5f5f5;
- color: #000;
-}
-body.light-theme .box {
- background: white;
- box-shadow: 0 0 5px rgba(0,0,0,0.1);
-}
-
-textarea {
- resize: vertical;
- font-family: Arial, sans-serif;
-}
-
-label {
- display: block;
- margin-top: 15px;
- text-align: left;
- font-weight: bold;
-}
-
-/* admin.html */
-.box strong {
- display: block;
- margin-bottom: 10px;
-}
\ No newline at end of file
diff --git a/legacy/error/400.html b/legacy/error/400.html
deleted file mode 100644
index 582012e..0000000
--- a/legacy/error/400.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-400 – Verirrter Zauber
-
-
-
-
-
-
-
diff --git a/legacy/error/401.html b/legacy/error/401.html
deleted file mode 100644
index b791376..0000000
--- a/legacy/error/401.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-401 – Zutritt nur für Zauberer
-
-
-
-
-
-
401 – Zutritt nur für Zauberer
-
Für diesen Bereich brauchst du noch eine magische Legitimation.
-
Zurück zum magischen Quiz
-
-
-
diff --git a/legacy/error/403.html b/legacy/error/403.html
deleted file mode 100644
index 3badc78..0000000
--- a/legacy/error/403.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-403 – Verbotener Bereich
-
-
-
-
-
-
-
diff --git a/legacy/error/404.html b/legacy/error/404.html
deleted file mode 100644
index f8f4f0c..0000000
--- a/legacy/error/404.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-404 – Karte des Rumtreibers leer
-
-
-
-
-
-
-
diff --git a/legacy/error/405.html b/legacy/error/405.html
deleted file mode 100644
index c11a814..0000000
--- a/legacy/error/405.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-405 – Unzulässiger Zauber
-
-
-
-
-
-
-
diff --git a/legacy/error/500.html b/legacy/error/500.html
deleted file mode 100644
index c48a164..0000000
--- a/legacy/error/500.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-500 – Explosion im Zaubertrank-Labor
-
-
-
-
-
-
500 – Explosion im Zaubertrank-Labor
-
Irgendetwas ist gründlich schiefgegangen. Die Hauselfen räumen schon auf.
-
Zurück zum magischen Quiz
-
-
-
diff --git a/legacy/error/502.html b/legacy/error/502.html
deleted file mode 100644
index e6ecd3f..0000000
--- a/legacy/error/502.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-502 – Fehlgeleiteter Eulenflug
-
-
-
-
-
-
-
diff --git a/legacy/error/503.html b/legacy/error/503.html
deleted file mode 100644
index 4e1ca8f..0000000
--- a/legacy/error/503.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-503 – Zaubereiministerium beschäftigt
-
-
-
-
-
-
503 – Zaubereiministerium beschäftigt
-
Die magischen Dienste sind gerade ausgelastet. Versuche es später erneut.
-
Zurück zum magischen Quiz
-
-
-
diff --git a/legacy/favicon.ico b/legacy/favicon.ico
deleted file mode 100644
index 7a6c687..0000000
Binary files a/legacy/favicon.ico and /dev/null differ
diff --git a/legacy/finale.html b/legacy/finale.html
deleted file mode 100644
index e6f4780..0000000
--- a/legacy/finale.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-Finale – Magisches Quiz
-
-
-
-
-
-
-
🎉 Happy Birthday Schatz 🎉
-
-
-
💛 Der Gewinn ist ein schöner Abend Zuhause 💛
-
- Wir holen uns lecker essen und machen es uns gemütlich, entspannen, lachen und genießen die Zeit zusammen.
- Wir kaufen ein Online escape game. Nach deiner Wahl, da ich nicht mehr weiß welche wir hatten.
-
-
-
Ich freue mich auf unseren Abend.
-
-
Erneut spielen
-
-
-
-
-
diff --git a/legacy/fragen.json b/legacy/fragen.json
deleted file mode 100644
index f4eedac..0000000
--- a/legacy/fragen.json
+++ /dev/null
@@ -1,77 +0,0 @@
-[
- {
- "frage": "Wie lautet der zweite Vorname von Harry?",
- "antwort": "james",
- "tipp": "Er stammt von seinem Vater."
- },
- {
- "frage": "Wie heißt die Hüterin der verbotenen Abteilung?",
- "antwort": "madam pince",
- "tipp": "Ihr Nachname klingt wie 'zwicken'."
- },
- {
- "frage": "Welches magische Wesen bewacht die Kammer des Schreckens?",
- "antwort": "basilisk",
- "tipp": "Ein tödlicher Blick."
- },
- {
- "frage": "Wie lautet der Vorname von Dumbledores Bruder?",
- "antwort": "aberforth",
- "tipp": "Er betreibt den Eberkopf."
- },
- {
- "frage": "Welcher Zauber versiegelt Türen?",
- "antwort": "colloportus",
- "tipp": "Kommt im fünften Band häufig vor."
- },
- {
- "frage": "Wie heißt der Hauself der Familie Black?",
- "antwort": "kreacher",
- "tipp": "Er ist nicht besonders freundlich."
- },
- {
- "frage": "Wie lautet der Zauber, der Gegner entwaffnet?",
- "antwort": "expelliarmus",
- "tipp": "Harry benutzt ihn ständig."
- },
- {
- "frage": "Mein Lieblingsessen?",
- "antwort": "Raclette",
- "tipp": "Käse :)"
- },
- {
- "frage": "Dein Lieblingsessen?",
- "antwort": "Ravioli",
- "tipp": "Gefüllt ist's. "
- },
- {
- "frage": "Wo haben wir uns das erste mal geküsst?",
- "antwort": "Olching",
- "tipp": "Nur der Ort ist wichtig"
- },
- {
- "frage": "Mein erster Geburtstagskuchen für dich?",
- "antwort": "Donauwelle",
- "tipp": "Erst gestern war es witztig"
- },
- {
- "frage": "Erster Urlaub?",
- "antwort": "Den Haag",
- "tipp": "Nicht das land sondern der Ort"
- },
- {
- "frage": "Lieblingskörperstelle?",
- "antwort": "Ombelico",
- "tipp": "Es hat so schön geprickelt"
- },
- {
- "frage": "Als filmpaar sind wir am ehesten?",
- "antwort": "Monroe&Rosalee",
- "tipp": "Grimm ist die Serie"
- },
- {
- "frage": "Wie heißt unser erster Hund?",
- "antwort": "Molly",
- "tipp": "mal was einfaches"
- }
-]
diff --git a/legacy/fragen_vorschlaege.json b/legacy/fragen_vorschlaege.json
deleted file mode 100644
index 08d0c46..0000000
--- a/legacy/fragen_vorschlaege.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
- {
- "frage": "Hagrid schlüsselbund hat wie viele Schlüssel?",
- "antwort": "7",
- "tipp": "weil es immer 3,5 oder 7 sind."
- }
-]
\ No newline at end of file
diff --git a/legacy/index.html b/legacy/index.html
deleted file mode 100644
index 0ca7601..0000000
--- a/legacy/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-Magisches Harry-Potter-Escape-Quiz
-
-
-
-
-
-
-
-✨ Magisches Spatzi-Quiz ✨
-
-
-Hauspunkte: 0
-
-
-
-
Ein verzauberter Briefumschlag ist vor dir erschienen.
-
Brief öffnen
-
-
-
-
-
-
-
diff --git a/legacy/js/admin.js b/legacy/js/admin.js
deleted file mode 100644
index b95a3ad..0000000
--- a/legacy/js/admin.js
+++ /dev/null
@@ -1,54 +0,0 @@
-let daten = [];
-
-async function load() {
- const res = await fetch("fragen.json");
- daten = await res.json();
- render();
-}
-
-function render() {
- const container = document.getElementById("fragen");
- container.innerHTML = "";
-
- daten.forEach((f, i) => {
- container.innerHTML += `
-
- Frage ${i+1}
-
-
-
- Löschen
-
- `;
- });
-}
-
-function edit(i, field, value) {
- daten[i][field] = value;
- save();
-}
-
-function addFrage() {
- daten.push({
- frage: document.getElementById("newFrage").value,
- antwort: document.getElementById("newAntwort").value,
- tipp: document.getElementById("newTipp").value
- });
- save();
-}
-
-function removeFrage(i) {
- daten.splice(i, 1);
- save();
-}
-
-async function save() {
- await fetch("save.php", {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify(daten)
- });
- load();
-}
-
-load();
diff --git a/legacy/js/finale.js b/legacy/js/finale.js
deleted file mode 100644
index 86445bc..0000000
--- a/legacy/js/finale.js
+++ /dev/null
@@ -1,10 +0,0 @@
-function getParam(name) {
- const params = new URLSearchParams(window.location.search);
- return params.get(name);
-}
-
-const score = getParam("score") || 0;
-const max = getParam("max") || 10;
-
-document.getElementById("scoreText").innerText =
- `Du hast ${score} von ${max} möglichen Hauspunkten erreicht.`;
diff --git a/legacy/js/index.js b/legacy/js/index.js
deleted file mode 100644
index 4bee0d1..0000000
--- a/legacy/js/index.js
+++ /dev/null
@@ -1,110 +0,0 @@
-function levenshtein(a, b) {
- const matrix = Array.from({ length: a.length + 1 }, (_, i) =>
- Array.from({ length: b.length + 1 }, (_, j) =>
- i === 0 ? j : j === 0 ? i : 0
- )
- );
- for (let i = 1; i <= a.length; i++) {
- for (let j = 1; j <= b.length; j++) {
- matrix[i][j] = Math.min(
- matrix[i - 1][j] + 1,
- matrix[i][j - 1] + 1,
- matrix[i - 1][j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1)
- );
- }
- }
- return matrix[a.length][b.length];
-}
-
-let fragen = [];
-let index = 0;
-let punkte = 0;
-let versuche = [];
-
-function startGame() {
- document.getElementById("envelope").classList.add("open");
-
- setTimeout(() => {
- document.getElementById("intro").classList.add("hidden");
- document.getElementById("bgm").play();
- loadQuestions();
- }, 900);
-}
-
-async function loadQuestions() {
- const res = await fetch("fragen.json");
- fragen = await res.json();
-
- versuche = Array(fragen.length).fill(0);
-
- renderFrage();
- updateProgress();
-}
-
-function renderFrage() {
- const f = fragen[index];
- document.getElementById("questions").innerHTML = `
-
-
Frage ${index + 1}
-
${f.frage}
-
-
Prüfen
-
Tipp
-
${f.tipp}
-
Versuche: 0 / 3
-
-
- `;
-}
-
-function showTip() {
- document.getElementById("tipp").classList.remove("hidden");
-}
-
-function check() {
- const input = document.getElementById("antwort").value.toLowerCase().trim();
- const korrekt = fragen[index].antwort.toLowerCase().trim();
-
- versuche[index]++;
- document.getElementById("versuche").innerText = `Versuche: ${versuche[index]} / 3`;
-
- const dist = levenshtein(input, korrekt);
-
- if (dist <= 2) {
- punkte++;
- addSparkle();
- next();
- return;
- }
-
- if (versuche[index] >= 3) {
- next();
- return;
- }
-
- document.getElementById("feedback").innerText = "Leider falsch.";
-}
-
-function addSparkle() {
- const el = document.getElementById("frageBox");
- el.classList.add("sparkle");
- setTimeout(() => el.classList.remove("sparkle"), 700);
-}
-
-function next() {
- index++;
- updateProgress();
-
- if (index >= fragen.length) {
- window.location.href = `finale.html?score=${punkte}&max=${fragen.length}`;
- return;
- }
-
- renderFrage();
-}
-
-function updateProgress() {
- const percent = (index / fragen.length) * 100;
- document.getElementById("progressBar").style.width = percent + "%";
- document.getElementById("progressLabel").innerText = `Hauspunkte: ${punkte}`;
-}
diff --git a/legacy/js/loesungen.js b/legacy/js/loesungen.js
deleted file mode 100644
index bd8c3e9..0000000
--- a/legacy/js/loesungen.js
+++ /dev/null
@@ -1,17 +0,0 @@
-async function load() {
- const res = await fetch("fragen.json");
- const fragen = await res.json();
-
- const container = document.getElementById("loesungen");
-
- fragen.forEach((f, i) => {
- container.innerHTML += `
-
- ${i + 1}. ${f.frage}
- ${f.antwort}
-
- `;
- });
-}
-
-load();
diff --git a/legacy/js/vorschlag.js b/legacy/js/vorschlag.js
deleted file mode 100644
index 570fa40..0000000
--- a/legacy/js/vorschlag.js
+++ /dev/null
@@ -1,31 +0,0 @@
-async function send() {
- const frage = document.getElementById("frage").value.trim();
- const antwort = document.getElementById("antwort").value.trim();
- const tipp = document.getElementById("tipp").value.trim();
-
- if (!frage || !antwort) {
- alert("Bitte mindestens Frage und Antwort ausfüllen.");
- return;
- }
-
- const payload = {
- frage: frage,
- antwort: antwort,
- tipp: tipp
- };
-
- const res = await fetch("save_vorschlag.php", {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify(payload)
- });
-
- if (res.ok) {
- alert("Danke! Dein Vorschlag wurde gespeichert.");
- document.getElementById("frage").value = "";
- document.getElementById("antwort").value = "";
- document.getElementById("tipp").value = "";
- } else {
- alert("Fehler beim Speichern. Bitte später erneut versuchen.");
- }
-}
diff --git a/legacy/loesungen.html b/legacy/loesungen.html
deleted file mode 100644
index 92a82bf..0000000
--- a/legacy/loesungen.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-Lösungen – Magisches Quiz
-
-
-
-
-🔐 Lösungen zum Harry-Potter-Escape-Quiz
-
-
-
-
-
diff --git a/legacy/robots.txt b/legacy/robots.txt
deleted file mode 100644
index 7d329b1..0000000
--- a/legacy/robots.txt
+++ /dev/null
@@ -1 +0,0 @@
-User-agent: *
diff --git a/legacy/save.php b/legacy/save.php
deleted file mode 100644
index d661859..0000000
--- a/legacy/save.php
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/legacy/save_vorschlag.php b/legacy/save_vorschlag.php
deleted file mode 100644
index c73a371..0000000
--- a/legacy/save_vorschlag.php
+++ /dev/null
@@ -1,37 +0,0 @@
- "Ungültige Daten"]);
- exit;
-}
-
-// Existierende Vorschläge laden
-$existing = [];
-if (file_exists($file)) {
- $json = file_get_contents($file);
- $existing = json_decode($json, true);
- if (!is_array($existing)) {
- $existing = [];
- }
-}
-
-// Neuen Vorschlag anhängen
-$existing[] = $data;
-
-// Datei speichern
-if (file_put_contents($file, json_encode($existing, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE))) {
- echo json_encode(["success" => true]);
-} else {
- http_response_code(500);
- echo json_encode(["error" => "Konnte Datei nicht schreiben"]);
-}
-?>
diff --git a/legacy/vorschlag.html b/legacy/vorschlag.html
deleted file mode 100644
index d4b421f..0000000
--- a/legacy/vorschlag.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-Frage vorschlagen
-
-
-
-
-
-✨ Frage vorschlagen ✨
-
-Hier kannst du eine neue Frage für das Quiz vorschlagen.
-Die Frage wird gespeichert und später geprüft.
-
-
- Frage:
-
-
- Antwort:
-
-
- Tipp (optional):
-
-
- Vorschlag einreichen
-
-
-
-
-