body {
    display: grid;
    grid-template-columns: repeat(24, 1fr);
    grid-template-rows: repeat(24, 1fr);
    height: 100vh;
    width: 100vw;
}

header {
    grid-column: 2 / 23;
    grid-row: 1 / 3;
}

nav {
    grid-column: 10 / 22;
    grid-row: 3 / 5;
}

main, aside, footer {
  grid-column: 10 / 22;
  grid-row: 5 / 24;
}

aside, footer {
    display: none;
}

footer {
    overflow-y: auto;
    overflow-x: hidden;
}

main {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
}

main section {
    flex: 0 0 100%;
    scroll-snap-align: start;
}