@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url(./media/plex-100-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

html {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  background-color: #000;
  font-size: 16px;
  font-family: "IBM Plex Mono", monospace;
}

main {
  max-height: 100vh;
  overflow-y: scroll;
  scroll-snap-type: mandatory; /* for older browsers */
  scroll-snap-points-y: repeat(100vh); /* for older browsers */
  scroll-snap-type: y mandatory;
}

section {
  display: flex;
  width: 100vw;
  height: 100vh;
  padding: 1rem;
  align-items: center;
  justify-content: center;
  scroll-snap-align: start;
}

.content {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-items: center;
  color: #fff;
  text-decoration: none;
}

.desc {
  display: flex;
  min-width: 15rem;
  max-width: 30rem;
  align-self: stretch;
  flex-direction: column;
  flex: 1 1 auto;
  padding-right: 5rem;
}

h1 {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  margin: 0;
  padding: 0.4rem 0;
  border-bottom: 1px solid #fff;
  font-size: 6rem;
  line-height: 1;
  font-weight: 600;
  flex: 1 1 50%;
}

h2 {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin: 0;
  padding: 1.1rem 0;
  font-size: 2.4rem;
  font-style: italic;
  font-weight: 300;
  line-height: 1;
  flex: 1 1 50%;
}

shader-doodle {
  display: block;
  width: calc(100vmin - 2rem);
  height: calc(100vmin - 2rem);
  max-width: 30rem;
  max-height: 30rem;
}
