/* This first thing is actually from the demo. */
.impress-supported .fallback-message {
  display: none;
}

* {
  box-sizing: border-box;
}

:root {
  --translucent-light: #ffffffd0;
}

/* Main typography */
body {
  font-family: 'Zilla Slab';
}

img {
  display: block;
}

abbr {
  font-variant-caps: all-small-caps;
}

.step {
  width: 900px;
}

:is(h1, h2, h3, h4, h5, h6) {
  text-align: center;
}

#title {
  font-family: 'League Spartan';

  & h1 {
    font-size: 100px;
    font-weight: 400;
  }

  & h2 {
    font-size: 40px;
    font-weight: 600;
  }
}

#rosetta {
  background-image: url('/img/rosetta.jpg');
  background-position: 50% 35%;
  width: 1920px;
  height: 1200px;

  & h1 {
    font-weight: 400;
    position: absolute;
    width: 100%;
    bottom: 1em;
    background-color: #00000080;
    color: white;
    opacity: 100%;
    transition: opacity 1s 0.5s;

    .future & {
      opacity: 0;
    }
  }
}

#electronic {
  opacity: 100%;
  transition: opacity 1s;
}
#electronic:not(.active) {
  opacity: 0;
}

#electronic p {
  font-size: 2rem;
  width: 40ch;
  padding: 1em;
  background-color: var(--translucent-light);
  translate: -20ch;
}

#punch {
  background-image: url('/img/punchcard.jpg');
  width: 1024px;
  height: 448px;

  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: space-between;

  & h1 {
    font-size: 60px;
    font-weight: 400;
    padding: 0.5ch;
  }

  & p {
    font-size: 30px;
  }
}

#punch > * {
  background-color: var(--translucent-light);
}

#papertape {
  display: flex;
  align-items: space-between;
  justify-content: center;
  width: 1280px;
  height: 853px;
  background-image: url('/img/papertape.jpg');

  & h1 {
    font-size: 60px;
    font-weight: 400;
  }

  & p {
    font-size: 30px;
  }
}

#magnet {
  width: 1200px;

  & h1 {
    font-size: 80px;
  }

  & p {
    text-align: center;
    font-size: 2rem;
  }
}

#flash {
  width: 1200px;

  & h1 {
    font-size: 90px;
    font-weight: 400;
  }

  & h2 {
    font-size: 60px;
    font-weight: 400;
  }
}

#downsides {
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: space-between;

  width: 1900px;
  height: 1000px;

  & h1 {
    flex-grow: 2;
    flex-shrink: 1;
    font-size: 80px;
  }

  & p {
    flex-grow: 1;
    font-size: 45px;
    text-align: center;
    padding: 1ch;
    width: max-content;
  }
}
#archival {
  & h1 {
    font-size: 60px;
    font-weight: 400;
  }

  & h2 {
    font-size: 50px;
    font-weight: 500;
  }
}

#qrcodes {
  & img {
    width: 900px;
  }
}

#piql {
  width: 1700px;
  & h1 {
    font-weight: 500;
    font-size: 65px;
  }

  & p {
    font-size: 2rem;
  }
}

#awa {
  & h1 {
    font-weight: 600;
    font-size: 60px;
  }
  & h2 {
    font-size: 50px;
  }

  & p {
    font-size: 35px;
  }
}