/* Buchstabensuppe - Mitmach-Spiel zum Schulanfang, Landgasthof Zehner.
   Farben und Formen aus dem Claude-Design-Prototyp. */
.zh-suppe-wrap{
  --gruen:#4C9A2A;--rot:#D6332E;--blau:#2E7FC1;--gelb:#F2B500;--orange:#EE7A21;--pink:#E0559A;--lila:#7C4DA0;
  --bordeaux:#AA2018;--bordeaux-d:#8A1A13;--tinte:#252525;--grau:#5C5C5C;--grau-h:#8E8E8E;--creme:#EFE9D8;
  font-family:'Outfit','Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--tinte);line-height:1.6;
  background:#FFFFFF;border:3px solid var(--gruen);
  border-radius:244px 18px 226px 16px / 16px 220px 20px 248px;
  box-shadow:0 8px 26px rgba(37,37,37,.12);padding:36px clamp(18px,4vw,44px) 44px;
  /* Wie im Entwurf auf 900 px begrenzt: die Spielseite hat keine Inhaltsspalte,
     sonst wird der Topf auf großen Bildschirmen 1500 px breit und die Nudeln
     legen absurde Strecken zurück. */
  max-width:900px;margin:8px auto 24px}
.zh-suppe-wrap *{box-sizing:border-box}
.zh-suppe-wrap p{font-size:clamp(17px,1.1vw + 13px,19px);line-height:1.6;margin:0 0 14px;max-width:52ch}

.zh-suppe-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}
.zh-suppe-kicker{font-family:'Kalam','Segoe Script',cursive;font-size:25px;color:var(--bordeaux)}
.zh-suppe-titel{font-family:'Prata','Times New Roman',Georgia,serif;font-weight:400;
  font-size:clamp(28px,3vw + 14px,36px);line-height:1.1;margin:4px 0 0;color:var(--gruen)}
.zh-suppe-logo{width:min(210px,45vw);height:auto;flex:none;margin-top:6px}

/* Schritt-Kette */
.zh-steps{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.zh-step-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.zh-row{display:flex;gap:36px;align-items:center;margin-top:24px;
  border-top:1.5px dotted rgba(37,37,37,.34);padding-top:26px;flex-wrap:wrap}
.zh-col{flex:1;min-width:min(300px,100%)}
.zh-regeln{display:flex;flex-direction:column;gap:7px;margin:0 0 20px;font-size:16px;color:var(--grau)}
.zh-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.zh-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.zh-note{font-size:13px;color:var(--grau-h);margin-top:8px}

.zh-input{font-family:'Outfit',Helvetica,Arial,sans-serif;font-size:19px;padding:12px 14px;
  border:2.5px solid rgba(76,154,42,.55);border-radius:70px 12px 62px 11px / 11px 58px 12px 74px;
  background:#fff;color:var(--tinte);width:230px;max-width:100%}
.zh-input:focus{outline:3px solid rgba(46,127,193,.45);outline-offset:2px}
.zh-input-ro{border:1px solid rgba(37,37,37,.16);border-radius:3px;background:var(--creme);color:var(--grau)}

.zh-btn{font-family:'Outfit',Helvetica,Arial,sans-serif;font-weight:600;font-size:17px;line-height:1;
  padding:15px 26px;border-radius:90px 16px 80px 14px / 14px 76px 16px 92px;border:2.5px solid transparent;
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;
  transition:background .15s,border-color .15s,color .15s}
.zh-btn:focus-visible{outline:3px solid rgba(46,127,193,.55);outline-offset:2px}
.zh-btn[disabled]{opacity:.6;cursor:default}
.zh-btn-rot{border-color:var(--bordeaux);background:var(--bordeaux);color:#F7F3E7}
.zh-btn-rot:hover:not([disabled]),.zh-btn-rot:focus:not([disabled]){background:var(--bordeaux-d);border-color:var(--bordeaux-d);color:#F7F3E7}
.zh-btn-gruen-outline{border-color:var(--gruen);background:transparent;color:var(--gruen);font-size:15px;padding:12px 18px}
.zh-btn-gruen-outline:hover,.zh-btn-gruen-outline:focus{background:var(--gruen);color:#FFFFFF}
.zh-btn-grau{border:2px solid rgba(37,37,37,.34);border-radius:3px;background:transparent;color:var(--tinte);font-size:15px;padding:12px 18px}
.zh-btn-grau:hover,.zh-btn-grau:focus{border-color:var(--tinte)}

/* Topf */
.zh-topf-klein,.zh-topf-gross{background:#fff;border:14px solid #FFFFFF;box-shadow:0 0 0 3px var(--gruen);
  position:relative;overflow:hidden;flex:none}
.zh-topf-klein{width:250px;height:250px;max-width:100%;border-radius:50%;margin:0 auto}
.zh-topf-klein>u{position:absolute;inset:16px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#D69B33,#B4720E)}
.zh-topf-gross{margin-top:18px;height:min(420px,72vw);border-radius:50%/34%;border-width:16px}
.zh-topf-gross>u{position:absolute;inset:14px;border-radius:50%/34%;
  background:radial-gradient(ellipse at 40% 26%,#D69B33,#B4720E 72%)}
.zh-dampf{position:absolute;left:44%;top:8px;width:56px;height:56px;background:rgba(255,255,255,.45);
  filter:blur(10px);border-radius:50%;animation:zh-steam 4.5s ease-in-out infinite}

.zh-nudel{position:absolute;width:46px;height:46px;background:#FFFFFF;border:2.5px solid;
  border-radius:14px 5px 13px 4px / 4px 12px 5px 15px;font-family:'Kalam',cursive;font-weight:700;font-size:26px;
  display:flex;align-items:center;justify-content:center}

.zh-letter{position:absolute;width:56px;height:56px;margin:-28px 0 0 -28px;padding:0;
  border:2.5px solid;border-radius:14px 5px 13px 4px / 4px 12px 5px 15px;background:#FFFFFF;
  font-family:'Kalam',cursive;font-weight:700;font-size:32px;cursor:pointer;
  box-shadow:0 3px 0 rgba(37,37,37,.2);display:flex;align-items:center;justify-content:center;
  transition:left var(--zh-drift,2.2s) ease-in-out,top var(--zh-drift,2.2s) ease-in-out;
  animation:zh-bob 3.2s ease-in-out infinite;
  transform:rotate(var(--r,0deg))}
.zh-letter:hover,.zh-letter:focus-visible{background:#fff;border-color:var(--bordeaux)!important}

/* Spielstand */
.zh-play{margin-top:22px;border-top:1.5px dotted rgba(37,37,37,.34);padding-top:20px}
.zh-statuszeile{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.zh-runde{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.zh-runde-l{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--grau-h)}
.zh-wort{font-family:'Prata',Georgia,serif;font-size:22px}
.zh-zaehler{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.zh-punkte-chip,.zh-zeit-chip{border-radius:60px 12px 54px 10px / 10px 50px 12px 64px;padding:7px 14px;
  font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.zh-punkte-chip{background:#FFFDF4;border:2.5px solid var(--gruen);color:var(--gruen)}
.zh-zeit-chip{background:#F5FAFF;border:2.5px solid var(--blau);color:var(--blau)}

.zh-ziel{display:flex;align-items:center;gap:18px;margin-top:16px;background:#FDFCF6;
  border:2.5px solid var(--gelb);border-radius:200px 16px 190px 14px / 14px 180px 18px 210px;
  padding:14px 20px;flex-wrap:wrap}
.zh-ziel-links{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.zh-ziel-text{font-size:16px;font-weight:600}
.zh-ziel-char{width:56px;height:62px;flex:none;border-radius:18px 6px 17px 5px / 5px 16px 6px 19px;color:#FFFFFF;
  font-family:'Kalam',cursive;font-weight:700;font-size:34px;display:flex;align-items:center;justify-content:center;
  animation:zh-pulse 1.8s ease-in-out infinite}
.zh-ziel-note{font-size:15px;color:var(--grau)}
.zh-slots{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap}
.zh-slot{width:42px;height:50px;border-radius:16px 6px 15px 5px / 5px 14px 6px 17px;display:flex;
  align-items:center;justify-content:center;font-family:'Kalam',cursive;font-weight:700;font-size:26px;
  border:2.5px solid}

.zh-pop-slot{position:absolute;left:50%;top:44%;pointer-events:none}
.zh-pop{transform:translate(-50%,-50%);font-family:'Kalam','Segoe Script',cursive;font-size:64px;color:#F7F3E7;
  text-shadow:0 3px 14px rgba(37,37,37,.6);animation:zh-pop 1.1s ease-out forwards;white-space:nowrap}

.zh-play-fuss{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:20px;flex-wrap:wrap}
.zh-hint{font-family:'Kalam','Segoe Script',cursive;font-size:23px;color:var(--bordeaux);min-height:30px;flex:1;min-width:220px}
.zh-play-btns{display:flex;gap:10px;flex-wrap:wrap}

/* Formular / Abschluss */
.zh-form,.zh-sent{margin-top:24px;border-top:1.5px dotted rgba(37,37,37,.34);padding-top:26px}
.zh-jubel{font-family:'Kalam','Segoe Script',cursive;font-size:clamp(26px,2.4vw + 14px,32px);
  color:var(--bordeaux);transform:rotate(-1deg)}
.zh-bilanz{display:flex;gap:12px;margin:14px 0 18px;flex-wrap:wrap}
.zh-pill{background:var(--creme);border:1px solid rgba(37,37,37,.16);border-radius:3px;padding:8px 14px;
  font-size:16px;font-weight:600}
.zh-pill-gruen{background:var(--gruen);color:#FFFFFF;border-color:var(--gruen);
  border-radius:60px 12px 54px 10px / 10px 50px 12px 64px}
.zh-felder{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:640px}
.zh-felder .zh-input{width:100%}
.zh-voll{grid-column:1 / -1}
.zh-optin{display:flex;gap:10px;align-items:flex-start;margin-top:18px;max-width:640px;
  font-size:15px;line-height:1.5;color:var(--grau)}
.zh-optin input{margin-top:3px;width:18px;height:18px;accent-color:var(--bordeaux);flex:none}
.zh-datenschutz{font-size:13px!important;color:var(--grau-h);margin-top:14px;max-width:640px}
.zh-datenschutz a{color:var(--bordeaux)}
.zh-submit{display:flex;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap}
.zh-sent-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:18px}
.zh-brief{width:230px;max-width:100%;flex:none;background:#FDFCF6;border:3px dashed rgba(76,154,42,.6);
  border-radius:226px 18px 244px 16px / 20px 248px 16px 220px;padding:24px 22px;text-align:center;transform:rotate(1.5deg)}
.zh-brief-k{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--grau-h)}
.zh-brief-t{font-family:'Prata',Georgia,serif;font-size:22px;margin:8px 0 12px;line-height:1.2}
.zh-brief-c{font-weight:700;font-size:24px;letter-spacing:.12em;color:var(--bordeaux)}
.zh-brief-f{border-top:1.5px dotted rgba(37,37,37,.34);margin-top:14px;padding-top:10px;font-size:12px;color:var(--grau)}

/* Bestätigungsseite (Code) */
.zh-code{font-weight:700;font-size:30px;letter-spacing:.14em;color:var(--bordeaux)}

@keyframes zh-bob{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-6px) rotate(calc(var(--r,0deg) * -1))}}
@keyframes zh-steam{0%{opacity:0;transform:translateY(8px) scaleX(1)}40%{opacity:.45}100%{opacity:0;transform:translateY(-30px) scaleX(1.6)}}
@keyframes zh-pop{0%{opacity:0;transform:translate(-50%,-50%) translateY(6px) scale(.9)}25%{opacity:1;transform:translate(-50%,-50%) translateY(0) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) translateY(-16px) scale(1)}}
@keyframes zh-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.zh-pulse{animation:zh-pulse 2.6s ease-in-out infinite}

@media (max-width:640px){
  .zh-suppe-wrap{border-radius:120px 14px 110px 12px / 12px 108px 14px 124px;padding:28px 16px 34px}
  .zh-felder{grid-template-columns:1fr}
  .zh-slots{margin-left:0;width:100%}
  .zh-steps{gap:7px}
  .zh-steps>div{padding:9px 10px!important;gap:7px!important}
  .zh-step-label{font-size:12.5px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
  .zh-topf-gross{height:min(360px,95vw);border-width:12px}
  .zh-letter{width:44px;height:44px;margin:-22px 0 0 -22px;font-size:25px}
  .zh-ziel-char{width:48px;height:54px;font-size:29px}
  .zh-slot{width:36px;height:44px;font-size:23px}
  .zh-btn{width:100%}
  .zh-play-btns .zh-btn,.zh-inline .zh-btn{width:auto;flex:1}
  .zh-brief{margin:18px auto 0}
}

@media (prefers-reduced-motion:reduce){
  .zh-letter,.zh-dampf,.zh-ziel-char,.zh-pulse,.zh-pop{animation:none!important}
  .zh-letter{transition:none!important}
}
