:root{--farbe-hintergrund: #0c1411;--farbe-schrift: #e8efec;--farbe-schrift-leise: rgba(232, 239, 236, .55);--farbe-linie: rgba(232, 239, 236, .12);--farbe-flaeche: rgba(232, 239, 236, .08);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--farbe-hintergrund);color:var(--farbe-schrift);font-family:system-ui,-apple-system,Segoe UI,sans-serif;overscroll-behavior:none}.app{display:flex;flex-direction:column;height:100%}.app__kopf{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.6rem 1.25rem;border-bottom:1px solid var(--farbe-linie)}.app__titel{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:.02em}.app__feld{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--farbe-schrift-leise)}.app__auswahl,.app__knopf{padding:.32rem .6rem;border:1px solid var(--farbe-linie);border-radius:6px;background:var(--farbe-flaeche);color:var(--farbe-schrift);font:inherit;font-size:.82rem}.app__knopf{cursor:pointer}.app__knopf:hover{border-color:#e8efec4d}.app__fortschritt{font-size:.82rem;color:var(--farbe-schrift-leise);font-variant-numeric:tabular-nums;margin-left:auto}.app__code{padding:.15rem .5rem;border:1px solid var(--farbe-linie);border-radius:6px;background:var(--farbe-flaeche);font-size:.82rem;letter-spacing:.14em;font-variant-numeric:tabular-nums}.spielerleiste{display:flex;align-items:center;gap:.85rem;margin:0;padding:0;list-style:none}.spielerleiste__eintrag{display:flex;align-items:center;gap:.35rem;font-size:.82rem}.spielerleiste__eintrag--weg{opacity:.4;text-decoration:line-through}.punkt{width:.62rem;height:.62rem;border-radius:50%;flex:none}.app__status{margin-left:auto;font-size:.8rem;color:var(--farbe-schrift-leise)}.app__status--erreichbar{color:#7fd6a8}.app__status--weg{color:#e59a8f}.app__brett{position:relative;flex:1;min-height:0}.app__fuss{padding:.5rem 1.25rem;border-top:1px solid var(--farbe-linie);color:var(--farbe-schrift-leise);font-size:.76rem}kbd{padding:.05em .35em;border:1px solid var(--farbe-linie);border-radius:4px;background:var(--farbe-flaeche);font-family:inherit;font-size:.9em}.brett__canvas{display:block;height:100%;width:100%;touch-action:none;cursor:grab}.brett__canvas:active{cursor:grabbing}.geloest{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:1.6rem 2.4rem;border:1px solid var(--farbe-linie);border-radius:12px;background:#0c1411e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.geloest__text{margin:0;font-size:1.5rem;font-weight:600}.start{display:flex;align-items:center;justify-content:center;min-height:100%;padding:1.5rem}.start__karte{display:flex;flex-direction:column;gap:.9rem;width:min(26rem,100%);padding:1.75rem;border:1px solid var(--farbe-linie);border-radius:14px;background:#e8efec0a}.start__titel{margin:0;font-size:1.5rem;letter-spacing:.01em}.start__unterzeile,.start__hinweis{margin:0;color:var(--farbe-schrift-leise);font-size:.85rem}.start__block{display:flex;flex-direction:column;gap:.6rem;padding-top:.9rem;border-top:1px solid var(--farbe-linie)}.start__blocktitel{margin:0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--farbe-schrift-leise)}.feld{display:flex;flex-direction:column;gap:.3rem;font-size:.78rem;color:var(--farbe-schrift-leise)}.feld__eingabe{padding:.5rem .65rem;border:1px solid var(--farbe-linie);border-radius:8px;background:var(--farbe-flaeche);color:var(--farbe-schrift);font:inherit;font-size:.95rem}.feld__eingabe--code{letter-spacing:.22em;text-transform:uppercase;font-variant-numeric:tabular-nums}.knopf{padding:.55rem .9rem;border:1px solid var(--farbe-linie);border-radius:8px;background:var(--farbe-flaeche);color:var(--farbe-schrift);font:inherit;font-size:.9rem;cursor:pointer}.knopf:hover:not(:disabled){border-color:#e8efec4d}.knopf:disabled{opacity:.45;cursor:not-allowed}.knopf--haupt{background:#2f6f52;border-color:#3d8a67;font-weight:600}.knopf--leise{padding:.32rem .6rem;font-size:.8rem;background:none}.lobbycode{margin:0;padding:.7rem;border:1px dashed var(--farbe-linie);border-radius:10px;text-align:center;font-size:2rem;font-weight:600;letter-spacing:.3em;text-indent:.3em;font-variant-numeric:tabular-nums}.spielerliste{display:flex;flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none}.spielerliste__eintrag{display:flex;align-items:center;gap:.5rem;font-size:.92rem}.marke{padding:.05em .4em;border:1px solid var(--farbe-linie);border-radius:4px;color:var(--farbe-schrift-leise);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.meldung{position:fixed;top:.75rem;left:50%;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:.6rem;padding:.5rem .9rem;border:1px solid #7a3d38;border-radius:8px;background:#2a1614;color:#f0c8c2;font-size:.85rem}.meldung--warnung{border-color:#7a6a38;background:#262014;color:#efdcae}.meldung__weg{border:none;background:none;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer}.bibliothek{max-width:62rem;margin:0 auto;padding:1.25rem}.bibliothek__kopf{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.bibliothek__titel{margin:0;font-size:1.15rem;flex:1}.bibliothek__hinweis{color:var(--farbe-schrift-leise);font-size:.88rem}.levelgitter{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:0;padding:0;list-style:none}.levelkarte{display:flex;flex-direction:column;gap:.55rem;padding:.75rem;border:1px solid var(--farbe-linie);border-radius:12px;background:#e8efec0a}.levelkarte__bild,.levelkarte__vorschau canvas{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:8px;background:#0c1411}.levelkarte__kopf{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.levelkarte__name{margin:0;font-size:1rem;font-weight:600}.levelkarte__ersteller{font-size:.76rem;color:var(--farbe-schrift-leise)}.levelkarte__stufen{display:flex;flex-wrap:wrap;gap:.4rem}.stufe{padding:.3rem .6rem;border:1px solid var(--farbe-linie);border-radius:999px;background:var(--farbe-flaeche);color:var(--farbe-schrift);font:inherit;font-size:.8rem;font-variant-numeric:tabular-nums;cursor:pointer}.stufe:hover:not(:disabled){border-color:#3d8a67;background:#3d8a6738}.stufe:disabled{opacity:.5;cursor:not-allowed}.levelkarte__weg{align-self:flex-start;color:var(--farbe-schrift-leise)}.editor__vorschau{display:block;width:100%;max-height:14rem;object-fit:contain;border:1px solid var(--farbe-linie);border-radius:8px;background:#0c1411}.stufenwahl{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:.9rem 0 0;border:none;border-top:1px solid var(--farbe-linie)}.stufenwahl__eintrag{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:var(--farbe-schrift-leise)}.app__level{font-size:.82rem;color:var(--farbe-schrift-leise)}.staende{display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none}.stand{display:grid;grid-template-columns:1fr auto;gap:.15rem .6rem;width:100%;padding:.5rem .7rem;border:1px solid var(--farbe-linie);border-radius:8px;background:var(--farbe-flaeche);color:var(--farbe-schrift);font:inherit;text-align:left;cursor:pointer}.stand:hover:not(:disabled){border-color:#3d8a67}.stand:disabled{opacity:.5;cursor:not-allowed}.stand__name{font-size:.92rem;font-weight:600}.stand__zahlen{grid-column:1;font-size:.76rem;color:var(--farbe-schrift-leise);font-variant-numeric:tabular-nums}.stand__code{grid-row:1 / span 2;grid-column:2;align-self:center;font-size:.76rem;letter-spacing:.12em;color:var(--farbe-schrift-leise);font-variant-numeric:tabular-nums}.staende__zeile{display:flex;align-items:stretch;gap:.35rem}.staende__zeile .stand{flex:1;min-width:0}.stand__weg{flex:none;width:2rem;border:1px solid var(--farbe-linie);border-radius:8px;background:none;color:var(--farbe-schrift-leise);font-size:1.1rem;line-height:1;cursor:pointer}.stand__weg:hover{border-color:#7a3d38;background:#2a1614;color:#f0c8c2}.app__fortschritt{animation:puls .42s ease-out}@keyframes puls{0%{color:#b4ffd6;transform:scale(1.18)}to{color:var(--farbe-schrift-leise);transform:scale(1)}}@media(prefers-reduced-motion:reduce){.app__fortschritt{animation:none}}
