/* PULT · RENNSPORT (data-welt="rennen") — aus online-pult.css überführt (2026-11-01); die gemeinsamen Regeln bleiben dort.
   Geladen direkt NACH online-pult.css (spiel.html, host.html, runde-trailer.html, handy-*.html). */
/* ---- RENNEN · das Cockpit ------------------------------------------------ */
.qo-pult[data-welt="rennen"] {
  --pult-grund: linear-gradient(180deg, rgba(255, 255, 255, .07), transparent 26%), repeating-linear-gradient(45deg, #0b0b0f 0 .45cqmin, #17171c .45cqmin .9cqmin), repeating-linear-gradient(-45deg, rgba(255, 255, 255, .025) 0 .45cqmin, transparent .45cqmin .9cqmin), #0b0b0f;
  --kante: repeating-linear-gradient(90deg, var(--acc) 0 3.2cqmin, #f1f1f1 3.2cqmin 6.4cqmin); --kante-h: .9cqmin;
  --sitz: linear-gradient(180deg, #24242b, #0a0a0d); --sitz-naht: var(--acc);
  --disp-grund: radial-gradient(circle, rgba(255, 255, 255, .055) 0 .11cqmin, transparent .15cqmin) 0 0 / .66cqmin .66cqmin, #040406;
  --disp-rahmen: inset 0 0 0 .35cqmin #2b2b32, inset 0 0 0 .6cqmin #000, inset 0 1.2cqmin 2.6cqmin rgba(0, 0, 0, .9), 0 .2cqmin 0 rgba(255, 255, 255, .13);
  --disp-schrift: var(--f-mono); --disp-fall: uppercase; --disp-sperr: .03em;
  --disp-leer: color-mix(in srgb, var(--acc2) 34%, #2a2a2a); --disp-an: var(--acc2); --disp-fest: var(--t0); --disp-neben: color-mix(in srgb, var(--acc2) 55%, var(--t2));
  --disp-leucht: 0 0 1.6cqmin color-mix(in srgb, var(--acc2) 75%, transparent); --disp-leucht-fest: 0 0 1.4cqmin color-mix(in srgb, var(--t0) 45%, transparent);
  --disp-trenn: color-mix(in srgb, var(--acc2) 30%, transparent);
  --taste-rahmen: linear-gradient(180deg, #4a4a54, #1d1d23 55%, #2c2c34); --taste-rund: 2.2cqmin;
}
/* vier Schrauben am Tastenrahmen */
.qo-pult[data-welt="rennen"] .qo-los { background-image: radial-gradient(circle at .9cqmin .9cqmin, #0c0c0f 0 .28cqmin, transparent .32cqmin), radial-gradient(circle at calc(100% - .9cqmin) .9cqmin, #0c0c0f 0 .28cqmin, transparent .32cqmin), radial-gradient(circle at .9cqmin calc(100% - .9cqmin), #0c0c0f 0 .28cqmin, transparent .32cqmin), radial-gradient(circle at calc(100% - .9cqmin) calc(100% - .9cqmin), #0c0c0f 0 .28cqmin, transparent .32cqmin), linear-gradient(180deg, #4a4a54, #1d1d23 55%, #2c2c34); padding: 1.5cqmin; }

.qo-pult[data-welt="rennen"] .qo-rang { padding: 1.5cqmin; }
.qo-pult[data-welt="rennen"] .qo-rang .qo-los.qo-rang-alt { inset: 1.5cqmin; background-image: none; }
.qo-pult[data-welt="rennen"] { --disp-mittel: color-mix(in srgb, var(--acc2) 35%, #f0f0f0); }

/* =====================================================================
   DAS COCKPIT AUF DEM NIVEAU VON WELTREISE (Tobi, 02.11.2026: „die auf das Niveau von Weltreise angleichen, alle Pulte.“)
   Die Geschichte: Du sitzt im Monoposto in der Startaufstellung. Hinter dem Buddy der Bügel des Halo
   (Titan) über der Kopfstütze aus Carbon, vor ihm der Rand des Cockpits. Die ANZEIGE ist das Display im
   Lenkrad: oben die Schaltblitze (grün · gelb · rot · blau), die mit der Wahl hochdrehen und beim
   Abschicken ganz aufleuchten; rechts leise die Streckenkarte, auf der ein Wagen seine Runden dreht. Der
   Buddy spricht über den BOXENFUNK (dunkle Karte, vorn der Pegel). Über der TASTE hängt die Startampel:
   dunkel, solange nichts gewählt ist; mit der Wahl leuchten die fünf roten Lichter; abgeschickt gehen sie
   aus („Lights out“) und die Taste ist durch.
   Carbon, Titan und Glas sind Material; Licht, Schrift und Zustände kommen aus den Rollen des Sets.
   Bewegung nur transform und opacity, ruhig; prefers-reduced-motion hält alles an.
   ===================================================================== */
.qo-pult[data-welt="rennen"] {
  /* die Streckenkarte: ein Oval mit Start und Ziel (weiß, leise — sie trägt keine Farbe des Sets). Maße in cqmin, damit der Wagen sie trifft. */
  --qo-rs-strecke: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 64'%3E%3Cellipse cx='70' cy='32' rx='63' ry='28' fill='none' stroke='%23fff' stroke-width='6' opacity='.12'/%3E%3Cellipse cx='70' cy='32' rx='63' ry='28' fill='none' stroke='%23fff' stroke-width='1' stroke-dasharray='3 4' opacity='.3'/%3E%3Cpath d='M70 0v9' stroke='%23fff' stroke-width='2.6' opacity='.55'/%3E%3C/svg%3E");
  --qo-rs-led: radial-gradient(circle, rgba(255, 255, 255, .14) 0 .34cqmin, rgba(255, 255, 255, .05) .42cqmin, transparent .5cqmin) 0 50% / 1.9cqmin 100% repeat-x;
  --disp-grund: var(--qo-rs-strecke) right var(--qo-motiv-r) center / 15cqmin 6.86cqmin no-repeat,
    radial-gradient(circle, rgba(255, 255, 255, .055) 0 .11cqmin, transparent .15cqmin) 0 0 / .66cqmin .66cqmin, #040406;
}
/* Der Halo hinter dem Buddy: ein Bügel aus Titan um die Kopfstütze aus Carbon */
.qo-pult[data-welt="rennen"] .qo-buddy::before {
  left: 3%; right: 3%; top: 8%; border-radius: 50% 50% 14% 14% / 64% 64% 10% 10%;
  background: radial-gradient(70% 50% at 50% 100%, rgba(255, 255, 255, .06), transparent 70%),
    repeating-linear-gradient(45deg, #111116 0 .4cqmin, #1c1c22 .4cqmin .8cqmin);
  box-shadow: inset 0 0 0 .6cqmin #b9bfc7, inset 0 .25cqmin 0 .8cqmin #6c727b, inset 0 0 0 1.05cqmin #08080a, inset 0 1.4cqmin 2cqmin rgba(255, 255, 255, .08), 0 .6cqmin 1.6cqmin rgba(0, 0, 0, .6);
}
/* der Rand des Cockpits: Carbon mit der Linie in der Farbe des Sets */
.qo-pult[data-welt="rennen"] .qo-buddy::after { background: linear-gradient(180deg, #2a2a31, #0b0b0e); box-shadow: inset 0 .3cqmin 0 var(--acc), 0 -.6cqmin 1.2cqmin rgba(0, 0, 0, .5); }

/* DER BOXENFUNK: dunkle Karte, oben die Linie in der Farbe des Sets, vorn der Pegel */
.qo-pult[data-welt="rennen"] .qo-sagt { background: #111116; padding-left: 4.6cqmin; border-radius: 1cqmin;
  box-shadow: inset 0 .35cqmin 0 var(--acc), inset 0 0 0 .2cqmin #2e2e36, 0 .8cqmin 2cqmin rgba(0, 0, 0, .6); }
.qo-pult[data-welt="rennen"] .qo-sagt::before { background: #111116; }
.qo-pult[data-welt="rennen"] .qo-sagt-text { color: #f4f4f4; }
.qo-pult[data-welt="rennen"] .qo-sagt::after {
  content: ""; position: absolute; left: 1.4cqmin; right: auto; top: 50%; width: 2.3cqmin; height: 2.6cqmin; margin-top: -1.3cqmin; background: var(--acc2);
  -webkit-mask: var(--qo-rs-pegel) center / contain no-repeat; mask: var(--qo-rs-pegel) center / contain no-repeat;
  --qo-rs-pegel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 23 26'%3E%3Crect x='0' y='10' width='3' height='6' rx='1.5'/%3E%3Crect x='5' y='5' width='3' height='16' rx='1.5'/%3E%3Crect x='10' y='0' width='3' height='26' rx='1.5'/%3E%3Crect x='15' y='7' width='3' height='12' rx='1.5'/%3E%3Crect x='20' y='10' width='3' height='6' rx='1.5'/%3E%3C/svg%3E");
}
/* spricht er laut (Urteil, Platz), schlägt der Pegel einmal aus */
.qo-pult[data-welt="rennen"] .qo-sagt.pop::after { animation: qo-rs-pegel 700ms ease-out; }
@keyframes qo-rs-pegel { 0% { transform: scaleY(.4); } 30% { transform: scaleY(1.2); } 55% { transform: scaleY(.7); } 100% { transform: none; } }

/* DAS LENKRAD-DISPLAY. Oben links die Schaltblitze: zehn Lichter, aus (::before der Anzeige); darüber, was leuchtet —
   .qo-d-glas::before die fünf grünen (mit der Wahl: Er dreht hoch), ::after die fünf roten (abgeschickt: alle an, sie blitzen zweimal). */
.qo-pult[data-welt="rennen"] .qo-display::before {
  content: ""; position: absolute; z-index: 0; left: 2cqmin; top: .95cqmin; width: 19cqmin; height: 1cqmin; pointer-events: none; background: var(--qo-rs-led);
}
.qo-pult[data-welt="rennen"] .qo-d-glas::before, .qo-pult[data-welt="rennen"] .qo-d-glas::after {
  content: ""; position: absolute; top: .95cqmin; width: 9.5cqmin; height: 1cqmin; pointer-events: none; opacity: 0; transition: opacity var(--d-kurz) var(--k-ein);
}
.qo-pult[data-welt="rennen"] .qo-d-glas::before { left: 2cqmin;
  background: radial-gradient(circle, #eaffea 0 .14cqmin, #2fe36a .3cqmin, color-mix(in srgb, #2fe36a 38%, transparent) .55cqmin, transparent .9cqmin) 0 50% / 1.9cqmin 100% repeat-x; }
.qo-pult[data-welt="rennen"] .qo-d-glas::after { left: 11.5cqmin;
  background: radial-gradient(circle, #fff 0 .14cqmin, var(--acc) .3cqmin, color-mix(in srgb, var(--acc) 38%, transparent) .55cqmin, transparent .9cqmin) 0 50% / 1.9cqmin 100% repeat-x; }
.qo-pult[data-welt="rennen"] .qo-display:has(> .qo-anzeige[data-zustand="gewaehlt"]) .qo-d-glas::before { opacity: 1; animation: qo-rs-dreh 1.5s ease-in-out infinite; }
.qo-pult[data-welt="rennen"] .qo-display:has(> .qo-anzeige[data-zustand="gesendet"]) .qo-d-glas::before,
.qo-pult[data-welt="rennen"] .qo-display:has(> .qo-anzeige[data-zustand="gesendet"]) .qo-d-glas::after { opacity: 1; }
.qo-pult[data-welt="rennen"] .qo-display:has(> .qo-anzeige[data-zustand="gesendet"]) .qo-d-glas::after { animation: qo-rs-blitz 700ms steps(2, end) 2; }
@keyframes qo-rs-dreh { 0%, 100% { opacity: .72; } 50% { opacity: 1; } }
@keyframes qo-rs-blitz { from { opacity: .25; } to { opacity: 1; } }

/* Der Wagen auf der Streckenkarte: ein Punkt in der Leuchtfarbe, der das Oval abfährt (gedreht, dann flach gedrückt — nur transform).
   Mitte des Ovals = Mitte der Karte (right 17cqmin, 15 × 6,86 cqmin); Halbachsen 6,75 und 3,0 cqmin. */
.qo-pult[data-welt="rennen"] .qo-display::after {
  content: ""; position: absolute; z-index: 0; right: calc(var(--qo-motiv-r) + 7.5cqmin - .45cqmin); left: auto; top: 50%; width: .9cqmin; height: .9cqmin; margin-top: -.45cqmin; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, #fff 0 25%, var(--acc2) 45%, transparent 72%);
  opacity: .8; transform: scaleY(.444) rotate(0deg) translateX(6.75cqmin);
  animation: qo-rs-runde 11s linear infinite;
}
@keyframes qo-rs-runde { from { transform: scaleY(.444) rotate(0deg) translateX(6.75cqmin); } to { transform: scaleY(.444) rotate(-360deg) translateX(6.75cqmin); } }

/* DIE STARTAMPEL über der Taste: fünf Lichter an einem Träger. Aus · mit der Wahl rot · abgeschickt aus. */
.qo-pult[data-welt="rennen"] .qo-los[data-zustand]::before {
  content: ""; display: block; position: absolute; z-index: 3; left: 50%; right: auto; top: -1.25cqmin; bottom: auto; width: 13cqmin; height: 2.4cqmin; margin-left: -6.5cqmin; border-radius: .7cqmin; pointer-events: none;
  background: radial-gradient(circle, #3a1214 0 .62cqmin, #1a0809 .7cqmin, transparent .78cqmin) .3cqmin 50% / 2.48cqmin 100% repeat-x, linear-gradient(180deg, #2a2a30, #0a0a0c);
  box-shadow: inset 0 0 0 .16cqmin #3d3d45, 0 .4cqmin .9cqmin rgba(0, 0, 0, .6);
}
.qo-pult[data-welt="rennen"] .qo-los[data-zustand="gewaehlt"]::before {
  background: radial-gradient(circle, #ffd9d4 0 .2cqmin, #ff2a1f .42cqmin, #a10d08 .66cqmin, transparent .78cqmin) .3cqmin 50% / 2.48cqmin 100% repeat-x, linear-gradient(180deg, #2a2a30, #0a0a0c);
  box-shadow: inset 0 0 0 .16cqmin #3d3d45, 0 .4cqmin .9cqmin rgba(0, 0, 0, .6), 0 0 2.4cqmin rgba(255, 42, 31, .45);
}
/* Die Kopie der Taste auf der Tafel (Übergang zur Auflösung) trägt keine eigene Ampel */
.qo-pult[data-welt="rennen"] .qo-rang .qo-los.qo-rang-alt::before { display: none; }
@media (prefers-reduced-motion: reduce) {
  .qo-pult[data-welt="rennen"] .qo-display::after, .qo-pult[data-welt="rennen"] .qo-d-glas::before, .qo-pult[data-welt="rennen"] .qo-d-glas::after, .qo-pult[data-welt="rennen"] .qo-sagt.pop::after { animation: none; }
}
/* Wo das lebende Motiv der Anzeige steht: sein rechter Rand bleibt vor „eingeloggt“ (auf M, L, XL beginnt das 17,3 cqmin vor dem
   rechten Rand der Anzeige, auf S — größere Mindestschrift — 21,4 cqmin). */
.qo-pult[data-welt="rennen"] { --qo-motiv-r: 19.5cqmin; --qo-motiv-frei: calc(var(--qo-motiv-r) + 15cqmin); }   /* frei: die Schrift endet vor der Karte (online-pult.css) */
@container (max-width: 900px) { .qo-pult[data-welt="rennen"] { --qo-motiv-r: 23.6cqmin; } }
/* In der Lobby (.qla-pult) steht kein „eingeloggt“ in der Anzeige — das Motiv rückt an ihren rechten Rand, weg vom Satz. */
.qo-pult.qla-pult[data-welt="rennen"] { --qo-motiv-r: 2.6cqmin; }
/* Am Abendende füllen Titel und Geschichte die ganze Anzeige — das Motiv tritt ab (aus dem Bild geschoben, die Anzeige schneidet es ab). */
.qo-pult.qo-pult-e[data-welt="rennen"] { --qo-motiv-r: -40cqmin; }
/* Auf S reicht der Satz der Lobby bis an den Rand der Anzeige — dort tritt das Motiv ab wie am Abendende. */
@container (max-width: 900px) { .qo-pult.qla-pult[data-welt="rennen"] { --qo-motiv-r: -40cqmin; } }
/* Am Handy (handy-rahmen, .k1-pult) ist die Anzeige schmal und trägt den Namen — das Motiv stünde hinter ihm; dort tritt es ab. */
.qo-pult.k1-pult[data-welt="rennen"] { --qo-motiv-r: -40cqmin; }
.qo-pult.k1-pult[data-welt="rennen"] .qo-display::before { display: none; }
/* In der Lobby (.qla-pult) treten die Schaltblitze ebenso ab (Tobi, 02.11.2026: „Und diese Artefakte treten immer noch auf im Online-Pult,
   in der Lobby, immer periodisch, bei Startklar sehe ich das.“ — design/handy/pruefung-2026-11-02/artefakt-lobby/). Dort gibt es keine Wahl,
   die „hochdreht“, die Anzeige steht aber immer auf „gewählt“: Die grünen Lichter pochten alle 1,5 s (qo-rs-dreh) — und Wort und Satz der
   Lobby („Startklar“, „Gleich geht’s los“ mit zweizeiligem Satz) stehen höher als die Wahl der Frage und reichten bis in die Lichterreihe:
   Sie pochten auf den Buchstaben. Die Streckenkarte mit dem Wagen bleibt. */
.qo-pult.qla-pult[data-welt="rennen"] .qo-display::before, .qo-pult.qla-pult[data-welt="rennen"] .qo-d-glas::before, .qo-pult.qla-pult[data-welt="rennen"] .qo-d-glas::after { display: none; }
/* DIE SCHRIFT BEGINNT UNTER DEN SCHALTBLITZEN (Prüfung über den ganzen Abend, 02.11.2026 — artefakt-lobby/BERICHT.md): In Frage und
   Auflösung saßen die Lichter auf den Köpfen der Wahl („WAHR“) und des Urteils („NICHT GEANTWORTET“), auf S am deutlichsten — und beim
   Abschicken blitzten die roten zweimal darauf (qo-rs-blitz). Die Anzeige hält oben frei, was die Lichterreihe braucht (0,95 + 1 cqmin);
   der Inhalt steht mittig darunter. Die Abschrift beim Wechsel erbt den Rand (online-pult.css, .qo-d-alt: padding: inherit). */
.qo-pult:not(.qla-pult):not(.k1-pult)[data-welt="rennen"] .qo-display { padding-top: 2.1cqmin; }
