body > div 
{
    position: absolute;
    width: auto;
    height: auto;

    /* We use the following properties to apply the fade and drop animations to each snow.
       Each of these properties takes two values. These values respectively match a setting
       for fade and drop.
    */
    -webkit-animation-iteration-count: infinite, infinite;
    animation-iteration-count: infinite, infinite;
    -moz-animation-iteration-count: infinite, infinite;

    -webkit-animation-direction: normal, normal;
    animation-direction: normal, normal;
    -moz-animation-direction: normal, normal;

    -webkit-animation-timing-function: linear, ease-in;
    animation-timing-function: linear, ease-in;
    -moz-animation-timing-function: linear, ease-in;
}
body > div > img {
    position: absolute;
    width: auto;
    height: auto;

    /* We use the following properties to adjust the clockwiseSpin or counterclockwiseSpinAndFlip
       animations on each snow.
       The createAsnow function in the snow.js file determines whether a snow has the 
       clockwiseSpin or counterclockwiseSpinAndFlip animation.
    */
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count:infinite;
    


    -webkit-animation-direction: alternate;
    animation-direction:alternate;
    

    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function:  ease-in-out;
    

    -webkit-transform-origin: 50% -100%;
    transform-origin:  50% -100%;
    
}
@-webkit-keyframes fade
{
    /* Show a snow while into or below 95 percent of the animation and hide it, otherwise */
    0%   { opacity: 1; }
    95%  { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes fade{
    /* Show a snow while into or below 95 percent of the animation and hide it, otherwise */
    0%   { opacity: 1; }
    95%  { opacity: 1; }
    100% { opacity: 0; }
}
@-moz-keyframes fade{
    0%   { opacity: 1; }
    95%  { opacity: 1; }
    100% { opacity: 0; }
}
@-webkit-keyframes drop
{
    /* Move a snow to -300 pixels in the y-axis at the start of the animation */
    0%   { -webkit-transform: translate(0px, -50px); }
    /* Move a snow to 600 pixels in the y-axis at the end of the animation */
    100% { -webkit-transform: translate(0px, 650px); }
}
@keyframes drop{
    /* Move a snow to -300 pixels in the y-axis at the start of the animation */
    0%   { transform: translate(0px, -50px); }
    /* Move a snow to 600 pixels in the y-axis at the end of the animation */
    100% { transform: translate(0px, 650px); }
}

@-moz-keyframes drop{
    /* Move a snow to -300 pixels in the y-axis at the start of the animation */
    0%   { transform: translate(0px, -50px); }
    /* Move a snow to 600 pixels in the y-axis at the end of the animation */
    100% {  transform: translate(0px, 650px); }
}

@-webkit-keyframes clockwiseSpin
{
    /* Rotate a snow by -50 degrees in 2D space at the start of the animation */
    0%   { -webkit-transform: rotate(-50deg); }
    /*  Rotate a snow by 50 degrees in 2D space at the end of the animation */
    100% { -webkit-transform: rotate(50deg); }
}
@keyframes clockwiseSpin{
    /* Rotate a snow by -50 degrees in 2D space at the start of the animation */
    0%   { transform: rotate(-50deg); }
    /*  Rotate a snow by 50 degrees in 2D space at the end of the animation */
    100% { transform: rotate(50deg); }
}
@-moz-keyframes clockwiseSpin{
    /* Rotate a snow by -50 degrees in 2D space at the start of the animation */
    0%   { transform: rotate(-50deg); }
    /*  Rotate a snow by 50 degrees in 2D space at the end of the animation */
    100% { transform: rotate(50deg); }
}
@-webkit-keyframes counterclockwiseSpinAndFlip 
{
    /* Flip a snow and rotate it by 50 degrees in 2D space at the start of the animation */
    0%   { -webkit-transform: scale(-1, 1) rotate(50deg); }
    /* Flip a snow and rotate it by -50 degrees in 2D space at the end of the animation */
    100% { -webkit-transform: scale(-1, 1) rotate(-50deg); }
}
@keyframes counterclockwiseSpinAndFlip{
    /* Flip a snow and rotate it by 50 degrees in 2D space at the start of the animation */
    0%   { transform: scale(-1, 1) rotate(50deg); }
    /* Flip a snow and rotate it by -50 degrees in 2D space at the end of the animation */
    100% { transform: scale(-1, 1) rotate(-50deg); }
}

@-moz-keyframes counterclockwiseSpinAndFlip{
    /* Flip a snow and rotate it by 50 degrees in 2D space at the start of the animation */
    0%   { transform: scale(-1, 1) rotate(50deg); }
    /* Flip a snow and rotate it by -50 degrees in 2D space at the end of the animation */
    100% {  transform: scale(-1, 1) rotate(-50deg); }
}