.snap-container {
    height: 100vh; /* full screen */
    overflow-y: auto; /* scroll only inside container */
    scroll-snap-type: y mandatory; /* snap vertically */
    scroll-behavior: smooth; /* optional */
    overscroll-behavior: contain; /* optional: prevents page bounce */
    scrollbar-width: none;
}

/* Chrome, Edge, Safari */
snap-container::-webkit-scrollbar {
    display: none;
}

.snap-section {
    height: 100vh; /* each section is exactly one screen */
    scroll-snap-align: start; /* snap target */
    scroll-snap-stop: always; /* stronger snapping (not supported everywhere) */

    display: flex; /* easy centering/layout */
    align-items: stretch;
    justify-content: stretch;
    box-sizing: border-box;
}

.snap-card {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}