<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>problemlöser &#8211; TheBaristaGame</title>
	<atom:link href="https://thebaristagame.de/tag/problemloeser/feed/" rel="self" type="application/rss+xml" />
	<link>https://thebaristagame.de</link>
	<description>Barista Siebträger Tipps</description>
	<lastBuildDate>Tue, 17 Mar 2026 15:54:49 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://thebaristagame.de/wp-content/uploads/2024/05/cropped-TheBaristaGameNeuesSignatur-1-32x32.png</url>
	<title>problemlöser &#8211; TheBaristaGame</title>
	<link>https://thebaristagame.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guide zum perfekten Espresso</title>
		<link>https://thebaristagame.de/guide/guide-zum-perfekten-espresso/</link>
					<comments>https://thebaristagame.de/guide/guide-zum-perfekten-espresso/#respond</comments>
		
		<dc:creator><![CDATA[TheBaristaGame]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 15:22:21 +0000</pubDate>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[perfekter espresso]]></category>
		<category><![CDATA[problemlöser]]></category>
		<guid isPermaLink="false">https://thebaristagame.de/?p=302</guid>

					<description><![CDATA[Espresso Problemlöser – TheBaristaGame TheBaristaGame Espresso verstehen &#38; perfektionieren ← Zurück ↺ Neu starten]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-group alignwide"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Espresso Problemlöser – TheBaristaGame</title>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&#038;family=Source+Sans+3:wght@300;400;600;700&#038;display=swap" rel="stylesheet">
<style>
:root {
  --bg: #F5EDE0;
  --surface: #FFF7EB;
  --surface-h: #FFF2DF;
  --surface-2: #F5E3CF;
  --gold: #C9A96E;
  --gold-l: #E8C98A;
  --cream: #F5EDE0;
  --muted: #A08870;
  --border: rgba(160,136,112,0.25);
  --border-h: rgba(160,136,112,0.45);
  --green: #5DB85D;
  --green-bg: #F0F7F0;
  --green-border: rgba(93,184,93,0.35);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Source Sans 3',sans-serif;background:var(--bg);color:#3D2B1A;min-height:100vh;}


/* GESCHMACK INFO */
.geschmack-info{margin-bottom:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.5rem;}
.gi-title{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--gold);margin-bottom:.3rem;}
.gi-sub{font-size:.8rem;color:var(--muted);font-weight:300;margin-bottom:1rem;line-height:1.5;}
.gi-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.gi-box{border-radius:12px;padding:1rem;border:1px solid;}
.gi-bitter{background:#FFF0E0;border-color:rgba(201,169,110,.45);}
.gi-sauer{background:#EAF4F7;border-color:rgba(100,170,190,.45);}
.gi-icon{font-size:1.4rem;margin-bottom:.4rem;}
.gi-name{font-weight:700;font-size:.9rem;color:#3D2B1A;margin-bottom:.15rem;}
.gi-where{font-size:.72rem;color:#9B6D30;font-weight:600;margin-bottom:.5rem;font-style:italic;}
.gi-desc{font-size:.77rem;color:var(--muted);font-weight:300;line-height:1.55;}
@media(max-width:500px){.gi-grid{grid-template-columns:1fr;}}

/* AFFILIATE BANNER */
.affiliate-banner{margin-top:1rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1rem 1.3rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:var(--muted);font-weight:300;}
.aff-banner-btn{background:var(--gold);color:#0D0B09;text-decoration:none;border-radius:8px;padding:.45rem 1rem;font-size:.8rem;font-weight:700;white-space:nowrap;transition:background .2s;flex-shrink:0;}
.aff-banner-btn:hover{background:var(--gold-l);}

/* YOUTUBE */
.yt-wrap{margin-top:1rem;}
.yt-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem;}
.yt-frame{position:relative;padding-bottom:56.25%;height:0;border-radius:14px;overflow:hidden;border:1px solid var(--border);}
.yt-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;}

/* HEADER */
.header{background:var(--surface);border-bottom:1px solid var(--border);padding:.9rem 2rem;display:flex;align-items:center;gap:1rem;}
.logo-img{width:52px;height:52px;border-radius:50%;border:2px solid var(--gold);object-fit:cover;flex-shrink:0;}
.brand-title{font-family:'Playfair Display',serif;font-size:1.15rem;color:var(--gold);font-weight:700;line-height:1.2;}
.brand-sub{font-size:.72rem;color:var(--muted);font-weight:300;letter-spacing:.03em;}



/* TAB CONTENT */
.tab-content{display:none;}
.tab-content.active{display:block;}
.content{max-width:720px;margin:0 auto;padding:2rem 1.5rem;}

/* SCREEN */
.screen{animation:fadeUp .35s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

/* PROGRESS */
.prog-wrap{height:3px;background:rgba(201,169,110,.1);border-radius:2px;margin-bottom:1.5rem;overflow:hidden;}
.prog-fill{height:100%;background:var(--gold);border-radius:2px;transition:width .4s ease;}

/* BREADCRUMB */
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;margin-bottom:1.25rem;min-height:1.2rem;}
.crumb{font-size:.68rem;color:var(--muted);font-weight:300;}
.crumb-sep{font-size:.6rem;color:rgba(160,136,112,0.4);}
.crumb-cur{font-size:.68rem;color:var(--gold);font-weight:600;}

/* INTRO CARD */
.intro{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:3rem 2rem;text-align:center;}
.intro-logo{width:84px;height:84px;border-radius:50%;border:3px solid var(--gold);object-fit:cover;display:block;margin:0 auto 1.5rem;}
.intro h2{font-family:'Playfair Display',serif;font-size:2rem;color:var(--gold);margin-bottom:.6rem;}
.intro p{font-size:.95rem;color:var(--muted);font-weight:300;line-height:1.65;margin-bottom:2rem;max-width:480px;margin-left:auto;margin-right:auto;}
.intro-features{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem;flex-wrap:wrap;}
.feat{text-align:center;}
.feat-icon{font-size:1.4rem;display:block;margin-bottom:.3rem;}
.feat-label{font-size:.72rem;color:var(--muted);font-weight:300;}

/* QUESTION CARD */
.q-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;}
.step-label{font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:.65rem;}
.q-card h2{font-family:'Playfair Display',serif;font-size:1.45rem;color:#3D2B1A;margin-bottom:.4rem;line-height:1.3;}
.hint{font-size:.82rem;color:var(--muted);font-weight:300;margin-bottom:.65rem;line-height:1.5;}
.ctx-box{background:rgba(201,169,110,.12);border:1px solid rgba(201,169,110,.30);border-radius:8px;padding:.6rem 1rem;font-size:.8rem;color:#7A4E1A;margin-bottom:1.25rem;line-height:1.4;}
.options{display:flex;flex-direction:column;gap:.7rem;margin-top:1.25rem;}
.opt-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:.9rem 1.1rem;cursor:pointer;transition:all .2s;text-align:left;color:#3D2B1A;display:flex;align-items:center;gap:.9rem;}
.opt-btn:hover{background:var(--surface-h);border-color:var(--border-h);transform:translateX(4px);}
.opt-emoji{font-size:1.3rem;min-width:2rem;text-align:center;}
.opt-txt{flex:1;}
.opt-label{font-size:.9rem;font-weight:600;margin-bottom:.1rem;}
.opt-desc{font-size:.75rem;color:var(--muted);font-weight:300;}
.opt-arrow{color:var(--gold);opacity:0;transition:opacity .2s;font-size:1rem;}
.opt-btn:hover .opt-arrow{opacity:1;}

/* SOLUTION CARD */
.sol-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;}
.sol-head{background:linear-gradient(135deg,#E8F5E8,#D4EDDA);border-bottom:1px solid var(--green-border);padding:1.5rem 2rem;}
.sol-cat{font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:.4rem;}
.sol-head h2{font-family:'Playfair Display',serif;font-size:1.45rem;color:#1E5C1E;line-height:1.3;}
.sol-body{padding:1.5rem 2rem;}
.prob-text{font-size:.87rem;color:var(--muted);margin-bottom:1.25rem;font-weight:300;line-height:1.65;border-left:2px solid rgba(201,169,110,.25);padding-left:.9rem;}
.tips-label{font-size:.63rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem;}
.tip{padding:.6rem .9rem;border-radius:8px;font-size:.85rem;line-height:1.5;margin-bottom:.4rem;background:var(--surface-2);border:1px solid var(--border);}
.info-box{margin-top:1rem;background:rgba(201,169,110,.1);border:1px solid rgba(201,169,110,.25);border-radius:8px;padding:.9rem 1rem;font-size:.8rem;color:var(--muted);font-style:italic;line-height:1.6;}
.equip-hint{margin-top:1rem;background:rgba(201,169,110,.08);border:1px solid rgba(201,169,110,.22);border-radius:9px;padding:.9rem 1rem;display:flex;align-items:center;gap:.75rem;}
.equip-hint-txt{flex:1;font-size:.8rem;color:var(--muted);}
.equip-hint-btn{background:var(--gold);color:#0D0B09;border:none;border-radius:7px;padding:.45rem .95rem;font-size:.78rem;font-weight:700;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:background .2s;white-space:nowrap;}
.equip-hint-btn:hover{background:var(--gold-l);}

/* BUTTONS */
.start-btn{background:var(--gold);color:#0D0B09;border:none;border-radius:10px;padding:.85rem 2.2rem;font-size:.9rem;font-weight:700;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .2s;letter-spacing:.02em;}
.start-btn:hover{background:var(--gold-l);transform:translateY(-2px);}
.nav-bar{display:flex;gap:.65rem;margin-top:1.4rem;flex-wrap:wrap;}
.back-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:.55rem 1.1rem;font-size:.82rem;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .2s;}
.back-btn:hover{border-color:var(--border-h);color:#3D2B1A;}
.restart-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:.55rem 1.1rem;font-size:.82rem;cursor:pointer;font-family:'Source Sans 3',sans-serif;transition:all .2s;}
.restart-btn:hover{border-color:var(--border-h);color:#3D2B1A;}



@media(max-width:600px){
  .content{padding:1.2rem 1rem;}
  .q-card,.sol-body{padding:1.2rem;}
  .intro{padding:2rem 1.2rem;}
  .sol-head{padding:1.2rem;}
  .tabs{padding:0 1rem;}
  .header{padding:.75rem 1rem;}
  .intro h2{font-size:1.5rem;}
}
</style>
</head>
<body>

<div class="header">
  <img decoding="async" class="logo-img" src="data:image/jpeg;base64,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" alt="Jan – TheBaristaGame">
  <div>
    <div class="brand-title">TheBaristaGame</div>
    <div class="brand-sub">Espresso verstehen &amp; perfektionieren</div>
  </div>
</div>



<div id="tab-solver">
  <div class="content">
    <div class="crumbs" id="crumbs"></div>
    <div class="prog-wrap" id="progWrap" style="display:none"><div class="prog-fill" id="progFill" style="width:0%"></div></div>
    <div id="screen"></div>
    <div class="nav-bar" id="navBar" style="display:none">
      <button class="back-btn" onclick="goBack()">← Zurück</button>
      <button class="restart-btn" onclick="restart()">↺ Neu starten</button>
    </div>
  </div>
</div>



<script>
const LOGO = "data:image/jpeg;base64,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";

const TREE = {
  start: {
    type:'intro',
    next:'main'
  },
  main: {
    type:'choice',
    step:'Schritt 1 von 3',
    title:'Was beschreibt dein Problem am besten?',
    hint:'Wähle das Symptom, das am deutlichsten zutrifft.',
    crumb:'Problem wählen',
    options:[
      {e:'&#x1f62c;', l:'Zu bitter', d:'Scharf, brennend, unangenehm', n:'bitter_timing'},
      {e:'&#x1f34b;', l:'Zu sauer', d:'Fruchtig-scharf, beißend, spitz', n:'sauer_timing'},
      {e:'&#x1f4a7;', l:'Zu wässrig / flach', d:'Kein Körper, dünn, leer', n:'watery_dose'},
      {e:'&#x1f914;', l:'Schwer zu beschreiben', d:'Irgendwie nicht stimmig', n:'general_timing'}
    ]
  },

  // BITTER PATH
  bitter_timing: {
    type:'choice',
    step:'Schritt 2 von 3',
    title:'Wie lange läuft dein Espresso durch?',
    hint:'Miss die Zeit vom Start des Pumpens bis zum Ende des Bezugs.',
    ctx:'&#x1f3af; Ziel: 25–35 Sekunden (klassischer Doppelter, 1:2 Ratio)',
    crumb:'Bitter → Durchlaufzeit',
    options:[
      {e:'&#x26a1;', l:'Zu schnell', d:'Unter 20 Sekunden', n:'bitter_fast_tamp'},
      {e:'&#x2705;', l:'Passt', d:'20–35 Sekunden', n:'bitter_ok_roast'},
      {e:'&#x1f422;', l:'Zu langsam', d:'Über 35 Sekunden', n:'sol_bitter_slow'}
    ]
  },
  bitter_fast_tamp: {
    type:'choice',
    step:'Schritt 3 von 3',
    title:'Wie fest tampst du?',
    hint:'Kurz + bitter ist ungewöhnlich – oft liegt es am Tampen oder der Dosierung.',
    crumb:'Bitter → Schnell → Tampen',
    options:[
      {e:'&#x1fab6;', l:'Eher locker', d:'Wenig Druck beim Tampen', n:'sol_tamp_loose'},
      {e:'&#x1f4aa;', l:'Normal bis fest', d:'Ca. 15–20 kg Druck', n:'sol_bitter_fast_dose'}
    ]
  },
  bitter_ok_roast: {
    type:'choice',
    step:'Schritt 3 von 3',
    title:'Wie dunkel sind deine Bohnen geröstet?',
    hint:'Zeit passt – jetzt suchen wir den Geschmacksfehler in der Bohne oder Temperatur.',
    crumb:'Bitter → Zeit OK → Röstgrad',
    options:[
      {e:'&#x26ab;', l:'Sehr dunkel', d:'Ölig glänzend, fast schwarz', n:'sol_dark_bitter'},
      {e:'&#x1f7eb;', l:'Medium', d:'Braun, leicht matt', n:'bitter_ok_temp'},
      {e:'&#x1f7e1;', l:'Hell', d:'Hellbraun, trocken', n:'sol_light_bitter'}
    ]
  },
  bitter_ok_temp: {
    type:'choice',
    step:'Zusatzinfo',
    title:'Wie hoch ist deine Brühtemperatur?',
    crumb:'Bitter → Zeit OK → Temperatur',
    options:[
      {e:'&#x1f321;', l:'Über 94°C', d:'Eher hoch eingestellt', n:'sol_temp_high'},
      {e:'&#x1f321;', l:'Um 92–94°C', d:'Normalbereich', n:'sol_recipe_check'},
      {e:'&#x2753;', l:'Weiß ich nicht', d:'Keine Temperaturregelung', n:'sol_no_temp_bitter'}
    ]
  },

  // SOUR PATH
  sauer_timing: {
    type:'choice',
    step:'Schritt 2 von 3',
    title:'Wie lange läuft dein Espresso durch?',
    ctx:'&#x1f3af; Ziel: 25–35 Sekunden (klassischer Doppelter, 1:2 Ratio)',
    crumb:'Sauer → Durchlaufzeit',
    options:[
      {e:'&#x26a1;', l:'Zu schnell', d:'Unter 20 Sekunden', n:'sol_sour_fast'},
      {e:'&#x2705;', l:'Passt', d:'20–35 Sekunden', n:'sauer_ok_roast'},
      {e:'&#x1f422;', l:'Zu langsam', d:'Über 35 Sekunden', n:'sauer_slow_channel'}
    ]
  },
  sauer_ok_roast: {
    type:'choice',
    step:'Schritt 3 von 3',
    title:'Wie dunkel sind deine Bohnen geröstet?',
    crumb:'Sauer → Zeit OK → Röstgrad',
    options:[
      {e:'&#x1f7e1;', l:'Hell (Light Roast)', d:'Hellbraun, trocken, fruchtig', n:'sauer_light_altitude'},
      {e:'&#x1f7eb;', l:'Medium', d:'Braun, leicht matt', n:'sauer_medium_temp'},
      {e:'&#x26ab;', l:'Dunkel', d:'Ölig, fast schwarz', n:'sol_dark_sour'}
    ]
  },
  sauer_light_altitude: {
    type:'choice',
    step:'Zusatzinfo',
    title:'Auf welcher Höhe wurden die Bohnen angebaut?',
    hint:'Hochgewachsene Bohnen haben natürlich mehr Säure — das ist ein Qualitätsmerkmal, kein Fehler.',
    crumb:'Sauer → Hell → Anbauhöhe',
    options:[
      {e:'&#x26f0;', l:'Hoch (über 1500 m)', d:'Äthiopien, Kenia, Guatemala', n:'sol_high_alt_sour'},
      {e:'&#x1f3d4;', l:'Mittel (900–1500 m)', d:'Kolumbien, Honduras', n:'sauer_medium_temp'},
      {e:'&#x1f30a;', l:'Niedrig / unbekannt', d:'Unter 900 m oder keine Angabe', n:'sauer_medium_temp'}
    ]
  },
  sauer_medium_temp: {
    type:'choice',
    step:'Zusatzinfo',
    title:'Wie hoch ist deine Brühtemperatur?',
    crumb:'Sauer → Temperatur',
    options:[
      {e:'&#x2744;', l:'Unter 90°C', d:'Eher kühl', n:'sol_temp_low'},
      {e:'&#x1f321;', l:'Um 90–94°C', d:'Normalbereich', n:'sol_sour_temp_ok'},
      {e:'&#x2753;', l:'Keine Ahnung', d:'Keine Temperaturkontrolle', n:'sol_no_temp_sour'}
    ]
  },
  sauer_slow_channel: {
    type:'choice',
    step:'Schritt 3 von 3',
    title:'Siehst du Risse oder Löcher im Puck nach dem Bezug?',
    hint:'Channeling: Das Wasser sucht den schnellsten Weg und extrahiert ungleichmäßig.',
    crumb:'Sauer → Langsam → Channeling?',
    options:[
      {e:'&#x1f573;', l:'Ja, Löcher/Risse', d:'Puck ungleichmäßig', n:'sol_channeling'},
      {e:'&#x2705;', l:'Nein, sieht gut aus', d:'Puck gleichmäßig', n:'sol_sour_slow_ok'}
    ]
  },

  // WATERY PATH
  watery_dose: {
    type:'choice',
    step:'Schritt 2 von 3',
    title:'Wie viel Kaffee verwendest du?',
    hint:'Zu wenig Kaffee ist die häufigste Ursache für wässrigen Espresso.',
    crumb:'Wässrig → Dosierung',
    options:[
      {e:'&#x2753;', l:'Ich wiege nicht', d:'Schätze die Menge', n:'sol_weigh'},
      {e:'&#x2696;', l:'Unter 15g', d:'Für einen Doppelten', n:'sol_more_coffee'},
      {e:'&#x2705;', l:'15–20g', d:'Normalbereich für Doppelten', n:'watery_timing'}
    ]
  },
  watery_timing: {
    type:'choice',
    step:'Schritt 3 von 3',
    title:'Wie lange läuft der Bezug?',
    crumb:'Wässrig → Dosierung OK → Zeit',
    options:[
      {e:'&#x26a1;', l:'Zu schnell', d:'Unter 20 Sekunden', n:'sol_watery_fast'},
      {e:'&#x2705;', l:'Passt', d:'20–35 Sekunden', n:'sol_watery_ok'},
      {e:'&#x1f422;', l:'Zu langsam', d:'Über 35 Sekunden', n:'sol_watery_slow'}
    ]
  },

  // GENERAL PATH
  general_timing: {
    type:'choice',
    step:'Schritt 2 von 3',
    title:'Wie lange läuft dein Espresso durch?',
    ctx:'&#x1f3af; Ziel: 25–35 Sekunden (klassischer Doppelter, 1:2 Ratio)',
    crumb:'Allgemein → Durchlaufzeit',
    options:[
      {e:'&#x26a1;', l:'Zu schnell', d:'Unter 20 Sekunden', n:'sol_gen_fast'},
      {e:'&#x2705;', l:'Passt', d:'20–35 Sekunden', n:'general_roast'},
      {e:'&#x1f422;', l:'Zu langsam', d:'Über 35 Sekunden', n:'sol_gen_slow'}
    ]
  },
  general_roast: {
    type:'choice',
    step:'Schritt 3 von 3',
    title:'Wie dunkel sind deine Bohnen geröstet?',
    hint:'Der Röstgrad bestimmt das Grundprofil des Espressos.',
    crumb:'Allgemein → Zeit OK → Röstgrad',
    options:[
      {e:'&#x26ab;', l:'Sehr dunkel', d:'Ölig glänzend, fast schwarz', n:'sol_very_dark'},
      {e:'&#x1f7eb;', l:'Medium', d:'Braun, leicht matt', n:'general_altitude'},
      {e:'&#x1f7e1;', l:'Hell', d:'Hellbraun, fruchtig', n:'general_altitude_light'}
    ]
  },
  general_altitude: {
    type:'choice',
    step:'Zusatzinfo',
    title:'Auf welcher Höhe wurden die Bohnen angebaut?',
    crumb:'Allgemein → Medium → Anbauhöhe',
    options:[
      {e:'&#x26f0;', l:'Hoch (über 1500 m)', d:'Äthiopien, Kenia, Guatemala', n:'sol_high_medium'},
      {e:'&#x1f3d4;', l:'Mittel / unbekannt', d:'Kolumbien, Honduras oder unbekannt', n:'sol_water_check'},
      {e:'&#x1f30a;', l:'Niedrig (unter 900 m)', d:'Brasilien, Vietnam', n:'sol_low_alt'}
    ]
  },
  general_altitude_light: {
    type:'choice',
    step:'Zusatzinfo',
    title:'Auf welcher Höhe wurden die Bohnen angebaut?',
    hint:'Helle Röstungen + große Höhe = intensivste Säure und Komplexität.',
    crumb:'Allgemein → Hell → Anbauhöhe',
    options:[
      {e:'&#x26f0;', l:'Hoch (über 1500 m)', d:'Äthiopien, Kenia, Guatemala', n:'sol_light_high'},
      {e:'&#x1f3d4;', l:'Mittel (900–1500 m)', d:'Kolumbien, Honduras', n:'sol_light_medium'},
      {e:'&#x1f30a;', l:'Niedrig (unter 900 m)', d:'Unter 900 m oder unbekannt', n:'sol_light_low'}
    ]
  },

  // ─── SOLUTIONS ───────────────────────────────────────────────────────────────
  sol_bitter_slow: {
    type:'solution', cat:'Mahlgrad',
    title:'Mahlgrad zu fein — gröber einstellen!',
    prob:'Langsame Laufzeit + Bitterkeit = klassische Überextraktion. Das Wasser hat zu viel Widerstand und löst zu viele Bitterstoffe.',
    tips:[
      '&#x1f527; Mahlgrad schrittweise 1–2 Stufen gröber einstellen',
      '&#x23f1; Ziel: 25–35 Sekunden Bezugszeit',
      '&#x2696; Kaffeemenge prüfen — evtl. auch etwas weniger Kaffee versuchen',
      '&#x1f4dd; Immer nur eine Variable auf einmal verändern und Bezug wiederholen'
    ],
    info:'Bei zu feinem Mahlgrad baut sich zu viel Druck auf. Das Wasser braucht länger und extrahiert Bitterstoffe, die erst spät aus dem Kaffee gelöst werden.'
  },
  sol_tamp_loose: {
    type:'solution', cat:'Tampen',
    title:'Fester tampen — gleichmäßiger Druck!',
    prob:'Zu lockeres Tampen gibt dem Wasser zu wenig Widerstand. Es rauscht durch und extrahiert ungleichmäßig — Channeling ist die häufige Folge.',
    tips:[
      '&#x1f4aa; Tampe mit ca. 15–20 kg Druck (so fest wie nötig, um eine gerade Oberfläche zu erzielen)',
      '&#x1f4d0; Tamper immer gerade halten — keine Schräglage!',
      '&#x1f504; Vor dem Tampen Kaffee gleichmäßig verteilen (WDT-Tool empfohlen)',
      '&#x1f9f9; Prüfe nach dem Bezug den Puck — er sollte fest und gleichmäßig sein'
    ],
    info:'Gleichmäßiges Tampen ist eine Fertigkeit. Es braucht Übung — aber mit dem richtigen Tool ist es deutlich einfacher.'
  },
  sol_bitter_fast_dose: {
    type:'solution', cat:'Dosis & Mahlgrad',
    title:'Kaffeemenge und Mahlgrad prüfen',
    prob:'Schnell + bitter ist eine ungewöhnliche Kombination. Meistens stimmt hier die Grundeinstellung aus Dosis, Mahlgrad und Tampen nicht zusammen.',
    tips:[
      '&#x2696; Kaffeemenge wiegen — Ziel: 16–20g für einen Doppelten',
      '&#x1f527; Mahlgrad etwas feiner einstellen',
      '&#x1f4cf; Verhältnis dokumentieren: Kaffee IN / Espresso OUT / Zeit',
      '&#x1f3af; Ziel-Ratio: 18g → 36g in 28–32 Sekunden'
    ],
    info:'Systematisches Protokollieren ist der schnellste Weg zur perfekten Einstellung. Was du nicht misst, kannst du nicht optimieren.',
    eq:true
  },
  sol_dark_bitter: {
    type:'solution', cat:'Röstgrad',
    title:'Dunkelröstung — Bitterkeit ist typisch',
    prob:'Sehr dunkle Röstungen haben von Natur aus mehr Röst- und Bitterstoffe. Das ist kein Fehler, sondern ein Stilmerkmal.',
    tips:[
      '&#x1f4a1; Das ist das normale Profil einer Dunkelröstung — kein Extraktionsfehler',
      '&#x1f7eb; Probiere eine mittlere Röstung (Medium Roast) für mehr Nuancen und weniger Bitterkeit',
      '&#x1f321; Brühtemperatur etwas senken (89–91°C) hilft bei Dunkelröstungen',
      '&#x2615; Dunkelröstungen sind ideal mit Milch — als Cappuccino oder Flat White',
      '&#x23f1; Kürzere Bezugszeit (20–25 Sek.) für weniger Bitterkeit'
    ],
    info:'Dunkel geröstete Bohnen verlieren durch den Röstprozess Frucht- und Blumensäuren. Stattdessen entstehen Röst-, Karamell- und Bitterstoffe — typisch für den klassischen italienischen Espresso.'
  },
  sol_light_bitter: {
    type:'solution', cat:'Temperatur & Röstung',
    title:'Helle Bohne bitter? Temperatur und Überextraktion prüfen!',
    prob:'Helle Röstungen sollten fruchtig-süß schmecken, nicht bitter. Bitterkeit deutet auf Überextraktion oder zu hohe Temperatur hin.',
    tips:[
      '&#x1f321; Temperatur prüfen — für helle Bohnen optimal: 92–94°C',
      '&#x23f1; Bezugszeit kontrollieren — zu langsam? → Mahlgrad gröber',
      '&#x1f4a7; Wasserqualität prüfen — hartes Wasser (>200 ppm) kann Bitterkeit verstärken',
      '&#x1fad8; Wie alt sind die Bohnen? Über 3 Monate alte Bohnen schmecken oft schal'
    ],
    info:'Helle Röstungen brauchen oft höhere Temperaturen als dunkle, weil ihre Zellstruktur noch dichter ist. Trotzdem sollten sie nie bitter schmecken.'
  },
  sol_temp_high: {
    type:'solution', cat:'Temperatur',
    title:'Brühtemperatur reduzieren',
    prob:'Zu hohe Temperatur extrahiert früher und mehr Bitterstoffe als erwünscht.',
    tips:[
      '&#x1f321; Temperatur auf 91–93°C reduzieren',
      '&#x23f3; 1–2 Minuten nach dem Aufheizen warten vor dem ersten Bezug',
      '&#x1f504; Ein kurzer Leerbezug (ohne Siebträger) kann die Brühgruppe kühlen',
      '&#x1f4ca; Für mittlere Röstungen: 92–93°C ist meist der Sweet Spot'
    ],
    info:'Jeder Grad Temperaturunterschied hat einen messbaren Einfluss auf die Extraktion. Immer nur eine Variable auf einmal ändern!'
  },
  sol_recipe_check: {
    type:'solution', cat:'Rezept & Parameter',
    title:'Gesamtrezept überprüfen',
    prob:'Temperatur und Zeit stimmen, aber trotzdem bitter? Dann lohnt sich ein kompletter Check aller Parameter.',
    tips:[
      '&#x1f4dd; Protokollieren: Kaffeemenge IN / Espresso OUT / Zeit',
      '&#x1f3af; Ziel: 18g → 36–40g in 28–33 Sekunden',
      '&#x1f4a7; Wasserqualität prüfen — Filterwasser empfohlen (70–150 ppm)',
      '&#x1fad8; Röstdatum prüfen — ideal: 2–6 Wochen nach Röstung',
      '&#x1f9f9; Maschine sauber? Kaffeeöl-Rückstände können bitter schmecken'
    ],
    info:'Wenn alle Parameter stimmen und es trotzdem nicht passt, liegt es meist an der Bohne selbst. Ein Wechsel auf eine andere Sorte kann helfen.'
  },
  sol_no_temp_bitter: {
    type:'solution', cat:'Equipment',
    title:'Ohne Temperaturkontrolle: So geht es trotzdem',
    prob:'Ohne PID oder Temperaturanzeige ist das Einstellen schwerer — aber nicht unmöglich.',
    tips:[
      '&#x23f3; Konsequent vorheizen: mind. 20–30 Minuten',
      '&#x1f504; Leerbezug direkt vor dem Espresso zieht die Brühgruppe ein',
      '&#x1f4ca; Einsteiger-Maschinen: Temperatur variiert ±5°C — auf Konsistenz achten',
      '&#x1f4a1; Langfristig: Eine Maschine mit PID-Regelung lohnt sich'
    ],
    info:'PID-Temperaturregelung ist eines der wichtigsten Upgrades beim Siebträger. Es macht die Extraktion reproduzierbar.',
    eq:true
  },

  // SOUR SOLUTIONS
  sol_sour_fast: {
    type:'solution', cat:'Mahlgrad',
    title:'Mahlgrad feiner einstellen!',
    prob:'Zu schnell + sauer = klassische Unterextraktion. Das Wasser hat zu wenig Widerstand und zu kurzen Kontakt mit dem Kaffee.',
    tips:[
      '&#x1f527; Mahlgrad 1–2 Stufen feiner einstellen',
      '&#x23f1; Ziel: 25–35 Sekunden Bezugszeit',
      '&#x1f4cf; Bezugsmenge messen: 18g Kaffee → ~36g Espresso',
      '&#x1f504; Nach jeder Änderung: Einen Bezug ziehen und Ergebnis bewerten'
    ],
    info:'Feineres Mahlen erhöht den Widerstand im Puck. Das Wasser hat mehr Kontaktzeit mit dem Kaffee und kann mehr Aromen und Süße lösen — und weniger rohe Säure zurücklassen.'
  },
  sol_high_alt_sour: {
    type:'solution', cat:'Bohnen & Herkunft',
    title:'Hochland-Bohne — die Säure ist beabsichtigt!',
    prob:'Bohnen aus über 1500 m Höhe haben von Natur aus mehr Säure, Komplexität und Fruchtigkeit. Das ist ein Qualitätsmerkmal — kein Fehler.',
    tips:[
      '&#x1f321; Temperatur leicht erhöhen (93–95°C) für mehr Extraktion der Süße',
      '&#x23f1; Bezugszeit etwas länger anstreben (30–35 Sek.)',
      '&#x1fad8; Als Filter-Kaffee zubereiten — da kommen Säure und Fruchtigkeit besser zur Geltung',
      '&#x2615; Wenn du Säure generell nicht magst: Bohnen aus Brasilien (unter 1000 m) probieren'
    ],
    info:'Äthiopische, kenianische oder guatemaltekische Bohnen aus über 1800 m sind für ihre lebendige Säure und Fruchtigkeit weltberühmt. Das ist wie Terroir beim Wein — ortsgebunden und einzigartig.'
  },
  sol_temp_low: {
    type:'solution', cat:'Temperatur',
    title:'Brühtemperatur erhöhen',
    prob:'Zu niedrige Temperatur führt zu Unterextraktion: Die Süße bleibt im Kaffee, nur die Säuren werden gelöst.',
    tips:[
      '&#x1f321; Temperatur auf 92–94°C erhöhen',
      '&#x23f3; Ausreichend vorheizen (mind. 20 Min.)',
      '&#x1f504; Kein Leerbezug direkt vor dem Espresso — das kühlt die Brühgruppe ab',
      '&#x1f4ca; Für helle Röstungen: 93–95°C kann sogar sinnvoll sein'
    ],
    info:'Kühles Wasser kann keine schwerlöslichen Zucker und Öle aus dem Kaffee lösen. Die Säuren sind leichtlöslich und dominant — das Ergebnis schmeckt spitz.'
  },
  sol_sour_temp_ok: {
    type:'solution', cat:'Bohnen',
    title:'Die Säure gehört zu dieser Bohne',
    prob:'Alle Parameter stimmen, aber trotzdem zu sauer? Die Ursache ist wahrscheinlich die Bohne selbst.',
    tips:[
      '&#x1fad8; Wechsle auf eine Bohne mit weniger Säure (z.B. Brasilien, Sumatra, Timor)',
      '&#x26ab; Probiere eine dunklere Röstung derselben Herkunft',
      '&#x1f4a7; Wasserqualität prüfen — weiches Wasser (unter 70 ppm) verstärkt Säure',
      '&#x1f321; Noch etwas mehr Temperatur (94–95°C) für mehr Süße probieren'
    ],
    info:'Säure im Espresso ist kein Fehler — sie ist eine Dimension des Geschmacks. Manche lieben sie (Third Wave), andere wollen sie nicht (klassisch-italienisch). Beides ist legitim.'
  },
  sol_no_temp_sour: {
    type:'solution', cat:'Temperatur & Equipment',
    title:'Ohne Temperaturkontrolle — so hilfst du dir',
    prob:'Säure deutet oft auf Unterextraktion hin. Temperatur ist einer der Hauptfaktoren.',
    tips:[
      '&#x23f3; Länger vorheizen — mind. 20–30 Min. bei Einsteigermaschinen',
      '&#x1f504; Warm-up Bezug direkt vor dem Espresso zieht Wärme in die Brühgruppe',
      '&#x1fad8; Mittlere bis dunkle Röstungen sind weniger temperaturkritisch',
      '&#x1f4a1; Maschine mit PID löst das Problem dauerhaft'
    ],
    info:'Einsteiger-Maschinen schwanken teils ±5°C — das ist genug, um den Geschmack erheblich zu verändern.',
    eq:true
  },
  sol_dark_sour: {
    type:'solution', cat:'Diagnose',
    title:'Dunkle Bohne und trotzdem sauer — ungewöhnlich!',
    prob:'Dunkelröstungen sollten kaum Säure haben. Wenn doch: Es liegt an Unterextraktion oder Temperaturproblemen.',
    tips:[
      '&#x1f321; Temperatur prüfen — läuft die Maschine vollständig warm?',
      '&#x23f1; Bezugszeit messen — unter 20 Sek. → Mahlgrad feiner',
      '&#x23f3; Länger vorheizen (30+ Min.)',
      '&#x1f9f9; Kalkablagerungen prüfen — Kalk isoliert den Heizstab'
    ],
    info:'Dunkelröstungen verlieren durch den Röstprozess fast alle Frucht- und Milchsäuren. Wenn sie trotzdem sauer schmecken, liegt ein Extraktionsfehler vor.'
  },
  sol_channeling: {
    type:'solution', cat:'Distribution & Tampen',
    title:'Channeling — das Wasser findet seinen eigenen Weg',
    prob:'Wenn Wasser durch Risse oder Kanäle im Puck strömt, wird ein Teil des Kaffees über-extrahiert und ein anderer Teil gar nicht.',
    tips:[
      '&#x1f504; Kaffee vor dem Tampen gleichmäßig verteilen — WDT-Tool verwenden',
      '&#x1f4d0; Gerade tampen — Schräglage verursacht Channeling auf der Seite',
      '&#x2696; Kaffeemenge prüfen — zu wenig Kaffee begünstigt Channeling',
      '&#x1f9f9; Sieb auf Rückstände und Verstopfungen prüfen',
      '&#x1f6e0; Puck-Screen für die Brühgruppe reduziert Channeling deutlich'
    ],
    info:'Channeling ist der häufigste Fehler beim Heimbarista. Ein WDT-Tool (Weiss Distribution Technique) — schon für unter 20€ — löst das Problem in den meisten Fällen.',
    eq:true
  },
  sol_sour_slow_ok: {
    type:'solution', cat:'Extraktion',
    title:'Langsam + sauer — Temperatur oder Bohne',
    prob:'Lange Bezugszeit mit Säure ist ungewöhnlich. Meist ist die Temperatur zu niedrig oder die Bohne sehr hell geröstet.',
    tips:[
      '&#x1f321; Brühtemperatur auf 93–95°C erhöhen',
      '&#x1fad8; Bohne und Röstgrad prüfen — helle Bohnen brauchen mehr Temperatur',
      '&#x2696; Etwas weniger Kaffee → kürzere Laufzeit',
      '&#x1f4dd; Parameter protokollieren und schrittweise anpassen'
    ],
    info:'Lange Bezugszeit + Säure = die Zuckermoleküle werden trotz langer Zeit nicht gelöst. Das ist ein klares Temperaturproblem.'
  },

  // WATERY SOLUTIONS
  sol_weigh: {
    type:'solution', cat:'Grundlagen',
    title:'Fang an zu wiegen — sofort!',
    prob:'Ohne Waage ist präzises Einstellen nicht möglich. Schätzen führt zu inkonsistenten Ergebnissen.',
    tips:[
      '&#x2696; Eine Kaffeewaage ist das wichtigste Zubehör — ab ~15€ gibt es gute Modelle',
      '&#x1f3af; Ziel: 16–18g Kaffee für einen Doppelten',
      '&#x1f4cf; Auch die Bezugsmenge wiegen: IN × 2 = OUT',
      '&#x23f1; Stoppuhr mitlaufen lassen (viele Waagen haben Timer)'
    ],
    info:'Alle Profis — ob in Weltmeisterschaften oder in Spitzen-Cafés — wiegen jeden Bezug. Es ist nicht Perfektionismus, es ist Grundlage.',
    eq:true
  },
  sol_more_coffee: {
    type:'solution', cat:'Dosierung',
    title:'Mehr Kaffee verwenden!',
    prob:'Zu wenig Kaffee = zu wenig Extrakt = wässriger, flacher Espresso. Das ist einer der häufigsten Anfängerfehler.',
    tips:[
      '&#x2696; Ziel: 16–18g für einen Doppelten (Double Basket)',
      '&#x1f4e6; Prüfen: Hast du ein Single- oder Double-Sieb eingesetzt?',
      '&#x1f527; Nach Mengenänderung Mahlgrad und Zeit neu prüfen',
      '&#x1f4a1; Single-Siebe: 7–10g / Double-Siebe: 14–21g'
    ],
    info:'Viele Menschen mahlen für einen Doppelten, haben aber ein Single-Sieb eingesetzt — oder umgekehrt. Prüfe zuerst, welches Sieb du verwendest.'
  },
  sol_watery_fast: {
    type:'solution', cat:'Mahlgrad',
    title:'Mahlgrad feiner — mehr Widerstand!',
    prob:'Wässrig + schnell = Unterextraktion. Das Wasser hat zu wenig Kontakt mit dem Kaffee.',
    tips:[
      '&#x1f527; Mahlgrad deutlich feiner einstellen',
      '&#x23f1; Ziel: 25–35 Sekunden Bezugszeit',
      '&#x1f4cf; Bezugsmenge reduzieren: 1:2 Ratio (18g → 36g)',
      '&#x1f4aa; Tampen prüfen — gleichmäßig und fest?'
    ],
    info:'Wässriger Espresso ist fast immer Unterextraktion. Der Mahlgrad ist der erste und wichtigste Hebel.'
  },
  sol_watery_ok: {
    type:'solution', cat:'Bohnen & Frische',
    title:'Zeit passt — Bohne und Frische prüfen',
    prob:'Wenn Zeit und Menge stimmen, aber trotzdem wässrig: Es liegt an der Bohne oder ihrer Frische.',
    tips:[
      '&#x1fad8; Röstdatum prüfen — Bohnen älter als 3 Monate verlieren CO₂ und Aroma',
      '&#x26ab; Dunklere Röstung für mehr Körper probieren',
      '&#x1f321; Temperatur leicht erhöhen für mehr Extraktion',
      '&#x1f4a7; Weiches Wasser (unter 70 ppm) kann zu flachem Espresso führen'
    ],
    info:'Frische ist beim Espresso kritisch. Ideal: 2–6 Wochen nach Röstdatum. Danach nimmt die Qualität spürbar ab.'
  },
  sol_watery_slow: {
    type:'solution', cat:'Diagnose',
    title:'Langsam + wässrig — Channeling prüfen!',
    prob:'Das ist ungewöhnlich — meist steckt Channeling dahinter. Das Wasser fließt schnell durch Kanäle, der Rest wird kaum extrahiert.',
    tips:[
      '&#x1f504; Distribution vor dem Tampen verbessern',
      '&#x1f527; Mahlgrad etwas gröber',
      '&#x2696; Kaffeemenge prüfen — evtl. zu viel im Sieb?',
      '&#x1f573; Puck nach dem Bezug inspizieren — Risse oder Löcher?'
    ],
    info:'Channeling täuscht über die tatsächliche Extraktion hinweg. Der Gesamtbezug dauert lang, weil es an manchen Stellen blockiert — gleichzeitig strömt Wasser unkontrolliert durch Kanäle.'
  },

  // GENERAL SOLUTIONS
  sol_gen_fast: {
    type:'solution', cat:'Mahlgrad',
    title:'Mahlgrad feiner — alles beginnt hier',
    prob:'Zu schnelle Laufzeit: Das Wasser hat zu wenig Zeit, Aromen zu lösen.',
    tips:[
      '&#x1f527; Mahlgrad schrittweise feiner einstellen',
      '&#x23f1; Ziel: 25–35 Sekunden',
      '&#x1f4dd; Jede Änderung dokumentieren',
      '&#x1f3af; Ratio: 18g → 36g Espresso in ~30 Sekunden'
    ],
    info:'Der Mahlgrad ist die wichtigste Variable. Halbe Stufen können großen Unterschied machen. Geduld und Protokoll helfen.'
  },
  sol_gen_slow: {
    type:'solution', cat:'Mahlgrad',
    title:'Mahlgrad gröber einstellen',
    prob:'Zu langsame Laufzeit = Überextraktion = zu schwer, zu bitter, zu dunkel.',
    tips:[
      '&#x1f527; Mahlgrad schrittweise gröber einstellen',
      '&#x23f1; Ziel: 25–35 Sekunden',
      '&#x2696; Kaffeemenge prüfen — evtl. zu viel',
      '&#x1f4d0; Tampen-Druck reduzieren wenn zu fest'
    ],
    info:'Gröber mahlen = weniger Widerstand = kürzere Bezugszeit und weniger Extraktion. Immer schrittweise vorgehen.'
  },
  sol_very_dark: {
    type:'solution', cat:'Röstgrad',
    title:'Sehr dunkle Röstung — das Profil ist typisch',
    prob:'Ölig glänzende Bohnen sind sehr dunkel geröstet. Das Profil ist naturgemäß kräftig, rauchig und kann bitter sein.',
    tips:[
      '&#x1f4a1; Das ist kein Fehler — das ist das Profil dieser Röstung',
      '&#x1f7eb; Mittlere Röstung für mehr Nuancen und weniger Dominanz probieren',
      '&#x2615; Dunkelröstungen harmonieren gut mit Milch (Cappuccino, Flat White)',
      '&#x1f321; Temperatur niedrig halten (89–91°C) reduziert Bitterkeit etwas'
    ],
    info:'Dunkel gerösteter Kaffee ist für den klassischen Markt gemacht — Espresso zur Zigarette, so wie in Neapel. Dort trinkt man das gerne so. Nicht jedem liegt das.'
  },
  sol_high_medium: {
    type:'solution', cat:'Herkunft',
    title:'Hochland-Bohne (Medium) — Komplexität erleben',
    prob:'Mittlere Röstungen aus großen Höhen haben fruchtigen, komplexen Charakter mit lebendiger Säure.',
    tips:[
      '&#x1f321; Temperatur auf 92–94°C',
      '&#x23f1; 28–33 Sekunden anstreben',
      '&#x1f4a7; Gefiltertes Wasser (100–150 ppm) bringt die Aromen besser raus',
      '&#x1fad8; Als Filter-Kaffee erleben — Komplexität kommt da oft klarer rüber'
    ],
    info:'Kolumbien, Honduras oder Guatemala auf über 1500 m produzieren Bohnen mit besonderer Dichte und Zuckerentwicklung. Das ist keine Fehlfunktion — das ist Terroir.'
  },
  sol_water_check: {
    type:'solution', cat:'Wasserqualität',
    title:'Wasserqualität — der unterschätzte Faktor',
    prob:'Alle Parameter stimmen, aber er macht nicht glücklich? Wasser ist der häufigste blinde Fleck.',
    tips:[
      '&#x1f4a7; Leitungswasser-Härte prüfen (Teststreifen, ~5€, online)',
      '&#x1f3af; Zielbereich: 70–150 ppm Gesamthärte (TDS)',
      '&#x1f527; Filterkartusche für die Maschine erwägen (BWT Bestsave, Brita)',
      '&#x1f4a1; Weiches Wasser (unter 50 ppm) → flach und sauer',
      '&#x1f4a1; Hartes Wasser (über 250 ppm) → metallisch, blendet Aromen'
    ],
    info:'Wasser macht 98% des Espressos aus. Seine Zusammensetzung beeinflusst Löslichkeit, Pufferwirkung und Geschmacksprofil erheblich — und wird fast immer ignoriert.',
    eq:true
  },
  sol_low_alt: {
    type:'solution', cat:'Herkunft',
    title:'Tieflagen-Bohne — mildes Profil',
    prob:'Bohnen aus unter 900 m Höhe sind milder, weniger komplex und haben geringe Säure.',
    tips:[
      '&#x2615; Das ist ein mildes, zugängliches Profil — gut für Einsteiger',
      '&#x1f4a1; Mehr Charakteristik gewünscht? → Hochland-Bohnen probieren',
      '&#x1f321; Niedrigere Temperatur (89–92°C) für schonende Extraktion',
      '&#x1f7eb; Nussig, schokoladig, rund — das ist das typische Profil dieser Bohnen'
    ],
    info:'Brasilien, Vietnam und Sumatra wachsen auf niedrigen Höhen. Sie bilden die Basis der meisten Espresso-Blends — günstig, mild und sehr beständig.'
  },
  sol_light_high: {
    type:'solution', cat:'Bohnen',
    title:'Helle Hochland-Bohne — intensivst und komplex!',
    prob:'Helle Röstung + große Höhe = maximale Fruchtigkeit, Säure und Komplexität. Das ist Third Wave Specialty Coffee.',
    tips:[
      '&#x1f321; Hohe Temperatur: 94–96°C',
      '&#x23f1; Längere Bezugszeit: 30–35 Sekunden',
      '&#x1f4a7; Weiches Filterwasser empfohlen',
      '&#x1fad8; Als Filter-Kaffee (Pour-over, Aeropress) wird das Profil noch zugänglicher',
      '&#x1f4a1; Das ist der anspruchsvollste Espresso-Stil — und der lohnendste'
    ],
    info:'Äthiopische Naturals, kenianische AA oder kolumbianische Geisha in heller Röstung sind Spezialitäten für erfahrene Gaumen. Sie polarisieren — und das ist gewollt.'
  },
  sol_light_medium: {
    type:'solution', cat:'Bohnen',
    title:'Helle Mittellagen-Bohne — gut optimierbar',
    prob:'Moderate Komplexität, schöne Ausgewogenheit. Ein guter Ausgangspunkt.',
    tips:[
      '&#x1f321; Temperatur: 92–94°C',
      '&#x23f1; Ziel: 28–33 Sekunden',
      '&#x2696; Ratio 1:2 bis 1:2,5',
      '&#x1f4a1; Typische Beispiele: Kolumbien, Costa Rica, Honduras'
    ],
    info:'Mittellagen-Bohnen in heller Röstung sind ideal zum Einarbeiten. Zugänglich, gut optimierbar und trotzdem charaktervoll.'
  },
  sol_light_low: {
    type:'solution', cat:'Bohnen & Röstung',
    title:'Helle Tieflagen-Bohne — eher für Filter!',
    prob:'Diese Kombination ist für Espresso schwierig. Helle Röstung + niedrige Lage = oft flach mit störender Säure.',
    tips:[
      '&#x1fad8; Diese Bohne als Filter-Kaffee genießen — da funktioniert sie besser',
      '&#x26ab; Für Espresso: Dunklere Röstung derselben Herkunft kaufen',
      '&#x1f321; Niedrige Temperatur (88–90°C) für schonende Extraktion',
      '&#x1f4a1; Helle Röstungen brauchen Dichte und Zucker — Tieflagen-Bohnen haben weniger davon'
    ],
    info:'Traditionell werden Tieflagen-Bohnen dunkler geröstet — aus gutem Grund. Helle Röstungen bei diesen Sorten entfernt Röstaromen ohne sie durch Fruchtigkeit zu ersetzen.'
  }
};

// ─── APP STATE ──────────────────────────────────────────────────────────────
let path = []; // history of node ids
let current = 'start';
const TOTAL_STEPS = 4;

function depth() { return path.length; }
function progress() { return Math.min((depth() / TOTAL_STEPS) * 100, 100); }

// ─── RENDER ─────────────────────────────────────────────────────────────────
function go(nodeId) {
  if (current !== 'start') path.push(current);
  current = nodeId;
  render();
}

function goBack() {
  if (path.length === 0) return;
  current = path.pop();
  render();
}

function restart() {
  path = [];
  current = 'start';
  render();
}

function render() {
  const node = TREE[current];
  if (!node) return;
  
  // breadcrumb
  const crumbs = document.getElementById('crumbs');
  if (current === 'start') {
    crumbs.innerHTML = '';
  } else {
    const parts = path.map(id => {
      const n = TREE[id];
      return n && n.crumb ? `<span class="crumb">${n.crumb}</span><span class="crumb-sep">›</span>` : '';
    }).join('');
    const cur = node.crumb ? `<span class="crumb-cur">${node.crumb}</span>` : '';
    crumbs.innerHTML = parts + cur;
  }
  
  // progress
  const pw = document.getElementById('progWrap');
  const pf = document.getElementById('progFill');
  if (current === 'start') {
    pw.style.display = 'none';
  } else {
    pw.style.display = 'block';
    pf.style.width = progress() + '%';
  }
  
  // nav bar
  const nav = document.getElementById('navBar');
  nav.style.display = (current === 'start') ? 'none' : 'flex';
  
  // screen
  const screen = document.getElementById('screen');
  
  if (node.type === 'intro') {
    screen.innerHTML = `
      <div class="screen">
        <div class="intro">
          <img decoding="async" class="intro-logo" src="${LOGO}" alt="Jan">
          <h2>Dein Espresso macht Probleme?</h2>
          <p>Ich führe dich Schritt für Schritt zur Lösung. Klicke dich durch die Fragen – wie ein Barista an deiner Seite.</p>
          <div class="intro-features">
            <div class="feat"><span class="feat-icon">&#x1f3af;</span><span class="feat-label">Schritt für Schritt</span></div>
            <div class="feat"><span class="feat-icon">&#x2615;</span><span class="feat-label">Expertenwissen</span></div>
            <div class="feat"><span class="feat-icon">&#x1f527;</span><span class="feat-label">Konkrete Tipps</span></div>
          </div>
          <button class="start-btn" onclick="go('main')">Problemlöser starten →</button>
        </div>
        <div class="geschmack-info">
          <div class="gi-title">&#x2615; Kurz bevor du startest</div>
          <p class="gi-sub">Zwei Begriffe, die im Problemlöser immer wieder auftauchen – und wie du sie erkennst:</p>
          <div class="gi-grid">
            <div class="gi-box gi-bitter">
              <div class="gi-icon">&#x1f62c;</div>
              <div class="gi-name">Bitterkeit</div>
              <div class="gi-where">Hinten auf der Zunge &amp; im Rachen</div>
              <p class="gi-desc">Bitterkeit spürst du ganz am Ende des Schluckens – ein trockenes, kratzendes Gefühl im Rachen. Bei Espresso kann sie von der Röstung kommen (gewollt) oder von Überextraktion (ungewollt).</p>
            </div>
            <div class="gi-box gi-sauer">
              <div class="gi-icon">&#x1f34b;</div>
              <div class="gi-name">Säure</div>
              <div class="gi-where">Seiten der Zunge – Speichelfluss</div>
              <p class="gi-desc">Säure sitzt an den Seiten der Zunge und lässt den Mund „zusammenziehen" – du produzierst mehr Speichel. Das ist das verlässlichste Erkennungszeichen. Säure kann ein Qualitätsmerkmal sein oder ein Zeichen von Unterextraktion.</p>
            </div>
          </div>
        </div>
        <div class="affiliate-banner">
          &#x1f6d2; Hier zu verschiedenen Siebträgerempfehlungen in unterschiedlichen Preiskategorien!
          <a href="https://amzlink.to/az0eUVygN5Bs1" target="_blank" rel="noopener" class="aff-banner-btn">Jetzt ansehen →</a>
        </div>
        <div class="yt-wrap">
          <div class="yt-label">&#x1f3ac; Mehr dazu auf dem Kanal</div>
          <div class="yt-frame">
            <iframe src="https://www.youtube.com/embed/hC-WKBcTwJ0" title="TheBaristaGame – Espresso Grundlagen" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
          </div>
        </div>
      </div>`;
  }
  
  else if (node.type === 'choice') {
    const ctxHtml = node.ctx ? `<div class="ctx-box">${node.ctx}</div>` : '';
    const hintHtml = node.hint ? `<p class="hint">${node.hint}</p>` : '';
    const opts = node.options.map(o => `
      <button class="opt-btn" onclick="go('${o.n}')">
        <span class="opt-emoji">${o.e}</span>
        <span class="opt-txt">
          <div class="opt-label">${o.l}</div>
          ${o.d ? `<div class="opt-desc">${o.d}</div>` : ''}
        </span>
        <span class="opt-arrow">›</span>
      </button>`).join('');
    screen.innerHTML = `
      <div class="screen">
        <div class="q-card">
          <div class="step-label">${node.step || ''}</div>
          <h2>${node.title}</h2>
          ${hintHtml}${ctxHtml}
          <div class="options">${opts}</div>
        </div>
      </div>`;
  }
  
  else if (node.type === 'solution') {
    const tips = node.tips.map(t => `<div class="tip">${t}</div>`).join('');
    const eqHint = node.eq ? `
      <div class="equip-hint">
        <div class="equip-hint-txt">&#x1f4a1; Das richtige Equipment kann dieses Problem dauerhaft lösen.</div>
        <a class="equip-hint-btn" href="https://amzlink.to/az0eUVygN5Bs1" target="_blank" rel="noopener">Equipment ansehen →</a>
      </div>` : '';
    screen.innerHTML = `
      <div class="screen">
        <div class="sol-card">
          <div class="sol-head">
            <div class="sol-cat">✓ Diagnose: ${node.cat}</div>
            <h2>${node.title}</h2>
          </div>
          <div class="sol-body">
            <p class="prob-text">${node.prob}</p>
            <div class="tips-label">Was du jetzt tun kannst</div>
            ${tips}
            <div class="info-box">&#x1f4ac; ${node.info}</div>
            ${eqHint}
          </div>
        </div>
      </div>`;
  }
}

// ─── TAB SWITCHING ───────────────────────────────────────────────────────────
function switchTab(tab) {}

// ─── INIT ────────────────────────────────────────────────────────────────────
render();
</script>
</body>
</html>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thebaristagame.de/guide/guide-zum-perfekten-espresso/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
