.image-container__marker {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 85px;
    height: auto;
    z-index: 2;
}

.image-container__marker svg {
    position: absolute;
    transition: transform ease-out 0.25s, opacity ease-out 0.25s;
    transform: scale(0.86);
    opacity: 0;
}

.image-container__marker--shown svg {
    transform: scale(1);
    opacity: 0.86;
}

#iot-app {
    transform: translateX(20px);
    top: 11%;
}

#cloud {
    transform: translateX(-126px);
    top: 23%;
}

#gateway {
    top: 38%;
}

.iot-device:nth-child(3) {
    left: 60px;
    top: 286px;
}

.iot-device:nth-child(4) {
    left: 130px;
    top: 226px;
}

.iot-device:nth-child(5) {
    left: 220px;
    top: 156px;
}

.iot-device:nth-child(6) {
    left: 200px;
    top: 256px;
}

.iot-device:nth-child(7) {
    left: 364px;
    top: 286px;
}

.iot-device:nth-child(8) {
    left: 305px;
    top: 430px;
}

.iot-device:nth-child(9) {
    left: 405px;
    top: 510px;
}

.iot-device:nth-child(10) {
    left: 465px;
    top: 420px;
}

.iot-device:nth-child(11) {
    left: 530px;
    top: 450px;
}

.iot-device:nth-child(12) {
    left: 610px;
    top: 520px;
}

.iot-device:nth-child(13) {
    left: 570px;
    top: 630px;
}

.iot-device:nth-child(14) {
    left: 640px;
    top: 380px;
}

.iot-device:nth-child(15) {
    left: 780px;
    top: 670px;
}

.iot-device:nth-child(16) {
    left: 840px;
    top: 520px;
}

.iot-device:nth-child(17) {
    left: 900px;
    top: 520px;
}

.iot-device:nth-child(18) {
    left: 980px;
    top: 410px;
}

.iot-device:nth-child(19) {
    left: 1170px;
    top: 380px;
}

.iot-device:nth-child(20) {
    left: 530px;
    top: 186px;
}

.iot-device:nth-child(21) {
    left: 800px;
    top: 250px;
}

@media screen and (min-width: 768px) {
    .image-container__marker {
        width: 125px;
    }

    #iot-app {
        transform: translateX(28px);
        top: 14%;
    }
    
    #cloud {
        transform: translateX(-156px);
        top: 25%;
    }
    
    #gateway {
        top: 40%;
    }

    .iot-device:nth-child(3) {
        left: 85px;
        top: 336px;
    }
    
    .iot-device:nth-child(4) {
        left: 150px;
        top: 270px;
    }
    
    .iot-device:nth-child(5) {
        left: 260px;
        top: 190px;
    }
    
    .iot-device:nth-child(6) {
        left: 240px;
        top: 310px;
    }
    
    .iot-device:nth-child(7) {
        left: 430px;
        top: 340px;
    }
    
    .iot-device:nth-child(8) {
        left: 360px;
        top: 520px;
    }
    
    .iot-device:nth-child(9) {
        left: 480px;
        top: 620px;
    }
    
    .iot-device:nth-child(10) {
        left: 550px;
        top: 500px;
    }
    
    .iot-device:nth-child(11) {
        left: 630px;
        top: 540px;
    }
    
    .iot-device:nth-child(12) {
        left: 720px;
        top: 630px;
    }
    
    .iot-device:nth-child(13) {
        left: 680px;
        top: 750px;
    }
    
    .iot-device:nth-child(14) {
        left: 770px;
        top: 460px;
    }
    
    .iot-device:nth-child(15) {
        left: 930px;
        top: 800px;
    }
    
    .iot-device:nth-child(16) {
        left: 1010px;
        top: 640px;
    }
    
    .iot-device:nth-child(17) {
        left: 1070px;
        top: 630px;
    }
    
    .iot-device:nth-child(18) {
        left: 1170px;
        top: 490px;
    }
    
    .iot-device:nth-child(19) {
        left: 1400px;
        top: 460px;
    }
    
    .iot-device:nth-child(20) {
        left: 630px;
        top: 226px;
    }
    
    .iot-device:nth-child(21) {
        left: 950px;
        top: 310px;
    }
}

@media screen and (min-width: 912px) {
    .image-container__marker {
        width: calc(100vw * 0.1186752529898804);
    }

    #iot-app {
        transform: none;
        left: 43vw;
        top: 79%;
    }
    
    #cloud {
        transform: none;
        left: 44.5vw;
        top: 52%;
    }
    
    #gateway {
        transform: none;
        left: 59vw;
        top: 66%;
    }

    .iot-device:nth-child(3) {
        left: 55vw;
        top: 35%;
    }
    
    .iot-device:nth-child(4) {
        left: 59vw;
        top: 30%;
    }
    
    .iot-device:nth-child(5) {
        left: 64vw;
        top: 23%;
    }
    
    .iot-device:nth-child(6) {
        left: 63vw;
        top: 33%;
    }
    
    .iot-device:nth-child(7) {
        left: 72vw;
        top: 35%;
    }
    
    .iot-device:nth-child(8) {
        left: 69vw;
        top: 50%;
    }
    
    .iot-device:nth-child(9) {
        left: 75vw;
        top: 58%;
    }
    
    .iot-device:nth-child(10) {
        left: 78vw;
        top: 49%;
    }
    
    .iot-device:nth-child(11) {
        left: 82vw;
        top: 52%;
    }
    
    .iot-device:nth-child(12) {
        left: 86vw;
        top: 59%;
    }
    
    .iot-device:nth-child(13) {
        left: 85vw;
        top: 69%;
    }
    
    .iot-device:nth-child(14) {
        left: 88vw;
        top: 45%;
    }
    
    .iot-device:nth-child(15) {
        left: 96vw;
        top: 73%;
    }
    
    .iot-device:nth-child(16) {
        left: 82vw;
        top: 27%;
    }
    
    .iot-device:nth-child(17) {
        left: 97vw;
        top: 30%;
    }
    
    .iot-device:nth-child(18),
    .iot-device:nth-child(19),
    .iot-device:nth-child(20),
    .iot-device:nth-child(21) {
        display: none;
    }
}

@media screen and (min-width: 1200px) {
    #iot-app,
    #cloud,
    #gateway,
    .image-container__marker {
        transform: translateX(-2vw);
    }
}