.snowflakes {
    width: 100%; height: 1200px;
    position: absolute; top: -90px; left: 0;
  }
  
  em, em:after, em:before { background: #d3cbcb; }
  em {
    display: inline-block;
    -webkit-animation: snowflakes 3s linear 2s infinite;
    -moz-animation: snowflakes 3s linear 2s infinite;
    position: relative;
  }
  em:after, em:before {
    height: 100%;
    width: 100%;
    content: ".";
    position: absolute;
    top: 0px;
    left: 0px;
    -webkit-transform: rotate(120deg);
  }
  em:before { -webkit-transform: rotate(240deg); }
  
  @-webkit-keyframes snowflakes {
    0% {
      -webkit-transform: translate3d(0,0,0) rotate(0deg) scale(0.6);
    }
    100% {
      -webkit-transform: translate3d(15px, 1200px, 0px) rotate(360deg) scale(0.6);
    };
  }
  
  .snowflakes em:nth-child(3n) {
    width: 16px; height: 4px;
    -webkit-animation-duration: 4s;
    /* -webkit-animation-iteration-count: 30; */
    -webkit-transform-origin: right -45px;
  }
  
  .snowflakes em:nth-child(3n+1) {
    width: 24px; height: 6px;
    -webkit-animation-duration: 6s;
    /* -webkit-animation-iteration-count: 45; */
    -webkit-transform-origin: right -30px;
  }
  
  .snowflakes em:nth-child(3n+2) {
    width: 32px; height: 8px;
    -webkit-animation-duration: 8s;
    /* -webkit-animation-iteration-count: 60; */
    -webkit-transform-origin: right -15px;
  }
    
  /* different delays so they don't all start at the same time */
  .snowflakes em:nth-child(7n) {
    opacity:.3;
    -webkit-animation-delay: 0s;
    -webkit-animation-timing-function:ease-in;
  }
  .snowflakes em:nth-child(7n+1) {
    opacity:.4;
    -webkit-animation-delay: 1s;
    -webkit-animation-timing-function:ease-out;
  }
  .snowflakes em:nth-child(7n+2) {
    opacity:.5;
    -webkit-animation-delay: 1.5s;
    -webkit-animation-timing-function:linear;
  }
  .snowflakes em:nth-child(7n+3) {
    opacity:.6;
    -webkit-animation-delay: 2s;
    -webkit-animation-timing-function:ease-in;
  }
  .snowflakes em:nth-child(7n+4) {
    opacity:.7;
    -webkit-animation-delay: 2.5s;
    -webkit-animation-timing-function:linear;
  }
  .snowflakes em:nth-child(7n+5) {
    opacity:.8;
    -webkit-animation-delay: 3s;
    -webkit-animation-timing-function:ease-out;
  }
  .snowflakes em:nth-child(7n+6) {
    opacity:.9;
    -webkit-animation-delay: 3.5s;
    -webkit-animation-timing-function:ease-in;
  }