html, body {
  margin: 0;
  padding: 0;
}
body {
  background: #000;
  background: rgba(0, 0, 0, 1);
  overflow-x: hidden; 
}

/* ---------- Fog ---------- */
.fogwrapper {
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%;
  -webkit-filter: blur(0.5px) grayscale(0.1) saturate(1.3);
  filter: blur(0.5px) grayscale(0.1) saturate(1.3);
}
#foglayer_01, #foglayer_02, #foglayer_03 {
  height: 100%;
  position: absolute;
  width: 200%;
}
#foglayer_01 .image01, #foglayer_01 .image02,
#foglayer_02 .image01, #foglayer_02 .image02,
#foglayer_03 .image01, #foglayer_03 .image02 {
  float: left;
  height: 100%;
  width: 50%;
}
#foglayer_01 {
  z-index: 1; /* sfondo */
  -webkit-animation: foglayer_01_opacity 10s linear infinite, foglayer_moveme 15s linear infinite;
  -moz-animation: foglayer_01_opacity 10s linear infinite, foglayer_moveme 15s linear infinite;
  animation: foglayer_01_opacity 10s linear infinite, foglayer_moveme 15s linear infinite;
}

#foglayer_02 {
  z-index: 5; /* più vicino allo schermo */
  -webkit-animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 13s linear infinite;
  -moz-animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 13s linear infinite;
  animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 13s linear infinite;
}

#foglayer_03 {
  z-index: 6; /* più vicino dello strato 2 */
  -webkit-animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 13s linear infinite;
  -moz-animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 13s linear infinite;
  animation: foglayer_02_opacity 21s linear infinite, foglayer_moveme 13s linear infinite;
}

/* ---------- Moving Fog ---------- */
#foglayer_01 .image01, #foglayer_01 .image02 {
  background: url("https://raw.githubusercontent.com/danielstuart14/CSS_FOG_ANIMATION/master/fog1.png") center center/cover no-repeat transparent;
}
#foglayer_02 .image01, #foglayer_02 .image02,
#foglayer_03 .image01, #foglayer_03 .image02{
  background: url("https://raw.githubusercontent.com/danielstuart14/CSS_FOG_ANIMATION/master/fog2.png") center center/cover no-repeat transparent;
}

/* ---------- Keyframe Layer 1 ---------- */
@-webkit-keyframes foglayer_01_opacity {
  0%   { opacity: .4; }
  22%  { opacity: .8; }
  40%  { opacity: .6; }
  58%  { opacity: .7; }
  80%  { opacity: .5; }
  100% { opacity: .4; }
}
@-moz-keyframes foglayer_01_opacity {
  0%   { opacity: .4; }
  22%  { opacity: .8; }
  40%  { opacity: .6; }
  58%  { opacity: .7; }
  80%  { opacity: .5; }
  100% { opacity: .4; }
}
@-o-keyframes foglayer_01_opacity {
  0%   { opacity: .4; }
  22%  { opacity: .8; }
  40%  { opacity: .6; }
  58%  { opacity: .7; }
  80%  { opacity: .5; }
  100% { opacity: .4; }
}
@keyframes foglayer_01_opacity {
  0%   { opacity: .4; }
  22%  { opacity: .8; }
  40%  { opacity: .6; }
  58%  { opacity: .7; }
  80%  { opacity: .5; }
  100% { opacity: .4; }
}

/* ---------- Keyframe Layer 2 ---------- */
@-webkit-keyframes foglayer_02_opacity {
  0%   { opacity: .6; }
  25%  { opacity: .4; }
  50%  { opacity: .5; }
  80%  { opacity: .7; }
  100% { opacity: .6; }
}
@-moz-keyframes foglayer_02_opacity {
  0%   { opacity: .6; }
  25%  { opacity: .4; }
  50%  { opacity: .5; }
  80%  { opacity: .7; }
  100% { opacity: .6; }
}
@-o-keyframes foglayer_02_opacity {
  0%   { opacity: .6; }
  25%  { opacity: .4; }
  50%  { opacity: .5; }
  80%  { opacity: .7; }
  100% { opacity: .6; }
}
@keyframes foglayer_02_opacity {
  0%   { opacity: .6; }
  25%  { opacity: .4; }
  50%  { opacity: .5; }
  80%  { opacity: .7; }
  100% { opacity: .6; }
}

/* ---------- Keyframe Layer 3 ---------- */
@-webkit-keyframes foglayer_03_opacity {
  0%   { opacity: .7; }
  27%  { opacity: .5; }
  52%  { opacity: .8; }
  68%  { opacity: .6; }
  100% { opacity: .7; }
}
@-moz-keyframes foglayer_03_opacity {
  0%   { opacity: .7; }
  27%  { opacity: .5; }
  52%  { opacity: .8; }
  68%  { opacity: .6; }
  100% { opacity: .7; }
}
@-o-keyframes foglayer_03_opacity {
  0%   { opacity: .7; }
  27%  { opacity: .5; }
  52%  { opacity: .8; }
  68%  { opacity: .6; }
  100% { opacity: .7; }
}
@keyframes foglayer_03_opacity {
  0%   { opacity: .7; }
  27%  { opacity: .5; }
  52%  { opacity: .8; }
  68%  { opacity: .6; }
  100% { opacity: .7; }
}

/* ---------- Keyframe moveMe ---------- */
@-webkit-keyframes foglayer_moveme {
  0% { left: 0; }
  100% { left: -100%; }
}
@-moz-keyframes foglayer_moveme {
  0% { left: 0; }
  100% { left: -100%; }
}
@-o-keyframes foglayer_moveme {
  0% { left: 0; }
  100% { left: -100%; }
}
@keyframes foglayer_moveme {
  0% { left: 0; }
  100% { left: -100%; }
}

@media only screen
  and (min-width: 280px)
  and (max-width: 767px) {
    #foglayer_01 .image01, #foglayer_01 .image02,
    #foglayer_02 .image01, #foglayer_02 .image02,
    #foglayer_03 .image01, #foglayer_03 .image02 {
      width: 100%;
    }
  }
