/**
 * Custom theme for Reveal.js presentations.
 *
 * Copyright (C) 2018 Chen Hui Jing, https://www.chenhuijing.com/
 */
@import url(../../lib/font/space/space.css);
@import url(../../lib/font/playbox/playbox.css);
/*********************************************
 * GLOBAL STYLES
 *********************************************/
body {
  background: #fff;
  background-color: #fff; }

.reveal {
  font-family: "Space Text", serif;
  font-size: 2.5em;
  font-weight: normal;
  color: #000; }

::selection {
  color: #000;
  background: #d5e3fa;
  text-shadow: none; }

::-moz-selection {
  color: #000;
  background: #d5e3fa;
  text-shadow: none; }

.reveal .slides > section,
.reveal .slides > section > section {
  line-height: 1.3;
  font-weight: inherit; }

/*********************************************
 * HEADERS
 *********************************************/
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  margin: 0 0 20px 0;
  color: #1d877a;
  font-family: "Space Text", serif;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: normal;
  text-transform: uppercase;
  text-shadow: none;
  word-wrap: break-word; }

.reveal h1 {
  font-size: 1.999em; }

.reveal h2 {
  font-size: 1.414em; }

.reveal h3 {
  font-size: 1em; }

.reveal h4 {
  font-size: 1em; }

.reveal h1 {
  text-shadow: none; }

/*********************************************
 * OTHER
 *********************************************/
.reveal p {
  margin: 20px 0;
  line-height: 1.3; }

/* Ensure certain elements are never larger than the slide itself */
.reveal img,
.reveal video,
.reveal iframe {
  max-width: 95%;
  max-height: 95%; }

.reveal strong,
.reveal b {
  font-weight: bold; }

.reveal em {
  font-style: italic; }

.reveal ol,
.reveal dl,
.reveal ul {
  display: inline-block;
  text-align: left;
  margin: 0 0 0 1em; }

.reveal ol {
  list-style-type: decimal; }

.reveal ul {
  list-style-type: disc; }

.reveal ul ul {
  list-style-type: square; }

.reveal ul ul ul {
  list-style-type: circle; }

.reveal ul ul,
.reveal ul ol,
.reveal ol ol,
.reveal ol ul {
  display: block;
  margin-left: 40px; }

.reveal dt {
  font-weight: bold; }

.reveal dd {
  margin-left: 40px; }

.reveal blockquote {
  display: block;
  position: relative;
  width: 70%;
  margin: 20px auto;
  padding: 5px;
  background: rgba(255, 255, 255, 0.05);
  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }

.reveal blockquote p:first-child,
.reveal blockquote p:last-child {
  display: inline-block; }

.reveal q {
  font-style: italic; }

.reveal pre {
  display: block;
  position: relative;
  border-radius: 0.25em;
  width: 100%;
  margin: 20px auto;
  text-align: left;
  font-size: 0.55em;
  font-family: monospace;
  line-height: 1.4em;
  word-wrap: break-word;
  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }

.reveal code {
  font-family: monospace;
  text-transform: none; }

.reveal pre code {
  display: block;
  padding: 5px;
  overflow: auto;
  word-wrap: normal;
  height: 100%;
  border-radius: 0.25em; }

.reveal table {
  margin: auto;
  border-collapse: collapse;
  border-spacing: 0; }

.reveal table th {
  font-weight: bold; }

.reveal table th,
.reveal table td {
  text-align: left;
  padding: 0.2em 0.5em 0.2em 0.5em;
  border-bottom: 1px solid; }

.reveal table th[align="center"],
.reveal table td[align="center"] {
  text-align: center; }

.reveal table th[align="right"],
.reveal table td[align="right"] {
  text-align: right; }

.reveal table tbody tr:last-child th,
.reveal table tbody tr:last-child td {
  border-bottom: none; }

.reveal sup {
  vertical-align: super; }

.reveal sub {
  vertical-align: sub; }

.reveal small {
  display: inline-block;
  font-size: 0.6em;
  line-height: 1.2em;
  vertical-align: top; }

.reveal small * {
  vertical-align: top; }

/*********************************************
 * LINKS
 *********************************************/
.reveal a {
  color: #7baaf0;
  text-decoration: none;
  -webkit-transition: color .15s ease;
  -moz-transition: color .15s ease;
  transition: color .15s ease; }

.reveal a:hover {
  color: #1f6fe6;
  text-shadow: none;
  border: none; }

.reveal .roll span:after {
  color: #fff;
  background: #367ee8; }

/*********************************************
 * IMAGES
 *********************************************/
.reveal section img {
  margin: 15px 0px;
  background: rgba(255, 255, 255, 0.12);
  border: 4px solid #000;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }

.reveal section img.plain {
  border: 0;
  box-shadow: none; }

.reveal a img {
  -webkit-transition: all .15s linear;
  -moz-transition: all .15s linear;
  transition: all .15s linear; }

.reveal a:hover img {
  background: rgba(255, 255, 255, 0.2);
  border-color: #7baaf0;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }

/*********************************************
 * NAVIGATION CONTROLS
 *********************************************/
.reveal .controls {
  color: #7baaf0; }

/*********************************************
 * PROGRESS BAR
 *********************************************/
.reveal .progress {
  background: rgba(0, 0, 0, 0.2);
  color: #7baaf0; }

.reveal .progress span {
  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }

html {
  box-sizing: border-box;
  height: 100%; }

*,
*::before,
*::after {
  box-sizing: inherit; }

.reveal .l-multiple {
  display: flex;
  justify-content: space-around; }
  .reveal .l-multiple .j-vert {
    width: 1em; }

.reveal .l-double {
  display: grid;
  grid-template-columns: 1fr 1fr; }

.reveal .j-icon {
  display: inline-block;
  vertical-align: middle;
  margin-right: 1rem; }

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

.reveal strong {
  color: #1d877a; }

.reveal blockquote {
  width: 90%;
  box-shadow: none;
  line-height: 1.5; }
  .reveal blockquote small {
    margin-top: 0.5em; }

.reveal figcaption {
  font-style: italic; }

.reveal td {
  vertical-align: middle; }

.reveal .bomb-txt {
  font-family: 'Playbox', sans-serif;
  font-size: calc(10vmax + 3em); }

.reveal .spec {
  position: fixed;
  top: 0;
  right: 0;
  height: 9vh; }

.reveal .slides section .fragment.fade-out.visible:not(.current-fragment) {
  display: none; }

span.emoji {
  font-family: 'Apple Color Emoji', 'Segoe UI Emoji';
  font-style: normal;
  font-size: 125%;
  display: inline-block;
  vertical-align: middle; }

span[role=img][aria-label],
span[role=img][aria-label] {
  position: relative; }

span[role=img][aria-label]:focus::after,
span[role=img][aria-label]:hover::after {
  font-size: 25%;
  font-family: "Space Text", serif;
  font-weight: 400;
  position: absolute;
  display: block;
  line-height: 1.2;
  content: attr(aria-label);
  z-index: 1;
  background: #000;
  color: #fff;
  padding: 0.25em;
  border: 1px solid #fff;
  box-shadow: 2px 2px 4px #000; }

.livecode {
  display: grid;
  grid-gap: 0.5em;
  margin: 0;
  padding: 0; }
  .livecode .result {
    max-height: 100%;
    overflow-y: scroll;
    width: 100%;
    border: 1px dashed #1d877a; }
    .livecode .result li {
      line-height: 0; }
    .livecode .result p {
      margin: 0;
      padding: 0; }
  .livecode .code {
    text-align: left;
    width: 100%;
    font-family: monospace;
    color: #efdcbc;
    background-color: #3f3f3f;
    font-size: 50%;
    padding: 0.5em;
    border-radius: 0.25em;
    overflow-y: scroll; }

.livecode-2p {
  grid-template-columns: 50% 50%;
  height: 60vh; }

.livecode-3p {
  grid-template-columns: 50% 50%;
  grid-template-rows: 1fr 1fr;
  grid-template-areas: 'a b' 'a c'; }
  .livecode-3p .markup {
    grid-area: b; }
  .livecode-3p .result {
    grid-area: a; }
  .livecode-3p .code {
    grid-area: c; }

.code-editor {
  display: block;
  height: 100%;
  white-space: pre-wrap; }

.vidcode {
  display: grid;
  grid-template-columns: 50% 50%;
  height: 75vh; }
  .vidcode video {
    align-self: center; }
