.particle-container {
    width: 1920px;
    height: 640px;
    margin: 0 auto;
    text-align: center;
    --timescale: 0.2s;
    position: relative;
}

.pt {
    position: relative;
    left: calc(var(--x) * 1%);
    top: calc(var(--y) * 1%);
    height: 50px;
    animation: moveUpDown calc(var(--timescale) * var(--yt)) infinite cubic-bezier(.45, .05, .55, .95) alternate;
    animation-delay: calc(-1s * var(--d, 0));
}

.pt b {
    background: url("assets/bolle.png");
    background-size: contain;
    width: calc(0.1vw * var(--w));
    height: calc(0.1vw * var(--w));
    position: absolute;
    z-index: 1;
    opacity: var(--o, 1);
    animation: moveRightLeft calc(var(--timescale) * var(--xt)) infinite cubic-bezier(.45, .05, .55, .95) alternate, flicker calc(2s * var(--xd)) infinite alternate cubic-bezier(.45, .05, .55, .95);
    animation-delay: calc(-1s * var(--d, 0)), calc(-0.2s * var(--d, 0));
}

@keyframes moveUpDown {
    0% {}
    100% { transform: translateY(calc(50% * var(--yd, 3))); }
}

@keyframes moveRightLeft {
    0% { transform: translateX(calc(-50% * var(--xd, 3))); }
    100% { transform: translateX(calc(50% * var(--xd, 3))); }
}

@keyframes flicker {
    0% { opacity: calc(var(--o, 1) - 0.1); }
    100% { opacity: calc(var(--o, 1) + 0.1); }
}