/* Layout: Schülerausweis als feste Karte links, Visual-Novel-Szene rechts; darunter Album und Spickzettel. Karopapier als Grund. */
:root{
  --bg:#e8ecf4; --paper:#ffffff; --soft:#f2f4f9; --ink:#18203d; --muted:#596283; --line:#cbd2e3;
  --grid:rgba(24,32,61,.055);
  --accent:#d3335a; --accent-ink:#ffffff; --accent-soft:#fbe3e9;
  --stage:#6556b3;
  --good:#1f8c5b; --mid:#c38a12; --bad:#cc3747;
  --f-display:"Dela Gothic One","Arial Black",system-ui,sans-serif;
  --f-body:"Zen Kaku Gothic New",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#10142a; --paper:#191e3a; --soft:#141936; --ink:#e7eaf6; --muted:#9ba3c5; --line:#2c3459;
  --grid:rgba(231,234,246,.04);
  --accent:#ff6787; --accent-ink:#1d0a12; --accent-soft:#3a1c2e;
  --stage:#ab9ff2; --good:#4cc68d; --mid:#e8b648; --bad:#ff6b7b; color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#10142a; --paper:#191e3a; --soft:#141936; --ink:#e7eaf6; --muted:#9ba3c5; --line:#2c3459;
  --grid:rgba(231,234,246,.04);
  --accent:#ff6787; --accent-ink:#1d0a12; --accent-soft:#3a1c2e;
  --stage:#ab9ff2; --good:#4cc68d; --mid:#e8b648; --bad:#ff6b7b; color-scheme:dark;
}
*{box-sizing:border-box}
body{
  background-color:var(--bg); color:var(--ink); font-family:var(--f-body); font-size:15px; line-height:1.6;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:22px 22px;
}
.wrap{max-width:1100px;margin:0 auto;padding-block:20px 48px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  display:flex;flex-direction:column;gap:20px}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Kopf */
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px}
.brand{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.logo{font-family:var(--f-display);font-size:clamp(22px,4vw,30px);letter-spacing:.01em;line-height:1.1}
.logo b{color:var(--accent);font-weight:400}
.tag{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 9px;background:var(--paper)}
.days{display:flex;gap:6px;flex-wrap:wrap}
.day{display:flex;flex-direction:column;align-items:flex-start;gap:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px 12px;min-width:84px;text-align:left}
.day .d-n{font-weight:700;font-size:14px}
.day .d-s{font-family:var(--f-mono);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.day.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.lede{margin:0;max-width:68ch;color:var(--muted)}

/* Spielfläche */
.game{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;align-items:start}

/* Schülerausweis */
.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 1px 0 var(--line),0 10px 30px -18px rgba(10,15,40,.35)}
.band{display:flex;justify-content:space-between;align-items:center;background:var(--accent);color:var(--accent-ink);padding:7px 14px}
.band .jp{font-family:var(--f-display);font-size:15px;letter-spacing:.1em}
.band .lb{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}
.id-main{padding:14px;display:flex;flex-direction:column;gap:12px}
.id-top{display:flex;flex-direction:column;gap:10px}
.portrait{border-radius:10px;overflow:hidden;border:1px solid var(--line);line-height:0;position:relative}
.portrait svg{width:100%;height:auto;display:block}
.portrait .ph{position:absolute;left:6px;bottom:6px;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.45);color:#fff;padding:2px 6px;border-radius:4px;line-height:1.5}
.who{display:flex;flex-direction:column;gap:2px;min-width:0}
.name{font-family:var(--f-display);font-size:22px;line-height:1.2;text-wrap:balance}
.meta{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.profile{margin:4px 0 0;font-size:14px}
.row-h{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pips{display:flex;gap:6px;margin-top:4px}
.pip{width:22px;height:22px;border-radius:5px;border:1.5px dashed var(--line);background:transparent}
.pip.now{border:1.5px solid var(--accent)}
.pip.g{background:var(--good);border:0}.pip.y{background:var(--mid);border:0}.pip.r{background:var(--bad);border:0}

.lock{border-top:1px dashed var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.lk-h{font-weight:700;font-size:14px}
.lk-s{margin:0;font-size:13px;color:var(--muted)}
.lk-s b{color:var(--ink);font-variant-numeric:tabular-nums}
.lk-v{font-family:var(--f-display);font-size:20px;color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{background:var(--soft);border:1px solid var(--line);border-radius:999px;padding:3px 11px;font-size:13px}
.chip:hover{border-color:var(--accent)}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn{background:var(--ink);color:var(--bg);border:0;border-radius:9px;padding:9px 16px;font-weight:700;font-size:14px;align-self:flex-start}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn.big{padding:12px 22px;font-size:15px}
.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line);font-weight:500}

/* Szene */
.scene{background:var(--paper);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.scene-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--soft)}
.scene-head .place{font-size:13px;color:var(--muted)}
.scene-head .place b{color:var(--ink);font-weight:700}
.scene-head .turn{font-family:var(--f-mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.log{display:flex;flex-direction:column;gap:10px;padding:16px;max-height:420px;overflow-y:auto;scroll-behavior:smooth}
.line{max-width:88%;display:flex;flex-direction:column;gap:2px;animation:in .28s ease-out both}
.line .sp{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.line .tx{background:var(--paper);border:1px solid var(--line);border-radius:4px 12px 12px 12px;padding:8px 12px;font-size:15px}
.line.y{align-self:flex-end;align-items:flex-end}
.line.y .sp{color:var(--muted)}
.line.y .tx{background:var(--soft);border-radius:12px 4px 12px 12px}
.dir{color:var(--stage);font-style:italic}
@keyframes in{from{opacity:.0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.line{animation:none}.log{scroll-behavior:auto}}

.act{border-top:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:10px}
.act-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.act-h .t{font-weight:700}
.act-h .hint{font-family:var(--f-mono);font-size:11px;color:var(--muted)}
.opts{display:grid;gap:8px}
.opt{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:border-color .12s,transform .12s}
.opt:hover{border-color:var(--accent);transform:translateX(2px)}
.key{font-family:var(--f-mono);font-size:12px;width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--soft)}
.o-t{min-width:0}
.o-tag{display:inline-block;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--stage);border:1px solid var(--stage);border-radius:4px;padding:0 5px;margin-right:7px;vertical-align:2px}

/* Auflösung */
.reveal{display:flex;flex-direction:column;gap:14px}
.reveal h3,.truth h3{font-family:var(--f-display);font-weight:400;font-size:20px;margin:0;line-height:1.25}
.rv-b{display:flex;flex-direction:column;gap:8px}
.rv-t{font-weight:700}
.rv-t span{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}
.rv-l{margin:0}
.qs{display:grid;gap:6px}
.q{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:8px 11px;cursor:pointer}
.q input{margin-top:5px;accent-color:var(--accent)}
.q:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}

/* Ergebnis */
.result{display:flex;flex-direction:column;gap:18px}
.res-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 18px}
.res-score{font-family:var(--f-display);line-height:1;font-variant-numeric:tabular-nums}
.res-score .num{font-size:64px;color:var(--accent)}
.res-score .of{font-size:22px;color:var(--muted)}
.res-lbl{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);width:100%;order:-1}
.sq{font-size:22px;letter-spacing:2px;padding-bottom:6px}
.bars{display:grid;gap:8px}
.bar{display:grid;grid-template-columns:96px minmax(0,1fr) 64px;gap:10px;align-items:center;font-size:13px}
.bar .tr{height:8px;background:var(--soft);border:1px solid var(--line);border-radius:99px;overflow:hidden}
.bar .tr i{display:block;height:100%;background:var(--accent);border-radius:99px}
.bar .v{font-family:var(--f-mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.share{display:flex;flex-direction:column;gap:8px;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px}
.share-h,.st-h{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.st-h span{text-transform:none;letter-spacing:0;margin-left:6px;opacity:.85}
.share textarea{width:100%;resize:none;font-family:var(--f-mono);font-size:13.5px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:8px 10px;line-height:1.5}
.share .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.copymsg{font-size:13px;color:var(--good)}
.truth{display:flex;flex-direction:column;gap:8px}
.truth > p{margin:0;max-width:65ch}
.ql{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}
.ql li{display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px;align-items:start}
.ql p{margin:2px 0 0;font-size:13.5px;color:var(--muted)}
.qm{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;text-align:center;border-radius:4px;padding:2px 0;margin-top:3px}
.ql li.t .qm{background:var(--good);color:var(--paper)}
.ql li.f .qm{border:1px solid var(--line);color:var(--muted)}
.you{color:var(--accent);font-style:normal;font-size:12.5px;font-weight:500}
.stats{display:grid;gap:6px}
.st-row{display:grid;grid-template-columns:110px minmax(0,1fr) 44px;gap:10px;align-items:center;font-size:13px}
.st-bar{height:8px;background:var(--soft);border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.st-bar i{display:block;height:100%;background:var(--muted);opacity:.6}
.st-row.hit span:first-child{font-weight:700;color:var(--accent)}
.st-row.hit .st-bar i{background:var(--accent);opacity:1}
.st-v{font-family:var(--f-mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}

/* Album */
.sec-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sec-h h2{font-family:var(--f-display);font-weight:400;font-size:22px;margin:0}
.sec-h p{margin:0;color:var(--muted);font-size:13.5px}
.album{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:10px}
.alb{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.alb.miss{background:transparent;border-style:dashed}
.alb-p{line-height:0}
.alb-p svg{width:100%;height:auto;display:block;aspect-ratio:120/140;max-height:220px;object-fit:cover}
.alb-b{padding:10px 12px;display:flex;flex-direction:column;gap:1px}
.alb-d{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.alb-n{font-weight:700}
.alb-s{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Spickzettel */
.crib{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.crib summary{cursor:pointer;font-weight:700}
.crib summary span{font-weight:400;color:var(--muted);font-size:13px;margin-left:6px}
.crib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:12px}
.cr{border-top:2px solid var(--line);padding-top:8px;font-size:13.5px}
.cr b{font-family:var(--f-display);font-weight:400;font-size:16px;display:block}
.cr .ok{color:var(--good)} .cr .no{color:var(--bad)}
.cr p{margin:3px 0 0}
footer{font-size:12.5px;color:var(--muted)}

@media (max-width:800px){
  .game{grid-template-columns:minmax(0,1fr)}
  .id-top{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:start}
  .log{max-height:360px}
  .album{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
}
@media (max-width:480px){
  .album{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .bar{grid-template-columns:78px minmax(0,1fr) 54px}
  .st-row{grid-template-columns:92px minmax(0,1fr) 40px}
  .res-score .num{font-size:52px}
  .line{max-width:94%}
}

/* Basis für die eigenständige Seite */
html{color-scheme:light}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
.note{margin:0;color:var(--muted);font-size:13.5px}
.err{margin:0;color:var(--bad);font-size:14px;font-weight:500}

/* Archetyp-Erklärung */
.tip{position:fixed;z-index:50;max-width:min(260px,calc(100vw - 16px));background:var(--ink);color:var(--bg);border-radius:9px;padding:9px 12px;font-size:13px;line-height:1.45;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 24px -10px rgba(10,15,40,.5);pointer-events:none}
.tip b{font-family:var(--f-display);font-weight:400;font-size:15px}
.tip::after{content:"";position:absolute;left:var(--arrow,50%);top:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink)}
.tip.below::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--ink)}
.has-tip{cursor:help;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:3px}
.has-tip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
