@font-face{font-family:Minecraftia;src:url("/minecraftia.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:dark;--bg:#181a18;--panel:#262926;--edge:#555951;--ink:#f5f5ed;--muted:#c8cbc1;--violet:#aad173;--red:#ff7780;--blue:#81b5ff;font-family:Minecraftia,monospace}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}a{color:#c0db95}button,select,input,textarea{background:#222522;color:var(--ink);border:1px solid var(--edge);border-radius:0;padding:.63rem .8rem}button{cursor:pointer;font-weight:650}button:hover:not(:disabled){border-color:#c0db95;background:#343a30}button:disabled{opacity:.43;cursor:default}:focus-visible{outline:2px solid #e6c7ff;outline-offset:3px}.primary{background:#355525;border-color:#86a965}.danger{background:#4b1423;border-color:#8a3549}.blue-button{background:#152d58;border-color:#395f9e}
.board{min-height:100svh;display:grid;align-items:center;background:#181a18}
.stage{width:100%;padding:3.1vw 2.7vw;display:grid;grid-template-columns:18% minmax(0,1fr) 18%;gap:1.5vw;align-items:center}.center{min-width:0;display:grid;gap:1.15vw}.round,.center h1,.answers,.team,.phase{background:#222522;border:2px solid #64685e;box-shadow:inset 3px 3px #373b35,inset -3px -3px #111311;border-radius:0}.round{justify-self:center;text-align:center;padding:.45vw 2vw;min-width:12vw}.round span,.answers h2{font-weight:900;letter-spacing:.15em;color:#c0db95;font-size:1.2vw}.round strong{display:block;font-size:2vw}.center h1{text-align:center;margin:0;padding:1.4vw 1vw;font-size:2.35vw;line-height:1.18;text-wrap:balance}.answers{overflow:hidden}.answers h2{margin:0;text-align:center;padding:.8vw;background:#41463d}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65vw;padding:.7vw}.tile{min-width:0;min-height:10vw;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6vw;padding:.75vw .45vw;background:#222522;border:2px solid #64685e;border-radius:0;text-align:center}.tile strong{font-size:1.75vw;overflow-wrap:anywhere;line-height:1.08}.tile .rank{font-size:1.05vw}.rank{display:inline-grid;place-items:center;background:#444c3c;color:white;border-radius:0;font-weight:900;min-width:1.65em;min-height:1.65em}.points{font-size:1.15vw;background:#100c1d;border-radius:0;padding:.18em .6em}.revealed{background:#384d2b}.revealed.red{background:#551b2b;border-color:#af415a}.revealed.blue{background:#19335e;border-color:#537ed0}.phase{text-align:center;padding:.85vw;font-weight:800;font-size:1.45vw;color:#c0db95}.team{text-align:center;padding:1vw .65vw;overflow:hidden}.team h2{margin:0 0 1.2vw;padding:.6vw 0;border-radius:0;font-size:1.45vw;background:#792338}.team.blue h2{background:#204984}.team .total{font-size:3.25vw;font-weight:950;font-variant-numeric:tabular-nums}.hearts{color:var(--red);letter-spacing:.13em;white-space:nowrap}.team .hearts{font-size:2.25vw;margin:.6vw 0}.blue .hearts{color:var(--blue)}.lost{color:#44374f}.team.active{border-color:#f48fa0}.team.blue.active{border-color:#90bdff}.badge{color:var(--muted);font-size:1.2vw;margin:.65vw 0 0;font-weight:800}.active .badge{color:#f5ffd1}.player{font-size:1.4vw;margin:.4vw 0;overflow-wrap:anywhere}#connection{position:fixed;bottom:1vw;left:2vw;color:#f4b774;font-size:1.25vw}
.moderation{padding:1.4rem clamp(1rem,3vw,3rem);background:#181a18;min-height:100vh}.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.top h1{margin:.15rem 0;font-size:2.1rem}.top small,.box h2{color:#c0db95;letter-spacing:.09em;text-transform:uppercase;font-weight:800}.top nav{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}#message{min-height:1.25rem;color:#f5cb88;margin:.5rem 0}.console{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1rem;max-width:1600px;margin:auto}.box{background:var(--panel);border:1px solid var(--edge);border-radius:0;padding:1rem;margin-bottom:.85rem}.box h2{font-size:.82rem;margin:0 0 .85rem}.box #prompt{font-size:1.3rem;text-transform:none;letter-spacing:0;color:white}.controls{display:flex;align-items:end;gap:.45rem;flex-wrap:wrap;margin-top:.65rem}.controls button,.team-card button{font-size:.84rem}.box label{display:grid;gap:.3rem;color:var(--muted);font-size:.86rem}.box select,.box textarea{width:100%;min-width:0}.answer-row{display:grid;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.7rem;background:#222522;border:1px solid #64685e;border-radius:0;margin:.55rem 0;padding:.75rem}.answer-row small{display:block;color:var(--muted);margin-top:.2rem}.answer-row button{min-width:6rem}.team-controls,.duel{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.7rem}.team-card{border:1px solid #663040;background:#251522;border-radius:0;padding:.65rem}.team-card.blue{border-color:#344b74;background:#151f34}.team-card.active{outline:2px solid var(--violet)}.team-card button{margin:.2rem .25rem 0 0}.hint{font-size:.8rem;color:var(--muted)}.notes{background:#282013;border-color:#6d5427}.notes h2{color:#ffd58c}.notes p{white-space:pre-wrap}.box summary{font-weight:750;cursor:pointer}.box textarea{margin:.5rem 0;resize:vertical;font-family:ui-monospace,monospace}.box input{width:10rem}#round-status,#current-points{font-weight:800;color:#c0db95}
@media(max-width:820px){.console{grid-template-columns:1fr}.moderation{padding:.75rem}}

/* Blockkanten und Schatten in ganzen Pixeln. */
button, select, input, textarea { border-width: 2px; }
button { box-shadow: inset 2px 2px #ffffff26, inset -2px -2px #0008; }
.box, .team-card, .answer-row { border-width: 2px; }
.box, .team-card { box-shadow: inset 2px 2px #ffffff16, inset -2px -2px #0005; }
.stage { text-shadow: .13vw .13vw #090b09; }
.tile strong { font-size: 1.72vw; line-height: 1.3; }
.center h1 { line-height: 1.3; }
.team h2, .rank, .points, .answers h2 { padding-top: .22em; }
.board .hearts { font-family: Minecraftia, "Segoe UI Symbol", sans-serif; }
.moderation { font-size: .86rem; line-height: 1.65; }
.top h1 { font-size: 1.65rem; text-shadow: 3px 3px #080a08; }
.box #prompt { font-size: 1.05rem; line-height: 1.5; }
.box h2, .top small { letter-spacing: .045em; }
.controls button, .team-card button { font-size: .75rem; }
.team-card.red { background: #311e22; }
.team-card.blue { background: #1c2838; }

.hearts {
  display:flex;
  align-items:center;
  gap:3px;
}
.team .hearts { justify-content:center; gap:.15vw; }
.heart {
  display:block;
  position:relative;
  width:18px;
  aspect-ratio:1;
  background:url('/heart-empty.png') center / 100% 100% no-repeat;
  image-rendering:pixelated;
}
.heart.full::after {
  content:'';
  position:absolute;
  inset:0;
  background:url('/heart-full.png') center / 100% 100% no-repeat;
}
.blue .heart.full::after { filter:hue-rotate(225deg); }
.team .heart { width:1.8vw; }
.players {
  list-style:none;
  display:grid;
  gap:.45vw;
  margin:1vw 0 0;
  padding:0;
  text-align:left;
}
.player-row {
  display:grid;
  grid-template-columns:2.65vw minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:.55vw;
  min-height:3.55vw;
  padding:.35vw;
  background:#202320;
  border:2px solid #454b42;
}
.skin-face {
  grid-row:1 / span 2;
  display:block;
  width:2.65vw;
  aspect-ratio:1;
  background:url('/steve.png') calc(100% / 7) calc(100% / 7) / 800% 800% no-repeat;
  image-rendering:pixelated;
}
.skin-face img { display:block; width:100%; height:100%; image-rendering:pixelated; }
.player-name { grid-row:1 / span 2; font-size:.95vw; overflow-wrap:anywhere; }
.turn-marker { display:none; font-size:.66vw; color:#e0ffc3; }
.player-row.current { border-color:#b2d67f; background:#344329; }
.player-row.current .player-name { grid-row:1; }
.player-row.current .turn-marker { display:block; grid-row:2; }
#roster-fields fieldset { min-width:0; margin:0; padding:.65rem; border:2px solid var(--edge); }
#roster-fields label { margin:.45rem 0; }
#roster-fields input { width:100%; }

[hidden]{display:none!important}
.mode-tabs{display:flex;gap:.6rem;margin-top:1rem}
#sounds-console{max-width:1600px;margin:auto}
#sound-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.sound-setting{min-width:0;margin-bottom:0}
.sound-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.sound-fields input{width:100%;min-width:0}
.sound-name{grid-column:1 / -1}
.sound-name input{font-family:ui-monospace,monospace}
.box label.sound-toggle{display:flex;align-items:center;gap:.6rem;margin-top:.9rem}
.sound-toggle input{width:1.2rem;height:1.2rem;accent-color:#aad173;flex-shrink:0}
@media(max-width:900px){#sound-settings{grid-template-columns:1fr}}
.final-timer{border:2px solid var(--edge);background:#181a18;text-align:center;font-size:3rem;padding:.5rem;color:#c0db95;font-variant-numeric:tabular-nums}
.final-timer.expired{color:var(--red)}
.final-question.active{border-color:#aad173}
#final-overview{grid-column:1 / -1;margin-bottom:0;padding:.85rem 1rem}
#final-overview h2{margin-bottom:.65rem}
#final-steps{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0 0 .75rem;padding:0;font-size:.72rem}
#final-steps li{padding:.4rem .6rem;border:2px solid var(--edge);color:var(--muted);background:#222522}
#final-steps li.active{border-color:#aad173;background:#30392a;color:var(--ink)}
#final-question-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;list-style:none;margin:0;padding:0}
#final-question-overview li{min-width:0}
#final-question-overview button{display:grid;grid-template-columns:1.75rem minmax(0,1fr);align-items:center;gap:.55rem;width:100%;height:100%;padding:.36rem .7rem;text-align:left;font-size:.78rem;font-weight:400;line-height:1.55}
#final-question-overview button:disabled{opacity:1;cursor:default}
#final-question-overview button.active{border-color:#aad173;background:#30392a}
#final-question-overview .rank{font-size:.75rem}
#final-question-overview .question-text{overflow-wrap:anywhere}
#final-console>.right{position:sticky;top:1rem;align-self:start;max-height:calc(100vh - 2rem);overflow-y:auto}
.final-answer .error{color:#ff9b9b}
.final-question-heading{display:flex;gap:.8rem;align-items:start;justify-content:space-between;margin-bottom:.8rem}
.final-question-heading h2{color:var(--ink);text-transform:none;letter-spacing:0;line-height:1.7;margin:0}
.final-answer{min-width:0;margin:0;padding:.7rem;border:2px solid #8a3549;background:#311e22}
.final-answer.blue{border-color:#395f9e;background:#1c2838}
.final-answer legend{color:var(--red);padding:0 .3rem}
.final-answer.blue legend{color:var(--blue)}
.final-answer label{margin-bottom:.6rem}
.final-answer input{width:100%}
.final-answer .controls button{flex:1;font-size:.67rem}
.score-total{font-size:1.8rem;margin:.5rem 0}
#final-scores small{display:block;font-size:.7rem}
#final-winner{color:#c0db95;font-size:1.1rem}
.final-board-header{background:#222522;border:2px solid #64685e;padding:.6vw 1vw;text-align:center;box-shadow:inset 3px 3px #373b35,inset -3px -3px #111311}
.final-mode .stage{padding-top:1.5vw;padding-bottom:1.5vw}
.final-board-header>span{font-size:1.7vw;color:#c0db95}
.final-countdown{margin-top:1vw;min-height:33vw;border:2px solid #7fb238;background:#282828;box-shadow:inset 3px 3px #373b35,inset -3px -3px #111311;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2vw;text-align:center;padding:2vw 1vw}
.final-countdown p{margin:0;font-size:1.55vw;color:#c0db95}
#final-countdown-team{font-size:2.2vw;color:var(--muted)}
#final-countdown-team.red{color:var(--red)}
#final-countdown-team.blue{color:var(--blue)}
#final-countdown-value{font-size:13vw;line-height:1.2;color:#fff;font-variant-numeric:tabular-nums;transform:translateY(2vw)}
.final-countdown.expired{border-color:var(--red)}
.final-countdown.expired #final-countdown-value,.final-countdown.expired #final-countdown-status{color:var(--red)}
#final-waiting>strong{font-size:2.6vw;line-height:1.6;max-width:90%}
.final-column-labels,.final-board-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);gap:.35vw}
.final-column-labels{font-size:.85vw;text-align:center;margin:.7vw 0;color:#c0db95}
.final-column-labels span:first-child{color:var(--red)}
.final-column-labels span:last-child{color:var(--blue)}
#final-rows{display:grid;gap:.35vw}
.final-board-answer,.final-board-question{border:2px solid #555951;background:#222522;padding:.6vw .4vw;min-height:4.9vw;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;overflow-wrap:anywhere}
/* Minecraftia reserviert unter dem sichtbaren Text zusätzlichen Schriftabstand. */
.final-board-answer-content{display:flex;align-items:center;flex-direction:column;max-width:100%;position:relative;top:.45vw}
.final-board-answer strong{font-size:1.2vw;line-height:1.4}
.final-board-answer small{font-size:.9vw;color:var(--muted);margin-top:.25vw}
.final-board-question{gap:.35vw}
.final-board-question strong{font-size:.95vw;line-height:1.5}
.final-board-question .rank{font-size:.62vw}
.final-board-row.current .final-board-question{border-color:#aad173}
.final-board-answer.wrong{background:#292c29;border-color:#64685e}
.final-board-answer.wrong strong{color:#b3b5ad}
.score-detail{font-size:1.5vw;margin:.3vw 0}
@media(max-width:1100px){.final-question .duel{grid-template-columns:1fr}}
@media(max-width:820px){#final-console>.right{position:static;max-height:none}}

/* Neutrale Schriftflächen vermeiden Farbsäume bei JPEG und Kartenpalette. */
.board {
  --bg:#191919;
  --panel:#282828;
  --edge:#707070;
  --ink:#ffffff;
  --muted:#b4b4b4;
  --red:#993333;
  --blue:#334cb2;
  --map-raised:#353535;
  --map-highlight:#4c4c4c;
  --map-shadow:#151515;
  --map-green:#7fb238;
  background:var(--bg);
}
.board .stage { text-shadow:2px 2px #0d0d0d; }
.board .round,.board .center h1,.board .answers,.board .team,.board .phase,.board .final-board-header {
  background:var(--panel);
  border-color:var(--edge);
  box-shadow:inset 3px 3px var(--map-highlight),inset -3px -3px var(--map-shadow);
}
.board .tile,.board .player-row,.board .final-board-answer,.board .final-board-question {
  background:var(--panel);
  border-color:var(--edge);
}
.board .answers h2,.board .rank,.board .points { background:var(--map-raised);color:var(--ink); }
.board .round span,.board .phase,.board .badge,.board .active .badge,.board .turn-marker,
.board .final-board-header>span,.board .final-column-labels,.board #connection { color:var(--ink); }
.board .team h2 {
  background:var(--panel);
  border:4px solid var(--red);
  color:var(--ink);
}
.board .team.blue h2 { background:var(--panel);border-color:var(--blue); }
.board .revealed,.board .player-row.current {
  background:var(--map-raised);
  border-color:var(--map-green);
}
.board .revealed.red,.board .team.red.active { border-color:var(--red); }
.board .revealed.blue,.board .team.blue.active { border-color:var(--blue); }
.board .revealed.red,.board .revealed.blue { background:var(--map-raised); }
.board .final-column-labels span:first-child {
  color:var(--ink);
  border-bottom:3px solid var(--red);
}
.board .final-column-labels span:last-child {
  color:var(--ink);
  border-bottom:3px solid var(--blue);
}
.board .final-board-row.current .final-board-question { border-color:var(--map-green); }
.board .final-board-answer.wrong { background:var(--panel);border-color:var(--edge); }
.board .final-board-answer.wrong strong { color:var(--muted); }

/* Grüner Minecraft-Akzent auf neutralen, kartentauglichen Schriftflächen. */
.board .round,.board .answers,.board .phase,.board .final-board-header {
  border-color:var(--map-green);
}
.board .round span,.board .answers h2,.board .phase,.board .final-board-header>span,
.board .active .badge,.board .turn-marker,.board .final-column-labels span:nth-child(2) {
  color:var(--map-green);
}

/* Team- und Antwortfarben bleiben auch bei einem Kontrollwechsel zugeordnet. */
.board .team.red { background:#311e22; }
.board .team.blue { background:#1c2838; }
.board .team.red h2 { background:var(--red); }
.board .team.blue h2 { background:var(--blue); }
.board .tile.revealed.red,.board .final-board-answer.revealed.red:not(.wrong) { background:#551b2b; }
.board .tile.revealed.blue,.board .final-board-answer.revealed.blue:not(.wrong) { background:#19335e; }
