.parallax {
    position: relative;
    overflow: clip;
    --parallax-offset: 0px;
    --parallax-rate: .5;
}

.parallax > .parallax-block {
    height: calc(100vh * var(--parallax-rate) + 100% * (1 - var(--parallax-rate))); /* fallback */
    height: calc(100lvh * var(--parallax-rate) + 100% * (1 - var(--parallax-rate)));
    transform: translateY(calc(var(--parallax-offset) * var(--parallax-rate)));
    top: auto;
    bottom: 0;
    isolation: isolate;
}

.parallax.parallax-slow    { --parallax-rate: .8; }
.parallax.parallax-regular { --parallax-rate: .5; }
.parallax.parallax-fast    { --parallax-rate: .2; }
