* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: sans-serif; } .particles { background: rgba(102, 51, 153, 0.1); height: 400px; margin: 10px auto; overflow: hidden; position: relative; width: 90%; } .particle { background: url(../res/seahorse.svg) no-repeat center center #aaa; background-size: 20px 20px; border-radius: 10px; color: #fff; height: 20px; line-height: 20px; margin: -10px 0 0 -10px; position: absolute; text-align: center; width: 20px; z-index: 1; } .particle.has-vision::after { border: 50px solid; border-color: lightgreen transparent transparent turquoise; border-radius: 50px; content: ' '; height: 0; left: -50px; margin: 10px 0 0 10px; opacity: 0.5; position: absolute; transform: rotate(45deg); top: -50px; width: 0; } .particle-movement-circle { border: 2px dotted darkturquoise; position: absolute; transition: left 0.2s, top 0.2s, height 0.2s, width 0.2s; z-index: 0; } .particle-movement-circle:after { background: darkturquoise; border-radius: 2px; content: ' '; height: 4px; left: 50%; margin-left: -2px; margin-top: -2px; position: absolute; top: 50%; width: 4px; }