* {
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
}
body {
    font-family: 'Open Sans', sans-serif;
    background: var(--chocolate);
}
#impress {
    /* animation: jidder 1.5s linear infinite;
    animation-direction: alternate; */
}

@keyframes jidder {
    0% {
        transform: translate(0, 0);
    }
    10% {
        transform: translate(1px, -0.5px);
    }
    30% {
        transform: translate(0, -0.5px)
    }
    40% {
        transform: translate(.5px, -0.5px);
    }
    60% {
        transform: translate(0, -0px);
    }
    70% {
        transform: translate(.5px, 0px);
    }
    80% {
        transform: translate(0, -.5px);
    }
}
body::before, body::after {
    content: "\00a0";
    position:absolute;
    width:100%;
    height:1px;
    background:var(--pink);
    top:0;
    left:0;
    z-index:100;
}
body::after {
    top:auto;
    bottom:0;
    background:var(--turquoise);
}

b, strong { font-weight: bold }
i, em { font-style: italic }

p {
  line-height: 1.35;
  margin: 2vw 4vw;
}

/*
    In fact, we can hide the mouse cursor itself too, when mouse isn't used.
*/
body.impress-mouse-timeout {
    cursor: none;
}

.step {
    zoom: 1.001; /* fixes blukrry text */
    position: relative;
    box-sizing: border-box;
    min-width: 66vw;
    height: auto;
    margin: 0 auto;
}
.ratio {
    max-width: 100vw;
    visibility: hidden;
    width: var(--width);
    height: auto;
    margin: 0 auto;
}
.ratio.video-ratio {
  width: auto;
  max-width: none;
  min-height: 100vh;
  min-width: 100vw;
}
.contents {
    position: absolute;
    left:0;
    right:0;
    top:0;
    bottom:0;
}

.impress-enabled .step {
    margin: 0;
    opacity: 0;
    

    transition: opacity 1s;
    pointer-events: none;
}

.impress-enabled .step.active { opacity: 1; pointer-events: all; }

::selection {
    background: var(--porsche);
    color:var(--very-light-porsche);
    text-shadow: none;
    opacity: 1;
}

.step {
  display: none; /*optimization */
}
.step.active, .step.prev, .step.next, .step.present, .step.prev + .step {
  display:block;
}

#tube::after {
    animation: grain 5s steps(10) infinite;
    background: url("../img/grain.png");
    content: "\00a0";
    display: block;
    height: 400vh;
    left: -200vw;
    position: absolute;
    top: -200vh;
    width: 400vw;
    z-index: 10;
    pointer-events: none;
}
  @keyframes grain {
    0%, 100% {
      -moz-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
      -webkit-transform: translate(0, 0);
      transform: translate(0, 0);
    }
    10% {
      -moz-transform: translate(-5%, -10%);
      -ms-transform: translate(-5%, -10%);
      -webkit-transform: translate(-5%, -10%);
      transform: translate(-5%, -10%);
    }
    20% {
      -moz-transform: translate(-15%, 5%);
      -ms-transform: translate(-15%, 5%);
      -webkit-transform: translate(-15%, 5%);
      transform: translate(-15%, 5%);
    }
    30% {
      -moz-transform: translate(7%, -25%);
      -ms-transform: translate(7%, -25%);
      -webkit-transform: translate(7%, -25%);
      transform: translate(7%, -25%);
    }
    40% {
      -moz-transform: translate(-5%, 25%);
      -ms-transform: translate(-5%, 25%);
      -webkit-transform: translate(-5%, 25%);
      transform: translate(-5%, 25%);
    }
    50% {
      -moz-transform: translate(-15%, 10%);
      -ms-transform: translate(-15%, 10%);
      -webkit-transform: translate(-15%, 10%);
      transform: translate(-15%, 10%);
    }
    60% {
      -moz-transform: translate(15%, 0%);
      -ms-transform: translate(15%, 0%);
      -webkit-transform: translate(15%, 0%);
      transform: translate(15%, 0%);
    }
    70% {
      -moz-transform: translate(0%, 15%);
      -ms-transform: translate(0%, 15%);
      -webkit-transform: translate(0%, 15%);
      transform: translate(0%, 15%);
    }
    80% {
      -moz-transform: translate(3%, 35%);
      -ms-transform: translate(3%, 35%);
      -webkit-transform: translate(3%, 35%);
      transform: translate(3%, 35%);
    }
    90% {
      -moz-transform: translate(-10%, 10%);
      -ms-transform: translate(-10%, 10%);
      -webkit-transform: translate(-10%, 10%);
      transform: translate(-10%, 10%);
    }
  }

  .shapes {
    position: absolute;
    left:0;
    top:0;
    transform: translate(-50%, -50%);
    fill: transparent !important;
    z-index:0;
    top:2.5vw;
    z-index: 99;
  }

  .shapes.inner {
    height: 250px;
    stroke: var(--pink);
    stroke-width: 3px;
  }
  .shapes.middle {
    height: 325px;
    stroke: var(--porsche);
    stroke-width: 3px;
  }
  .shapes.outer {
    height: 400px;
    stroke: var(--turquoise);
    stroke-width: 3px;
  }

  .shapes.animated {
    stroke-width: 4px;
    stroke-dasharray: 750;
    stroke-dashoffset: 750;
    animation: dash 5s linear infinite;
  }
  .shapes.animated.outer {
    animation-duration: 9s;
  }
  .shapes.shapes.animated.middle {
    stroke-width: 4px;
      animation-name: reverse-dash;
  }
  .shapes.animated.inner {
    stroke-dasharray: 1250;
    animation-duration: 7s;
  }

  @keyframes dash {
    50% {
      stroke-dashoffset: 7500;
    }
  }
  @keyframes reverse-dash {
    50% {
      stroke-dashoffset: -700;
      stroke-width: 6px;
    }
    100% {
        stroke-dashoffset: -1400;
        stroke-dasharray: 500;
    }
  }

  #tube {
    z-index:999;
    background: radial-gradient(transparent, transparent 60%, rgba(0,0,0,.1));
    width:100%;
    height:100%;
    top:0;
    left:0;
    position:absolute;
    pointer-events: none;
  }

  #impress .substep {
    opacity: 0;
  }

  #impress .substep.substep-visible, .impress-on-overview #impress .substep {
    opacity: 1;
    transition: opacity 1s;
}

#overview { display: none }

.impress-on-overview .step {
    opacity: 1;
    cursor: pointer;
    display: block;
}

.impress-not-supported .slide {
  visibility: hidden;
}

small {
  font-size: .75em;
}
.notes {
  display:none;
}

button {
  background: #e4a663;
  color: #5e464d;
  border: none;
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  font-weight: 400;
  color: #212529;
  text-align: center;
  vertical-align: middle;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  cursor: pointer;
}
button:focus, button:hover {
  background: #fff;
}