/* Kraterkrieg - Oberflaeche. Dunkel, gross, fingerfreundlich. */
:root {
  --hg: #0e111c;
  --kasten: rgba(20, 24, 40, .86);
  --kasten-fest: #171b2c;
  --rand: rgba(255, 255, 255, .1);
  --text: #f3f5fb;
  --leise: #a6adc4;
  --akzent: #ff7a2e;
  --akzent2: #ffb02e;
  --gruen: #34c759;
  --rot: #ff4d4d;
  --blau: #3d8bff;
  --r: 16px;
  --schatten: 0 10px 30px rgba(0, 0, 0, .45);
  color-scheme: dark;
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; height: 100%; overflow: hidden; background: var(--hg); color: var(--text);
  font: 600 16px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; overscroll-behavior: none; }
body { touch-action: none; user-select: none; -webkit-user-select: none; }
.hidden { display: none !important; }
button { font: inherit; color: inherit; }
canvas#welt { position: fixed; inset: 0; width: 100vw; height: 100vh; display: block; touch-action: none; }

/* ---------- Karten & Knoepfe ---------- */
.schirm { position: fixed; inset: 0; overflow-y: auto; touch-action: pan-y; z-index: 5;
  background: radial-gradient(1200px 600px at 20% -10%, #2a1d4a 0%, transparent 60%),
              radial-gradient(900px 500px at 110% 110%, #3a1c12 0%, transparent 55%), var(--hg);
  display: flex; align-items: flex-start; justify-content: center; padding: max(16px, env(safe-area-inset-top)) 16px 24px; }
.karte { background: var(--kasten); border: 1px solid var(--rand); border-radius: 22px; box-shadow: var(--schatten);
  padding: 26px 22px; width: 100%; max-width: 440px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.karte.breit { max-width: 640px; }
.mitte { margin: auto; text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: stretch; }
.mitte h2 { margin: 0; font-size: 1.45rem; }
.mitte p { margin: 0; }
.logo { font-weight: 900; font-size: 2.1rem; letter-spacing: -.02em;
  background: linear-gradient(180deg, #ffe08a, #ff7a2e 70%, #e0441b); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 3px 0 rgba(0, 0, 0, .35)); }
.logo span { -webkit-text-fill-color: initial; color: initial; }
.klein-logo { font-size: 1.5rem; }
.leise { color: var(--leise); font-weight: 500; }
.klein { font-size: .85rem; }
.gross-icon { font-size: 3.4rem; line-height: 1; }
.mitte-text { text-align: center; }

.knopf { appearance: none; border: 1px solid var(--rand); background: #252b44; border-radius: 14px; padding: 12px 16px;
  min-height: 48px; cursor: pointer; font-weight: 750; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: transform .08s, background .15s, box-shadow .15s; box-shadow: 0 2px 0 rgba(0, 0, 0, .35); color: var(--text); }
.knopf:hover { background: #2f3656; }
.knopf:active { transform: translateY(2px); box-shadow: none; }
.knopf:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.knopf:focus-visible, .tk:focus-visible, .wbtn:focus-visible { outline: 3px solid var(--akzent2); outline-offset: 2px; }
.knopf.gross { min-height: 56px; font-size: 1.12rem; border-radius: 16px; }
.knopf.primaer { background: linear-gradient(180deg, #ff9148, #ff6a1f); border-color: #ff9a5c; color: #fff; text-shadow: 0 1px 0 rgba(0, 0, 0, .25);
  box-shadow: 0 3px 0 #b8430f, 0 8px 22px rgba(255, 106, 31, .35); }
.knopf.primaer:hover { background: linear-gradient(180deg, #ffa060, #ff7a33); }
.knopf.primaer:active { box-shadow: 0 1px 0 #b8430f; }
.knopf.gruen { background: linear-gradient(180deg, #3ddc68, #25a64a); border-color: #5fe587; color: #fff; box-shadow: 0 3px 0 #17722f; }
.knopf.rot { background: #3a1f28; border-color: #6b2a36; color: #ff9aa5; }
.knopf.rot:hover { background: #4a2430; }
.knopf.leise-knopf { background: transparent; box-shadow: none; color: var(--leise); border-color: transparent; font-weight: 600; }
.eingabe { width: 100%; font: 700 1.2rem system-ui, sans-serif; padding: 14px 16px; border-radius: 14px; border: 2px solid #343b5c;
  background: #0f1322; color: var(--text); text-align: center; outline: none; user-select: text; -webkit-user-select: text; }
.eingabe:focus { border-color: var(--akzent); }
.zeile { display: flex; gap: 10px; flex-wrap: wrap; }
.knoepfe > * { flex: 1 1 auto; }
.mitte-knoepfe { justify-content: center; }
.x { appearance: none; border: 0; background: rgba(255, 255, 255, .08); width: 36px; height: 36px; border-radius: 50%; cursor: pointer; }

/* ---------- Lobby ---------- */
.lobby { width: 100%; max-width: 720px; display: flex; flex-direction: column; gap: 16px; padding-bottom: 30px; }
.lobby-kopf { display: flex; align-items: center; gap: 12px; }
.lobby-kopf .logo { flex: 1; }
.zurueck { width: 44px; height: 44px; border-radius: 50%; background: #252b44; display: grid; place-items: center; color: var(--text);
  text-decoration: none; font-size: 1.8rem; line-height: 1; border: 1px solid var(--rand); }
.netz-punkt { width: 12px; height: 12px; border-radius: 50%; background: #666; box-shadow: 0 0 0 4px rgba(255, 255, 255, .05); }
.netz-punkt.an { background: var(--gruen); box-shadow: 0 0 10px var(--gruen); }
.netz-punkt.aus { background: var(--rot); }
.block { background: var(--kasten); border: 1px solid var(--rand); border-radius: 20px; padding: 18px; box-shadow: var(--schatten); }
.block h3 { margin: 0 0 12px; font-size: 1.05rem; letter-spacing: .02em; text-transform: uppercase; color: var(--leise); display: flex; gap: 8px; align-items: center; }
.zahl { background: #252b44; border-radius: 99px; padding: 1px 9px; font-size: .85rem; color: var(--text); }
.spieler { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.spieler li { display: flex; align-items: center; gap: 12px; background: #1d2238; border-radius: 14px; padding: 10px 12px; min-height: 58px;
  border: 1px solid transparent; }
.spieler li.du { border-color: rgba(255, 255, 255, .18); }
.farbe { width: 34px; height: 34px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; font-size: 1.1rem;
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .25), 0 0 0 3px rgba(255, 255, 255, .08); }
.spieler .name { flex: 1; min-width: 0; font-weight: 800; font-size: 1.05rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spieler .name small { display: block; font-weight: 600; font-size: .8rem; color: var(--leise); }
.spieler .name input { width: 100%; font: 800 1.05rem system-ui; background: transparent; border: 0; border-bottom: 2px dashed #3b4264; color: var(--text);
  padding: 2px 0; outline: none; user-select: text; -webkit-user-select: text; }
.spieler .weg { appearance: none; border: 0; background: rgba(255, 255, 255, .06); width: 40px; height: 40px; border-radius: 12px; cursor: pointer; color: var(--leise); }
.spieler .weg:hover { background: rgba(255, 77, 77, .18); color: #ff9aa5; }
.status { font-size: .75rem; padding: 2px 8px; border-radius: 99px; background: #2b3150; color: var(--leise); }
.status.an { background: rgba(52, 199, 89, .18); color: #7ff0a0; }
.status.aus { background: rgba(255, 77, 77, .15); color: #ff9aa5; }
.ki-wahl { position: relative; flex: 1 1 auto; display: flex; }
.ki-wahl > .knopf { flex: 1; }
.ki-menue { position: absolute; z-index: 3; top: calc(100% + 6px); left: 0; right: 0; background: var(--kasten-fest); border: 1px solid var(--rand);
  border-radius: 14px; padding: 6px; display: flex; flex-direction: column; box-shadow: var(--schatten); }
.ki-menue button { appearance: none; border: 0; background: transparent; padding: 12px; text-align: left; border-radius: 10px; cursor: pointer; font-weight: 700; }
.ki-menue button:hover { background: #252b44; }
.anfragen:empty { display: none; }
.anfragen { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.anfrage { display: flex; align-items: center; gap: 10px; background: rgba(255, 176, 46, .12); border: 1px solid rgba(255, 176, 46, .4);
  border-radius: 14px; padding: 10px 12px; animation: puls 1.4s infinite; }
.anfrage span { flex: 1; font-weight: 800; }
@keyframes puls { 50% { box-shadow: 0 0 0 4px rgba(255, 176, 46, .15); } }
.einladung { margin-top: 12px; background: #11162a; border: 1px dashed #4a5280; border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.einladung-kopf { display: flex; justify-content: space-between; align-items: center; }
.link-feld { font: 600 .82rem ui-monospace, Consolas, monospace; word-break: break-all; background: #0b0e1a; border-radius: 10px; padding: 10px;
  color: #cfd6ff; user-select: all; -webkit-user-select: all; }
.offene-links { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.offene-links li { display: flex; align-items: center; gap: 10px; font-size: .9rem; color: var(--leise); }
.offene-links li span { flex: 1; }
.offene-links button { appearance: none; border: 1px solid var(--rand); background: transparent; border-radius: 10px; padding: 6px 10px; cursor: pointer; color: var(--leise); }
.einst { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, .06); flex-wrap: wrap; }
.einst:first-of-type { border-top: 0; }
.einst label { font-weight: 700; }
.stepper { display: flex; align-items: center; gap: 4px; background: #1d2238; border-radius: 14px; padding: 4px; }
.stepper button { appearance: none; border: 0; width: 44px; height: 44px; border-radius: 10px; background: #2b3150; font-size: 1.4rem; cursor: pointer; }
.stepper button:active { transform: scale(.94); }
.stepper output { min-width: 40px; text-align: center; font-weight: 900; font-size: 1.2rem; }
.wahl { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.wahl button { appearance: none; border: 1px solid var(--rand); background: #1d2238; border-radius: 12px; padding: 9px 12px; min-height: 42px; cursor: pointer; font-weight: 700; }
.wahl button.an { background: rgba(255, 122, 46, .2); border-color: var(--akzent); color: #ffd0b0; }
.wahl.gesperrt button { pointer-events: none; }
.lobby-fuss { display: flex; flex-direction: column; gap: 10px; }

/* ---------- HUD ---------- */
#hud { position: fixed; top: 0; left: 0; right: 0; z-index: 3; pointer-events: none; padding: max(8px, env(safe-area-inset-top)) 10px 0; }
.hud-oben { display: flex; align-items: center; gap: 10px; }
.hud-oben > * { pointer-events: auto; }
.rund { appearance: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--rand); background: var(--kasten); cursor: pointer; font-size: 1.2rem;
  backdrop-filter: blur(6px); flex: 0 0 auto; }
.zug-info { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; background: var(--kasten); border: 1px solid var(--rand); border-radius: 99px;
  padding: 8px 14px; backdrop-filter: blur(6px); height: 44px; }
.zug-info .punkt { width: 14px; height: 14px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 10px currentColor; }
.zug-name { font-weight: 900; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zug-team { color: var(--leise); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; font-size: .9rem; }
.uhr { position: relative; width: 48px; height: 48px; flex: 0 0 auto; }
.uhr svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.uhr-hg { fill: var(--kasten); stroke: rgba(255, 255, 255, .12); stroke-width: 3; }
.uhr-vg { fill: none; stroke: var(--akzent2); stroke-width: 3.2; stroke-linecap: round; stroke-dasharray: 97.4; transition: stroke-dashoffset .25s linear, stroke .3s; }
.uhr.knapp .uhr-vg { stroke: var(--rot); }
.uhr b { position: absolute; inset: 0; display: grid; place-items: center; font-size: 1.05rem; font-weight: 900; }
.wind { display: flex; align-items: center; gap: 4px; background: var(--kasten); border: 1px solid var(--rand); border-radius: 99px; padding: 0 10px; height: 44px; flex: 0 0 auto; }
.wind-l, .wind-r { width: 44px; height: 10px; background: rgba(255, 255, 255, .08); border-radius: 99px; overflow: hidden; display: flex; }
.wind-l { justify-content: flex-end; }
.wind i { display: block; height: 100%; background: linear-gradient(90deg, #7fd3ff, #3d8bff); border-radius: 99px; transition: width .4s; width: 0; }
.wind-l i { background: linear-gradient(270deg, #7fd3ff, #3d8bff); }
.wind-mitte { font-size: .9rem; }
.teams { display: flex; gap: 6px; margin-top: 8px; justify-content: center; flex-wrap: wrap; }
.team-b { display: flex; align-items: center; gap: 6px; background: var(--kasten); border-radius: 99px; padding: 3px 10px 3px 4px; font-size: .78rem; font-weight: 800;
  border: 1px solid var(--rand); transition: opacity .3s; }
.team-b.dran { box-shadow: 0 0 0 2px currentColor; }
.team-b.tot { opacity: .35; }
.team-b .bar { width: 60px; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .1); overflow: hidden; }
.team-b .bar i { display: block; height: 100%; border-radius: 99px; transition: width .6s; }
.team-b .tn { color: var(--text); max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Steuerung ---------- */
#steuer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 3; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px;
  padding: 0 max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)); pointer-events: none; }
#steuer > * { pointer-events: auto; }
#steuer.zuschauer .pad, #steuer.zuschauer .mitte-leiste { opacity: .28; pointer-events: none; }
.pad { display: grid; gap: 8px; }
.links-pad { grid-template-columns: repeat(3, 60px); grid-template-rows: 44px 60px; }
.links-pad [data-taste="links"] { grid-row: 2; grid-column: 1; }
.links-pad [data-taste="sprung"] { grid-row: 2; grid-column: 2; }
.links-pad [data-taste="rechts"] { grid-row: 2; grid-column: 3; }
.links-pad [data-taste="rueck"] { grid-row: 1; grid-column: 2; }
.rechts-pad { grid-template-columns: 60px 92px; grid-template-rows: 60px 60px; }
.rechts-pad [data-taste="hoch"] { grid-row: 1; grid-column: 1; }
.rechts-pad [data-taste="runter"] { grid-row: 2; grid-column: 1; }
.rechts-pad [data-taste="feuer"] { grid-row: 1 / 3; grid-column: 2; }
.tk { appearance: none; border: 1px solid rgba(255, 255, 255, .16); background: rgba(20, 24, 40, .72); border-radius: 18px; font-size: 1.5rem; cursor: pointer;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); box-shadow: 0 3px 0 rgba(0, 0, 0, .4); touch-action: none;
  display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; gap: 2px; position: relative; overflow: hidden; }
.tk .cap { font-size: .56rem; font-weight: 700; color: var(--leise); letter-spacing: .02em; pointer-events: none; }
.tk.aus { opacity: .3; }
.tk.aus .cap { visibility: hidden; }
.tk.klein-tk { font-size: 1.1rem; border-radius: 14px; }
.tk.an { background: rgba(255, 255, 255, .22); transform: translateY(2px); box-shadow: none; }
.tk.feuer { background: radial-gradient(circle at 50% 35%, #ff9d5c, #ff5b12 70%); border-color: #ffb07a; font-weight: 900; font-size: 1.05rem;
  letter-spacing: .04em; border-radius: 26px; box-shadow: 0 4px 0 #a33a0a, 0 10px 26px rgba(255, 91, 18, .4); text-shadow: 0 1px 0 rgba(0, 0, 0, .3); color: #fff; }
.tk.feuer.an { box-shadow: 0 1px 0 #a33a0a, 0 0 30px rgba(255, 150, 60, .8); }
.tk.feuer b { position: relative; font-weight: 900; }
.tk.feuer small { position: relative; font-size: .62rem; font-weight: 800; opacity: .9; text-transform: uppercase; letter-spacing: .06em; min-height: .8em; }
.tk.feuer .kraft { position: absolute; left: 0; right: 0; bottom: 0; height: 0; background: linear-gradient(0deg, rgba(255, 236, 90, .95), rgba(255, 250, 200, .55));
  box-shadow: 0 -2px 0 #fff;
  transition: height .05s linear; pointer-events: none; }
.mitte-leiste { display: flex; gap: 8px; align-items: flex-end; margin-bottom: 0; flex-wrap: wrap; justify-content: center; }
.wbtn { appearance: none; border: 1px solid rgba(255, 255, 255, .16); background: rgba(20, 24, 40, .82); border-radius: 16px; min-height: 52px; padding: 6px 14px;
  display: flex; align-items: center; gap: 8px; cursor: pointer; backdrop-filter: blur(6px); box-shadow: 0 3px 0 rgba(0, 0, 0, .4); max-width: 46vw; }
.wbtn #waffe-icon { font-size: 1.6rem; }
.wbtn #waffe-name { font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wbtn small { color: var(--akzent2); font-weight: 900; }
.wbtn.klein-w { padding: 6px 10px; font-weight: 900; }

/* ---------- Teamrahmen & Hinweis ---------- */
#rahmen { position: fixed; inset: 0; z-index: 2; pointer-events: none; --tf: transparent;
  box-shadow: inset 0 0 0 3px var(--tf); opacity: .55; transition: box-shadow .4s; }
#rahmen.meins { opacity: .9; animation: rahmenPuls 1.6s ease-in-out infinite; }
@keyframes rahmenPuls { 50% { box-shadow: inset 0 0 0 5px var(--tf), inset 0 0 40px -10px var(--tf); } }
#hinweis { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(max(10px, env(safe-area-inset-bottom)) + 62px); z-index: 4;
  pointer-events: none; background: rgba(12, 15, 26, .86); border: 1px solid var(--rand); border-radius: 99px; padding: 7px 14px;
  font-size: .86rem; font-weight: 700; max-width: min(620px, calc(100vw - 400px)); text-align: center; line-height: 1.3;
  box-shadow: var(--schatten); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

/* ---------- Waffenmenue ---------- */
#waffenmenue { position: fixed; inset: 0; z-index: 8; background: rgba(5, 7, 14, .55); display: flex; align-items: center; justify-content: center; padding: 12px; }
.wm-kasten { background: var(--kasten-fest); border: 1px solid var(--rand); border-radius: 22px; width: 100%; max-width: 900px; max-height: 100%;
  display: flex; flex-direction: column; box-shadow: var(--schatten); overflow: hidden; }
.wm-kopf { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--rand); }
.wm-kopf #wm-info { flex: 1; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wm-reiter { display: flex; gap: 6px; padding: 8px 12px; overflow-x: auto; border-bottom: 1px solid var(--rand); touch-action: pan-x; scrollbar-width: thin; flex: 0 0 auto; }
.wm-tab { appearance: none; flex: 0 0 auto; display: flex; align-items: center; gap: 6px; border: 1px solid var(--rand); background: #1f2440; border-radius: 99px;
  padding: 7px 12px; cursor: pointer; font-weight: 800; font-size: .82rem; min-height: 38px; }
.wm-tab .i { font-size: 1.05rem; }
.wm-tab:hover { background: #2a3056; }
.wm-tab.an { background: rgba(255, 122, 46, .22); border-color: var(--akzent); color: #ffd9c0; }
.wm-inhalt { overflow-y: auto; padding: 4px 14px 16px; touch-action: pan-y; }
.wm-kat { margin: 12px 0 8px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.wm-kat b { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--text); }
.wm-sogehts { font-size: .78rem; color: var(--leise); font-weight: 600; }
.wm-raster { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.wm-w { appearance: none; position: relative; border: 1px solid rgba(255, 255, 255, .08); background: #1f2440; border-radius: 14px; aspect-ratio: 1 / 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; padding: 4px; }
.wm-w:hover { background: #2a3056; }
.wm-w.an { border-color: var(--akzent); background: rgba(255, 122, 46, .18); }
.wm-w .i { font-size: 1.8rem; line-height: 1.1; }
.wm-w .n { font-size: .64rem; font-weight: 700; color: var(--leise); text-align: center; line-height: 1.1; max-height: 2.2em; overflow: hidden;
  -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; max-width: 100%; }
.wm-w .m { position: absolute; top: 4px; right: 6px; font-size: .7rem; font-weight: 900; color: var(--akzent2); }
.wm-w .mo { position: absolute; top: 3px; left: 5px; font-size: .72rem; opacity: .85; }
.wm-w .weiter { position: absolute; top: 4px; left: 6px; font-size: .62rem; color: var(--gruen); }
.wm-w.hat-mo .weiter { left: 22px; }
.wm-w .neu { position: absolute; top: -5px; left: 50%; transform: translateX(-50%); font-size: .5rem; font-weight: 900; text-transform: uppercase;
  background: var(--gruen); color: #04210c; border-radius: 6px; padding: 0 5px; line-height: 1.5; box-shadow: 0 1px 0 rgba(0, 0, 0, .4); }
.wm-raster { padding-top: 5px; }
.wm-w.leer, .wm-w.spaeter { opacity: .32; }
.wm-w.spaeter .m { color: var(--leise); }

/* ---------- Ueberlagerungen ---------- */
#menue, #ende, #frage, #hilfe { position: fixed; inset: 0; z-index: 9; background: rgba(5, 7, 14, .6); display: flex; align-items: center; justify-content: center;
  padding: 16px; backdrop-filter: blur(3px); }
#ende-host { display: flex; flex-direction: column; gap: 10px; }
.hilfe-raster { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; text-align: left; font-weight: 500; font-size: .92rem; }
.hilfe-raster div { background: #1d2238; border-radius: 12px; padding: 10px; }
.hilfe-titel { margin: 6px 0 0; font-size: 1rem; text-align: left; }
#hilfe .karte { max-height: 100%; overflow-y: auto; touch-action: pan-y; }
#banner { position: fixed; left: 50%; top: 32%; transform: translate(-50%, -50%); z-index: 6; pointer-events: none; text-align: center;
  font-weight: 900; font-size: clamp(1.4rem, 5vw, 2.6rem); text-shadow: 0 3px 0 rgba(0, 0, 0, .45), 0 0 24px rgba(0, 0, 0, .5);
  animation: rein .35s cubic-bezier(.2, 1.4, .4, 1); white-space: nowrap; }
#banner small { display: block; font-size: .5em; font-weight: 800; color: #fff; opacity: .85; }
@keyframes rein { from { transform: translate(-50%, -50%) scale(.6); opacity: 0; } }
#toast { position: fixed; left: 50%; bottom: 150px; transform: translateX(-50%); z-index: 10; background: rgba(15, 18, 30, .92); border: 1px solid var(--rand);
  border-radius: 14px; padding: 10px 16px; font-weight: 700; box-shadow: var(--schatten); max-width: 90vw; text-align: center; }
#quer { position: fixed; inset: 0; z-index: 11; background: rgba(8, 10, 18, .94); display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: 1.4rem; font-weight: 800; }
#quer .knopf { margin-top: 20px; font-size: 1rem; }

@media (max-height: 460px) {
  .links-pad { grid-template-columns: repeat(3, 54px); grid-template-rows: 38px 54px; }
  .rechts-pad { grid-template-columns: 54px 80px; grid-template-rows: 54px 54px; }
  .wbtn { min-height: 46px; }
  .teams { margin-top: 4px; }
  .uhr { width: 44px; height: 44px; }
}
@media (max-height: 460px) {
  #hinweis { bottom: auto; top: calc(max(6px, env(safe-area-inset-top)) + 80px); font-size: .76rem; padding: 5px 12px; max-width: 70vw; }
}
@media (max-width: 760px) {
  #hinweis { bottom: auto; top: calc(max(8px, env(safe-area-inset-top)) + 84px); max-width: 94vw; font-size: .8rem; }
}
@media (max-width: 640px) {
  .wbtn #waffe-name { display: none; }
  .wind-l, .wind-r { width: 30px; }
  .zug-team { display: none; }
}
@media (pointer: fine) {
  .tk { opacity: .8; }
}
