*{
  box-sizing: border-box;
}
body {
  margin: 0;
  background: color-mix(in srgb, olive 100%, salmon 10%);
  overflow-y: hidden;
}
p{
  margin: 0;
}
main{
  overflow: hidden;
  height: 100vh;
}
.wrapper {
  display: flex;
  position: relative;
  flex-direction: row;
  height: 200vh;
  overflow-x: scroll;
  width: 100vw;
  gap: 1em;
  transition: transform 4s;
}
.cave .wrapper{
  transform: translateY(-100vh);
}
.wrapper > * {
  margin: 0;
  font-size: 3vw;
  padding: .5em;
  color: salmon;
  background: olive;
  flex-shrink: 0;
  width: calc(var(--w, 70) * 1vw);
  position: relative;
  height: 100vh;
}
.aside {
  display: block;
  position: absolute;
  top: 0;left: 0; right: 0;
  height: 100vh;
  transform: translateY(100vh);
}

body:has(.cave),
main.cave,.wrapper {
  overflow: hidden;
}


.center {
  display: flex;
  align-items: center;
}