I want to create news horizontal scrolling tiles slider with pure css without JS 

I tried using FlexBox,
.spotlight-wrapper {
  width: 100%;
  overflow-x: auto;
}
.spotlight-wrapper .spotlight {
  list-style: none;
  height: 230px;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: bottom;
  padding: 0;
}
.spotlight-wrapper .spotlight li {
  width: 220px;
  height: 220px;
  background: #ccc;
  margin: 5px;
}
.spotlight-wrapper .spotlight li.small {
  width: 105px;
  height: 105px;
}
.spotlight-wrapper .spotlight li.medium {
  width: 220px;
  height: 105px;
  /*
     * Idea to fix it, but will cause
     * issue if the medium tile in the
     * bottom level, and there are 2 small
     * tiles next to it in the top level
    */
  /* & + .small + .small{
     display: block;
     clear: both;
     justify-content: bottom;
     margin-top: 120px;
     margin-left: -110px;
    } */
}
.spotlight-wrapper .spotlight li.red {
  background: red;
}<div class="spotlight-wrapper">
 <ul class="spotlight">
  <li>Tile #1</li>
  <li class="small">Tile #2</li>
  <li class="small">Tile #3</li>
  <li class="medium">Tile #9</li>
  <li class="medium">Tile #10</li>
  <li>Tile #2</li>
  <li class="medium red">Tile #1</li>
  <li class="small red">Tile #2</li>
  <li class="small red">Tile #3</li>
  <li>Tile #5</li>
  <li>Tile #7</li>
  <li>Tile #8</li>
  <li class="medium">Tile #9</li>
  <li class="medium">Tile #10</li>
  <li>Tile #11</li>
  <li>Tile #12</li>
  <li class="small">Tile #13</li>
  <li>Tile #14</li>
  <li>Tile #15</li>
  <li>Tile #16</li>
  <li>Tile #17</li>
  <li>Tile #18</li>
  <li>Tile #19</li>
  <li>Tile #20</li>
 </ul>But if you check the red tiles, its not aligned the correct way, i can fix it using margins (check the commented block) but will cause other issue if the wide tile is in the bottom row, and there are 2 small tiles in the next block,
Also if there are only one small tile, empty space will be created.
 
    