/*********************************************
 * CONTROLS
 *********************************************/
 @-webkit-keyframes bounce-right {
    0%, 10%, 25%, 40%, 50% {
      -webkit-transform: translateX(0);
              transform: translateX(0); }
    20% {
      -webkit-transform: translateX(10px);
              transform: translateX(10px); }
    30% {
      -webkit-transform: translateX(-5px);
              transform: translateX(-5px); } }
  @keyframes bounce-right {
    0%, 10%, 25%, 40%, 50% {
      -webkit-transform: translateX(0);
              transform: translateX(0); }
    20% {
      -webkit-transform: translateX(10px);
              transform: translateX(10px); }
    30% {
      -webkit-transform: translateX(-5px);
              transform: translateX(-5px); } }
  
  @-webkit-keyframes bounce-down {
    0%, 10%, 25%, 40%, 50% {
      -webkit-transform: translateY(0);
              transform: translateY(0); }
    20% {
      -webkit-transform: translateY(10px);
              transform: translateY(10px); }
    30% {
      -webkit-transform: translateY(-5px);
              transform: translateY(-5px); } }
  
  @keyframes bounce-down {
    0%, 10%, 25%, 40%, 50% {
      -webkit-transform: translateY(0);
              transform: translateY(0); }
    20% {
      -webkit-transform: translateY(10px);
              transform: translateY(10px); }
    30% {
      -webkit-transform: translateY(-5px);
              transform: translateY(-5px); } }
  
  .reveal .controls {
    display: none;
    position: absolute;
    top: auto;
    bottom: calc(3rem);
    right: 12px;
    left: auto;
    z-index: 11;
    color: #000;
    pointer-events: none;
    font-size: 10px; }
    .reveal .controls button {
      position: absolute;
      padding: 0;
      background-color: transparent;
      border: 0;
      outline: 0;
      cursor: pointer;
      color: currentColor;
      -webkit-transform: scale(0.9999);
              transform: scale(0.9999);
      transition: color 0.2s ease, opacity 0.2s ease, -webkit-transform 0.2s ease;
      transition: color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
      z-index: 2;
      pointer-events: auto;
      font-size: inherit;
      visibility: hidden;
      opacity: 0;
      -webkit-appearance: none;
      -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
    .reveal .controls .controls-arrow:before,
    .reveal .controls .controls-arrow:after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 2.6em;
      height: 0.5em;
      border-radius: 0.25em;
      background-color: currentColor;
      transition: all 0.15s ease, background-color 0.8s ease;
      -webkit-transform-origin: 0.2em 50%;
              transform-origin: 0.2em 50%;
      will-change: transform; }
    .reveal .controls .controls-arrow {
      position: relative;
      width: 3.6em;
      height: 3.6em; }
      .reveal .controls .controls-arrow:before {
        -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
                transform: translateX(0.5em) translateY(1.55em) rotate(45deg); }
      .reveal .controls .controls-arrow:after {
        -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
                transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); }
      .reveal .controls .controls-arrow:hover:before {
        -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(40deg);
                transform: translateX(0.5em) translateY(1.55em) rotate(40deg); }
      .reveal .controls .controls-arrow:hover:after {
        -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-40deg);
                transform: translateX(0.5em) translateY(1.55em) rotate(-40deg); }
      .reveal .controls .controls-arrow:active:before {
        -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(36deg);
                transform: translateX(0.5em) translateY(1.55em) rotate(36deg); }
      .reveal .controls .controls-arrow:active:after {
        -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-36deg);
                transform: translateX(0.5em) translateY(1.55em) rotate(-36deg); }
    .reveal .controls .navigate-left {
      right: 6.4em;
      bottom: 3.2em;
      -webkit-transform: translateX(-10px);
              transform: translateX(-10px); }
    .reveal .controls .navigate-right {
      right: 0;
      bottom: 3.2em;
      -webkit-transform: translateX(10px);
              transform: translateX(10px); }
      .reveal .controls .navigate-right .controls-arrow {
        -webkit-transform: rotate(180deg);
                transform: rotate(180deg); }
      .reveal .controls .navigate-right.highlight {
        -webkit-animation: bounce-right 2s 50 both ease-out;
                animation: bounce-right 2s 50 both ease-out; }
    .reveal .controls .navigate-up {
      right: 3.2em;
      bottom: 6.4em;
      -webkit-transform: translateY(-10px);
              transform: translateY(-10px); }
      .reveal .controls .navigate-up .controls-arrow {
        -webkit-transform: rotate(90deg);
                transform: rotate(90deg); }
    .reveal .controls .navigate-down {
      right: 3.2em;
      bottom: -1.4em;
      padding-bottom: 1.4em;
      -webkit-transform: translateY(10px);
              transform: translateY(10px); }
      .reveal .controls .navigate-down .controls-arrow {
        -webkit-transform: rotate(-90deg);
                transform: rotate(-90deg); }
      .reveal .controls .navigate-down.highlight {
        -webkit-animation: bounce-down 2s 50 both ease-out;
                animation: bounce-down 2s 50 both ease-out; }
    .reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled,
    .reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled {
      opacity: 0.3; }
      .reveal .controls[data-controls-back-arrows="faded"] .navigate-left.enabled:hover,
      .reveal .controls[data-controls-back-arrows="faded"] .navigate-up.enabled:hover {
        opacity: 1; }
    .reveal .controls[data-controls-back-arrows="hidden"] .navigate-left.enabled,
    .reveal .controls[data-controls-back-arrows="hidden"] .navigate-up.enabled {
      opacity: 0;
      visibility: hidden; }
    .reveal .controls .enabled {
      visibility: visible;
      opacity: 0.9;
      cursor: pointer;
      -webkit-transform: none;
              transform: none; }
    .reveal .controls .enabled.fragmented {
      opacity: 0.5; }
    .reveal .controls .enabled:hover,
    .reveal .controls .enabled.fragmented:hover {
      opacity: 1; }
  
  .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-up,
  .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-down {
    display: none; }
  
  .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-left,
  .reveal:not(.has-vertical-slides) .controls .navigate-left {
    bottom: 1.4em;
    right: 5.5em; }
  
  .reveal[data-navigation-mode="linear"].has-horizontal-slides .navigate-right,
  .reveal:not(.has-vertical-slides) .controls .navigate-right {
    bottom: 1.4em;
    right: 0.5em; }
  
  .reveal:not(.has-horizontal-slides) .controls .navigate-up {
    right: 1.4em;
    bottom: 5em; }
  
  .reveal:not(.has-horizontal-slides) .controls .navigate-down {
    right: 1.4em;
    bottom: 0.5em; }
  
  .reveal.has-dark-background .controls {
    color: #fff; }
  
  .reveal.has-light-background .controls {
    color: #000; }
  
  .reveal.no-hover .controls .controls-arrow:hover:before,
  .reveal.no-hover .controls .controls-arrow:active:before {
    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(45deg);
            transform: translateX(0.5em) translateY(1.55em) rotate(45deg); }
  
  .reveal.no-hover .controls .controls-arrow:hover:after,
  .reveal.no-hover .controls .controls-arrow:active:after {
    -webkit-transform: translateX(0.5em) translateY(1.55em) rotate(-45deg);
            transform: translateX(0.5em) translateY(1.55em) rotate(-45deg); }
  
  @media screen and (min-width: 500px) {
    .reveal .controls[data-controls-layout="edges"] {
      top: 0;
      right: 0;
      bottom: 0;
      left: 0; }
    .reveal .controls[data-controls-layout="edges"] .navigate-left,
    .reveal .controls[data-controls-layout="edges"] .navigate-right,
    .reveal .controls[data-controls-layout="edges"] .navigate-up,
    .reveal .controls[data-controls-layout="edges"] .navigate-down {
      bottom: auto;
      right: auto; }
    .reveal .controls[data-controls-layout="edges"] .navigate-left {
      top: 50%;
      left: 0.8em;
      margin-top: -1.8em; }
    .reveal .controls[data-controls-layout="edges"] .navigate-right {
      top: 50%;
      right: 0.8em;
      margin-top: -1.8em; }
    .reveal .controls[data-controls-layout="edges"] .navigate-up {
      top: 0.8em;
      left: 50%;
      margin-left: -1.8em; }
    .reveal .controls[data-controls-layout="edges"] .navigate-down {
      bottom: -0.3em;
      left: 50%;
      margin-left: -1.8em; } }

.playbackbc {
  z-index: 999;
  cursor: pointer;
  transition: all 400ms ease;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 
}


/* Global transition speed settings */
.reveal[data-transition-speed="fast"] .slides section {
  transition-duration: 400ms; }

.reveal[data-transition-speed="slow"] .slides section {
  transition-duration: 1200ms; }

/* Slide-specific transition speed overrides */
.reveal .slides section[data-transition-speed="fast"] {
  transition-duration: 400ms; }

.reveal .slides section[data-transition-speed="slow"] {
  transition-duration: 1200ms; }

.reveal .slides > section.stack {
  padding-top: 0;
  padding-bottom: 0;
  pointer-events: none;
  height: 100%; }

.reveal .slides > section.present,
.reveal .slides > section > section.present {
  display: block;
  z-index: 11;
  opacity: 1; }

.reveal .slides > section:empty,
.reveal .slides > section > section:empty,
.reveal .slides > section[data-background-interactive],
.reveal .slides > section > section[data-background-interactive] {
  pointer-events: none; }

.reveal.center,
.reveal.center .slides,
.reveal.center .slides section {
  min-height: 0 !important; }

/* Don't allow interaction with invisible slides */
.reveal .slides > section.future,
.reveal .slides > section > section.future,
.reveal .slides > section.past,
.reveal .slides > section > section.past {
  pointer-events: none; }

.reveal.overview .slides > section,
.reveal.overview .slides > section > section {
  pointer-events: auto; }

.reveal .slides > section.past,
.reveal .slides > section.future,
.reveal .slides > section > section.past,
.reveal .slides > section > section.future {
  opacity: 0; }

/*********************************************
 * Mixins for readability of transitions
 *********************************************/
/*********************************************
 * SLIDE TRANSITION
 * Aliased 'linear' for backwards compatibility
 *********************************************/
.reveal.slide section {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.reveal .slides > section[data-transition=slide].past,
.reveal .slides > section[data-transition~=slide-out].past,
.reveal.slide .slides > section:not([data-transition]).past {
  -webkit-transform: translate(-150%, 0);
          transform: translate(-150%, 0); }

.reveal .slides > section[data-transition=slide].future,
.reveal .slides > section[data-transition~=slide-in].future,
.reveal.slide .slides > section:not([data-transition]).future {
  -webkit-transform: translate(150%, 0);
          transform: translate(150%, 0); }

.reveal .slides > section > section[data-transition=slide].past,
.reveal .slides > section > section[data-transition~=slide-out].past,
.reveal.slide .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate(0, -150%);
          transform: translate(0, -150%); }

.reveal .slides > section > section[data-transition=slide].future,
.reveal .slides > section > section[data-transition~=slide-in].future,
.reveal.slide .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate(0, 150%);
          transform: translate(0, 150%); }

.reveal.linear section {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.reveal .slides > section[data-transition=linear].past,
.reveal .slides > section[data-transition~=linear-out].past,
.reveal.linear .slides > section:not([data-transition]).past {
  -webkit-transform: translate(-150%, 0);
          transform: translate(-150%, 0); }

.reveal .slides > section[data-transition=linear].future,
.reveal .slides > section[data-transition~=linear-in].future,
.reveal.linear .slides > section:not([data-transition]).future {
  -webkit-transform: translate(150%, 0);
          transform: translate(150%, 0); }

.reveal .slides > section > section[data-transition=linear].past,
.reveal .slides > section > section[data-transition~=linear-out].past,
.reveal.linear .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate(0, -150%);
          transform: translate(0, -150%); }

.reveal .slides > section > section[data-transition=linear].future,
.reveal .slides > section > section[data-transition~=linear-in].future,
.reveal.linear .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate(0, 150%);
          transform: translate(0, 150%); }

/*********************************************
 * CONVEX TRANSITION
 * Aliased 'default' for backwards compatibility
 *********************************************/
.reveal .slides section[data-transition=default].stack,
.reveal.default .slides section.stack {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }

.reveal .slides > section[data-transition=default].past,
.reveal .slides > section[data-transition~=default-out].past,
.reveal.default .slides > section:not([data-transition]).past {
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }

.reveal .slides > section[data-transition=default].future,
.reveal .slides > section[data-transition~=default-in].future,
.reveal.default .slides > section:not([data-transition]).future {
  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }

.reveal .slides > section > section[data-transition=default].past,
.reveal .slides > section > section[data-transition~=default-out].past,
.reveal.default .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
          transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }

.reveal .slides > section > section[data-transition=default].future,
.reveal .slides > section > section[data-transition~=default-in].future,
.reveal.default .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
          transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }

.reveal .slides section[data-transition=convex].stack,
.reveal.convex .slides section.stack {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }

.reveal .slides > section[data-transition=convex].past,
.reveal .slides > section[data-transition~=convex-out].past,
.reveal.convex .slides > section:not([data-transition]).past {
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }

.reveal .slides > section[data-transition=convex].future,
.reveal .slides > section[data-transition~=convex-in].future,
.reveal.convex .slides > section:not([data-transition]).future {
  -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }

.reveal .slides > section > section[data-transition=convex].past,
.reveal .slides > section > section[data-transition~=convex-out].past,
.reveal.convex .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
          transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }

.reveal .slides > section > section[data-transition=convex].future,
.reveal .slides > section > section[data-transition~=convex-in].future,
.reveal.convex .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
          transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }

/*********************************************
 * CONCAVE TRANSITION
 *********************************************/
.reveal .slides section[data-transition=concave].stack,
.reveal.concave .slides section.stack {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d; }

.reveal .slides > section[data-transition=concave].past,
.reveal .slides > section[data-transition~=concave-out].past,
.reveal.concave .slides > section:not([data-transition]).past {
  -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
          transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }

.reveal .slides > section[data-transition=concave].future,
.reveal .slides > section[data-transition~=concave-in].future,
.reveal.concave .slides > section:not([data-transition]).future {
  -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }

.reveal .slides > section > section[data-transition=concave].past,
.reveal .slides > section > section[data-transition~=concave-out].past,
.reveal.concave .slides > section > section:not([data-transition]).past {
  -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
          transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); }

.reveal .slides > section > section[data-transition=concave].future,
.reveal .slides > section > section[data-transition~=concave-in].future,
.reveal.concave .slides > section > section:not([data-transition]).future {
  -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
          transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); }

/*********************************************
 * ZOOM TRANSITION
 *********************************************/
.reveal .slides section[data-transition=zoom],
.reveal.zoom .slides section:not([data-transition]) {
  transition-timing-function: ease; }

.reveal .slides > section[data-transition=zoom].past,
.reveal .slides > section[data-transition~=zoom-out].past,
.reveal.zoom .slides > section:not([data-transition]).past {
  visibility: hidden;
  -webkit-transform: scale(16);
          transform: scale(16); }

.reveal .slides > section[data-transition=zoom].future,
.reveal .slides > section[data-transition~=zoom-in].future,
.reveal.zoom .slides > section:not([data-transition]).future {
  visibility: hidden;
  -webkit-transform: scale(0.2);
          transform: scale(0.2); }

.reveal .slides > section > section[data-transition=zoom].past,
.reveal .slides > section > section[data-transition~=zoom-out].past,
.reveal.zoom .slides > section > section:not([data-transition]).past {
  -webkit-transform: scale(16);
          transform: scale(16); }

.reveal .slides > section > section[data-transition=zoom].future,
.reveal .slides > section > section[data-transition~=zoom-in].future,
.reveal.zoom .slides > section > section:not([data-transition]).future {
  -webkit-transform: scale(0.2);
          transform: scale(0.2); }