.kktf-app,.kktf-app *{box-sizing:border-box}.kktf-app{--y:#ffd335;--p:#ff168f;--b:#0b0b0b;--w:#fffdf8;width:min(1180px,calc(100% - 30px));margin:40px auto 80px;color:var(--b);font-family:Arial,Helvetica,sans-serif}.kktf-app button,.kktf-app input,.kktf-app textarea{font:inherit}.kktf-hero{display:grid;grid-template-columns:1.7fr .8fr;gap:28px;align-items:end;background:var(--y);border:4px solid var(--b);box-shadow:12px 12px 0 var(--b);padding:34px;margin-bottom:44px}.kktf-eyebrow,.kktf-label{font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}.kktf-hero h1{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(70px,11vw,150px);line-height:.78;letter-spacing:-.035em;margin:0;text-transform:uppercase}.kktf-lead{max-width:720px;font-size:20px;font-weight:700;line-height:1.25;margin:24px 0 0}.kktf-alias-box{background:var(--w);border:3px solid var(--b);box-shadow:7px 7px 0 var(--p);padding:20px;transform:rotate(1deg)}.kktf-alias-box span{display:block;font-size:11px;font-weight:900;letter-spacing:.08em}.kktf-alias-box strong{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:32px;line-height:.95;margin:8px 0 14px}.kktf-linkbtn{border:0;background:none;padding:0;text-decoration:underline;font-size:11px;font-weight:900;cursor:pointer}.kktf-status{min-height:24px;margin:0 0 12px;font-weight:900}.kktf-status.is-bad{color:#a00000}.kktf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.kktf-card{position:relative;border:4px solid var(--b);box-shadow:9px 9px 0 var(--b);padding:28px;min-width:0}.kktf-card:nth-child(2n){transform:rotate(.35deg)}.kktf-card:nth-child(3n){transform:rotate(-.25deg)}.kktf-card-yellow{background:var(--y)}.kktf-card-pink{background:var(--p)}.kktf-card-white{background:var(--w)}.kktf-card-black{background:var(--b);color:var(--w);box-shadow:9px 9px 0 var(--p)}.kktf-card-wide{grid-column:1/-1}.kktf-card h2{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(35px,4.2vw,60px);line-height:.92;letter-spacing:-.02em;text-transform:uppercase;margin:0 0 22px}.kktf-word-sentence{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(30px,4vw,58px);line-height:1;margin:20px 0 28px;border-left:8px solid var(--p);padding-left:18px}.kktf-form{display:flex;gap:10px;align-items:stretch}.kktf-form input,.kktf-form textarea{width:100%;border:3px solid var(--b);background:var(--w);padding:13px 14px;font-weight:800;border-radius:0;resize:vertical}.kktf-form button,.kktf-vote-options button{border:3px solid var(--b);background:var(--b);color:#fff;padding:12px 16px;font-weight:900;text-transform:uppercase;cursor:pointer;box-shadow:4px 4px 0 var(--p)}.kktf-card-black .kktf-form button{background:var(--y);color:var(--b);box-shadow:4px 4px 0 var(--p)}.kktf-form button:disabled{opacity:.45;cursor:not-allowed}.kktf-note,.kktf-empty{font-size:13px;font-weight:700;opacity:.75}.kktf-vote-options{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.kktf-vote-options span{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;text-align:center}.kktf-vote-options button{min-height:92px;background:var(--w);color:var(--b);font-family:Impact,"Arial Black",Arial,sans-serif;font-size:24px;line-height:1}.kktf-vote-result{margin-top:24px}.kktf-vote-bar{height:28px;border:3px solid var(--b);background:var(--w)}.kktf-vote-bar i{display:block;height:100%;width:50%;background:var(--y);transition:width .25s ease}.kktf-vote-result p{font-size:13px;font-weight:900}.kktf-count{font-size:14px}.kktf-chips{display:flex;flex-wrap:wrap;gap:7px}.kktf-chips span{display:inline-block;border:2px solid var(--b);padding:6px 8px;background:var(--y);font-size:12px;font-weight:800}.kktf-story{max-height:420px;overflow:auto;padding-right:8px;margin-bottom:18px}.kktf-story p{margin:0 0 12px;line-height:1.35}.kktf-story-starter{font-size:19px;font-weight:900;color:var(--y)}.kktf-card-black .kktf-form textarea{color:var(--b)}.kktf-yesterday{margin-top:18px;border-top:2px solid rgba(255,255,255,.35);padding-top:14px}.kktf-yesterday summary{cursor:pointer;font-size:12px;font-weight:900}.kktf-yesterday div{font-size:13px;opacity:.85}.kktf-funk-head{display:grid;grid-template-columns:1.6fr .7fr;gap:30px;align-items:end}.kktf-funk-head>p{font-weight:800}.kktf-funk-form{margin:18px 0 26px}.kktf-feed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kktf-msg{position:relative;border:3px solid var(--b);background:var(--w);padding:15px;min-height:130px}.kktf-msg:nth-child(3n+1){background:var(--y)}.kktf-msg:nth-child(3n+2){background:#ffd8eb}.kktf-msg>div{font-size:12px;font-weight:900}.kktf-msg time{float:right;font-weight:700;opacity:.6}.kktf-msg p{font-size:16px;line-height:1.3;margin:14px 0 22px;overflow-wrap:anywhere}.kktf-report{position:absolute;bottom:10px;right:10px;border:0;background:none;text-decoration:underline;font-size:9px;font-weight:900;cursor:pointer;opacity:.55}.kktf-footer{margin-top:32px;border-top:4px solid var(--b);padding-top:12px;font-size:10px;font-weight:900;letter-spacing:.08em;text-align:center}.kktf-app textarea:focus,.kktf-app input:focus,.kktf-app button:focus-visible{outline:4px solid #fff;outline-offset:3px}.kktf-card-white textarea:focus,.kktf-card-white input:focus,.kktf-card-white button:focus-visible,.kktf-card-yellow input:focus,.kktf-card-yellow button:focus-visible{outline-color:var(--p)}
@media(max-width:800px){.kktf-app{width:min(100% - 18px,700px);margin-top:18px}.kktf-hero{grid-template-columns:1fr;padding:22px;box-shadow:7px 7px 0 var(--b)}.kktf-hero h1{font-size:clamp(64px,23vw,110px)}.kktf-grid{grid-template-columns:1fr;gap:20px}.kktf-card-wide{grid-column:auto}.kktf-card{padding:22px;box-shadow:6px 6px 0 var(--b);transform:none!important}.kktf-form{flex-direction:column}.kktf-vote-options{grid-template-columns:1fr}.kktf-vote-options span{padding:2px}.kktf-funk-head{grid-template-columns:1fr}.kktf-feed{grid-template-columns:1fr}.kktf-msg{min-height:auto;padding-bottom:38px}}


/* 1.0.1 — mehr Luft auf Desktop + sichere Headlines */
.kktf-app{
  width:min(1440px,calc(100% - 34px));
}

/* 2.2.4 — SCHUBS: compositor-freundliche, framebasierte Bewegung */

.kktf-hero{
  grid-template-columns:minmax(0,2fr) minmax(190px,.55fr);
}

.kktf-hero h1{
  font-size:clamp(64px,7.2vw,126px);
  overflow-wrap:normal;
  word-break:normal;
}

.kktf-alias-box{
  min-width:0;
}

.kktf-alias-box strong{
  overflow-wrap:anywhere;
}

.kktf-card h2{
  font-size:clamp(34px,3.35vw,52px);
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:auto;
}

.kktf-word-sentence{
  font-size:clamp(30px,3.4vw,52px);
  overflow-wrap:break-word;
}

.kktf-vote-options button{
  font-size:clamp(18px,1.75vw,24px);
  overflow-wrap:anywhere;
}

.kktf-form > *{
  min-width:0;
}

.kktf-funk-head h2{
  max-width:900px;
}

@media (max-width:1050px){
  .kktf-app{width:min(100% - 24px,960px)}
  .kktf-hero{grid-template-columns:1fr}
  .kktf-alias-box{max-width:320px}
  .kktf-card h2{font-size:clamp(34px,5.2vw,48px)}
}

@media(max-width:800px){
  .kktf-app{width:min(100% - 18px,700px)}
  .kktf-hero h1{font-size:clamp(58px,20vw,96px)}
  .kktf-card h2{font-size:clamp(34px,11vw,50px)}
}

/* 1.0.2 — robuste Karten für schmale WordPress-Inhaltsbreiten */

.kktf-hero{
  grid-template-columns:minmax(0,1.65fr) minmax(170px,.55fr);
  gap:22px;
}

.kktf-hero h1{
  font-size:clamp(58px,6vw,94px) !important;
  line-height:.82;
  white-space:nowrap;
}

.kktf-alias-box{
  padding:16px;
}

.kktf-alias-box strong{
  font-size:clamp(22px,2vw,27px) !important;
  line-height:.95;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

.kktf-card{
  padding:24px;
}

.kktf-card h2{
  font-size:clamp(31px,2.65vw,42px) !important;
  line-height:.92;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

.kktf-card[data-module="who"] .kktf-who-prompt{
  font-size:clamp(29px,2.4vw,39px) !important;
  line-height:.94;
}

.kktf-word-sentence{
  font-size:clamp(29px,2.8vw,42px) !important;
}

/* In kleinen Karten: Formularteile lieber ordentlich untereinander
   statt Textfelder auf Briefmarkenbreite zu quetschen. */
.kktf-card:not(.kktf-card-wide) .kktf-form{
  flex-direction:column;
}

.kktf-card:not(.kktf-card-wide) .kktf-form button{
  width:100%;
  min-height:54px;
}

.kktf-card:not(.kktf-card-wide) .kktf-form input,
.kktf-card:not(.kktf-card-wide) .kktf-form textarea{
  min-height:58px;
}

/* ENTWEDER / ODER: ODER oben, zwei gleich große Antworten darunter. */
.kktf-vote-options{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:10px;
}

.kktf-vote-options > span{
  grid-column:1 / -1;
  grid-row:1;
  font-size:18px;
  padding:0 0 2px;
}

.kktf-vote-options > button:first-of-type{
  grid-column:1;
  grid-row:2;
}

.kktf-vote-options > button:last-of-type{
  grid-column:2;
  grid-row:2;
}

.kktf-vote-options button{
  min-width:0;
  min-height:78px;
  padding:10px 8px;
  font-size:clamp(17px,1.45vw,21px) !important;
  line-height:.95;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

/* Der 48H-Bereich darf mehr Raum für seine Headline nutzen. */
.kktf-card-wide h2{
  font-size:clamp(34px,3vw,50px) !important;
}

/* Bei mittleren Breiten lieber früher einspaltig als gequetscht. */
@media (max-width:900px){
  .kktf-grid{
    grid-template-columns:1fr;
  }
  .kktf-card-wide{
    grid-column:auto;
  }
  .kktf-hero{
    grid-template-columns:1fr;
  }
  .kktf-hero h1{
    white-space:normal;
  }
  .kktf-alias-box{
    max-width:300px;
  }
}

@media (max-width:520px){
  .kktf-card{
    padding:20px;
  }
  .kktf-card h2{
    font-size:clamp(30px,10vw,39px) !important;
  }
  .kktf-card[data-module="who"] .kktf-who-prompt{
    font-size:clamp(28px,9.5vw,37px) !important;
  }
  .kktf-vote-options{
    grid-template-columns:1fr !important;
  }
  .kktf-vote-options > span,
  .kktf-vote-options > button:first-of-type,
  .kktf-vote-options > button:last-of-type{
    grid-column:1;
  }
  .kktf-vote-options > span{grid-row:2}
  .kktf-vote-options > button:first-of-type{grid-row:1}
  .kktf-vote-options > button:last-of-type{grid-row:3}
}


/* 1.0.3 — echter Full-Bleed aus der schmalen WordPress-Inhaltsspalte */
.kktf-app{
  width:min(1280px,calc(100vw - 40px)) !important;
  max-width:none !important;
  position:relative;
  left:50%;
  transform:translateX(-50%);
  margin-top:40px;
  margin-bottom:80px;
}

/* Auf großen Screens etwas großzügigere Karten */
@media (min-width:1100px){
  .kktf-grid{
    gap:34px;
  }

  .kktf-card{
    padding:32px;
  }

  .kktf-hero{
    padding:42px;
    gap:34px;
  }

  .kktf-card h2{
    font-size:clamp(38px,3.15vw,54px) !important;
  }

  .kktf-card[data-module="who"] .kktf-who-prompt{
    font-size:clamp(36px,2.9vw,50px) !important;
  }

  .kktf-word-sentence{
    font-size:clamp(36px,3vw,52px) !important;
  }
}

/* Tablet/Handy wieder ganz normal innerhalb des Viewports */
@media (max-width:900px){
  .kktf-app{
    width:calc(100vw - 20px) !important;
    left:50%;
    transform:translateX(-50%);
    margin-top:18px;
  }
}


/* =========================================================================
   1.1.0 — echtes Zentrieren + KUKU SCHUBS!
   ========================================================================= */

/* Der Shortcode steckt in einer schmalen WP-Spalte.
   Diese Shell bricht sauber auf volle Viewportbreite aus. */
.kktf-shell{
  width:100vw;
  margin-left:calc(50% - 50vw);
  overflow-x:clip;
}

.kktf-shell .kktf-app{
  width:min(1280px,calc(100% - 40px)) !important;
  max-width:none !important;
  position:relative !important;
  left:auto !important;
  transform:none !important;
  margin:40px auto 80px !important;
}

/* --- GAME CARD --------------------------------------------------------- */
.kktf-card-game{
  background:var(--w);
  overflow:hidden;
}

.kktf-game-head{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr);
  gap:32px;
  align-items:end;
  margin-bottom:28px;
}

.kktf-game-head h2{
  margin-bottom:10px !important;
}

.kktf-game-head p{
  max-width:760px;
  font-size:17px;
  line-height:1.35;
  font-weight:750;
}

.kktf-game-meta{
  border:3px solid var(--b);
  padding:16px;
  background:var(--y);
  box-shadow:6px 6px 0 var(--p);
}

.kktf-game-meta strong{
  display:block;
  margin-bottom:12px;
  font-size:12px;
  letter-spacing:.06em;
}

.kktf-game-join,
.kktf-game-bump{
  width:100%;
  border:3px solid var(--b);
  border-radius:0;
  background:var(--b);
  color:#fff;
  padding:14px 16px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:25px;
  line-height:1;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:5px 5px 0 var(--p);
}

.kktf-game-join.is-joined{
  background:var(--p);
  color:var(--b);
}

.kktf-game-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 270px;
  gap:26px;
  align-items:start;
}

.kktf-game-stage{
  position:relative;
  width:100%;
  aspect-ratio:1.45 / 1;
  min-height:390px;
  overflow:hidden;
  border:4px solid var(--b);
  background:var(--b);
  touch-action:manipulation;
  user-select:none;
  cursor:crosshair;
}

.kktf-game-platform{
  position:absolute;
  inset:6%;
  border:5px solid var(--b);
  border-radius:50%;
  background:var(--y);
  box-shadow:
    inset 0 0 0 8px rgba(255,255,255,.45),
    0 0 0 5px var(--p);
}

.kktf-game-platform::before,
.kktf-game-platform::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}

.kktf-game-platform::before{
  inset:18%;
  border:2px dashed rgba(0,0,0,.25);
}

.kktf-game-platform::after{
  width:10px;
  height:10px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background:var(--p);
  border:2px solid var(--b);
}

.kktf-game-players{
  position:absolute;
  inset:0;
  z-index:5;
}

.kktf-game-player{
  --pc:#fffdf8;
  position:absolute;
  width:54px;
  height:54px;
  margin:-27px 0 0 -27px;
  border:4px solid var(--b);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--pc);
  box-shadow:4px 4px 0 var(--b);
  transition:left .78s linear, top .78s linear, opacity .15s ease, transform .15s ease;
  z-index:8;
}

.kktf-game-player.c0{--pc:#ff168f}
.kktf-game-player.c1{--pc:#ffd335}
.kktf-game-player.c2{--pc:#fffdf8}
.kktf-game-player.c3{--pc:#ff78bc}
.kktf-game-player.c4{--pc:#f3df93}
.kktf-game-player.c5{--pc:#ffffff}

.kktf-game-player b{
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:18px;
  line-height:1;
}

.kktf-game-player-name{
  position:absolute;
  left:50%;
  bottom:calc(100% + 5px);
  transform:translateX(-50%);
  max-width:110px;
  padding:2px 5px;
  border:2px solid var(--b);
  background:var(--w);
  font-size:9px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.kktf-game-player.is-me{
  outline:5px solid #fff;
  outline-offset:2px;
  z-index:12;
}

.kktf-game-player.is-me .kktf-game-player-name{
  background:var(--p);
}

.kktf-game-player.is-respawn{
  opacity:.28;
  transform:scale(.72);
}

.kktf-game-player em{
  position:absolute;
  font-style:normal;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:20px;
}

.kktf-game-empty{
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(-2deg);
  width:min(330px,70%);
  padding:14px;
  border:3px solid var(--b);
  background:var(--w);
  box-shadow:5px 5px 0 var(--p);
  text-align:center;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:24px;
  line-height:1;
}

.kktf-game-target{
  position:absolute;
  z-index:6;
  width:18px;
  height:18px;
  margin:-9px 0 0 -9px;
  border:3px solid var(--p);
  border-radius:50%;
  opacity:0;
  pointer-events:none;
}

.kktf-game-target.ping{
  animation:kktf-target .55s ease-out;
}

@keyframes kktf-target{
  0%{opacity:1;transform:scale(.5)}
  100%{opacity:0;transform:scale(2.5)}
}

.kktf-game-stage.is-bumping::after{
  content:"SCHUBS!";
  position:absolute;
  z-index:30;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(-6deg);
  padding:8px 14px;
  border:4px solid var(--b);
  background:var(--p);
  box-shadow:6px 6px 0 #fff;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(35px,7vw,80px);
  line-height:1;
  animation:kktf-bump .5s ease-out forwards;
  pointer-events:none;
}

@keyframes kktf-bump{
  0%{opacity:1;transform:translate(-50%,-50%) rotate(-6deg) scale(.65)}
  100%{opacity:0;transform:translate(-50%,-50%) rotate(4deg) scale(1.25)}
}

.kktf-game-side{
  position:sticky;
  top:16px;
  display:grid;
  gap:14px;
}

.kktf-game-how{
  margin:0;
  padding:14px;
  border:3px solid var(--b);
  background:var(--y);
  font-size:13px;
  line-height:1.5;
  font-weight:800;
}

.kktf-game-bump{
  min-height:92px;
  background:var(--p);
  color:var(--b);
  font-size:38px;
}

.kktf-game-bump:disabled{
  opacity:.38;
  cursor:not-allowed;
}

.kktf-game-feedback{
  min-height:44px;
  margin:0;
  font-size:12px;
  line-height:1.3;
  font-weight:850;
}

.kktf-game-score{
  border-top:4px solid var(--b);
  padding-top:12px;
}

.kktf-game-score ol{
  list-style:none;
  padding:0;
  margin:8px 0 0;
}

.kktf-game-score li{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  padding:7px 8px;
  border-bottom:2px solid var(--b);
  font-size:12px;
  font-weight:800;
}

.kktf-game-score li.is-me{
  background:var(--y);
}

.kktf-game-score li strong{
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:20px;
}

@media(max-width:900px){
  .kktf-shell .kktf-app{
    width:calc(100% - 20px) !important;
    margin:18px auto 50px !important;
  }

  .kktf-game-head{
    grid-template-columns:1fr;
    gap:14px;
  }

  .kktf-game-layout{
    grid-template-columns:1fr;
    gap:14px;
  }

  .kktf-game-stage{
    aspect-ratio:1 / 1;
    min-height:0;
  }

  .kktf-game-side{
    position:static;
    grid-template-columns:1fr 1fr;
  }

  .kktf-game-how,
  .kktf-game-score{
    grid-column:1 / -1;
  }

  .kktf-game-bump{
    grid-column:1 / -1;
    position:sticky;
    bottom:10px;
    z-index:40;
  }

  .kktf-game-player{
    width:46px;
    height:46px;
    margin:-23px 0 0 -23px;
  }

  .kktf-game-player-name{
    max-width:84px;
    font-size:8px;
  }
}

@media(max-width:520px){
  .kktf-game-head p{
    font-size:15px;
  }

  .kktf-game-stage{
    border-width:3px;
  }

  .kktf-game-player{
    width:42px;
    height:42px;
    margin:-21px 0 0 -21px;
    border-width:3px;
  }

  .kktf-game-player b{
    font-size:15px;
  }

  .kktf-game-bump{
    min-height:78px;
    font-size:32px;
  }
}


/* =========================================================================
   1.1.1 — Breiten-Fix
   Die Shell aus 1.1.0 war im WordPress-Content-Container wieder begrenzt.
   Zurück zur bewährten direkten Full-Bleed-App aus 1.0.3.
   ========================================================================= */

.kktf-shell{
  display:contents !important;
}

.kktf-app{
  width:min(1280px,calc(100vw - 40px)) !important;
  max-width:none !important;
  position:relative !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  margin-top:40px !important;
  margin-bottom:80px !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

@media(max-width:900px){
  .kktf-app{
    width:calc(100vw - 20px) !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    margin-top:18px !important;
    margin-bottom:50px !important;
  }
}


/* =========================================================================
   1.2.0 — SCHUBS 2.0
   ========================================================================= */

/* Arena ist auf JEDEM Gerät geometrisch identisch: immer quadratisch,
   Plattform dadurch immer ein echter Kreis. */
.kktf-game-stage{
  width:min(100%,760px) !important;
  aspect-ratio:1 / 1 !important;
  min-height:0 !important;
  margin-inline:auto;
}

.kktf-game-platform{
  inset:7% !important;
  border-radius:50% !important;
}

/* Boost-Layer */
.kktf-game-boosts{
  position:absolute;
  inset:0;
  z-index:7;
  pointer-events:none;
}

.kktf-game-boost{
  position:absolute;
  width:62px;
  height:62px;
  margin:-31px 0 0 -31px;
  display:grid;
  place-items:center;
  border:4px solid var(--b);
  border-radius:50%;
  background:var(--w);
  box-shadow:5px 5px 0 var(--p);
  transform:rotate(-4deg);
  animation:kktf-boost-pop .35s ease-out, kktf-boost-float 1.3s ease-in-out infinite alternate .35s;
}

.kktf-game-boost b{
  font-size:26px;
  line-height:1;
}

.kktf-game-boost span{
  position:absolute;
  top:calc(100% + 4px);
  left:50%;
  transform:translateX(-50%);
  padding:3px 6px;
  border:2px solid var(--b);
  background:var(--w);
  font-size:9px;
  line-height:1;
  font-weight:950;
  white-space:nowrap;
}

.kktf-game-boost.is-wumms{background:var(--p)}
.kktf-game-boost.is-turbo{background:var(--y)}
.kktf-game-boost.is-shield{background:#fff}
.kktf-game-boost.is-kuku{
  width:72px;height:72px;margin:-36px 0 0 -36px;
  background:var(--y);
  box-shadow:7px 7px 0 var(--p);
  animation:kktf-boost-pop .35s ease-out, kktf-kuku-boost .7s ease-in-out infinite alternate .35s;
}

@keyframes kktf-boost-pop{
  0%{transform:scale(.2) rotate(-15deg);opacity:0}
  100%{transform:scale(1) rotate(-4deg);opacity:1}
}
@keyframes kktf-boost-float{
  from{transform:translateY(-3px) rotate(-4deg)}
  to{transform:translateY(4px) rotate(3deg)}
}
@keyframes kktf-kuku-boost{
  from{transform:scale(.95) rotate(-5deg)}
  to{transform:scale(1.08) rotate(5deg)}
}

/* Spielerzustände sichtbar machen */
.kktf-game-player.has-shield{
  outline:5px solid #fff;
  box-shadow:0 0 0 5px var(--b),4px 4px 0 var(--b);
}
.kktf-game-player.has-turbo{
  animation:kktf-turbo-player .22s linear infinite alternate;
}
.kktf-game-player.has-wumms::after{
  content:"💥";
  position:absolute;
  right:-14px;
  top:-16px;
  font-size:20px;
}
.kktf-game-player.has-kuku::after{
  content:"🐓";
  position:absolute;
  right:-15px;
  top:-18px;
  font-size:23px;
  animation:kktf-kuku-icon .35s ease-in-out infinite alternate;
}
@keyframes kktf-turbo-player{
  from{box-shadow:2px 2px 0 var(--b)}
  to{box-shadow:8px 8px 0 var(--p)}
}
@keyframes kktf-kuku-icon{
  from{transform:rotate(-12deg) scale(.9)}
  to{transform:rotate(12deg) scale(1.15)}
}

/* Eigene Bewegung fühlt sich sofort an. */
.kktf-game-player.is-local-moving{
  transition:left .28s ease-out,top .28s ease-out !important;
}

/* Auf Desktop bleibt rechts genug Platz für Steuerung, Arena aber quadratisch. */
@media(min-width:901px){
  .kktf-game-layout{
    grid-template-columns:minmax(0,1fr) 270px;
  }
}

/* Mobile: echtes Quadrat, kein Stretching. */
@media(max-width:900px){
  .kktf-game-stage{
    width:100% !important;
    aspect-ratio:1 / 1 !important;
  }
  .kktf-game-boost{
    width:54px;height:54px;margin:-27px 0 0 -27px;
  }
  .kktf-game-boost.is-kuku{
    width:62px;height:62px;margin:-31px 0 0 -31px;
  }
}


/* =========================================================================
   1.2.1 — Joystick-Steuerung
   ========================================================================= */

.kktf-game-controls{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}

.kktf-joystick{
  display:grid;
  justify-items:center;
  gap:7px;
  padding:12px;
  border:3px solid var(--b);
  background:var(--w);
}

.kktf-joystick span{
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
}

.kktf-joystick-base{
  position:relative;
  width:128px;
  height:128px;
  border:4px solid var(--b);
  border-radius:50%;
  background:var(--y);
  box-shadow:5px 5px 0 var(--p);
  touch-action:none;
  user-select:none;
}

.kktf-joystick-base::before,
.kktf-joystick-base::after{
  content:"";
  position:absolute;
  opacity:.18;
  background:var(--b);
}

.kktf-joystick-base::before{
  width:3px;
  top:8px;
  bottom:8px;
  left:50%;
  transform:translateX(-50%);
}

.kktf-joystick-base::after{
  height:3px;
  left:8px;
  right:8px;
  top:50%;
  transform:translateY(-50%);
}

.kktf-joystick-stick{
  position:absolute;
  left:50%;
  top:50%;
  width:54px;
  height:54px;
  margin:-27px 0 0 -27px;
  border:4px solid var(--b);
  border-radius:50%;
  background:var(--p);
  box-shadow:3px 3px 0 var(--b);
  transform:translate(0,0);
  transition:transform .05s linear;
  pointer-events:none;
}

/* Tipp-Ziel wird nicht mehr gebraucht */
.kktf-game-target{
  display:none !important;
}

.kktf-game-stage{
  cursor:default !important;
}

/* Keine "teleportartige" lokale Bewegung mehr */
.kktf-game-player,
.kktf-game-player.is-local-moving{
  transition:left .42s linear, top .42s linear, opacity .15s ease, transform .15s ease !important;
}

@media(max-width:900px){
  .kktf-game-side{
    grid-template-columns:1fr;
  }

  .kktf-game-how,
  .kktf-game-score,
  .kktf-game-controls{
    grid-column:1;
  }

  .kktf-game-controls{
    grid-template-columns:minmax(150px,1fr) minmax(150px,1fr);
    align-items:center;
  }

  .kktf-game-bump{
    position:static !important;
    min-height:128px;
  }

  .kktf-joystick-base{
    width:118px;
    height:118px;
  }
}

@media(max-width:430px){
  .kktf-game-controls{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .kktf-joystick{
    padding:9px;
  }

  .kktf-joystick-base{
    width:104px;
    height:104px;
  }

  .kktf-game-bump{
    min-height:104px;
    font-size:28px;
  }
}


/* =========================================================================
   1.2.2 — Controls wie ein echtes Handyspiel
   ========================================================================= */

.kktf-desktop-hint{
  display:block;
  margin-top:8px;
  padding-top:8px;
  border-top:2px solid var(--b);
  font-size:11px;
  line-height:1.25;
  font-weight:950;
}

/* Joystick + Schubs als bewusstes Paar */
.kktf-game-controls{
  display:grid;
  grid-template-columns:128px 128px;
  justify-content:center;
  align-items:center;
  gap:18px;
}

.kktf-joystick{
  width:128px;
  min-width:128px;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}

.kktf-joystick-base{
  width:128px !important;
  height:128px !important;
}

.kktf-joystick > span{
  margin-top:7px;
}

.kktf-game-bump{
  width:128px !important;
  height:128px !important;
  min-height:128px !important;
  padding:8px !important;
  display:grid;
  place-items:center;
  font-family:Impact,"Arial Black",Arial,sans-serif !important;
  font-size:34px !important;
  line-height:.82 !important;
  font-weight:900 !important;
  letter-spacing:-.025em;
  text-align:center;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
}

.kktf-game-bump.is-pressed{
  transform:translate(4px,4px);
  box-shadow:1px 1px 0 var(--b) !important;
}

/* Mobile:
   Arena
   -> direkt Controls nebeneinander
   -> SO GEHT'S
   -> Feedback
   -> Rangliste
*/
@media(max-width:900px){
  .kktf-game-side{
    display:flex !important;
    flex-direction:column;
    gap:14px;
  }

  .kktf-game-controls{
    order:1;
    width:100%;
    grid-template-columns:128px 128px;
    justify-content:center;
    gap:18px;
  }

  .kktf-game-how{
    order:2;
  }

  .kktf-game-feedback{
    order:3;
  }

  .kktf-game-score{
    order:4;
  }

  .kktf-game-bump{
    position:static !important;
    bottom:auto !important;
    z-index:auto !important;
  }
}

@media(max-width:430px){
  .kktf-game-controls{
    grid-template-columns:112px 112px;
    gap:14px;
  }

  .kktf-joystick{
    width:112px;
    min-width:112px;
  }

  .kktf-joystick-base{
    width:112px !important;
    height:112px !important;
  }

  .kktf-game-bump{
    width:112px !important;
    height:112px !important;
    min-height:112px !important;
    font-size:31px !important;
  }
}


/* =========================================================================
   1.2.4 — Mobile Controls garantiert nebeneinander
   ========================================================================= */

@media(max-width:900px){

  /* Reihenfolge unter der Arena:
     1) Steuerung
     2) So geht's
     3) Feedback
     4) Rangliste */
  .kktf-game-side{
    display:flex !important;
    flex-direction:column !important;
    gap:14px !important;
    width:100% !important;
    min-width:0 !important;
  }

  .kktf-game-controls{
    order:1 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:12px !important;
    width:100% !important;
    min-width:0 !important;
    align-items:start !important;
    justify-content:stretch !important;
  }

  .kktf-game-how{order:2 !important;}
  .kktf-game-feedback{order:3 !important;}
  .kktf-game-score{order:4 !important;}

  /* Beide Hälften dürfen niemals wegen alter fixer Breiten umbrechen. */
  .kktf-joystick{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:transparent !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
  }

  .kktf-joystick-base{
    width:min(100%,140px) !important;
    height:auto !important;
    aspect-ratio:1 / 1 !important;
    flex:none !important;
  }

  .kktf-game-bump{
    width:min(100%,140px) !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:1 / 1 !important;
    max-width:140px !important;
    justify-self:center !important;
    align-self:start !important;
    position:static !important;
    padding:6px !important;
    font-size:clamp(29px,8vw,40px) !important;
    line-height:.8 !important;
    font-weight:900 !important;
    letter-spacing:-.035em !important;
    white-space:normal !important;
    touch-action:none !important;
  }
}

/* Auch auf sehr schmalen Handys bleiben beide nebeneinander.
   Sie werden einfach gemeinsam kleiner. */
@media(max-width:430px){
  .kktf-game-controls{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:10px !important;
  }

  .kktf-joystick-base,
  .kktf-game-bump{
    width:min(100%,122px) !important;
    max-width:122px !important;
  }

  .kktf-game-bump{
    font-size:clamp(27px,8vw,34px) !important;
  }

  .kktf-joystick > span{
    font-size:9px !important;
  }
}

@media(max-width:340px){
  .kktf-game-controls{
    gap:8px !important;
  }

  .kktf-joystick-base,
  .kktf-game-bump{
    width:min(100%,106px) !important;
    max-width:106px !important;
  }
}


/* =========================================================================
   1.2.6 — feste Game-Struktur + Knockout-Feier
   ========================================================================= */

/* Arena + Controls sind jetzt EIN zusammengehöriger Block.
   Damit kann WordPress die Controls nicht mehr hinter die Anleitung schieben. */
.kktf-game-main{
  min-width:0;
  width:100%;
}

.kktf-game-main .kktf-game-stage{
  margin-inline:auto !important;
}

/* Wichtig: echtes flex-row nowrap statt weiterer Grid-Versuche. */
.kktf-game-main .kktf-game-controls{
  --kktf-control-size:140px;
  display:flex !important;
  flex-flow:row nowrap !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:18px !important;
  width:100% !important;
  min-width:0 !important;
  margin:22px auto 0 !important;
}

.kktf-game-main .kktf-joystick{
  flex:0 0 var(--kktf-control-size) !important;
  width:var(--kktf-control-size) !important;
  min-width:var(--kktf-control-size) !important;
  max-width:var(--kktf-control-size) !important;
  margin:0 !important;
  padding:0 !important;
}

.kktf-game-main .kktf-joystick-base{
  width:var(--kktf-control-size) !important;
  height:var(--kktf-control-size) !important;
  aspect-ratio:1 / 1 !important;
}

.kktf-game-main .kktf-game-bump{
  flex:0 0 var(--kktf-control-size) !important;
  width:var(--kktf-control-size) !important;
  min-width:var(--kktf-control-size) !important;
  max-width:var(--kktf-control-size) !important;
  height:var(--kktf-control-size) !important;
  min-height:var(--kktf-control-size) !important;
  max-height:var(--kktf-control-size) !important;
  aspect-ratio:1 / 1 !important;
  margin:0 !important;
  font-size:40px !important;
  line-height:.78 !important;
  font-weight:950 !important;
}

/* Desktop: Game links, Anleitung/Rangliste rechts. */
.kktf-game-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 270px !important;
  gap:26px !important;
  align-items:start !important;
}

/* Knockout-Belohnung für den Schubsenden */
.kktf-game-celebrate{
  position:absolute;
  z-index:100;
  left:50%;
  top:48%;
  width:min(410px,82%);
  height:150px;
  transform:translate(-50%,-50%);
  pointer-events:none;
  display:grid;
  place-items:center;
  animation:kktf-kiss-main 1.1s ease-out forwards;
}

.kktf-game-celebrate strong{
  position:relative;
  z-index:3;
  padding:12px 18px;
  border:4px solid var(--b);
  background:var(--p);
  color:var(--b);
  box-shadow:7px 7px 0 #fff;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(31px,5vw,62px);
  line-height:.9;
  white-space:nowrap;
  transform:rotate(-4deg);
}

.kktf-game-celebrate i{
  position:absolute;
  z-index:2;
  color:var(--p);
  -webkit-text-stroke:2px var(--b);
  font-style:normal;
  font-size:40px;
  line-height:1;
  animation:kktf-heart-pop .9s ease-out forwards;
}

.kktf-game-celebrate .h1{left:7%;top:44%;--x:-65px;--y:-55px}
.kktf-game-celebrate .h2{left:24%;top:8%;--x:-35px;--y:-75px}
.kktf-game-celebrate .h3{right:26%;top:5%;--x:30px;--y:-75px}
.kktf-game-celebrate .h4{right:7%;top:43%;--x:65px;--y:-50px}
.kktf-game-celebrate .h5{left:48%;bottom:0;--x:0px;--y:55px}

@keyframes kktf-kiss-main{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(-8deg)}
  18%{opacity:1;transform:translate(-50%,-50%) scale(1.12) rotate(3deg)}
  65%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-2deg)}
  100%{opacity:0;transform:translate(-50%,-58%) scale(1.08) rotate(2deg)}
}

@keyframes kktf-heart-pop{
  0%{opacity:0;transform:translate(0,0) scale(.2) rotate(-10deg)}
  25%{opacity:1;transform:translate(0,0) scale(1.15) rotate(7deg)}
  100%{opacity:0;transform:translate(var(--x),var(--y)) scale(.7) rotate(22deg)}
}

/* MOBILE:
   1. Arena
   2. Joystick + SCHUBS direkt nebeneinander
   3. Anleitung / Feedback / Rangliste
*/
@media(max-width:900px){
  .kktf-game-layout{
    display:flex !important;
    flex-direction:column !important;
    gap:16px !important;
  }

  .kktf-game-main{
    order:1 !important;
  }

  .kktf-game-side{
    order:2 !important;
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
  }

  .kktf-game-main .kktf-game-controls{
    --kktf-control-size:clamp(104px,34vw,140px);
    display:flex !important;
    flex-flow:row nowrap !important;
    justify-content:center !important;
    gap:12px !important;
    margin-top:14px !important;
  }

  .kktf-game-main .kktf-joystick,
  .kktf-game-main .kktf-game-bump{
    flex-shrink:0 !important;
  }

  .kktf-game-main .kktf-game-bump{
    font-size:clamp(31px,9vw,40px) !important;
  }
}

@media(max-width:360px){
  .kktf-game-main .kktf-game-controls{
    --kktf-control-size:clamp(96px,32vw,114px);
    gap:8px !important;
  }
}


/* 1.2.7 — echter Respawn:
   Rausgeworfene Figur bleibt während der Pause wirklich weg. */
.kktf-game-player.is-respawn{
  opacity:0 !important;
  transform:scale(.25) !important;
  pointer-events:none !important;
  visibility:hidden !important;
}



/* =========================================================================
   1.2.8 — Mobile Joystick darf NIEMALS die Seite scrollen
   ========================================================================= */

.kktf-game-controls,
.kktf-game-controls *,
.kktf-joystick,
.kktf-joystick *,
.kktf-joystick-base,
.kktf-joystick-stick,
.kktf-game-bump{
  touch-action:none !important;
  -ms-touch-action:none !important;
  overscroll-behavior:none !important;
  -webkit-user-select:none !important;
  user-select:none !important;
  -webkit-touch-callout:none !important;
}

/* Während ein Joystick-Finger aktiv ist, soll auch kein übergeordneter
   Scroll-Container die Bewegung übernehmen. */
html.kktf-joystick-active,
html.kktf-joystick-active body{
  overscroll-behavior:none !important;
}

/* kleines visuelles Feedback: Stick wird gerade gehalten */
.kktf-joystick.is-active .kktf-joystick-base{
  box-shadow:2px 2px 0 var(--p) !important;
}

.kktf-joystick.is-active .kktf-joystick-stick{
  box-shadow:5px 5px 0 var(--b) !important;
}



/* =========================================================================
   1.4.1 — DIE KETTE: private Empfehlung von Mensch zu Mensch
   ========================================================================= */

.kktf-card-reco{background:var(--y);overflow:hidden}
.kktf-reco-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:start;margin-bottom:22px}
.kktf-reco-head h2{max-width:850px}
.kktf-reco-counter{min-width:150px;padding:12px 14px;border:3px solid var(--b);background:var(--p);box-shadow:5px 5px 0 var(--b);text-align:center;transform:rotate(1deg)}
.kktf-reco-counter strong{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:46px;line-height:.85}
.kktf-reco-counter span{display:block;margin-top:6px;font-size:9px;font-weight:950;letter-spacing:.08em}
.kktf-reco-body{border:4px solid var(--b);background:var(--w);box-shadow:8px 8px 0 var(--p);padding:20px}
.kktf-reco-view[hidden],.kktf-reco-form[hidden]{display:none!important}
.kktf-reco-big{margin:0 0 8px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(28px,3.2vw,48px);line-height:.92}
.kktf-reco-view p:not(.kktf-reco-big):not(.kktf-reco-private){font-weight:800}
.kktf-reco-view-available{display:grid;grid-template-columns:90px minmax(0,1fr);gap:18px;align-items:center}
.kktf-reco-sealed{width:80px;height:80px;display:grid;place-items:center;border:3px solid var(--b);background:var(--p);box-shadow:5px 5px 0 var(--b);font-size:40px;transform:rotate(-4deg)}
.kktf-reco-claim,.kktf-reco-skip,.kktf-reco-form button{border:3px solid var(--b);border-radius:0;background:var(--b);color:#fff;padding:11px 15px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;cursor:pointer;box-shadow:5px 5px 0 var(--p)}
.kktf-reco-private{display:inline-block;margin:0 0 9px;padding:6px 9px;border:2px solid var(--b);background:var(--p);font-size:10px;font-weight:950;letter-spacing:.1em;transform:rotate(-1deg)}
.kktf-reco-letter{margin:0;padding:20px;border:4px solid var(--b);background:#fffdf8;box-shadow:7px 7px 0 var(--y);transform:rotate(-.5deg)}
.kktf-reco-letter-category{font-size:11px;font-weight:950;letter-spacing:.07em}
.kktf-reco-letter-text{margin:14px 0;padding:0;border:0;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(30px,4vw,56px);line-height:.95;overflow-wrap:anywhere}
.kktf-reco-letter-from{font-size:10px;font-weight:900;opacity:.7}
.kktf-reco-rule{margin-top:20px;padding:15px;border:3px solid var(--b);background:var(--p)}
.kktf-reco-rule strong,.kktf-reco-rule span{display:block}
.kktf-reco-rule strong{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:20px;line-height:1}
.kktf-reco-rule span{margin-top:7px;font-size:12px;font-weight:800}
.kktf-reco-skip{margin-top:14px;background:var(--w);color:var(--b);font-family:Arial,sans-serif;font-size:10px;font-weight:950;box-shadow:none}
.kktf-reco-report{margin:14px 0 0 10px;border:0;background:transparent;text-decoration:underline;font-size:9px;font-weight:900;cursor:pointer;opacity:.55}
.kktf-reco-form{margin-top:22px;padding-top:20px;border-top:3px dashed var(--b)}
.kktf-reco-categories{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 12px}
.kktf-reco-categories button{border:2px solid var(--b);background:var(--w);padding:8px 9px;font:inherit;font-size:10px;font-weight:950;cursor:pointer;box-shadow:2px 2px 0 var(--b)}
.kktf-reco-categories button.is-active{background:var(--p);transform:translate(2px,2px);box-shadow:none}
.kktf-reco-input{width:100%;min-height:78px;border:3px solid var(--b);border-radius:0;padding:12px 14px;resize:vertical;font:inherit;font-size:17px;font-weight:800}
.kktf-reco-form-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:10px}
.kktf-reco-form-bottom small{font-size:9px;font-weight:900}
.kktf-reco-foot{margin:18px 0 0;font-size:10px;font-weight:850;opacity:.75}

@media(max-width:800px){
  .kktf-reco-head{grid-template-columns:1fr}
  .kktf-reco-counter{justify-self:start}
  .kktf-reco-view-available{grid-template-columns:58px minmax(0,1fr)}
  .kktf-reco-sealed{width:54px;height:54px;font-size:27px}
  .kktf-reco-form-bottom{flex-direction:column;align-items:stretch}
  .kktf-reco-form-bottom button,.kktf-reco-claim{width:100%}
  .kktf-reco-skip{width:100%;margin-right:0}
  .kktf-reco-report{display:block;margin:12px 0 0}
}


/* 1.4.2 — Kategorie-Buttons: Theme darf die Beschriftung nicht weiß färben */
.kktf-app .kktf-reco-categories button,
.kktf-app .kktf-reco-categories button:visited,
.kktf-app .kktf-reco-categories button:hover,
.kktf-app .kktf-reco-categories button:focus,
.kktf-app .kktf-reco-categories button:active{
  color:var(--b) !important;
  -webkit-text-fill-color:var(--b) !important;
  opacity:1 !important;
  font-size:11px;
  line-height:1.1;
}

.kktf-app .kktf-reco-categories button.is-active,
.kktf-app .kktf-reco-categories button.is-active:hover,
.kktf-app .kktf-reco-categories button.is-active:focus{
  color:var(--b) !important;
  -webkit-text-fill-color:var(--b) !important;
}


/* =========================================================================
   1.5.0 — HEUTE / MACH DOCH / POLNISCH / WOCHENBLATT
   ========================================================================= */

/* HEUTE */
.kktf-card-mood{background:var(--w)}
.kktf-mood-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}
.kktf-mood-head>div>p:last-child{max-width:820px;font-weight:750}
.kktf-mood-count{min-width:145px;border:3px solid var(--b);background:var(--y);box-shadow:5px 5px 0 var(--p);padding:13px;text-align:center}
.kktf-mood-count strong{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:48px;line-height:.8}
.kktf-mood-count span{display:block;margin-top:8px;font-size:9px;font-weight:950;letter-spacing:.08em}
.kktf-mood-form{margin-top:22px;display:grid;gap:23px}
.kktf-mood-question{position:relative;padding:16px;border:3px solid var(--b);background:#fff}
.kktf-mood-question>strong{display:block;margin-bottom:12px;font-size:12px;font-weight:950;letter-spacing:.07em}
.kktf-mood-labels{display:flex;justify-content:space-between;margin-bottom:2px;font-size:10px;font-weight:950}
.kktf-mood-question input[type=range]{width:100%;accent-color:var(--p);cursor:pointer}
.kktf-mood-question input[type=range]:disabled{opacity:.35}
.kktf-mood-cloud{position:relative;height:48px;margin-top:8px;border-top:3px solid var(--b);border-bottom:1px solid rgba(0,0,0,.2);overflow:hidden}
.kktf-mood-axis{position:absolute;left:0;right:0;top:22px;height:2px;background:rgba(0,0,0,.25)}
.kktf-mood-dot{position:absolute;width:7px;height:7px;margin-left:-3px;border:1px solid var(--b);border-radius:50%;background:var(--y);transform:translateY(-50%)}
.kktf-mood-dot.is-me{width:14px;height:14px;margin-left:-7px;background:var(--p);border:3px solid var(--b);z-index:3}
.kktf-mood-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px}
.kktf-mood-note{margin:0;font-size:11px;font-weight:850}
.kktf-mood-bottom button{border:3px solid var(--b);background:var(--b);color:#fff;padding:12px 18px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;box-shadow:5px 5px 0 var(--p);cursor:pointer}
.kktf-mood-bottom button:disabled{opacity:.55}

/* MACH DOCH */
.kktf-card-ideas{background:var(--p)}
.kktf-ideas-head{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:24px;align-items:start}
.kktf-ideas-head>div>p:last-child{max-width:850px;font-weight:800}
.kktf-bar-hint{border:3px solid var(--b);background:var(--y);box-shadow:6px 6px 0 var(--b);padding:15px;transform:rotate(1deg)}
.kktf-bar-hint>strong,.kktf-bar-hint>span{display:block}
.kktf-bar-hint>strong{margin-top:8px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;line-height:.95}
.kktf-bar-hint>span{margin-top:7px;font-size:10px;font-weight:950}
.kktf-idea-form{display:grid;grid-template-columns:230px minmax(0,1fr) auto;gap:10px;margin:22px 0}
.kktf-idea-form select,.kktf-idea-form textarea,.kktf-idea-form button{border:3px solid var(--b);border-radius:0;padding:12px;font:inherit;font-weight:900}
.kktf-idea-form textarea{min-height:68px;resize:vertical;background:var(--w)}
.kktf-idea-form select{background:var(--y);color:var(--b)}
.kktf-idea-form button{background:var(--b);color:#fff;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:20px;box-shadow:5px 5px 0 var(--y);cursor:pointer}
.kktf-idea-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kktf-idea{border:3px solid var(--b);background:var(--w);padding:14px;box-shadow:4px 4px 0 var(--b)}
.kktf-idea:nth-child(3n+2){background:var(--y);transform:rotate(.25deg)}
.kktf-idea-top{display:flex;justify-content:space-between;gap:8px;align-items:start}
.kktf-idea-kind,.kktf-idea-status{font-size:9px;font-weight:950;letter-spacing:.06em}
.kktf-idea-status{padding:4px 6px;border:2px solid var(--b);background:var(--p)}
.kktf-idea-status.is-planning,.kktf-idea-status.is-scheduled{background:var(--y)}
.kktf-idea>p{font-size:18px;line-height:1.2;font-weight:900;overflow-wrap:anywhere}
.kktf-idea-actions{display:flex;flex-wrap:wrap;gap:7px}
.kktf-idea-actions button{border:2px solid var(--b);background:var(--w);color:var(--b)!important;-webkit-text-fill-color:var(--b)!important;padding:7px 8px;font-size:9px;font-weight:950;cursor:pointer}
.kktf-idea-actions button:disabled{background:#ddd;opacity:.75}
.kktf-idea-actions .kktf-idea-report{border:0;background:transparent;text-decoration:underline;opacity:.55}
.kktf-idea-foot{margin:17px 0 0;font-size:10px;font-weight:850}

/* POLNISCH */
.kktf-card-polish{background:var(--w)}
.kktf-polish-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.kktf-polish-head>div>p:last-child{max-width:800px;font-weight:800}
.kktf-polish-start,.kktf-polish-more{border:3px solid var(--b);background:var(--p);color:var(--b)!important;-webkit-text-fill-color:var(--b)!important;padding:13px 17px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;box-shadow:5px 5px 0 var(--b);cursor:pointer}
.kktf-polish-trainer{margin-top:22px}
.kktf-polish-progress{position:relative;height:28px;border:3px solid var(--b);background:var(--w);overflow:hidden}
.kktf-polish-progress i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--y);transition:width .25s}
.kktf-polish-progress span{position:relative;z-index:2;display:block;padding:5px 8px;font-size:9px;font-weight:950}
.kktf-polish-card{margin-top:12px;border:4px solid var(--b);background:var(--y);padding:22px;box-shadow:7px 7px 0 var(--p)}
.kktf-polish-question{margin:0;font-size:12px;font-weight:950}
.kktf-polish-de,.kktf-polish-pl{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(36px,5vw,72px);line-height:.9;margin:10px 0 18px}
.kktf-polish-pl{color:var(--p);-webkit-text-stroke:1px var(--b)}
.kktf-polish-reveal{border:3px solid var(--b);background:var(--b);color:#fff;padding:11px 15px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;cursor:pointer}
.kktf-polish-answer{border-top:3px dashed var(--b);padding-top:15px}
.kktf-polish-answer>p{font-size:14px;font-weight:800}
.kktf-polish-answer>p span{font-size:9px;letter-spacing:.07em}
.kktf-polish-answer>small{display:block;margin:8px 0 16px;font-size:10px;font-weight:750}
.kktf-polish-rate{display:flex;gap:10px}
.kktf-polish-rate button{flex:1;border:3px solid var(--b);padding:11px;background:var(--w);color:var(--b)!important;-webkit-text-fill-color:var(--b)!important;font-weight:950;cursor:pointer}
.kktf-polish-rate button:last-child{background:var(--p)}
.kktf-polish-done{margin-top:12px;border:4px solid var(--b);background:var(--p);padding:22px;box-shadow:7px 7px 0 var(--b)}
.kktf-polish-done-big{margin:0;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:50px}
.kktf-polish-local{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:10px;font-weight:850}
.kktf-polish-reset{border:0;background:transparent;text-decoration:underline;font-size:9px;font-weight:900;cursor:pointer}

/* WOCHENBLATT */
.kktf-card-paper{background:var(--w);box-shadow:9px 9px 0 var(--p)}
.kktf-paper-mast{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start;border-bottom:7px solid var(--b);padding-bottom:14px}
.kktf-paper-date{min-width:150px;text-align:right}
.kktf-paper-date strong{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:34px}
.kktf-paper-date span{font-size:10px;font-weight:950}
.kktf-paper-mode{font-size:9px;font-weight:950;letter-spacing:.09em}
.kktf-paper-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.kktf-paper-numbers article{border:3px solid var(--b);padding:12px;background:var(--y)}
.kktf-paper-numbers article:nth-child(even){background:var(--p)}
.kktf-paper-numbers strong{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:40px;line-height:.85}
.kktf-paper-numbers span{display:block;margin-top:7px;font-size:8px;font-weight:950}
.kktf-paper-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.kktf-paper-mood,.kktf-paper-vote{border:3px solid var(--b);padding:15px}
.kktf-paper-meter{position:relative;display:grid;grid-template-columns:95px 1fr 42px;gap:8px;align-items:center;margin:9px 0;font-size:9px;font-weight:950}
.kktf-paper-meter:after{content:"";grid-column:2;grid-row:1;height:16px;border:2px solid var(--b);background:var(--w)}
.kktf-paper-meter i{grid-column:2;grid-row:1;height:12px;margin-left:2px;background:var(--p);z-index:2}
.kktf-paper-meter b{text-align:right}
.kktf-paper-vote-big{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:26px;line-height:.95;margin:0}
.kktf-paper-vote-big span{font-size:14px}
.kktf-paper-featured{margin-top:16px;padding-top:14px;border-top:3px dashed var(--b)}
.kktf-paper-featured>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kktf-paper-featured article{border:3px solid var(--b);padding:12px;background:#fff}
.kktf-paper-featured p{font-weight:900}
.kktf-paper-featured small{font-size:9px;font-weight:850}
.kktf-paper-foot{margin:16px 0 0;font-size:9px;font-weight:850;opacity:.7}

/* Datenschutz-Fußnote */
.kktf-privacy{margin-top:10px;text-align:left;border-top:1px solid rgba(0,0,0,.25);padding-top:8px}
.kktf-privacy summary{cursor:pointer;text-align:center}
.kktf-privacy p{max-width:950px;margin:10px auto 0;line-height:1.45;letter-spacing:0;text-transform:none;font-weight:700}

/* Widerstand gegen globale Theme-Farben */
.kktf-app .kktf-idea-form button,
.kktf-app .kktf-mood-bottom button,
.kktf-app .kktf-polish-reveal{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

@media(max-width:900px){
  .kktf-mood-head,.kktf-ideas-head,.kktf-polish-head,.kktf-paper-mast{grid-template-columns:1fr}
  .kktf-mood-count,.kktf-bar-hint,.kktf-paper-date{justify-self:start;text-align:left}
  .kktf-idea-form{grid-template-columns:1fr}
  .kktf-idea-list{grid-template-columns:1fr}
  .kktf-paper-numbers{grid-template-columns:repeat(2,1fr)}
  .kktf-paper-columns{grid-template-columns:1fr}
  .kktf-paper-featured>div{grid-template-columns:1fr}
  .kktf-polish-local{flex-direction:column;align-items:flex-start}
}

@media(max-width:560px){
  .kktf-mood-bottom{flex-direction:column;align-items:stretch}
  .kktf-mood-bottom button{width:100%}
  .kktf-paper-numbers{grid-template-columns:1fr 1fr}
  .kktf-paper-numbers strong{font-size:34px}
  .kktf-polish-rate{flex-direction:column}
}


/* 1.5.1 — MACH DOCH! besser lesbar */
.kktf-app .kktf-ideas-head > div > p:last-child{
  font-size:18px;
  line-height:1.35;
}

.kktf-app .kktf-idea-form select{
  font-size:15px;
  line-height:1.2;
  min-height:66px;
}

.kktf-app .kktf-idea-form textarea{
  font-size:17px;
  line-height:1.3;
}

.kktf-app .kktf-idea-form button{
  font-size:24px;
  line-height:1;
  min-height:66px;
  padding-left:18px;
  padding-right:18px;
}

.kktf-app .kktf-idea-list .kktf-empty{
  font-size:14px;
  font-weight:850;
}

.kktf-app .kktf-idea-kind,
.kktf-app .kktf-idea-status{
  font-size:11px;
}

.kktf-app .kktf-idea > p{
  font-size:20px;
  line-height:1.25;
}

.kktf-app .kktf-idea-actions button{
  font-size:11px;
  line-height:1.15;
  padding:9px 10px;
}

.kktf-app .kktf-idea-foot{
  font-size:12px;
  line-height:1.4;
}

.kktf-app .kktf-bar-hint > span{
  font-size:11px;
  line-height:1.3;
}

@media(max-width:900px){
  .kktf-app .kktf-idea-form select,
  .kktf-app .kktf-idea-form textarea,
  .kktf-app .kktf-idea-form button{
    min-height:58px;
  }

  .kktf-app .kktf-idea-form button{
    width:100%;
  }
}

/* Wochenblatt als bewusster Abschluss */
.kktf-app .kktf-card-paper{
  margin-top:10px;
  margin-bottom:6px;
}


/* =========================================================================
   1.6.0 — TISCHFUNK IST DIE WOCHENZEITUNG
   ========================================================================= */

.kktf-app{--news-paper:#fffdf8}

.kktf-news-masthead{
  width:min(1280px,calc(100vw - 40px));
  position:relative;left:50%;transform:translateX(-50%);
  margin:18px 0;border:4px solid var(--b);
  background:var(--news-paper);box-shadow:10px 10px 0 var(--p)
}
.kktf-news-topline{
  display:flex;justify-content:space-between;gap:15px;
  padding:8px 14px;border-bottom:3px solid var(--b);
  background:var(--b);color:#fff;font-size:9px;font-weight:950;letter-spacing:.1em
}
.kktf-news-nameplate{
  display:grid;grid-template-columns:minmax(0,1fr) 170px 245px;
  gap:22px;align-items:center;padding:22px 26px 24px
}
.kktf-news-title h1{
  margin:0;font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(72px,9vw,132px);line-height:.77;letter-spacing:-.035em
}
.kktf-news-title .kktf-lead{
  max-width:780px;margin:16px 0 0;font-size:17px;line-height:1.3;font-weight:800
}
.kktf-news-edition{
  align-self:stretch;display:flex;flex-direction:column;justify-content:center;
  padding:14px;border-left:5px solid var(--b);border-right:1px solid var(--b)
}
.kktf-news-edition strong{
  font-family:Impact,"Arial Black",Arial,sans-serif;font-size:50px;line-height:.85
}
.kktf-news-edition span{margin-top:8px;font-size:10px;font-weight:950}
.kktf-news-edition small{
  display:block;margin-top:14px;font-size:8px;line-height:1.35;font-weight:950;letter-spacing:.06em
}
.kktf-news-masthead .kktf-alias-box{
  position:static;width:auto;transform:rotate(1deg);
  background:var(--y);box-shadow:6px 6px 0 var(--b)
}

/* TITELSEITE */
.kktf-news-front{
  width:min(1280px,calc(100vw - 40px));
  position:relative;left:50%;transform:translateX(-50%);
  margin:24px 0 34px;padding:20px 24px 24px;
  border:4px solid var(--b);background:var(--news-paper);box-shadow:9px 9px 0 var(--y)
}
.kktf-news-front-head{
  display:flex;justify-content:space-between;gap:20px;align-items:end;
  padding-bottom:12px;border-bottom:7px solid var(--b)
}
.kktf-news-front-head h2{
  margin:3px 0 0;font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(34px,4.5vw,66px);line-height:.9
}
.kktf-news-front-head>span{padding-bottom:4px;font-size:9px;font-weight:950;letter-spacing:.08em}
.kktf-news-numbers{margin:15px 0}
.kktf-news-front-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kktf-news-front .kktf-paper-mood,.kktf-news-front .kktf-paper-vote{
  min-height:170px;border:3px solid var(--b);padding:16px;background:#fff
}
.kktf-news-sportline{
  display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;
  margin-top:12px;border:3px solid var(--b);background:var(--b);color:#fff;padding:10px 13px
}
.kktf-news-sportline span{
  padding:5px 8px;background:var(--p);color:var(--b);
  font-family:Impact,"Arial Black",Arial,sans-serif;font-size:18px
}
.kktf-news-sportline strong{font-size:12px;letter-spacing:.025em}
.kktf-news-front .kktf-paper-featured{
  margin-top:12px;padding:14px;border:3px solid var(--b);background:var(--y)
}
.kktf-news-front .kktf-paper-featured>div{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px
}
.kktf-news-front .kktf-paper-featured article{
  border:2px solid var(--b);background:var(--news-paper);padding:10px
}

/* RUBRIKEN */
.kktf-news-rubric{
  grid-column:1/-1;display:grid;grid-template-columns:82px minmax(0,1fr);
  gap:17px;align-items:center;margin:22px 0 2px;padding:12px 0 11px;
  border-top:8px solid var(--b);border-bottom:2px solid var(--b)
}
.kktf-news-rubric-no{
  display:grid;place-items:center;width:70px;height:70px;
  border:3px solid var(--b);background:var(--p);
  font-family:Impact,"Arial Black",Arial,sans-serif;font-size:38px;line-height:1;
  transform:rotate(-2deg);box-shadow:4px 4px 0 var(--y)
}
.kktf-news-rubric p{margin:0 0 2px;font-size:9px;font-weight:950;letter-spacing:.11em}
.kktf-news-rubric h2{
  margin:0;font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(32px,4vw,54px);line-height:.9
}
.kktf-news-rubric small{display:block;margin-top:5px;font-size:11px;font-weight:750}

/* ARTIKEL / SPALTEN */
.kktf-app .kktf-grid{row-gap:18px}
.kktf-app .kktf-card{border-width:3px;box-shadow:5px 5px 0 var(--b)}
.kktf-app [data-module="vote"],.kktf-app [data-module="story"]{grid-column:1/-1}
.kktf-app [data-module="who"],.kktf-app [data-module="word"]{min-height:360px}
.kktf-app .kktf-card>.kktf-label,.kktf-app .kktf-card div>.kktf-label{letter-spacing:.09em}

/* Leserbriefe */
.kktf-app [data-module="funk"]{background:var(--news-paper)}
.kktf-app [data-module="funk"] .kktf-feed article{border-left-width:7px}

/* Sport bleibt bewusst Game, die Zeitung rahmt es nur */
.kktf-app [data-module="game"]{margin-top:0;box-shadow:8px 8px 0 var(--p)}

/* Alte separate Wochenblattkarte gibt es nicht mehr */
.kktf-card-paper{display:none!important}

@media(max-width:1000px){
  .kktf-news-nameplate{grid-template-columns:minmax(0,1fr) 150px}
  .kktf-news-masthead .kktf-alias-box{grid-column:1/-1;width:min(420px,100%)}
}
@media(max-width:800px){
  .kktf-news-masthead,.kktf-news-front{width:calc(100vw - 20px)}
  .kktf-news-topline{flex-direction:column;gap:3px}
  .kktf-news-nameplate{grid-template-columns:1fr;gap:16px;padding:18px}
  .kktf-news-title h1{font-size:clamp(65px,22vw,100px)}
  .kktf-news-edition{
    border-left:0;border-right:0;border-top:4px solid var(--b);
    border-bottom:2px solid var(--b);padding:12px 0
  }
  .kktf-news-masthead .kktf-alias-box{grid-column:auto}
  .kktf-news-front{padding:16px}
  .kktf-news-front-head{align-items:start;flex-direction:column}
  .kktf-news-front-columns{grid-template-columns:1fr}
  .kktf-news-front .kktf-paper-featured>div{grid-template-columns:1fr}
  .kktf-news-rubric{grid-template-columns:58px minmax(0,1fr);gap:11px}
  .kktf-news-rubric-no{width:52px;height:52px;font-size:28px}
  .kktf-news-rubric small{font-size:10px}
  .kktf-app [data-module="who"],.kktf-app [data-module="word"]{min-height:0}
}
@media(max-width:560px){
  .kktf-news-sportline{grid-template-columns:1fr}
  .kktf-news-numbers{grid-template-columns:1fr 1fr}
}


/* =========================================================================
   1.7.0 — KUNSTSEITE / MAGNETTAFEL / DOPPELSTADT-SCHIEBER
   ========================================================================= */

.kktf-embed-card{
  position:relative;
  overflow:visible;
  background:var(--news-paper);
}

.kktf-week-reset-note,
.kktf-ds-newspaper-note{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
  padding:9px 12px;
  border:3px solid var(--b);
  background:var(--y);
  font-size:10px;
  line-height:1.25;
  font-weight:950;
  letter-spacing:.035em;
}
.kktf-week-reset-note span,
.kktf-ds-newspaper-note span{
  flex:0 0 auto;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:18px;
}
.kktf-ds-newspaper-note{background:var(--p)}

/* Eingebettete alte Module verlieren ihre alten Homepage-Abstände,
   damit sie sich wie echte Zeitungsartikel anfühlen. */
.kktf-app .kktf-embed-card .kuku-wall,
.kktf-app .kktf-embed-card .kuku-magnets{
  margin-top:0!important;
  padding-top:0!important;
  border-top:0!important;
}

.kktf-app .kktf-embed-card .kuku-wall-head,
.kktf-app .kktf-embed-card .kuku-mag-head{
  max-width:900px;
}

/* Kritzelwand bleibt bewusst Papier. */
.kktf-app .kktf-embed-kritzel{
  background:#fffdf8;
}
.kktf-app .kktf-embed-kritzel .kuku-wall-paper{
  box-shadow:10px 10px 0 var(--p);
}

/* MAGNETTAFEL: weg mit Edelstahl/Kühlschrank-Look. */
.kktf-app .kktf-embed-magnets{
  background:var(--y);
}
.kktf-app .kktf-embed-magnets .kuku-mag-board{
  background:#0b0b0b!important;
  background-image:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,.055), transparent 28%),
    radial-gradient(circle at 78% 72%, rgba(255,22,143,.08), transparent 30%)!important;
  border:5px solid var(--b)!important;
  box-shadow:12px 12px 0 var(--p)!important;
}
.kktf-app .kktf-embed-magnets .kuku-magnet{
  border:2px solid #0b0b0b!important;
  background:#fffdf8!important;
  color:#0b0b0b!important;
  box-shadow:3px 4px 0 rgba(255,211,53,.52)!important;
}
.kktf-app .kktf-embed-magnets .kuku-magnet:nth-child(5n+1){
  background:var(--y)!important;
}
.kktf-app .kktf-embed-magnets .kuku-magnet:nth-child(7n+2){
  background:var(--p)!important;
}
.kktf-app .kktf-embed-magnets .kuku-magnet.random{
  background:#fffdf8!important;
  color:#0b0b0b!important;
  border:3px solid var(--p)!important;
  box-shadow:4px 4px 0 var(--y)!important;
}
.kktf-app .kktf-embed-magnets .kuku-mag-loading{
  background:rgba(11,11,11,.95)!important;
  color:#fff!important;
}
.kktf-app .kktf-embed-magnets .kuku-mag-locked{
  background:rgba(255,211,53,.96)!important;
  color:#0b0b0b!important;
}
.kktf-app .kktf-embed-magnets .kuku-mag-actions button{
  background:#fffdf8!important;
  color:#0b0b0b!important;
  -webkit-text-fill-color:#0b0b0b!important;
}
.kktf-app .kktf-embed-magnets .kuku-mag-actions button:first-child{
  background:var(--p)!important;
}

/* Doppelstadt-Schieber in die Zeitung einpassen. */
.kktf-app .kktf-embed-doppelstadt{
  background:#fffdf8;
}
.kktf-app .kktf-embed-doppelstadt .kuku-ds-head{
  margin-bottom:24px;
}
.kktf-app .kktf-embed-doppelstadt .kuku-ds-stage{
  box-shadow:10px 10px 0 var(--y);
}
.kktf-app .kktf-embed-doppelstadt .kuku-ds-language{
  margin-bottom:6px;
}

/* Falls eines der drei eigenständigen Plugins deaktiviert wurde. */
.kktf-embed-missing{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-height:170px;
  justify-content:center;
  align-items:center;
  border:4px dashed var(--b);
  background:#fff;
  text-align:center;
  padding:24px;
}
.kktf-embed-missing strong{
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:34px;
}
.kktf-embed-missing span{
  font-size:12px;
  font-weight:850;
}

/* Der Kulturteil darf bewusst etwas "größer" als normale Artikel wirken. */
.kktf-app [data-module="kritzelwand"],
.kktf-app [data-module="magnetpoesie"],
.kktf-app [data-module="doppelstadt"]{
  grid-column:1/-1;
}

@media(max-width:782px){
  .kktf-week-reset-note,
  .kktf-ds-newspaper-note{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }

  .kktf-app .kktf-embed-magnets .kuku-mag-board{
    box-shadow:8px 8px 0 var(--p)!important;
  }

  .kktf-app .kktf-embed-doppelstadt .kuku-ds-stage{
    box-shadow:8px 8px 0 var(--y);
  }
}


/* =========================================================================
   1.7.2 — LOGIK, LESBARKEIT, SPRACHE
   ========================================================================= */

/* SPRACHE / JĘZYK direkt unter dem Zeitungskopf */
.kktf-language-switch{
  width:min(1280px,calc(100vw - 40px));
  position:relative;
  left:50%;
  transform:translateX(-50%);
  margin:18px 0 28px;
  padding:16px 18px 20px;
  border:4px solid var(--b);
  background:var(--news-paper);
  box-shadow:8px 8px 0 var(--p);
}
.kktf-language-switch-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  margin-bottom:12px;
  padding:9px 12px;
  border:3px solid var(--b);
  background:var(--p);
}
.kktf-language-switch-head span{
  flex:0 0 auto;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:22px;
  line-height:1;
}
.kktf-language-switch-head p{
  margin:0;
  text-align:right;
  font-size:12px;
  line-height:1.25;
  font-weight:950;
}

/* Die alte externe Modul-Einleitung würde hier alles doppelt erklären. */
.kktf-language-switch .kuku-ds-head,
.kktf-language-switch .kuku-ds-small,
.kktf-language-switch .kuku-ds-middle-note{
  display:none!important;
}
.kktf-language-switch .kuku-ds-stage{
  height:255px!important;
  margin-top:0!important;
  box-shadow:7px 7px 0 var(--y)!important;
}
.kktf-language-switch .kuku-ds-side{
  padding:20px 24px!important;
}
.kktf-language-switch .kuku-ds-call{
  font-size:clamp(40px,5vw,70px)!important;
}
.kktf-language-switch .kuku-ds-language{
  margin-top:18px!important;
}
.kktf-language-switch .kuku-ds-words{
  margin:10px 0 7px!important;
}
.kktf-language-switch .kuku-ds-word{
  font-size:clamp(25px,3vw,43px)!important;
}
.kktf-language-switch .kuku-ds-hint{
  font-size:12px!important;
  letter-spacing:.07em!important;
}

/* ZUFALLSWORT: Button + Magnet selbst klar erkennen */
.kktf-app .kktf-embed-magnets .kuku-mag-actions button[data-action="random"]{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  min-height:50px!important;
  padding:10px 15px!important;
  font-size:14px!important;
  background:var(--p)!important;
}
.kktf-app .kktf-embed-magnets .kuku-mag-actions button[data-action="random"]::before{
  content:"🎲";
  display:inline-grid;
  place-items:center;
  width:31px;
  height:31px;
  border:2px solid var(--b);
  background:var(--y);
  font-size:20px;
  line-height:1;
}
.kktf-app .kktf-embed-magnets .kuku-magnet.random{
  position:absolute;
  border:4px solid var(--p)!important;
  outline:3px solid var(--y);
  outline-offset:2px;
  font-weight:950!important;
}
.kktf-app .kktf-embed-magnets .kuku-magnet.random::before{
  content:"🎲";
  position:absolute;
  left:-18px;
  top:-24px;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:2px solid var(--b);
  background:var(--y);
  color:var(--b);
  font-size:18px;
  box-shadow:3px 3px 0 var(--p);
  pointer-events:none;
}
.kktf-app .kktf-embed-magnets .kuku-mag-status{
  display:inline-block;
  margin:12px 0 4px!important;
  padding:8px 11px;
  border:2px solid var(--b);
  background:var(--p);
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:950!important;
}

/* Kleine Zeitungstexte: nicht mehr Mikrotypografie */
.kktf-app .kktf-label{
  font-size:12px!important;
  line-height:1.25!important;
}
.kktf-news-topline{
  font-size:11px!important;
}
.kktf-news-front-head>span{
  font-size:11px!important;
}
.kktf-news-rubric p{
  font-size:11px!important;
}
.kktf-news-rubric small{
  font-size:13px!important;
  line-height:1.35!important;
}
.kktf-paper-numbers span,
.kktf-news-numbers span{
  font-size:10px!important;
  line-height:1.2!important;
}
.kktf-week-reset-note,
.kktf-ds-newspaper-note{
  font-size:12px!important;
}
.kktf-app .kktf-note,
.kktf-app .kktf-idea-foot,
.kktf-app .kktf-mood-note,
.kktf-app .kktf-polish-local,
.kktf-app .kktf-polish-answer>small,
.kktf-app .kktf-reco-form-bottom small{
  font-size:12px!important;
  line-height:1.4!important;
}
.kktf-app .kktf-embed-magnets .kuku-mag-foot{
  font-size:12px!important;
  line-height:1.35!important;
}
.kktf-app .kktf-footer{
  font-size:11px!important;
  line-height:1.45!important;
}

/* POLNISCH LERNEN klarer als Lernmodul */
.kktf-app .kktf-card-polish{
  border-top-width:7px;
}
.kktf-app .kktf-polish-head>div>p:last-child{
  font-size:17px!important;
  line-height:1.4!important;
}
.kktf-app .kktf-polish-start{
  min-width:250px;
  font-size:21px!important;
}

/* SCHUBS: Anleitung lesbar und Schritt für Schritt */
.kktf-app .kktf-game-head>div>p:last-child{
  max-width:800px;
  font-size:17px!important;
  line-height:1.4!important;
}
.kktf-app .kktf-game-how{
  margin:0 0 15px;
  padding:14px;
  border:3px solid var(--b);
  background:var(--y);
  font-size:14px!important;
  line-height:1.35!important;
}
.kktf-app .kktf-game-how>strong{
  display:block;
  margin-bottom:7px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:22px;
}
.kktf-app .kktf-game-how ol{
  margin:0 0 10px;
  padding-left:22px;
}
.kktf-app .kktf-game-how li{
  margin:4px 0;
  font-weight:850;
}
.kktf-app .kktf-game-how p{
  margin:9px 0 0;
  font-size:13px!important;
  line-height:1.35!important;
  font-weight:800;
}
.kktf-app .kktf-game-feedback{
  font-size:13px!important;
  line-height:1.35!important;
}

/* Alter Doppelstadt-Embed-CSS ist für die frühere Position; oben übernimmt
   jetzt .kktf-language-switch. */
.kktf-app .kktf-embed-doppelstadt{
  display:none!important;
}

@media(max-width:800px){
  .kktf-language-switch{
    width:calc(100vw - 20px);
    padding:12px;
  }
  .kktf-language-switch-head{
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
  }
  .kktf-language-switch-head p{
    text-align:left;
    font-size:12px;
  }
  .kktf-language-switch .kuku-ds-stage{
    height:350px!important;
  }
  .kktf-language-switch .kuku-ds-side{
    padding:18px 13px!important;
  }
  .kktf-app .kktf-polish-start{
    width:100%;
    min-width:0;
  }
}


/* =========================================================================
   1.8.0 — DAS DING LEBT + KUKU RENNT!
   ========================================================================= */

/* -------------------------------------------------------------------------
   DAS DING — Erklärung weit oben
   ------------------------------------------------------------------------- */
.kktf-creature-story{
  width:min(1280px,calc(100vw - 40px));
  position:relative;
  left:50%;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:170px minmax(0,1fr) 260px;
  gap:22px;
  align-items:center;
  margin:26px 0 34px;
  padding:20px 24px;
  border:4px solid var(--b);
  background:var(--y);
  box-shadow:9px 9px 0 var(--p);
}
.kktf-creature-story-art{
  min-height:145px;
  display:grid;
  place-items:center;
  border:3px solid var(--b);
  background:#fffdf8;
}
.kktf-creature-story-copy h2{
  margin:3px 0 10px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(36px,4.5vw,62px);
  line-height:.88;
}
.kktf-creature-story-copy>p:not(.kktf-label){
  max-width:770px;
  margin:8px 0;
  font-size:15px;
  line-height:1.4;
  font-weight:780;
}
.kktf-creature-open{
  margin-top:10px;
  border:3px solid var(--b);
  background:var(--b);
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  padding:11px 14px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:20px;
  box-shadow:5px 5px 0 var(--p);
  cursor:pointer;
}
.kktf-creature-story-now{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:15px;
  border:3px solid var(--b);
  background:var(--p);
  box-shadow:5px 5px 0 var(--b);
}
.kktf-creature-story-now>span{
  font-size:10px;
  font-weight:950;
  letter-spacing:.1em;
}
.kktf-creature-story-now>strong{
  margin:8px 0;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:28px;
  line-height:.95;
}
.kktf-creature-story-now>p{
  margin:0;
  font-size:13px;
  line-height:1.35;
  font-weight:850;
}

/* -------------------------------------------------------------------------
   DAS DING — CSS-Wesen
   ------------------------------------------------------------------------- */
.kktf-thing-art{
  position:relative;
  width:112px;
  height:112px;
  flex:0 0 112px;
}
.kktf-thing-art i{
  position:absolute;
  display:block;
  box-sizing:border-box;
}
.kktf-thing-art .egg{
  left:27px;
  top:20px;
  width:58px;
  height:76px;
  border:4px solid var(--b);
  border-radius:50% 50% 46% 46%;
  background:#fffdf8;
  transform:rotate(-4deg);
  box-shadow:5px 5px 0 var(--p);
  opacity:0;
}
.kktf-thing-art .body{
  left:28px;
  top:47px;
  width:58px;
  height:48px;
  border:4px solid var(--b);
  border-radius:52% 48% 50% 46%;
  background:var(--y);
  transform:rotate(-5deg);
  z-index:4;
}
.kktf-thing-art .wing{
  left:40px;
  top:60px;
  width:30px;
  height:22px;
  border:3px solid var(--b);
  border-radius:60% 40% 60% 40%;
  background:var(--p);
  transform:rotate(10deg);
  z-index:6;
}
.kktf-thing-art .head{
  left:67px;
  top:28px;
  width:35px;
  height:35px;
  border:4px solid var(--b);
  border-radius:50%;
  background:var(--y);
  z-index:7;
}
.kktf-thing-art .comb{
  left:72px;
  top:17px;
  width:27px;
  height:14px;
  z-index:8;
  background:
    radial-gradient(circle at 5px 8px,var(--p) 0 6px,transparent 6.5px),
    radial-gradient(circle at 14px 5px,var(--p) 0 7px,transparent 7.5px),
    radial-gradient(circle at 23px 8px,var(--p) 0 6px,transparent 6.5px);
  filter:drop-shadow(0 2px 0 #0b0b0b);
}
.kktf-thing-art .eye{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--b);
  z-index:10;
}
.kktf-thing-art .eye.e1{left:89px;top:40px}
.kktf-thing-art .eye.e2{
  left:76px;
  top:37px;
  width:7px;
  height:7px;
  background:var(--p);
  border:2px solid var(--b);
  opacity:0;
}
.kktf-thing-art .beak{
  left:99px;
  top:43px;
  width:0;
  height:0;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-left:15px solid var(--p);
  z-index:8;
  filter:drop-shadow(2px 1px 0 #0b0b0b);
}
.kktf-thing-art .tail{
  width:33px;
  height:16px;
  border:4px solid var(--b);
  border-right:0;
  border-radius:60% 0 0 60%;
  z-index:2;
  opacity:0;
}
.kktf-thing-art .tail.t1{
  left:7px;top:48px;background:var(--p);transform:rotate(20deg);
}
.kktf-thing-art .tail.t2{
  left:4px;top:66px;background:var(--y);transform:rotate(-14deg);
}
.kktf-thing-art .leg{
  top:90px;
  width:4px;
  height:18px;
  background:var(--b);
  z-index:3;
}
.kktf-thing-art .leg:after{
  content:"";
  position:absolute;
  left:-5px;
  bottom:0;
  width:12px;
  height:4px;
  background:var(--b);
}
.kktf-thing-art .leg.l1{left:49px}
.kktf-thing-art .leg.l2{left:70px}
.kktf-thing-art .weird{
  opacity:0;
  z-index:12;
}
.kktf-thing-art .weird.w1{
  left:13px;
  top:17px;
  width:21px;
  height:21px;
  border:3px solid var(--b);
  background:var(--p);
  transform:rotate(18deg);
}
.kktf-thing-art .weird.w2{
  right:3px;
  top:5px;
  width:24px;
  height:24px;
}
.kktf-thing-art .weird.w2:before{
  content:"✦";
  font-size:28px;
  font-style:normal;
  font-weight:950;
  color:var(--p);
  -webkit-text-stroke:1px var(--b);
}

/* Evolutionsstufen */
.kktf-thing-art.stage-0 .egg{opacity:1}
.kktf-thing-art.stage-0 .body,
.kktf-thing-art.stage-0 .wing,
.kktf-thing-art.stage-0 .head,
.kktf-thing-art.stage-0 .comb,
.kktf-thing-art.stage-0 .eye,
.kktf-thing-art.stage-0 .beak,
.kktf-thing-art.stage-0 .leg,
.kktf-thing-art.stage-0 .tail,
.kktf-thing-art.stage-0 .weird{opacity:0}

.kktf-thing-art.stage-1 .tail,
.kktf-thing-art.stage-1 .weird,
.kktf-thing-art.stage-1 .eye.e2{opacity:0}
.kktf-thing-art.stage-1 .body{transform:scale(.78) rotate(-5deg);transform-origin:center bottom}
.kktf-thing-art.stage-1 .head{transform:scale(.84);transform-origin:center bottom}
.kktf-thing-art.stage-1 .comb{transform:scale(.65);transform-origin:center bottom}

.kktf-thing-art.stage-2 .tail.t1{opacity:1}
.kktf-thing-art.stage-3 .tail{opacity:1}
.kktf-thing-art.stage-3 .weird.w1{opacity:1}
.kktf-thing-art.stage-4 .tail,
.kktf-thing-art.stage-4 .weird.w1,
.kktf-thing-art.stage-4 .eye.e2{opacity:1}
.kktf-thing-art.stage-5 .tail,
.kktf-thing-art.stage-5 .weird,
.kktf-thing-art.stage-5 .eye.e2{opacity:1}

.kktf-thing-art.stage-4 .body,
.kktf-thing-art.stage-5 .body{width:64px;height:52px}
.kktf-thing-art.stage-5{animation:kktfThingHover 1.8s ease-in-out infinite}
@keyframes kktfThingHover{50%{transform:translateY(-4px) rotate(1deg)}}

/* Dominanter Charakter */
.kktf-thing-art.is-love .wing{background:var(--p)}
.kktf-thing-art.is-love .body:after{
  content:"♥";
  position:absolute;
  left:15px;
  top:8px;
  font-style:normal;
  font-weight:950;
  color:var(--p);
}
.kktf-thing-art.is-energy{filter:drop-shadow(0 0 7px rgba(255,211,53,.75))}
.kktf-thing-art.is-chaos .head{transform:rotate(7deg)}
.kktf-thing-art.is-chaos .wing{transform:rotate(-24deg)}
.kktf-thing-art.is-creativity .tail.t1{background:var(--p)}
.kktf-thing-art.is-creativity .tail.t2{background:#fffdf8}

/* -------------------------------------------------------------------------
   DAS DING — dauerhaftes Floating Widget
   ------------------------------------------------------------------------- */
.kktf-creature-float{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  pointer-events:none;
}
.kktf-creature-orb,
.kktf-creature-panel{
  pointer-events:auto;
}
.kktf-creature-orb{
  width:94px;
  min-height:105px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  padding:5px 7px 7px;
  border:4px solid var(--b);
  background:var(--y);
  color:var(--b)!important;
  -webkit-text-fill-color:var(--b)!important;
  box-shadow:6px 6px 0 var(--p);
  cursor:pointer;
}
.kktf-creature-orb .kktf-thing-art{
  width:70px;
  height:73px;
  transform:scale(.64);
  transform-origin:top left;
  margin-right:-41px;
  margin-bottom:-39px;
}
.kktf-creature-orb>span{
  position:relative;
  z-index:20;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:15px;
  line-height:1;
}
.kktf-creature-panel{
  width:min(355px,calc(100vw - 24px));
  padding:15px;
  border:4px solid var(--b);
  background:#fffdf8;
  box-shadow:7px 7px 0 var(--p);
}
.kktf-creature-panel-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.kktf-creature-panel-head span{
  display:block;
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
}
.kktf-creature-panel-head strong{
  display:block;
  margin-top:3px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:27px;
  line-height:.95;
}
.kktf-creature-close{
  width:36px;
  height:36px;
  border:3px solid var(--b);
  background:var(--p);
  color:var(--b)!important;
  -webkit-text-fill-color:var(--b)!important;
  font-size:25px;
  font-weight:950;
  line-height:1;
  cursor:pointer;
}
.kktf-creature-panel>.kktf-creature-line{
  margin:10px 0 12px;
  font-size:13px;
  line-height:1.35;
  font-weight:850;
}
.kktf-creature-bars{
  display:grid;
  gap:8px;
}
.kktf-creature-bars>div{
  display:grid;
  grid-template-columns:98px 1fr 30px;
  gap:7px;
  align-items:center;
  font-size:10px;
  font-weight:950;
}
.kktf-creature-bars i{
  height:15px;
  border:2px solid var(--b);
  background:#fff;
  overflow:hidden;
}
.kktf-creature-bars i b{
  display:block;
  width:0;
  height:100%;
  background:var(--p);
  transition:width .35s ease;
}
.kktf-creature-bars>div:nth-child(2) i b{background:var(--y)}
.kktf-creature-bars>div:nth-child(3) i b{background:var(--b)}
.kktf-creature-bars>div:nth-child(4) i b{
  background:linear-gradient(90deg,var(--p) 0 50%,var(--y) 50% 100%);
}
.kktf-creature-panel>small{
  display:block;
  margin-top:12px;
  font-size:10px;
  line-height:1.35;
  font-weight:800;
}

/* -------------------------------------------------------------------------
   KUKU RENNT!
   ------------------------------------------------------------------------- */
.kktf-runner-card{
  background:var(--y);
}
.kktf-runner-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 230px;
  gap:22px;
  align-items:start;
}
.kktf-runner-head h2{
  margin:4px 0 8px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(52px,7vw,92px);
  line-height:.82;
}
.kktf-runner-head>div:first-child>p:last-child{
  max-width:760px;
  margin:0;
  font-size:17px;
  line-height:1.4;
  font-weight:800;
}
.kktf-runner-meta{
  padding:13px;
  border:3px solid var(--b);
  background:var(--p);
  box-shadow:5px 5px 0 var(--b);
}
.kktf-runner-meta strong,
.kktf-runner-meta span{
  display:block;
}
.kktf-runner-meta strong{
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:22px;
}
.kktf-runner-meta span{
  margin-top:7px;
  font-size:10px;
  line-height:1.3;
  font-weight:950;
}
.kktf-runner-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:16px;
  margin-top:20px;
}
.kktf-runner-stage{
  position:relative;
  overflow:hidden;
  border:4px solid var(--b);
  background:#fffdf8;
  box-shadow:7px 7px 0 var(--p);
  touch-action:manipulation;
  cursor:pointer;
}
.kktf-runner-canvas{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/1;
}
.kktf-runner-hud{
  position:absolute;
  left:11px;
  top:11px;
  display:flex;
  gap:8px;
  align-items:center;
}
.kktf-runner-hud>*{
  padding:6px 9px;
  border:2px solid var(--b);
  background:#fffdf8;
  font-size:12px;
  font-weight:950;
}
.kktf-runner-hud strong{
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:20px;
}
.kktf-runner-overlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:8px;
  text-align:center;
  background:rgba(255,253,248,.9);
  padding:20px;
}
.kktf-runner-overlay[hidden]{display:none!important}
.kktf-runner-overlay>strong{
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(42px,7vw,78px);
  line-height:.85;
}
.kktf-runner-overlay>p{
  margin:0;
  font-size:14px;
  font-weight:900;
}
.kktf-runner-start{
  margin-top:7px;
  border:3px solid var(--b);
  background:var(--p);
  color:var(--b)!important;
  -webkit-text-fill-color:var(--b)!important;
  padding:10px 16px;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:24px;
  box-shadow:5px 5px 0 var(--b);
  cursor:pointer;
}
.kktf-runner-jump{
  width:100%;
  min-height:76px;
  margin-top:14px;
  border:4px solid var(--b);
  background:var(--b);
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:35px;
  box-shadow:7px 7px 0 var(--p);
  cursor:pointer;
  touch-action:manipulation;
}
.kktf-runner-jump:disabled{
  opacity:.38;
  cursor:not-allowed;
}
.kktf-runner-note{
  margin:13px 0 0;
  font-size:13px;
  line-height:1.35;
  font-weight:850;
}
.kktf-runner-side{
  display:grid;
  align-content:start;
  gap:12px;
}
.kktf-runner-result,
.kktf-runner-highscores,
.kktf-runner-help{
  border:3px solid var(--b);
  background:#fffdf8;
  padding:13px;
}
.kktf-runner-result{
  background:var(--p);
}
.kktf-runner-result>strong{
  display:block;
  margin:6px 0;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:27px;
  line-height:.95;
}
.kktf-runner-result>span{
  display:block;
  font-size:11px;
  line-height:1.35;
  font-weight:850;
}
.kktf-runner-highscores ol{
  list-style:none;
  margin:8px 0 0;
  padding:0;
  display:grid;
  gap:5px;
}
.kktf-runner-highscores li{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:6px 0;
  border-bottom:1px dashed var(--b);
  font-size:11px;
  font-weight:850;
}
.kktf-runner-highscores li span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.kktf-runner-highscores li strong{
  flex:0 0 auto;
}
.kktf-runner-help{
  margin:0;
  font-size:12px;
  line-height:1.45;
  font-weight:800;
}

/* Fixed Ding im Spiel minimal kleiner, aber weiterhin sichtbar. */
body:has(.kktf-runner-stage.is-running) .kktf-creature-orb{
  transform:scale(.82);
  transform-origin:right bottom;
}

/* -------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------- */
@media(max-width:900px){
  .kktf-creature-story{
    grid-template-columns:130px minmax(0,1fr);
  }
  .kktf-creature-story-now{
    grid-column:1/-1;
  }
  .kktf-runner-head{
    grid-template-columns:1fr;
  }
  .kktf-runner-meta{
    justify-self:start;
  }
  .kktf-runner-layout{
    grid-template-columns:1fr;
  }
  .kktf-runner-side{
    grid-template-columns:1fr 1fr;
  }
  .kktf-runner-help{
    grid-column:1/-1;
  }
}

@media(max-width:650px){
  .kktf-creature-story{
    width:calc(100vw - 20px);
    grid-template-columns:1fr;
    padding:15px;
  }
  .kktf-creature-story-art{
    min-height:125px;
  }
  .kktf-creature-story-now{
    grid-column:auto;
  }
  .kktf-creature-float{
    right:8px;
    bottom:8px;
  }
  .kktf-creature-orb{
    width:78px;
    min-height:87px;
    padding:2px 4px 5px;
    box-shadow:4px 4px 0 var(--p);
  }
  .kktf-creature-orb .kktf-thing-art{
    transform:scale(.53);
    margin-right:-53px;
    margin-bottom:-49px;
  }
  .kktf-creature-orb>span{
    font-size:13px;
  }
  .kktf-creature-panel{
    width:min(340px,calc(100vw - 16px));
  }
  .kktf-runner-side{
    grid-template-columns:1fr;
  }
  .kktf-runner-help{
    grid-column:auto;
  }
  .kktf-runner-jump{
    min-height:70px;
    font-size:31px;
  }
  .kktf-runner-head>div:first-child>p:last-child{
    font-size:15px;
  }
}


/* =========================================================================
   1.8.1 — FLOATING-FIX + RUNNER-DIFFICULTY + KOMPAKTERE PROPORTIONEN
   ========================================================================= */

/* Das Widget hängt in 1.8.1 direkt unter <body>; deshalb eigene Variablen. */
body > .kktf-creature-float{
  --y:#ffd335;
  --p:#ff168f;
  --b:#0b0b0b;
  --w:#fffdf8;
  position:fixed!important;
  right:14px!important;
  bottom:14px!important;
  left:auto!important;
  top:auto!important;
  transform:none!important;
  z-index:2147483000!important;
  font-family:Arial,Helvetica,sans-serif;
}

body > .kktf-creature-float .kktf-creature-orb{
  width:82px;
  min-height:90px;
  padding:3px 5px 6px;
  border-width:3px;
  box-shadow:5px 5px 0 var(--p);
  animation:kktfThingFloatIdle 2.7s ease-in-out infinite;
}

body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{
  transform:scale(.56);
  margin-right:-50px;
  margin-bottom:-46px;
}

body > .kktf-creature-float .kktf-creature-orb>span{
  font-size:13px;
}

body > .kktf-creature-float .kktf-creature-panel{
  width:min(320px,calc(100vw - 20px));
  padding:13px;
  border-width:3px;
  box-shadow:6px 6px 0 var(--p);
}

@keyframes kktfThingFloatIdle{
  0%,100%{translate:0 0}
  50%{translate:0 -4px}
}

/* Neue Bereiche etwas kompakter – die alten Tischfunk-Module bleiben unangetastet. */
.kktf-creature-story{
  grid-template-columns:135px minmax(0,1fr) 220px;
  gap:18px;
  padding:17px 20px;
}
.kktf-creature-story-art{min-height:122px}
.kktf-creature-story-copy h2{
  font-size:clamp(34px,3.4vw,49px);
}
.kktf-creature-story-copy>p:not(.kktf-label){
  font-size:14px;
  line-height:1.35;
}
.kktf-creature-story-now>strong{
  font-size:24px;
}

.kktf-runner-card{
  padding:24px!important;
}
.kktf-runner-head{
  grid-template-columns:minmax(0,1fr) 205px;
  gap:18px;
}
.kktf-runner-head h2{
  font-size:clamp(46px,5.2vw,68px);
}
.kktf-runner-head>div:first-child>p:last-child{
  max-width:720px;
  font-size:16px;
}
.kktf-runner-layout{
  grid-template-columns:minmax(0,1fr) 265px;
  gap:14px;
}
.kktf-runner-jump{
  min-height:62px;
  font-size:29px;
}

/* Futter und Stufe im HUD sofort verständlich */
.kktf-runner-hud{
  flex-wrap:wrap;
}
.kktf-runner-hud>*{
  font-size:11px;
}
.kktf-runner-food-hud{
  background:var(--y)!important;
  border-color:var(--p)!important;
}
.kktf-runner-food-hud b{
  font-size:15px;
}

/* Bei laufendem Runner bleibt DAS DING sichtbar, aber winzig und aus dem Weg. */
body:has(.kktf-runner-stage.is-running) > .kktf-creature-float .kktf-creature-orb{
  transform:scale(.74);
  transform-origin:right bottom;
}
body:has(.kktf-runner-stage.is-running) > .kktf-creature-float .kktf-creature-panel{
  display:none!important;
}

@media(max-width:900px){
  .kktf-creature-story{
    grid-template-columns:115px minmax(0,1fr);
  }
  .kktf-runner-card{
    padding:18px!important;
  }
  .kktf-runner-layout{
    grid-template-columns:1fr;
  }
}

@media(max-width:650px){
  body > .kktf-creature-float{
    right:7px!important;
    bottom:7px!important;
  }
  body > .kktf-creature-float .kktf-creature-orb{
    width:70px;
    min-height:77px;
  }
  body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{
    transform:scale(.47);
    margin-right:-60px;
    margin-bottom:-53px;
  }
  body > .kktf-creature-float .kktf-creature-panel{
    width:min(306px,calc(100vw - 14px));
  }
  .kktf-runner-head h2{
    font-size:clamp(42px,13vw,58px);
  }
}


/* =========================================================================
   2.0.0 — DAS DING ALS GEMEINSAMES GEDÄCHTNIS
   ========================================================================= */

/* Die große DING-Fläche ist jetzt ein eigener, gewichtiger Einstieg. */
.kktf-app .kktf-creature-story{
  grid-template-columns:180px minmax(0,1fr) minmax(290px,350px)!important;
  gap:28px!important;
  padding:26px 30px!important;
  background:#0b0b0b!important;
  color:#fffdf8!important;
  box-shadow:10px 10px 0 #ffd335,18px 18px 0 #ff168f!important;
  overflow:visible!important;
}
.kktf-app .kktf-creature-story::before{
  content:"DAS DING / 2.0";
  position:absolute;
  right:20px;
  top:-14px;
  padding:5px 9px;
  border:3px solid #0b0b0b;
  background:#ffd335;
  color:#0b0b0b;
  font:900 11px/1 Arial,Helvetica,sans-serif;
  letter-spacing:.09em;
  transform:rotate(1.5deg);
}
.kktf-app .kktf-creature-story-art{
  min-height:170px!important;
  background:#ffd335!important;
  box-shadow:6px 6px 0 #ff168f!important;
}
.kktf-app .kktf-creature-story-copy h2{
  max-width:780px;
  color:#ffd335!important;
  font-size:clamp(42px,4.8vw,72px)!important;
  letter-spacing:-.025em;
}
.kktf-app .kktf-creature-story-copy>p:not(.kktf-label){
  max-width:800px!important;
  font-size:16px!important;
}
.kktf-app .kktf-creature-story-copy .kktf-label{color:#ff78bb!important}
.kktf-app .kktf-creature-open{
  background:#ffd335!important;
  color:#0b0b0b!important;
  -webkit-text-fill-color:#0b0b0b!important;
  box-shadow:5px 5px 0 #ff168f!important;
}
.kktf-app .kktf-creature-story-now{
  justify-content:flex-start!important;
  gap:7px;
  padding:18px!important;
  background:#fffdf8!important;
  color:#0b0b0b!important;
  box-shadow:6px 6px 0 #ffd335!important;
}
.kktf-app .kktf-creature-story-now>.kktf-creature-title{
  display:inline-block;
  align-self:flex-start;
  margin:0 0 5px!important;
  padding:5px 7px;
  background:#0b0b0b;
  color:#fff;
  font:900 11px/1 Arial,Helvetica,sans-serif!important;
  letter-spacing:.06em;
}
.kktf-app .kktf-creature-story-now>small{
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
}
.kktf-app .kktf-creature-story-now>.kktf-creature-ritual-title{
  margin:0!important;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(23px,2.25vw,32px)!important;
  line-height:.95!important;
}
.kktf-app .kktf-creature-story-now>.kktf-creature-ritual-copy{
  margin:0!important;
  font-size:12px!important;
  line-height:1.35;
  font-weight:780;
}
.kktf-creature-mini-progress,
.kktf-creature-progress{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
}
.kktf-creature-mini-progress{margin-top:auto}
.kktf-creature-mini-progress i,
.kktf-creature-progress i{
  display:block;
  height:17px;
  overflow:hidden;
  border:3px solid #0b0b0b;
  background:#fff;
}
.kktf-creature-mini-progress i b,
.kktf-creature-progress i b{
  display:block;
  width:0;
  height:100%;
  background:#ff168f;
  transition:width .45s cubic-bezier(.2,.8,.2,1);
}
.kktf-creature-mini-progress em,
.kktf-creature-progress em{
  min-width:54px;
  font:900 11px/1 Arial,Helvetica,sans-serif;
  font-style:normal;
  text-align:right;
}

/* Zusätzliche, mitwachsende Zeichen am bestehenden CSS-Wesen. */
.kktf-thing-art .aura{
  left:4px;
  top:4px;
  width:104px;
  height:104px;
  border:3px dashed #ff168f;
  border-radius:50%;
  opacity:0;
  z-index:0;
  pointer-events:none;
}
.kktf-thing-art .sigil{
  left:50px;
  top:51px;
  width:14px;
  height:14px;
  border:2px solid #0b0b0b;
  background:#fffdf8;
  transform:rotate(45deg);
  opacity:0;
  z-index:13;
  pointer-events:none;
}
.kktf-thing-art.stage-3 .sigil,
.kktf-thing-art.stage-4 .sigil,
.kktf-thing-art.stage-5 .sigil{opacity:1}
.kktf-thing-art.stage-4 .aura{opacity:.45}
.kktf-thing-art.stage-5 .aura{
  opacity:1;
  animation:kktfDingAura 8s linear infinite;
}
.kktf-thing-art.is-love .sigil{border-radius:50%;background:#ff168f}
.kktf-thing-art.is-energy .sigil{background:#ffd335;transform:rotate(45deg) skew(-12deg,-12deg)}
.kktf-thing-art.is-chaos .sigil{background:#0b0b0b;border-radius:50% 0 50% 0}
.kktf-thing-art.is-creativity .sigil{background:linear-gradient(135deg,#ff168f 0 50%,#ffd335 50%)}
.kktf-thing-art.is-sleeping:not(.stage-0){filter:grayscale(.28) saturate(.75)}
.kktf-thing-art.is-sleeping .eye.e1{height:3px;border-radius:0;transform:rotate(-8deg)}
.kktf-thing-art.is-ritual-complete .aura{opacity:1;border-style:solid;box-shadow:0 0 0 5px rgba(255,211,53,.38)}
@keyframes kktfDingAura{to{transform:rotate(360deg)}}

/* Das Floating-DING ist zugleich Fortschrittsanzeige und Reaktionsfläche. */
body > .kktf-creature-float{
  --y:#ffd335;
  --p:#ff168f;
  --b:#0b0b0b;
  --w:#fffdf8;
  --ritual-progress:0%;
  font-family:Arial,Helvetica,sans-serif;
}
body > .kktf-creature-float,
body > .kktf-creature-float *{box-sizing:border-box}
body > .kktf-creature-float .kktf-creature-orb{
  position:relative!important;
  width:94px!important;
  min-height:94px!important;
  height:94px!important;
  padding:0!important;
  border:4px solid #0b0b0b!important;
  border-radius:50%!important;
  background:#ffd335!important;
  box-shadow:5px 5px 0 #ff168f!important;
  isolation:isolate;
  overflow:visible!important;
}
body > .kktf-creature-float .kktf-creature-orb::before{
  content:""!important;
  position:absolute!important;
  inset:-10px!important;
  width:auto!important;
  height:auto!important;
  border:3px solid #0b0b0b!important;
  border-radius:50%!important;
  background:conic-gradient(#ff168f 0 var(--ritual-progress),#fffdf8 var(--ritual-progress) 100%)!important;
  transform:rotate(-90deg)!important;
  z-index:-2!important;
  opacity:1!important;
}
body > .kktf-creature-float .kktf-creature-orb::after{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:50%;
  background:#ffd335;
  z-index:-1;
}
body > .kktf-creature-float .kktf-creature-orb-progress{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  place-items:center;
  position:absolute!important;
  right:-10px!important;
  bottom:-7px!important;
  width:34px!important;
  height:27px!important;
  border:3px solid #0b0b0b;
  background:#fffdf8;
  color:#0b0b0b;
  font:900 10px/1 Arial,Helvetica,sans-serif!important;
  transform:rotate(3deg);
  z-index:40!important;
}
body > .kktf-creature-float[data-ritual="complete"] .kktf-creature-orb-progress{
  background:#ff168f;
  font-size:18px!important;
}
body > .kktf-creature-float.is-evolving .kktf-creature-orb{
  animation:kktfDingEvolve 1.5s cubic-bezier(.2,.8,.2,1) both!important;
}
@keyframes kktfDingEvolve{
  0%,100%{transform:scale(1) rotate(0)}
  18%{transform:scale(.72) rotate(-10deg)}
  48%{transform:scale(1.3) rotate(9deg);filter:brightness(1.25)}
  72%{transform:scale(.96) rotate(-3deg)}
}

body > .kktf-creature-float .kktf-creature-reaction{
  position:fixed;
  right:max(26px,calc(env(safe-area-inset-right) + 12px));
  bottom:max(140px,calc(env(safe-area-inset-bottom) + 126px));
  width:min(330px,calc(100vw - 36px));
  padding:12px 14px;
  border:3px solid #0b0b0b;
  background:#ffd335;
  color:#0b0b0b;
  box-shadow:5px 5px 0 #ff168f;
  font-size:13px;
  font-weight:900;
  line-height:1.25;
  pointer-events:none;
  z-index:2147483003;
}
body > .kktf-creature-float .kktf-creature-reaction.is-showing{
  animation:kktfDingReaction 5.2s ease both;
}
@keyframes kktfDingReaction{
  0%{opacity:0;transform:translateY(14px) rotate(1deg) scale(.92)}
  8%,82%{opacity:1;transform:translateY(0) rotate(-.5deg) scale(1)}
  100%{opacity:0;transform:translateY(-9px) rotate(-.5deg) scale(.98)}
}

/* Logisch gegliedertes Panel statt vier abstrakter Gesundheitsbalken. */
body > .kktf-creature-float .kktf-creature-panel{
  right:max(26px,env(safe-area-inset-right))!important;
  bottom:max(135px,calc(env(safe-area-inset-bottom) + 122px))!important;
  width:min(430px,calc(100vw - 52px))!important;
  max-width:calc(100vw - 52px)!important;
  max-height:calc(100dvh - 160px)!important;
  padding:18px!important;
  border:4px solid #0b0b0b!important;
  background:#fffdf8!important;
  box-shadow:8px 8px 0 #ff168f!important;
}
body > .kktf-creature-float .kktf-creature-panel-head strong{
  font-size:31px!important;
}
body > .kktf-creature-float .kktf-creature-panel>.kktf-creature-line{
  margin:10px 0 14px!important;
  padding:9px 10px;
  border-left:7px solid #ff168f;
  background:#fff1f8;
  font-size:13px!important;
}
body > .kktf-creature-float .kktf-creature-panel section{
  margin:11px 0 0;
  padding:12px;
  border:3px solid #0b0b0b;
}
body > .kktf-creature-float .kktf-creature-ritual{
  background:#ffd335;
  box-shadow:4px 4px 0 #0b0b0b;
}
.kktf-creature-section-label{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:8px;
  font-size:9px;
  font-weight:950;
  letter-spacing:.08em;
}
.kktf-creature-section-label b{
  padding:3px 5px;
  background:#0b0b0b;
  color:#fff;
  font-size:9px;
  letter-spacing:0;
}
.kktf-creature-ritual-badge.is-complete{background:#ff168f}
body > .kktf-creature-float .kktf-creature-ritual>.kktf-creature-ritual-title{
  display:block;
  font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:27px;
  line-height:.95;
}
body > .kktf-creature-float .kktf-creature-ritual>.kktf-creature-ritual-copy{
  margin:7px 0 10px;
  font-size:12px;
  line-height:1.35;
  font-weight:760;
}
.kktf-creature-ritual-go{
  width:100%;
  margin-top:10px;
  padding:8px 10px;
  border:3px solid #0b0b0b;
  background:#0b0b0b;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font:900 12px/1 Arial,Helvetica,sans-serif;
  cursor:pointer;
}
body > .kktf-creature-float .kktf-creature-growth{background:#fff}
body > .kktf-creature-float .kktf-creature-growth .kktf-creature-progress i b{background:#ffd335}
body > .kktf-creature-float .kktf-creature-growth>small{
  display:block;
  margin-top:7px;
  font-size:9px;
  font-weight:900;
}
body > .kktf-creature-float .kktf-creature-week>p{
  margin:0 0 8px;
  font-size:11px;
  font-weight:800;
}
.kktf-creature-mix{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.kktf-creature-mix>div{
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:5px;
  padding:7px;
  overflow:hidden;
  border:2px solid #0b0b0b;
  background:linear-gradient(90deg,#ffd335 0 var(--mix),#fff var(--mix) 100%);
  font-size:9px;
  font-weight:950;
}
.kktf-creature-mix>div.is-dominant{box-shadow:3px 3px 0 #ff168f}
.kktf-creature-mix strong{font-size:10px}
body > .kktf-creature-float .kktf-creature-memories{background:#0b0b0b;color:#fff}
body > .kktf-creature-float .kktf-creature-memories .kktf-creature-section-label b{background:#ffd335;color:#0b0b0b}
.kktf-creature-memories ul{
  display:grid;
  gap:5px;
  margin:0;
  padding:0;
  list-style:none;
}
.kktf-creature-memories li{
  padding-left:14px;
  font-size:10px;
  line-height:1.3;
  font-weight:750;
}
.kktf-creature-memories li::before{content:"↳";margin-left:-14px;margin-right:5px;color:#ffd335}
body > .kktf-creature-float .kktf-creature-privacy{
  display:block;
  margin-top:11px;
  font-size:9px;
  line-height:1.35;
  font-weight:800;
}
.kktf-app .kktf-creature-points-here{
  animation:kktfDingPointsHere 1.7s ease both!important;
}
@keyframes kktfDingPointsHere{
  0%,100%{box-shadow:var(--kktf-old-shadow,9px 9px 0 #0b0b0b)}
  25%,70%{box-shadow:0 0 0 8px #ff168f,12px 12px 0 #ffd335}
}

@media(max-width:980px){
  .kktf-app .kktf-creature-story{
    grid-template-columns:150px minmax(0,1fr)!important;
  }
  .kktf-app .kktf-creature-story-now{grid-column:1/-1}
}

@media(max-width:650px){
  body.kktf-has-tischfunk{overflow-x:clip}
  .kktf-app .kktf-creature-story{
    grid-template-columns:92px minmax(0,1fr)!important;
    gap:15px!important;
    padding:18px!important;
    box-shadow:7px 7px 0 #ffd335,12px 12px 0 #ff168f!important;
  }
  .kktf-app .kktf-creature-story-art{min-height:112px!important}
  .kktf-app .kktf-creature-story-art .kktf-thing-art{transform:scale(.78)}
  .kktf-app .kktf-creature-story-copy h2{font-size:clamp(31px,10vw,46px)!important}
  .kktf-app .kktf-creature-story-copy>p:not(.kktf-label){font-size:13px!important}
  .kktf-app .kktf-creature-story-copy>p:nth-of-type(3){display:none}
  .kktf-app .kktf-creature-open{width:100%;font-size:17px!important}
  .kktf-app .kktf-creature-story-now{grid-column:1/-1;padding:14px!important}

  body > .kktf-creature-float .kktf-creature-orb{
    width:82px!important;
    min-height:82px!important;
    height:82px!important;
  }
  body > .kktf-creature-float .kktf-peck-wrap .kktf-thing-art{
    transform:translate(-50%,-51%) scale(.58)!important;
  }
  body > .kktf-creature-float .kktf-creature-panel{
    left:max(12px,calc(env(safe-area-inset-left) + 8px))!important;
    right:max(12px,calc(env(safe-area-inset-right) + 8px))!important;
    bottom:max(112px,calc(env(safe-area-inset-bottom) + 98px))!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - 132px)!important;
    padding:13px!important;
  }
  body > .kktf-creature-float .kktf-creature-panel-head strong{font-size:25px!important}
  body > .kktf-creature-float .kktf-creature-panel section{padding:10px}
  body > .kktf-creature-float .kktf-creature-ritual>.kktf-creature-ritual-title{font-size:23px}
  body > .kktf-creature-float .kktf-creature-reaction{
    left:max(12px,calc(env(safe-area-inset-left) + 8px));
    right:max(12px,calc(env(safe-area-inset-right) + 8px));
    bottom:max(118px,calc(env(safe-area-inset-bottom) + 104px));
    width:auto;
  }
}

@media(max-width:390px){
  .kktf-app .kktf-creature-story{grid-template-columns:1fr!important}
  .kktf-app .kktf-creature-story-art{display:none!important}
  .kktf-creature-mix{grid-template-columns:1fr}
  body > .kktf-creature-float .kktf-creature-panel{
    max-height:calc(100dvh - 118px)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .kktf-thing-art .aura,
  body > .kktf-creature-float.is-evolving .kktf-creature-orb,
  body > .kktf-creature-float .kktf-creature-reaction.is-showing,
  .kktf-app .kktf-creature-points-here{animation:none!important}
}

/* ========================================================================
   2.2.0 — ZEITUNGSSHELL: START, KIOSK, LIVE UND EINZELANSICHTEN
   Die Welt bleibt gemeinsam live; auf kleinen Bildschirmen ist aber immer
   nur die gerade benötigte schwere Oberfläche sichtbar.
   ======================================================================== */
.kktf-app [hidden]{display:none!important}
body.kktf-has-tischfunk{padding-bottom:max(88px,calc(env(safe-area-inset-bottom) + 76px))}
.kktf-app{--shell-radius:0;padding-bottom:24px}

.kktf-shell-signal{
  display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px;
  align-items:center;margin:0 0 24px;padding:12px 15px;background:var(--b);
  color:var(--w);border:3px solid var(--b);box-shadow:5px 5px 0 var(--p)
}
.kktf-shell-signal-dot,.kktf-tab-live-dot{
  display:inline-block;width:10px;height:10px;border-radius:50%;background:#42ef7d;
  box-shadow:0 0 0 4px rgba(66,239,125,.2);animation:kktf-shell-pulse 2.3s ease-in-out infinite
}
.kktf-shell-signal>strong{font-size:11px;letter-spacing:.08em;white-space:nowrap}
.kktf-shell-signal p{margin:0;font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kktf-shell-signal button,.kktf-shell-page-head>button,.kktf-module-bar>button{
  border:0;background:var(--y);color:var(--b);padding:8px 10px;font-size:10px;
  font-weight:950;letter-spacing:.05em;cursor:pointer
}
@keyframes kktf-shell-pulse{50%{opacity:.45;transform:scale(.78)}}

.kktf-home-actions{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
  margin:18px 0 24px;padding-bottom:22px;border-bottom:4px solid var(--b)
}
.kktf-home-actions button{
  min-height:86px;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:1fr auto;
  align-items:center;gap:0 10px;text-align:left;border:3px solid var(--b);background:var(--w);
  color:var(--b);padding:10px;box-shadow:4px 4px 0 var(--b);cursor:pointer
}
.kktf-home-actions button:nth-child(2n){background:var(--y)}
.kktf-home-actions button:nth-child(5){background:var(--p)}
.kktf-home-actions button>span{grid-row:1/3;font-size:28px;text-align:center}
.kktf-home-actions button strong{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:22px;line-height:.9}
.kktf-home-actions button small{font-size:9px;font-weight:950;letter-spacing:.08em;opacity:.72}
.kktf-home-actions button:active,.kktf-kiosk-buttons button:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--b)}

.kktf-shell-page{
  margin:0 0 32px;padding:24px;border:4px solid var(--b);background:var(--w);
  box-shadow:9px 9px 0 var(--b)
}
.kktf-shell-page-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  margin-bottom:24px;padding-bottom:18px;border-bottom:4px solid var(--b)
}
.kktf-shell-page-head h2{
  margin:0;font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(38px,6vw,72px);line-height:.88;text-transform:uppercase
}
.kktf-shell-page-head>button{background:var(--b);color:var(--w);min-height:42px}
.kktf-kiosk-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.kktf-kiosk-groups>section{border-top:8px solid var(--p);padding-top:10px}
.kktf-kiosk-groups>section:nth-child(2n){border-color:var(--y)}
.kktf-kiosk-groups h3{margin:0 0 10px;font-size:13px;letter-spacing:.08em}
.kktf-kiosk-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.kktf-kiosk-buttons button{
  min-height:82px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:1fr auto;
  gap:0 8px;align-items:center;text-align:left;border:3px solid var(--b);background:#fff;
  color:var(--b);padding:9px;box-shadow:3px 3px 0 var(--b);cursor:pointer
}
.kktf-kiosk-buttons button b{grid-row:1/3;font-size:21px;text-align:center}
.kktf-kiosk-buttons button span{font-family:Impact,"Arial Black",Arial,sans-serif;font-size:18px;line-height:.92}
.kktf-kiosk-buttons button small{font-size:8px;font-weight:950;letter-spacing:.06em;opacity:.68}

.kktf-live-summary{
  display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:center;
  padding:18px;border:3px solid var(--b);background:var(--y)
}
.kktf-live-summary p{grid-column:2;margin:0;font-weight:750;line-height:1.3}
.kktf-live-events{display:grid;gap:8px;margin:18px 0;padding:0;list-style:none}
.kktf-live-events li{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:12px;border-left:7px solid var(--p);background:#f4f0e8;font-weight:800}
.kktf-live-events time{font-size:10px;font-weight:950;letter-spacing:.08em}
.kktf-live-shortcuts{display:flex;flex-wrap:wrap;gap:8px}
.kktf-live-shortcuts button{border:3px solid var(--b);background:var(--b);color:#fff;padding:11px 13px;font-weight:950;cursor:pointer}

.kktf-module-bar{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;
  margin:0 0 20px;padding:12px;border:3px solid var(--b);background:var(--y);box-shadow:5px 5px 0 var(--b)
}
.kktf-module-bar>div{text-align:center;min-width:0}
.kktf-module-bar>div span{display:block;font-size:8px;font-weight:950;letter-spacing:.1em}
.kktf-module-bar-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:24px}
.kktf-app[data-shell-view="module"] .kktf-grid{display:block}
.kktf-app[data-shell-view="module"] .kktf-grid>.kktf-card{
  width:100%;max-width:1040px;margin:0 auto;transform:none!important
}
.kktf-app[data-shell-view="module"] .kktf-grid>.kktf-card[data-module="who"],
.kktf-app[data-shell-view="module"] .kktf-grid>.kktf-card[data-module="word"]{min-height:0}
.kktf-app[data-shell-view="module"] [data-module="creature-story"]{margin-top:0}
.kktf-app[data-shell-view="module"] [data-module="doppelstadt"]{margin-top:0}

.kktf-shell-tabs{
  position:fixed;z-index:2147482500;left:50%;bottom:max(8px,env(safe-area-inset-bottom));
  transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);
  width:min(560px,calc(100% - 16px));background:var(--b);border:3px solid var(--b);
  box-shadow:0 7px 26px rgba(0,0,0,.34)
}
.kktf-shell-tabs button{
  position:relative;min-height:58px;display:grid;place-items:center;align-content:center;gap:2px;
  border:0;border-right:1px solid rgba(255,255,255,.2);background:var(--b);color:#fff;
  padding:7px 5px;cursor:pointer
}
.kktf-shell-tabs button:last-child{border-right:0}
.kktf-shell-tabs button>span:not(.kktf-tab-live-dot){font-size:17px;line-height:1}
.kktf-shell-tabs button strong{font-size:9px;letter-spacing:.06em}
.kktf-shell-tabs button.is-active{background:var(--y);color:var(--b)}
.kktf-shell-tabs .kktf-tab-live-dot{width:9px;height:9px;margin:4px}
.kktf-shell-tabs button:focus-visible,.kktf-home-actions button:focus-visible,
.kktf-kiosk-buttons button:focus-visible,.kktf-module-bar button:focus-visible{
  outline:4px solid var(--p);outline-offset:-4px
}
body>.kktf-creature-float{bottom:max(88px,calc(env(safe-area-inset-bottom) + 74px))!important}
body>.kktf-creature-float .kktf-creature-panel{bottom:max(168px,calc(env(safe-area-inset-bottom) + 148px))!important}

@media(max-width:800px){
  .kktf-app{width:min(100% - 12px,700px);margin-top:10px}
  .kktf-shell-signal{grid-template-columns:auto auto minmax(0,1fr);padding:10px;margin-bottom:16px}
  .kktf-shell-signal p{grid-column:2/4;grid-row:2;white-space:normal;font-size:11px}
  .kktf-shell-signal button{grid-column:3;grid-row:1;justify-self:end;padding:7px;font-size:8px}
  .kktf-home-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kktf-home-actions button{min-height:78px;grid-template-columns:35px minmax(0,1fr);padding:8px;box-shadow:3px 3px 0 var(--b)}
  .kktf-home-actions button>span{font-size:23px}
  .kktf-home-actions button strong{font-size:clamp(18px,5.6vw,24px)}
  .kktf-shell-page{padding:16px;border-width:3px;box-shadow:5px 5px 0 var(--b)}
  .kktf-shell-page-head{display:grid;gap:12px}
  .kktf-shell-page-head h2{font-size:clamp(38px,12vw,58px)}
  .kktf-shell-page-head>button{justify-self:start}
  .kktf-kiosk-groups{grid-template-columns:1fr;gap:22px}
  .kktf-kiosk-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .kktf-kiosk-buttons button{min-height:76px;grid-template-columns:30px 1fr;padding:7px}
  .kktf-kiosk-buttons button span{font-size:clamp(15px,4.4vw,20px)}
  .kktf-module-bar{position:sticky;top:6px;z-index:80;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;padding:8px}
  .kktf-module-bar>button{font-size:8px;padding:8px 6px}
  .kktf-module-bar-title{font-size:19px}
  .kktf-app[data-shell-view="module"] .kktf-grid>.kktf-card{padding:14px!important;box-shadow:4px 4px 0 var(--b)}
  body>.kktf-creature-float{right:8px!important;bottom:max(79px,calc(env(safe-area-inset-bottom) + 68px))!important}
  body>.kktf-creature-float .kktf-creature-panel{bottom:max(145px,calc(env(safe-area-inset-bottom) + 132px))!important}
}

@media(max-width:390px){
  .kktf-home-actions button strong{font-size:17px}
  .kktf-home-actions button small{font-size:7px}
  .kktf-kiosk-buttons button span{font-size:14px}
  .kktf-shell-tabs button{min-height:55px}
}

@media(prefers-reduced-motion:reduce){
  .kktf-shell-signal-dot,.kktf-tab-live-dot{animation:none}
}


/* =========================================================================
   1.8.2 — MOBILE / ANDROID / LESBARKEIT
   ========================================================================= */

/* Android hat Impact / Arial Black oft nicht. Die Theme-Regeln können dann
   einen zu dünnen Fallback liefern. Display-Schriften bleiben explizit fett. */
.kktf-app .kktf-news-title h1,
.kktf-app .kktf-news-front-head h2,
.kktf-app .kktf-news-rubric h2,
.kktf-app .kktf-card h2,
.kktf-app .kktf-runner-head h2,
.kktf-app .kktf-runner-overlay>strong,
.kktf-app .kktf-runner-result>strong,
.kktf-app .kktf-news-edition strong,
.kktf-app .kktf-news-rubric-no,
.kktf-app .kktf-creature-story-copy h2,
.kktf-app .kktf-creature-story-now>strong,
.kktf-language-switch .kuku-ds-call,
.kktf-language-switch .kuku-ds-word{
  font-weight:900!important;
}

/* DESKTOP: Mikrotypografie auf echte Leseschrift anheben. */
.kktf-app .kktf-label{font-size:13px!important;line-height:1.3!important}
.kktf-app .kktf-news-topline{font-size:12px!important;line-height:1.35!important}
.kktf-app .kktf-news-edition span{font-size:12px!important}
.kktf-app .kktf-news-edition small{font-size:11px!important;line-height:1.4!important}
.kktf-app .kktf-news-front-head>span{font-size:12px!important}
.kktf-app .kktf-news-rubric p{font-size:12px!important}
.kktf-app .kktf-news-rubric small{font-size:14px!important;line-height:1.4!important}
.kktf-app .kktf-paper-numbers span,.kktf-app .kktf-news-numbers span{font-size:11px!important;line-height:1.3!important}

.kktf-app .kktf-runner-head>div:first-child>p:last-child{font-size:18px!important;line-height:1.42!important}
.kktf-app .kktf-runner-meta{padding:15px!important}
.kktf-app .kktf-runner-meta strong{font-size:27px!important;line-height:.98!important}
.kktf-app .kktf-runner-meta span{font-size:13px!important;line-height:1.35!important}
.kktf-app .kktf-runner-result,.kktf-app .kktf-runner-highscores,.kktf-app .kktf-runner-help{padding:15px!important}
.kktf-app .kktf-runner-result>strong{font-size:31px!important;line-height:.96!important}
.kktf-app .kktf-runner-result>span{font-size:14px!important;line-height:1.4!important}
.kktf-app .kktf-runner-highscores li{font-size:14px!important;padding:8px 0!important}
.kktf-app .kktf-runner-help{font-size:15px!important;line-height:1.5!important}
.kktf-app .kktf-runner-note{font-size:15px!important;line-height:1.45!important}
.kktf-app .kktf-runner-hud>*{font-size:13px!important}
.kktf-app .kktf-runner-hud strong{font-size:22px!important}

@media(max-width:800px){
  /* Unabhängig von der Breite des WordPress-Content-Blocks: echter Viewport. */
  .kktf-app{
    width:100vw!important;max-width:100vw!important;
    margin:10px 0 56px!important;padding:0 10px!important;
    position:relative;left:50%;transform:translateX(-50%);
    overflow-x:clip;
  }
  .kktf-app .kktf-news-masthead,
  .kktf-app .kktf-news-front,
  .kktf-app .kktf-language-switch,
  .kktf-app .kktf-creature-story{
    width:100%!important;max-width:100%!important;
    left:auto!important;right:auto!important;transform:none!important;
    margin-left:0!important;margin-right:0!important;
  }
  .kktf-app .kktf-grid,.kktf-app .kktf-card,.kktf-app .kktf-news-rubric{
    width:100%;max-width:100%;min-width:0;
  }

  /* Zeitungskopf */
  .kktf-app .kktf-news-masthead{margin-top:10px!important;box-shadow:6px 6px 0 var(--p)}
  .kktf-app .kktf-news-nameplate{grid-template-columns:1fr!important;gap:13px!important;padding:16px!important;min-width:0}
  .kktf-app .kktf-news-title{min-width:0;overflow:hidden}
  .kktf-app .kktf-news-title h1{
    font-size:clamp(45px,13.5vw,58px)!important;
    line-height:.86!important;letter-spacing:-.055em!important;
    white-space:nowrap!important;max-width:100%;
  }
  .kktf-app .kktf-news-title .kktf-lead{font-size:16px!important;line-height:1.4!important;margin-top:14px!important}
  .kktf-app .kktf-eyebrow{font-size:12px!important;line-height:1.35!important}
  .kktf-app .kktf-news-edition{padding:12px 0!important}
  .kktf-app .kktf-news-edition strong{font-size:44px!important;line-height:.95!important}
  .kktf-app .kktf-news-edition span{font-size:12px!important}
  .kktf-app .kktf-news-edition small{font-size:11px!important}
  .kktf-app .kktf-news-masthead .kktf-alias-box{width:100%!important;max-width:none!important;transform:rotate(.35deg)!important;padding:15px!important}
  .kktf-app .kktf-alias-box strong{font-size:24px!important}
  .kktf-app .kktf-linkbtn{font-size:13px!important}

  /* Sprachregler */
  .kktf-app .kktf-language-switch{margin:16px 0 24px!important;padding:12px!important;box-shadow:6px 6px 0 var(--p)}
  .kktf-app .kktf-language-switch-head{margin-bottom:10px!important;padding:10px!important}
  .kktf-app .kktf-language-switch-head span{font-size:19px!important}
  .kktf-app .kktf-language-switch-head p{font-size:12px!important;line-height:1.35!important}
  .kktf-app .kktf-language-switch .kuku-ds-stage{height:245px!important;width:100%!important;max-width:100%!important;box-shadow:5px 5px 0 var(--y)!important}
  .kktf-app .kktf-language-switch .kuku-ds-side{padding:13px 10px!important}
  .kktf-app .kktf-language-switch .kuku-ds-city{font-size:13px!important;line-height:1.25!important}
  .kktf-app .kktf-language-switch .kuku-ds-call{font-size:clamp(27px,8vw,34px)!important;line-height:.92!important;letter-spacing:-.03em!important}
  .kktf-app .kktf-language-switch .kuku-ds-marker{width:50px!important;height:50px!important}
  .kktf-app .kktf-language-switch .kuku-ds-rooster{width:46px!important;height:46px!important;font-size:12px!important;border-width:3px!important;box-shadow:4px 4px 0 var(--p)!important}
  .kktf-app .kktf-language-switch .kuku-ds-bridge{height:58px!important}
  .kktf-app .kktf-language-switch .kuku-ds-range{height:78px!important}
  .kktf-app .kktf-language-switch .kuku-ds-language{margin-top:15px!important}
  .kktf-app .kktf-language-switch .kuku-ds-words{gap:8px!important;margin:10px 0!important;flex-wrap:nowrap!important}
  .kktf-app .kktf-language-switch .kuku-ds-word{font-size:clamp(20px,6.3vw,27px)!important;min-width:0}
  .kktf-app .kktf-language-switch .kuku-ds-arrow{font-size:19px!important}
  .kktf-app .kktf-language-switch .kuku-ds-percent{font-size:11px!important}
  .kktf-app .kktf-language-switch .kuku-ds-hint{font-size:10px!important;line-height:1.35!important}

  /* Zeitung und Rubriken */
  .kktf-app .kktf-news-front{padding:14px!important}
  .kktf-app .kktf-news-front-head h2{font-size:clamp(32px,10vw,43px)!important}
  .kktf-app .kktf-news-rubric{grid-template-columns:54px minmax(0,1fr)!important;gap:10px!important}
  .kktf-app .kktf-news-rubric-no{width:50px!important;height:50px!important;font-size:27px!important}
  .kktf-app .kktf-news-rubric h2{font-size:clamp(30px,9vw,40px)!important;overflow-wrap:anywhere}
  .kktf-app .kktf-news-rubric p{font-size:11px!important}
  .kktf-app .kktf-news-rubric small{font-size:13px!important}
  .kktf-app .kktf-card{padding:17px!important}

  /* Runner */
  .kktf-app .kktf-runner-card{padding:17px!important}
  .kktf-app .kktf-runner-head{grid-template-columns:1fr!important;gap:13px!important}
  .kktf-app .kktf-runner-head h2{font-size:clamp(42px,13vw,57px)!important;line-height:.86!important}
  .kktf-app .kktf-runner-head>div:first-child>p:last-child{font-size:16px!important;line-height:1.42!important}
  .kktf-app .kktf-runner-meta{width:100%;justify-self:stretch!important}
  .kktf-app .kktf-runner-meta strong{font-size:24px!important}
  .kktf-app .kktf-runner-meta span{font-size:13px!important}
  .kktf-app .kktf-runner-layout{grid-template-columns:1fr!important;gap:14px!important}
  .kktf-app .kktf-runner-canvas{aspect-ratio:2.15/1!important;object-fit:cover}
  .kktf-app .kktf-runner-overlay{padding:12px!important}
  .kktf-app .kktf-runner-overlay>strong{font-size:clamp(38px,12vw,51px)!important}
  .kktf-app .kktf-runner-overlay>p{font-size:14px!important}
  .kktf-app .kktf-runner-hud{left:7px!important;top:7px!important;gap:5px!important}
  .kktf-app .kktf-runner-hud>*{padding:5px 7px!important;font-size:11px!important}
  .kktf-app .kktf-runner-hud strong{font-size:18px!important}
  .kktf-app .kktf-runner-jump{min-height:64px!important;font-size:28px!important}
  .kktf-app .kktf-runner-note{font-size:14px!important}
  .kktf-app .kktf-runner-side{grid-template-columns:1fr!important}
  .kktf-app .kktf-runner-result>strong{font-size:29px!important}
  .kktf-app .kktf-runner-result>span,.kktf-app .kktf-runner-highscores li,.kktf-app .kktf-runner-help{font-size:14px!important}

  /* Floating creature */
  body > .kktf-creature-float{right:7px!important;bottom:7px!important}
  body > .kktf-creature-float .kktf-creature-orb{width:62px!important;min-height:69px!important;box-shadow:4px 4px 0 var(--p)!important}
  body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{transform:scale(.40)!important;margin-right:-66px!important;margin-bottom:-58px!important}
  body > .kktf-creature-float .kktf-creature-orb>span{font-size:11px!important}
  body > .kktf-creature-float .kktf-creature-panel{width:min(310px,calc(100vw - 18px))!important;max-height:calc(100vh - 24px);overflow:auto}
}

@media(max-width:380px){
  .kktf-app .kktf-news-title h1{font-size:44px!important}
  .kktf-app .kktf-news-title .kktf-lead{font-size:15px!important}
  .kktf-app .kktf-language-switch .kuku-ds-call{font-size:25px!important}
  .kktf-app .kktf-language-switch .kuku-ds-word{font-size:19px!important}
}


/* =========================================================================
   1.8.3 — MAGNETTAFEL AUF HANDY = SKALIERTE GEMEINSAME DESKTOP-TAFEL
   ========================================================================= */

.kktf-mag-mobile-viewport{
  position:relative;
  width:100%;
  max-width:100%;
  overflow:hidden;
}

/* Desktop bleibt vollständig wie bisher. */
@media(min-width:783px){
  .kktf-mag-mobile-viewport{
    height:auto!important;
    overflow:visible;
  }
  .kktf-mag-mobile-viewport > .kuku-mag-board{
    transform:none!important;
    width:100%!important;
  }
}

@media(max-width:782px){
  .kktf-app .kktf-embed-magnets{
    overflow:hidden;
  }

  .kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport{
    width:100%;
    margin-top:4px;
    overflow:hidden;
    border:0;
  }

  /* Das Plugin selbst setzt mobil 650px Höhe und 16px Wortgröße.
     Wir benutzen stattdessen eine virtuelle 700px breite Tafel und skalieren
     ALLES gemeinsam – Position, Wortgröße, Schatten und Würfel. */
  .kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport > .kuku-mag-board{
    position:absolute!important;
    left:0!important;
    top:0!important;
    max-width:none!important;
    min-width:700px!important;
    width:700px!important;
    height:650px!important;
    margin:0!important;
    transform-origin:top left!important;
    box-shadow:12px 12px 0 var(--p)!important;
  }

  .kktf-app .kktf-embed-magnets .kuku-magnet{
    max-width:31%!important;
    padding:9px 14px 8px!important;
    font-size:22px!important;
    line-height:1!important;
  }

  /* Unter der skalierten Tafel bleiben Status/Hinweise normal groß lesbar. */
  .kktf-app .kktf-embed-magnets .kuku-mag-status{
    margin-top:16px!important;
    font-size:14px!important;
    line-height:1.35!important;
  }
  .kktf-app .kktf-embed-magnets .kuku-mag-foot{
    font-size:13px!important;
    line-height:1.4!important;
  }
}

/* Auf sehr schmalen Geräten etwas mehr Luft um die Tafel herum. */
@media(max-width:380px){
  .kktf-app .kktf-embed-magnets{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}


/* =========================================================================
   1.8.4 — DAS DING PICKT + MOBILE UX + PRIVATE KETTE
   ========================================================================= */

/* Floating-DAS-DING: zwei kleine Pickbewegungen, dann wieder Ruhe.
   translate/rotate kollidieren nicht mit dem bestehenden transform:scale(). */
body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{
  transform-origin:72% 78%!important;
  animation:kktfThingPeck 5.2s ease-in-out infinite!important;
}
@keyframes kktfThingPeck{
  0%,61%,100%{translate:0 0;rotate:0deg}
  65%{translate:2px 5px;rotate:7deg}
  68%{translate:0 0;rotate:0deg}
  72%{translate:2px 6px;rotate:8deg}
  75%{translate:0 0;rotate:0deg}
  82%{translate:0 -2px;rotate:-2deg}
  86%{translate:0 0;rotate:0deg}
}
body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art .eye.e1{
  animation:kktfThingBlink 6.1s steps(1,end) infinite;
}
@keyframes kktfThingBlink{
  0%,47%,50%,100%{transform:scaleY(1)}
  48%,49%{transform:scaleY(.15)}
}

/* Mehr Luft zum Bildschirmrand. */
body > .kktf-creature-float{
  right:max(18px, env(safe-area-inset-right))!important;
  bottom:max(18px, env(safe-area-inset-bottom))!important;
}
body > .kktf-creature-float .kktf-creature-panel{
  max-width:calc(100vw - 36px)!important;
}

/* Private Empfehlungskette: klare Datenschutzaussage statt Rand-Fußnote. */
.kktf-app .kktf-reco-foot{
  margin:20px 0 0!important;
  padding:12px 14px!important;
  border:3px solid var(--b);
  background:#fffdf8;
  opacity:1!important;
  font-size:13px!important;
  line-height:1.4!important;
  font-weight:800!important;
}
.kktf-app .kktf-reco-foot strong{font-weight:950}
.kktf-app .kktf-reco-body{overflow:hidden}

@media(max-width:650px){
  /* DAS-DING-Erklärung logisch als Einspalter. */
  .kktf-app .kktf-creature-story{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
    padding:18px!important;
  }
  .kktf-app .kktf-creature-story-art{
    min-height:150px!important;
    display:grid!important;
    place-items:center!important;
    width:100%!important;
  }
  .kktf-app .kktf-creature-story-art .kktf-thing-art{
    transform:scale(1.12)!important;
    transform-origin:center!important;
  }
  .kktf-app .kktf-creature-story-copy{min-width:0}
  .kktf-app .kktf-creature-story-copy h2{
    margin-top:5px!important;
    font-size:clamp(40px,12.5vw,56px)!important;
    line-height:.88!important;
  }
  .kktf-app .kktf-creature-story-copy>p:not(.kktf-label){
    font-size:16px!important;
    line-height:1.45!important;
  }
  .kktf-app .kktf-creature-open{
    width:100%!important;
    min-height:62px;
    padding:13px 15px!important;
    font-size:20px!important;
    line-height:1.15!important;
  }
  .kktf-app .kktf-creature-story-now{
    grid-column:auto!important;
    width:100%!important;
    min-height:0!important;
    padding:16px!important;
  }
  .kktf-app .kktf-creature-story-now>strong{
    font-size:31px!important;
    line-height:.95!important;
  }
  .kktf-app .kktf-creature-story-now>p{
    font-size:15px!important;
    line-height:1.35!important;
  }

  /* Empfehlungskette mit echtem Innenraum. */
  .kktf-app .kktf-card-reco{padding:16px!important}
  .kktf-app .kktf-reco-head{
    gap:13px!important;
    margin-bottom:16px!important;
  }
  .kktf-app .kktf-reco-body{
    padding:16px!important;
    box-shadow:5px 5px 0 var(--p)!important;
  }
  .kktf-app .kktf-reco-letter{
    padding:16px!important;
    box-shadow:5px 5px 0 var(--y)!important;
  }
  .kktf-app .kktf-reco-letter-text{
    font-size:clamp(28px,9vw,42px)!important;
  }
  .kktf-app .kktf-reco-rule{padding:13px!important}
  .kktf-app .kktf-reco-foot{
    margin-top:16px!important;
    padding:11px 12px!important;
    font-size:13px!important;
  }

  /* Der Begleiter nicht mehr an die Gerätekante gequetscht. */
  body > .kktf-creature-float{
    right:max(16px, env(safe-area-inset-right))!important;
    bottom:max(16px, env(safe-area-inset-bottom))!important;
  }
  body > .kktf-creature-float .kktf-creature-orb{
    width:58px!important;
    min-height:66px!important;
  }
  body > .kktf-creature-float .kktf-creature-panel{
    width:min(306px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important;
  }
}

/* Im laufenden Runner kleiner, aber weiterhin mit Abstand zum Rand. */
body:has(.kktf-runner-stage.is-running) > .kktf-creature-float{
  right:max(18px, env(safe-area-inset-right))!important;
  bottom:max(18px, env(safe-area-inset-bottom))!important;
}
body:has(.kktf-runner-stage.is-running) > .kktf-creature-float .kktf-creature-orb{
  transform:scale(.68)!important;
}


/* =========================================================================
   1.8.5 — FLOATING-HAHN AUF HANDY: NUR DER HAHN, KEIN SCHILD
   ========================================================================= */

/* Desktop bleibt beim kleinen gelben Begleiter-Kärtchen. */
@media(max-width:650px){

  /* Eigener kleiner Hitbereich, visuell aber fast nur das Wesen. */
  body > .kktf-creature-float{
    right:max(24px, env(safe-area-inset-right))!important;
    bottom:max(24px, env(safe-area-inset-bottom))!important;
    width:58px!important;
    min-width:58px!important;
    align-items:center!important;
  }

  body > .kktf-creature-float .kktf-creature-orb{
    position:relative!important;
    width:58px!important;
    height:58px!important;
    min-height:58px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    display:block!important;
  }

  /* Kleine gelbe Scheibe hinter dem Hahn, aber kein großer Kasten. */
  body > .kktf-creature-float .kktf-creature-orb::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:46px;
    height:46px;
    transform:translate(-50%,-50%) rotate(-4deg);
    border:3px solid #0b0b0b;
    border-radius:50%;
    background:#ffd335;
    box-shadow:4px 4px 0 #ff168f;
    z-index:0;
  }

  /* Alten Margin-Hack vollständig neutralisieren:
     der 112px-Zeichenraum wird einfach sauber in die Mitte skaliert. */
  body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:112px!important;
    height:112px!important;
    margin:0!important;
    transform:translate(-50%,-51%) scale(.43)!important;
    transform-origin:center!important;
    z-index:2!important;
  }

  /* Auf dem Handy reicht das Wesen selbst als Button. */
  body > .kktf-creature-float .kktf-creature-orb>span{
    display:none!important;
  }

  body > .kktf-creature-float .kktf-creature-panel{
    right:0!important;
    width:min(306px,calc(100vw - 48px))!important;
    max-width:calc(100vw - 48px)!important;
  }

  /* Im Runner noch kleiner, aber weiterhin komplett sichtbar. */
  body:has(.kktf-runner-stage.is-running) > .kktf-creature-float{
    right:max(26px, env(safe-area-inset-right))!important;
    bottom:max(26px, env(safe-area-inset-bottom))!important;
  }
  body:has(.kktf-runner-stage.is-running) > .kktf-creature-float .kktf-creature-orb{
    transform:scale(.78)!important;
    transform-origin:right bottom!important;
  }

  /* Sprachregler: rechte Wortseite bekommt ein wenig zusätzlichen Innenraum,
     damit KUKURYKU selbst bei einem vorbeischwebenden Hahn sauber lesbar bleibt. */
  .kktf-app .kktf-language-switch .kuku-ds-side:last-child{
    padding-right:18px!important;
  }
  .kktf-app .kktf-language-switch .kuku-ds-side:last-child .kuku-ds-call{
    padding-right:5px!important;
  }
}

@media(max-width:380px){
  body > .kktf-creature-float{
    right:max(20px, env(safe-area-inset-right))!important;
    bottom:max(20px, env(safe-area-inset-bottom))!important;
  }
}


/* =========================================================================
   1.8.6 — EIN FLOATING-HAHN ÜBERALL + ECHTES PICKEN + RUNNER-HAHN SICHTBAR
   ========================================================================= */

/* Auch Desktop bekommt jetzt die saubere runde Variante vom Handy.
   Kein gelbes Rechteck mehr, aus dem der Hahn rechts herausragt. */
body > .kktf-creature-float{
  --kktf-float-scale:.50;
  right:max(26px, env(safe-area-inset-right))!important;
  bottom:max(26px, env(safe-area-inset-bottom))!important;
  width:70px!important;
  min-width:70px!important;
  align-items:center!important;
}

body > .kktf-creature-float .kktf-creature-orb{
  position:relative!important;
  width:70px!important;
  height:70px!important;
  min-height:70px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  display:block!important;
}

body > .kktf-creature-float .kktf-creature-orb::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:57px;
  height:57px;
  transform:translate(-50%,-50%) rotate(-4deg);
  border:3px solid #0b0b0b;
  border-radius:50%;
  background:#ffd335;
  box-shadow:4px 4px 0 #ff168f;
  z-index:0;
}

/* WICHTIG:
   Die Pickbewegung enthält jetzt auch die komplette Grundtransformation.
   So wird sie nicht mehr von der Zentrier-/Scale-Regel überschrieben. */
body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:112px!important;
  height:112px!important;
  margin:0!important;
  transform-origin:72% 80%!important;
  z-index:2!important;
  animation:kktfThingPeckReallyVisible 3.8s ease-in-out infinite!important;
}

@keyframes kktfThingPeckReallyVisible{
  0%,48%,100%{
    transform:translate(-50%,-51%) scale(var(--kktf-float-scale)) rotate(0deg);
  }
  54%{
    transform:translate(-46%,-40%) scale(var(--kktf-float-scale)) rotate(15deg);
  }
  59%{
    transform:translate(-50%,-51%) scale(var(--kktf-float-scale)) rotate(0deg);
  }
  65%{
    transform:translate(-46%,-38%) scale(var(--kktf-float-scale)) rotate(17deg);
  }
  70%{
    transform:translate(-50%,-51%) scale(var(--kktf-float-scale)) rotate(0deg);
  }
  78%{
    transform:translate(-51%,-54%) scale(var(--kktf-float-scale)) rotate(-3deg);
  }
  84%{
    transform:translate(-50%,-51%) scale(var(--kktf-float-scale)) rotate(0deg);
  }
}

body > .kktf-creature-float .kktf-creature-orb>span{
  display:none!important;
}

body > .kktf-creature-float .kktf-creature-panel{
  right:0!important;
}

/* Beim RUNNER soll der SPIEL-HAHN der sichtbare Hahn sein.
   Das Tamagotchi verschwindet während des tatsächlichen Runs. */
body:has(.kktf-runner-stage.is-running) > .kktf-creature-float{
  opacity:.08!important;
  pointer-events:none!important;
  transform:scale(.72)!important;
  transform-origin:right bottom!important;
}

/* Player im Runner bekommt etwas mehr optisches Gewicht. */
.kktf-app .kktf-runner-stage{
  overflow:hidden;
}

/* Handy: etwas kleiner, aber dieselbe Technik/Animation. */
@media(max-width:650px){
  body > .kktf-creature-float{
    --kktf-float-scale:.43;
    width:58px!important;
    min-width:58px!important;
    right:max(24px, env(safe-area-inset-right))!important;
    bottom:max(24px, env(safe-area-inset-bottom))!important;
  }

  body > .kktf-creature-float .kktf-creature-orb{
    width:58px!important;
    height:58px!important;
    min-height:58px!important;
  }

  body > .kktf-creature-float .kktf-creature-orb::before{
    width:46px;
    height:46px;
  }

  body > .kktf-creature-float .kktf-creature-panel{
    width:min(306px,calc(100vw - 48px))!important;
    max-width:calc(100vw - 48px)!important;
  }
}

/* Falls :has() im Browser nicht greift, setzen wir weiter unten via JS
   zusätzlich die Klasse .kktf-runner-live auf body. */
body.kktf-runner-live > .kktf-creature-float{
  opacity:.08!important;
  pointer-events:none!important;
  transform:scale(.72)!important;
  transform-origin:right bottom!important;
}


/* =========================================================================
   1.8.7 — ROBUSTES PICKEN + STATS SAUBER IM VIEWPORT
   ========================================================================= */

/* Alte Animation auf .kktf-thing-art abschalten.
   Der neue Wrapper übernimmt ausschließlich die Bewegung. */
body > .kktf-creature-float .kktf-creature-orb .kktf-thing-art{
  animation:none!important;
}

/* Wrapper ist exakt die Fläche des runden Begleiters. */
body > .kktf-creature-float .kktf-peck-wrap{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  pointer-events:none!important;
  transform-origin:72% 78%!important;
}

/* Die eigentliche Zeichnung bleibt mittig und wird nur skaliert.
   Kein negativer Margin-Hack mehr. */
body > .kktf-creature-float .kktf-peck-wrap .kktf-thing-art{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:112px!important;
  height:112px!important;
  margin:0!important;
  transform:translate(-50%,-51%) scale(var(--kktf-float-scale))!important;
  transform-origin:center!important;
}

/* Zwei klar erkennbare Picks. */
body > .kktf-creature-float .kktf-peck-wrap.is-pecking{
  animation:kktfPeckWrapper .82s cubic-bezier(.36,.02,.2,1) 1!important;
}
@keyframes kktfPeckWrapper{
  0%,20%,46%,72%,100%{transform:translate(0,0) rotate(0)}
  31%{transform:translate(4px,7px) rotate(13deg)}
  58%{transform:translate(4px,8px) rotate(15deg)}
  84%{transform:translate(-1px,-2px) rotate(-3deg)}
}

/* Das Stats-Panel hängt nicht mehr geometrisch am Hahn.
   Es wird als eigenes, vollständig sichtbares Panel im Viewport geöffnet. */
body > .kktf-creature-float .kktf-creature-panel{
  position:fixed!important;
  left:auto!important;
  right:max(26px, env(safe-area-inset-right))!important;
  bottom:112px!important;
  width:min(360px,calc(100vw - 52px))!important;
  max-width:calc(100vw - 52px)!important;
  max-height:calc(100dvh - 145px)!important;
  overflow:auto!important;
  box-sizing:border-box!important;
  z-index:2147483001!important;
}

/* Bars dürfen nie breiter als das Panel werden. */
body > .kktf-creature-float .kktf-creature-bars,
body > .kktf-creature-float .kktf-creature-bars>div{
  min-width:0!important;
}
body > .kktf-creature-float .kktf-creature-bars>div{
  grid-template-columns:minmax(90px,112px) minmax(76px,1fr) 28px!important;
}
body > .kktf-creature-float .kktf-creature-bars i{
  min-width:0!important;
}

/* Wenn offen: kleiner Hahn bleibt sichtbar, aber nicht vor dem Panel. */
body > .kktf-creature-float.is-open .kktf-creature-orb{
  z-index:2147483002!important;
}

/* Mobile: echtes Bottom-Sheet mit symmetrischen Seitenrändern. */
@media(max-width:650px){
  body > .kktf-creature-float .kktf-creature-panel{
    left:16px!important;
    right:16px!important;
    bottom:96px!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - 124px)!important;
    padding:14px!important;
  }

  body > .kktf-creature-float .kktf-creature-panel-head strong{
    font-size:25px!important;
  }

  body > .kktf-creature-float .kktf-creature-panel>.kktf-creature-line{
    font-size:14px!important;
  }

  body > .kktf-creature-float .kktf-creature-bars>div{
    grid-template-columns:112px minmax(82px,1fr) 26px!important;
    gap:7px!important;
    font-size:11px!important;
  }

  body > .kktf-creature-float .kktf-creature-panel>small{
    font-size:11px!important;
    line-height:1.4!important;
  }
}

/* Sehr schmale Geräte: Labels kompakter, Balken behalten trotzdem Platz. */
@media(max-width:390px){
  body > .kktf-creature-float .kktf-creature-bars>div{
    grid-template-columns:100px minmax(66px,1fr) 24px!important;
    font-size:10px!important;
  }
}


/* =========================================================================
   1.8.8 — FIX: GELBER KREIS OHNE HAHN
   ========================================================================= */

/* In 1.8.7 war .kktf-creature-orb > span zu breit:
   dadurch wurde versehentlich auch .kktf-peck-wrap ausgeblendet.
   Jetzt ist der Animationswrapper ausdrücklich sichtbar und nur das Textlabel weg. */
body > .kktf-creature-float .kktf-creature-orb > .kktf-peck-wrap{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}

body > .kktf-creature-float .kktf-creature-orb > .kktf-creature-label{
  display:none!important;
}

/* Zusätzliche Absicherung gegen ältere breit gefasste span-Regeln. */
body > .kktf-creature-float .kktf-creature-orb > span.kktf-peck-wrap{
  display:block!important;
}


/* =========================================================================
   1.8.9 — SAFE AREAS FÜR FLOATING-WESEN UND BOTTOM-SHEET
   ========================================================================= */

body > .kktf-creature-float{
  right:max(26px, calc(env(safe-area-inset-right) + 12px))!important;
  bottom:max(26px, calc(env(safe-area-inset-bottom) + 12px))!important;
}

@media(max-width:650px){
  body > .kktf-creature-float{
    right:max(24px, calc(env(safe-area-inset-right) + 12px))!important;
    bottom:max(24px, calc(env(safe-area-inset-bottom) + 12px))!important;
  }

  body > .kktf-creature-float .kktf-creature-panel{
    left:max(16px, calc(env(safe-area-inset-left) + 12px))!important;
    right:max(16px, calc(env(safe-area-inset-right) + 12px))!important;
    bottom:max(96px, calc(env(safe-area-inset-bottom) + 72px))!important;
  }
}


/* 2.0.0 — finale Autorität nach den historischen Kompatibilitätsregeln. */
body > .kktf-creature-float{
  --kktf-float-scale:.58;
  --ritual-progress:0%;
  width:94px!important;
  min-width:94px!important;
}
body > .kktf-creature-float .kktf-creature-orb{
  width:94px!important;
  height:94px!important;
  min-height:94px!important;
  border:4px solid #0b0b0b!important;
  border-radius:50%!important;
  background:#ffd335!important;
  box-shadow:5px 5px 0 #ff168f!important;
}
body > .kktf-creature-float .kktf-creature-orb::before{
  content:""!important;
  inset:-10px!important;
  left:-10px!important;
  top:-10px!important;
  width:auto!important;
  height:auto!important;
  border:3px solid #0b0b0b!important;
  border-radius:50%!important;
  background:conic-gradient(#ff168f 0 var(--ritual-progress),#fffdf8 var(--ritual-progress) 100%)!important;
  box-shadow:none!important;
  transform:rotate(-90deg)!important;
}
body > .kktf-creature-float .kktf-creature-orb > span.kktf-creature-orb-progress{
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  right:-10px!important;
  bottom:-7px!important;
}
body > .kktf-creature-float .kktf-peck-wrap .kktf-thing-art{
  transform:translate(-50%,-51%) scale(var(--kktf-float-scale))!important;
}
body > .kktf-creature-float .kktf-creature-panel{
  left:auto!important;
  right:max(26px,env(safe-area-inset-right))!important;
  bottom:max(135px,calc(env(safe-area-inset-bottom) + 122px))!important;
  width:min(430px,calc(100vw - 52px))!important;
  max-width:calc(100vw - 52px)!important;
  max-height:calc(100dvh - 160px)!important;
  padding:18px!important;
}

@media(max-width:650px){
  .kktf-app .kktf-creature-story{
    grid-template-columns:92px minmax(0,1fr)!important;
    gap:15px!important;
    padding:18px!important;
  }
  .kktf-app .kktf-creature-story-art{
    display:grid!important;
    width:auto!important;
    min-height:112px!important;
  }
  .kktf-app .kktf-creature-story-art .kktf-thing-art{
    transform:scale(.78)!important;
  }
  .kktf-app .kktf-creature-story-copy h2{
    font-size:clamp(31px,10vw,46px)!important;
  }
  .kktf-app .kktf-creature-story-copy>p:not(.kktf-label){font-size:13px!important}
  .kktf-app .kktf-creature-story-copy>p:nth-of-type(3){display:none!important}
  .kktf-app .kktf-creature-story-now{
    grid-column:1/-1!important;
    padding:14px!important;
  }

  body > .kktf-creature-float{
    --kktf-float-scale:.51;
    width:82px!important;
    min-width:82px!important;
  }
  body > .kktf-creature-float .kktf-creature-orb{
    width:82px!important;
    height:82px!important;
    min-height:82px!important;
  }
  body > .kktf-creature-float .kktf-creature-panel{
    left:max(12px,calc(env(safe-area-inset-left) + 8px))!important;
    right:max(12px,calc(env(safe-area-inset-right) + 8px))!important;
    top:max(12px,calc(env(safe-area-inset-top) + 8px))!important;
    bottom:max(112px,calc(env(safe-area-inset-bottom) + 98px))!important;
    height:auto!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    padding:13px!important;
  }
}

@media(max-width:390px){
  .kktf-app .kktf-creature-story{grid-template-columns:1fr!important}
  .kktf-app .kktf-creature-story-art{display:none!important}
  body > .kktf-creature-float .kktf-creature-panel{max-height:none!important}
}


/* =========================================================================
   2.1.0 — SCHUBS LIVE: GPU-BEWEGUNG + TIERBANDE
   ========================================================================= */

/* Die Physik schreibt nur den Transform der äußeren GPU-Ebene. So bleibt die
   Figur weich, ohne Augen, Ohren und Schnabel pro Frame neu auszuwerten. */
.kktf-app .kktf-game-player,
.kktf-app .kktf-game-player.is-local-moving,
.kktf-app .kktf-game-player.is-respawn{
  left:0!important;
  top:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  animation:none!important;
  transform:translate3d(50%,50%,0) translate(-50%,-50%)!important;
  transition:opacity .16s ease,visibility .16s ease!important;
  will-change:transform;
  backface-visibility:hidden;
  contain:layout style;
}

.kktf-app .kktf-game-player.is-respawn{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.kktf-game-face{
  --fur:var(--pc);
  --fur-dark:#d82d78;
  position:absolute;
  inset:0;
  display:block;
  border:4px solid var(--b);
  border-radius:48% 48% 46% 46%;
  background:var(--fur);
  box-shadow:4px 4px 0 var(--b);
  transform:rotate(-2deg);
  transform-origin:50% 68%;
  transition:transform .14s ease,filter .14s ease,box-shadow .14s ease;
}

.kktf-game-player.is-me .kktf-game-face{
  outline:4px solid #fff;
  outline-offset:2px;
  box-shadow:0 0 0 6px var(--p),4px 4px 0 7px var(--b);
}

.kktf-game-player.has-shield .kktf-game-face{
  outline:5px solid #fff;
  outline-offset:2px;
  box-shadow:0 0 0 7px #25aef2,4px 4px 0 8px var(--b);
}

.kktf-game-player.has-turbo .kktf-game-face{
  animation:kktf-animal-turbo .18s steps(2,end) infinite alternate;
}

.kktf-game-player.is-gliding:not(.has-turbo) .kktf-game-face{
  animation:kktf-animal-glide .34s ease-in-out infinite alternate;
}

.kktf-game-player.is-hit-preview .kktf-game-face{
  transform:rotate(10deg) scale(1.16);
  filter:saturate(1.35) brightness(1.08);
}

@keyframes kktf-animal-glide{
  from{transform:rotate(-4deg) translateY(0)}
  to{transform:rotate(3deg) translateY(-2px)}
}

@keyframes kktf-animal-turbo{
  from{transform:rotate(-9deg) scale(.95);filter:saturate(1.2)}
  to{transform:rotate(9deg) scale(1.08);filter:saturate(1.6)}
}

.kktf-game-face>i{
  position:absolute;
  display:block;
  box-sizing:border-box;
  margin:0;
  padding:0;
}

.kktf-face-ear{
  z-index:0;
  top:-5px;
  width:19px;
  height:20px;
  border:4px solid var(--b);
  background:var(--fur);
  transform:rotate(45deg);
}
.kktf-face-ear.is-left{left:2px;border-radius:10px 2px 9px 2px}
.kktf-face-ear.is-right{right:2px;border-radius:2px 10px 2px 9px}

.kktf-face-eye{
  top:17px;
  width:8px;
  height:11px;
  border:2px solid var(--b);
  border-radius:50%;
  background:#fff;
}
.kktf-face-eye::after{
  content:"";
  position:absolute;
  left:2px;
  top:3px;
  width:3px;
  height:4px;
  border-radius:50%;
  background:var(--b);
}
.kktf-face-eye.is-left{left:11px}
.kktf-face-eye.is-right{right:11px}

.kktf-face-muzzle{
  left:50%;
  bottom:5px;
  width:27px;
  height:18px;
  border:3px solid var(--b);
  border-radius:50%;
  background:#fff6dc;
  transform:translateX(-50%);
}

.kktf-face-nose{
  z-index:2;
  left:50%;
  bottom:15px;
  width:9px;
  height:7px;
  border-radius:50% 50% 45% 45%;
  background:var(--b);
  transform:translateX(-50%);
}

.kktf-face-cheek{
  top:31px;
  width:7px;
  height:5px;
  border-radius:50%;
  background:#ff4f92;
}
.kktf-face-cheek.is-left{left:5px}
.kktf-face-cheek.is-right{right:5px}

.kktf-face-comb,
.kktf-face-beak{display:none!important}

/* Hahn */
.kktf-game-player[data-animal="hahn"] .kktf-game-face{
  --fur:#fff9e8;
  border-radius:50% 50% 45% 45%;
}
.kktf-game-player[data-animal="hahn"] .kktf-face-ear,
.kktf-game-player[data-animal="hahn"] .kktf-face-muzzle,
.kktf-game-player[data-animal="hahn"] .kktf-face-nose{display:none}
.kktf-game-player[data-animal="hahn"] .kktf-face-comb{
  display:block!important;
  z-index:0;
  left:50%;
  top:-12px;
  width:12px;
  height:14px;
  border:3px solid var(--b);
  border-radius:60% 60% 30% 30%;
  background:#ff168f;
  box-shadow:-9px 5px 0 -2px #ff168f,9px 5px 0 -2px #ff168f;
  transform:translateX(-50%);
}
.kktf-game-player[data-animal="hahn"] .kktf-face-beak{
  display:block!important;
  left:50%;
  bottom:8px;
  width:15px;
  height:12px;
  border:3px solid var(--b);
  background:#ffd335;
  transform:translateX(-50%) rotate(45deg) skew(-8deg,-8deg);
}

/* Fuchs */
.kktf-game-player[data-animal="fuchs"] .kktf-game-face{--fur:#ff7a35}
.kktf-game-player[data-animal="fuchs"] .kktf-face-ear::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:inherit;
  background:#2b1720;
}
.kktf-game-player[data-animal="fuchs"] .kktf-face-muzzle{background:#fffdf8}

/* Katze */
.kktf-game-player[data-animal="katze"] .kktf-game-face{--fur:#bf8bff}
.kktf-game-player[data-animal="katze"] .kktf-face-ear::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:inherit;
  background:#ff9bc7;
}
.kktf-game-player[data-animal="katze"] .kktf-face-muzzle{
  width:25px;
  height:15px;
  border-width:0;
  background:rgba(255,255,255,.75);
}

/* Frosch */
.kktf-game-player[data-animal="frosch"] .kktf-game-face{
  --fur:#8ce65a;
  border-radius:46% 46% 52% 52%;
}
.kktf-game-player[data-animal="frosch"] .kktf-face-ear,
.kktf-game-player[data-animal="frosch"] .kktf-face-muzzle,
.kktf-game-player[data-animal="frosch"] .kktf-face-nose{display:none}
.kktf-game-player[data-animal="frosch"] .kktf-face-eye{
  top:-5px;
  width:17px;
  height:19px;
  border-width:4px;
  background:#fff;
}
.kktf-game-player[data-animal="frosch"] .kktf-face-eye.is-left{left:4px}
.kktf-game-player[data-animal="frosch"] .kktf-face-eye.is-right{right:4px}
.kktf-game-player[data-animal="frosch"] .kktf-face-eye::after{
  left:4px;
  top:4px;
  width:5px;
  height:7px;
}
.kktf-game-player[data-animal="frosch"] .kktf-face-cheek{top:29px;background:#4eae3d}
.kktf-game-player[data-animal="frosch"] .kktf-game-face::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:8px;
  width:19px;
  height:7px;
  border-bottom:3px solid var(--b);
  border-radius:50%;
  transform:translateX(-50%);
}

/* Bär */
.kktf-game-player[data-animal="baer"] .kktf-game-face{--fur:#b97a4c}
.kktf-game-player[data-animal="baer"] .kktf-face-ear{
  top:-3px;
  width:21px;
  height:21px;
  border-radius:50%;
  transform:none;
}
.kktf-game-player[data-animal="baer"] .kktf-face-ear.is-left{left:-5px}
.kktf-game-player[data-animal="baer"] .kktf-face-ear.is-right{right:-5px}
.kktf-game-player[data-animal="baer"] .kktf-face-muzzle{background:#e9ba7f}

/* Taube */
.kktf-game-player[data-animal="taube"] .kktf-game-face{
  --fur:#aebfce;
  border-radius:55% 55% 45% 45%;
}
.kktf-game-player[data-animal="taube"] .kktf-face-ear,
.kktf-game-player[data-animal="taube"] .kktf-face-muzzle,
.kktf-game-player[data-animal="taube"] .kktf-face-nose,
.kktf-game-player[data-animal="taube"] .kktf-face-cheek{display:none}
.kktf-game-player[data-animal="taube"] .kktf-face-eye.is-left{left:9px}
.kktf-game-player[data-animal="taube"] .kktf-face-eye.is-right{right:9px}
.kktf-game-player[data-animal="taube"] .kktf-face-beak{
  display:block!important;
  left:50%;
  bottom:8px;
  width:16px;
  height:11px;
  border:3px solid var(--b);
  background:#ffd335;
  transform:translateX(-50%) rotate(45deg) skew(-10deg,-10deg);
}
.kktf-game-player[data-animal="taube"] .kktf-game-face::before{
  content:"";
  position:absolute;
  left:50%;
  top:29px;
  width:30px;
  height:10px;
  border-top:5px solid #4eaa83;
  border-radius:50%;
  transform:translateX(-50%);
}

@media(max-width:520px){
  .kktf-game-face{border-width:3px;box-shadow:3px 3px 0 var(--b)}
  .kktf-face-eye{top:13px}
  .kktf-face-muzzle{bottom:4px;width:23px;height:16px}
  .kktf-face-nose{bottom:13px}
  .kktf-face-cheek{top:27px}
}

@media(prefers-reduced-motion:reduce){
  .kktf-game-player.is-gliding .kktf-game-face,
  .kktf-game-player.has-turbo .kktf-game-face{animation:none!important}
}


/* =========================================================================
   2.1.1 — MAGNETTAFEL: EINE HOCHFORMAT-GEOMETRIE AUF ALLEN GERÄTEN
   ========================================================================= */

/* Gegen historische Theme-/Tischfunk-Buttonregeln: Die virtuellen Maße der
   Wörter dürfen sich zwischen Desktop und Mobil niemals verändern. */
.kktf-app .kktf-embed-magnets .kuku-mag-viewport .kuku-magnet{
  max-width:31%!important;
  padding:9px 14px 8px!important;
  font:900 22px/1 Arial,sans-serif!important;
}

/* =========================================================================
   2.2.0 — LATE OVERRIDES
   Muss hinter allen historischen Layoutregeln stehen: Die Shell entscheidet.
   ========================================================================= */
.kktf-app.is-shell-ready{padding-bottom:28px!important}
.kktf-app.is-shell-ready [hidden]{display:none!important}
.kktf-app.is-shell-ready[data-shell-view="module"] .kktf-grid{
  display:block!important;grid-template-columns:1fr!important;width:100%!important
}
.kktf-app.is-shell-ready[data-shell-view="module"] .kktf-grid>.kktf-card:not([hidden]){
  display:block!important;width:min(100%,1040px)!important;max-width:1040px!important;
  margin:0 auto!important;transform:none!important
}
.kktf-app.is-shell-ready[data-shell-view="home"] .kktf-news-front,
.kktf-app.is-shell-ready[data-shell-view="home"] .kktf-news-masthead{
  display:block
}
.kktf-week-lead{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;
  margin:17px 0 20px;padding:18px 19px;border:4px solid var(--b);background:var(--y);
  box-shadow:6px 6px 0 var(--p)
}
.kktf-week-lead .kktf-label{margin:0 0 6px}
.kktf-week-lead h3{
  max-width:930px;margin:0;font-family:Impact,"Arial Black",Arial,sans-serif;
  font-size:clamp(31px,5vw,62px);line-height:.9;text-transform:uppercase;overflow-wrap:anywhere
}
.kktf-week-lead p:last-child{max-width:760px;margin:10px 0 0;font-size:14px;font-weight:800;line-height:1.3}
.kktf-week-lead>button{
  min-height:46px;border:3px solid var(--b);background:var(--b);color:#fff;
  padding:10px 13px;font-size:10px;font-weight:950;letter-spacing:.06em;cursor:pointer
}
body.kktf-has-tischfunk>.kktf-shell-tabs{
  --y:#ffd335;--p:#ff168f;--b:#0b0b0b;--w:#fffdf8;display:grid!important
}
body.kktf-has-tischfunk>.kktf-creature-float{
  bottom:max(88px,calc(env(safe-area-inset-bottom) + 74px))!important
}
body.kktf-has-tischfunk>.kktf-creature-float .kktf-creature-panel{
  bottom:max(168px,calc(env(safe-area-inset-bottom) + 148px))!important
}
@media(max-width:800px){
  .kktf-app.is-shell-ready{width:min(calc(100% - 12px),700px)!important;margin-top:10px!important}
  .kktf-week-lead{grid-template-columns:1fr;gap:12px;padding:14px;border-width:3px;box-shadow:4px 4px 0 var(--p)}
  .kktf-week-lead h3{font-size:clamp(30px,10vw,47px)}
  .kktf-week-lead p:last-child{font-size:12px}
  .kktf-week-lead>button{justify-self:start}
  body.kktf-has-tischfunk>.kktf-creature-float{
    right:8px!important;bottom:max(79px,calc(env(safe-area-inset-bottom) + 68px))!important
  }
  body.kktf-has-tischfunk>.kktf-creature-float .kktf-creature-panel{
    bottom:max(145px,calc(env(safe-area-inset-bottom) + 132px))!important
  }
}

/* =========================================================================
   2.2.1 — DIE GANZE KUKU-WAND
   Orientierung bleibt, aber kein Sprung blendet andere Inhalte aus.
   ========================================================================= */
.kktf-app.is-all-in-one[data-shell-view="all"] .kktf-grid{
  display:grid!important;width:100%!important
}
.kktf-app.is-all-in-one .kktf-module-bar{display:none!important}
.kktf-app.is-all-in-one .kktf-shell-page,
.kktf-app.is-all-in-one .kktf-grid>[data-module],
.kktf-app.is-all-in-one .kktf-grid>[data-rubric],
.kktf-app.is-all-in-one .kktf-news-masthead,
.kktf-app.is-all-in-one .kktf-news-front,
.kktf-app.is-all-in-one .kktf-creature-story,
.kktf-app.is-all-in-one .kktf-language-switch{
  scroll-margin-top:18px
}
.kktf-app.is-all-in-one .kktf-kiosk{margin-top:34px}
.kktf-app.is-all-in-one .kktf-live-page{margin-top:38px;margin-bottom:44px}
.kktf-app.is-all-in-one .is-shell-arrival{animation:kktf-arrival-flash .85s ease-out}
@keyframes kktf-arrival-flash{
  0%,28%{outline:8px solid var(--p);outline-offset:7px}
  100%{outline:0 solid transparent;outline-offset:18px}
}
@media(max-width:900px){
  .kktf-app.is-all-in-one[data-shell-view="all"] .kktf-grid{grid-template-columns:1fr!important}
  .kktf-app.is-all-in-one .kktf-kiosk{margin-top:24px}
  .kktf-app.is-all-in-one .kktf-live-page{margin-top:28px;margin-bottom:34px}
}
@media(prefers-reduced-motion:reduce){
  .kktf-app.is-all-in-one .is-shell-arrival{animation:none;outline:5px solid var(--p);outline-offset:4px}
}


/* =========================================================================
   2.2.2 — EINE SEITE, EINE HIERARCHIE, EINE MAGNET-GEOMETRIE
   ========================================================================= */

/* Die Zeitung selbst ist die Navigation. Die zusätzlichen Button-Verzeichnisse
   aus 2.2.0 duplizierten nur Inhalte und machten vor allem Mobil unnötig lang. */
.kktf-app .kktf-home-actions,
.kktf-app .kktf-kiosk,
.kktf-app .kktf-live-shortcuts,
.kktf-app .kktf-module-bar,
body.kktf-has-tischfunk > .kktf-shell-tabs{
  display:none!important;
}
body.kktf-has-tischfunk{padding-bottom:0!important}
.kktf-app.is-shell-ready{padding-bottom:20px!important}
body.kktf-has-tischfunk > .kktf-creature-float{
  bottom:max(22px,calc(env(safe-area-inset-bottom) + 16px))!important
}
body.kktf-has-tischfunk > .kktf-creature-float .kktf-creature-panel{
  bottom:max(98px,calc(env(safe-area-inset-bottom) + 88px))!important
}

/* LIVE bleibt als redaktioneller Streifen erhalten, nicht als zweite Startseite. */
.kktf-shell-signal{grid-template-columns:auto auto minmax(0,1fr)}
.kktf-week-lead{grid-template-columns:minmax(0,1fr)}
.kktf-live-page{margin-top:28px!important;margin-bottom:34px!important;padding:20px!important}
.kktf-live-page .kktf-shell-page-head{margin-bottom:14px;padding-bottom:12px}
.kktf-live-page .kktf-shell-page-head h2{font-size:clamp(34px,4.2vw,52px)}
.kktf-live-page .kktf-live-summary{padding:13px 15px}
.kktf-live-page .kktf-live-events{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 0}
.kktf-live-page .kktf-live-events li{min-width:0;padding:10px;font-size:13px;line-height:1.3}

/* Der Sprachregler gehört logisch in die Doppelstadt-Rubrik. */
.kktf-app .kktf-language-switch{
  grid-column:1/-1;position:relative;left:auto;transform:none;
  width:100%!important;max-width:100%!important;margin:0!important
}

/* Alte Magnetpoesie-Installationen werden auf dieselbe verbindliche Bühne wie
   Magnetpoesie 1.1.2 gehoben: 560 × 840, auf jedem Gerät nur gleichmäßig skaliert. */
.kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport{
  position:relative!important;width:100%!important;max-width:560px!important;
  margin:4px auto 0!important;overflow:hidden!important
}
.kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport > .kuku-mag-board{
  position:absolute!important;left:0!important;top:0!important;
  width:560px!important;min-width:560px!important;max-width:none!important;
  height:840px!important;margin:0!important;transform-origin:top left!important
}
.kktf-app .kktf-embed-magnets .kuku-mag-viewport{
  width:100%!important;max-width:560px!important;aspect-ratio:2/3!important;margin-inline:auto!important
}
.kktf-app .kktf-embed-magnets .kuku-mag-viewport > .kuku-mag-board{
  width:560px!important;min-width:560px!important;height:840px!important
}
.kktf-app .kktf-embed-magnets{transform:none!important}

@media(min-width:783px){
  .kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport{
    height:840px!important;overflow:hidden!important
  }
  .kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport > .kuku-mag-board{
    width:560px!important;height:840px!important;transform:none!important
  }
}

@media(max-width:800px){
  /* Volle nutzbare Gerätebreite statt der Breite der WordPress-Textspalte. */
  .kktf-app,
  .kktf-app.is-shell-ready{
    width:min(calc(100vw - 16px),700px)!important;
    max-width:min(calc(100vw - 16px),700px)!important;
    margin:8px 0 34px!important;padding:0 8px!important;
    left:50%!important;transform:translateX(-50%)!important
  }

  /* Kompakter Zeitungskopf: Titel zuerst, Ausgabe und Funkname in einer Zeile. */
  .kktf-app .kktf-news-masthead{margin:6px 0 18px!important;box-shadow:4px 4px 0 var(--p)}
  .kktf-app .kktf-news-topline{padding:7px 10px!important;font-size:10px!important;line-height:1.25!important}
  .kktf-app .kktf-news-nameplate{
    grid-template-columns:minmax(0,1fr) minmax(118px,.9fr)!important;
    gap:10px!important;padding:12px!important;align-items:stretch!important
  }
  .kktf-app .kktf-news-title{grid-column:1/-1}
  .kktf-app .kktf-news-title .kktf-eyebrow{max-width:100%;white-space:normal!important;overflow-wrap:anywhere}
  .kktf-app .kktf-news-title h1{font-size:clamp(50px,15vw,64px)!important}
  .kktf-app .kktf-news-title .kktf-lead{margin-top:9px!important;font-size:15px!important;line-height:1.35!important}
  .kktf-app .kktf-news-edition{
    grid-column:1;padding:10px!important;border:3px solid var(--b)!important;
    justify-content:center;background:#fff!important
  }
  .kktf-app .kktf-news-edition strong{font-size:35px!important}
  .kktf-app .kktf-news-edition span{margin-top:4px!important;font-size:10px!important}
  .kktf-app .kktf-news-edition small{margin-top:7px!important;font-size:9px!important}
  .kktf-app .kktf-news-masthead .kktf-alias-box{
    grid-column:2;width:100%!important;padding:10px!important;
    transform:none!important;box-shadow:3px 3px 0 var(--b)!important
  }
  .kktf-app .kktf-alias-box strong{font-size:18px!important;line-height:1!important;overflow-wrap:anywhere}
  .kktf-app .kktf-linkbtn{font-size:11px!important;min-height:38px}

  /* Startseite bleibt Zeitung, aber ohne übergroße Displayzeilen in schmalen Spalten. */
  .kktf-app .kktf-shell-signal{margin-bottom:14px;padding:9px 10px;box-shadow:3px 3px 0 var(--p)}
  .kktf-app .kktf-news-front{padding:12px!important;margin-bottom:22px!important}
  .kktf-app .kktf-news-front-head{gap:7px;padding-bottom:9px;border-bottom-width:5px}
  .kktf-app .kktf-news-front-head h2{font-size:clamp(29px,8.8vw,37px)!important;line-height:.94!important}
  .kktf-app .kktf-news-front-head>span{font-size:10px!important}
  .kktf-app .kktf-week-lead{margin:12px 0 15px;padding:12px!important;gap:0}
  .kktf-app .kktf-week-lead h3{font-size:clamp(27px,8.2vw,36px)!important;line-height:.94!important}
  .kktf-app .kktf-week-lead p:last-child{font-size:13px!important;line-height:1.4!important}
  .kktf-app .kktf-news-numbers{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .kktf-app .kktf-paper-numbers article{min-width:0;padding:10px!important}
  .kktf-app .kktf-paper-numbers strong{font-size:31px!important}
  .kktf-app .kktf-news-front .kktf-paper-mood,
  .kktf-app .kktf-news-front .kktf-paper-vote{min-height:0;padding:12px}

  .kktf-app .kktf-creature-story{margin:18px 0 22px!important}
  .kktf-app .kktf-live-page{margin:20px 0 28px!important;padding:13px!important;box-shadow:4px 4px 0 var(--b)}
  .kktf-app .kktf-live-page .kktf-shell-page-head{margin-bottom:10px;padding-bottom:9px}
  .kktf-app .kktf-live-page .kktf-shell-page-head h2{font-size:clamp(29px,8.8vw,38px)!important;line-height:.94}
  .kktf-app .kktf-live-page .kktf-live-summary{padding:10px;grid-template-columns:auto 1fr}
  .kktf-app .kktf-live-page .kktf-live-summary p{font-size:13px;line-height:1.35}
  .kktf-app .kktf-live-page .kktf-live-events{grid-template-columns:1fr;margin-top:9px}
  .kktf-app .kktf-live-page .kktf-live-events li{grid-template-columns:52px 1fr;font-size:13px}
  .kktf-app .kktf-live-page .kktf-live-events li:nth-child(n+4){display:none}

  .kktf-app .kktf-grid{row-gap:14px!important}
  .kktf-app .kktf-news-rubric{margin:16px 0 0!important;padding:10px 0!important;grid-template-columns:48px minmax(0,1fr)!important}
  .kktf-app .kktf-news-rubric-no{width:44px!important;height:44px!important;font-size:23px!important}
  .kktf-app .kktf-news-rubric h2{font-size:clamp(27px,8vw,34px)!important;line-height:.95!important}
  .kktf-app .kktf-news-rubric small{font-size:12px!important;line-height:1.35!important}
  .kktf-app .kktf-card{padding:14px!important}
  .kktf-app .kktf-card h2{font-size:clamp(30px,8.8vw,38px)!important;line-height:.95!important;overflow-wrap:anywhere}
  .kktf-app .kktf-card p,
  .kktf-app .kktf-card li{line-height:1.45}

  .kktf-app .kktf-language-switch{padding:11px!important;box-shadow:4px 4px 0 var(--p)}
  .kktf-app .kktf-language-switch-head{display:grid;gap:5px;margin-bottom:8px!important;padding:8px!important}
  .kktf-app .kktf-language-switch-head span{font-size:17px!important}
  .kktf-app .kktf-language-switch-head p{text-align:left;font-size:10px!important}
  .kktf-app .kktf-language-switch .kuku-ds-stage{height:205px!important;box-shadow:4px 4px 0 var(--y)!important}
  .kktf-app .kktf-language-switch .kuku-ds-side{padding:10px 8px!important}
  .kktf-app .kktf-language-switch .kuku-ds-call{font-size:clamp(22px,6.6vw,28px)!important}
  .kktf-app .kktf-language-switch .kuku-ds-language{margin-top:9px!important}
  .kktf-app .kktf-language-switch .kuku-ds-words{margin:6px 0!important;gap:5px!important}
  .kktf-app .kktf-language-switch .kuku-ds-word{font-size:clamp(17px,5vw,22px)!important}
  .kktf-app .kktf-language-switch .kuku-ds-range{height:60px!important}
  .kktf-app .kktf-language-switch .kuku-ds-hint{font-size:9px!important}

  .kktf-app .kktf-embed-magnets{overflow:hidden!important}
  .kktf-app .kktf-embed-magnets .kktf-mag-mobile-viewport > .kuku-mag-board{
    width:560px!important;min-width:560px!important;height:840px!important
  }
  body.kktf-has-tischfunk > .kktf-creature-float{
    right:max(12px,env(safe-area-inset-right))!important;
    bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px))!important
  }
  body.kktf-has-tischfunk > .kktf-creature-float .kktf-creature-panel{
    bottom:max(88px,calc(env(safe-area-inset-bottom) + 78px))!important
  }
}

@media(max-width:380px){
  .kktf-app .kktf-news-nameplate{grid-template-columns:minmax(0,1fr) 112px!important}
  .kktf-app .kktf-news-title h1{font-size:47px!important}
  .kktf-app .kktf-news-edition strong{font-size:31px!important}
  .kktf-app .kktf-alias-box strong{font-size:16px!important}
}


/* =========================================================================
   2.2.3 — KUKU RENNT: DER SPIELAUSSCHNITT BLEIBT STEHEN
   ========================================================================= */
html.kktf-runner-scroll-lock{
  overflow:hidden!important;overscroll-behavior:none!important;scroll-behavior:auto!important
}
body.kktf-runner-scroll-lock{
  position:fixed!important;left:0!important;right:0!important;
  top:var(--kktf-runner-scroll-y,0)!important;width:100%!important;
  overflow:hidden!important;overscroll-behavior:none!important
}
body.kktf-runner-live .kktf-runner-stage,
body.kktf-runner-live .kktf-runner-canvas,
body.kktf-runner-live .kktf-runner-jump{
  touch-action:none!important;-ms-touch-action:none!important;
  overscroll-behavior:contain!important;user-select:none!important;-webkit-user-select:none!important
}

/* =========================================================================
   2.3.0 — PERFORMANCE-MODUS FÜR VOLLE RUNDEN
   ========================================================================= */
.kktf-app .kktf-runner-stage{
  contain:layout paint style;
}
.kktf-app .kktf-runner-canvas{
  contain:strict;
  transform:translateZ(0);
  backface-visibility:hidden;
}

/* Während eines Spiels pausiert nur der Dekor außerhalb des aktiven Moduls.
   Canvas und framebasierte Tierbewegung laufen davon unabhängig weiter. */
body.kktf-runner-live .kktf-app .kktf-card:not(.kktf-runner-card) *,
body.kktf-game-live .kktf-app .kktf-card:not(.kktf-card-game) *,
body.kktf-runner-live > .kktf-creature-float *,
body.kktf-game-live > .kktf-creature-float *{
  animation-play-state:paused!important;
}

/* =========================================================================
   2.4.0 — TISCHWAPPEN + KUKU-GEDÄCHTNIS
   ========================================================================= */
.kktf-app .kktf-news-nameplate{
  grid-template-columns:minmax(0,1fr) 170px 285px
}
.kktf-app .kktf-news-masthead .kktf-alias-box{
  display:grid;gap:12px;padding:13px!important;background:#fff!important;
  box-shadow:6px 6px 0 var(--b)!important
}
.kktf-table-pass{
  margin:-13px -13px 0;padding:12px 13px;background:var(--kktf-table-color,var(--y));
  border-bottom:3px solid var(--b)
}
.kktf-app .kktf-table-pass>span,.kktf-app .kktf-alias-pass>span{
  display:block;font-size:10px!important;font-weight:950;letter-spacing:.08em
}
.kktf-app .kktf-table-pass>strong{
  display:flex!important;align-items:center;gap:8px;margin:6px 0 4px!important;
  font-size:20px!important;line-height:1!important
}
.kktf-app .kktf-table-pass>strong b{font-family:Arial,sans-serif;font-size:24px}
.kktf-table-pass>small{display:block;font-size:8px;font-weight:950;line-height:1.3;letter-spacing:.035em}
.kktf-app .kktf-alias-pass>strong{margin:6px 0 9px!important;font-size:22px!important}

.kktf-table-tag{
  display:inline-flex;align-items:center;vertical-align:middle;margin:0 2px;padding:2px 5px;
  border:1px solid currentColor;background:#fff;color:#0b0b0b;font:900 9px/1.15 Arial,sans-serif;
  white-space:nowrap;letter-spacing:.02em
}
.kktf-table-tag.is-hahn{background:#fff2ac}.kktf-table-tag.is-fuchs{background:#ffe0cb}
.kktf-table-tag.is-katze{background:#ffd9eb}.kktf-table-tag.is-frosch{background:#d7f3df}
.kktf-table-tag.is-baer{background:#ead7c9}.kktf-table-tag.is-taube{background:#dceaff}

.kktf-news-memory{
  width:min(1280px,calc(100vw - 40px));position:relative;left:50%;transform:translateX(-50%);
  margin:0 0 28px;padding:20px;border:4px solid var(--b);background:#f1eee6;
  box-shadow:8px 8px 0 var(--y)
}
.kktf-news-memory-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:18px;
  margin-bottom:14px;padding-bottom:12px;border-bottom:6px solid var(--b)
}
.kktf-news-memory-head h2{
  margin:3px 0 0;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(31px,4vw,56px);
  font-weight:900;line-height:.9;text-transform:uppercase
}
.kktf-news-memory-head>span{font-size:10px;font-weight:950;letter-spacing:.06em;text-align:right}
.kktf-issue-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kktf-issue-card{display:grid;gap:10px;min-width:0;padding:13px;border:3px solid var(--b);background:#fff}
.kktf-issue-card:nth-child(3n+2){background:#fff2ac}.kktf-issue-card:nth-child(3n){background:#ffd9eb}
.kktf-issue-card small{font-size:9px;font-weight:950;letter-spacing:.06em}
.kktf-issue-card>div>strong{display:block;margin-top:5px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:23px;line-height:.96}
.kktf-issue-card>p{margin:0;font-size:11px;font-weight:850;line-height:1.4}
.kktf-issue-card>p b{font-size:18px}
.kktf-issue-card footer{display:grid;gap:8px;align-self:end}
.kktf-issue-card footer>span{font-size:10px;font-weight:900}
.kktf-issue-card button,.kktf-issue-close{
  min-height:38px;border:2px solid var(--b);background:var(--b);color:#fff;padding:7px 9px;
  font-size:9px;font-weight:950;letter-spacing:.05em;cursor:pointer
}
.kktf-issue-card button:disabled{opacity:.55}
.kktf-issue-view{margin-top:15px;padding:15px;border:4px solid var(--b);background:#fff;box-shadow:5px 5px 0 var(--p)}
.kktf-issue-view-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:12px}
.kktf-issue-view-head span{display:block;font-size:10px;font-weight:950;letter-spacing:.08em}
.kktf-issue-view-head strong{display:block;margin-top:4px;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:32px;line-height:.95}
.kktf-issue-close{width:42px;font-size:23px;line-height:1}
.kktf-issue-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:12px}
.kktf-issue-facts span{padding:9px;border:2px solid var(--b);background:#f4f1e9;font-size:9px;font-weight:950;line-height:1.25}
.kktf-issue-facts b{display:block;font-family:Impact,"Arial Black",Arial,sans-serif;font-size:27px;line-height:1}
.kktf-issue-art-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr);gap:12px;align-items:start}
.kktf-issue-art-grid figure{margin:0;min-width:0}
.kktf-issue-art-grid figcaption{padding:7px 9px;border:2px solid var(--b);border-bottom:0;background:var(--b);color:#fff;font-size:10px;font-weight:950}
.kktf-issue-wall{display:block;width:100%;height:auto;aspect-ratio:1200/650;border:2px solid var(--b);background:#fffdf7}
.kktf-issue-magnets{position:relative;width:min(100%,360px);aspect-ratio:2/3;margin:auto;overflow:hidden;border:2px solid var(--b);background:#e9e7df}
.kktf-issue-magnets>span{position:absolute;max-width:28%;padding:3px 5px;border:1px solid var(--b);background:#fff;font-size:clamp(6px,.72vw,10px);font-weight:900;white-space:nowrap;box-shadow:1px 1px 0 var(--b)}
.kktf-issue-magnets>span.is-1{background:#ffd335}.kktf-issue-magnets>span.is-2{background:#ffb9d8}
.kktf-issue-runner{margin-top:12px;padding:11px;border:2px solid var(--b);background:var(--y)}
.kktf-issue-runner ol{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.kktf-issue-runner li{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:850}
.kktf-issue-view>small{display:block;margin-top:11px;font-size:9px;font-weight:800;line-height:1.4}

@media(max-width:1000px){
  .kktf-app .kktf-news-nameplate{grid-template-columns:minmax(0,1fr) 150px!important}
  .kktf-app .kktf-news-masthead .kktf-alias-box{grid-column:1/-1;width:min(560px,100%)!important;grid-template-columns:1fr 1fr}
  .kktf-table-pass{margin:-13px 0 -13px -13px;border-right:3px solid var(--b);border-bottom:0}
}
@media(max-width:800px){
  .kktf-app .kktf-news-masthead .kktf-alias-box{
    grid-column:1/-1!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:0!important;padding:10px!important
  }
  .kktf-table-pass{margin:-10px 10px -10px -10px;padding:10px;border-right:3px solid var(--b);border-bottom:0}
  .kktf-app .kktf-table-pass>strong{font-size:17px!important;overflow-wrap:anywhere}
  .kktf-table-pass>small{font-size:7px}
  .kktf-app .kktf-alias-pass>strong{font-size:17px!important;overflow-wrap:anywhere}
  .kktf-news-memory{width:100%!important;max-width:100%!important;left:auto;transform:none;margin:0 0 22px;padding:12px;border-width:3px;box-shadow:4px 4px 0 var(--y)}
  .kktf-news-memory-head{display:grid;gap:7px;margin-bottom:10px;padding-bottom:9px}
  .kktf-news-memory-head h2{font-size:clamp(28px,8.5vw,37px)}
  .kktf-news-memory-head>span{text-align:left;font-size:9px}
  .kktf-issue-list{display:flex;gap:8px;overflow-x:auto;padding:0 2px 8px;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none}
  .kktf-issue-list::-webkit-scrollbar{display:none}
  .kktf-issue-card{flex:0 0 min(84vw,330px);scroll-snap-align:start;padding:11px}
  .kktf-issue-card>div>strong{font-size:21px}
  .kktf-issue-view{padding:11px;border-width:3px;box-shadow:3px 3px 0 var(--p)}
  .kktf-issue-view-head strong{font-size:26px}
  .kktf-issue-facts{grid-template-columns:1fr 1fr}
  .kktf-issue-art-grid{grid-template-columns:1fr}
  .kktf-issue-magnets{width:min(100%,300px)}
  .kktf-issue-magnets>span{font-size:8px}
}
@media(max-width:380px){
  .kktf-app .kktf-news-nameplate{grid-template-columns:minmax(0,1fr) 112px!important}
  .kktf-app .kktf-news-masthead .kktf-alias-box{grid-template-columns:1fr!important}
  .kktf-table-pass{margin:-10px -10px 0;padding:10px;border-right:0;border-bottom:3px solid var(--b)}
}

/* 2.5.0 · FARBFANG — echter Raum trifft Wochenzeitung */
.kktf-app .kktf-color-window{width:100%;margin:0 0 28px;padding:22px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:24px;align-items:center;background:#ffd335;border:4px solid #0b0b0b;box-shadow:8px 8px 0 #ff168f;position:relative;overflow:hidden}
.kktf-app .kktf-color-window:before{content:"IM KUKU GEFUNDEN";position:absolute;right:-44px;top:25px;transform:rotate(35deg);background:#0b0b0b;color:#fff;padding:5px 48px;font-size:9px;font-weight:950;letter-spacing:.1em}
.kktf-app .kktf-privacy-list{display:grid;gap:8px;margin-top:10px;text-align:left;letter-spacing:0}.kktf-app .kktf-privacy-list p{margin:0;line-height:1.45}
.kktf-app .kktf-color-copy h2{margin:0 0 12px;font:950 clamp(38px,5vw,64px)/.9 Impact,"Arial Black",Arial,sans-serif;letter-spacing:-.025em;text-transform:uppercase}
.kktf-app .kktf-color-copy>p:not(.kktf-label){max-width:520px;margin:0 0 17px;font-size:16px;font-weight:750;line-height:1.42}
.kktf-app .kktf-color-copy>small{display:block;margin-top:13px;font-size:11px;line-height:1.4}
.kktf-app .kktf-color-actions{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.kktf-app .kktf-color-open{min-height:50px;border:3px solid #0b0b0b;background:#ff168f;color:#0b0b0b;padding:10px 16px;box-shadow:4px 4px 0 #0b0b0b;font-weight:950;cursor:pointer}
.kktf-app .kktf-color-actions label{display:flex;gap:8px;align-items:center;font-size:10px;font-weight:950;letter-spacing:.06em}
.kktf-app .kktf-color-fallback{width:46px!important;height:42px;padding:2px!important;border:3px solid #0b0b0b!important;background:#fff!important;cursor:pointer}
.kktf-app .kktf-color-canvas-wrap{margin:0;border:3px solid #0b0b0b;background:#fffdf8;box-shadow:5px 5px 0 #0b0b0b;padding:10px;min-width:0}
.kktf-app .kktf-color-canvas-wrap figcaption{display:flex;justify-content:space-between;gap:10px;align-items:end;margin:0 0 8px;font-size:10px;font-weight:950;letter-spacing:.06em}
.kktf-app .kktf-color-canvas-wrap figcaption strong{font:950 24px/.9 Impact,"Arial Black",Arial,sans-serif}
.kktf-app .kktf-color-canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;border:2px solid #0b0b0b;background:#fff;image-rendering:pixelated}
.kktf-app .kktf-color-progress{margin:8px 0 0;font-size:10px;font-weight:950;letter-spacing:.04em}
.kktf-app .kktf-color-dialog{width:min(640px,calc(100vw - 20px));max-width:none;padding:0;border:4px solid #0b0b0b;background:#ffd335;box-shadow:10px 10px 0 #ff168f;color:#0b0b0b}
.kktf-app .kktf-color-dialog::backdrop{background:rgba(0,0,0,.72)}
.kktf-app .kktf-camera-head{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:3px solid #0b0b0b;font:950 19px Impact,"Arial Black",Arial,sans-serif;letter-spacing:.02em}
.kktf-app .kktf-camera-close{width:42px;height:42px;border:3px solid #0b0b0b;background:#fff;font-size:26px;font-weight:950;cursor:pointer}
.kktf-app .kktf-camera-stage{position:relative;margin:14px;background:#0b0b0b;aspect-ratio:16/9;overflow:hidden}
.kktf-app .kktf-camera-video{width:100%;height:100%;object-fit:cover}
.kktf-app .kktf-camera-target{position:absolute;left:50%;top:50%;width:76px;height:76px;transform:translate(-50%,-50%);border:5px solid #fff;box-shadow:0 0 0 3px #0b0b0b,inset 0 0 0 2px #0b0b0b}
.kktf-app .kktf-camera-status{margin:0 14px 12px;font-size:12px;font-weight:900}
.kktf-app .kktf-camera-actions{display:grid;grid-template-columns:1fr auto;gap:10px;padding:0 14px 16px}
.kktf-app .kktf-camera-actions button{min-height:48px;border:3px solid #0b0b0b;padding:9px 13px;background:#ff168f;font-weight:950;cursor:pointer}
.kktf-app .kktf-camera-actions .kktf-camera-cancel{background:#fff}
.kktf-app .kktf-issue-colors{display:block;width:100%;height:auto;aspect-ratio:600/325;border:2px solid #0b0b0b;image-rendering:pixelated}
.kktf-app .kktf-issue-art-grid figure:last-child{grid-column:1/-1}

/* 2.5.4 · PIXELGÄSTE — 288 kleine KUKU-Bewohner auf einer lebendigen Bühne */
body.kktf-has-pixels .kktf-app{margin-bottom:190px!important}
.kktf-pixel-world,.kktf-pixel-world *{box-sizing:border-box}
.kktf-pixel-world{--pixel-y:#ffd335;--pixel-p:#ff168f;--pixel-b:#0b0b0b;position:fixed;z-index:2147483000;left:50%;bottom:max(8px,env(safe-area-inset-bottom));width:min(930px,calc(100vw - 18px));height:154px;transform:translateX(-50%);display:grid;grid-template-rows:31px 77px 44px;border:3px solid var(--pixel-b);background:#fffdf8;box-shadow:7px 7px 0 var(--pixel-p);font-family:Arial,Helvetica,sans-serif;color:var(--pixel-b);transition:height .18s ease}
.kktf-pixel-toggle{display:grid;grid-template-columns:auto auto 1fr auto;gap:7px;align-items:center;width:100%;height:31px;padding:3px 9px;border:0;border-bottom:2px solid var(--pixel-b);background:var(--pixel-b);color:#fff;text-align:left;cursor:pointer}
.kktf-pixel-toggle strong{font:950 15px Impact,"Arial Black",Arial,sans-serif;letter-spacing:.04em}.kktf-pixel-toggle small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:900;opacity:.82}.kktf-pixel-toggle>b{font-size:18px}.kktf-pixel-live{color:#46db72;text-shadow:0 0 6px #46db72}
.kktf-pixel-stage{position:relative;min-width:0;overflow:hidden;background:linear-gradient(135deg,transparent 0 47%,rgba(255,255,255,.35) 47% 53%,transparent 53%) 0 0/44px 44px,linear-gradient(#bde8ff 0 60%,#f4e6c5 60% 100%);border-bottom:2px solid var(--pixel-b);touch-action:pan-y}
.kktf-pixel-stage:before{content:"";position:absolute;z-index:1;left:0;right:0;top:0;height:12px;background:linear-gradient(135deg,var(--pixel-p) 25%,transparent 25%) 0 0/24px 12px,linear-gradient(225deg,var(--pixel-y) 25%,transparent 25%) 12px 0/24px 12px;opacity:.95}
.kktf-pixel-stage:after{content:"";position:absolute;z-index:1;left:0;right:0;bottom:8px;height:4px;background:repeating-linear-gradient(90deg,var(--pixel-b) 0 4px,transparent 4px 9px);opacity:.22}
.kktf-pixel-place{position:absolute;z-index:1;right:9px;top:16px;padding:2px 5px;border:2px solid var(--pixel-b);background:var(--pixel-y);box-shadow:2px 2px 0 var(--pixel-p);font:950 9px Impact,"Arial Black",Arial,sans-serif;letter-spacing:.08em;transform:rotate(2deg)}
.kktf-pixel-person{position:absolute;z-index:2;left:0;bottom:2px;width:58px;height:68px;padding:0;border:0;background:transparent;color:#0b0b0b;cursor:pointer;will-change:transform;touch-action:none}
.kktf-pixel-person svg{position:absolute;left:9px;bottom:15px;width:40px;height:43px;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.32));image-rendering:pixelated;animation:kktf-pixel-idle 2.8s steps(2,end) infinite}.kktf-pixel-person small{position:absolute;left:50%;bottom:0;max-width:104px;transform:translateX(-50%);padding:2px 4px;background:#fff;border:1px solid #0b0b0b;font-size:7px;font-weight:950;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:1px 1px 0 rgba(0,0,0,.18)}.kktf-pixel-person.is-me small{max-width:122px;background:var(--pixel-y);border-width:2px;font-size:7px}
.kktf-pixel-person.is-me:before{content:"DU";position:absolute;z-index:4;left:2px;top:10px;padding:1px 3px;background:var(--pixel-p);border:1px solid var(--pixel-b);font-size:6px;font-weight:950;transform:rotate(-7deg)}
.kktf-pixel-person.is-outside svg{filter:drop-shadow(2px 2px 0 #fff) drop-shadow(3px 3px 0 rgba(0,0,0,.25))}.kktf-pixel-person.is-outside small{background:#d9f2ff}.kktf-pixel-person.is-selected:after{content:"HIERHIN";position:absolute;left:1px;right:1px;top:5px;height:50px;border:2px dashed var(--pixel-p);background:rgba(255,22,143,.08);pointer-events:none;font-size:6px;font-weight:950;text-align:right}.kktf-pixel-person:focus-visible{outline:3px solid var(--pixel-p);outline-offset:-2px}
@keyframes kktf-pixel-idle{50%{transform:translateY(-1px)}}.kktf-pixel-person.is-walking svg{animation:kktf-pixel-step .28s steps(2,end) infinite}@keyframes kktf-pixel-step{50%{transform:translateY(-4px) rotate(-2deg)}}
.kktf-pixel-person svg[data-trait="glitter"]{filter:drop-shadow(0 0 4px #fff) drop-shadow(2px 2px 0 rgba(0,0,0,.35))}.kktf-pixel-person svg[data-trait="dreamy"]{animation-duration:3.8s}.kktf-pixel-person svg[data-trait="wild"]{animation-duration:1.1s}.kktf-pixel-person svg[data-trait="brave"]{filter:drop-shadow(2px 2px 0 #ff168f)}
.kktf-pixel-bubble{position:absolute;z-index:5;left:28px;top:-6px;min-width:26px;height:26px;display:none;place-items:center;border:2px solid #0b0b0b;border-radius:50%;background:#fff;font-size:16px;box-shadow:2px 2px 0 var(--pixel-p)}.kktf-pixel-bubble.is-showing{display:grid;animation:kktf-pixel-pop 1.5s ease both}@keyframes kktf-pixel-pop{0%{opacity:0;transform:scale(.5) translateY(5px)}15%,75%{opacity:1;transform:scale(1) translateY(0)}100%{opacity:0;transform:translateY(-8px)}}
.kktf-pixel-rooster{display:none;position:absolute;z-index:4;right:0;top:0;font-size:18px;filter:drop-shadow(1px 1px 0 #fff)}.kktf-pixel-person.has-rooster .kktf-pixel-rooster{display:block;animation:kktf-rooster-flap .7s steps(2,end) infinite}@keyframes kktf-rooster-flap{50%{transform:translateY(-3px) rotate(8deg)}}
.kktf-pixel-cluster{position:absolute;z-index:3;right:8px;top:17px;display:grid;place-items:center;width:35px;height:35px;border:3px solid #0b0b0b;border-radius:50%;background:var(--pixel-p);font-weight:950;font-size:12px}
.kktf-pixel-tools{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:8px;align-items:center;padding:4px 7px;background:linear-gradient(90deg,var(--pixel-y),#fff0a8)}.kktf-pixel-tools.is-broadcast{grid-template-columns:1fr}.kktf-pixel-tools.is-broadcast>div{justify-content:center}.kktf-pixel-target{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:950;letter-spacing:.04em}.kktf-pixel-target:empty{display:none}.kktf-pixel-tools>div{display:flex;gap:4px}.kktf-pixel-tools button{width:49px;height:34px;padding:1px 2px;border:2px solid #0b0b0b;background:#fff;font-size:16px;line-height:1;cursor:pointer;box-shadow:2px 2px 0 #0b0b0b}.kktf-pixel-tools button>span{display:block}.kktf-pixel-tools button>small{display:block;margin-top:1px;font-size:5px;font-weight:950;line-height:1;letter-spacing:.02em}.kktf-pixel-tools button:nth-last-child(-n+3){background:#fff7c9}.kktf-pixel-tools button:last-child{background:var(--pixel-p)}.kktf-pixel-tools button:hover,.kktf-pixel-tools button:focus-visible{transform:translateY(-2px);background:#fff}.kktf-pixel-tools button:disabled{opacity:.45;transform:none}
.kktf-pixel-world.is-collapsed{height:31px;grid-template-rows:31px 0 0;overflow:hidden}.kktf-pixel-world.is-collapsed .kktf-pixel-toggle{border-bottom:0}

@media(max-width:800px){
  .kktf-app .kktf-color-window{width:calc(100vw - 20px)!important;max-width:700px!important;left:50%!important;transform:translateX(-50%)!important;grid-template-columns:1fr;gap:16px;margin-bottom:22px;padding:14px;box-shadow:5px 5px 0 #ff168f}.kktf-app .kktf-color-window:before{display:none}.kktf-app .kktf-color-copy h2{font-size:clamp(34px,10.5vw,46px)}.kktf-app .kktf-color-copy>p:not(.kktf-label){font-size:14px;line-height:1.4}.kktf-app .kktf-color-open{width:100%}.kktf-app .kktf-color-actions label{width:100%;justify-content:space-between}.kktf-app .kktf-color-canvas-wrap figcaption{align-items:start}.kktf-app .kktf-color-canvas-wrap figcaption span{text-align:right;font-size:8px}.kktf-app .kktf-color-canvas-wrap figcaption strong{font-size:21px}.kktf-app .kktf-camera-actions{grid-template-columns:1fr}.kktf-app .kktf-camera-actions button{width:100%}.kktf-app .kktf-issue-art-grid figure:last-child{grid-column:auto}
  body.kktf-has-pixels .kktf-app{margin-bottom:158px!important}.kktf-pixel-world{width:calc(100vw - 10px);bottom:max(5px,env(safe-area-inset-bottom));height:132px;grid-template-rows:28px 72px 30px;box-shadow:3px 3px 0 var(--pixel-p)}.kktf-pixel-toggle{height:28px}.kktf-pixel-toggle strong{font-size:13px}.kktf-pixel-toggle small{font-size:8px}.kktf-pixel-person{width:48px;height:63px}.kktf-pixel-person svg{left:8px;width:34px;height:39px}.kktf-pixel-person small{max-width:76px;font-size:6px}.kktf-pixel-person.is-me small{max-width:88px;font-size:6px}.kktf-pixel-tools{padding:2px 4px}.kktf-pixel-tools button{width:34px;height:25px;font-size:15px;box-shadow:1px 1px 0 #0b0b0b}.kktf-pixel-tools button>small{display:none}.kktf-pixel-target{font-size:8px}.kktf-pixel-world.is-collapsed{height:28px;grid-template-rows:28px 0 0}
}
@media(max-width:390px){.kktf-pixel-toggle small{max-width:160px}.kktf-pixel-tools button{width:31px}}
@media(max-width:600px){.kktf-pixel-tools{display:flex;justify-content:center}.kktf-pixel-target{display:none}.kktf-pixel-tools>div{display:grid;width:min(100%,300px);grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.kktf-pixel-tools button{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){.kktf-pixel-world,.kktf-pixel-person,.kktf-pixel-person svg,.kktf-pixel-bubble,.kktf-pixel-rooster{animation:none!important;transition:none!important}}

/* 2.5.3 · DAS DING und die Pixelgäste teilen sich auf Mobil nie denselben Platz. */
@media(max-width:800px){
  body.kktf-has-pixels:not(.kktf-pixels-collapsed) > .kktf-creature-float{
    bottom:max(154px,calc(env(safe-area-inset-bottom) + 149px))!important
  }
  body.kktf-has-pixels:not(.kktf-pixels-collapsed) > .kktf-creature-float .kktf-creature-panel,
  body.kktf-has-pixels:not(.kktf-pixels-collapsed) > .kktf-creature-float .kktf-creature-reaction{
    bottom:max(258px,calc(env(safe-area-inset-bottom) + 253px))!important
  }
  body.kktf-has-pixels.kktf-pixels-collapsed > .kktf-creature-float{
    bottom:max(48px,calc(env(safe-area-inset-bottom) + 43px))!important
  }
  body.kktf-has-pixels.kktf-pixels-collapsed > .kktf-creature-float .kktf-creature-panel,
  body.kktf-has-pixels.kktf-pixels-collapsed > .kktf-creature-float .kktf-creature-reaction{
    bottom:max(152px,calc(env(safe-area-inset-bottom) + 147px))!important
  }
}

/* 2.5.4 · iPhone-sicherer Spielmodus. Dialog = Vollbild innerhalb Safaris. */
.kktf-game-screen{position:relative}
.kktf-game-screen-toggle{
  position:absolute;z-index:160;right:9px;top:9px;display:flex;align-items:center;gap:5px;
  min-height:38px;padding:6px 9px;border:3px solid #0b0b0b;background:#fffdf8;color:#0b0b0b;
  box-shadow:3px 3px 0 #ff168f;font:950 9px/1 Arial,Helvetica,sans-serif;letter-spacing:.04em;cursor:pointer
}
.kktf-game-screen-toggle>span{font-size:18px;line-height:.8}.kktf-game-screen-toggle>.kktf-screen-exit{display:none}
.kktf-game-screen.is-kktf-fullscreen .kktf-game-screen-toggle>.kktf-screen-enter{display:none}
.kktf-game-screen.is-kktf-fullscreen .kktf-game-screen-toggle>.kktf-screen-exit{display:inline}
.kktf-game-screen.is-kktf-fullscreen .kktf-game-screen-toggle{
  position:fixed;top:max(9px,env(safe-area-inset-top));right:max(9px,env(safe-area-inset-right));
  background:#ff168f;z-index:2147483646
}
.kktf-game-screen-dialog{
  position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
  max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;
  background:#0b0b0b!important;color:#fffdf8;overflow:hidden!important
}
.kktf-game-screen-dialog::backdrop{background:#0b0b0b}
html.kktf-game-fullscreen-open,body.kktf-game-fullscreen-open{overflow:hidden!important;overscroll-behavior:none!important}
body.kktf-game-fullscreen-open>.kktf-pixel-world,
body.kktf-game-fullscreen-open>.kktf-creature-float{visibility:hidden!important;pointer-events:none!important}
.kktf-game-screen.is-kktf-fullscreen{
  --b:#0b0b0b;--w:#fffdf8;--y:#ffd335;--p:#ff168f;
  box-sizing:border-box!important;width:100%!important;height:100%!important;min-width:0!important;
  margin:0!important;padding:max(11px,env(safe-area-inset-top)) max(11px,env(safe-area-inset-right)) max(11px,env(safe-area-inset-bottom)) max(11px,env(safe-area-inset-left))!important;
  border:0!important;background:#0b0b0b!important;overflow:hidden!important
}
.kktf-runner-main.is-kktf-fullscreen{
  display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important
}
.kktf-runner-main.is-kktf-fullscreen .kktf-runner-stage{
  align-self:center!important;justify-self:center!important;width:100%!important;height:auto!important;
  max-width:min(100%,calc((100dvh - 116px) * 2.15))!important;aspect-ratio:2.15/1!important;margin:0!important
}
.kktf-runner-main.is-kktf-fullscreen .kktf-runner-canvas{
  display:block!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important
}
.kktf-runner-main.is-kktf-fullscreen .kktf-runner-jump{
  justify-self:center!important;width:min(100%,620px)!important;margin:0!important;min-height:68px!important
}
.kktf-runner-main.is-kktf-fullscreen .kktf-runner-note{display:none!important}
.kktf-game-main.is-kktf-fullscreen{
  display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important
}
.kktf-game-main.is-kktf-fullscreen .kktf-game-stage{
  align-self:center!important;justify-self:center!important;width:min(100%,calc(100dvh - 188px))!important;
  height:auto!important;max-height:none!important;aspect-ratio:1/1!important;margin:0!important
}
.kktf-game-main.is-kktf-fullscreen .kktf-game-controls{
  --kktf-control-size:clamp(104px,28vw,132px);margin:0 auto!important;gap:12px!important
}
@media(orientation:landscape) and (max-height:600px){
  .kktf-runner-main.is-kktf-fullscreen{
    grid-template-columns:minmax(0,1fr) clamp(126px,22vw,180px)!important;grid-template-rows:1fr!important
  }
  .kktf-runner-main.is-kktf-fullscreen .kktf-runner-stage{grid-column:1;width:100%!important;max-width:none!important}
  .kktf-runner-main.is-kktf-fullscreen .kktf-runner-jump{grid-column:2;width:100%!important;height:min(72dvh,220px)!important}
  .kktf-game-main.is-kktf-fullscreen{
    grid-template-columns:minmax(0,1fr) clamp(172px,25vw,225px)!important;grid-template-rows:1fr!important
  }
  .kktf-game-main.is-kktf-fullscreen .kktf-game-stage{
    grid-column:1;width:100%!important;height:100%!important;max-height:100%!important;aspect-ratio:auto!important
  }
  .kktf-game-main.is-kktf-fullscreen .kktf-game-controls{
    --kktf-control-size:clamp(92px,25dvh,112px);grid-column:2;flex-flow:column nowrap!important;align-items:center!important
  }
}
