{
  "_comment": "MICHELPINI KONFIGURATION — alle Werte hier anpassbar. Nach Änderungen Datei speichern und Seite neu laden. PIN unten ändern!",

  "settings": {
    "adminPin": "4711",
    "startingCoins": 100,
    "groomName": "Michèl",
    "gameName": "Michèlpini"
  },

  "_chaptersInfo": "7 Kapitel. 'storyText' wird Michèl beim Freischalten gross angezeigt. 'unlocksItems' = IDs der Items die ab diesem Kapitel kaufbar werden. 'unlocksCodes' = Codes die ab diesem Kapitel funktionieren. Kapitel werden manuell von der Orga im Admin-Panel freigeschaltet.",

  "chapters": [
    {
      "id": "ch1",
      "number": 1,
      "title": "Aufbruch ins Ungewisse",
      "subtitle": "Sonntag Vormittag",
      "storyText": "Hör zu, du Bergmeister-Lehrling. Heute beginnt deine Pilgerfahrt nach Hergiswil — und nein, das ist kein Wellness-Wochenende. Du hast 100 Coins im Sack, eine Crew an Halunken im Schlepptau, und keinen Schimmer, was auf dich zukommt. Spar dir was für später auf, sonst trinkst du heute Abend Wasser aus dem Brunnen. Auf geht's, die Berge warten.",
      "unlocksItems": ["snack_basic", "wasser", "kaffee", "bier", "kaugummi", "sonnenbrille"],
      "unlocksCodes": ["ABFAHRT", "PUNKTLICH", "ERSTERWITZ"]
    },
    {
      "id": "ch2",
      "number": 2,
      "title": "Der Pfad zur Alpgschwänd",
      "subtitle": "Sonntag Nachmittag",
      "storyText": "Hergiswil liegt hinter dir, der Berg vor dir. Was dir niemand gesagt hat: Bevor du auf der Alp ein warmes Bett siehst, musst du da hochlaufen. Mit Rätseln. Im Freien. Klingt nach Spass? Ist es auch — wenn du klug spielst. Wer beim Escape Game versagt, zahlt drauf. Wer zuckt, wenn die Kuh muht, zahlt auch drauf. Tipp vom Wirt: Wein-Tasting ist später, jetzt ist Beine-Bewegen.",
      "unlocksItems": ["escape_game", "wandersnack", "energy_riegel", "kuhselfie_kit", "bergstock"],
      "unlocksCodes": ["ALPGEIST", "JODLER", "KUHSELFIE", "BERGMEISTER", "WANDERHELD"]
    },
    {
      "id": "ch3",
      "number": 3,
      "title": "Wirtshaus auf 1500 Metern",
      "subtitle": "Sonntag Abend",
      "storyText": "Geschafft. Du riechst nach Schweiss und Stolz, und vor dir steht die Alpgschwänd. Drinnen: Holzofen, Wein, Karten, eine Wirtin die alles gesehen hat, und ein Abendessen das du dir leisten musst. Heute Abend wird gegessen, getrunken, gelogen und verloren. Tipp: Das Premium-Menü ist es wert. Der Träsch danach ebenfalls. Aber alles auf einmal? Da reicht selbst dein Sack nicht.",
      "unlocksItems": ["abendessen_premium", "abendessen_basis", "wein_glas", "wein_flasche", "traesch", "kaeseplatte", "wein_tasting", "jass_pot", "trinkspruch_pass"],
      "unlocksCodes": ["WEINMEISTER", "TRESCH", "JASS", "TRINKSPRUCH", "SINGSANG", "WIRTSHAUSHELD"]
    },
    {
      "id": "ch4",
      "number": 4,
      "title": "Die Nacht der Schnarcher",
      "subtitle": "Sonntag Nacht",
      "storyText": "Die Sterne stehen, der Wein wirkt, und irgendwo da draussen muht eine Kuh. Du hast zwei Optionen: ein echtes Bett kaufen, oder im Heuhaufen mit den Kollegen aufwachen — die schnarchen wie ein Kettensägenballett. Manche sagen, ein Bergmeister erkennt man daran, was er sich nachts leistet. Andere sagen, er erkennt man daran, was er morgens überlebt. Such's dir aus.",
      "unlocksItems": ["uebernachtung_bett", "uebernachtung_lager", "wolldecke", "ohrstoepsel", "schlummertrunk", "fruehstart_pass"],
      "unlocksCodes": ["FRUEHAUF", "DURCHGEHALTEN", "STERNGUCKER"]
    },
    {
      "id": "ch5",
      "number": 5,
      "title": "Talwärts, dem Schicksal entgegen",
      "subtitle": "Montag Vormittag",
      "storyText": "Morgenstund hat Gold im Mund — bei dir eher Tabak und Reue. Macht nichts. Heute geht's ins Tal, von der Alp runter Richtung Dietwil. Aber bevor du dort die Schlacht aufnimmst, brauchst du Kaffee, Frühstück und eventuell eine sehr lange Dusche. Spar nicht am Frühstück. Wer hungrig in den Paintball-Krieg zieht, kommt als Verlierer heim.",
      "unlocksItems": ["fruehstueck_voll", "fruehstueck_mini", "heisse_dusche", "katerheilung", "reisesnack"],
      "unlocksCodes": ["FRUEHSTUECK", "ABMARSCH", "MORGENHELD"]
    },
    {
      "id": "ch6",
      "number": 6,
      "title": "Schlachtfeld Dietwil",
      "subtitle": "Montag Mittag",
      "storyText": "Vergiss alles, was du je über Frieden gelernt hast. Hier in Dietwil zählen nur drei Dinge: Treffer landen, nicht getroffen werden, und am Ende Bratwurst essen. Eine Runde kostet — eine zweite kostet mehr. Aber wer als MVP vom Feld geht, holt sich Coins UND Ehre zurück. Tipp vom Wirt: Erste-Wahl-Pass spart Nerven beim Team-Bilden.",
      "unlocksItems": ["paintball_runde", "paintball_runde_extra", "erste_wahl_pass", "munition_extra", "bratwurst", "siegesbier"],
      "unlocksCodes": ["TREFFER", "PAINTKING", "TEAMSIEG", "TARNFUCHS"]
    },
    {
      "id": "ch7",
      "number": 7,
      "title": "Heimkehr eines Helden",
      "subtitle": "Montag Abend",
      "storyText": "Du hast überlebt. Mehr noch — du hast gelebt. Zwei Tage Berg, Wein, Pulver und Kameraden. Zeit für die Heimreise, eine letzte Runde mit der Crew, und vielleicht noch ein Souvenir, an das du dich morgen erinnern willst. Wer am Ende noch Coins übrig hat, gibt eine Runde aus. Wer alles ausgegeben hat — hat richtig gespielt.",
      "unlocksItems": ["abschiedsrunde", "souvenir_krone", "letzteres_bier", "heimfahrt_snack", "trinkgeld_orga"],
      "unlocksCodes": ["HEIMKEHR", "LEGENDE", "LETZTEEHRE"]
    }
  ],

  "_itemsInfo": "Items werden im Shop angezeigt sobald ihr Kapitel freigeschaltet ist. 'always: true' = von Anfang an verfügbar (Basis-Items). 'cat' = Kategorie-Filter. 'stock' = wie oft kaufbar. 'cost' bewusst hoch angesetzt für knausrige Ökonomie.",

  "items": [
    { "id": "snack_basic", "always": true, "cat": "food", "name": "Snack-Tüte", "desc": "Nüsse, Studentenfutter, gegen den kleinen Hunger.", "icon": "🥜", "cost": 6, "stock": 5 },
    { "id": "wasser", "always": true, "cat": "drink", "name": "Wasser", "desc": "Lebensretter. Besonders nach Träsch.", "icon": "💧", "cost": 3, "stock": 99 },
    { "id": "kaffee", "always": true, "cat": "drink", "name": "Kaffee", "desc": "Wach. Bleib wach.", "icon": "☕", "cost": 5, "stock": 10 },
    { "id": "bier", "always": true, "cat": "drink", "name": "Bier", "desc": "Schweizer Standard. Goldene Pflicht.", "icon": "🍺", "cost": 8, "stock": 12 },
    { "id": "kaugummi", "always": true, "cat": "fun", "name": "Kaugummi", "desc": "Frischer Atem für Notfälle.", "icon": "🍬", "cost": 2, "stock": 5 },
    { "id": "sonnenbrille", "cat": "fun", "name": "Bergmeister-Brille", "desc": "Für Charisma und gegen Sonne. Beides nötig.", "icon": "🕶️", "cost": 12, "stock": 1 },

    { "id": "escape_game", "cat": "activity", "name": "Outdoor Escape Game", "desc": "Teilnahme am Rätsel-Marathon beim Aufstieg. Nicht mitmachen kostet Ehre — und vielleicht Coins.", "icon": "🔓", "cost": 25, "stock": 1 },
    { "id": "wandersnack", "cat": "food", "name": "Wandersnack", "desc": "Bündnerfleisch, Käse, Brot. Für den langen Pfad.", "icon": "🥩", "cost": 12, "stock": 3 },
    { "id": "energy_riegel", "cat": "food", "name": "Schoggi-Riegel", "desc": "Schnelle Energie für faule Beine.", "icon": "🍫", "cost": 5, "stock": 5 },
    { "id": "kuhselfie_kit", "cat": "fun", "name": "Kuh-Selfie-Kit", "desc": "Inklusive Kuhglocke und Heu-Hut für das perfekte Foto.", "icon": "🐄", "cost": 10, "stock": 1 },
    { "id": "bergstock", "cat": "fun", "name": "Bergstock", "desc": "Macht aus dir einen echten Älpler. Optisch.", "icon": "🥾", "cost": 8, "stock": 1 },

    { "id": "abendessen_premium", "cat": "food", "name": "Premium-Abendessen", "desc": "Älplermagronen, Salat, Dessert. Volles Programm. Pflicht für Bergmeister.", "icon": "🍲", "cost": 40, "stock": 1 },
    { "id": "abendessen_basis", "cat": "food", "name": "Basis-Abendessen", "desc": "Suppe und Brot. Wer nicht zahlt, lebt billig.", "icon": "🥣", "cost": 15, "stock": 1 },
    { "id": "wein_glas", "cat": "drink", "name": "Glas Wein", "desc": "Schweizer Tropfen, ein Glas pro Bestellung.", "icon": "🍷", "cost": 10, "stock": 6 },
    { "id": "wein_flasche", "cat": "drink", "name": "Flasche Wein (Premium)", "desc": "Eine ganze Flasche guten Stoff. Teilen oder geniessen.", "icon": "🍾", "cost": 45, "stock": 1 },
    { "id": "traesch", "cat": "drink", "name": "Träsch", "desc": "Bündner Brennstoff. Brennt von innen.", "icon": "🥃", "cost": 7, "stock": 6 },
    { "id": "kaeseplatte", "cat": "food", "name": "Käseplatte", "desc": "Älpler-Käse, gereift wie ein guter Witz.", "icon": "🧀", "cost": 16, "stock": 2 },
    { "id": "wein_tasting", "cat": "activity", "name": "Wein-Tasting Teilnahme", "desc": "Beim Fake-Tasting mitraten. Wer alles errät, kassiert.", "icon": "🍇", "cost": 15, "stock": 1 },
    { "id": "jass_pot", "cat": "activity", "name": "Jass-Pot Einkauf", "desc": "Setze Coins in den Jass-Pot. Gewinner kassiert die Runde.", "icon": "🃏", "cost": 10, "stock": 3 },
    { "id": "trinkspruch_pass", "cat": "joker", "name": "Trinkspruch-Pass", "desc": "Du musst keinen Trinkspruch halten — diesmal.", "icon": "🛡️", "cost": 18, "stock": 1 },

    { "id": "uebernachtung_bett", "cat": "comfort", "name": "Bett auf der Alp", "desc": "Echtes Bett, echte Decke. Träume garantiert.", "icon": "🛏️", "cost": 35, "stock": 1 },
    { "id": "uebernachtung_lager", "cat": "comfort", "name": "Lager im Heuhaufen", "desc": "Spart Coins. Kostet Schlaf. Riecht nach Kuh.", "icon": "🌾", "cost": 12, "stock": 1 },
    { "id": "wolldecke", "cat": "comfort", "name": "Wolldecke", "desc": "Falls die Nacht ungemütlich wird.", "icon": "🧣", "cost": 8, "stock": 1 },
    { "id": "ohrstoepsel", "cat": "comfort", "name": "Ohrstöpsel", "desc": "Gegen schnarchende Kollegen. Lebensrettend.", "icon": "🔇", "cost": 7, "stock": 1 },
    { "id": "schlummertrunk", "cat": "drink", "name": "Schlummertrunk", "desc": "Letzter Schluck vor dem Schlaf. Beruhigt.", "icon": "🌙", "cost": 6, "stock": 1 },
    { "id": "fruehstart_pass", "cat": "joker", "name": "Spät-Aufsteh-Pass", "desc": "Du darfst 30 Minuten länger schlafen, ohne dass dich jemand weckt.", "icon": "💤", "cost": 15, "stock": 1 },

    { "id": "fruehstueck_voll", "cat": "food", "name": "Volles Frühstück", "desc": "Birchermüesli, Gipfeli, Speck, Kaffee. Bergmeister-Niveau.", "icon": "🥐", "cost": 22, "stock": 1 },
    { "id": "fruehstueck_mini", "cat": "food", "name": "Mini-Frühstück", "desc": "Kaffee und Brötchen. Spart Coins, kostet Energie.", "icon": "🥖", "cost": 10, "stock": 1 },
    { "id": "heisse_dusche", "cat": "comfort", "name": "Heisse Dusche", "desc": "Nach der Alp absolut nötig. Lebensretter.", "icon": "🚿", "cost": 12, "stock": 1 },
    { "id": "katerheilung", "cat": "drink", "name": "Kater-Heilung", "desc": "Geheime Mischung der Wirtin. Stinkt, hilft.", "icon": "🧪", "cost": 14, "stock": 2 },
    { "id": "reisesnack", "cat": "food", "name": "Reise-Snack", "desc": "Für unterwegs nach Dietwil. Magen-Versicherung.", "icon": "🥨", "cost": 8, "stock": 2 },

    { "id": "paintball_runde", "cat": "activity", "name": "Paintball-Runde (Pflicht)", "desc": "Eine volle Runde auf dem Schlachtfeld. Wer nicht zahlt, schaut zu.", "icon": "🔫", "cost": 45, "stock": 1 },
    { "id": "paintball_runde_extra", "cat": "activity", "name": "Extra-Runde Paintball", "desc": "Noch eine Runde, weil die erste zu schnell vorbei war.", "icon": "🎯", "cost": 30, "stock": 2 },
    { "id": "erste_wahl_pass", "cat": "joker", "name": "Erste-Wahl-Pass", "desc": "Bei Team-Bildung wählst du zuerst. Strategie.", "icon": "👑", "cost": 18, "stock": 1 },
    { "id": "munition_extra", "cat": "fun", "name": "Extra-Munition", "desc": "Zusätzliche Paintballs. Verschiess sie weise.", "icon": "💥", "cost": 12, "stock": 2 },
    { "id": "bratwurst", "cat": "food", "name": "Bratwurst Paintball", "desc": "Verdient nach dem Schlachtfeld. Mit oder ohne Senf.", "icon": "🌭", "cost": 12, "stock": 1 },
    { "id": "siegesbier", "cat": "drink", "name": "Sieges-Bier", "desc": "Eines der süssesten Biere deines Lebens. Falls du gewinnst.", "icon": "🏆", "cost": 10, "stock": 1 },

    { "id": "abschiedsrunde", "cat": "fun", "name": "Abschiedsrunde für die Crew", "desc": "Du gibst eine Runde aus. Legenden-Status garantiert.", "icon": "🥂", "cost": 50, "stock": 1 },
    { "id": "souvenir_krone", "cat": "fun", "name": "Bräutigam-Krone", "desc": "Goldene Krone. Solange du sie trägst, nennen dich alle 'Eure Hoheit'.", "icon": "👑", "cost": 35, "stock": 1 },
    { "id": "letzteres_bier", "cat": "drink", "name": "Letztes Bier", "desc": "Das allerletzte. Dann ist Schluss. Versprochen.", "icon": "🍻", "cost": 8, "stock": 1 },
    { "id": "heimfahrt_snack", "cat": "food", "name": "Heimfahrt-Snack", "desc": "Für den Weg nach Hause. Verhindert Aussteigen am Falschen Bahnhof.", "icon": "🥪", "cost": 7, "stock": 1 },
    { "id": "trinkgeld_orga", "cat": "fun", "name": "Trinkgeld für die Orga", "desc": "Bedank dich bei der Crew. Sie haben es verdient.", "icon": "💝", "cost": 25, "stock": 1 }
  ],

  "_codesInfo": "Challenge-Codes. Michèl gibt sie ein, wenn er eine Aufgabe meistert. Codes sind kapitel-gebunden (siehe chapters.unlocksCodes). 'reward' = Coins, 'name' wird im Verlauf angezeigt.",

  "codes": {
    "ABFAHRT":       { "reward": 5,  "name": "Pünktlich abgefahren" },
    "PUNKTLICH":     { "reward": 8,  "name": "Niemand musste warten" },
    "ERSTERWITZ":    { "reward": 10, "name": "Erster Witz im Auto" },

    "ALPGEIST":      { "reward": 25, "name": "Outdoor Escape Game gelöst" },
    "JODLER":        { "reward": 12, "name": "Jodler-Versuch auf dem Gipfel" },
    "KUHSELFIE":     { "reward": 10, "name": "Selfie mit echter Kuh" },
    "BERGMEISTER":   { "reward": 30, "name": "Gipfel mit Stil erreicht" },
    "WANDERHELD":    { "reward": 15, "name": "Niemandem geklagt beim Aufstieg" },

    "WEINMEISTER":   { "reward": 22, "name": "Wein-Tasting Sieger" },
    "TRESCH":        { "reward": 12, "name": "Träsch ex getrunken" },
    "JASS":          { "reward": 18, "name": "Jass-Runde gewonnen" },
    "TRINKSPRUCH":   { "reward": 15, "name": "Trinkspruch frei improvisiert" },
    "SINGSANG":      { "reward": 18, "name": "Lied vorgesungen" },
    "WIRTSHAUSHELD": { "reward": 25, "name": "Wirtin zum Lachen gebracht" },

    "FRUEHAUF":      { "reward": 12, "name": "Erster aus dem Bett" },
    "DURCHGEHALTEN": { "reward": 15, "name": "Niemand musste dich tragen" },
    "STERNGUCKER":   { "reward": 10, "name": "Sterne richtig benannt" },

    "FRUEHSTUECK":   { "reward": 8,  "name": "Frühstück komplett gegessen" },
    "ABMARSCH":      { "reward": 10, "name": "Pünktlicher Aufbruch" },
    "MORGENHELD":    { "reward": 12, "name": "Niemandem geklagt am Morgen" },

    "TREFFER":       { "reward": 6,  "name": "Paintball-Treffer gelandet" },
    "PAINTKING":     { "reward": 30, "name": "Paintball MVP der Runde" },
    "TEAMSIEG":      { "reward": 20, "name": "Team-Sieg im Paintball" },
    "TARNFUCHS":     { "reward": 12, "name": "Eine ganze Runde nicht getroffen" },

    "HEIMKEHR":      { "reward": 15, "name": "Heimreise angetreten" },
    "LEGENDE":       { "reward": 50, "name": "BONUS: Legende von Hergiswil" },
    "LETZTEEHRE":    { "reward": 20, "name": "Letztes Wort des Wochenendes" }
  },

  "_achievementsInfo": "Achievements werden automatisch geprüft, wenn er Items kauft / Codes einlöst. Triggertyp: 'item_categories' (X verschiedene Items aus Kategorie kaufen), 'item_count' (Gesamtanzahl gekaufter Items in Kategorie), 'codes_count' (Anzahl eingelöste Codes), 'all_jokers' (alle Joker besessen), 'spend_total' (Gesamtausgaben erreicht).",

  "achievements": [
    { "id": "ach_drinks5", "name": "Sumpf-Stern", "desc": "5 verschiedene Getränke probiert", "icon": "🌟", "reward": 20, "trigger": "item_categories", "category": "drink", "threshold": 5 },
    { "id": "ach_food5", "name": "Vielfrass", "desc": "5 verschiedene Speisen gekauft", "icon": "🍽️", "reward": 18, "trigger": "item_categories", "category": "food", "threshold": 5 },
    { "id": "ach_alljokers", "name": "Joker-Sammler", "desc": "Alle Joker des Wochenendes besessen", "icon": "🎴", "reward": 30, "trigger": "all_jokers" },
    { "id": "ach_codes10", "name": "Held der Aufgaben", "desc": "10 Challenge-Codes eingelöst", "icon": "🏅", "reward": 25, "trigger": "codes_count", "threshold": 10 },
    { "id": "ach_codes20", "name": "Lebende Legende", "desc": "20 Challenge-Codes eingelöst", "icon": "🏆", "reward": 50, "trigger": "codes_count", "threshold": 20 },
    { "id": "ach_spend100", "name": "Big Spender", "desc": "100 Coins ausgegeben", "icon": "💸", "reward": 15, "trigger": "spend_total", "threshold": 100 },
    { "id": "ach_spend200", "name": "Bergkönig der Verschwender", "desc": "200 Coins ausgegeben", "icon": "👑", "reward": 30, "trigger": "spend_total", "threshold": 200 },
    { "id": "ach_comfort3", "name": "Weichei", "desc": "3 verschiedene Komfort-Items gekauft", "icon": "🛌", "reward": 12, "trigger": "item_categories", "category": "comfort", "threshold": 3 },
    { "id": "ach_activity4", "name": "Action-Held", "desc": "An 4 verschiedenen Aktivitäten teilgenommen", "icon": "⚡", "reward": 20, "trigger": "item_categories", "category": "activity", "threshold": 4 }
  ],

  "_questsInfo": "Mini-Quests pro Tag. Werden Michèl angezeigt sobald das passende Kapitel offen ist. 'day' = sonntag oder montag. Quests werden manuell von der Orga im Admin-Panel als erledigt markiert (oder per Code).",

  "quests": [
    { "id": "q_so_1", "day": "sonntag", "icon": "🤝", "name": "Den Wirt beleidigen", "desc": "Beleidige die Wirtin auf der Alp charmant — sie muss lachen.", "reward": 15 },
    { "id": "q_so_2", "day": "sonntag", "icon": "🎤", "name": "Karaoke-Moment", "desc": "Sing ein Lied, ohne dass jemand dich darum bitten muss.", "reward": 12 },
    { "id": "q_so_3", "day": "sonntag", "icon": "📸", "name": "Gruppen-Foto Initiative", "desc": "Organisiere selbst ein Gruppenfoto mit der Crew.", "reward": 10 },
    { "id": "q_mo_1", "day": "montag", "icon": "💪", "name": "Erster auf dem Feld", "desc": "Sei der erste deines Teams beim Paintball-Start.", "reward": 12 },
    { "id": "q_mo_2", "day": "montag", "icon": "🎁", "name": "Bratwurst spenden", "desc": "Spendiere einem Kollegen eine Bratwurst.", "reward": 15 },
    { "id": "q_mo_3", "day": "montag", "icon": "📞", "name": "Anruf bei der Liebsten", "desc": "Ruf deine Verlobte an und sag ihr, wie sehr du sie vermisst.", "reward": 20 }
  ],

  "_penaltiesInfo": "Strafen sind PHYSISCH/SOZIAL — Michèl wählt: Strafe annehmen (gratis, kein Coin-Verlust) ODER Joker zum Vermeiden kaufen (kostet Coins). Im Admin-Panel kann die Orga eine Strafe 'verhängen' — Michèl bekommt dann eine Push-Mitteilung mit Wahl 'Annehmen' oder 'Joker einsetzen'.",

  "penalties": [
    { "id": "pen_schluck",     "name": "Schluck ex",                  "desc": "Du musst einen Schluck Träsch ex trinken.",                              "icon": "🥃", "jokerCost": 10 },
    { "id": "pen_lied",        "name": "Lied vorsingen",              "desc": "Sing ein peinliches Lied vor der Gruppe.",                                "icon": "🎵", "jokerCost": 14 },
    { "id": "pen_verkleidung", "name": "Verkleidung tragen",          "desc": "Trage 30 Minuten lang eine Verkleidung deiner Wahl (Orga wählt).",        "icon": "👗", "jokerCost": 18 },
    { "id": "pen_anruf",       "name": "Schwiegermutter anrufen",     "desc": "Ruf deine zukünftige Schwiegermutter an und sag ihr was Nettes.",          "icon": "📞", "jokerCost": 25 },
    { "id": "pen_stille",      "name": "5 Minuten Stille",            "desc": "Du darfst 5 Minuten lang nichts sagen.",                                  "icon": "🤐", "jokerCost": 12 },
    { "id": "pen_liegestuetze","name": "10 Liegestütze",              "desc": "Mach 10 Liegestütze, hier und jetzt.",                                    "icon": "💪", "jokerCost": 10 },
    { "id": "pen_essensgeber", "name": "Essen anderer probieren",     "desc": "Probiere eine Gabel von jedem Teller deiner Crew.",                        "icon": "🍴", "jokerCost": 8 },
    { "id": "pen_kompliment",  "name": "Kompliment-Runde",            "desc": "Sag jedem deiner Kollegen ein ehrliches, peinliches Kompliment.",         "icon": "💌", "jokerCost": 12 },
    { "id": "pen_jodler",      "name": "Jodler-Performance",          "desc": "Jodle 30 Sekunden lang. Egal wie schlecht.",                              "icon": "🎶", "jokerCost": 14 },
    { "id": "pen_tanz",        "name": "Solo-Tanz",                   "desc": "Tanze 60 Sekunden lang allein, alle schauen zu.",                          "icon": "💃", "jokerCost": 16 }
  ],

  "categories": [
    { "id": "all", "name": "Alle" },
    { "id": "food", "name": "Essen" },
    { "id": "drink", "name": "Trinken" },
    { "id": "comfort", "name": "Komfort" },
    { "id": "activity", "name": "Aktivität" },
    { "id": "joker", "name": "Joker" },
    { "id": "fun", "name": "Fun" }
  ]
}
