/* Fun with Flags — App-Styles. Ausgelagert aus app.html (Refactoring 2026-07-03),
   Inhalt unverändert bis auf entfernte tote Regeln (siehe CODE-REVIEW.md D1/D2). */
  :root{
    /* Airbnb: weißer Canvas + warme Grau-Hierarchie */
    --canvas:#ffffff;
    --surface-soft:#f7f7f7;
    --surface-strong:#f2f2f2;
    --ink:#222222;
    --body:#3f3f3f;
    --muted:#6a6a6a;
    --muted-soft:#929292;
    --hairline:#dddddd;
    --hairline-soft:#ebebeb;
    --border-strong:#c1c1c1;
    /* Rausch — die einzige Markenspannung */
    --rausch:#ff385c;
    --rausch-active:#e00b41;
    --rausch-disabled:#ffd1da;
    --green:#008a05;
    --green-soft:#eaf6ea;
    --red:#c13515;
    --red-soft:#fbece9;
    --gold:#ffb400;
    --airbnb-shadow:rgba(0,0,0,.02) 0 0 0 1px, rgba(0,0,0,.04) 0 2px 6px 0, rgba(0,0,0,.1) 0 4px 8px 0;
    /* Aliasse auf alte Namen, damit bestehende Regeln weiterlaufen */
    --paper:#ffffff;
    --paper2:#f7f7f7;
    --line:#dddddd;
    --ink-soft:#3f3f3f;
    --accent:#ff385c;
    --accent-deep:#e00b41;
    --shadow:rgba(0,0,0,.02) 0 0 0 1px, rgba(0,0,0,.04) 0 2px 6px 0, rgba(0,0,0,.1) 0 4px 8px 0;
    --sans:'Nunito', -apple-system, system-ui, 'Segoe UI', Roboto, sans-serif;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    font-family:var(--sans);
    color:var(--body);
    background-color:var(--canvas);
    min-height:100vh;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:860px;margin:0 auto;padding:22px 20px 64px}

  /* Header */
  header.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;padding-bottom:18px;border-bottom:1px solid var(--hairline-soft)}
  .brand{display:flex;align-items:center;gap:12px;cursor:pointer}
  /* Build-up-Flaggenlogo: Fläche → 2/3 Felder → 1/2 Kreise, Farben wechseln pro Durchlauf */
  .flogo{width:40px;height:30px;flex:none;filter:drop-shadow(0 1px 2px rgba(20,30,45,.14))}
  .flogo svg{display:block;width:100%;height:100%}
  /* Statische Marke im App-Header (3 Felder + 1 Kreis, feste Farben) — bewusst NICHT animiert,
     damit sie beim Lernen nicht ablenkt. Die animierte Build-up-Version lebt nur auf der Landing. */
  .flogo .ga{fill:#1a9d4a;width:16px;x:0}
  .flogo .gm{fill:#f4b400;width:16px;x:16px}
  .flogo .gr{fill:#d1342f;width:16px;x:32px}
  .flogo .mc1{fill:#15304f;transform-box:fill-box;transform-origin:center;transform:scale(1)}
  .flogo .mc2a,.flogo .mc2b{display:none}
  .wordmark{font-family:var(--sans);font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1;color:var(--ink)}
  .wordmark small{display:block;font-family:var(--sans);font-weight:600;font-size:9.5px;letter-spacing:.18em;color:var(--muted);margin-top:4px;text-transform:uppercase}
  nav.tabs{display:flex;gap:2px}
  nav.tabs button{font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:0;color:var(--muted);background:transparent;border:none;padding:10px 14px;border-radius:9999px;cursor:pointer;transition:.15s}
  nav.tabs button:hover{background:var(--surface-soft);color:var(--ink)}
  nav.tabs button.active{background:transparent;color:var(--ink)}
  nav.tabs button.active::after{content:"";display:block;height:2px;background:var(--ink);border-radius:2px;margin:5px 4px -2px}

  /* Sitzungs-Schließen (✕) – nur während Lernen/Quiz */
  .sessionclose{display:none;width:40px;height:40px;flex:none;align-items:center;justify-content:center;font-size:18px;line-height:1;color:var(--ink);background:var(--canvas);border:1px solid var(--border-strong);border-radius:9999px;cursor:pointer;transition:.15s}
  .sessionclose:hover{background:var(--surface-soft);border-color:var(--ink)}
  header.top.in-session nav.tabs{display:none !important}
  header.top.in-session .burger{display:none !important}
  header.top.in-session .sessionclose{display:flex}

  /* generic */
  .eyebrow{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rausch);margin:0 0 8px}
  h1.display{font-family:var(--sans);font-weight:700;font-size:clamp(26px,5vw,34px);line-height:1.15;margin:0 0 10px;letter-spacing:-.02em;color:var(--ink)}
  h2.display{font-family:var(--sans);font-weight:600;font-size:22px;margin:0 0 6px;letter-spacing:-.01em;color:var(--ink)}
  p.lede{color:var(--body);font-size:16px;line-height:1.5;margin:0 0 24px;max-width:60ch}

  .card{background:var(--canvas);border:1px solid var(--hairline);border-radius:14px;box-shadow:none;padding:24px}

  .btn{font-family:var(--sans);font-weight:600;font-size:16px;letter-spacing:0;color:#fff;background:var(--rausch);border:none;border-radius:8px;padding:13px 22px;cursor:pointer;transition:background .15s, filter .15s;display:inline-flex;align-items:center;gap:9px}
  .btn:hover{background:var(--rausch-active)}
  .btn:active{background:var(--rausch-active)}
  .btn.accent{background:var(--rausch)}
  .btn.accent:hover{background:var(--rausch-active)}
  .btn.ghost{background:var(--canvas);color:var(--ink);border:1px solid var(--ink)}
  .btn.ghost:hover{background:var(--surface-soft)}
  .btn:disabled{background:var(--rausch-disabled);cursor:default}
  .btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  .navarrow:focus-visible,.disccard:focus-visible,.chip:focus-visible,.tabs button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

  /* stats row */
  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}
  .stat{background:var(--canvas);border:1px solid var(--hairline);border-radius:14px;padding:18px 14px;text-align:center}
  .stat .num{font-family:var(--sans);font-weight:700;font-size:34px;line-height:1;letter-spacing:-.02em;color:var(--ink)}
  .stat .lab{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:6px}
  .stat.due .num{color:var(--rausch)}
  .stat.new .num{color:var(--ink)}
  .stat.mast .num{color:var(--green)}

  .bar{height:8px;border-radius:9999px;background:var(--surface-strong);overflow:hidden;border:none}
  .bar > span{display:block;height:100%;background:var(--green);transition:width .5s}
  .bar.duo{position:relative}
  .bar.duo .seen{position:absolute;left:0;top:0;height:100%;background:var(--rausch)}
  .bar.duo .mast{position:absolute;left:0;top:0;height:100%;background:var(--green)}

  /* region chips */
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
  .chip{font-size:13px;font-weight:600;padding:8px 14px;border-radius:99px;border:1px solid var(--hairline);background:transparent;color:var(--ink-soft);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:7px}
  .chip[data-on="1"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .chip .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
  .chip[data-on="1"] .dot{background:var(--gold)}

  /* flag plate */
  .plate{position:relative;width:100%;aspect-ratio:4/3;background:#fff;border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--hairline-soft), 0 6px 16px -10px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center}
  .plate svg{width:100%;height:100%;display:block}
  .plate.square svg{width:auto;height:100%}

  /* QUIZ */
  .quizhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:14px}
  .progressline{flex:1;height:7px;border-radius:99px;background:var(--surface-soft);border:1px solid var(--hairline);overflow:hidden}
  .progressline > span{display:block;height:100%;background:var(--accent);transition:width .4s}
  /* Sticky-Navigationsleiste unten (Desktop) */
  .quizbar{position:sticky;bottom:0;z-index:30;display:flex;align-items:center;gap:14px;margin-top:24px;padding:12px 0 14px;background:linear-gradient(180deg,rgba(255,255,255,0),var(--canvas) 30%);border-top:1px solid var(--hairline)}
  .quizbar .qbtn-quit{flex:0 0 auto}
  .quizbar .progressline{flex:1}
  .quizbar .qbtn-next{flex:0 0 auto;min-width:118px;justify-content:center;visibility:hidden}
  .quizbar .qbtn-next.show{visibility:visible}
  .quizbar .stage-inline{flex:0 0 auto;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
  /* Flagge + Antworten nebeneinander (nur Desktop) */
  .quizsplit{display:flex;gap:30px;align-items:center;max-width:760px;margin:0 auto}
  .quizsplit .qs-flag{flex:0 0 46%;max-width:46%}
  .quizsplit .qs-flag .flagstage{margin:0}
  .quizsplit .qs-ans{flex:1 1 auto;min-width:0}
  .quizsplit .qs-ans .prompt{text-align:left;margin-top:0}
  .quizsplit .qs-ans .options{margin:0;max-width:none}
  @media(max-width:620px){
    .quizsplit{display:block}
    .quizsplit .qs-flag{max-width:420px;margin:0 auto 18px}
    .quizsplit .qs-ans .prompt{text-align:center}
    .quizsplit .qs-ans .options{margin:0 auto}
  }

  .flagstage{max-width:420px;margin:6px auto 22px}
  .flagstage.compact{max-width:210px;margin:2px auto 16px}
  .factcard{max-width:520px;margin:0 auto 22px;text-align:left;background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:14px;padding:16px 18px}
  .factcard .fh{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 6px}
  .factcard .fx{font-size:13.5px;line-height:1.6;color:var(--ink);margin:0}
  .factnote{font-size:11px;color:var(--muted);text-align:center;margin:-12px 0 18px;font-style:italic}
  .factnote.verify{color:var(--rausch);font-style:normal;font-weight:600;font-size:11.5px;margin-top:-8px}
  .disctools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 18px}
  .disctools input{flex:1;min-width:180px;font-family:var(--sans);font-size:15px;padding:11px 14px;border:1px solid var(--border-strong);border-radius:8px;background:var(--canvas);color:var(--ink)}
  .disctools input:focus{outline:none;border:2px solid var(--ink)}
  /* Achtung: .chip ist zweimal definiert — oben die data-on-Variante (Einstellungen),
     hier die .active-Variante (Entdecken-Filter). Diese spätere Definition gewinnt bei
     gemeinsamen Eigenschaften; bewusst so belassen (Zusammenlegen = visuelles Risiko). */
  .chip{font-family:var(--sans);font-weight:600;font-size:13px;padding:8px 14px;border-radius:9999px;border:1px solid var(--border-strong);background:var(--canvas);color:var(--ink);cursor:pointer;transition:.15s}
  .chip:hover{border-color:var(--ink)}
  .chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .discgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:13px}
  .disccard{background:var(--canvas);border:1px solid transparent;border-radius:14px;padding:0 0 4px;cursor:pointer;transition:.15s;text-align:left}
  .disccard:hover .plate{box-shadow:inset 0 0 0 1px var(--hairline-soft), 0 8px 18px -8px rgba(0,0,0,.3)}
  .disccard .plate{margin:0 0 9px}
  .disccard .dn{font-weight:600;font-size:14px;line-height:1.25;color:var(--ink);padding:0 2px}
  .disccard .dr{font-size:12px;color:var(--muted);font-weight:400;margin-top:2px;padding:0 2px}
  .disccount{font-size:12.5px;color:var(--muted);font-weight:600;margin:0 0 14px}
  .discempty{text-align:center;color:var(--muted);padding:40px 0;font-weight:600}
  /* Leer-/Randzustände (R3) */
  .estate{text-align:center;padding:40px 22px 30px;max-width:440px;margin:10px auto 0}
  .estate .ico{font-size:46px;line-height:1;margin-bottom:14px}
  .estate h2{font-family:var(--sans);font-weight:700;font-size:22px;letter-spacing:-.01em;color:var(--ink);margin:0 0 8px}
  .estate p{color:var(--ink-soft);font-size:15px;line-height:1.55;margin:0 0 20px}
  .estate .btn{margin:0 auto}
  .celebrate{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#fff8e6,#eaf6ea);
    border:1px solid #ffe2a8;border-radius:14px;padding:16px 18px;margin:0 0 20px}
  .celebrate .ico{font-size:30px;line-height:1;flex:0 0 auto}
  .celebrate h2{font-family:var(--sans);font-weight:700;font-size:17px;color:var(--ink);margin:0 0 2px}
  .celebrate p{color:var(--ink-soft);font-size:13.5px;line-height:1.5;margin:0}
  .caughtup{display:flex;align-items:center;gap:12px;background:var(--surface-soft);
    border:1px solid var(--hairline-soft);border-radius:12px;padding:13px 16px;margin:0 0 4px}
  .caughtup .ico{font-size:20px;flex:0 0 auto}
  .caughtup b{color:var(--ink);font-weight:700;font-size:14.5px}
  .caughtup span.d{display:block;color:var(--muted);font-size:13px;line-height:1.45;margin-top:1px}
  /* Vollbild-Sieges-Feier bei 195/195 (Backlog) */
  .victory-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
    background:rgba(20,20,25,.55);animation:vfade .4s ease}
  .victory-overlay canvas.confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
  .victory-card{position:relative;z-index:2;background:var(--canvas);border-radius:18px;padding:30px 30px 26px;
    max-width:380px;width:calc(100% - 40px);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35);
    animation:vpop .5s cubic-bezier(.2,.8,.2,1)}
  .victory-card h2{font-family:var(--sans);font-weight:800;font-size:26px;letter-spacing:-.02em;color:var(--ink);margin:2px 0 8px}
  .victory-card p{color:var(--ink-soft);font-size:15px;line-height:1.55;margin:0 0 22px}
  .flagpole{position:relative;height:96px;width:120px;margin:0 auto 6px}
  .flagpole .pole{position:absolute;left:24px;bottom:0;width:4px;height:96px;background:linear-gradient(#cfcfcf,#8a8a8a);border-radius:2px}
  .flagpole .banner{position:absolute;left:28px;top:6px;width:74px;height:48px;background:var(--rausch);color:#fff;
    font-weight:800;font-size:22px;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;
    border-radius:0 5px 5px 0;box-shadow:0 5px 12px rgba(255,56,92,.35);transform-origin:left center;animation:hoist .9s cubic-bezier(.2,.8,.2,1)}
  @keyframes vfade{from{opacity:0}to{opacity:1}}
  @keyframes vpop{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:none}}
  @keyframes hoist{0%{opacity:0;transform:translateY(58px)}60%{opacity:1}100%{opacity:1;transform:translateY(0)}}
  .victory-overlay.reduce{animation:none}
  .victory-overlay.reduce .victory-card,.victory-overlay.reduce .banner{animation:none}
  .editwrap{max-width:520px;margin:0 auto 22px;text-align:left}
  .editwrap label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:14px 0 5px}
  .editwrap textarea{width:100%;box-sizing:border-box;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--ink);background:var(--canvas);border:1px solid var(--border-strong);border-radius:8px;padding:10px 12px;resize:vertical;min-height:64px}
  .editwrap textarea:focus{outline:none;border:2px solid var(--ink)}
  .editrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;align-items:center}
  .edithint{font-size:11.5px;color:var(--muted);margin:10px 0 0;line-height:1.5}
  .savedmsg{font-size:12.5px;color:var(--green);font-weight:700}
  .editbadge{display:inline-block;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--green);border:1px solid var(--green);border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:middle}
  .detailnav{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:520px;margin:0 auto}
  .navarrow{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--border-strong);background:var(--canvas);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:center;box-shadow:rgba(0,0,0,.04) 0 1px 2px 0}
  .navarrow:hover:not(:disabled){border-color:var(--ink);box-shadow:var(--airbnb-shadow)}
  .navarrow:disabled{opacity:.3;cursor:default}
  .navpos{font-size:12px;color:var(--muted);font-weight:600}
  .prompt{text-align:center;font-size:14px;color:var(--ink-soft);margin:0 0 16px;font-weight:600;letter-spacing:.02em}

  .options{display:grid;gap:10px;max-width:460px;margin:0 auto}
  .options.two{grid-template-columns:1fr 1fr}
  .opt{font-family:var(--sans);font-weight:600;font-size:15.5px;text-align:left;background:var(--canvas);color:var(--ink);border:1px solid var(--border-strong);border-radius:12px;padding:15px 16px;cursor:pointer;transition:.12s;display:flex;align-items:center;gap:11px}
  .opt:hover:not(:disabled){border-color:var(--ink);background:var(--surface-soft)}
  .opt:disabled{cursor:default}
  .opt .key{font-family:var(--sans);font-weight:700;font-size:13px;width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:6px;background:var(--surface-soft);color:var(--muted)}
  .opt.correct{background:var(--green-soft);border-color:var(--green);color:var(--green)}
  .opt.correct .key{background:var(--green);color:#fff}
  .opt.wrong{background:var(--red-soft);border-color:var(--red);color:var(--red)}
  .opt.wrong .key{background:var(--red);color:#fff}

  /* pick-flag grid (Name → Flagge) */
  .pickgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:420px;margin:0 auto}
  .pick{position:relative;background:var(--canvas);border:1px solid var(--border-strong);border-radius:14px;padding:14px;cursor:pointer;transition:.12s}
  .pick:hover:not(:disabled){border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--airbnb-shadow)}
  .pick:disabled{cursor:default}
  .pick .plate{width:100%}
  .pick .pkey{position:absolute;top:8px;left:8px;z-index:2;font-family:var(--sans);font-weight:700;font-size:12px;width:20px;height:20px;display:grid;place-items:center;border-radius:6px;background:rgba(0,0,0,.6);color:#fff}
  .pick.correct{border-color:var(--green);background:var(--green-soft)}
  .pick.wrong{border-color:var(--red);background:var(--red-soft)}

  .inputwrap{max-width:460px;margin:0 auto}
  .inputwrap input{width:100%;font-family:var(--sans);font-weight:500;font-size:16px;color:var(--ink);background:var(--canvas);border:1px solid var(--border-strong);border-radius:8px;padding:15px 16px;outline:none;transition:.15s}
  .inputwrap input:focus{border:2px solid var(--ink);padding:14px 15px}
  .inputwrap input.correct{border-color:var(--green);background:var(--green-soft)}
  .inputwrap input.wrong{border-color:var(--red);background:var(--red-soft)}
  .inputrow{display:flex;gap:10px;margin-top:10px}
  .inputrow .btn{flex:1;justify-content:center}
  .acwrap{position:relative}
  .aclist{list-style:none;margin:8px 0 0;padding:6px;max-height:230px;overflow-y:auto;background:var(--canvas);border:1px solid var(--hairline);border-radius:14px;box-shadow:rgba(0,0,0,.04) 0 2px 6px 0, rgba(0,0,0,.1) 0 6px 16px 0}
  .aclist li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer;font-weight:600;font-size:15px;color:var(--ink)}
  .aclist li.sel,.aclist li:hover{background:var(--hairline-soft)}
  .acempty{padding:10px;color:var(--muted);font-size:13.5px;text-align:center}

  .feedback{text-align:center;min-height:26px;margin:16px auto 0;max-width:460px;font-weight:600;font-size:15px}
  .feedback .ok{color:var(--green)}
  .feedback .no{color:var(--red)}
  .feedback .truth{font-family:var(--sans);font-weight:600}
  .skipline{text-align:center;margin-top:14px}
  .skipline button{background:none;border:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  .skipline button:hover{color:var(--ink-soft)}

  .reveal{animation:rise .35s ease both}
  @keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  /* progress grid */
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:18px}
  .cell{background:var(--canvas);border:1px solid var(--hairline);border-radius:12px;padding:9px;text-align:center}
  .cell .nm{font-size:11.5px;font-weight:600;color:var(--ink-soft);margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cell .dots{display:flex;gap:3px;justify-content:center;margin-top:5px}
  .cell .dots i{width:7px;height:7px;border-radius:50%;background:var(--surface-soft);border:1px solid var(--hairline)}
  .cell .dots i.on{background:var(--green);border-color:var(--green)}

  .summary{text-align:center;padding:30px 20px}
  .summary .big{font-family:var(--sans);font-weight:700;font-size:64px;line-height:1;letter-spacing:-1px;color:var(--ink)}
  .summary .sub{color:var(--ink-soft);margin:10px 0 26px;font-size:16px}

  /* confusable comparison */
  .cmp-section{margin-top:30px;text-align:left}
  .compare{margin-top:14px;text-align:left;padding:20px 22px}
  .cmp-title{font-family:var(--sans);font-weight:600;font-size:19px;margin:0 0 14px}
  .cmp-flags{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-bottom:16px}
  .cmp-item{flex:1 1 88px;min-width:74px;max-width:148px}
  .cmp-item .nm{font-family:var(--sans);font-weight:600;font-size:13.5px;text-align:center;margin-top:7px;color:var(--ink)}
  .cmp-diff{font-size:14.5px;line-height:1.62;color:var(--ink);margin:0 0 13px}
  .cmp-note{font-family:var(--sans);font-style:normal;font-size:13.5px;line-height:1.6;color:var(--body);margin:0;padding-left:15px;border-left:2px solid var(--rausch)}
  .cmp-note .lab{font-style:normal;font-family:var(--sans);font-weight:700;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--rausch);display:block;margin-bottom:4px}

  .footnote{color:var(--muted);font-size:12.5px;line-height:1.5;margin-top:26px;text-align:center}

  /* launcher */
  .modegrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
  .modegrid .wide{grid-column:1 / -1}
  .mode{position:relative;text-align:left;background:var(--canvas);border:1px solid var(--hairline);border-radius:14px;padding:18px 18px 16px;cursor:pointer;transition:.14s;overflow:hidden;font-family:var(--sans)}
  .mode:hover{border-color:var(--ink);box-shadow:var(--airbnb-shadow)}
  .mode .mtitle{font-family:var(--sans);font-weight:600;font-size:19px;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:9px;color:var(--ink)}
  .mode .mdesc{font-size:13px;color:var(--body);line-height:1.5;margin:6px 0 0;max-width:44ch}
  .mode .mmeta{font-size:11.5px;font-weight:600;letter-spacing:0;color:var(--muted);margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .mode .pill{display:inline-flex;align-items:center;gap:5px;background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:9999px;padding:3px 9px}
  .mode .pill b{color:var(--rausch);font-weight:700}
  .mode .pill.mast b{color:var(--green)}
  .mode .miniflags{position:absolute;top:14px;right:14px;display:flex;gap:3px}
  .mode .miniflags .plate{width:30px;aspect-ratio:4/3;border-radius:4px;box-shadow:inset 0 0 0 1px var(--hairline-soft)}
  .mode.world{background:var(--canvas);border-color:var(--ink)}
  .mode.world .mtitle{color:var(--ink)}
  .mode.world .mdesc{color:var(--body)}
  .mode.world .mmeta{color:var(--muted)}
  .mode.world .pill{background:var(--surface-soft);border-color:var(--hairline-soft)}
  .mode.world .pill b{color:var(--rausch)}
  .mode.hard{background:var(--canvas);border-color:var(--hairline)}
  .mode.hard .mtitle{color:var(--ink)}
  .mode.type{background:var(--canvas);border-color:var(--hairline)}
  .mode.type .mtitle{color:var(--ink)}
  .mode .flame{font-size:17px}
  .mode .arrow{position:absolute;bottom:15px;right:16px;font-size:18px;color:var(--muted);transition:.14s}
  .mode:hover .arrow{color:var(--rausch);transform:translateX(2px)}
  .mode.world .arrow{color:var(--muted)}
  .seclabel{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}
  .burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border:1px solid var(--hairline);border-radius:10px;background:transparent;cursor:pointer;padding:0 10px}
  .burger span{display:block;height:2px;background:var(--ink);border-radius:2px;transition:.2s}
  .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  @media(max-width:560px){ .modegrid{grid-template-columns:1fr} .mode .miniflags{display:none} }
  .row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
  .center{display:flex;justify-content:center;margin-top:24px}
  .hidden{display:none !important}
  .danger{color:var(--red);border-color:var(--red)}
  @media(max-width:560px){
    .stats{grid-template-columns:repeat(3,1fr)}
    .wrap{padding-top:16px}
    header.top{position:relative;flex-wrap:wrap}
    .burger{display:flex}
    nav.tabs{display:none;position:absolute;top:100%;right:0;left:0;flex-direction:column;gap:2px;background:var(--canvas);border:1px solid var(--hairline);border-radius:14px;padding:8px;margin-top:10px;box-shadow:rgba(0,0,0,.04) 0 2px 6px 0, rgba(0,0,0,.12) 0 8px 24px 0;z-index:50}
    nav.tabs.open{display:flex}
    nav.tabs button{padding:13px 14px;font-size:15px;text-align:left;border-radius:8px}
    nav.tabs button.active{background:var(--surface-soft)}
    nav.tabs button.active::after{display:none}
  }
  /* Rundenende-Motivation (MOTIVATION-KONZEPT A–E): Delta-Chips, Meilenstein,
     Nächster-Schritt, Teaser, Auszeichnungen — bewusst ruhig gehalten */
  .delta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:16px auto 0;max-width:520px}
  .dchip{display:inline-flex;align-items:center;gap:7px;background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:9999px;padding:4px 11px 4px 5px;font-size:12.5px;font-weight:600;color:var(--ink)}
  .dchip .plate{width:26px;aspect-ratio:4/3;border-radius:3px;flex:0 0 auto;box-shadow:inset 0 0 0 1px var(--hairline-soft)}
  .dchip .dl{color:var(--muted);font-weight:700;font-size:11px;white-space:nowrap}
  .dchip.good .dl,.dchip.fix .dl{color:var(--green)}
  .dchip.near .dl{color:var(--rausch)}
  .deltamore{font-size:12px;color:var(--muted);font-weight:600;text-align:center;margin:8px 0 0}
  .milestone{max-width:380px;margin:18px auto 0;text-align:left}
  .milestone .mlab{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px}
  .nextstep{text-align:center;font-size:14.5px;color:var(--ink);font-weight:600;margin:24px 0 0}
  .teaser{text-align:center;font-size:13.5px;color:var(--ink-soft);margin:10px auto 0;max-width:56ch}
  .achunlock{display:flex;align-items:center;gap:13px;max-width:420px;margin:18px auto 0;background:linear-gradient(135deg,#fff8e6,#f7f7f7);border:1px solid #ffe2a8;border-radius:14px;padding:13px 16px;text-align:left}
  .achunlock .ai{font-size:26px;line-height:1;flex:0 0 auto}
  .achunlock b{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .achunlock .an{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35}
  .achunlock .amore{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:600;white-space:nowrap}
  .achgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:6px}
  .ach{background:var(--canvas);border:1px solid var(--hairline);border-radius:12px;padding:12px 12px 11px;text-align:center;opacity:.42}
  .ach.got{opacity:1;border-color:var(--gold);background:linear-gradient(180deg,#fffdf5,var(--canvas))}
  .ach .ai{display:block;font-size:23px;margin-bottom:5px}
  .ach .an{display:block;font-size:12.5px;font-weight:700;color:var(--ink)}
  .ach .ad{display:block;font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.35}

  /* Sanfter Seitenwechsel (View Transitions API) — kein Flackern beim Wechsel */
  @media (prefers-reduced-motion: no-preference){
    ::view-transition-old(root),
    ::view-transition-new(root){ animation-duration: 180ms; animation-timing-function: ease; }
    ::view-transition-group(fwf-flag){ animation-duration: 240ms; animation-timing-function: cubic-bezier(.2,.7,.2,1); }
  }
