/* Custom tweaks layered on top of the reveal.js theme. */

/* The black theme uppercases headings by default; keep everything as written. */
.reveal h1, .reveal h2, .reveal h3,
.reveal h4, .reveal h5, .reveal h6 { text-transform: none; }

.reveal .big      { font-size: 1.6em; font-weight: 700; }
.reveal .huge     { font-size: 2.4em; font-weight: 800; line-height: 1.1; }
.reveal .small    { font-size: 0.7em; opacity: 0.7; }

/* Give code blocks a bit more room and a softer frame. */
.reveal pre code {
  max-height: 70vh;
  border-radius: 6px;
  padding: 0.8em 1em;
}

/* Tighten column tables used for side-by-side layouts. */
.reveal table.tableblock { border: none; }
.reveal table.tableblock td { border: none; vertical-align: top; }

/* Section artwork: the `==` slide carries the picture full-bleed, so the heading
   needs a scrim to stay readable. The small corner copy on the `===` slides is a
   plain reveal.js background and needs no styling. */
.reveal section.section-cover h2 {
  display: inline-block;
  padding: 0.2em 0.5em;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 8px;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
}

/* Same scrim for body text, for cover slides that carry more than a heading. */
.reveal section.section-cover .slide-content {
  display: inline-block;
  padding: 0.3em 0.8em;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 8px;
}

/* Slides carrying the right-edge section strip: keep the content clear of it. */
.reveal section.with-strip > h2,
.reveal section.with-strip > .slide-content { padding-right: 22%; }

/* Title slide sits on the heise screenshot. The photo starts at 39% of the
   image height, which is y~254 in the 960x700 slide grid, so the title is
   pushed down out of the white headline area and shrunk to stay inside the
   photo. The scrim keeps it readable over the bright sun. */
.reveal section.title h1,
.reveal section.title .byline {
  display: inline-block;
  padding: 0.15em 0.5em;
  background: rgba(0, 0, 0, 0.72);
  border-radius: 8px;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
  transform: translateY(150px);
}

.reveal section.title h1 {
  font-size: 1.5em;
  max-width: 80%;
}

.reveal section.title .byline { font-size: 0.8em; }

/* Print / PDF export (?print-pdf): invert the black theme to black-on-white. */
@media print {
  :root {
    --r-background-color: #fff;
    --r-main-color: #000;
    --r-heading-color: #000;
    --r-link-color: #1a6ec2;
    --r-link-color-hover: #1a6ec2;
  }

  html, body,
  .reveal, .reveal-viewport,
  .reveal .slides,
  .reveal .slides section,
  .reveal .backgrounds,
  .reveal .slide-background {
    background: #fff !important;
    color: #000 !important;
  }

  .reveal h1, .reveal h2, .reveal h3,
  .reveal h4, .reveal h5, .reveal h6 { color: #000 !important; }

  .reveal a { color: var(--r-link-color) !important; }

  /* .small dims text with opacity — keep it legible on paper. */
  .reveal .small { opacity: 1; color: #444 !important; }
}
