/* make the presentation take up the whole screen and prevent automatic scaling */
* { box-sizing: border-box; }

html, body, .reveal, .reveal .slides, .reveal .slides section {
  margin: 0 !important;
  padding: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  overflow: visible !important;
  top: 0 !important;
  left: 0 !important;
  /*also make sure the font size looks correct*/
  font-size: 2vw !important;
}

/*prevent automatic capitalisation of headers*/
.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 {
  text-transform: none !important;
}

/*absolute elements for positioning*/
.absolute {
  position: absolute !important;
  z-index: 999;
}

/*prevent line breaks in text with nowrap*/
.nowrap {
  white-space: nowrap !important;
}

/*positions for slide elements at the four corners of the screen */
.top-left     { top: 1%; left: 2%; text-align: left; }
.top-right    { top: 1%; right: 2%; text-align: right; }
.bottom-left  { bottom: 1%; left: 2%; text-align: left; }
.bottom-right { bottom: 1%; right: 2%; text-align: right; }

/* center positioning*/
.center-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}

/* row for positioning elements in a row */
.row {
  position: absolute !important;
  display: flex !important;
  align-items: flex-end; /* This keeps images lined up at the bottom */
}

/* column for positioning elements in a column */
.col {
  position: absolute !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start; /* Items align to the left of the column */
  display: block !important;
  z-index: 999;
}

.reveal iframe.absolute { max-width: none !important; }