html.scroll-snap,
body.scroll-snap {
    height: 100%;
    scroll-behavior: auto;
}

html.scroll-snap {
    overflow-y: auto;
    scroll-snap-type: y mandatory;
    overscroll-behavior-y: contain;
}

body.scroll-snap {
    min-height: 100%;
    background-color: var(--bs-body-bg);
}

html.scroll-snap main {
    min-height: 100%;
}

html.scroll-snap .scroll-snap-section {
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    background-color: var(--bs-body-bg);
    background-clip: padding-box;
    overflow: hidden;
}

html.scroll-snap.scroll-snap-animating {
    scroll-snap-type: none;
    scroll-behavior: auto;
}

body.scroll-snap.scroll-snap-animating {
    overflow-y: hidden;
}

@media (prefers-reduced-motion: reduce) {
    html.scroll-snap,
    body.scroll-snap {
        scroll-behavior: auto;
    }

    html.scroll-snap {
        scroll-snap-type: none;
    }
}
