/* Clean Reveal.js course style. */

.reveal {
  --course-accent: #0f766e;
  --course-accent-rgb: 15 118 110;
  font-size: 39px;
}

.reveal strong {
  color: var(--course-accent);
}

.reveal .slides img {
  filter: drop-shadow(0 0.18em 0.28em rgb(15 23 42 / 24%));
}

/* A layered stack is one visual; shadowing each layer creates dark duplicates. */
.reveal .slides .r-stack img {
  filter: none;
}

.reveal :is(.marker, mark) {
  padding: 0 0.08em;
  color: var(--course-accent);
  font-style: normal;
  font-weight: 850;
  background: linear-gradient(
    transparent 44%,
    rgb(var(--course-accent-rgb) / 24%) 44%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.reveal h1,
.reveal h2,
.reveal h3 {
  text-transform: none;
}

.reveal .title-slide,
.reveal section.section-title {
  text-align: center;
}

.reveal .title-slide h1,
.reveal section.section-title h1 {
  font-size: 2.35em;
}

.reveal section.slide.level2.section-title h2 {
  align-self: center;
  margin: 0;
  font-size: 2.35em;
  text-align: center;
}

.reveal section.section-title .section-subtitle {
  margin: 0.65em 0 0;
  font-size: 0.92em;
  line-height: 1.22;
  text-align: center;
}

.reveal section.section-title .section-subtitle p {
  margin: 0.1em 0;
}

.reveal section.section-title :is(.section-aside, .section-reference) {
  display: block;
  margin-top: 0.3em;
  color: #52616e;
  font-size: 0.72em;
  font-style: italic;
}

.reveal section:not(.title-slide):not(.section-title) {
  text-align: left;
}

/* Keep regular slide headings at the top and center only their body content. */
@media screen {
  .reveal .slides section.slide.level2 {
    height: 100%;
  }

  .reveal .slides section.slide.level2.present {
    display: grid !important;
    grid-template-rows: max-content minmax(0, 1fr);
  }

  .reveal .slides section.slide.level2.section-title.present {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .reveal section.slide.level2.section-title > .slide-body {
    display: none;
  }

  .reveal section.slide.level2.section-title.with-subtitle > .slide-body {
    display: block;
    width: 100%;
    margin-top: 0.65em;
  }

  .reveal section.slide.level2 > h2:first-child {
    align-self: start;
    margin-top: 0;
  }

  .reveal section.slide.level2.section-title > h2:first-child {
    align-self: center;
    margin: 0;
  }

  .reveal section.slide.level2 > .slide-body {
    align-self: center;
    width: 100%;
    min-width: 0;
    max-height: 100%;
  }

  .reveal section.slide.level2.top-body > .slide-body {
    align-self: start;
  }
}

.reveal p,
.reveal li {
  line-height: 1.28;
}

.reveal .callout {
  font-size: 0.9em;
  background: #ffffff;
  border-radius: 0.45rem;
  box-shadow: 0 0.14rem 0.42rem rgb(15 23 42 / 14%);
}

.reveal .callout.callout-style-default > .callout-header,
.reveal .callout.callout-style-default > .callout-body,
.reveal .callout .callout-header,
.reveal .callout .callout-body-container {
  background: #ffffff;
}

.reveal div.callout.callout-style-default div.callout-title {
  opacity: 1;
}

.reveal .columns {
  gap: 1.1em;
}
