/* Shared Reveal theme for CoTeacher Lederne */
:root {
  --bg: #f4f4f0;
  --surface: #ffffff;
  --surface-soft: #f8f8f4;
  --surface-tint: #edf3ff;
  --text: #1e1f1c;
  --muted: #5d6158;
  --muted-strong: #474b44;
  --border: #d8ddd3;
  --accent: #2C79BE;
  --accent-2: #6B84B5;
  --accent-soft: #e8f0fb;
  --success: #2e8b57;
  --warning: #c98217;
  --radius-xl: 28px;
  --radius-lg: 20px;
  --shadow: 0 14px 40px rgba(20,20,18,0.07);
  --shadow-soft: 0 10px 26px rgba(20,20,18,0.045);
}
html, body { background: var(--bg); }
body { margin: 0; }
.reveal {
  font-family: 'Inter', sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(44,121,190,0.08), transparent 24%),
    linear-gradient(180deg, #f8fafc 0%, #f4f4f0 100%);
}
.reveal .slides { text-align: left; }
.reveal .controls { color: var(--accent); }
.reveal .progress { color: var(--accent); height: 4px; }
.reveal .slide-number { color: #7b7d76 !important; font-size: 16px !important; }
.slide-shell { width: 1280px; height: 720px; padding: 30px; box-sizing: border-box; }
.frame {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, #fcfcfa 100%);
  border: 1px solid rgba(216,221,211,0.95);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  padding: 46px 50px;
}
h1, h2, h3, h4, p, ul { margin: 0; }
.reveal h1, .reveal h2, .reveal h3 {
  color: var(--text);
  letter-spacing: -0.045em;
  text-transform: none !important;
  font-family: 'Inter', sans-serif;
  margin: 0;
}
.reveal h1 {
  font-size: 38px !important;
  line-height: 1.04 !important;
  font-weight: 760 !important;
  max-width: 13ch;
  text-wrap: balance;
}
.reveal h2 {
  font-size: 32px !important;
  line-height: 1.08 !important;
  font-weight: 740 !important;
  max-width: 18ch;
  text-wrap: balance;
}
.reveal h3 {
  font-size: 22px !important;
  line-height: 1.18 !important;
  font-weight: 700 !important;
}
.reveal p, .reveal li {
  font-size: 17px;
  line-height: 1.58;
  color: var(--muted);
}
ul { padding-left: 22px; display: grid; gap: 10px; }
a { color: var(--accent); }
strong { color: var(--text); }
.kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 8px 13px;
  border-radius: 999px;
  background: linear-gradient(180deg, #edf4ff 0%, #e7f0fb 100%);
  color: var(--accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.rule {
  width: 84px;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent) 0%, #a5c2ff 100%);
}
.hero {
  display: grid;
  grid-template-columns: 0.96fr 1.04fr;
  gap: 22px;
  height: 100%;
  align-items: stretch;
}
.hero-copy, .hero-art { display: flex; flex-direction: column; }
.hero-copy {
  justify-content: center;
  gap: 24px;
  min-width: 0;
  padding: 8px 18px 8px 4px;
}
.hero-lead {
  display: grid;
  gap: 16px;
  max-width: 520px;
}
.hero-lead > p {
  font-size: 18px;
  line-height: 1.56;
  max-width: 34ch;
}
.hero-art {
  position: relative;
  border-radius: calc(var(--radius-lg) + 2px);
  border: 1px solid rgba(216,221,211,0.95);
  padding: 22px;
  background: linear-gradient(165deg, #eef3ea 0%, #fbfbf8 48%, #edf3ff 100%);
  justify-content: flex-start;
  gap: 14px;
  min-height: 0;
}
.hero-art::after {
  content: '';
  position: absolute;
  inset: auto 18px 16px 18px;
  height: 120px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.0) 0%, rgba(237,243,255,0.85) 100%);
  pointer-events: none;
}
.hero-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px;
  gap: 14px;
  align-items: stretch;
}
.mark {
  width: 96px;
  height: 96px;
  border-radius: 26px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: linear-gradient(135deg, var(--accent) 0%, #6aa0ff 100%);
  color: #fff;
  font-weight: 800;
  font-size: 42px;
  letter-spacing: -0.04em;
  box-shadow: 0 16px 34px rgba(47,111,237,0.22);
}
.note, .summary, .panel, .card, .step, .quote-box, .cta-box {
  background: rgba(255,255,255,0.94);
  border: 1px solid rgba(216,221,211,0.95);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.note, .summary, .panel, .quote-box, .cta-box { padding: 18px 18px 17px; }
.note strong, .summary strong, .panel strong, .cta-box strong {
  display:block;
  margin-bottom:8px;
  font-size:13px;
  font-weight: 800;
  letter-spacing: .02em;
  color:var(--muted-strong);
}
.summary {
  margin-top: 0;
  max-width: 420px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, #f8fafc 100%);
}
.badges {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.badge {
  padding: 7px 11px;
  border-radius:999px;
  border:1px solid rgba(216,221,211,0.98);
  background: #fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--muted);
}
.steps {
  display: grid;
  gap: 10px;
  margin-top: 2px;
}
.step {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: center;
  padding: 13px 14px;
}
.step::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 20px;
  background: linear-gradient(180deg, var(--accent) 0%, #9cc2ff 100%);
  opacity: 0.75;
}
.step span:last-child {
  font-size: 14px;
  line-height: 1.35;
  color: var(--muted-strong);
}
.num {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: linear-gradient(180deg, #20231f 0%, #32362f 100%);
  color: #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 13px;
  font-weight: 800;
}
.page { display:flex; flex-direction:column; gap:16px; height:100%; }
.page > p {
  font-size: 18px;
  line-height: 1.52;
  max-width: 60ch;
}
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.card {
  position:relative;
  min-height:236px;
  padding:32px 24px 24px;
  background:linear-gradient(180deg,#ffffff 0%,#fafaf7 100%);
}
.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 18px;
  right: 18px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--accent) 0%, #aac8ff 100%);
  opacity: 0.9;
}
.card h3 {
  max-width: 13ch;
}
.card p {
  margin-top:10px;
  font-size: 16px;
  line-height: 1.52;
}
.card-num {
  position:absolute;
  top:-14px;
  left:20px;
  width:34px;
  height:34px;
  border-radius:999px;
  background:var(--text);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:800;
}
.two-col { display:grid; grid-template-columns:1.02fr .98fr; gap:22px; }
.stack { display:grid; gap:14px; }
.panel p { font-size: 16px; line-height: 1.5; }
.quote-box {
  display:grid;
  gap:12px;
  background:linear-gradient(180deg,#fdfdfc 0%,#f4f7ff 100%);
}
.quote-mark { font-size:54px; line-height:1; color:var(--accent-2); }
.quote-text {
  font-size:24px;
  line-height:1.2;
  color:var(--text);
  max-width:19ch;
  text-wrap: balance;
}
.quote-meta { font-size:14px; color:var(--muted); }
.section-splash {
  height:100%;
  display:grid;
  place-items:center;
  text-align:center;
  background:radial-gradient(circle at top left,#edf4ff 0%,#fbfbf8 48%,#f3f5ef 100%);
  border-radius:var(--radius-lg);
  border:1px solid rgba(216,221,211,0.95);
}
.section-splash-inner { display:grid; gap:20px; justify-items:center; max-width: 760px; padding: 24px; }
.section-splash h1 { max-width:none; font-size:52px; }
.section-splash p { max-width:38ch; font-size: 19px; }
.footer-meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid #eceee9;
  font-size:12px;
  letter-spacing: .03em;
  color:#7a7d74;
}
.deck-home {
  min-height: 100vh;
  box-sizing: border-box;
  padding: 48px 24px 64px;
  font-family: 'Inter', sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(44,121,190,0.12), transparent 28%),
    linear-gradient(180deg, #f9fbff 0%, #f6f6f1 100%);
}
.deck-home .container { max-width: 1120px; margin: 0 auto; }
.deck-home .hero-band { background: rgba(255,255,255,0.86); border: 1px solid rgba(44,121,190,0.12); border-radius: 28px; padding: 40px; box-shadow: var(--shadow); }
.deck-home h1 { max-width: none; font-size: 54px; margin-bottom: 16px; }
.deck-home .lead { font-size: 21px; max-width: 44ch; color: var(--muted); }
.deck-home .actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:24px; }
.deck-home .button { display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:999px; border:1px solid transparent; background:var(--accent); color:#fff; text-decoration:none; font-weight:700; }
.deck-home .button.secondary { background:#fff; color:var(--accent); border-color: rgba(44,121,190,0.24); }
.deck-home .grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 28px; }
.deck-home .exercise-card { background: rgba(255,255,255,0.92); border: 1px solid rgba(31,31,28,0.08); border-radius: 22px; padding: 24px; box-shadow: var(--shadow); }
.deck-home .exercise-card h3 { margin: 0 0 10px; font-size: 24px; }
.deck-home .exercise-card p { margin: 6px 0; }
.deck-home .meta { font-size: 14px; color: var(--muted); margin-top: 12px; }
.deck-home .pill-row { display:flex; flex-wrap:wrap; gap:10px; margin: 14px 0 8px; }
.deck-home .pill { display:inline-flex; align-items:center; padding: 6px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent); font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.deck-home section + section { margin-top: 28px; }
.deck-home .section-head { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom: 12px; }
.deck-home .muted { color: var(--muted); }
@media (max-width: 720px) {
  .deck-home { padding: 28px 16px 48px; }
  .deck-home .hero-band { padding: 28px; }
  .deck-home h1 { font-size: 40px; }
}
