.so-stacking-wrapper { 
    width: 100%; 
    position: relative;
}

/* Spacer creates the scroll space — no background */
.so-spacer {
    width: 100%;
    pointer-events: none;
}

/* Section now has NO extra height — no black gaps */
.so-stacking-section {
    position: relative;
    width: 100%;
}

.so-stack-slide {
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.4s ease;
}
.so-stack-slide.active { opacity:1; transform:translateY(0); }

/* First slide visible instantly */
.so-stack-slide:first-child {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

.so-stack-slide img { 
    width:100%; 
    height:100%; 
    object-fit:cover; 
}
.so-slide-overlay {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255,255,255,0.94);
    padding: 3rem 5rem;
    border-radius: 28px;
    text-align: center;
    box-shadow: 0 30px 100px rgba(0,0,0,0.5);
    max-width: 90%;
}
.so-slide-overlay h2 { font-size: 4.5rem; margin-bottom: 1rem; color:#111; }
.so-slide-content { font-size: 1.7rem; color:#444; }