/* Content styles of the Wrocław lesson (figures, coat of arms, timeline, people). The page frame is the shared player. */
:root {
  --bg: #fff8ec;
  --card: #ffffff;
  --ink: #2b2540;
  --muted: #7a7490;
  --accent: #ff7a59;
  --accent-ink: #ffffff;
  --blue: #3b82f6;
  --green: #22a06b;
  --yellow: #ffd166;
  --purple: #8b5cf6;
  --line: #eadfcb;
  --done: var(--yellow);
  --topic-bg: var(--purple);
}
.card {
  background: var(--card);
  border: 3px solid var(--line);
  border-radius: 28px;
  width: min(1060px, 100%);
  padding: 20px 32px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.card h1 {
  font-size: clamp(24px, 3.6vw, 40px);
  margin: 0 0 12px;
  line-height: 1.15;
}
.body {
  flex: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-size: clamp(18px, 2.4vw, 28px);
  line-height: 1.4;
}
.body p { margin: 0; }

/* helpers available to slide content */
.big { font-size: 1.8em; font-weight: 800; letter-spacing: .02em; }
.huge { font-size: 2.8em; font-weight: 800; line-height: 1.1; }
.hl { background: var(--yellow); border-radius: 10px; padding: 0 .25em; }
.c-accent { color: var(--accent); }
.c-blue { color: var(--blue); }
.c-green { color: var(--green); }
.c-purple { color: var(--purple); }
.small { font-size: .78em; color: var(--muted); }
.row { display: flex; gap: 16px; align-items: stretch; justify-content: center; flex-wrap: wrap; width: 100%; }
.box {
  border: 3px solid var(--line); border-radius: 18px; padding: 12px 18px; background: #fffdf7;
  flex: 1 1 200px; max-width: 420px;
}
.box .ico { font-size: 1.8em; line-height: 1.1; }
.box b.name { display: block; font-size: 1.1em; }
.tip {
  border: 3px dashed var(--green); border-radius: 18px; padding: 8px 18px; color: var(--green); font-weight: 700;
}

/* which textbook question this slide answers */
.q {
  display: inline-block; align-self: center;
  background: var(--purple); color: #fff; font-weight: 800;
  font-size: .68em; letter-spacing: .03em;
  border-radius: 999px; padding: 3px 14px;
}
/* a ready sentence for the notebook */
.ans {
  border: 3px solid var(--green); background: #f0fbf5; border-radius: 18px;
  padding: 10px 18px; text-align: left; max-width: 860px;
}
.ans::before { content: "✏️ Odpowiedź: "; font-weight: 800; color: var(--green); }

.split { display: flex; gap: 24px; align-items: center; justify-content: center; width: 100%; }
.split > .txt { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.fig { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 0 1 auto; min-width: 0; }
.fig img {
  display: block; max-width: 100%; max-height: min(46vh, 420px); width: auto; height: auto;
  border-radius: 18px; border: 3px solid var(--line);
}
.split > .fig { max-width: 55%; }
.fig.plain img { border: 0; border-radius: 0; }
.fig figcaption { font-size: 12px; color: var(--muted); }

ul.facts, ol.facts {
  list-style: none; margin: 0; padding: 0; text-align: left;
  display: flex; flex-direction: column; gap: .55em;
}
.facts li { display: flex; gap: .6em; align-items: flex-start; }
.facts li > i { font-style: normal; flex: none; width: 1.5em; text-align: center; }
.facts .num {
  flex: none; width: 1.55em; height: 1.55em; border-radius: 50%;
  background: var(--accent); color: #fff; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; font-size: .9em;
}

/* coat of arms with numbered fields */
.herb { position: relative; display: inline-block; line-height: 0; }
.herb img { max-height: min(46vh, 400px); max-width: 100%; width: auto; height: auto; }
.herb .num {
  position: absolute; transform: translate(-50%, -50%);
  width: 1.7em; height: 1.7em; border-radius: 50%;
  background: var(--accent); color: #fff; font-weight: 800; font-size: .95em; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.25);
}

/* timeline */
.timeline { display: flex; align-items: stretch; justify-content: center; gap: 6px; width: 100%; flex-wrap: wrap; }
.timeline .t {
  flex: 1 1 120px; max-width: 190px; border-radius: 16px; padding: 10px 8px;
  border: 3px solid var(--tc, var(--line)); background: color-mix(in srgb, var(--tc, var(--line)) 12%, #fff);
  display: flex; flex-direction: column; gap: 2px; justify-content: center;
}
.timeline .t .flag { font-size: 1.6em; line-height: 1.1; }
.timeline .t b { font-size: 1em; }
.timeline .t span { font-size: .72em; color: var(--muted); font-weight: 700; }
.timeline .arrow { align-self: center; color: var(--muted); font-weight: 800; }

/* people */
.people { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; width: 100%; }
.person {
  border: 3px solid var(--line); border-radius: 18px; background: #fffdf7; padding: 12px;
  display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: .82em; line-height: 1.3;
}
.person img {
  width: clamp(70px, min(13vw, 16vh), 150px); aspect-ratio: 3 / 4; object-fit: cover; object-position: top;
  border-radius: 14px; border: 3px solid var(--line);
}
.person > div { display: flex; flex-direction: column; gap: 2px; }
.person b { font-size: 1.2em; }
.person .yrs { color: var(--muted); font-weight: 700; font-size: .85em; }

.chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.chip { background: #fff3d1; border-radius: 999px; padding: 4px 16px; font-weight: 700; }

.steps { text-align: left; margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: .6em; }
.steps li::marker { font-weight: 800; color: var(--accent); }

.cheat { text-align: left; width: 100%; display: flex; flex-direction: column; gap: 8px; font-size: .8em; line-height: 1.35; }
.cheat > div { border-left: 6px solid var(--green); background: #f0fbf5; border-radius: 0 14px 14px 0; padding: 6px 14px; }
.cheat > div > b:first-child { color: var(--purple); }

.credits { text-align: left; font-size: 14px; line-height: 1.5; color: var(--muted); columns: 2; column-gap: 32px; width: 100%; }
.credits p { margin: 0 0 6px; break-inside: avoid; }

.caption {
  width: min(1060px, 100%);
  margin: 10px auto 0;
  padding: 0 24px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.4;
  text-align: center;
  min-height: 1.4em;
}

@media (max-width: 700px) {
  .topic { display: none; }
  header { padding: 10px 12px; gap: 8px; }
  .dot { width: 8px; height: 8px; }
  .dots { gap: 3px; }
  main { padding: 0 8px; }
  .card { padding: 14px 12px; border-radius: 20px; }
  .split { flex-direction: column; gap: 12px; }
  .split > .txt { flex: none; width: 100%; }
  .split > .fig { max-width: 100%; }
  .fig img { max-height: 30vh; }
  .herb img { max-height: 36vh; }
  .people { grid-template-columns: 1fr; gap: 10px; }
  .person { flex-direction: row; text-align: left; align-items: flex-start; gap: 12px; }
  .person img { width: 84px; }
  .person > div { display: flex; flex-direction: column; gap: 2px; }
  .timeline .arrow { display: none; }
  .credits { columns: 1; }
  footer { gap: 8px; padding: 12px 8px 14px; }
  button.nav { font-size: 16px; padding: 12px 14px; }
}

.start-emoji { font-size: 90px; }
