:root {
  --cream: #fff7e7;
  --ink: #243024;
  --green: #2f7d4a;
  --gold: #f4c95d;
  --shadow: 0 18px 45px rgba(24, 54, 30, .18) ;
}

* {
  box-sizing: border-box;
}

.screen {
  display: none;
  align-items: center;
  justify-content: center;
}

.screen.active {
  display: flex;
}

.panel {
  width: 100%;
}

.lead {
  font-size: 18px;
  line-height: 1.5;
  color: #5b6b59;
}

.intro-panel h1,
.end-panel h1 {
  font-family: Georgia, serif;
  font-size: clamp(48px, 8vw, 88px);
  line-height: 0.92;
  margin: 0 0 12px;
  color: #284d31;
}

.player-selects {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 30px 0;
}

.player-select {
  padding: 20px;
  border-radius: 22px;
  background: #f8f1dc;
}
.player-select h2 {
  text-align: center;
}

.player-select h2 {
  margin: 0 0 18px;
  font-size: 17px;
}

h1 img {
  height: 40px;
  aspect-ratio: 1/1;
  display: inline-block;
  vertical-align: baseline;
  transform: translateY(5px);
  margin-right: 25px;
}

.choice-row {
  display: flex;
  justify-content: center;
  gap: 16px;
}

.token-choice {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  border: 0px;
  background: gray;
  cursor: pointer;
  transition: 0.2s transform, 0.2s border-color;
  padding: 0px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.token-choice img {
  width: 80%;
  height: 80%;
}
.token-choice span {
  display: block;
  inset: 0;
  height: 100%;
  width: 100%;
}
.token-choice .diamond {
  transform: translateY(-2px);
}

.token-choice:hover {
  transform: translateY(-2px);
}

.token-choice.selected {
  border-color: #426b45;
  background: var(--accent);
}

.game-board {
  width: 100%;
}

.player-layer {
  position: absolute;
  z-index: 5 !important;
}

.player-layer-overlay {
  z-index: 11 !important;
}

.fireworks {
  position: absolute;
  z-index: 13 !important;
}

.dice-box {
  position: absolute;
  inset: 0;
  z-index: 12 !important;
}

.field {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 250, 237, 0.78);
  border: 2px solid rgba(55, 91, 50, 0.45);
  font-size: 10px;
  font-weight: 800;
  color: #365337;
  box-shadow: 0 2px 6px rgba(34, 64, 34, 0.12);
}

.field.target {
  width: 34px;
  height: 34px;
  background: #f8d15c;
  border-color: #c48d22;
  color: #513d13;
}

.player-token {
  position: absolute;
  width: clamp(20px, 3.8vw, 3.8vh) !important;
  height: clamp(20px, 3.8vw, 3.8vh) !important;
  transform: translate(-50%, -70%);
  display: grid;
  place-items: center;
  z-index: 5;
  transition: all 0.6s ease;
}
.player-token img {
  width: 100%;
  height: 100%;
}
.player-token.player-star.active img {
  animation: token-spin 0.12s linear infinite;
}
.player-token.player-diamond.active img {
  animation: token-spin2 0.15s linear infinite;
}
.player-token.special-jump {
  transition: all 2s ease;
}
.player-token.special-jump.l1 {
  animation: token-l1 2s ease forwards;
}

@keyframes token-c10 {
  0% {
    offset-distance: 0%;
  }
  100% {
    offset-distance: 100%;
  }
}
/* .path-c10 {
    position: absolute;
    left:60%;
    top: 63%;
    z-index:50;
    //width: 13%;
    //height: 8%;
    //opacity: 0;
    //pointer-events: none;
} */
@keyframes token-l1 {
  0% {
    transform: translateY(-80);
  }
  30% {
    transform: translateY(180%);
  }
  50% {
    transform: translateY(0%);
  }
  75% {
    transform: translateY(70%);
  }
  100% {
    transform: translateY(-80%);
  }
}
@keyframes token-c10 {
  0% {
    transform: translateX(0%) translateY(0%);
  }
  25% {
    transform: translateX(0%) translateY(0%);
  }
  40% {
    transform: translateX(50%) translateY(-300%);
  }
  50% {
    transform: translateX(0%) translateY(-400%);
  }
  60% {
    transform: translateX(-200%) translateY(-300%);
  }
  75% {
    transform: translateX(0%) translateY(0%);
  }
  100% {
    transform: translateX(0%) translateY(0%);
  }
}
@keyframes token-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(72deg);
  }
}
@keyframes token-spin2 {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(90deg);
  }
}
.player-token.active {
  z-index: 6;
}

.player-star span {
  font-size: 40px;
  line-height: 1;
  color: #fff;
}

.player-diamond span {
  font-size: 40px;
  line-height: 1;
  color: #fff;
}

#question-text {
  margin-top: 25px;
  font-weight: bold;
}

.question-card {
  width: 100%;
}

.question-meta {
  display: flex;
  justify-content: center;
  color: var(--accent);
  font-weight: bold;
  text-align: center;
  margin-top: 25px;
  margin-bottom: 25px;
}

.question-card h2 {
  margin: 8px 0 14px;
  font-size: 22px;
  line-height: 1.25;
}

.answers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.answer {
  border: 2px solid #d7dec9;
  background: #f5f1df;
  color: black;
  font-weight: 700;
  cursor: pointer;
  transition: 0.18s transform, 0.18s background, 0.18s border;
}

.answer:hover:not(:disabled) {
  transform: translateY(-2px);
  background: #fff;
}

.answer.correct {
  background: #d9f0d0;
  border-color: #78a86c;
}

.answer.wrong {
  background: #f6d7ce;
  border-color: #c77f70;
}

.answer:disabled {
  cursor: default;
}

.dice-box {
  display: grid;
  place-items: center;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
}

.dice-box.visible {
  opacity: 1;
}

.die-wrap {
  width: 110px;
  height: 110px;
  perspective: 700px;
}

.die {
  position: relative;
  width: 78px;
  height: 78px;
  transform-style: preserve-3d;
  transition: transform 1.1s cubic-bezier(0.18, 0.7, 0.2, 1);
}

.face {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #fff9e9;
  border: 4px solid #b6811e;
  color: #563f10;
  font-size: 32px;
  font-weight: 900;
  box-shadow: inset 0 0 0 2px #ffe59b;
}

.front {
  transform: translateZ(39px);
}

.back {
  transform: rotateY(180deg) translateZ(39px);
}

.right {
  transform: rotateY(90deg) translateZ(39px);
}

.left {
  transform: rotateY(-90deg) translateZ(39px);
}

.top {
  transform: rotateX(90deg) translateZ(39px);
}

.bottom {
  transform: rotateX(-90deg) translateZ(39px);
}

.roll-btn {
  margin: 16px auto 0 auto;
}

.dice-box.rolling .die {
  animation: die-spin 1.1s linear infinite;
}

@keyframes die-spin {
  to {
    transform: rotateX(720deg) rotateY(1080deg) rotateZ(540deg);
  }
}
.ladder {
  stroke: #8b5e34;
  stroke-width: 1.4;
  fill: none;
  stroke-linecap: round;
  stroke-dasharray: 3 1;
}

.ladder-rung {
  stroke: #d4a15e;
  stroke-width: 1;
}

.chute {
  stroke: #af6b55;
  stroke-width: 1.5;
  fill: none;
  stroke-linecap: round;
  stroke-dasharray: 1.5 1;
}

.special-ghost {
  stroke: #fff2aa;
  stroke-width: 3;
  fill: none;
  opacity: 0.4;
  filter: blur(2px);
}

.firework-burst {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
  border: 0;
}

.spark {
  position: absolute;
  left: 0;
  top: 0;
  width: 2px;
  height: 40px;
  border-radius: 999px;
  background: #c21717;
  transform-origin: 50% 100%;
  animation: spark-out 1.5s ease-out forwards;
}
.spark:nth-child(2n) {
  background: #FC9936;
}

@keyframes spark-out {
  0% {
    opacity: 1;
    transform: rotate(var(--angle)) translateY(0) scaleY(0.3);
  }
  100% {
    opacity: 0;
    transform: rotate(var(--angle)) translateY(-90px) scaleY(1);
  }
}
.end-panel {
  display: flex;
  flex-direction: column;
}
.end-panel button {
  align-self: center;
}

.score-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 28px 0;
}

.score-card {
  padding: 22px;
  border-radius: 20px;
  background: #f7f0db;
}

.score-card span {
  display: block;
  color: #718063;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.score-card strong {
  display: block;
  margin-top: 8px;
  font-size: 21px;
}

@media (max-width: 720px) {
  .panel {
    padding: 28px;
  }
  .player-selects,
  .answers,
  .score-grid {
    grid-template-columns: 1fr;
  }
  .question-card {
    bottom: 10px;
  }
  .question-card h2 {
    font-size: 18px;
  }
  .answer {
    padding: 11px 10px;
  }
  .status-pill {
    top: 66px;
  }
  .field {
    width: 22px;
    height: 22px;
    font-size: 8px;
  }
}
/* Echte Dice-Box als transparente Canvas-Overlay-Schicht */
.dice-box {
  display: block;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  background: transparent !important;
}

.dice-box.visible {
  opacity: 1;
}

#dice-box canvas {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: transparent !important;
  display: block !important;
  pointer-events: none !important;
}/*# sourceMappingURL=game.css.map */