@font-face {
  font-family: 'UTMorph-variable';
  src: url('fonts/UTMorph-variable.woff2') format('woff2');
}

html,
body {
  margin: 0;
}

body {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

body {
  display: flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
  background-color: red;
  position: relative;
  top: -4vw;
}

.container {
  font-family: 'UTMorph-variable';
  font-size: 28vw;
  display: flex;
}

span {
  display: inline-block;
  /* 
  Achtung: Weil SPAN ein sog. inline Element ist, d.h.
  es lebt in der Zeile und darf diese nicht kaputt machen,
  funktionieren nicht alle Transformationen.
  Umschalten auf inline-block oder block korrigiert das.
  Damit das Zeugs dann trotzdem nebeneinander liegt,
  muss das parent-Element (hier .container) mit display: flex
  auf Achsenlayout gestellt werden.
  */
}

.element {
  width: 100%;
}

.element1 {
  color: hsl(0, 0%, 100%);
  animation: anim_fix 3s infinite linear;
  z-index: 0;
  /* vorne */
}

.element2 {
  color: white;
  font-variation-settings: 'wght' 400, 'MELT' 10;
  animation: anim_bewegt 3s infinite linear;
  z-index: 0;
  /* vorne */
}

.element3 {
  color: white;
  font-variation-settings: 'wght' 400, 'MELT' 10;
  animation: anim_fix 3s infinite linear;
  z-index: 0;
  /* vorne */
}

.element4 {
  color: white;
  animation: anim_bewegt 3s infinite alternate linear;
  font-variation-settings: 'wght' 900, 'MELT' 100;
}

.element5 {
  color: white;
  animation: anim_fix 3s infinite linear;
  font-variation-settings: 'wght' 900, 'MELT' 100;
}

@keyframes anim_bewegt {
  0%,
  100% {
    font-variation-settings: 'PSTV' 0, 'NGTV' 100;
    transform: translateY(-70vh);
  }

  50% {
    font-variation-settings: 'PSTV' 100, 'NGTV' 0;
    transform: translateY(70vh);
  }
}

@keyframes anim_fix {

  0%,
  100% {
    font-variation-settings: 'PSTV' 100, 'NGTV' 0;

  }

  50% {
    font-variation-settings: 'PSTV' 0, 'NGTV' 100;
  }
}