/* ============================================================
   Höchster Turm — Live-Quiz-Experience.
   Eigenes Präfix .tower-; aktiv nur im Kahoot-Spielskin.
   ============================================================ */

body.qz-tower main#app {
  width: 100%; max-width: 96rem; box-sizing: border-box;
}
body.qz-tower .host-bar {
  width: min(100%, 92rem); margin-inline: auto; box-sizing: border-box;
}

body.qz-kahoot .tower-eyebrow {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .25rem .7rem; border-radius: 999px;
  color: #2f1c54; background: #ffe29a;
  font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase;
}

/* ---------- Intro ---------- */
body.qz-kahoot .tower-intro {
  display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(16rem, .88fr);
  align-items: center; gap: clamp(1rem, 3vw, 3rem);
  width: min(100%, 82rem); min-height: clamp(27rem, 60vh, 40rem);
  margin: .7rem auto; padding: clamp(1.2rem, 3vw, 2.4rem);
  border: 1px solid rgba(255, 255, 255, .32); border-radius: 1.2rem;
  color: #23163d;
  background:
    radial-gradient(circle at 82% 18%, rgba(255, 214, 102, .58), transparent 31%),
    linear-gradient(140deg, #fffaf0 0%, #fff1d4 54%, #e9dcff 100%);
  box-shadow: 0 1.2rem 3rem rgba(24, 9, 54, .28);
}
body.qz-kahoot .tower-intro__copy { position: relative; z-index: 2; }
body.qz-kahoot .tower-intro h2 {
  margin: .35rem 0 .45rem; color: #3b206d;
  font-size: clamp(2.4rem, 6vw, 5.4rem); line-height: .95; letter-spacing: -.035em;
}
body.qz-kahoot .tower-intro__lead {
  max-width: 43rem; margin: 0 0 1rem;
  font-size: clamp(1rem, 1.8vw, 1.35rem); line-height: 1.45;
}
body.qz-kahoot .tower-tutorial {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem;
  margin: 1rem 0; padding: 0; list-style: none; counter-reset: tower-step;
}
body.qz-kahoot .tower-tutorial li {
  counter-increment: tower-step; display: grid; grid-template-columns: auto 1fr;
  gap: .1rem .45rem; align-content: start; min-height: 6.2rem;
  padding: .75rem; border: 1px solid rgba(59, 32, 109, .14); border-radius: .8rem;
  background: rgba(255, 255, 255, .72);
}
body.qz-kahoot .tower-tutorial li::before {
  content: counter(tower-step); display: inline-grid; place-items: center;
  width: 1.55rem; height: 1.55rem; border-radius: 50%;
  color: #fff; background: #4b2c7b; font-weight: 900;
}
body.qz-kahoot .tower-tutorial li span {
  grid-column: 1 / -1; color: #604f72; font-size: .86rem; line-height: 1.35;
}
body.qz-kahoot .tower-teamchips { display: flex; flex-wrap: wrap; gap: .45rem; }
body.qz-kahoot .tower-teamchip {
  padding: .38rem .7rem; border: 2px solid var(--tower-team-dark); border-radius: 999px;
  color: #fff; background: var(--tower-team); font-size: .86rem; font-weight: 800;
}
body.qz-kahoot .tower-hero {
  display: grid; place-items: center; min-height: 20rem;
  border-radius: 1rem; overflow: hidden;
  background: rgba(255, 255, 255, .5);
  box-shadow: inset 0 0 0 1px rgba(59, 32, 109, .1);
}
body.qz-kahoot .tower-hero__img {
  display: block; width: 100%; height: 100%; max-height: 31rem;
  object-fit: contain; mix-blend-mode: multiply;
}

/* ---------- Host: Bauphase ---------- */
body.qz-kahoot .tower-hud {
  display: flex; align-items: center; gap: .85rem; flex-wrap: wrap;
  width: min(100%, 92rem); margin: .35rem auto .5rem; padding: .55rem .85rem;
  border: 1px solid rgba(255, 255, 255, .28); border-radius: .95rem;
  color: #fff; background: rgba(38, 22, 72, .86); backdrop-filter: blur(8px);
  font-weight: 750;
}
body.qz-kahoot .tower-hud__title { font-size: 1.08rem; font-weight: 900; }
body.qz-kahoot .tower-hud__total { color: #f6eaff; }
body.qz-kahoot .tower-hud__event { color: #ffe9a9; font-size: .88rem; }
body.qz-kahoot .tower-hud__timer {
  margin-left: auto; padding: .22rem .65rem; border-radius: 999px;
  color: #2f1c54; background: #ffe29a; font-variant-numeric: tabular-nums; font-weight: 900;
}
body.qz-kahoot .tower-arena {
  position: relative; isolation: isolate; overflow: hidden;
  width: min(100%, 92rem);
  height: clamp(28rem, min(64vh, calc((100vw - 2rem) * .52)), 46rem);
  margin: 0 auto; border: 1px solid rgba(255, 255, 255, .4); border-radius: 1.15rem;
  background-color: #84c9ec;
  background-image:
    linear-gradient(180deg, rgba(37, 80, 143, .08), rgba(255, 255, 255, .08) 52%, rgba(87, 63, 51, .2) 100%),
    url("/quiz/assets/tower/blue-sky-clouds-cc0.jpg");
  background-size: cover; background-position: center 42%;
  box-shadow: inset 0 -8rem 8rem rgba(37, 30, 62, .18), 0 1rem 2.8rem rgba(0, 0, 0, .24);
}
body.qz-kahoot .tower-arena::before {
  content: ""; position: absolute; z-index: 0; inset: auto 0 0; height: 27%;
  background:
    linear-gradient(90deg, transparent 0 4%, rgba(50, 57, 80, .25) 4% 9%, transparent 9% 13%, rgba(50, 57, 80, .2) 13% 22%, transparent 22% 27%, rgba(50, 57, 80, .28) 27% 34%, transparent 34% 100%),
    linear-gradient(180deg, transparent, rgba(44, 48, 65, .4));
  clip-path: polygon(0 45%, 5% 45%, 5% 24%, 12% 24%, 12% 57%, 20% 57%, 20% 34%, 29% 34%, 29% 52%, 39% 52%, 39% 18%, 47% 18%, 47% 48%, 57% 48%, 57% 30%, 66% 30%, 66% 58%, 74% 58%, 74% 22%, 83% 22%, 83% 49%, 91% 49%, 91% 35%, 100% 35%, 100% 100%, 0 100%);
}
body.qz-kahoot .tower-lanes {
  position: relative; z-index: 2; display: grid; height: 100%; min-width: 34rem;
  grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.35rem, 1.5vw, 1.2rem);
  padding: .8rem clamp(.5rem, 2vw, 1.5rem) 1.6rem;
}
body.qz-kahoot .tower-lanes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.qz-kahoot .tower-lanes--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.qz-kahoot .tower-lane {
  display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); min-width: 0;
  padding: .45rem .4rem .1rem; border-radius: .9rem .9rem 0 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, .42), rgba(255, 255, 255, .08) 34%, transparent 72%);
  transition: box-shadow .35s ease, background .35s ease;
}
body.qz-kahoot .tower-lane.is-leading {
  background: linear-gradient(180deg, rgba(255, 244, 170, .66), rgba(255, 255, 255, .12) 36%, transparent 72%);
  box-shadow: inset 0 0 0 3px rgba(255, 228, 103, .7);
}
body.qz-kahoot .tower-lane.has-event {
  box-shadow: inset 0 0 0 3px rgba(255, 132, 46, .88), 0 0 1.2rem rgba(255, 178, 75, .42);
}
body.qz-kahoot .tower-lane__name {
  grid-row: 1;
  justify-self: center; margin: 0 0 .2rem; padding: .27rem .65rem;
  border: 2px solid var(--tower-team-dark); border-radius: 999px;
  color: #fff; background: var(--tower-team); font-size: clamp(.82rem, 1.6vw, 1.08rem);
  text-shadow: 0 1px 1px rgba(0, 0, 0, .28);
}
body.qz-kahoot .tower-lane__score {
  grid-row: 2;
  justify-self: center; min-height: 1.3rem; color: #30204f;
  padding: .18rem .5rem; border-radius: .45rem;
  background: rgba(255, 255, 255, .84); font-size: clamp(.72rem, 1.3vw, .92rem); font-weight: 900;
}
body.qz-kahoot .tower-lane__event {
  grid-row: 3;
  justify-self: center; margin-top: .2rem; padding: .12rem .45rem;
  border-radius: 999px; color: #3a2100; background: #ffd166;
  font-size: .72rem; font-weight: 950;
}
body.qz-kahoot .tower-lane__event[hidden] { display: none; }
body.qz-kahoot .tower-stack { position: relative; grid-row: 4; min-height: 0; }
body.qz-kahoot .tower-stack__mass {
  position: absolute; left: 8%; right: 8%; bottom: 2.2rem;
  display: flex; flex-direction: column-reverse; align-items: center; gap: 2px;
  height: 0; transition: height .72s cubic-bezier(.2, .8, .2, 1);
}
body.qz-kahoot .tower-block {
  display: block; flex: 1 1 0; min-height: .42rem; max-height: 1.6rem;
  border: 2px solid var(--tower-team-dark); border-radius: .28rem;
  background: var(--tower-team); box-shadow: inset 0 .16rem rgba(255, 255, 255, .25), 0 .12rem .15rem rgba(33, 19, 45, .22);
  animation: tower-block-land .38s ease-out both;
}
body.qz-kahoot .tower-block--1 { background: var(--tower-team-light); }
body.qz-kahoot .tower-block--2 { background: color-mix(in srgb, var(--tower-team) 68%, #f7d37f); }
body.qz-kahoot .tower-stack__base {
  position: absolute; left: 3%; right: 3%; bottom: .65rem; height: 1.55rem;
  display: grid; place-items: center; border: 3px solid #463522; border-radius: .35rem;
  color: #4b371f; background: linear-gradient(180deg, #f2c66f, #c99442);
  box-shadow: 0 .35rem 0 rgba(49, 38, 27, .28); line-height: 1;
}
body.qz-kahoot .tower-ground {
  position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; height: 1.35rem;
  background: linear-gradient(180deg, #75634d, #3d352d);
  box-shadow: 0 -.2rem .7rem rgba(37, 28, 19, .24);
}
body.qz-kahoot .tower-event-overlay {
  position: absolute; z-index: 20; left: 50%; top: 48%; transform: translate(-50%, -50%);
  width: min(84%, 48rem); padding: clamp(.85rem, 2vw, 1.3rem);
  border: 4px solid #fff; border-radius: 1rem; text-align: center;
  color: #fff; background: rgba(76, 32, 112, .94);
  box-shadow: 0 1rem 3rem rgba(21, 9, 35, .44); font-size: clamp(1rem, 2.3vw, 1.55rem); font-weight: 950;
  animation: tower-event-in .3s ease-out, tower-event-out .45s ease-in 3.7s forwards;
}
body.qz-kahoot .tower-event-overlay--wreck { background: rgba(130, 41, 35, .95); }
body.qz-kahoot .tower-event-overlay--boost { background: rgba(29, 106, 80, .95); }
@keyframes tower-event-in {
  from { opacity: 0; transform: translate(-50%, -50%) scale(.72) rotate(-2deg); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes tower-event-out { to { opacity: 0; transform: translate(-50%, -60%); } }
body.qz-kahoot .tower-hosthint {
  width: min(100%, 92rem); margin: .35rem auto 0; text-align: center;
  color: rgba(255, 255, 255, .9); font-size: .94rem;
}
@keyframes tower-block-land {
  from { opacity: 0; transform: translateY(-1.2rem) scale(.86); }
  to { opacity: 1; transform: none; }
}

/* ---------- Finale ---------- */
body.qz-kahoot .tower-final {
  width: min(100%, 82rem); margin: .7rem auto; padding: clamp(1.2rem, 3vw, 2.2rem);
  border: 1px solid rgba(255, 255, 255, .3); border-radius: 1.2rem;
  color: #24163f; text-align: center;
  background:
    radial-gradient(circle at 50% 0, rgba(255, 221, 111, .72), transparent 35%),
    linear-gradient(145deg, #fffaf0, #f0e6ff);
  box-shadow: 0 1.2rem 3rem rgba(24, 9, 54, .28);
}
body.qz-kahoot .tower-final h2 {
  margin: .45rem 0 1rem; color: #3b206d; font-size: clamp(2rem, 5vw, 4rem); line-height: 1.05;
}
body.qz-kahoot .tower-final__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .75rem;
}
body.qz-kahoot .tower-final__team {
  position: relative; padding: .9rem; border: 3px solid var(--tower-team-dark); border-radius: 1rem;
  background: rgba(255, 255, 255, .86); box-shadow: 0 .45rem 0 color-mix(in srgb, var(--tower-team-dark) 50%, transparent);
}
body.qz-kahoot .tower-final__team.is-winner::before {
  content: "🏆"; position: absolute; right: .55rem; top: .4rem; font-size: 1.45rem;
}
body.qz-kahoot .tower-final__team h3 { margin: 0 2rem .35rem; color: var(--tower-team-dark); }
body.qz-kahoot .tower-final__height { color: var(--tower-team-dark); font-size: 1.65rem; font-weight: 950; }
body.qz-kahoot .tower-final__floors { color: #685a75; font-size: .84rem; }
body.qz-kahoot .tower-final__mods { margin-top: .25rem; color: #594668; font-size: .78rem; font-weight: 750; }
body.qz-kahoot .tower-final__team ol { list-style: none; margin: .55rem 0 0; padding: 0; }
body.qz-kahoot .tower-final__team li {
  display: flex; justify-content: space-between; gap: .5rem;
  padding: .25rem .4rem; border-top: 1px solid rgba(58, 40, 80, .1); font-size: .86rem;
}
body.qz-kahoot .tower-final__team li span { font-weight: 900; }
body.qz-kahoot .tower-final__sum { margin: 1rem 0 0; font-weight: 800; }

/* ---------- Spielergerät ---------- */
body.qz-kahoot .tower-player__team {
  display: inline-block; margin: .2rem auto .55rem; padding: .35rem .75rem;
  border: 2px solid var(--tower-team-dark); border-radius: 999px;
  color: #fff; background: var(--tower-team); font-weight: 900;
}
body.qz-kahoot .tower-phud {
  display: flex; align-items: center; gap: .55rem; flex-wrap: wrap;
  margin: .2rem 0 .45rem; padding: .55rem .65rem;
  border: 2px solid var(--tower-team-dark); border-radius: .85rem;
  color: #fff; background: #3d2458; background: color-mix(in srgb, var(--tower-team-dark) 82%, #201332);
  font-size: .9rem; transition: transform .2s ease, filter .2s ease;
}
body.qz-kahoot .tower-phud.is-building { transform: translateY(-.18rem); filter: brightness(1.25); }
body.qz-kahoot .tower-phud__name { font-weight: 950; }
body.qz-kahoot .tower-phud__team, body.qz-kahoot .tower-phud__mine { font-weight: 800; }
body.qz-kahoot .tower-phud__timer {
  margin-left: auto; padding: .15rem .5rem; border-radius: 999px;
  color: #2f1c54; background: #ffe29a; font-variant-numeric: tabular-nums; font-weight: 900;
}
body.qz-kahoot .tower-player__status {
  min-height: 1.35rem; margin: 0 0 .15rem; text-align: center;
  color: #fff2bd; font-size: .86rem; font-weight: 800;
}
body.qz-kahoot .tower-event-btn {
  display: block; width: 100%; min-height: 3.35rem; margin: .15rem 0 .25rem;
  border: 3px solid #fff1b6; border-radius: 1rem; cursor: pointer;
  color: #321a55; background: linear-gradient(180deg, #ffe790, #ffb84f);
  box-shadow: 0 .35rem 0 #a85e14, 0 .7rem 1.3rem rgba(24, 9, 44, .28);
  font: inherit; font-size: 1.08rem; font-weight: 950;
  animation: tower-event-ready 1.15s ease-in-out infinite;
}
body.qz-kahoot .tower-event-btn:focus-visible { outline: .25rem solid #fff; outline-offset: .2rem; }
body.qz-kahoot .tower-event-btn:active { transform: translateY(.18rem); box-shadow: 0 .17rem 0 #a85e14; }
body.qz-kahoot .tower-event-btn:disabled { cursor: wait; filter: grayscale(.45); opacity: .75; animation: none; }
body.qz-kahoot .tower-event-btn[hidden] { display: none !important; }
body.qz-kahoot .tower-event-help {
  margin: 0 0 .45rem; text-align: center; color: rgba(255, 255, 255, .78); font-size: .76rem;
}
body.qz-kahoot .tower-event-help[hidden] { display: none; }
@keyframes tower-event-ready { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.025); } }
body.qz-kahoot .tower-player-final__stats { margin-top: .65rem; font-size: 1.05rem; line-height: 1.55; }

@media (max-width: 760px) {
  body.qz-tower main#app { padding-inline: .65rem; }
  body.qz-kahoot .tower-intro { grid-template-columns: 1fr; min-height: 0; padding: 1rem; }
  body.qz-kahoot .tower-hero { min-height: 12rem; max-height: 18rem; }
  body.qz-kahoot .tower-tutorial { grid-template-columns: 1fr; gap: .4rem; }
  body.qz-kahoot .tower-tutorial li { min-height: 0; }
  body.qz-kahoot .tower-arena { height: clamp(28rem, 68vh, 38rem); overflow-x: auto; }
  body.qz-kahoot .tower-hud__timer { margin-left: 0; }
  body.qz-kahoot .tower-phud__timer { margin-left: 0; }
}

@media (max-height: 650px) and (min-width: 700px) {
  body.qz-kahoot .tower-arena { height: min(56vh, 28rem); }
  body.qz-kahoot .tower-hud { font-size: .86rem; padding-block: .3rem; }
  body.qz-kahoot .tower-hosthint { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  body.qz-kahoot .tower-stack__mass,
  body.qz-kahoot .tower-lane,
  body.qz-kahoot .tower-phud { transition: none; }
  body.qz-kahoot .tower-block { animation: none; }
  body.qz-kahoot .tower-event-overlay, body.qz-kahoot .tower-event-btn { animation: none; }
}

@media (forced-colors: active) {
  body.qz-kahoot .tower-intro, body.qz-kahoot .tower-hud,
  body.qz-kahoot .tower-arena, body.qz-kahoot .tower-final,
  body.qz-kahoot .tower-teamchip, body.qz-kahoot .tower-lane__name,
  body.qz-kahoot .tower-block, body.qz-kahoot .tower-stack__base,
  body.qz-kahoot .tower-final__team, body.qz-kahoot .tower-phud,
  body.qz-kahoot .tower-player__team {
    border: 2px solid CanvasText;
  }
  body.qz-kahoot .tower-block { background: Canvas; }
  body.qz-kahoot .tower-lane.is-leading { outline: 4px solid Highlight; }
}

/* ============================================================
   Immersive Baustellenwelt
   ============================================================ */
body.qz-tower {
  overscroll-behavior: none;
  background: #7cc9f2;
}
body.qz-tower .lnav__bar,
body.qz-tower .lesson-header,
body.qz-tower .lesson-footer,
body.qz-tower .dr-shell { display: none !important; }
body.qz-tower.dr-shell-enabled { padding-left: 0 !important; }
body.qz-tower main#app {
  position: fixed; inset: 0; z-index: 40;
  display: flex; flex-direction: column;
  width: 100%; max-width: none; height: 100dvh;
  padding: 0; overflow: hidden;
  background: #6fbce7 url("/quiz/assets/tower/construction-world-generated.webp") center / cover no-repeat;
}
body.qz-tower main#app > .host-bar {
  position: absolute; z-index: 90; top: max(.5rem,env(safe-area-inset-top));
  left: max(.5rem,env(safe-area-inset-left)); right: max(.5rem,env(safe-area-inset-right));
  width: auto; min-height: 2.65rem; margin: 0; padding: .35rem .65rem;
  border: 1px solid rgba(255,255,255,.34); border-radius: 999px;
  color: #fff; background: rgba(42,24,66,.66); backdrop-filter: blur(12px);
  box-shadow: 0 .35rem 1.4rem rgba(45,25,15,.24);
}
body.qz-tower main#app > .host-bar + div {
  flex: 1 1 auto; min-height: 0; height: 100%; overflow: auto;
}

body.qz-kahoot .tower-intro {
  width: 100%; min-height: 100%; height: 100%; margin: 0;
  padding: clamp(5rem,10vh,7rem) clamp(1.2rem,4vw,4rem) clamp(4.5rem,9vh,7rem);
  border: 0; border-radius: 0;
  background:
    linear-gradient(90deg, rgba(255,248,224,.96) 0%, rgba(255,242,206,.9) 44%, rgba(255,242,206,.22) 67%, transparent 100%),
    url("/quiz/assets/tower/construction-world-generated.webp") center / cover no-repeat;
  box-shadow: none;
}
body.qz-kahoot .tower-intro__copy {
  max-width: 52rem; padding: clamp(.9rem,2vw,1.5rem);
  border-radius: 1rem; background: rgba(255,251,240,.72); backdrop-filter: blur(8px);
}
body.qz-kahoot .tower-intro .tower-hero {
  align-self: end; min-height: min(58vh,34rem);
  background: rgba(255,255,255,.2); backdrop-filter: blur(2px);
}
body.qz-tower main#app > div > .qz-actions {
  position: absolute; z-index: 96; right: max(1rem,env(safe-area-inset-right));
  bottom: max(1rem,env(safe-area-inset-bottom)); margin: 0;
}

body.qz-kahoot .tower-arena {
  width: 100%; max-width: none; height: 100%; min-height: 100%;
  margin: 0; border: 0; border-radius: 0;
  background-color: #78c7ef;
  background-image:
    linear-gradient(180deg, rgba(37,80,143,.03), rgba(255,255,255,.03) 56%, rgba(56,35,28,.12) 100%),
    url("/quiz/assets/tower/construction-world-generated.webp");
  background-size: cover; background-position: center;
  box-shadow: inset 0 -7rem 9rem rgba(61,31,17,.16);
  animation: tower-world-drift 24s ease-in-out infinite alternate;
}
@keyframes tower-world-drift { to { background-position: 52% center; } }
body.qz-kahoot .tower-arena::before { display: none; }
body.qz-kahoot .tower-atmosphere { position: absolute; inset: -10%; pointer-events: none; }
body.qz-kahoot .tower-atmosphere--far {
  z-index: 1; opacity: .28;
  background: radial-gradient(ellipse at 18% 23%,rgba(255,255,255,.72),transparent 16%), radial-gradient(ellipse at 79% 14%,rgba(255,249,222,.68),transparent 19%);
  animation: tower-cloud-drift 31s linear infinite alternate;
}
body.qz-kahoot .tower-atmosphere--near {
  z-index: 5; opacity: .28;
  background: linear-gradient(105deg,transparent 0 18%,rgba(255,220,120,.25) 30%,transparent 43% 100%);
  mix-blend-mode: screen; animation: tower-sun-sweep 12s ease-in-out infinite alternate;
}
@keyframes tower-cloud-drift { to { transform: translate3d(-7%,2%,0); } }
@keyframes tower-sun-sweep { to { transform: translateX(8%); opacity: .42; } }
body.qz-kahoot .tower-hud {
  position: absolute; z-index: 82; left: max(1rem,env(safe-area-inset-left));
  right: max(1rem,env(safe-area-inset-right)); bottom: max(1rem,env(safe-area-inset-bottom));
  width: auto; margin: 0; background: rgba(52,29,78,.72); backdrop-filter: blur(12px);
}
body.qz-kahoot .tower-lanes {
  z-index: 6; padding: clamp(4.5rem,9vh,6rem) clamp(.5rem,2vw,1.5rem) clamp(4.8rem,10vh,7rem);
}
body.qz-kahoot .tower-lane {
  position:relative;
  background: linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,.08) 36%,transparent 73%);
}
body.qz-kahoot .tower-crane-rig {
  --tower-drop:15rem;
  position:absolute; z-index:8; top:3.3rem; right:8%; width:3.2rem; height:calc(100% - 6.3rem);
  pointer-events:none;
}
body.qz-kahoot .tower-crane-rig__cable {
  position:absolute; left:50%; top:0; width:2px; height:var(--tower-drop);
  transform:translateX(-50%); transform-origin:50% 0;
  background:linear-gradient(#413b35,#81776c); box-shadow:0 0 2px rgba(255,255,255,.55);
  transition:height .65s cubic-bezier(.2,.8,.2,1);
}
body.qz-kahoot .tower-crane-rig__trolley {
  position:absolute; left:50%; top:0; width:3.2rem; height:3.4rem;
  transform:translate(-50%,var(--tower-drop));
  transition:transform .65s cubic-bezier(.2,.8,.2,1);
}
body.qz-kahoot .tower-crane-rig__hook {
  position:absolute; left:50%; top:-.1rem; width:.8rem; height:1rem;
  transform:translateX(-50%); border:.18rem solid #3d3936; border-top:0; border-radius:0 0 .65rem .65rem;
}
body.qz-kahoot .tower-crane-rig__payload {
  position:absolute; left:50%; top:.85rem; width:2.7rem; height:1.35rem;
  transform:translateX(-50%); border:2px solid var(--tower-team-dark); border-radius:.24rem;
  background:linear-gradient(180deg,var(--tower-team-light),var(--tower-team));
  box-shadow:inset 0 .16rem rgba(255,255,255,.38),0 .28rem .35rem rgba(41,25,20,.3);
}
body.qz-kahoot .tower-crane-rig.is-delivering .tower-crane-rig__payload {
  animation:tower-payload-set .72s ease-out;
}
@keyframes tower-payload-set {
  0%,55% { transform:translateX(-50%) rotate(-4deg); }
  72% { transform:translateX(-50%) translateY(.3rem) scale(1.08); filter:brightness(1.25); }
  100% { transform:translateX(-50%); }
}
body.qz-kahoot .tower-ground { height: 2.2rem; background: linear-gradient(180deg,rgba(128,84,38,.25),rgba(65,41,24,.88)); }
body.qz-kahoot .tower-hosthint { display: none; }
body.qz-kahoot .tower-event-overlay {
  top: 17%; width: min(72%,36rem); padding: .7rem 1rem; border-width: 2px;
  border-radius: 999px; font-size: clamp(.9rem,1.6vw,1.15rem);
}

/* Spielergeräte bleiben klar lesbar, fühlen sich aber wie Teil der Baustelle an. */
body.qz-tower main#app > .host-bar + div:has(.tower-pquiz) {
  padding: max(4.4rem,env(safe-area-inset-top)) max(.8rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(.8rem,env(safe-area-inset-left));
  background: linear-gradient(rgba(49,28,73,.7),rgba(31,18,53,.86)), url("/quiz/assets/tower/construction-world-generated.webp") center / cover no-repeat;
}
body.qz-kahoot .tower-pquiz { width: min(100%,58rem); margin-inline: auto; }
body.qz-kahoot .tower-pquiz .qz-q,
body.qz-kahoot .tower-pquiz .qz-question { box-shadow: 0 .8rem 2rem rgba(28,15,42,.25); }
body.qz-kahoot .tower-pquiz button,
body.qz-kahoot .tower-event-btn { touch-action: manipulation; min-height: 3.5rem; }

@media (max-width:760px) {
  body.qz-tower main#app { padding: 0; }
  body.qz-kahoot .tower-intro { grid-template-columns: 1fr; overflow:auto; }
  body.qz-kahoot .tower-intro .tower-hero { display:none; }
  body.qz-kahoot .tower-arena { overflow-x:auto; border-radius:0; }
  body.qz-kahoot .tower-hud { font-size:.78rem; padding:.35rem .5rem; }
}

@media (prefers-reduced-motion:reduce) {
  body.qz-kahoot .tower-arena, body.qz-kahoot .tower-atmosphere,
  body.qz-kahoot .tower-crane-rig__payload { animation:none !important; }
  body.qz-kahoot .tower-crane-rig__cable,
  body.qz-kahoot .tower-crane-rig__trolley { transition:none; }
}
