Textsystem: Bis-Strich mit Leerzeichen (Zahl – Zahl) per Agent-Sweep

562 Ersetzungen in 50 Dateien: Halbgeviertstrich zwischen zwei Ziffern (=
"bis"-Bereich) bekommt Leerzeichen davor/danach (3–4 -> 3 – 4). Regex
/([0-9])\s*–\s*(?=[0-9])/ auf Rohtext (format-erhaltend, CRLF/Einrueckung
unveraendert), Bindestriche in Woertern und Minuszeichen unangetastet, alle
JSON weiter gueltig. Energiemanager-Zeitbloecke sind Display-Labels (kein
Logik-Key) -> safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-22 12:38:19 +02:00
parent 9c99359d9c
commit fecd8bb9c9
139 changed files with 1827 additions and 411 deletions
+2 -2
View File
@@ -103,7 +103,7 @@
],
"didactic": {
"topic": "Pannenhilfe, Fahrzeugtechnik",
"sachinfo": "Laut TÜV Süd Bus-Report ist die Reifenpanne mit ≈ 35 % aller Bus-Notfälle die häufigste Pannenursache. Reisebusse haben 6 Räder (2 vorne, 4 hinten als Zwillingsbereifung). Ein Bus-Reifen wiegt 60 kg, kostet 400700 €, hält ca. 150.000 km. Auf Autobahn-Pannenstreifen ist die Warndreieck-Distanz 100 m (vs. 50 m auf Landstraße).",
"sachinfo": "Laut TÜV Süd Bus-Report ist die Reifenpanne mit ≈ 35 % aller Bus-Notfälle die häufigste Pannenursache. Reisebusse haben 6 Räder (2 vorne, 4 hinten als Zwillingsbereifung). Ein Bus-Reifen wiegt 60 kg, kostet 400 700 €, hält ca. 150.000 km. Auf Autobahn-Pannenstreifen ist die Warndreieck-Distanz 100 m (vs. 50 m auf Landstraße).",
"lehrplan": ["Verkehrserziehung: Pannenhilfe, Warnsystem", "Physik: Reibung, Materialermüdung", "GW: Wirtschaft (Reparatur-Kosten)"],
"glossary": ["panne", "warndreieck", "zwillingsbereifung"]
}
@@ -278,7 +278,7 @@
],
"didactic": {
"topic": "Winter-Verkehrssicherheit, Alpen-Klima",
"sachinfo": "Schneekettenpflicht gilt in AT/CH/IT/SI auf bestimmten Strecken, signalisiert durch blaues Schild „Schneeketten\" (Vorschrifts-Zeichen). Pflicht ab November bis Ostern auf Pässen wie Großglockner, Stilfser Joch, Tauern. Reifenketten erhöhen die Traktion auf Schnee/Eis um Faktor 510. Auf Lkw/Bus muss man mind. 2 Antriebsräder mit Ketten ausstatten. Schweiz: ab Dezember sowieso Winterreifenpflicht (M+S-Symbol).",
"sachinfo": "Schneekettenpflicht gilt in AT/CH/IT/SI auf bestimmten Strecken, signalisiert durch blaues Schild „Schneeketten\" (Vorschrifts-Zeichen). Pflicht ab November bis Ostern auf Pässen wie Großglockner, Stilfser Joch, Tauern. Reifenketten erhöhen die Traktion auf Schnee/Eis um Faktor 5 10. Auf Lkw/Bus muss man mind. 2 Antriebsräder mit Ketten ausstatten. Schweiz: ab Dezember sowieso Winterreifenpflicht (M+S-Symbol).",
"lehrplan": ["GW: Alpenklima, Wetter", "Physik: Reibung, Traktion", "Verkehrserziehung: Winter"],
"glossary": ["schneekettenpflicht", "winterreifen", "alpenklima"]
}
+3 -3
View File
@@ -74,7 +74,7 @@ window.BusfahrtEngine = (function () {
return {
fee: 320,
label: '🚇 Kanaltunnel / Fähre (CalaisDover, FolkestoneCalais)',
sachinfo: 'Seit Brexit 2021 ist UK kein EU-Mitglied mehr — Zoll- und Pass-Kontrollen erforderlich. Reisebus-Tarif rund 280360 € für Eurotunnel-Shuttle (35 min Le Shuttle Freight) oder Fähre (90 min, DFDS/P&O).',
sachinfo: 'Seit Brexit 2021 ist UK kein EU-Mitglied mehr — Zoll- und Pass-Kontrollen erforderlich. Reisebus-Tarif rund 280 360 € für Eurotunnel-Shuttle (35 min Le Shuttle Freight) oder Fähre (90 min, DFDS/P&O).',
glossar: 'kanaltunnel'
};
}
@@ -116,7 +116,7 @@ window.BusfahrtEngine = (function () {
return {
fee: 520,
label: '⛴ Norröna-Fähre HirtshalsTórshavnSeyðisfjörður',
sachinfo: 'Die einzige Auto-/Bus-Fähre nach Island ist die Norröna der Smyril Line. Route: Hirtshals (DK, nördlichste Spitze Jütlands) → Tórshavn (Färöer) → Seyðisfjörður (Ostküste Island). 1× pro Woche, Dauer 2,5 Tage. Bus-Tarif rund 400600 €. Danach noch ca. 700 km quer durch Island bis Reykjavik (Westküste). 95 % aller Island-Reisenden fliegen — Bus-Anreise ist Roadtrip-Variante.',
sachinfo: 'Die einzige Auto-/Bus-Fähre nach Island ist die Norröna der Smyril Line. Route: Hirtshals (DK, nördlichste Spitze Jütlands) → Tórshavn (Färöer) → Seyðisfjörður (Ostküste Island). 1× pro Woche, Dauer 2,5 Tage. Bus-Tarif rund 400 600 €. Danach noch ca. 700 km quer durch Island bis Reykjavik (Westküste). 95 % aller Island-Reisenden fliegen — Bus-Anreise ist Roadtrip-Variante.',
glossar: 'norroena-faehre'
};
}
@@ -135,7 +135,7 @@ window.BusfahrtEngine = (function () {
return {
fee: 290,
label: '⛴ Direktfähre DublinCherbourg (Irish Ferries)',
sachinfo: 'Die Direktfähre zwischen Irland und dem Festland (DublinCherbourg oder RosslareRoscoff) umgeht das UK seit Brexit. Dauer 1720 h, Bus-Tarif rund 280320 €. Alternative: über Holyhead+Eurotunnel — dann aber doppelte UK-Zollkontrolle.',
sachinfo: 'Die Direktfähre zwischen Irland und dem Festland (DublinCherbourg oder RosslareRoscoff) umgeht das UK seit Brexit. Dauer 17 20 h, Bus-Tarif rund 280 320 €. Alternative: über Holyhead+Eurotunnel — dann aber doppelte UK-Zollkontrolle.',
glossar: 'norroena-faehre'
};
}
+148 -148
View File
@@ -1070,14 +1070,14 @@
desc: 'Gleichmäßiger Bedarf, mittags reichlich Solar. Klassischer Pump-Tag.',
tankTopInit: 20,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 10 }, // 1P
{ range: '0912', demand: 5, solar: 16 }, // 2P
{ range: '1215', demand: 5, solar: 16 }, // 2P
{ range: '1518', demand: 5, solar: 5 }, // Aus
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 10, solar: 0 }, // 2T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 10 }, // 1P
{ range: '09 12', demand: 5, solar: 16 }, // 2P
{ range: '12 15', demand: 5, solar: 16 }, // 2P
{ range: '15 18', demand: 5, solar: 5 }, // Aus
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 10, solar: 0 }, // 2T
],
},
{
@@ -1086,14 +1086,14 @@
desc: 'Dichte Wolken, Solar nur schwach. Speicher voll, viel turbinieren.',
tankTopInit: 40,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 10, solar: 0 }, // 2T
{ range: '0609', demand: 10, solar: 5 }, // 1T
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 5, solar: 10 }, // 1P
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 10, solar: 0 }, // 2T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 10, solar: 0 }, // 2T
{ range: '06 09', demand: 10, solar: 5 }, // 1T
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 5, solar: 10 }, // 1P
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 10, solar: 0 }, // 2T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
{
@@ -1102,14 +1102,14 @@
desc: 'Wind nachts und am Morgen, tagsüber bedeckt. Tagesgang umgedreht.',
tankTopInit: 25,
blocks: [
{ range: '0003', demand: 5, solar: 10 }, // 1P
{ range: '0306', demand: 5, solar: 16 }, // 2P
{ range: '0609', demand: 10, solar: 5 }, // 1T
{ range: '0912', demand: 5, solar: 5 }, // Aus
{ range: '1215', demand: 5, solar: 5 }, // Aus
{ range: '1518', demand: 10, solar: 0 }, // 2T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 5, solar: 10 }, // 1P
{ range: '00 03', demand: 5, solar: 10 }, // 1P
{ range: '03 06', demand: 5, solar: 16 }, // 2P
{ range: '06 09', demand: 10, solar: 5 }, // 1T
{ range: '09 12', demand: 5, solar: 5 }, // Aus
{ range: '12 15', demand: 5, solar: 5 }, // Aus
{ range: '15 18', demand: 10, solar: 0 }, // 2T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 5, solar: 10 }, // 1P
],
},
],
@@ -1123,14 +1123,14 @@
desc: 'Klimaanlagen drehen auf — Bedarf nachmittags extrem. Mittags Solar voll.',
tankTopInit: 35,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 10, solar: 15 }, // 1P
{ range: '0912', demand: 10, solar: 20 }, // 2P
{ range: '1215', demand: 15, solar: 20 }, // 1P
{ range: '1518', demand: 20, solar: 10 }, // 2T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 10, solar: 0 }, // 2T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 10, solar: 15 }, // 1P
{ range: '09 12', demand: 10, solar: 20 }, // 2P
{ range: '12 15', demand: 15, solar: 20 }, // 1P
{ range: '15 18', demand: 20, solar: 10 }, // 2T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 10, solar: 0 }, // 2T
],
},
{
@@ -1139,14 +1139,14 @@
desc: 'Wolken vorm Mittag — Solar fällt aus. Speicher aus dem ersten Tag muss reichen.',
tankTopInit: 42,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 10, solar: 10 }, // Aus
{ range: '0912', demand: 10, solar: 5 }, // 1T
{ range: '1215', demand: 5, solar: 5 }, // Aus
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 10, solar: 10 }, // Aus
{ range: '09 12', demand: 10, solar: 5 }, // 1T
{ range: '12 15', demand: 5, solar: 5 }, // Aus
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
{
@@ -1155,14 +1155,14 @@
desc: 'Klare Luft, viel Solar, Bedarf moderat. Solar-Überschuss füllt den Speicher.',
tankTopInit: 20,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 10 }, // 1P
{ range: '0912', demand: 5, solar: 16 }, // 2P
{ range: '1215', demand: 5, solar: 16 }, // 2P
{ range: '1518', demand: 5, solar: 10 }, // 1P
{ range: '1821', demand: 10, solar: 5 }, // 1T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 10 }, // 1P
{ range: '09 12', demand: 5, solar: 16 }, // 2P
{ range: '12 15', demand: 5, solar: 16 }, // 2P
{ range: '15 18', demand: 5, solar: 10 }, // 1P
{ range: '18 21', demand: 10, solar: 5 }, // 1T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
],
@@ -1176,14 +1176,14 @@
desc: 'Klare Tage, gleichmäßiger Wechsel. Solar mittags noch ergiebig.',
tankTopInit: 30,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 5 }, // Aus
{ range: '0912', demand: 5, solar: 15 }, // 2P
{ range: '1215', demand: 5, solar: 15 }, // 2P
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 10, solar: 5 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 5 }, // Aus
{ range: '09 12', demand: 5, solar: 15 }, // 2P
{ range: '12 15', demand: 5, solar: 15 }, // 2P
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 10, solar: 5 }, // 1T
],
},
{
@@ -1192,14 +1192,14 @@
desc: 'Starker Wind durchgehend, Solar moderat. Pumpe und Turbine wechseln sich ständig ab.',
tankTopInit: 15,
blocks: [
{ range: '0003', demand: 5, solar: 10 }, // 1P
{ range: '0306', demand: 5, solar: 10 }, // 1P
{ range: '0609', demand: 10, solar: 5 }, // 1T
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 10, solar: 5 }, // 1T
{ range: '1518', demand: 5, solar: 10 }, // 1P
{ range: '1821', demand: 10, solar: 5 }, // 1T
{ range: '2124', demand: 5, solar: 10 }, // 1P
{ range: '00 03', demand: 5, solar: 10 }, // 1P
{ range: '03 06', demand: 5, solar: 10 }, // 1P
{ range: '06 09', demand: 10, solar: 5 }, // 1T
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 10, solar: 5 }, // 1T
{ range: '15 18', demand: 5, solar: 10 }, // 1P
{ range: '18 21', demand: 10, solar: 5 }, // 1T
{ range: '21 24', demand: 5, solar: 10 }, // 1P
],
},
{
@@ -1208,14 +1208,14 @@
desc: 'Morgens Nebel, mittags Wolkenlücken, abends Tief. Sehr unbeständig.',
tankTopInit: 42,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 10 }, // 1P
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 10, solar: 0 }, // 2T
{ range: '1518', demand: 10, solar: 0 }, // 2T
{ range: '1821', demand: 5, solar: 0 }, // 1T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 10 }, // 1P
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 10, solar: 0 }, // 2T
{ range: '15 18', demand: 10, solar: 0 }, // 2T
{ range: '18 21', demand: 5, solar: 0 }, // 1T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
],
@@ -1229,14 +1229,14 @@
desc: 'Eisig kalt, Bedarf hoch wegen Heizen. Solar tagsüber knapp, abends Spitze.',
tankTopInit: 42,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 10, solar: 0 }, // 2T
{ range: '0609', demand: 5, solar: 5 }, // Aus
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 5, solar: 10 }, // 1P
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 10, solar: 0 }, // 2T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 10, solar: 0 }, // 2T
{ range: '06 09', demand: 5, solar: 5 }, // Aus
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 5, solar: 10 }, // 1P
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 10, solar: 0 }, // 2T
],
},
{
@@ -1245,14 +1245,14 @@
desc: 'Tagsüber Solar gut, abends sehr kalt. Mit Pumpe-Mittag den Abend vorbereiten.',
tankTopInit: 30,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 5 }, // Aus
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 5, solar: 10 }, // 1P
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 10, solar: 0 }, // 2T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 5 }, // Aus
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 5, solar: 10 }, // 1P
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 10, solar: 0 }, // 2T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
{
@@ -1261,14 +1261,14 @@
desc: 'Heftiger Wind, kaum Solar. Wind hilft tagsüber etwas, abends große Lücke.',
tankTopInit: 30,
blocks: [
{ range: '0003', demand: 5, solar: 10 }, // 1P
{ range: '0306', demand: 10, solar: 10 }, // Aus
{ range: '0609', demand: 10, solar: 5 }, // 1T
{ range: '0912', demand: 5, solar: 5 }, // Aus
{ range: '1215', demand: 10, solar: 5 }, // 1T
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 5, solar: 5 }, // Aus
{ range: '00 03', demand: 5, solar: 10 }, // 1P
{ range: '03 06', demand: 10, solar: 10 }, // Aus
{ range: '06 09', demand: 10, solar: 5 }, // 1T
{ range: '09 12', demand: 5, solar: 5 }, // Aus
{ range: '12 15', demand: 10, solar: 5 }, // 1T
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 5, solar: 5 }, // Aus
],
},
],
@@ -1282,14 +1282,14 @@
desc: 'Industriegürtel mit hoher Tageslast. Wenig Pump-Spielraum, viel Turbinieren.',
tankTopInit: 40,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 10, solar: 5 }, // 1T
{ range: '0912', demand: 15, solar: 15 }, // Aus
{ range: '1215', demand: 15, solar: 20 }, // 1P
{ range: '1518', demand: 15, solar: 10 }, // 1T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 10, solar: 5 }, // 1T
{ range: '09 12', demand: 15, solar: 15 }, // Aus
{ range: '12 15', demand: 15, solar: 20 }, // 1P
{ range: '15 18', demand: 15, solar: 10 }, // 1T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
{
@@ -1298,14 +1298,14 @@
desc: 'Drei Bedarfsspitzen statt zwei. Speicher von gestern entscheidet.',
tankTopInit: 50,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 10, solar: 0 }, // 2T
{ range: '0609', demand: 10, solar: 5 }, // 1T
{ range: '0912', demand: 5, solar: 5 }, // Aus
{ range: '1215', demand: 10, solar: 5 }, // 1T
{ range: '1518', demand: 5, solar: 5 }, // Aus
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 10, solar: 5 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 10, solar: 0 }, // 2T
{ range: '06 09', demand: 10, solar: 5 }, // 1T
{ range: '09 12', demand: 5, solar: 5 }, // Aus
{ range: '12 15', demand: 10, solar: 5 }, // 1T
{ range: '15 18', demand: 5, solar: 5 }, // Aus
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 10, solar: 5 }, // 1T
],
},
{
@@ -1314,14 +1314,14 @@
desc: 'Großer Verbraucher legt um — Solar-Überschuss überall. Pumpen, was geht.',
tankTopInit: 20,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 10 }, // 1P
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 5, solar: 16 }, // 2P
{ range: '1518', demand: 5, solar: 16 }, // 2P
{ range: '1821', demand: 5, solar: 5 }, // Aus
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 10 }, // 1P
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 5, solar: 16 }, // 2P
{ range: '15 18', demand: 5, solar: 16 }, // 2P
{ range: '18 21', demand: 5, solar: 5 }, // Aus
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
],
@@ -1335,14 +1335,14 @@
desc: 'Niedriger Bedarf, normaler Solar-Verlauf. Großer Pump-Tag.',
tankTopInit: 15,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 10 }, // 1P
{ range: '0912', demand: 5, solar: 16 }, // 2P
{ range: '1215', demand: 5, solar: 16 }, // 2P
{ range: '1518', demand: 5, solar: 10 }, // 1P
{ range: '1821', demand: 5, solar: 5 }, // Aus
{ range: '2124', demand: 10, solar: 0 }, // 2T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 10 }, // 1P
{ range: '09 12', demand: 5, solar: 16 }, // 2P
{ range: '12 15', demand: 5, solar: 16 }, // 2P
{ range: '15 18', demand: 5, solar: 10 }, // 1P
{ range: '18 21', demand: 5, solar: 5 }, // Aus
{ range: '21 24', demand: 10, solar: 0 }, // 2T
],
},
{
@@ -1351,14 +1351,14 @@
desc: 'Sehr niedriger Bedarf. Speicher fast unverändert, kaum Bewegung nötig.',
tankTopInit: 20,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 5 }, // Aus
{ range: '0912', demand: 5, solar: 10 }, // 1P
{ range: '1215', demand: 5, solar: 10 }, // 1P
{ range: '1518', demand: 5, solar: 5 }, // Aus
{ range: '1821', demand: 10, solar: 5 }, // 1T
{ range: '2124', demand: 5, solar: 0 }, // 1T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 5 }, // Aus
{ range: '09 12', demand: 5, solar: 10 }, // 1P
{ range: '12 15', demand: 5, solar: 10 }, // 1P
{ range: '15 18', demand: 5, solar: 5 }, // Aus
{ range: '18 21', demand: 10, solar: 5 }, // 1T
{ range: '21 24', demand: 5, solar: 0 }, // 1T
],
},
{
@@ -1367,14 +1367,14 @@
desc: 'Eigentlich ruhig, abends überraschende Spitze. Speicher bis dahin retten.',
tankTopInit: 40,
blocks: [
{ range: '0003', demand: 5, solar: 0 }, // 1T
{ range: '0306', demand: 5, solar: 0 }, // 1T
{ range: '0609', demand: 5, solar: 5 }, // Aus
{ range: '0912', demand: 10, solar: 10 }, // Aus
{ range: '1215', demand: 10, solar: 15 }, // 1P
{ range: '1518', demand: 10, solar: 5 }, // 1T
{ range: '1821', demand: 15, solar: 5 }, // 2T
{ range: '2124', demand: 10, solar: 0 }, // 2T
{ range: '00 03', demand: 5, solar: 0 }, // 1T
{ range: '03 06', demand: 5, solar: 0 }, // 1T
{ range: '06 09', demand: 5, solar: 5 }, // Aus
{ range: '09 12', demand: 10, solar: 10 }, // Aus
{ range: '12 15', demand: 10, solar: 15 }, // 1P
{ range: '15 18', demand: 10, solar: 5 }, // 1T
{ range: '18 21', demand: 15, solar: 5 }, // 2T
{ range: '21 24', demand: 10, solar: 0 }, // 2T
],
},
],
@@ -2104,10 +2104,10 @@
netzfrequenz: { title:'Netzfrequenz — der Pulsschlag des Stromnetzes (50 Hz)', text:'In unseren Steckdosen fließt kein Gleichstrom wie aus einer Batterie, sondern WECHSELSTROM. Das heißt: Die elektrische Spannung wechselt fünfzig Mal pro Sekunde ihre Richtung — von Plus zu Minus und zurück. Diese Geschwindigkeit nennt man die Netzfrequenz, gemessen in Hertz (Hz).\n\nWarum ist das wichtig? Alle Kraftwerke und alle Verbraucher in Europa hängen am selben Netz und müssen GANZ GENAU im Takt von 50 Hz arbeiten. Stell dir das wie einen riesigen Chor vor: Wenn auch nur ein Sänger zu schnell oder zu langsam singt, klingt es schief.\n\nGenauer: Die Frequenz zeigt, ob Erzeugung und Verbrauch im Gleichgewicht sind:\n• Mehr Strom erzeugt als verbraucht → Frequenz STEIGT über 50 Hz.\n• Mehr Strom verbraucht als erzeugt → Frequenz SINKT unter 50 Hz.\n\nDie Toleranz ist winzig: ±0,2 Hz sind noch normal. Außerhalb davon (49,5 oder 50,5 Hz) greifen automatische Schutzmaßnahmen, damit kein Blackout passiert. Maschinen, Computer und Industrieanlagen sind auf exakt 50 Hz ausgelegt — Abweichungen zerstören sie.\n\nDie Netzfrequenz ist deshalb wie ein Pulsmesser für das ganze Stromnetz Europas — von Portugal bis Polen, von Norwegen bis Sizilien synchron.', unit:'Hz' },
blackout: { title:'Blackout', text:'Großflächiger und längerer Stromausfall. Heizung, Wasser, Ampeln, Internet fallen aus. Kann Stunden bis Tage dauern.' },
lastabwurf: { title:'Lastabwurf', text:'Notmaßnahme bei Frequenz-Einbruch: gezieltes Abschalten großer Stromabnehmer, um Blackout zu verhindern.' },
pumpspeicher: { title:'Pumpspeicherkraftwerk', text:'Zwei Becken in unterschiedlicher Höhe + Turbine. Wasser hochpumpen speichert Energie, ablaufen lassen erzeugt Strom. Wirkungsgrad 7085 %.' },
pumpspeicher: { title:'Pumpspeicherkraftwerk', text:'Zwei Becken in unterschiedlicher Höhe + Turbine. Wasser hochpumpen speichert Energie, ablaufen lassen erzeugt Strom. Wirkungsgrad 70 85 %.' },
turbine: { title:'Turbine', text:'Maschine mit Schaufelrad — durch strömendes Wasser angetrieben, treibt einen Generator an.' },
wirkungsgrad: { title:'Wirkungsgrad', text:'Wie viel Prozent der eingesetzten Energie als Nutz-Energie ankommen. Pumpspeicher: 7085 %, PV: 2023 %.' },
photovoltaik: { title:'Photovoltaik', text:'Technik, die Sonnenlicht direkt in Strom umwandelt. Wirkungsgrad 2023 %.' },
wirkungsgrad: { title:'Wirkungsgrad', text:'Wie viel Prozent der eingesetzten Energie als Nutz-Energie ankommen. Pumpspeicher: 70 85 %, PV: 20 23 %.' },
photovoltaik: { title:'Photovoltaik', text:'Technik, die Sonnenlicht direkt in Strom umwandelt. Wirkungsgrad 20 23 %.' },
spitzenlast: { title:'Spitzenlast', text:'Höchster Strombedarf des Tages — meist morgens und abends.' },
grundlast: { title:'Grundlast', text:'Strom, der praktisch nie unter einen bestimmten Wert fällt — Kühlschränke, Server, Lüftung etc.' },
lastausgleich:{ title:'Lastausgleich', text:'Aufgabe des Stromnetzes: Erzeugung und Verbrauch ständig in Balance halten.' },
@@ -2473,7 +2473,7 @@
}
window.closeFunFact = closeFunFact;
// Einheitliche Zeit-Formatierung: '0003' → '00 03 Uhr'
// Einheitliche Zeit-Formatierung: '00 03' → '00 03 Uhr'
function fmtTimeRange(r) {
if (!r) return '';
// Akzeptiere Bindestrich, en-dash, em-dash und Slash als Trenner
+1 -1
View File
@@ -3957,7 +3957,7 @@ function renderDashboard() {
${INVESTMENTS.map(inv => renderInvestCard(inv, totals.money)).join('')}
</div>
<div class="disclaimer-card">
<strong>Wichtig:</strong> Diese Werte sind <em>historische Mittelwerte</em> der letzten 1030 Jahre. Sie sind <strong>keine Prognose</strong> für die Zukunft. Geldanlagen können auch <strong>Verlust machen</strong>, vor allem in Krisenjahren — und je riskanter die Anlage, desto stärker schwankt sie. Sparbuch verliert real (nach Inflation) langfristig meist an Kaufkraft.
<strong>Wichtig:</strong> Diese Werte sind <em>historische Mittelwerte</em> der letzten 10 30 Jahre. Sie sind <strong>keine Prognose</strong> für die Zukunft. Geldanlagen können auch <strong>Verlust machen</strong>, vor allem in Krisenjahren — und je riskanter die Anlage, desto stärker schwankt sie. Sparbuch verliert real (nach Inflation) langfristig meist an Kaufkraft.
</div>
<!-- Anlage selbst konfigurieren -->
+4 -4
View File
@@ -2081,7 +2081,7 @@ const CONCEPTS = {
<h4>Was machen sie da?</h4>
<p>Sie diskutieren die ganz großen Themen: Krieg in der Ukraine, Migrationspolitik, Klimaziele, Beziehungen zu China und den USA, Erweiterung der EU. Sie geben politische Richtungen vor beschließen aber selbst KEINE Gesetze.</p>
<h4>Wie oft tagen sie?</h4>
<p>Mindestens 4 Mal im Jahr, oft auch öfter, wenn eine Krise das verlangt. Die Treffen finden meist in Brüssel statt und dauern 12 Tage.</p>
<p>Mindestens 4 Mal im Jahr, oft auch öfter, wenn eine Krise das verlangt. Die Treffen finden meist in Brüssel statt und dauern 1 2 Tage.</p>
<h4>Wichtig: Verwechslungsgefahr!</h4>
<p>Der „Europäische Rat" und der „Rat der EU" (Ministerrat) sind ZWEI VERSCHIEDENE Institutionen. Der Europäische Rat sind die Chef*innen, der Rat der EU sind die jeweiligen Fachminister*innen. Selbst Erwachsene verwechseln das ständig.</p>
`,
@@ -2154,7 +2154,7 @@ const CONCEPTS = {
`,
caseContext: {
cage_age: `
<h4>End the Cage Age (20182021)</h4>
<h4>End the Cage Age (2018 2021)</h4>
<p>Die Initiative wurde von der britischen Tierschutzorganisation <strong>Compassion in World Farming (CIWF)</strong> ins Leben gerufen und von über 170 weiteren NGOs unterstützt. Sie startete im September 2018 und sammelte bis September 2019 stolze <strong>1.397.113 gültige Unterschriften aus 18 Ländern</strong> damit die viertbestätigte Bürgerinitiative aller Zeiten.</p>
<p>Im Bürgerkomitee saßen Tierschützer*innen aus mehreren Ländern, darunter <strong>Mahi Klosterhalfen</strong>, Präsident der Albert Schweitzer Stiftung in Deutschland. Die meisten Unterschriften kamen aus Deutschland (~360.000), Frankreich (~165.000) und Italien (~135.000). Aus Österreich kamen rund 23.000.</p>
`
@@ -3039,7 +3039,7 @@ const SCENARIOS = {
narration: 'Nach einem Jahr ist es geschafft: 1.397.113 Unterschriften aus 18 Ländern mehr als nötig! Auch deine Eltern haben unterschrieben. Die Kommission lädt das Bürgerkomitee zu einer öffentlichen Anhörung im EU-Parlament ein. Aber dann kommt die entscheidende Frage: Wer darf jetzt eigentlich den Gesetzestext schreiben?',
milestone: {
title: '1,4 Millionen Stimmen!',
text: '<strong>End the Cage Age</strong> sammelte 20182019 echte 1.397.113 Unterschriften aus 18 Ländern. Damit gehört sie zu den vier erfolgreichsten Bürgerinitiativen aller Zeiten. Die Kommission MUSS sich nun befassen.'
text: '<strong>End the Cage Age</strong> sammelte 2018 2019 echte 1.397.113 Unterschriften aus 18 Ländern. Damit gehört sie zu den vier erfolgreichsten Bürgerinitiativen aller Zeiten. Die Kommission MUSS sich nun befassen.'
},
question: 'Wer darf den offiziellen Gesetzestext einbringen?',
pool: ['kommission', 'parlament', 'ministerrat', 'buergerinitiative'],
@@ -3079,7 +3079,7 @@ const SCENARIOS = {
type: 'mixed',
title: 'Du hast es geschafft …',
subtitle: 'Das Bürgerkomitee hat den Weg von der Idee bis zur Mitentscheidung richtig durchlaufen. Aber: Auch der lehrbuchmäßig richtige Weg garantiert kein Gesetz.',
realStory: 'Die Bürgerinitiative „End the Cage Age" wurde von der britischen Organisation Compassion in World Farming gestartet und sammelte 20182019 rund 1,4 Millionen Unterschriften aus 18 EU-Ländern. Im Juni 2021 versprach die Kommission feierlich, einen Gesetzesvorschlag bis Ende 2023 vorzulegen. Doch bis heute (Mai 2026) ist das nicht passiert. Das Bürgerkomitee darunter Mahi Klosterhalfen von der Albert Schweitzer Stiftung klagt deshalb seit März 2024 vor dem Europäischen Gerichtshof. Im März 2026 fand die mündliche Verhandlung statt, das Urteil steht noch aus. Der Fall zeigt: Auch wenn alle demokratischen Schritte richtig gemacht werden, garantiert das noch kein Gesetz. Demokratie ist ein langer Atem.'
realStory: 'Die Bürgerinitiative „End the Cage Age" wurde von der britischen Organisation Compassion in World Farming gestartet und sammelte 2018 2019 rund 1,4 Millionen Unterschriften aus 18 EU-Ländern. Im Juni 2021 versprach die Kommission feierlich, einen Gesetzesvorschlag bis Ende 2023 vorzulegen. Doch bis heute (Mai 2026) ist das nicht passiert. Das Bürgerkomitee darunter Mahi Klosterhalfen von der Albert Schweitzer Stiftung klagt deshalb seit März 2024 vor dem Europäischen Gerichtshof. Im März 2026 fand die mündliche Verhandlung statt, das Urteil steht noch aus. Der Fall zeigt: Auch wenn alle demokratischen Schritte richtig gemacht werden, garantiert das noch kein Gesetz. Demokratie ist ein langer Atem.'
}
},
+15 -15
View File
@@ -41,15 +41,15 @@
},
"narratives": {
"S1": [
"Klimatisch ein Glücksgriff: Sommer mild bei 1822 °C, ausreichend Niederschlag (500700 mm), kühle Winter, die der Winterweizen für die spätere Kornbildung braucht. Die Halme stehen kniehoch, Ähren prall mit ~40 Körnern. Ertrag ~56 t/ha — europäischer Spitzenwert.",
"Klimatisch ein Glücksgriff: Sommer mild bei 18 22 °C, ausreichend Niederschlag (500 700 mm), kühle Winter, die der Winterweizen für die spätere Kornbildung braucht. Die Halme stehen kniehoch, Ähren prall mit ~40 Körnern. Ertrag ~5 6 t/ha — europäischer Spitzenwert.",
"Goldgelbe Felder bis zum Horizont. Der Mähdrescher hat zu tun. Korn-Qualität top, mahlfähig zu Mehl Type 550. Volle Lieferung."
],
"S2": [
"Klima passt grob, aber der Sommer war zu trocken (unter 400 mm im Vegetationszyklus). Ähren etwas leerer, Korn kleiner. Ertrag ~34 t/ha — solide, nicht spitze. Brot wird daraus.",
"Klima passt grob, aber der Sommer war zu trocken (unter 400 mm im Vegetationszyklus). Ähren etwas leerer, Korn kleiner. Ertrag ~3 4 t/ha — solide, nicht spitze. Brot wird daraus.",
"Ein Hitzesommer hat zugesetzt. Die Halme sind kürzer, die Reife früher. Ernte unter Schnitt, aber gut verkaufbar."
],
"S3": [
"Die Wachstumsperiode ist zu kurz, oder es regnet im falschen Moment. Magere Ähren mit oft tauben Körnern. Ertrag ~12 t/ha — kaum profitabel.",
"Die Wachstumsperiode ist zu kurz, oder es regnet im falschen Moment. Magere Ähren mit oft tauben Körnern. Ertrag ~1 2 t/ha — kaum profitabel.",
"Pilzbefall im feuchten Frühsommer (Mehltau, Rost). Was übrig bleibt, hat nur Futtermittel-Qualität."
],
"N1": [
@@ -95,15 +95,15 @@
},
"narratives": {
"S1": [
"Ganzjährig 2630 °C, 15002500 mm Regen, kein Frost — Bananenstauden-Paradies. Nach 912 Monaten erste Trauben. Ertrag ~3040 t/ha — eines der ertragreichsten Anbausysteme der Welt.",
"Ganzjährig 26 30 °C, 1500 2500 mm Regen, kein Frost — Bananenstauden-Paradies. Nach 9 12 Monaten erste Trauben. Ertrag ~30 40 t/ha — eines der ertragreichsten Anbausysteme der Welt.",
"Pralle, schwere Trauben. Reifen langsam in der Wärme, Geschmack vollmundig. Direkt verschiffbar wenn sie noch grün sind."
],
"S2": [
"Wärme passt, aber die Trockenzeit ist deutlich (34 Monate fast ohne Regen). Ohne Bewässerung Ertrag ~1520 t/ha. Trauben kleiner, aber gut verkaufbar.",
"Wärme passt, aber die Trockenzeit ist deutlich (3 4 Monate fast ohne Regen). Ohne Bewässerung Ertrag ~15 20 t/ha. Trauben kleiner, aber gut verkaufbar.",
"Solide Ernte. Die Pflanzen wachsen langsamer in der trockenen Phase, holen aber im Regen wieder auf."
],
"S3": [
"Im Winter rutscht die Temperatur auf 1418 °C — Bananen stocken im Wachstum, treiben kaum. Ohne Folientunnel oder Mauerschutz nur Mini-Bananen.",
"Im Winter rutscht die Temperatur auf 14 18 °C — Bananen stocken im Wachstum, treiben kaum. Ohne Folientunnel oder Mauerschutz nur Mini-Bananen.",
"Mediterraner Versuch: geht knapp, aber die Trauben sind klein und stechreif. Touristen-Ware, kein Welthandel."
],
"N1": [
@@ -204,7 +204,7 @@
},
"narratives": {
"S1": [
"Heiße trockene Tage, kalte Nächte, sandiger Boden, sparsame Vegetation — Kamel-Heimat. Die Tiere fressen Dornsträucher die andere verschmähen, trinken alle 12 Wochen, geben gleichbleibend Milch. Robuste Herde, hochwertige Tiere.",
"Heiße trockene Tage, kalte Nächte, sandiger Boden, sparsame Vegetation — Kamel-Heimat. Die Tiere fressen Dornsträucher die andere verschmähen, trinken alle 1 2 Wochen, geben gleichbleibend Milch. Robuste Herde, hochwertige Tiere.",
"Klassische Trocken-Savanne oder Steppe. Die Tiere sind genügsam, krank werden sie selten. Premium-Marktware aus den Wüstenrändern."
],
"S2": [
@@ -258,11 +258,11 @@
},
"narratives": {
"S1": [
"Mekong-/Ganges-Delta-Bedingungen: ganzjährig 2530 °C, Monsun bringt 1500+ mm Regen, Boden steht zeitweise unter Wasser. Nassreis trägt zwei bis drei Ernten pro Jahr. Ertrag ~57 t/ha — Asiens Standard.",
"Mekong-/Ganges-Delta-Bedingungen: ganzjährig 25 30 °C, Monsun bringt 1500+ mm Regen, Boden steht zeitweise unter Wasser. Nassreis trägt zwei bis drei Ernten pro Jahr. Ertrag ~5 7 t/ha — Asiens Standard.",
"Volle Rispen, glänzende Körner. Die Terrassen sind perfekt geflutet, der Reis steht hüfthoch. Spitzenernte."
],
"S2": [
"Mit Bewässerung geht's. Die Trockenzeit ist lang, ohne Kanäle würde nichts wachsen. Ertrag ~34 t/ha, qualitativ ok.",
"Mit Bewässerung geht's. Die Trockenzeit ist lang, ohne Kanäle würde nichts wachsen. Ertrag ~3 4 t/ha, qualitativ ok.",
"Reis hält sich, aber das Wasser muss gepumpt werden. Nicht ohne Aufwand."
],
"S3": [
@@ -310,7 +310,7 @@
},
"narratives": {
"S1": [
"Klassische Kaffee-Region (Brasilien-Cerrado, Kolumbien-Anden, Äthiopien-Hochland): Tagsüber 2228 °C, kühle Nächte, ~1500 mm Regen. Die Sträucher hängen voller roter Kirschen. Ertrag ~12 t Bohnen/ha — Spitzenqualität.",
"Klassische Kaffee-Region (Brasilien-Cerrado, Kolumbien-Anden, Äthiopien-Hochland): Tagsüber 22 28 °C, kühle Nächte, ~1500 mm Regen. Die Sträucher hängen voller roter Kirschen. Ertrag ~1 2 t Bohnen/ha — Spitzenqualität.",
"Arabica-Bedingungen perfekt. Die Kirschen reifen langsam und gleichmäßig — feiner Geschmack, hoher Marktpreis."
],
"S2": [
@@ -416,11 +416,11 @@
},
"narratives": {
"S1": [
"US-Corn-Belt-Bedingungen: heiße feuchte Sommer (2530 °C), tiefer Mutterboden, ~600800 mm Niederschlag im Vegetationszyklus. Kolben hängen schwer. Ertrag ~1012 t/ha — Welt-Spitze.",
"US-Corn-Belt-Bedingungen: heiße feuchte Sommer (25 30 °C), tiefer Mutterboden, ~600 800 mm Niederschlag im Vegetationszyklus. Kolben hängen schwer. Ertrag ~10 12 t/ha — Welt-Spitze.",
"Mannshohe Maisstangen, dichte Felder. Mähdrescher arbeitet einen Tag pro Hektar. Top-Ernte für Futter und Stärke."
],
"S2": [
"Klima passt grob — etwas zu trocken oder zu warm in der Reife. Ertrag ~57 t/ha, vermarktbar.",
"Klima passt grob — etwas zu trocken oder zu warm in der Reife. Ertrag ~5 7 t/ha, vermarktbar.",
"Mais kommt durch, aber die Kolben sind kleiner. Solide Ernte."
],
"S3": ["Magere Ernte, viele leere Kolben. Mit Bewässerung würde mehr gehen."],
@@ -463,7 +463,7 @@
},
"narratives": {
"S1": [
"Lachsfarm im Fjord oder Tilapia-Käfig im warmen Meer — perfekte Bedingungen. Sauerstoffreiches Wasser, gleichmäßige Temperaturen, viel Platz. Pro Käfig ~3050 t alle 2 Jahre. Norwegen-, Chile-, Vietnam-Modell.",
"Lachsfarm im Fjord oder Tilapia-Käfig im warmen Meer — perfekte Bedingungen. Sauerstoffreiches Wasser, gleichmäßige Temperaturen, viel Platz. Pro Käfig ~30 50 t alle 2 Jahre. Norwegen-, Chile-, Vietnam-Modell.",
"Volle Käfige, gesunde Fische, hohe Marktpreise. Aquakultur ist der am schnellsten wachsende Bereich der Tierproduktion weltweit."
],
"S2": ["Solide Ernte — Wassertemperatur etwas suboptimal, aber Fische gedeihen."],
@@ -474,7 +474,7 @@
"Aquakultur funktioniert nicht im Hinterland — kein Wasserkörper, kein Fisch."
],
"wasser": [
"🌊 Lachsfarm im Fjord — perfekte Bedingungen, kühles klares Wasser, viel Sauerstoff. Pro Käfig ~3050 t Lachs alle 2 Jahre.",
"🌊 Lachsfarm im Fjord — perfekte Bedingungen, kühles klares Wasser, viel Sauerstoff. Pro Käfig ~30 50 t Lachs alle 2 Jahre.",
"🌊 Tilapia-Farm im warmen Meer. Schnellwachsend, robust, stabile Erträge — Vietnam-/Indonesien-Modell."
],
"disease": [
@@ -508,7 +508,7 @@
},
"narratives": {
"S1": [
"Mediterran perfekt: heiße trockene Sommer (2535 °C), milde Winter (510 °C, kein Dauerfrost), karger Kalkboden. Olivenbäume tragen alle 2 Jahre voll. Ertrag ~34 t Oliven/ha → ~600 kg Olivenöl.",
"Mediterran perfekt: heiße trockene Sommer (25 35 °C), milde Winter (5 10 °C, kein Dauerfrost), karger Kalkboden. Olivenbäume tragen alle 2 Jahre voll. Ertrag ~3 4 t Oliven/ha → ~600 kg Olivenöl.",
"Silbergraue Hänge bis zum Horizont, jahrhundertealte Bäume tragen schwer. Kaltgepresstes Olivenöl extra vergine — Spitzenpreis."
],
"S2": ["Solide Ernte, etwas zu trocken oder zu warm. Tafeloliven gehen, Öl-Qualität OK."],
+2 -2
View File
@@ -9,7 +9,7 @@
* Totalausfall des ganzen Clusters. Deterministisch via Mulberry32.
* - Unlock-System: Sorten haben unlockYear; ab dem Jahr verfügbar.
* Counter pro Sorte sinkt je nach Anzahl freigeschalteter Sorten:
* 13 Sorten = 3, 4 = 2, 5 = 2, 6+ = 1.
* 1 3 Sorten = 3, 4 = 2, 5 = 2, 6+ = 1.
*
* Daten (assets/data/):
* crops.json Sorten, Eignung, Diagnose, monoculture-Konfig
@@ -214,7 +214,7 @@ window.FarmerEngine = (function () {
const MARKET_BLOCK_YEARS = 3;
/** Markt-Auftrag des Jahres: pro 3 Jahre ein Hub, dann zum nächsten zyklisch.
* Jahr 13 Hub 0, Jahr 46 Hub 1, ... */
* Jahr 1 3 Hub 0, Jahr 4 6 Hub 1, ... */
function getMarketHubForYear(year) {
if (!HUBS_DATA || !HUBS_DATA.hubs.length) return null;
const block = Math.floor((year - 1) / MARKET_BLOCK_YEARS);
+1 -1
View File
@@ -802,7 +802,7 @@ let currentReports = [];
let currentReportIdx = 0;
let currentHighlightedId = null;
let startTime = Date.now(); // für Endbericht: gespielte Zeit
const END_REPORT_TRIGGER_YEAR = 11; // Endbericht-Modal nach 10 abgeschlossenen Jahren — passt zur 1020-Min-Spielzeit. Schüler*in kann „Weiter arbeiten" wählen bis Jahr 22+ (alle Sorten unlocked).
const END_REPORT_TRIGGER_YEAR = 11; // Endbericht-Modal nach 10 abgeschlossenen Jahren — passt zur 10 20-Min-Spielzeit. Schüler*in kann „Weiter arbeiten" wählen bis Jahr 22+ (alle Sorten unlocked).
// ===== Boot =====
(async function boot() {
+2 -2
View File
@@ -226,8 +226,8 @@
</td>
<td>
<span class="cat cat-geschick">Geschick</span><br>
• Start-Sterne (15)<br>
• Landung-Sterne (15)<br>
• Start-Sterne (1 5)<br>
• Landung-Sterne (1 5)<br>
• G-Kraft-Durchschnitt<br>
• Berührungen
</td>
+4 -4
View File
@@ -2366,7 +2366,7 @@ var HELI_ONBOARDING_STEPS = [
+ '<text x="445" y="110" fill="#3d5165">+ Auswertung</text>'
+ '</g>'
+ '<defs><marker id="arrowg" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#5a8a5e"/></marker></defs>'
+ '<text x="240" y="158" text-anchor="middle" font-size="9" fill="#3d5165" font-style="italic">~ 58 Minuten pro Einsatz</text>'
+ '<text x="240" y="158" text-anchor="middle" font-size="9" fill="#3d5165" font-style="italic">~ 5 8 Minuten pro Einsatz</text>'
+ '</svg>',
text: 'Jede Mission besteht aus <b>5 Phasen</b>:<ul>'
+ '<li><b>📋 Auftrag wählen</b> — wir bekommen drei Einsätze vorgeschlagen. Such einen aus.</li>'
@@ -2470,7 +2470,7 @@ var HELI_ONBOARDING_STEPS = [
+ '<br><br><ul>'
+ '<li><span class="heli-glossar-term" data-glossar="vogelschlag"><b>🦅 Vögel (Vogelschlag)</b></span> — gefährlich für Rotor und Cockpitscheibe. Besonders über Seen (Möwen), bei Dämmerung (Zugvögel) und an Berghängen (Greifvögel auf Aufwinden). Bei Sichtung kurz Höhe oder Kurs ändern.</li>'
+ '<li><span class="heli-glossar-term" data-glossar="luftverkehr"><b>✈ Anderer Luftverkehr</b></span> — andere Helis, Flugzeuge, Drohnen, Segelflieger, Paragleiter. Abstand halten über <span class="heli-glossar-term" data-glossar="tower">Funk</span> und Sicht. Als Notarzt-Heli haben wir Vorflugrecht, andere müssen ausweichen.</li>'
+ '<li><span class="heli-glossar-term" data-glossar="gewitter-flug"><b>⛈ Gewitter</b></span> — lebensgefährlich für Helis (Sturmböen, Hagel, Sicht-Verlust, Blitz). Mindestens <b>1015 km Abstand</b> halten. Bei plötzlichem Gewitter: sofort landen, Patient später holen.</li>'
+ '<li><span class="heli-glossar-term" data-glossar="gewitter-flug"><b>⛈ Gewitter</b></span> — lebensgefährlich für Helis (Sturmböen, Hagel, Sicht-Verlust, Blitz). Mindestens <b>10 15 km Abstand</b> halten. Bei plötzlichem Gewitter: sofort landen, Patient später holen.</li>'
+ '</ul>'
+ '<br><b>Tipp:</b> Klick auf jeden der unterstrichenen Begriffe — Marlene erklärt sie dir kurz. Im <b>📖 Glossar</b> findest du die ausführlichen Versionen.'
},
@@ -2496,11 +2496,11 @@ var HELI_ONBOARDING_STEPS = [
+ '<text x="390" y="118" font-size="8" fill="#3d5165">Landezone frei</text>'
// Mittelwert-Pfeil
+ '<path d="M 240 135 L 240 148" stroke="#c97a3f" stroke-width="2" marker-end="url(#arrowo)"/>'
+ '<text x="240" y="158" font-weight="800" fill="#c97a3f">⌀ Gesamtbewertung 15 ★</text>'
+ '<text x="240" y="158" font-weight="800" fill="#c97a3f">⌀ Gesamtbewertung 1 5 ★</text>'
+ '</g>'
+ '<defs><marker id="arrowo" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="#c97a3f"/></marker></defs>'
+ '</svg>',
text: 'Wir bewerten drei Bereiche: <b>📍 Routenplanung</b>, <b>🛫 Start</b>, <b>🛬 Landung</b> — jeweils 15 Sterne. Aus dem Mittelwert ergibt sich deine Gesamtbewertung.'
text: 'Wir bewerten drei Bereiche: <b>📍 Routenplanung</b>, <b>🛫 Start</b>, <b>🛬 Landung</b> — jeweils 1 5 Sterne. Aus dem Mittelwert ergibt sich deine Gesamtbewertung.'
+ '<br><br><b>Und wenn du Fehler machst?</b> Keine Sorge — ich sitze ja neben dir. Bei der Routenplanung darfst du <b>15 falsche Wegpunkt-Klicks</b> ausprobieren. Bei mehr greife ich ein und plane den Rest. Beim Start oder bei der Landung übernehme ich, wenn ein Manöver zu riskant wird. <b>Den Patient bringen wir in jedem Fall sicher ins Krankenhaus</b> — du sammelst nur weniger Sterne und kannst es im nächsten Einsatz selbst besser machen.'
+ '<br><br>📍 Diese Einschulung kannst du übrigens jederzeit oben über den <b>❓ Spielhilfe</b>-Button nochmal aufrufen. Und die <b>📍 Übersichtskarte</b> ist deine beste Vorbereitung — schau dir Stützpunkte, Städte und Berge vorher in Ruhe an.'
+ '<br><br>Bereit? Such dir deinen ersten Einsatz aus. 💪'
+4 -4
View File
@@ -1131,7 +1131,7 @@
mastH: 30 + Math.random() * 12
});
}
// 23 große Segelschiffe mit hohem Mast (echtes Hindernis)
// 2 3 große Segelschiffe mit hohem Mast (echtes Hindernis)
const tall = 2 + Math.floor(Math.random() * 2);
for (let i = 0; i < tall; i++) {
let x;
@@ -1168,7 +1168,7 @@
const segStart = segmentStarts[segIdx], segEnd = segmentEnds[segIdx];
const zoneW = 220;
const zoneX = segStart + 40 + Math.random() * (segEnd - segStart - zoneW - 80);
// Unfallstelle 100160 px vor oder hinter der Landezone — aber im selben Segment
// Unfallstelle 100 160 px vor oder hinter der Landezone — aber im selben Segment
let crashX = zoneX + zoneW/2 + (Math.random() < 0.5 ? -1 : 1) * (110 + Math.random()*40);
crashX = Math.max(segStart + 60, Math.min(segEnd - 60, crashX));
// Gaffer im naheren Umfeld der Landezone — sie laufen durchgehend in
@@ -3508,7 +3508,7 @@
else if (sinkRate > 40) { lzR=74; lzG=124; lzB=78; lzLabel='GUTES TEMPO'; }
else { lzLabel='ANFLUG — TIEFER'; }
}
// Landezone deutlich heller (Alpha 0.651.0, voller Farbton statt gedaempft)
// Landezone deutlich heller (Alpha 0.65 1.0, voller Farbton statt gedaempft)
ctx.fillStyle = `rgba(${lzR},${lzG},${lzB},${0.65 + 0.35 * blink})`;
ctx.fillRect(lzSx, GROUND_Y - 22, lz.w, 22);
ctx.strokeStyle = `rgba(255,255,255,1.0)`;
@@ -3988,7 +3988,7 @@
state._fuelTrack.lastFuel = h.fuel;
state._fuelTrack.lastT = state.t;
}
// Balken: 0..12 l/min (typisch 46, Vollschub bis ~10), mit Mindestbreite 4%
// Balken: 0..12 l/min (typisch 4 6, Vollschub bis ~10), mit Mindestbreite 4%
const lpm = state._fuelLitersPerMin || 0;
const fr = document.getElementById('fFuelRate');
const vr = document.getElementById('vFuelRate');
+1 -1
View File
@@ -290,7 +290,7 @@ var ROUTES = [
waypoints:['hohenems','dornbirn','egg','bezau','au','schroecken','warth','riezlern'],
desc:'Einsatz im Kleinwalsertal. Das Tal ist nur von Deutschland oder per Luft erreichbar — eine der anspruchsvollsten Routen Vorarlbergs.', reason:'Funktionale Exklave — Luftweg einzige österreichische Verbindung', region:'vlbg'},
// === TIROL-ROUTEN (3160) ===
// === TIROL-ROUTEN (31 60) ===
// Von C1 Innsbruck
{id:31, name:'Innsbruck → Sölden (Skiunfall)', start:'innsbruck_c1', end:'skiunfall_soelden', difficulty:'medium', region:'tirol',
waypoints:['innsbruck_c1','telfs','oetz','soelden','skiunfall_soelden'],
+2 -2
View File
@@ -1068,12 +1068,12 @@ const GLOSSAR = {
co2: { title:'CO₂ (Kohlendioxid)', text:'Ein farbloses Gas, das beim Verbrennen von Kohle, Öl und Gas entsteht. Es verstärkt den Treibhauseffekt — der wichtigste Treiber des Klimawandels.', unit:'in ppm (parts per million)', link:'https://de.wikipedia.org/wiki/Kohlenstoffdioxid' },
ppm: { title:'ppm (parts per million)', text:'Anteilseinheit: 1 ppm bedeutet ein Teilchen pro Million. Bei CO₂ misst man, wie viele CO₂-Moleküle pro Million Luftmoleküle in der Atmosphäre sind. Vorindustriell ~280 ppm, heute ~425 ppm.', unit:'1 ppm = 1 Teilchen / 1.000.000', link:'https://de.wikipedia.org/wiki/Parts_per_million' },
megatonne: { title:'Megatonne (Mt)', text:'Eine Million Tonnen. Österreich stößt etwa 70 Mt CO₂ pro Jahr aus.', unit:'1 Mt = 1.000.000 Tonnen' },
megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 35 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' },
megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 3 5 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' },
temperatur: { title:'Globale Durchschnittstemperatur', text:'Seit der Industrialisierung (~1850) ist sie um etwa 1,2 °C gestiegen. Das Pariser Abkommen will den Anstieg auf 1,5 °C begrenzen.', unit:'°C', link:'https://de.wikipedia.org/wiki/Globale_Erwärmung' },
meeresspiegel:{ title:'Meeresspiegel', text:'Steigt durch schmelzendes Eis und die Ausdehnung warmen Wassers. Seit 1900 rund 20 cm. Bis 2100 möglicherweise über 1 m.', unit:'in cm über Startniveau', link:'https://de.wikipedia.org/wiki/Meeresspiegelanstieg' },
ueberflutung: { title:'Überflutete Fläche', text:'Prozentanteil der Siedlungen, die unter Wasser stehen, sobald der Meeresspiegel den Schutz (Deiche etc.) überschreitet.', unit:'in %' },
windpark: { title:'Windpark', text:'Gruppe von Windkraftanlagen. Rotoren wandeln Wind in elektrische Energie um. Oft an Küsten oder auf See (Offshore).', unit:'Leistung in MW', link:'https://de.wikipedia.org/wiki/Windpark' },
solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 510 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' },
solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 5 10 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' },
deich: { title:'Deich', text:'Künstlicher Damm aus Erde oder Stein, der Siedlungen vor Hochwasser schützt. Wirkt sofort, braucht aber Pflege.', link:'https://de.wikipedia.org/wiki/Deich' },
mangrove: { title:'Mangroven', text:'Salzwasser-verträgliche Bäume an tropischen Küsten. Binden CO₂ und schützen vor Erosion — Naturlösung gegen zwei Probleme.', link:'https://de.wikipedia.org/wiki/Mangroven' },
co2_filter: { title:'CO₂-Filter (Carbon Capture)', text:'Technologie, die CO₂ aus der Luft filtert. Noch teuer und energieintensiv, wird als Ergänzung erforscht.', link:'https://de.wikipedia.org/wiki/CO2-Abscheidung_und_-Speicherung' },
+3 -3
View File
@@ -1205,12 +1205,12 @@ const GLOSSAR = {
co2: { title:'CO₂ (Kohlendioxid)', text:'Ein farbloses Gas, das beim Verbrennen von Kohle, Öl und Gas entsteht. Es verstärkt den Treibhauseffekt — der wichtigste Treiber des Klimawandels.', unit:'in ppm (parts per million)', link:'https://de.wikipedia.org/wiki/Kohlenstoffdioxid' },
ppm: { title:'ppm (parts per million)', text:'Anteilseinheit: 1 ppm bedeutet ein Teilchen pro Million. Bei CO₂ misst man, wie viele CO₂-Moleküle pro Million Luftmoleküle in der Atmosphäre sind. Vorindustriell ~280 ppm, heute ~425 ppm.', unit:'1 ppm = 1 Teilchen / 1.000.000', link:'https://de.wikipedia.org/wiki/Parts_per_million' },
megatonne: { title:'Megatonne (Mt)', text:'Eine Million Tonnen. Österreich stößt etwa 70 Mt CO₂ pro Jahr aus.', unit:'1 Mt = 1.000.000 Tonnen' },
megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 35 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' },
megawatt: { title:'Megawatt (MW)', text:'Einheit der elektrischen Leistung. 1 MW = 1 Million Watt. Reicht für ca. 1.000 Haushalte, je nach Verbrauch. Ein modernes Windrad liefert 3 5 MW, eine große Solaranlage 1 MW oder mehr.', unit:'1 MW = 1.000.000 Watt', link:'https://de.wikipedia.org/wiki/Watt_(Einheit)' },
temperatur: { title:'Globale Durchschnittstemperatur', text:'Seit der Industrialisierung (~1850) ist sie um etwa 1,2 °C gestiegen. Das Pariser Abkommen will den Anstieg auf 1,5 °C begrenzen.', unit:'°C', link:'https://de.wikipedia.org/wiki/Globale_Erwärmung' },
meeresspiegel:{ title:'Meeresspiegel', text:'Steigt durch schmelzendes Eis und die Ausdehnung warmen Wassers. Seit 1900 rund 20 cm. Bis 2100 möglicherweise über 1 m.', unit:'in cm über Startniveau', link:'https://de.wikipedia.org/wiki/Meeresspiegelanstieg' },
ueberflutung: { title:'Überflutete Fläche', text:'Prozentanteil der Siedlungen, die unter Wasser stehen, sobald der Meeresspiegel den Schutz (Deiche etc.) überschreitet.', unit:'in %' },
windpark: { title:'Windpark', text:'Gruppe von Windkraftanlagen. Rotoren wandeln Wind in elektrische Energie um. Oft an Küsten oder auf See (Offshore).', unit:'Leistung in MW', link:'https://de.wikipedia.org/wiki/Windpark' },
solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 510 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' },
solaranlage: { title:'Solaranlage', text:'Wandelt Sonnenlicht in Strom um (Photovoltaik). Dachanlage: 5 10 kW, Solarpark: mehrere MW.', unit:'Leistung in kW/MW', link:'https://de.wikipedia.org/wiki/Photovoltaikanlage' },
deich: { title:'Deich', text:'Künstlicher Damm aus Erde oder Stein, der Siedlungen vor Hochwasser schützt. Wirkt sofort, braucht aber Pflege.', link:'https://de.wikipedia.org/wiki/Deich' },
mangrove: { title:'Mangroven', text:'Salzwasser-verträgliche Bäume an tropischen Küsten. Binden CO₂ und schützen vor Erosion — Naturlösung gegen zwei Probleme.', link:'https://de.wikipedia.org/wiki/Mangroven' },
co2_filter: { title:'CO₂-Filter (Carbon Capture)', text:'Technologie, die CO₂ aus der Luft filtert. Noch teuer und energieintensiv, wird als Ergänzung erforscht.', link:'https://de.wikipedia.org/wiki/CO2-Abscheidung_und_-Speicherung' },
@@ -1295,7 +1295,7 @@ const INFO_TOPICS = {
mangrove_info: {
title: '🪸 Mangrovenwald',
text: 'Mangroven sind salzwasser-verträgliche Bäume an tropischen Küsten. Sie binden CO₂ UND schützen das Land vor Wellen und Erosion — zwei Klimaschutz-Jobs in einem.\n\nIn Indonesien, Bangladesch und Vietnam retten Mangrovenwälder jedes Jahr Millionen von Menschen vor Sturmfluten.',
hint: 'Kippen aber ab etwa 3070 cm Meeresanstieg um: sie können dann nicht mehr schnell genug mitwachsen und ersticken.',
hint: 'Kippen aber ab etwa 30 70 cm Meeresanstieg um: sie können dann nicht mehr schnell genug mitwachsen und ersticken.',
},
sand_fill_info: {
title: '🏖 Sand-Aufschüttung',
+6 -6
View File
@@ -1885,14 +1885,14 @@ const KD_FUNDSACHEN = [
{ id:'adapter', emoji:'🔌', name:'Reiseadapter', info:
'Steckdosen sind weltweit unterschiedlich geformt — Typ C in der EU, Typ G in Großbritannien, Typ A/B in den USA, Typ I in Australien. Ein '+_g('reiseadapter','Reiseadapter')+' macht aus deinem Stecker einen passenden für die fremde Steckdose. '+
'<br><br>Achtung: Ein Adapter ändert nur die Form — nicht die '+_g('netzspannung','Spannung')+'. In den USA und Japan kommen nur 110 Volt aus der Steckdose, bei uns 230 Volt. '+
'<br><br>Moderne Lade-Geräte (Handy, Laptop) sind meist universell („INPUT: 100240V"). Alte Föhne oder Rasierer brauchen zusätzlich einen Spannungs-Wandler — sonst brennen sie durch.' },
'<br><br>Moderne Lade-Geräte (Handy, Laptop) sind meist universell („INPUT: 100 240V"). Alte Föhne oder Rasierer brauchen zusätzlich einen Spannungs-Wandler — sonst brennen sie durch.' },
{ id:'powerbank',emoji:'🔋', name:'Powerbank', info:
'Powerbanks und Ersatz-Akkus müssen ins '+_g('akku-handgepaeck','Handgepäck')+' — nie in den aufgegebenen Koffer. Im Frachtraum eines Flugzeugs wäre ein Akkubrand zu spät zu bemerken; im Handgepäck kann das Personal sofort eingreifen. '+
'<br><br>Regel weltweit (ICAO): Bis 100 Wattstunden problemlos erlaubt, 100160 Wh nur mit Erlaubnis der Fluglinie, über 160 Wh komplett verboten. Eine typische 10.000-mAh-Powerbank hat 37 Wh — also kein Problem. '+
'<br><br>Regel weltweit (ICAO): Bis 100 Wattstunden problemlos erlaubt, 100 160 Wh nur mit Erlaubnis der Fluglinie, über 160 Wh komplett verboten. Eine typische 10.000-mAh-Powerbank hat 37 Wh — also kein Problem. '+
'<br><br>2010 sind drei UPS-Frachter wegen brennender Lithium-Akkus abgestürzt — daher die strengen Regeln. Lithium-Akkus in seltenen Fällen Feuer fangen.' },
{ id:'sonnenbr', emoji:'🕶️', name:'Sonnenbrille', info:
'Je näher am '+_g('aequator','Äquator')+' und je höher die Lage, desto stärker die '+_g('uv-strahlung','UV-Strahlung')+'. In Schnee- und Wüstenregionen reflektieren bis zu 80 Prozent der Strahlen — Sonnenbrille mit UV-400-Filter ist Pflicht. '+
'<br><br>Die WHO veröffentlicht den UV-Index als Skala 111+. In Australien werden im Sommer regelmäßig Werte von 1314 gemessen — die höchsten weltweit. '+
'<br><br>Die WHO veröffentlicht den UV-Index als Skala 1 11+. In Australien werden im Sommer regelmäßig Werte von 13 14 gemessen — die höchsten weltweit. '+
'<br><br>UV-Strahlung verursacht Sonnenbrand und auf Dauer auch Hautkrebs. Schutz vor allem mittags zwischen 11 und 15 Uhr ist wichtig — auch bei bewölktem Wetter.' },
{ id:'kamera', emoji:'📷', name:'Reisekamera', info:
'In manchen Ländern ist das '+_g('fotografie-verbot','Fotografieren')+' von Flughäfen, Grenzen, Militär oder Regierungsgebäuden streng verboten. Was bei uns selbstverständlich ist, kann woanders eine Geldstrafe oder Festnahme bedeuten. '+
@@ -1916,7 +1916,7 @@ const KD_FUNDSACHEN = [
'<br><br>Sicher: Flaschenwasser aus versiegelter Plastikflasche, abgekochtes Wasser (3 Min sprudelnd), Filter mit Aktivkohle. Auch Eiswürfel im Drink und ungeschältes Obst können belastet sein.' },
{ id:'geld', emoji:'💶', name:'Reisegeld', info:
'Viele Länder haben eine eigene Währung. Der '+_g('wechselkurs','Wechselkurs')+' sagt, wie viel deine Euro dort wert sind — und er ändert sich täglich. '+
'<br><br>Am Flughafen tauschen ist meistens teurer (schlechter Kurs + Gebühren). Mit Bankkarte zahlen ist oft günstiger — viele Banken nehmen aber 12 % Auslandsgebühr. '+
'<br><br>Am Flughafen tauschen ist meistens teurer (schlechter Kurs + Gebühren). Mit Bankkarte zahlen ist oft günstiger — viele Banken nehmen aber 1 2 % Auslandsgebühr. '+
'<br><br>An Bankomaten im Ausland: immer in Lokalwährung wählen, nie in Euro abrechnen lassen („Dynamic Currency Conversion"). Die Konvertierung der lokalen Bank ist eigentlich immer schlechter.' },
{ id:'karte_kred',emoji:'💳',name:'Bankkarte', info:
'Mit Karte zahlst du oft auch im Ausland. Beim Abheben in fremder '+_g('waehrung','Währung')+' können Gebühren anfallen — vorher den '+_g('wechselkurs','Wechselkurs')+' und die Auslandskonditionen prüfen lohnt sich. '+
@@ -1944,7 +1944,7 @@ const KD_FUNDSACHEN = [
'<br><br>Tipp: Hut mit Sturmband oder Klemme verwenden — bei Wind am Strand oder im Wüstenwind verlierst du ihn sonst leicht.' },
{ id:'jacke', emoji:'🧥', name:'Reisejacke', info:
'Auf der '+_g('suedhalbkugel-jahreszeiten','Südhalbkugel')+' sind die Jahreszeiten umgekehrt: Ist bei uns Sommer, ist es in Australien, Argentinien oder Südafrika Winter. Kleidung also ans Reiseziel anpassen. '+
'<br><br>Sydney im Juli: 815 °C, regnerisch. Buenos Aires im August: ähnlich. Kapstadt im Juni/Juli: kalt und nass. Wer ohne Jacke reist, friert sich schon im Flugzeug-Hotel an. '+
'<br><br>Sydney im Juli: 8 15 °C, regnerisch. Buenos Aires im August: ähnlich. Kapstadt im Juni/Juli: kalt und nass. Wer ohne Jacke reist, friert sich schon im Flugzeug-Hotel an. '+
'<br><br>Tipp: Multi-Layer-Prinzip — mehrere dünne Schichten statt einer dicken. Anpassbar an wechselndes Wetter, leichter im Gepäck.' },
{ id:'schirm', emoji:'☂️', name:'Reiseschirm', info:
'In der tropischen Regenzeit oder im '+_g('monsun','Monsun')+' fällt sehr viel Regen in sehr kurzer Zeit. Ein Schirm gehört dann ins Handgepäck. '+
@@ -1980,7 +1980,7 @@ const KD_FUNDSACHEN = [
'<br><br>Tipp: Kontaktlinsen-Träger:innen sollten neben Linsen und Reinigungslösung immer auch eine Brille mitnehmen. Im Flugzeug ist die Luft so trocken, dass Linsen oft nicht vertragen werden.' },
{ id:'fotoapp', emoji:'🧳', name:'Kulturbeutel', info:
'Im Kulturbeutel sammeln sich viele kleine Flüssigkeiten und Hygiene-Artikel: Zahnpasta, Shampoo, Duschgel, Sonnencreme. Alles über 100 ml besser in den aufgegebenen Koffer legen ('+_g('handgepaeck-fluessigkeit','100-ml-Regel')+'). '+
'<br><br>Universal-Reisegröße: 50100 ml. Viele Hotels stellen Shampoo und Duschgel — du sparst Platz im Koffer. '+
'<br><br>Universal-Reisegröße: 50 100 ml. Viele Hotels stellen Shampoo und Duschgel — du sparst Platz im Koffer. '+
'<br><br>Tipp: Kleine Umfüll-Flaschen kaufen (gibts in jeder Drogerie). Deine eigenen Produkte umfüllen statt teure Reisegrößen kaufen. Kulturbeutel mit Haken zum Aufhängen sind in jedem Hotel praktisch.' },
{ id:'stift', emoji:'🖊️', name:'Kugelschreiber', info:
'Praktisch fürs Ausfüllen von Einreise- und '+_g('zoll-einfuhr','Zollkarten')+', die man in vielen Ländern noch von Hand ausfüllt. Manche Länder verlangen ein Kugelschreiber-Original, kein Kopierer. '+
+10 -10
View File
@@ -114,7 +114,7 @@ const PA = {
this.timer = setTimeout(() => {
if (S && !Sound.muted) Sound.playPA(this.POOL[this.idx++ % this.POOL.length], 0.32);
next();
}, 90000 + Math.random() * 120000); // alle 1,53,5 min
}, 90000 + Math.random() * 120000); // alle 1,5 3,5 min
};
next();
},
@@ -816,7 +816,7 @@ const World = {
const ox = -this.player.x * 0.0045 + t * 0.0006;
skies.forEach(s => { s.tex.offset.x = ox; });
}});
// Überflug-Animation: alle 1545 s quert eine Maschine ein Dachsegment
// Überflug-Animation: alle 15 45 s quert eine Maschine ein Dachsegment
let flyIdx = -1, flyX = 0, flyWait = 8;
this.animated.push({ update: (dt) => {
if (flyIdx < 0) {
@@ -873,7 +873,7 @@ const World = {
panoTex = new THREE.TextureLoader().load(BASE + 'assets/img/panorama-nacht.webp');
panoTex.colorSpace = THREE.SRGBColorSpace;
panoTex.wrapS = THREE.MirroredRepeatWrapping;
// Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 17,5 m) sichtbar sind
// Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 1 7,5 m) sichtbar sind
panoTex.repeat.set(2, 0.7); panoTex.offset.y = 0.15;
}
const pano = new THREE.Mesh(new THREE.PlaneGeometry(240, 16),
@@ -1012,7 +1012,7 @@ const World = {
} catch (_) {}
},
/* ============ Flughafen-Objekte (Sketchfab-Props, je 1080 KB) ============
/* ============ Flughafen-Objekte (Sketchfab-Props, je 10 80 KB) ============
* Ersetzen die wichtigsten prozeduralen Möbel; Positionen handgesetzt.
* mode: 'h' = auf Höhe normieren, 'long' = auf längste Seite normieren */
PROP_DEFS: [
@@ -1638,7 +1638,7 @@ const World = {
this.addBox(x, 2.6, -25, 1.6, 1.0, 0.1, 0x0e1d2a, { emissive: 0x2a6a8a, emissiveIntensity: 0.8 });
}
}
this.sign('Check-in 110', -35, 4.2, -29.4, 14, 1.8, 0, true);
this.sign('Check-in 1 10', -35, 4.2, -29.4, 14, 1.8, 0, true);
// Gepäckkarusselle (stehen nach Dienstschluss still): flaches Band
// mit Metall-Seitenwänden und Mittelinsel statt des alten „Donuts“
@@ -1832,9 +1832,9 @@ const World = {
// gap 0.27 rückt die Schilder vor/hinter die Säule (sonst verdeckt sie die Mitte)
lines.forEach((txt, i) => this.sign(txt, x, 2.45 - i * 0.55, z, 2.6, 0.48, rotY, true, 0.27));
};
mk(4, 14, 0, ['→ Abflug · Gates 1113', '← Gepäckausgabe']);
mk(-26, 2, Math.PI / 2, ['→ Check-in 110', '← Eingangshalle']);
mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 1113']);
mk(4, 14, 0, ['→ Abflug · Gates 11 13', '← Gepäckausgabe']);
mk(-26, 2, Math.PI / 2, ['→ Check-in 1 10', '← Eingangshalle']);
mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 11 13']);
mk(-48, 4, Math.PI / 2, ['→ Gepäcksortierung', '← Gepäckausgabe']);
},
@@ -2939,10 +2939,10 @@ const World = {
this.addInfo(-64, -6, '⚙️', 'Gepäcksortierung',
'Hinter den Kulissen laufen kilometerlange Förderanlagen. Scanner lesen die Barcodes der Anhänger und Weichen lenken jeden Koffer zum richtigen Flug — oft in unter 10 Minuten. Große Flughäfen sortieren so über 100.000 Gepäckstücke pro Tag.');
this.addInfo(46, -2, '🛫', 'Gates & Boarding',
'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 3045 Minuten vor dem Abflug.');
'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 30 45 Minuten vor dem Abflug.');
this.addInfo(49, 24, '🗃️', 'Fundbüro',
'Was im Flughafen liegen bleibt — vom Schal bis zum Laptop — landet hier. Fundstücke werden katalogisiert und mehrere Monate aufbewahrt. Gepäck von Flügen läuft getrennt über die Gepäckermittlung: genau dort arbeitest du heute.',
'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000100.000 Gegenstände liegen. Nur etwa 1520 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.',
'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000 100.000 Gegenstände liegen. Nur etwa 15 20 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.',
'US-Transportation Security Administration (TSA)',
'https://www.tsa.gov/contact/lost-and-found');
this.addInfo(0, 0, '🖥️', 'Abflugtafel lesen',
+1 -1
View File
@@ -470,7 +470,7 @@
/* ============================================================
PLACEHOLDER / STUB FUNKTIONEN
(Logistik-Instanz implementiert diese in Phase 17)
(Logistik-Instanz implementiert diese in Phase 1 7)
============================================================ */
/* ============================================================
+3 -3
View File
@@ -867,9 +867,9 @@ window.LOGISTIK_GLOSSAR = window.LOGISTIK_GLOSSAR || {
teu: { title: 'TEU (20-Fuß-Container)', text: 'TEU = „Twenty-foot Equivalent Unit" — der Standardcontainer. 20 Fuß ≈ 6,06 m lang, 8 Fuß ≈ 2,44 m breit, 8,5 Fuß ≈ 2,59 m hoch. Fasst ca. 33 m³ Ladung oder bis 28 Tonnen. Ein 40-Fuß-Container (FEU) = 2 TEU. In unserer Simulation zählt 1 Container = 1 TEU.' },
intermodal: { title: 'Intermodaler Verkehr', text: 'Transport mit mindestens zwei verschiedenen Verkehrsträgern in einer Kette (z.B. Schiff → Bahn → LKW). Container werden umgeladen, bleiben aber dasselbe Stück.' },
umschlag: { title: 'Umschlag', text: 'Das Umladen einer Ware von einem Transportmittel auf ein anderes. Findet an Häfen, Bahnterminals und Logistikzentren statt.' },
luftlinie: { title: 'Luftlinie', text: 'Direkte gerade Linie zwischen zwei Punkten. Reale Straßen sind 2040 % länger, weil sie Berge umgehen und Städte verbinden.' },
luftlinie: { title: 'Luftlinie', text: 'Direkte gerade Linie zwischen zwei Punkten. Reale Straßen sind 20 40 % länger, weil sie Berge umgehen und Städte verbinden.' },
disposition: { title: 'Disposition', text: 'Die Planung: Welcher Auftrag bekommt welches Fahrzeug? In welcher Reihenfolge wird gefahren? Ziel: keine Leerfahrten, alle Fristen halten.' },
frist: { title: 'Frist', text: 'Spätester Zeitpunkt für die Ablieferung. Bei Überschreitung gibt es Strafkosten (in unserer Simulation 1030 % vom Auftragswert pro Stunde).' },
frist: { title: 'Frist', text: 'Spätester Zeitpunkt für die Ablieferung. Bei Überschreitung gibt es Strafkosten (in unserer Simulation 10 30 % vom Auftragswert pro Stunde).' },
leerfahrt: { title: 'Leerfahrt', text: 'Fahrt ohne Ladung — z.B. wenn ein LKW zur nächsten Abholstelle fährt. Verursacht Kosten, bringt aber keinen Erlös. Gute Disposition vermeidet sie.' },
standkosten: { title: 'Standkosten', text: 'Kosten, die anfallen, während Fahrzeug oder Container nicht bewegt werden — z.B. Container am Hafen, der auf Abholung wartet.' },
bahnterminal: { title: 'Bahnterminal', text: 'Umschlagplatz für Container zwischen Bahn und LKW. Liegt an wichtigen Knotenpunkten (Wien, München, Hamburg).' },
@@ -2706,7 +2706,7 @@ window.pickText = function(opts) {
cost_per_100km = 100 × €/km + (100 / speedKmh) × €/h
Wertebereich bei Defaults:
TRUCK_SMALL ≈ 156 € · TRUCK_LARGE ≈ 325 € · TRAIN ≈ 967 €
Per-100-km ist Kopfrechen-Anker für 1315-jaehrige: Distanz/100 × Wert. */
Per-100-km ist Kopfrechen-Anker für 13 15-jaehrige: Distanz/100 × Wert. */
function vehicleCostPer100Km(mode) {
const veh = (LogistikEngine.VEHICLE_DEFAULTS || {})[mode];
if (!veh) return null;
+1 -1
View File
@@ -76,7 +76,7 @@
}
/* =========================================================
PFLICHTTESTS 17 aus Kickoff-Briefing §5.3
PFLICHTTESTS 1 7 aus Kickoff-Briefing §5.3
========================================================= */
group('Test 1 — Fahrkosten (travelCost)', (t) => {
+1 -1
View File
@@ -331,7 +331,7 @@ body { overflow-y: auto; }
<div class="perf-module-header">
<span class="icon">🌍</span>
<span class="name">Klimawächter</span>
<span class="ggs-badge level-easy" style="margin-left:auto;">Level 13</span>
<span class="ggs-badge level-easy" style="margin-left:auto;">Level 1 3</span>
</div>
<div class="perf-levels">
<div class="perf-level">
+1 -1
View File
@@ -252,7 +252,7 @@ function prepareWave(state, phase, opts = {}) {
}
waveCounts.push(`${n}× ${GROUPS[type].name}`);
// Konvoi statt Streuung: Die Welle einer Gruppe kommt gebündelt kurz
// hintereinander (alle 46 s) und nimmt dieselbe Route so ist sie
// hintereinander (alle 4 6 s) und nimmt dieselbe Route so ist sie
// als zusammengehörende Welle erkennbar.
// Konvois innerhalb der Welle: Gruppe für Gruppe, eng beieinander
const clusterStart = t0 + 1 + slot * (n * 1.2 + 9);
+2 -2
View File
@@ -391,9 +391,9 @@ export class UI {
}
// ---------- Zwei Verlaufs-Graphen in eigenen Feldern ----------
// Feste 020-min-Zeitachse, sichtbare Bodenlinie, alle Daten bleiben.
// Feste 0 20-min-Zeitachse, sichtbare Bodenlinie, alle Daten bleiben.
// Links: Budget (€). Rechts: Zufriedenheits-Erfüllung in % (Ziel 100 %,
// wie „zerstört" im Tower Defense) + Umweltwert auf derselben 0100-Skala.
// wie „zerstört" im Tower Defense) + Umweltwert auf derselben 0 100-Skala.
drawGraph() {
const hist = this.state.history;
if (hist.budget.length < 2) return;
+1 -1
View File
@@ -97,7 +97,7 @@ export const audio = {
},
// ---------- Gelegentliche Naturlaute (statt Dauer-Ambience) ----------
// Alle 1025 s ein kurzer Laut passend zur Saison: Vögel, Kuhglocken,
// Alle 10 25 s ein kurzer Laut passend zur Saison: Vögel, Kuhglocken,
// ein Muhen im Winter meist nur ein Windhauch.
_ambTimer: null,
+5 -5
View File
@@ -226,7 +226,7 @@ export const SCENARIOS = {
id: 'intro-klimawandel', icon: '🌡️', title: 'Die Schneegrenze steigt',
text: 'Sommer 2035. Die Winter werden wärmer, Schnee ist keine '
+ 'Selbstverständlichkeit mehr. Messdaten zeigen: In den Alpen '
+ 'schmilzt der Schnee 59 Tage pro Jahrzehnt früher seit 1970 ist '
+ 'schmilzt der Schnee 5 9 Tage pro Jahrzehnt früher seit 1970 ist '
+ 'die Schneesaison rund einen Monat kürzer geworden.\n\n'
+ 'Dein Tal muss sich neu erfinden: Ganzjahrestourismus! Wer sein '
+ 'Sommerangebot konsequent ausbaut, dessen Sommernachfrage wächst '
@@ -726,7 +726,7 @@ export const KOSTEN_CHECKS = [
frage: 'Was kostet EIN Zimmer mehr oder weniger als 500.000 €?',
optionen: ['Mehr', 'Weniger'], richtig: 1,
aufloesung: '220.000 bis 270.000 Euro pro Zimmer (4 Sterne; 3 Sterne: '
+ '140.000190.000 €). Ein Hotel wie deines mit 60 Betten (~30 Zimmer) '
+ '140.000 190.000 €). Ein Hotel wie deines mit 60 Betten (~30 Zimmer) '
+ 'kostet real also 7 bis 8 MILLIONEN Euro fast tausendmal mehr als '
+ 'im Spiel.',
bonus: 2000,
@@ -772,7 +772,7 @@ export const KNOWLEDGE = {
lift: [
{ term: 'Standortfaktor Höhenlage', text: 'Weiter oben ist es kälter, der Schnee bleibt länger die Skisaison wird länger. Höhe ist ein Standortfaktor.' },
{ term: 'Kapazität', text: 'Ein Lift befördert nur begrenzt viele Gäste pro Tag. Ist er voll, kommen trotz Nachfrage nicht mehr hinauf.' },
{ term: 'Sommergeschäft der Bergbahnen', text: 'Real machen Seilbahnen nur 1525 % ihres Umsatzes im Sommer. Fällt ein Wintergast aus, braucht die Bahn 1,3 bis 4,2 Sommergäste als Ersatz (Seilbahnen Schweiz).' },
{ term: 'Sommergeschäft der Bergbahnen', text: 'Real machen Seilbahnen nur 15 25 % ihres Umsatzes im Sommer. Fällt ein Wintergast aus, braucht die Bahn 1,3 bis 4,2 Sommergäste als Ersatz (Seilbahnen Schweiz).' },
],
gondola: [
{ term: 'Infrastruktur', text: 'Bahnen sind touristische Infrastruktur die Grundausstattung, die eine Tourismusregion erst möglich macht.' },
@@ -793,7 +793,7 @@ export const KNOWLEDGE = {
],
snow: [
{ term: 'Klimawandel-Anpassung', text: 'Beschneiung sichert die Saison, wenn die Winter wärmer werden braucht aber viel Wasser und Energie.' },
{ term: 'Schneesaison wird kürzer', text: 'Messdaten: In den Alpen schmilzt der Schnee 59 Tage pro Jahrzehnt früher; seit 1970 ist die Schneesaison rund einen Monat kürzer (GeoSphere Austria, SLF Schweiz). Unterhalb von ca. 2.000 m trifft es Skigebiete am härtesten.' },
{ term: 'Schneesaison wird kürzer', text: 'Messdaten: In den Alpen schmilzt der Schnee 5 9 Tage pro Jahrzehnt früher; seit 1970 ist die Schneesaison rund einen Monat kürzer (GeoSphere Austria, SLF Schweiz). Unterhalb von ca. 2.000 m trifft es Skigebiete am härtesten.' },
{ term: 'Zielkonflikt Nachhaltigkeit', text: 'Kunstschnee kostet Ressourcen. Nachhaltiger Tourismus fragt: Wie lange lohnt sich das noch?' },
],
badesee: [
@@ -812,7 +812,7 @@ export const KNOWLEDGE = {
{ term: 'Standortfaktor Sicherheit', text: 'Ein gutes Rettungswesen macht eine Region attraktiver Sicherheit ist ein weicher Standortfaktor.' },
],
bikepark: [
{ term: 'Sommernutzung von Winter-Infrastruktur', text: 'Bikeparks nutzen die Lifte im Sommer weiter so verdienen die teuren Bahnen ganzjährig. Real machen Seilbahnen 1525 % ihres Umsatzes im Sommer, Tendenz steigend.' },
{ term: 'Sommernutzung von Winter-Infrastruktur', text: 'Bikeparks nutzen die Lifte im Sommer weiter so verdienen die teuren Bahnen ganzjährig. Real machen Seilbahnen 15 25 % ihres Umsatzes im Sommer, Tendenz steigend.' },
{ term: 'Zielkonflikt', text: 'Trails bedeuten Eingriff in den Hang: Wer den Sommer ausbaut, muss den Naturwert im Blick behalten wie beim Winterausbau auch.' },
],
ropes: [
+1 -1
View File
@@ -940,7 +940,7 @@ export class IsoRenderer {
const k = `${b.c},${b.r}`;
if (!msg) { delete this._probNext[k]; continue; }
if (!this._probNext[k]) {
// erster Hinweis nach 1535 s, danach im 3-Minuten-Takt
// erster Hinweis nach 15 35 s, danach im 3-Minuten-Takt
this._probNext[k] = now + 15000 + Math.random() * 20000;
} else if (now >= this._probNext[k]) {
this._probNext[k] = now + 180000;
+6 -6
View File
@@ -259,7 +259,7 @@
<div id="info-panel">
<div class="info-row"><span class="info-label">Magma-Art</span><span class="info-value" id="magma-type">BASALTISCH</span></div>
<div class="info-row"><span class="info-label">Eruptionstyp</span><span class="info-value" id="eruption-type">EFFUSIV</span></div>
<div class="info-row"><span class="info-label">Explosivität (VEI)</span><span class="info-value" id="vei">01</span></div>
<div class="info-row"><span class="info-label">Explosivität (VEI)</span><span class="info-value" id="vei">0 1</span></div>
<div id="expl-bar"><div id="expl-fill" style="width:15%"></div></div>
</div>
@@ -2965,11 +2965,11 @@ function eruptionStyle(expl, water) {
}
function vei(expl) {
if (expl < 0.10) return '0';
if (expl < 0.25) return '12';
if (expl < 0.45) return '23';
if (expl < 0.65) return '34';
if (expl < 0.85) return '45';
return '56';
if (expl < 0.25) return '1 2';
if (expl < 0.45) return '2 3';
if (expl < 0.65) return '3 4';
if (expl < 0.85) return '4 5';
return '5 6';
}
function didactic() {
@@ -37,7 +37,7 @@
"800 g festkochende Erdäpfel mit Schale weichkochen (etwa 20 min), kalt werden lassen, schälen, in 1 cm dicke Scheiben oder Würfel.",
"200 g durchwachsenen Speck in eine große Pfanne geben (kein extra Fett), bei mittlerer Hitze knusprig auslassen, herausnehmen.",
"2 mittelgroße Zwiebeln fein würfeln, im ausgelassenen Speckfett goldgelb dünsten.",
"Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 810 Minuten knusprig braten — nur 12 Mal vorsichtig wenden.",
"Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 8 10 Minuten knusprig braten — nur 1 2 Mal vorsichtig wenden.",
"Mit Salz, frisch gemahlenem Pfeffer und 1 TL Majoran würzen. Speck wieder unterheben.",
"Pro Portion 1 Spiegelei separat braten (Eigelb soll flüssig bleiben), auf das Gröstl setzen, mit reichlich Schnittlauchröllchen bestreuen."
],
@@ -93,10 +93,10 @@
"steps": [
"Teig: 300 g glattes Mehl, 1 Ei, 1 EL Öl, ca. 130 ml lauwarmes Wasser, eine Prise Salz zu einem geschmeidigen Teig kneten. 30 min ruhen lassen.",
"Fülle: 200 g Kartoffeln weichkochen, schälen, durch die Presse drücken. Mit 250 g Topfen, 1 EL gehackter frischer Minze (oder Bohnenkraut), 1 EL Petersilie, Salz und Pfeffer verkneten.",
"Den Teig hauchdünn ausrollen (12 mm), Kreise mit 10 cm Durchmesser ausstechen.",
"Den Teig hauchdünn ausrollen (1 2 mm), Kreise mit 10 cm Durchmesser ausstechen.",
"Auf jeden Kreis 1 TL Fülle setzen, zu einem Halbmond zusammenklappen, Rand fest andrücken.",
"Den Rand mit dem Krendeln' verzieren: mit Daumen und Zeigefinger eine geriffelte Wulst eindrehen — das ist die Kärntner Kunst!",
"In siedendem Salzwasser 57 min ziehen lassen (nicht sprudelnd kochen!).",
"In siedendem Salzwasser 5 7 min ziehen lassen (nicht sprudelnd kochen!).",
"Mit zerlassener Butter überschwemmen und sofort servieren."
],
"tipp": "Das Krendeln' braucht Übung — wer es nicht schafft, kann den Rand mit einer Gabel andrücken. Original aber: die geriffelte Wulst gehört dazu."
@@ -269,7 +269,7 @@
"8 reife Wachauer Marillen waschen, einen kleinen Schnitt machen, den Kern herausnehmen. Loch mit 1 Würfelzucker füllen.",
"Teig: 300 g mehlige Erdäpfel weichkochen, schälen, durch die Presse drücken, abkühlen lassen. Mit 250 g Topfen, 1 Ei, 60 g griffigem Mehl, 60 g Grieß, einer Prise Salz zu einem geschmeidigen Teig verkneten.",
"Den Teig in 8 Portionen teilen. Jede Portion zu einem Fladen drücken, eine Marille hineinwickeln, fest verschließen — kein Loch lassen, sonst läuft der Saft aus!",
"In viel Salzwasser bei kleiner Hitze 1214 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.",
"In viel Salzwasser bei kleiner Hitze 12 14 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.",
"150 g Butter in einer Pfanne zerlassen, 150 g Semmelbrösel darin goldbraun rösten.",
"Knödel mit dem Schaumlöffel herausheben, in den Bröseln wälzen, mit reichlich Staubzucker bestreuen."
],
@@ -96,7 +96,7 @@
"6 Eidotter einzeln einrühren. 130 g geschmolzene und ausgekühlte dunkle Schokolade unterheben.",
"6 Eiklar mit 110 g Zucker zu festem Schnee schlagen. Drittelweise unter die Schokomasse heben — vorsichtig, sonst geht die Luft raus.",
"130 g griffiges Mehl darüber sieben, locker unterheben. In die Form füllen, glattstreichen.",
"Im Rohr 5060 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.",
"Im Rohr 50 60 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.",
"Torte horizontal halbieren. 200 g Marillenmarmelade glatt rühren (oder kurz erwärmen), zwischen die Hälften streichen UND oben + außen dünn darauf streichen.",
"Glasur: 200 g Zucker mit 125 ml Wasser zu Sirup kochen (5 min), kurz abkühlen, mit 150 g grob gehackter dunkler Schokolade verrühren — Glasur muss in einem Schwall über die Torte fließen, NICHT mit Messer streichen!",
"12 h ruhen lassen. Mit Schlagobers servieren."
@@ -116,7 +116,7 @@
"eh": "Komplexes Mehlspeisen-Rezept — Klassiker zum Üben von Schaumbildung, Unterheben, Glasieren. Hoher Zuckergehalt — diskutiere Anlassgebäck' vs. Alltagsessen.",
"gw": "Kakao aus Westafrika, Marillen lokal — die Sachertorte ist ein Welt-vs-Region-Beispiel auf einem Teller. Wie weit ist die Kakaobohne gereist?",
"bu": "Kakao-Anbau in Côte d'Ivoire/Ghana: Kinderarbeit, Regenwald-Rodung — kritische Auseinandersetzung mit fairem Handel.",
"de": "Sachertorte vs. Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (19341963). Was schützt eine Marke vs. ein Rezept?"
"de": "Sachertorte vs. Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (1934 1963). Was schützt eine Marke vs. ein Rezept?"
},
"fact": "Franz Sacher erfand das Rezept 1832 mit 16 Jahren als Lehrling für Fürst Metternich. Den Streit, ob die Marillenmarmelade in der Mitte ODER nur außen sein darf, haben Sacher und Demel über 30 Jahre lang vor Gericht geführt — verloren hat keiner: heute gibt es beide Originale'.",
"diff_note": "echtes Konditor-Handwerk — Eiklarschnee, Glasur in einem Schwall, kein Streichen"
@@ -219,7 +219,7 @@
"1 Pkg. Plunderteig (TK, aufgetaut) ausrollen, in 8 Quadrate à 10 cm schneiden.",
"Auf jede Mitte 1 EL Topfenmasse setzen. Ecken zur Mitte einklappen und leicht andrücken — wie ein Geschenkpaket.",
"Mit verquirltem Ei bestreichen.",
"Im Rohr 1820 min backen, bis sie goldbraun und aufgegangen sind.",
"Im Rohr 18 20 min backen, bis sie goldbraun und aufgegangen sind.",
"Lauwarm mit Staubzucker bestreut servieren."
],
"tipp": "Mit selbstgemachtem Plunder­teig (Touren-Teig) noch luftiger — aber dauert 6 h. Mit TK-Teig sind sie in 50 min am Tisch."
@@ -280,7 +280,7 @@
"20 min auf einem Blech bei Raumtemperatur abstehen lassen' — Oberfläche muss antrocknen.",
"Lauge: 1 L kaltes Wasser mit 30 g Natriumhydroxid (Achtung: ätzend, Handschuhe!) ODER alternativ 30 g Natron in heißem Wasser für die einfache Variante.",
"Brezeln kurz in Lauge tauchen (10 sec), abtropfen, mit grobem Salz bestreuen, in der Schmetterling-Form mit Messer einschneiden.",
"Bei 220 °C 1820 min backen, bis sie tief mahagoni-braun sind.",
"Bei 220 °C 18 20 min backen, bis sie tief mahagoni-braun sind.",
"Obatzda: 200 g reifer Camembert mit 100 g Frischkäse, 1 fein gehackter Zwiebel, 1 TL Paprika, Pfeffer, einem Schuss Bier glatt verrühren. Mit Schnittlauch servieren.",
"Brezel kurz warm halten, mit Obatzda und Radieschen."
],
@@ -32,15 +32,15 @@
"time_min": 1800,
"steps": [
"Teig (24 h vorher): 500 g italienisches Tipo-00-Mehl mit 320 ml Wasser, 2 g frischer Hefe, 15 g Salz verkneten — 15 min lang per Hand.",
"Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 1824 h im Kühlschrank reifen lassen.",
"Ofen mit Pizzastein auf maximaler Hitze (250300 °C) 1 h vorheizen.",
"Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 18 24 h im Kühlschrank reifen lassen.",
"Ofen mit Pizzastein auf maximaler Hitze (250 300 °C) 1 h vorheizen.",
"Teig auf bemehlter Fläche per Hand ausdrücken — niemals mit Nudelholz! Rand stehen lassen.",
"Belag: 80 g zerdrückte San-Marzano-Tomaten (aus der Dose, NICHT gekocht) gleichmäßig verteilen. 100 g Mozzarella di Bufala in groben Stücken auflegen.",
"56 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.",
"Auf den heißen Stein gleiten lassen — 6090 Sekunden backen, bis der Rand schwarze Bläschen wirft.",
"5 6 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.",
"Auf den heißen Stein gleiten lassen — 60 90 Sekunden backen, bis der Rand schwarze Bläschen wirft.",
"Sofort essen — eine Pizza Margherita wartet auf niemanden."
],
"tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 45 min. Der Rand MUSS dunkle Bläschen haben (leoparding') — das ist das Qualitätsmerkmal."
"tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 4 5 min. Der Rand MUSS dunkle Bläschen haben (leoparding') — das ist das Qualitätsmerkmal."
},
"nutrition": {
"portion_g": 280,
@@ -419,7 +419,7 @@
"bu": "Lamm hat hohen Klima-Footprint. Diskussion: Festtagsgericht oder Alltagsessen?",
"de": "Moussaka' kommt vom arabischen musaqqa'a' = gekühlt' — wurde traditionell auch kalt gegessen. Sprachwege durch die Mittelmeer-Geschichte."
},
"fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (18781958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.",
"fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (1878 1958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.",
"diff_note": "drei Komponenten (Aubergine, Ragout, Béchamel) + langes Backen — Marathon"
},
"kanelbulle": {
@@ -460,7 +460,7 @@
"Von der langen Seite eng aufrollen — wie Strudel. Mit scharfem Messer 16 gleich dicke Scheiben schneiden.",
"Scheiben auf gefettetes Blech setzen, abgedeckt 45 min nachgehen lassen.",
"Mit verquirltem Ei bestreichen, mit Hagelzucker bestreuen.",
"Bei 220 °C 1012 min backen — sie sollen goldbraun, aber innen noch saftig sein.",
"Bei 220 °C 10 12 min backen — sie sollen goldbraun, aber innen noch saftig sein.",
"Sofort essen — oder mit Tee am Kanelbullens dag' (4. Oktober) feiern."
],
"tipp": "Kardamom ist die Geheimwaffe — er macht den Unterschied zwischen schwedisch' und nur Zimtschnecke'. Nicht weglassen!"
@@ -518,7 +518,7 @@
"Fülle: 400 g mehlige Erdäpfel weichkochen, schälen, durchpressen. Mit 200 g Magertopfen + 1 fein gehackter und in Butter glasiger Zwiebel + Salz + Pfeffer mischen.",
"Teig hauchdünn ausrollen (2 mm), Kreise mit Glas (Ø 8 cm) ausstechen.",
"Auf jeden Kreis 1 TL Fülle, zu Halbmond zusammenklappen, Rand fest andrücken — wie Kärntner Kasnudeln.",
"In siedendem Salzwasser 45 min ziehen lassen, bis sie an die Oberfläche kommen.",
"In siedendem Salzwasser 4 5 min ziehen lassen, bis sie an die Oberfläche kommen.",
"TOPPING: 2 große Zwiebeln in feine Ringe, in 50 g Butter goldbraun rösten.",
"Pierogi auf Tellern anrichten, mit den Röstzwiebeln + 2 EL Sahne pro Portion krönen. Mit Schnittlauch bestreuen."
],
@@ -535,7 +535,7 @@
},
"lehrplan": {
"eh": "Teigtaschen-Familie: Maultaschen (DE), Kasnudeln (AT), Pierogi (PL), Ravioli (IT). Diskussion: warum gibt es DIESE Form so verbreitet?",
"gw": "Polen + Westukraine — Grenzland-Küche. Historische Region Galizien' (17721918 österreichisch). Wie Politik die Küche prägt.",
"gw": "Polen + Westukraine — Grenzland-Küche. Historische Region Galizien' (1772 1918 österreichisch). Wie Politik die Küche prägt.",
"bu": "Hauptzutaten lokal: Erdäpfel, Topfen, Zwiebel. Klima-Footprint sehr niedrig — vegetarische Variante.",
"de": "Pierogi' = Pluralform, Singular ist pierog'. Im Deutschen oft falsch verwendet (ein Pierogi'). Sprachgebrauch in der Migration."
},
@@ -239,8 +239,8 @@
"FALAFEL-PASTE: Kichererbsen mit 1 großen Zwiebel + 4 Knoblauchzehen + 1 großem Bund Petersilie + ½ Bund Koriandergrün + 2 TL Kreuzkümmel + 1 TL Korianderpulver + 1 TL Salz fein im Cutter zerkleinern.",
"1 TL Backpulver + 2 EL Mehl unterheben — macht innen luftig.",
"Aus der Masse 16 walnussgroße Bällchen formen (oder mit Falafel-Form pressen). 15 min im Kühlschrank ruhen.",
"FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 45 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.",
"HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 46 EL Eiswasser zu cremiger Paste mixen — 4 min lang!",
"FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 4 5 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.",
"HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 4 6 EL Eiswasser zu cremiger Paste mixen — 4 min lang!",
"Hummus in Schüssel anrichten, Vertiefung mit Olivenöl + Paprikapulver füllen.",
"Falafel mit warmem Fladenbrot, Hummus, Tahini-Sauce, gehackten Tomaten/Gurken und Petersilie servieren."
],
+19 -19
View File
@@ -39,7 +39,7 @@
"800 g festkochende Erdäpfel mit Schale weichkochen (etwa 20 min), kalt werden lassen, schälen, in 1 cm dicke Scheiben oder Würfel.",
"200 g durchwachsenen Speck in eine große Pfanne geben (kein extra Fett), bei mittlerer Hitze knusprig auslassen, herausnehmen.",
"2 mittelgroße Zwiebeln fein würfeln, im ausgelassenen Speckfett goldgelb dünsten.",
"Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 810 Minuten knusprig braten — nur 12 Mal vorsichtig wenden.",
"Die Erdäpfel zugeben, mit 1 EL Butterschmalz vermengen, 8 10 Minuten knusprig braten — nur 1 2 Mal vorsichtig wenden.",
"Mit Salz, frisch gemahlenem Pfeffer und 1 TL Majoran würzen. Speck wieder unterheben.",
"Pro Portion 1 Spiegelei separat braten (Eigelb soll flüssig bleiben), auf das Gröstl setzen, mit reichlich Schnittlauchröllchen bestreuen."
],
@@ -96,10 +96,10 @@
"steps": [
"Teig: 300 g glattes Mehl, 1 Ei, 1 EL Öl, ca. 130 ml lauwarmes Wasser, eine Prise Salz zu einem geschmeidigen Teig kneten. 30 min ruhen lassen.",
"Fülle: 200 g Kartoffeln weichkochen, schälen, durch die Presse drücken. Mit 250 g Topfen, 1 EL gehackter frischer Minze (oder Bohnenkraut), 1 EL Petersilie, Salz und Pfeffer verkneten.",
"Den Teig hauchdünn ausrollen (12 mm), Kreise mit 10 cm Durchmesser ausstechen.",
"Den Teig hauchdünn ausrollen (1 2 mm), Kreise mit 10 cm Durchmesser ausstechen.",
"Auf jeden Kreis 1 TL Fülle setzen, zu einem Halbmond zusammenklappen, Rand fest andrücken.",
"Den Rand mit dem Krendeln' verzieren: mit Daumen und Zeigefinger eine geriffelte Wulst eindrehen — das ist die Kärntner Kunst!",
"In siedendem Salzwasser 57 min ziehen lassen (nicht sprudelnd kochen!).",
"In siedendem Salzwasser 5 7 min ziehen lassen (nicht sprudelnd kochen!).",
"Mit zerlassener Butter überschwemmen und sofort servieren."
],
"tipp": "Das Krendeln' braucht Übung — wer es nicht schafft, kann den Rand mit einer Gabel andrücken. Original aber: die geriffelte Wulst gehört dazu."
@@ -266,7 +266,7 @@
"8 reife Wachauer Marillen waschen, einen kleinen Schnitt machen, den Kern herausnehmen. Loch mit 1 Würfelzucker füllen.",
"Topfenteig (ohne Erdäpfel): 250 g gut abgetropften Topfen mit 1 Ei, 40 g weicher Butter, einer Prise Salz und etwas abgeriebener Bio-Zitronenschale glatt rühren. 120 g griffiges Mehl und 60 g Grieß untermengen, rasch zu einem geschmeidigen Teig verkneten. 30 min kalt ruhen lassen — der Grieß quillt, dann lässt sich der Teig gut formen.",
"Den Teig in 8 Portionen teilen. Jede Portion zu einem Fladen drücken, eine Marille hineinwickeln, fest verschließen — kein Loch lassen, sonst läuft der Saft aus!",
"In viel Salzwasser bei kleiner Hitze 1214 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.",
"In viel Salzwasser bei kleiner Hitze 12 14 min ziehen lassen — die Knödel müssen schwimmen, aber nicht sprudeln.",
"150 g Butter in einer Pfanne zerlassen, 150 g Semmelbrösel darin goldbraun rösten.",
"Knödel mit dem Schaumlöffel herausheben, in den Bröseln wälzen, mit reichlich Staubzucker bestreuen."
],
@@ -384,7 +384,7 @@
"6 Eidotter einzeln einrühren. 130 g geschmolzene und ausgekühlte dunkle Schokolade unterheben.",
"6 Eiklar mit 110 g Zucker zu festem Schnee schlagen. Drittelweise unter die Schokomasse heben — vorsichtig, sonst geht die Luft raus.",
"130 g griffiges Mehl darüber sieben, locker unterheben. In die Form füllen, glattstreichen.",
"Im Rohr 5060 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.",
"Im Rohr 50 60 min backen. Stäbchenprobe: kommt sauber raus, ist die Torte fertig. In der Form 10 min ruhen, stürzen, kalt werden lassen.",
"Torte horizontal halbieren. 200 g Marillenmarmelade glatt rühren (oder kurz erwärmen), zwischen die Hälften streichen UND oben + außen dünn darauf streichen.",
"Glasur: 200 g Zucker mit 125 ml Wasser zu Sirup kochen (5 min), kurz abkühlen, mit 150 g grob gehackter dunkler Schokolade verrühren — Glasur muss in einem Schwall über die Torte fließen, NICHT mit Messer streichen!",
"12 h ruhen lassen. Mit Schlagobers servieren."
@@ -404,7 +404,7 @@
"eh": "Komplexes Mehlspeisen-Rezept — Klassiker zum Üben von Schaumbildung, Unterheben, Glasieren. Hoher Zuckergehalt — diskutiere Anlassgebäck' vs. Alltagsessen.",
"gw": "Kakao aus Westafrika, Marillen lokal — die Sachertorte ist ein Welt-vs-Region-Beispiel auf einem Teller. Wie weit ist die Kakaobohne gereist?",
"bu": "Kakao-Anbau in Côte d'Ivoire/Ghana: Kinderarbeit, Regenwald-Rodung — kritische Auseinandersetzung mit fairem Handel.",
"de": "Sachertorte vs. Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (19341963). Was schützt eine Marke vs. ein Rezept?"
"de": "Sachertorte vs. Original Sacher-Torte' — Markenrechtsstreit Hotel Sacher vs. Demel (1934 1963). Was schützt eine Marke vs. ein Rezept?"
},
"fact": "Franz Sacher erfand das Rezept 1832 mit 16 Jahren als Lehrling für Fürst Metternich. Den Streit, ob die Marillenmarmelade in der Mitte ODER nur außen sein darf, haben Sacher und Demel über 30 Jahre lang vor Gericht geführt — verloren hat keiner: heute gibt es beide Originale'.",
"diff_note": "echtes Konditor-Handwerk — Eiklarschnee, Glasur in einem Schwall, kein Streichen",
@@ -504,7 +504,7 @@
"1 Pkg. Plunderteig (TK, aufgetaut) ausrollen, in 8 Quadrate à 10 cm schneiden.",
"Auf jede Mitte 1 EL Topfenmasse setzen. Ecken zur Mitte einklappen und leicht andrücken — wie ein Geschenkpaket.",
"Mit verquirltem Ei bestreichen.",
"Im Rohr 1820 min backen, bis sie goldbraun und aufgegangen sind.",
"Im Rohr 18 20 min backen, bis sie goldbraun und aufgegangen sind.",
"Lauwarm mit Staubzucker bestreut servieren."
],
"tipp": "Mit selbstgemachtem Plunder­teig (Touren-Teig) noch luftiger — aber dauert 6 h. Mit TK-Teig sind sie in 50 min am Tisch."
@@ -561,7 +561,7 @@
"20 min auf einem Blech bei Raumtemperatur abstehen lassen' — Oberfläche muss antrocknen.",
"Lauge: 1 L kaltes Wasser mit 30 g Natriumhydroxid (Achtung: ätzend, Handschuhe!) ODER alternativ 30 g Natron in heißem Wasser für die einfache Variante.",
"Brezeln kurz in Lauge tauchen (10 sec), abtropfen, mit grobem Salz bestreuen, in der Schmetterling-Form mit Messer einschneiden.",
"Bei 220 °C 1820 min backen, bis sie tief mahagoni-braun sind.",
"Bei 220 °C 18 20 min backen, bis sie tief mahagoni-braun sind.",
"Obatzda: 200 g reifer Camembert mit 100 g Frischkäse, 1 fein gehackter Zwiebel, 1 TL Paprika, Pfeffer, einem Schuss Milch glatt verrühren. Mit Schnittlauch servieren.",
"Brezel kurz warm halten, mit Obatzda und Radieschen."
],
@@ -900,15 +900,15 @@
"time_min": 1800,
"steps": [
"Teig (24 h vorher): 500 g italienisches Tipo-00-Mehl mit 320 ml Wasser, 2 g frischer Hefe, 15 g Salz verkneten — 15 min lang per Hand.",
"Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 1824 h im Kühlschrank reifen lassen.",
"Ofen mit Pizzastein auf maximaler Hitze (250300 °C) 1 h vorheizen.",
"Teig 4 h bei Raumtemperatur gehen lassen, dann in 4 Kugeln teilen (Pizza-Bälle). 18 24 h im Kühlschrank reifen lassen.",
"Ofen mit Pizzastein auf maximaler Hitze (250 300 °C) 1 h vorheizen.",
"Teig auf bemehlter Fläche per Hand ausdrücken — niemals mit Nudelholz! Rand stehen lassen.",
"Belag: 80 g zerdrückte San-Marzano-Tomaten (aus der Dose, NICHT gekocht) gleichmäßig verteilen. 100 g Mozzarella di Bufala in groben Stücken auflegen.",
"56 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.",
"Auf den heißen Stein gleiten lassen — 6090 Sekunden backen, bis der Rand schwarze Bläschen wirft.",
"5 6 frische Basilikum-Blätter darauf, 1 EL Olivenöl extra vergine im Spiralmuster.",
"Auf den heißen Stein gleiten lassen — 60 90 Sekunden backen, bis der Rand schwarze Bläschen wirft.",
"Sofort essen — eine Pizza Margherita wartet auf niemanden."
],
"tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 45 min. Der Rand MUSS dunkle Bläschen haben (leoparding') — das ist das Qualitätsmerkmal."
"tipp": "Im Holzofen 60 sec, im Haushaltsofen mit Stein 4 5 min. Der Rand MUSS dunkle Bläschen haben (leoparding') — das ist das Qualitätsmerkmal."
},
"nutrition": {
"portion_g": 280,
@@ -1278,7 +1278,7 @@
"bu": "Lamm hat hohen Klima-Footprint. Diskussion: Festtagsgericht oder Alltagsessen?",
"de": "Moussaka' kommt vom arabischen musaqqa'a' = gekühlt' — wurde traditionell auch kalt gegessen. Sprachwege durch die Mittelmeer-Geschichte."
},
"fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (18781958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.",
"fact": "Die heutige Moussaka mit Béchamel ist eine Erfindung des griechischen Kochs Nikolaos Tselementes (1878 1958), der die griechische Küche im 1920er-Jahre nach französischen Vorbildern modernisierte. Vor ihm gab's Moussaka ohne die weiße Sauce.",
"diff_note": "drei Komponenten (Aubergine, Ragout, Béchamel) + langes Backen — Marathon",
"id": "moussaka",
"heimat": "griechenland"
@@ -1318,7 +1318,7 @@
"Von der langen Seite eng aufrollen — wie Strudel. Mit scharfem Messer 16 gleich dicke Scheiben schneiden.",
"Scheiben auf gefettetes Blech setzen, abgedeckt 45 min nachgehen lassen.",
"Mit verquirltem Ei bestreichen, mit Hagelzucker bestreuen.",
"Bei 220 °C 1012 min backen — sie sollen goldbraun, aber innen noch saftig sein.",
"Bei 220 °C 10 12 min backen — sie sollen goldbraun, aber innen noch saftig sein.",
"Sofort essen — oder mit Tee am Kanelbullens dag' (4. Oktober) feiern."
],
"tipp": "Kardamom ist die Geheimwaffe — er macht den Unterschied zwischen schwedisch' und nur Zimtschnecke'. Nicht weglassen!"
@@ -1375,7 +1375,7 @@
"Fülle: 400 g mehlige Erdäpfel weichkochen, schälen, durchpressen. Mit 200 g Magertopfen + 1 fein gehackter und in Butter glasiger Zwiebel + Salz + Pfeffer mischen.",
"Teig hauchdünn ausrollen (2 mm), Kreise mit Glas (Ø 8 cm) ausstechen.",
"Auf jeden Kreis 1 TL Fülle, zu Halbmond zusammenklappen, Rand fest andrücken — wie Kärntner Kasnudeln.",
"In siedendem Salzwasser 45 min ziehen lassen, bis sie an die Oberfläche kommen.",
"In siedendem Salzwasser 4 5 min ziehen lassen, bis sie an die Oberfläche kommen.",
"TOPPING: 2 große Zwiebeln in feine Ringe, in 50 g Butter goldbraun rösten.",
"Pierogi auf Tellern anrichten, mit den Röstzwiebeln + 2 EL Sahne pro Portion krönen. Mit Schnittlauch bestreuen."
],
@@ -1392,7 +1392,7 @@
},
"lehrplan": {
"eh": "Teigtaschen-Familie: Maultaschen (DE), Kasnudeln (AT), Pierogi (PL), Ravioli (IT). Diskussion: warum gibt es DIESE Form so verbreitet?",
"gw": "Polen + Westukraine — Grenzland-Küche. Historische Region Galizien' (17721918 österreichisch). Wie Politik die Küche prägt.",
"gw": "Polen + Westukraine — Grenzland-Küche. Historische Region Galizien' (1772 1918 österreichisch). Wie Politik die Küche prägt.",
"bu": "Hauptzutaten lokal: Erdäpfel, Topfen, Zwiebel. Klima-Footprint sehr niedrig — vegetarische Variante.",
"de": "Pierogi' = Pluralform, Singular ist pierog'. Im Deutschen oft falsch verwendet (ein Pierogi'). Sprachgebrauch in der Migration."
},
@@ -1683,8 +1683,8 @@
"FALAFEL-PASTE: Kichererbsen mit 1 großen Zwiebel + 4 Knoblauchzehen + 1 großem Bund Petersilie + ½ Bund Koriandergrün + 2 TL Kreuzkümmel + 1 TL Korianderpulver + 1 TL Salz fein im Cutter zerkleinern.",
"1 TL Backpulver + 2 EL Mehl unterheben — macht innen luftig.",
"Aus der Masse 16 walnussgroße Bällchen formen (oder mit Falafel-Form pressen). 15 min im Kühlschrank ruhen.",
"FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 45 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.",
"HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 46 EL Eiswasser zu cremiger Paste mixen — 4 min lang!",
"FRITTIEREN: Öl auf 170 °C erhitzen. Falafel in 2 Portionen 4 5 min frittieren, bis sie tiefbraun und außen knusprig sind. Auf Küchenpapier abtropfen.",
"HUMMUS: 1 Dose Kichererbsen (eingelegt) abgespült, mit 3 EL Tahini, 2 EL Zitronensaft, 1 Knoblauchzehe, 4 EL Olivenöl, ½ TL Kumin, 1 TL Salz, 4 6 EL Eiswasser zu cremiger Paste mixen — 4 min lang!",
"Hummus in Schüssel anrichten, Vertiefung mit Olivenöl + Paprikapulver füllen.",
"Falafel mit warmem Fladenbrot, Hummus, Tahini-Sauce, gehackten Tomaten/Gurken und Petersilie servieren."
],
@@ -103,7 +103,7 @@
"uganda",
"tansania"
],
"fact": "Aus einer Kakaofrucht kommen ~3040 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen."
"fact": "Aus einer Kakaofrucht kommen ~30 40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen."
},
"vanille": {
"nm": "Vanille",
+31 -31
View File
@@ -363,7 +363,7 @@ let C = {
/* ====================== ZUTATEN-BAUSTEINE ====================== */
let ING = {
pfeffer:{nm:"Schwarzer Pfeffer",ic:"🧂",correct:["vietnam","indien"],choices:["vietnam","indien","island","kanada"],
econ:{leader:"Vietnam",share:"~40 % des Welt-Pfefferexports",world:"~550.000 t / Jahr weltweit",price:"ca. 24 € / 100 g"},
econ:{leader:"Vietnam",share:"~40 % des Welt-Pfefferexports",world:"~550.000 t / Jahr weltweit",price:"ca. 2 4 € / 100 g"},
note:"Pfeffer ist eine tropische Kletterpflanze und wächst nur nahe am Äquator. In Island oder Kanada ist es viel zu kalt.",
more:"Pfeffer war im Mittelalter so wertvoll, dass man ihn „schwarzes Gold“ nannte und damit sogar bezahlte."},
olivenoel:{nm:"Olivenöl",ic:"🫒",correct:["spanien","italien"],choices:["spanien","italien","schweden","polen"],
@@ -371,31 +371,31 @@ let ING = {
note:"Olivenbäume lieben das milde Mittelmeerklima. In Schweden oder Polen sind die Winter zu kalt.",
more:"Ein Olivenbaum kann über 1000 Jahre alt werden und trägt jedes Jahr aufs Neue Früchte."},
hartweizen:{nm:"Hartweizen (Teig)",ic:"🌾",correct:["kanada","italien"],choices:["kanada","italien","norwegen","saudi"],
econ:{leader:"Kanada",share:"weltgrößter Hartweizen-Exporteur (~50 % Welthandel)",world:"~770 Mio t Weizen / Jahr",price:"ca. 0,100,20 € / 100 g (Mehl)"},
econ:{leader:"Kanada",share:"weltgrößter Hartweizen-Exporteur (~50 % Welthandel)",world:"~770 Mio t Weizen / Jahr",price:"ca. 0,10 0,20 € / 100 g (Mehl)"},
note:"Weizen braucht gemäßigtes Klima mit genug Regen nicht zu kalt wie Norwegen, nicht zu trocken wie Saudi-Arabien.",
more:"Hartweizen (Durum) ist besonders eiweißreich darum hält Pasta beim Kochen ihre Form."},
tomaten:{nm:"Tomaten (Sauce)",ic:"🍅",correct:["italien","spanien"],choices:["italien","spanien","norwegen","island"],
econ:{leader:"Italien & Spanien (EU)",share:"China ist weltweit Nr. 1, in Europa führen Italien & Spanien",world:"~190 Mio t Tomaten / Jahr",price:"ca. 0,150,25 € / 100 g (Dose)"},
econ:{leader:"Italien & Spanien (EU)",share:"China ist weltweit Nr. 1, in Europa führen Italien & Spanien",world:"~190 Mio t Tomaten / Jahr",price:"ca. 0,15 0,25 € / 100 g (Dose)"},
note:"Tomaten lieben Sonne und Wärme. Im hohen Norden wachsen sie nur im beheizten Gewächshaus.",
more:"Die berühmten Pizza- und Pastasaucen kommen meist aus süditalienischen Tomaten, etwa aus der Gegend um Neapel."},
kakao:{nm:"Kakao",ic:"🍫",correct:["elfenbein","ghana"],choices:["elfenbein","ghana","deutschland","kanada"],
econ:{leader:"Elfenbeinküste",share:"~40 % der Weltproduktion (mit Ghana ~60 %)",world:"~5 Mio t Kakaobohnen / Jahr",price:"ca. 12 € / 100 g (Kakaopulver)"},
econ:{leader:"Elfenbeinküste",share:"~40 % der Weltproduktion (mit Ghana ~60 %)",world:"~5 Mio t Kakaobohnen / Jahr",price:"ca. 1 2 € / 100 g (Kakaopulver)"},
note:"Der Kakaobaum wächst nur in heißen, feuchten Gebieten nahe am Äquator Deutschland und Kanada sind zu kalt.",
more:"Aus einer Kakaofrucht kommen ~3040 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen."},
more:"Aus einer Kakaofrucht kommen ~30 40 Bohnen; für 100 g Schokolade braucht man rund 100 Bohnen."},
rohrzucker:{nm:"Rohrzucker",ic:"🧊",correct:["brasilien","indien"],choices:["brasilien","indien","norwegen","finnland"],
econ:{leader:"Brasilien",share:"weltgrößter Zucker-Exporteur",world:"~180 Mio t Zucker / Jahr",price:"ca. 0,10 € / 100 g"},
note:"Zuckerrohr ist eine tropische Pflanze. (In Europa gewinnt man Zucker stattdessen aus Zuckerrüben.)",
more:"Aus Zuckerrohr macht Brasilien auch Biosprit (Ethanol) für Autos."},
vanille:{nm:"Vanille",ic:"🌼",correct:["madagaskar","indonesien"],choices:["madagaskar","indonesien","frankreich","japan"],
econ:{leader:"Madagaskar",share:"~7580 % der Weltproduktion",world:"weltweit nur ~7.000 t / Jahr",price:"ca. 3060 € / 100 g (echte Schoten)"},
econ:{leader:"Madagaskar",share:"~75 80 % der Weltproduktion",world:"weltweit nur ~7.000 t / Jahr",price:"ca. 30 60 € / 100 g (echte Schoten)"},
note:"Vanille ist nach Safran das teuerste Gewürz der Welt jede Blüte muss von Hand bestäubt werden.",
more:"Die Vanille-Orchidee blüht nur einen einzigen Tag im Jahr darum ist echte Vanille so selten."},
reis:{nm:"Reis",ic:"🍚",correct:["indien","thailand"],choices:["indien","thailand","island","norwegen"],
econ:{leader:"Indien",share:"weltgrößter Reis-Exporteur (~40 % Welthandel)",world:"~520 Mio t / Jahr",price:"ca. 0,150,30 € / 100 g"},
econ:{leader:"Indien",share:"weltgrößter Reis-Exporteur (~40 % Welthandel)",world:"~520 Mio t / Jahr",price:"ca. 0,15 0,30 € / 100 g"},
note:"Reis wächst auf warmen, überfluteten Feldern. Island und Norwegen sind dafür viel zu kalt.",
more:"Für mehr als die Hälfte der Menschheit ist Reis das wichtigste Grundnahrungsmittel."},
kurkuma:{nm:"Kurkuma",ic:"🟡",correct:["indien"],choices:["indien","schweden","kanada","russland"],
econ:{leader:"Indien",share:"~7580 % der Weltproduktion",world:"fast die ganze Welternte aus Südasien",price:"ca. 12 € / 100 g"},
econ:{leader:"Indien",share:"~75 80 % der Weltproduktion",world:"fast die ganze Welternte aus Südasien",price:"ca. 1 2 € / 100 g"},
note:"Kurkuma gibt dem Curry die gelbe Farbe und ist eine tropische Wurzel aus Südasien.",
more:"Kurkuma färbt so stark, dass es auch als natürlicher Lebensmittelfarbstoff (E100) verwendet wird."},
kokos:{nm:"Kokosmilch",ic:"🥥",correct:["indonesien","philippinen"],choices:["indonesien","philippinen","deutschland","russland"],
@@ -403,35 +403,35 @@ let ING = {
note:"Kokospalmen brauchen tropische Küsten: Sonne, Wärme und sandigen Boden.",
more:"Eine Kokospalme trägt bis zu 100 Nüsse pro Jahr über viele Jahrzehnte hinweg."},
ingwer:{nm:"Ingwer",ic:"🫚",correct:["indien","china"],choices:["indien","china","norwegen","island"],
econ:{leader:"Indien",share:"Indien & China sind die größten Produzenten",world:"~4 Mio t / Jahr",price:"ca. 0,601,00 € / 100 g"},
econ:{leader:"Indien",share:"Indien & China sind die größten Produzenten",world:"~4 Mio t / Jahr",price:"ca. 0,60 1,00 € / 100 g"},
note:"Ingwer ist eine tropische Wurzel und braucht Wärme und Feuchtigkeit zum Wachsen.",
more:"Ingwer wird seit über 3000 Jahren als Gewürz und Heilmittel verwendet."},
zimt:{nm:"Zimt",ic:"🪵",correct:["srilanka","indonesien"],choices:["srilanka","indonesien","schweden","deutschland"],
econ:{leader:"Sri Lanka",share:"Heimat des echten Ceylon-Zimts",world:"~250.000 t Zimt / Jahr",price:"ca. 24 € / 100 g"},
econ:{leader:"Sri Lanka",share:"Heimat des echten Ceylon-Zimts",world:"~250.000 t Zimt / Jahr",price:"ca. 2 4 € / 100 g"},
note:"Überraschung: Im schwedischen Klassiker steckt KEIN schwedischer Zimt er kommt aus Sri Lanka, vom anderen Ende der Welt!",
more:"Zimt ist die getrocknete, gerollte Rinde eines Baumes die typischen „Stangen“ sind eingerollte Rindenstücke."},
kardamom:{nm:"Kardamom",ic:"🫛",correct:["guatemala","indien"],choices:["guatemala","indien","norwegen","italien"],
econ:{leader:"Guatemala",share:"weltgrößter Kardamom-Exporteur",world:"~40.000 t / Jahr",price:"ca. 510 € / 100 g"},
econ:{leader:"Guatemala",share:"weltgrößter Kardamom-Exporteur",world:"~40.000 t / Jahr",price:"ca. 5 10 € / 100 g"},
note:"Kardamom ist eines der teuersten Gewürze der Welt (Platz 3 nach Safran und Vanille).",
more:"Kardamom kam erst um 1900 nach Guatemala heute exportiert das Land mehr davon als die Ursprungsregion Indien."},
banane:{nm:"Banane",ic:"🍌",correct:["ecuador","philippinen"],choices:["ecuador","philippinen","deutschland","kanada"],
econ:{leader:"Ecuador",share:"weltgrößter Bananen-Exporteur (~2530 %)",world:"~135 Mio t Bananen / Jahr",price:"ca. 0,150,25 € / 100 g"},
econ:{leader:"Ecuador",share:"weltgrößter Bananen-Exporteur (~25 30 %)",world:"~135 Mio t Bananen / Jahr",price:"ca. 0,15 0,25 € / 100 g"},
note:"Bananen brauchen ganzjährig tropische Wärme deshalb reisen sie tausende Kilometer zu uns.",
more:"Bananen werden grün geerntet und reifen auf dem langen Schiffsweg nach Europa nach."},
mandeln:{nm:"Mandeln",ic:"🌰",correct:["usa","spanien"],choices:["usa","spanien","norwegen","russland"],
econ:{leader:"USA",share:"Kalifornien: ~7580 % der Weltproduktion",world:"~1,4 Mio t Mandeln / Jahr",price:"ca. 1,502,50 € / 100 g"},
econ:{leader:"USA",share:"Kalifornien: ~75 80 % der Weltproduktion",world:"~1,4 Mio t Mandeln / Jahr",price:"ca. 1,50 2,50 € / 100 g"},
note:"Fast alle Mandeln wachsen im sonnigen Kalifornien und rund ums Mittelmeer.",
more:"Mandelbäume brauchen Bienen zur Bestäubung in Kalifornien werden dafür Milliarden Bienen herangekarrt."},
kaffee:{nm:"Kaffee",ic:"☕",correct:["brasilien","vietnam"],choices:["brasilien","vietnam","uk","schweden"],
econ:{leader:"Brasilien",share:"~35 % der Weltproduktion (Vietnam Nr. 2)",world:"~10 Mio t Rohkaffee / Jahr",price:"ca. 12 € / 100 g (Bohnen)"},
econ:{leader:"Brasilien",share:"~35 % der Weltproduktion (Vietnam Nr. 2)",world:"~10 Mio t Rohkaffee / Jahr",price:"ca. 1 2 € / 100 g (Bohnen)"},
note:"Lustig: Schweden trinkt am meisten Kaffee pro Kopf angebaut wird dort aber keine einzige Bohne.",
more:"Kaffee ist nach Erdöl eine der meistgehandelten Rohstoff-Waren der Welt."},
orange:{nm:"Orangensaft",ic:"🍊",correct:["brasilien","spanien"],choices:["brasilien","spanien","norwegen","island"],
econ:{leader:"Brasilien",share:"weltgrößter Orangen-Produzent; in Europa führt Spanien",world:"~75 Mio t Orangen / Jahr",price:"ca. 0,150,30 € / 100 ml (Saft)"},
econ:{leader:"Brasilien",share:"weltgrößter Orangen-Produzent; in Europa führt Spanien",world:"~75 Mio t Orangen / Jahr",price:"ca. 0,15 0,30 € / 100 ml (Saft)"},
note:"Orangen sind Zitrusfrüchte sie brauchen warmes, frostfreies Klima.",
more:"Fast die Hälfte aller Orangen wird zu Saft verarbeitet; Brasilien ist der größte Saft-Exporteur."},
sesam:{nm:"Sesam",ic:"⚪",correct:["indien","sudan"],choices:["indien","sudan","island","norwegen"],
econ:{leader:"Sudan / Indien",share:"gehören zu den größten Produzenten weltweit",world:"~6,5 Mio t Sesam / Jahr",price:"ca. 0,801,50 € / 100 g"},
econ:{leader:"Sudan / Indien",share:"gehören zu den größten Produzenten weltweit",world:"~6,5 Mio t Sesam / Jahr",price:"ca. 0,80 1,50 € / 100 g"},
note:"Sesam liebt Hitze und Trockenheit deshalb wächst er in Afrika und Asien, nicht im kalten Norden.",
more:"Aus Sesam wird die Paste Tahini gemacht Grundzutat von Hummus."},
soja:{nm:"Sojabohnen (Sojasauce)",ic:"🫘",correct:["usa","brasilien"],choices:["usa","brasilien","island","saudi"],
@@ -439,39 +439,39 @@ let ING = {
note:"Soja braucht viel Fläche und mildes bis warmes Klima Island ist zu kalt, Saudi-Arabien zu trocken.",
more:"Der größte Teil der Welt-Sojaernte wird gar nicht von Menschen gegessen, sondern als Tierfutter verwendet."},
nori:{nm:"Nori (Seetang)",ic:"🟢",correct:["japan","suedkorea"],choices:["japan","suedkorea","oesterreich","schweiz"],
econ:{leader:"Japan / Südkorea",share:"fast die gesamte Welt-Noriproduktion",world:"Millionen Tonnen Algen / Jahr",price:"ca. 510 € / 100 g (Noriblätter)"},
econ:{leader:"Japan / Südkorea",share:"fast die gesamte Welt-Noriproduktion",world:"Millionen Tonnen Algen / Jahr",price:"ca. 5 10 € / 100 g (Noriblätter)"},
note:"Nori ist eine Meeresalge. Österreich und die Schweiz sind Binnenländer ohne Meer dort kann gar kein Seetang wachsen!",
more:"Nori wird auf Netzen im flachen Küstenwasser „angebaut“ und wie Gemüse geerntet."},
avocado:{nm:"Avocado",ic:"🥑",correct:["mexiko"],choices:["mexiko","norwegen","island","polen"],
econ:{leader:"Mexiko",share:"~30 % der Weltproduktion, weltgrößter Exporteur",world:"~9 Mio t / Jahr",price:"ca. 0,801,20 € / 100 g"},
econ:{leader:"Mexiko",share:"~30 % der Weltproduktion, weltgrößter Exporteur",world:"~9 Mio t / Jahr",price:"ca. 0,80 1,20 € / 100 g"},
note:"Avocados wachsen in warmen, frostfreien Regionen Mexiko ist das Avocado-Land Nr. 1.",
more:"Avocadobäume brauchen sehr viel Wasser in trockenen Anbaugebieten ist das ein Umweltproblem."},
limette:{nm:"Limette",ic:"🟢",correct:["mexiko","indien"],choices:["mexiko","indien","norwegen","finnland"],
econ:{leader:"Mexiko / Indien",share:"größte Produzenten von Limetten & Zitronen",world:"~20 Mio t Limetten & Zitronen / Jahr",price:"ca. 0,300,50 € / 100 g"},
econ:{leader:"Mexiko / Indien",share:"größte Produzenten von Limetten & Zitronen",world:"~20 Mio t Limetten & Zitronen / Jahr",price:"ca. 0,30 0,50 € / 100 g"},
note:"Wie alle Zitrusfrüchte braucht die Limette Wärme und verträgt keinen Frost.",
more:"Limettensaft hält angeschnittene Avocado grün die Säure bremst das Braunwerden."},
mais:{nm:"Mais (Tortilla)",ic:"🌽",correct:["usa","brasilien"],choices:["usa","brasilien","island","saudi"],
econ:{leader:"USA",share:"USA & Brasilien sind große Mais-Exporteure",world:"~1,2 Mrd t Mais / Jahr",price:"ca. 0,100,20 € / 100 g (Mehl)"},
econ:{leader:"USA",share:"USA & Brasilien sind große Mais-Exporteure",world:"~1,2 Mrd t Mais / Jahr",price:"ca. 0,10 0,20 € / 100 g (Mehl)"},
note:"Mais stammt ursprünglich aus Mexiko, wächst heute aber weltweit nur nicht im ewigen Eis oder in der reinen Wüste.",
more:"Mais ist mengenmäßig das meistangebaute Getreide der Welt noch vor Weizen und Reis."},
erdnuss:{nm:"Erdnüsse",ic:"🥜",correct:["china","indien"],choices:["china","indien","norwegen","island"],
econ:{leader:"China",share:"China & Indien sind die größten Produzenten",world:"~50 Mio t / Jahr",price:"ca. 0,400,80 € / 100 g"},
econ:{leader:"China",share:"China & Indien sind die größten Produzenten",world:"~50 Mio t / Jahr",price:"ca. 0,40 0,80 € / 100 g"},
note:"Erdnüsse reifen UNTER der Erde und brauchen warmen, lockeren Boden.",
more:"Botanisch sind Erdnüsse keine Nüsse, sondern Hülsenfrüchte verwandt mit Erbsen und Bohnen."},
chili:{nm:"Chili",ic:"🌶️",correct:["indien","china"],choices:["indien","china","norwegen","finnland"],
econ:{leader:"Indien",share:"Indien ist weltgrößter Chili-Produzent und -Exporteur",world:"~40 Mio t Chilis & Paprika / Jahr",price:"ca. 13 € / 100 g (getrocknet)"},
econ:{leader:"Indien",share:"Indien ist weltgrößter Chili-Produzent und -Exporteur",world:"~40 Mio t Chilis & Paprika / Jahr",price:"ca. 1 3 € / 100 g (getrocknet)"},
note:"Chilis lieben Hitze im kühlen Norden reifen sie kaum aus.",
more:"Die Schärfe kommt vom Stoff Capsaicin; gemessen wird sie in Scoville-Einheiten."},
kichererbsen:{nm:"Kichererbsen",ic:"🟤",correct:["indien"],choices:["indien","norwegen","island","schweden"],
econ:{leader:"Indien",share:"~70 % der Weltproduktion",world:"~15 Mio t / Jahr",price:"ca. 0,200,40 € / 100 g"},
econ:{leader:"Indien",share:"~70 % der Weltproduktion",world:"~15 Mio t / Jahr",price:"ca. 0,20 0,40 € / 100 g"},
note:"Kichererbsen mögen Wärme und Trockenheit im nassen, kalten Norden gedeihen sie schlecht.",
more:"Aus Kichererbsen werden Hummus und Falafel gemacht Grundnahrung im Nahen Osten."},
kumin:{nm:"Kreuzkümmel",ic:"🌿",correct:["indien"],choices:["indien","norwegen","kanada","polen"],
econ:{leader:"Indien",share:"größter Produzent und Exporteur",world:"Hauptanbau in Indien & Vorderasien",price:"ca. 12 € / 100 g"},
econ:{leader:"Indien",share:"größter Produzent und Exporteur",world:"Hauptanbau in Indien & Vorderasien",price:"ca. 1 2 € / 100 g"},
note:"Kreuzkümmel braucht ein heißes, trockenes Klima zum Reifen.",
more:"Vorsicht: Kreuzkümmel wird oft mit Kümmel verwechselt schmeckt aber ganz anders."},
apfel:{nm:"Äpfel",ic:"🍎",correct:["oesterreich","polen"],choices:["oesterreich","polen","saudi","island"],
econ:{leader:"Polen (EU) / China (Welt)",share:"China ist weltweit Nr. 1, Polen größter EU-Produzent",world:"~95 Mio t Äpfel / Jahr",price:"ca. 0,150,30 € / 100 g"},
econ:{leader:"Polen (EU) / China (Welt)",share:"China ist weltweit Nr. 1, Polen größter EU-Produzent",world:"~95 Mio t Äpfel / Jahr",price:"ca. 0,15 0,30 € / 100 g"},
note:"Äpfel mögen es gemäßigt, mit kühlem Winter. In der Wüste oder Arktis wachsen sie nicht.",
more:"Ein heimischer Apfel reist oft nur wenige Kilometer ganz anders als Vanille oder Kakao vom anderen Ende der Welt."},
};
@@ -583,10 +583,10 @@ function climateImpactBlock(dish) {
if (!imp.details.length) return '';
const modeIcon = { schiff: '🚢', bahn: '🚂', lkw: '🚚', flugzeug: '✈️' };
let categoryRef = '';
if (dish.category === 'regional-at') categoryRef = '🏔 typischer AT-regionaler Wert: <b>3080 g</b>';
else if (dish.category === 'dach') categoryRef = '🏘 typischer DACH-Wert: <b>80200 g</b>';
else if (dish.category === 'europa') categoryRef = '🇪🇺 typischer Europa-Wert: <b>200500 g</b>';
else if (dish.category === 'exotisch') categoryRef = '🌍 typischer Exotik-Wert: <b>5001500 g</b>';
if (dish.category === 'regional-at') categoryRef = '🏔 typischer AT-regionaler Wert: <b>30 80 g</b>';
else if (dish.category === 'dach') categoryRef = '🏘 typischer DACH-Wert: <b>80 200 g</b>';
else if (dish.category === 'europa') categoryRef = '🇪🇺 typischer Europa-Wert: <b>200 500 g</b>';
else if (dish.category === 'exotisch') categoryRef = '🌍 typischer Exotik-Wert: <b>500 1500 g</b>';
// Bewertung
let badge = '🌱', verdict = 'sehr klimafreundlich';
if (imp.total >= 500) { badge = '🔥'; verdict = 'klimaintensiv — viel Welthandel'; }
@@ -612,7 +612,7 @@ function climateImpactBlock(dish) {
</div>
${dish.category === 'exotisch' || imp.total > 300 ? `<div style="margin-top:10px;background:#fff;border-radius:10px;padding:10px 12px;font-size:.84rem">
<b>💭 Was meinst du?</b> Lokale Küche hat winzigen CO₂-Fußabdruck, aber begrenzte Vielfalt.
Globale Küche bringt Vitamin-/Geschmacksvielfalt — kostet aber 1030× mehr Klima.
Globale Küche bringt Vitamin-/Geschmacksvielfalt — kostet aber 10 30× mehr Klima.
Wo ist deine Balance?
</div>` : ''}
</div>`;
@@ -1548,7 +1548,7 @@ function explainChoice(ingKey, key, isCorrect){
return {cls:'no', badge:'✗', text:`Klimatisch oder logistisch kein Lieferant für uns — wächst hier nicht im relevanten Umfang oder gelangt nicht in unsere Märkte.`};
}
/* Volltabelle: jede der 45 Karten-Optionen kriegt einen erklärenden Satz.
/* Volltabelle: jede der 4 5 Karten-Optionen kriegt einen erklärenden Satz.
* Schüler:innen sehen so auch, was sie NICHT angeklickt haben (Lerngewinn:
* was wäre theoretisch möglich gewesen, was wäre falsch gewesen). */
function allChoicesHTML(ingKey, task, attempted){