/* SHTF — 14 Tage Blackout
   Farben und Schriften aus der SURVESC-Landingpage übernommen. */

:root{
  --od-green:#4a5a38; --od-green-light:#6a7d52; --od-green-dark:#2a331f;
  --tan:#d4c090; --tan-light:#e8dfc4; --tan-dark:#c4aa78;
  --black:#1e1e1a; --surface:#252520; --surface-hoch:#2f2f28;
  --alert:#d4820a; --alert-glow:#e8960f; --white:#f4f0e8;
  --rot:#b4472a; --gruen:#7d9455;
  --radius:12px; --radius-lg:16px;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sans:'Source Sans 3',system-ui,-apple-system,Segoe UI,sans-serif;
  --display:'Bebas Neue',Impact,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}

body{
  background:var(--black); color:var(--white);
  font-family:var(--sans); font-weight:300; font-size:17px; line-height:1.55;
  min-height:100vh; min-height:100dvh;
  overflow-x:hidden;
}

/* Sanfter Verlauf im Hintergrund, damit die Karte nicht im Nichts schwebt */
body::before{
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(1100px 620px at 50% -10%, rgba(74,90,56,.30), transparent 62%),
    radial-gradient(760px 520px at 88% 104%, rgba(212,130,10,.09), transparent 66%);
}

.huelle{ max-width:640px; margin:0 auto; padding:0 16px 40px; }

/* ---------------- Bildschirme ---------------- */
.schirm{display:none}
.schirm.an{display:block; animation:auf .32s ease-out both}
@keyframes auf{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------------- Kopfzeile ---------------- */
.kopf{
  position:sticky; top:0; z-index:20;
  background:linear-gradient(180deg,rgba(30,30,26,.97) 72%,rgba(30,30,26,0));
  padding:10px 0 14px; margin-bottom:4px;
}
.kopf-oben{display:flex; align-items:center; justify-content:space-between; gap:10px}
.tag{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--tan-dark);
}
.tag b{color:var(--tan-light); font-weight:600}

.balken{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px}
.wert{background:var(--surface); border-radius:9px; padding:7px 8px 8px}
.wert-name{
  font-family:var(--mono); font-size:.62rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--tan-dark); display:block; margin-bottom:5px;
}
.leiste{height:7px; border-radius:4px; background:#15150f; overflow:hidden}
.leiste i{
  display:block; height:100%; border-radius:4px;
  background:linear-gradient(90deg,var(--od-green-light),var(--tan));
  transition:width .55s cubic-bezier(.2,.7,.3,1), background .3s;
}
.wert.knapp .leiste i{background:linear-gradient(90deg,#8a4a12,var(--alert-glow))}
.wert.knapp .wert-name{color:var(--alert-glow)}
.wert.knapp{animation:pochen 1.9s ease-in-out infinite}
@keyframes pochen{0%,100%{box-shadow:0 0 0 0 rgba(232,150,15,0)}50%{box-shadow:0 0 0 3px rgba(232,150,15,.16)}}

/* Lagemeldung des Tages — trägt die Stimmung, ohne laut zu werden */
.meldung{
  margin-top:9px; padding:7px 10px; border-radius:7px;
  background:rgba(74,90,56,.16); border-left:2px solid var(--od-green-light);
  font-family:var(--mono); font-size:.68rem; letter-spacing:.03em;
  color:#9aa886; line-height:1.45;
}

.warnung{
  margin-top:10px; padding:9px 12px; border-radius:9px;
  background:rgba(212,130,10,.13); border:1px solid rgba(212,130,10,.42);
  color:var(--alert-glow); font-size:.86rem; font-weight:600;
}

/* Benommenheit: die Fassung ist weg, eine Möglichkeit fehlt */
.benommen{
  margin-top:9px; padding:9px 12px; border-radius:9px;
  background:rgba(30,30,26,.85); border:1px dashed rgba(180,71,42,.55);
  color:#c98d78; font-size:.86rem; font-style:italic; line-height:1.45;
}

/* Reserve-Knöpfe: jederzeit einsetzbar, genau einmal */
.joker{display:flex; flex-wrap:wrap; gap:7px; margin-top:9px}
.joker-knopf{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-size:.87rem; font-weight:600; color:var(--tan-light);
  background:rgba(212,130,10,.12); border:1px solid rgba(212,130,10,.45);
  border-radius:9px; padding:7px 12px; cursor:pointer;
  transition:background .18s, transform .12s;
}
.joker-knopf:hover{background:rgba(212,130,10,.22)}
.joker-knopf:active{transform:scale(.98)}
.joker-knopf:focus-visible{outline:2px solid var(--alert-glow); outline-offset:2px}
.joker-marke{
  font-family:var(--mono); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase;
  color:#1a1408; background:var(--alert); border-radius:4px; padding:2px 6px;
}

/* ---------------- Aufrufzähler im Tacho-Stil ---------------- */
.tacho{
  display:flex; align-items:center; gap:14px; margin-top:16px;
  padding:13px 15px; border-radius:var(--radius-lg);
  background:var(--surface); border:1px solid rgba(212,192,144,.14);
}
.tacho[hidden]{display:none}

/* Das Gehäuse: dunkler Schacht mit Glanzkante, wie hinter Glas */
.tacho-rahmen{
  display:flex; gap:2px; padding:5px; border-radius:7px;
  background:linear-gradient(180deg,#0d0d0a,#191914);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.85), 0 1px 0 rgba(212,192,144,.10);
}
.walze{
  position:relative; width:22px; height:34px; overflow:hidden;
  background:linear-gradient(180deg,#2b2b23 0%,#3d3d32 46%,#2b2b23 100%);
  border-radius:3px;
}
/* Trennfuge zwischen den Walzen */
.walze + .walze{margin-left:1px}
/* Lichtkante oben und Schatten unten — erzeugt die Wölbung der Rolle */
.walze::after{
  content:''; position:absolute; inset:0; pointer-events:none; border-radius:3px;
  background:linear-gradient(180deg,rgba(0,0,0,.72) 0%,transparent 34%,
             transparent 64%,rgba(0,0,0,.72) 100%);
}
.walze i{
  position:absolute; left:0; right:0; top:0; display:block; font-style:normal;
  font-family:var(--mono); font-size:1.32rem; line-height:34px; text-align:center;
  color:var(--tan-light);
  transition:transform 1.35s cubic-bezier(.16,.86,.24,1);
}
.walze i span{display:block; height:34px}

.tacho-schrift{font-family:var(--mono); font-size:.66rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--tan-dark); line-height:1.7}
.tacho-schrift em{display:block; font-style:normal; color:var(--od-green-light)}

@media (prefers-reduced-motion:reduce){
  .walze i{transition:none}
}

/* ---------------- Vorspann: Fernschreiber ---------------- */
.fernschreiber{
  position:relative; min-height:62vh; padding:18px 4px 8px; overflow:hidden;
}
.fs-raster{
  position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.35) 0 1px,transparent 1px 3px);
}
.fs-streifen{
  position:absolute; left:0; right:0; height:64px; pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(154,168,134,.08),transparent);
}
.fs-kopf{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.17em; color:var(--tan-dark);
  border-bottom:1px solid rgba(212,192,144,.16); padding-bottom:9px; margin-bottom:15px;
}
.fs-kopf b{color:var(--alert-glow); font-weight:400}
.fs-text{
  font-family:var(--mono); font-size:.83rem; line-height:1.74; color:#9aa886;
  white-space:pre-wrap; min-height:15em;
}
.fs-text .zeit{color:var(--tan-dark)}
.fs-text .roh{color:#d8d3c4}
.fs-cursor{
  display:inline-block; width:.55em; height:1.05em; vertical-align:-.18em;
  background:#9aa886;
}
.fs-abbruch{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; color:var(--rot);
  text-align:center; padding:14px 0 0; opacity:0;
}
.fs-schluss{
  position:absolute; inset:0; display:grid; place-items:center; opacity:0;
  background:var(--black);
}
.fs-marke{
  display:block; font-family:var(--display); font-size:4.6rem; letter-spacing:.06em;
  color:var(--tan-light); line-height:.9; text-align:center;
}
.fs-schluss em{
  display:block; font-family:var(--mono); font-size:.72rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--alert-glow); font-style:normal;
  margin-top:11px; text-align:center;
}

/* Tageszeit neben der Tagzahl */
.zeitmarke{
  display:inline-block; font-style:normal; margin-left:9px; padding:2px 7px;
  border-radius:5px; font-size:.62rem; letter-spacing:.11em;
  background:rgba(212,192,144,.10); color:var(--tan-dark);
}

/* Krankheit — zieht jeden Tag Wasser */
.krank{
  margin-top:9px; padding:9px 12px; border-radius:9px;
  background:rgba(122,90,40,.16); border:1px solid rgba(180,140,60,.42);
  color:#d8b070; font-size:.86rem; line-height:1.45;
}

/* ---------------- Nachtkarte ---------------- */
/* Nachts gibt es kein Bild: Text auf Schwarz, enger, kälter. */
.karte.nacht{
  background:#141410; border-color:rgba(154,168,134,.18);
  box-shadow:0 18px 44px rgba(0,0,0,.65);
}
.nacht-kopf{
  padding:20px 18px 4px;
  border-bottom:1px solid rgba(154,168,134,.12);
}
.nacht-zeit{
  display:block; font-family:var(--mono); font-size:.62rem; letter-spacing:.18em;
  text-transform:uppercase; color:#6f7a5e; margin-bottom:8px;
}
.nacht-titel{
  font-family:var(--display); font-size:1.9rem; line-height:1.05;
  letter-spacing:.02em; color:#c9d0ba;
}
.karte.nacht .karte-text{color:#b9bcae; padding-top:14px}
.karte.nacht .option{background:#1d1d17; border-color:rgba(154,168,134,.16)}
.karte.nacht .option:hover{background:#26261e}
.karte.nacht .option .nr{background:rgba(106,125,82,.24); color:#9aa886}

/* ---------------- Endkarte: was danach kam ---------------- */
.nachher{
  background:var(--surface); border-left:3px solid var(--tan-dark);
  border-radius:0 var(--radius) var(--radius) 0; padding:13px 15px; margin-top:10px;
}
.nachher-kopf{
  font-family:var(--display); font-size:1.35rem; letter-spacing:.02em;
  color:var(--tan-light); margin-bottom:5px;
}
.nachher p{margin:0; font-size:.94rem; line-height:1.55; color:#ccc7ba}

/* ---------------- Karte ---------------- */
.karte{
  background:var(--surface); border:1px solid rgba(212,192,144,.14);
  border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.5);
}
.karte-bild{position:relative; aspect-ratio:16/9; background:#14140f}
.karte-bild img{width:100%; height:100%; object-fit:cover; display:block}
.karte-bild::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 42%,rgba(37,37,32,.96));
}
.karte-titel{
  position:absolute; left:16px; right:16px; bottom:11px; z-index:2;
  font-family:var(--display); font-size:1.85rem; line-height:1.05;
  letter-spacing:.02em; color:var(--tan-light);
  text-shadow:0 2px 14px rgba(0,0,0,.85);
}
.karte-text{padding:15px 17px 4px; color:#ded9cd}

/* ---------------- Optionen ---------------- */
.optionen{padding:12px 13px 15px; display:grid; gap:9px}
.option{
  display:flex; align-items:flex-start; gap:11px; width:100%; text-align:left;
  font-family:inherit; font-size:1rem; font-weight:400; line-height:1.42;
  color:var(--white); background:var(--surface-hoch);
  border:1px solid rgba(212,192,144,.16); border-radius:var(--radius);
  padding:12px 14px; cursor:pointer;
  transition:transform .12s, border-color .18s, background .18s;
}
.option:hover{background:#39392f; border-color:rgba(212,192,144,.4)}
.option:active{transform:scale(.985)}
.option:focus-visible{outline:2px solid var(--alert-glow); outline-offset:2px}
.option .nr{
  flex:0 0 auto; font-family:var(--mono); font-size:.72rem; font-weight:600;
  color:var(--od-green-light); background:rgba(74,90,56,.28);
  border-radius:6px; padding:3px 7px; margin-top:1px;
}
.marke{
  display:inline-block; font-family:var(--mono); font-size:.6rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; border-radius:5px;
  padding:2px 6px; margin-left:7px; vertical-align:1px;
}
.marke.wagnis{background:rgba(212,130,10,.2); color:var(--alert-glow)}
.marke.gegenstand{background:rgba(74,90,56,.34); color:#9fb37f}

/* ---------------- Folge ---------------- */
.folge-text{padding:15px 17px 6px; color:#ded9cd}
.aenderungen{display:flex; flex-wrap:wrap; gap:7px; padding:4px 17px 0}
.chip{
  font-family:var(--mono); font-size:.74rem; font-weight:600;
  border-radius:7px; padding:4px 9px;
}
.chip.plus{background:rgba(125,148,85,.2); color:#a8c07d}
.chip.minus{background:rgba(180,71,42,.19); color:#e08a70}
.wisch{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.09em;
  text-transform:uppercase; color:#6b6a5c; text-align:center; padding:12px 0 0;
}

/* ---------------- Knöpfe ---------------- */
.knopf{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--sans); font-size:1rem; font-weight:600;
  border-radius:var(--radius); border:1px solid transparent;
  padding:13px 22px; cursor:pointer; width:100%;
  transition:transform .12s, filter .18s, background .18s;
}
.knopf:active{transform:scale(.985)}
.knopf:focus-visible{outline:2px solid var(--alert-glow); outline-offset:2px}
.knopf.haupt{background:var(--alert); color:#1a1408}
.knopf.haupt:hover{background:var(--alert-glow)}
.knopf.haupt[disabled]{background:#4a4438; color:#8b8577; cursor:not-allowed}
.knopf.neben{background:transparent; border-color:rgba(212,192,144,.3); color:var(--tan-light)}
.knopf.neben:hover{background:rgba(212,192,144,.09)}
.knopf-reihe{display:grid; gap:9px; margin-top:14px}

/* Teilen: ein großer Knopf fürs Teilen-Menü des Geräts, darunter Direktwege */
.knopf.teilen-haupt{
  background:var(--od-green); color:var(--tan-light);
  border-color:rgba(212,192,144,.28);
}
.knopf.teilen-haupt:hover{background:var(--od-green-light); color:#1a1a14}
.teilen-reihe{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:9px; justify-content:center;
}
.teilen-knopf{
  flex:1 1 auto; min-width:88px; text-align:center; text-decoration:none;
  font-family:var(--sans); font-size:.88rem; font-weight:600; color:var(--tan-dark);
  background:transparent; border:1px solid rgba(212,192,144,.24); border-radius:10px;
  padding:9px 12px; cursor:pointer; transition:background .18s, color .18s, border-color .18s;
}
.teilen-knopf:hover{background:rgba(212,192,144,.09); color:var(--tan-light);
  border-color:rgba(212,192,144,.45)}
.teilen-knopf:focus-visible{outline:2px solid var(--alert-glow); outline-offset:2px}

/* ---------------- Startbildschirm ---------------- */
.start-bild{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  aspect-ratio:16/9; margin-top:14px;
}
.start-bild img{width:100%;height:100%;object-fit:cover;display:block}
.start-bild::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(30,30,26,.15) 30%,rgba(30,30,26,.97));
}
.start-schrift{position:absolute; left:18px; right:18px; bottom:14px; z-index:2}
h1{
  font-family:var(--display); font-size:3.6rem; line-height:.9; margin:0;
  letter-spacing:.05em; color:var(--tan-light);
  text-shadow:0 3px 18px rgba(0,0,0,.9);
}
.unterzeile{
  font-family:var(--mono); font-size:.76rem; letter-spacing:.11em;
  text-transform:uppercase; color:var(--alert-glow); margin-top:7px;
}
.vorwort{margin:16px 2px 0; color:#cdc8bb}
.vorwort strong{color:var(--tan-light); font-weight:600}

/* ---------------- Ausrüstung ---------------- */
.abschnitt-titel{
  font-family:var(--display); font-size:1.9rem; letter-spacing:.03em;
  color:var(--tan-light); margin:18px 2px 3px;
}
.abschnitt-text{margin:0 2px 14px; color:#bdb8ab; font-size:.95rem}
.zaehler{font-family:var(--mono); font-size:.8rem; color:var(--alert-glow); font-weight:600}

.regal{display:grid; grid-template-columns:repeat(2,1fr); gap:10px}
.ding{
  position:relative; text-align:left; padding:0; overflow:hidden; cursor:pointer;
  background:var(--surface); color:var(--white);
  border:1px solid rgba(212,192,144,.14); border-radius:var(--radius);
  font-family:inherit; transition:border-color .18s, transform .12s;
}
.ding:active{transform:scale(.985)}
.ding:focus-visible{outline:2px solid var(--alert-glow); outline-offset:2px}
.ding img{width:100%; aspect-ratio:16/9; object-fit:cover; display:block; opacity:.82}
.ding-text{padding:9px 11px 11px}
.ding-name{font-weight:600; font-size:.97rem; color:var(--tan-light)}
.ding-info{font-size:.82rem; color:#a9a598; line-height:1.35; margin-top:2px}
.ding-dauer{
  display:block; margin-top:5px; padding-top:5px;
  border-top:1px solid rgba(212,192,144,.12);
  font-size:.78rem; line-height:1.35; color:#9fb37f;
}
.ding.drin{border-color:var(--alert); box-shadow:0 0 0 1px var(--alert) inset}
.ding.drin img{opacity:1}
.ding.drin::after{
  content:'✓'; position:absolute; top:7px; right:7px; z-index:2;
  width:25px; height:25px; border-radius:50%;
  background:var(--alert); color:#1a1408;
  font-size:.85rem; font-weight:700; display:grid; place-items:center;
}
.ding.voll{opacity:.42}

/* ---------------- Ende ---------------- */
.ende-kopf{text-align:center; padding:22px 16px 6px}
.ende-marke{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--tan-dark);
}
.ende-rang{
  font-family:var(--display); font-size:2.7rem; line-height:1.02;
  color:var(--tan-light); margin:5px 0 0; letter-spacing:.02em;
}
.ende-rang.tot{color:var(--alert-glow)}
.ende-text{padding:10px 17px 16px; color:#ded9cd}
.bilanz{
  display:grid; grid-template-columns:repeat(2,1fr); gap:8px;
  padding:0 15px 16px;
}
.bilanz div{
  background:#1b1b16; border-radius:9px; padding:9px 11px;
  font-family:var(--mono); font-size:.8rem; color:#b7b2a4;
}
.bilanz b{display:block; font-size:1.25rem; color:var(--tan-light); margin-top:1px}

.lehre{
  background:var(--surface); border-left:3px solid var(--od-green-light);
  border-radius:0 var(--radius) var(--radius) 0; padding:12px 14px; margin-top:9px;
}
.lehre.fehler{border-left-color:var(--alert)}
.lehre-kopf{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--tan-dark); margin-bottom:4px;
}
.lehre.fehler .lehre-kopf{color:var(--alert-glow)}
.lehre-wahl{font-size:.9rem; color:#9d9a8d}
.lehre p{margin:5px 0 0; font-size:.92rem; color:#ccc7ba}

/* Umfang des Spiels — Argument fürs Wiederspielen */
.umfang{
  display:flex; align-items:center; gap:14px; margin-top:18px;
  background:var(--surface); border:1px solid rgba(212,192,144,.14);
  border-radius:var(--radius-lg); padding:14px 15px;
}
.umfang-zahl{
  flex:0 0 auto; text-align:center; line-height:1.1;
  padding-right:14px; border-right:1px solid rgba(212,192,144,.16);
}
.umfang-zahl b{
  display:block; font-family:var(--display); font-size:2.9rem;
  color:var(--alert-glow); letter-spacing:.02em;
}
.umfang-zahl span{
  display:block; font-family:var(--mono); font-size:.6rem;
  letter-spacing:.07em; text-transform:uppercase; color:var(--tan-dark); margin-top:3px;
}
.umfang-text{margin:0; font-size:.88rem; line-height:1.5; color:#bdb8ab}
.umfang-text strong{color:var(--tan-light); font-weight:600}
@media (max-width:380px){
  .umfang{flex-direction:column; align-items:flex-start; gap:10px}
  .umfang-zahl{border-right:0; border-bottom:1px solid rgba(212,192,144,.16);
               padding:0 0 9px; text-align:left; width:100%}
  .umfang-zahl span{letter-spacing:.05em}
}

.fuss{
  margin-top:26px; padding-top:16px; border-top:1px solid rgba(212,192,144,.12);
  font-size:.8rem; color:#807c70; line-height:1.5;
}
.fuss a{color:var(--tan-dark)}
.fuss a:hover{color:var(--tan)}

/* ---------------- Tonschalter ---------------- */
.ton{
  background:transparent; border:1px solid rgba(212,192,144,.22);
  color:var(--tan-dark); border-radius:8px; cursor:pointer;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.08em;
  text-transform:uppercase; padding:5px 9px;
}
.ton:hover{border-color:rgba(212,192,144,.5); color:var(--tan-light)}
.ton:focus-visible{outline:2px solid var(--alert-glow); outline-offset:2px}

/* ---------------- Wischen ---------------- */
.wischbar{touch-action:pan-y; will-change:transform}
.wischbar.weg{transition:transform .3s ease-in, opacity .3s ease-in; opacity:0}

/* ---------------- Rücksicht ---------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important; transition-duration:.01ms!important}
}
@media (max-width:380px){
  h1{font-size:3rem}
  .karte-titel{font-size:1.6rem}
  .regal{grid-template-columns:1fr}
}
