@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes cloud {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0.3;
  }
  to {
    opacity: 0;
    transform: scale(0.5) translate(-200%, -3em);
  }
}
@keyframes rain {
  0% {
    background: #0cf;
    box-shadow: 0.625em 0.875em 0 -0.125em rgba(255, 255, 255, 0.2),
      -0.875em 1.125em 0 -0.125em rgba(255, 255, 255, 0.2),
      -1.375em -0.125em 0 #0cf;
  }
  25% {
    box-shadow: 0.625em 0.875em 0 -0.125em rgba(255, 255, 255, 0.2),
      -0.875em 1.125em 0 -0.125em #0cf,
      -1.375em -0.125em 0 rgba(255, 255, 255, 0.2);
  }
  50% {
    background: rgba(255, 255, 255, 0.3);
    box-shadow: 0.625em 0.875em 0 -0.125em #0cf,
      -0.875em 1.125em 0 -0.125em rgba(255, 255, 255, 0.2),
      -1.375em -0.125em 0 rgba(255, 255, 255, 0.2);
  }
  to {
    box-shadow: 0.625em 0.875em 0 -0.125em rgba(255, 255, 255, 0.2),
      -0.875em 1.125em 0 -0.125em rgba(255, 255, 255, 0.2),
      -1.375em -0.125em 0 #0cf;
  }
}
@keyframes lightning {
  45%,
  55% {
    color: #fff;
    background: #fff;
    opacity: 0.2;
  }
  50% {
    color: #0cf;
    background: #0cf;
    opacity: 1;
  }
}
body {
  background-color: green;
}
#footer p,
#footer-bottom p,
.row {
  margin: 0;
}
.col-all-7 {
  width: 66%;
}
.col-all-5 {
  width: 34%;
}
#outer-box {
  position: relative;
  height: 400px;
  width: 320px;
  top: 100px;
  background-color: #f5f5f5;
  border: 9px solid #000;
  border-radius: 25px;
  box-shadow: 0 0 0 12px rgba(0, 0, 0, 0.3);
}
#weather-icon {
  width: 192px;
}
#weather-icon,
#weather-icon-pic {
  margin: 45px 0 14px;
  height: 160px;
}
.icon {
  position: relative;
  display: inline-block;
  width: 12em;
  height: 10em;
  font-size: 1.2em;
}
.cloud,
.cloud:after {
  position: absolute;
  background: currentColor;
}
.cloud {
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 3.6875em;
  height: 3.6875em;
  margin: -1.84375em;
  color: #f5f5f5;
  border-radius: 50%;
  box-shadow: -2.1875em 0.6875em 0 -0.6875em, 2.0625em 0.9375em 0 -0.9375em,
    0 0 0 0.375em #000, -2.1875em 0.6875em 0 -0.3125em #000,
    2.0625em 0.9375em 0 -0.5625em #000;
}
.cloud:after {
  content: "";
  bottom: 0;
  left: -0.5em;
  display: block;
  width: 4.5625em;
  height: 1em;
  box-shadow: 0 0.4375em 0 -0.0625em #000;
}
.cloud:nth-child(2) {
  z-index: 0;
  background: #000;
  box-shadow: -2.1875em 0.6875em 0 -0.6875em #000,
    2.0625em 0.9375em 0 -0.9375em #000, 0 0 0 0.375em #000,
    -2.1875em 0.6875em 0 -0.3125em #000, 2.0625em 0.9375em 0 -0.5625em #000;
  opacity: 0.3;
  transform: scale(0.5) translate(6em, -3em);
  animation: cloud 4s linear infinite;
}
.cloud:nth-child(2):after {
  background: #000;
}
.sun {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.5em;
  height: 2.5em;
  margin: -1.25em;
  background: currentColor;
  background-color: #f5f5f5;
  border-radius: 50%;
  box-shadow: 0 0 0 0.375em #000;
  animation: spin 12s infinite linear;
}
.rays,
.rays:after,
.rays:before {
  position: absolute;
  display: block;
  width: 0.375em;
  height: 1.125em;
  background: #000;
  border-radius: 0.25em;
  box-shadow: 0 5.375em #000;
}
.rays {
  top: -2em;
  left: 50%;
  margin-left: -0.1875em;
}
.rays:after,
.rays:before {
  content: "";
  top: 0;
  left: 0;
  transform-origin: 50% 3.25em;
}
.rays:after {
  transform: rotate(60deg);
}
.rays:before {
  transform: rotate(120deg);
}
.cloud + .sun {
  margin: -2em 1em;
}
.lightning,
.rain,
.snow {
  z-index: 2;
  width: 3.75em;
  height: 3.75em;
  margin: 0.375em 0 0 -2em;
  background: currentColor;
  color: #f5f5f5;
}
.bolt,
.lightning,
.rain,
.rain:after,
.snow {
  position: absolute;
  top: 50%;
  left: 50%;
}
.rain:after {
  content: "";
  z-index: 2;
  width: 1.125em;
  height: 1.125em;
  margin: -1em 0 0 -0.25em;
  background: #0cf;
  border-radius: 100% 0 60% 50%/60% 0 100% 50%;
  box-shadow: 0.625em 0.875em 0 -0.125em rgba(255, 255, 255, 0.2),
    -0.875em 1.125em 0 -0.125em rgba(255, 255, 255, 0.2),
    -1.375em -0.125em 0 rgba(255, 255, 255, 0.2);
  transform: rotate(-28deg);
  animation: rain 3s linear infinite;
}
.bolt {
  margin: -0.25em 0 0 -0.125em;
  color: #000;
  opacity: 0.3;
  animation: lightning 2s linear infinite;
}
.bolt:nth-child(2) {
  width: 0.5em;
  height: 0.25em;
  margin: -1.75em 0 0 -1.875em;
  transform: translate(2.5em, 2.25em);
  opacity: 0.2;
  animation: lightning 1.5s linear infinite;
}
.bolt:after,
.bolt:before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  margin: -1.625em 0 0 -1.0125em;
  border-top: 1.25em solid transparent;
  border-right: 0.75em solid;
  border-bottom: 0.75em solid;
  border-left: 0.5em solid transparent;
  transform: skewX(-10deg);
}
.bolt:after {
  margin: -0.25em 0 0 -0.25em;
  border-top: 0.75em solid;
  border-right: 0.5em solid transparent;
  border-bottom: 1.25em solid transparent;
  border-left: 0.75em solid;
}
.bolt:nth-child(2):before {
  margin: -0.75em 0 0 -0.5em;
  border-top: 0.625em solid transparent;
  border-right: 0.375em solid;
  border-bottom: 0.375em solid;
  border-left: 0.25em solid transparent;
}
.bolt:nth-child(2):after {
  margin: -0.125em 0 0 -0.125em;
  border-top: 0.375em solid;
  border-right: 0.25em solid transparent;
  border-bottom: 0.625em solid transparent;
  border-left: 0.375em solid;
}
.flake:after,
.flake:before {
  content: "\2745";
  position: absolute;
  top: 50%;
  left: 50%;
  color: #000;
  margin: -1.025em 0 0 -1.0125em;
  line-height: 1em;
  opacity: 0.3;
  animation: spin 8s linear infinite reverse;
}
.flake:after {
  margin: 0.125em 0 0 -1em;
  font-size: 1.75em;
  opacity: 0.6;
  animation: spin 14s linear infinite;
}
.flake:nth-child(2):before {
  margin: -0.5em 0 0 0.25em;
  font-size: 1.25em;
  opacity: 0.3;
  animation: spin 10s linear infinite;
}
.flake:nth-child(2):after {
  margin: 0.25em 0 0 0.1em;
  font-size: 2.25em;
  opacity: 0.6;
  animation: spin 16s linear infinite reverse;
}
#main-body {
  margin: 10px 25px;
}
#temp {
  margin: 0;
  padding: 0 12px;
  height: 65px;
  font-size: 48px;
}
.switch {
  position: relative;
  top: 20px;
  left: 1px;
  margin: 0 auto;
  display: inline-block;
  width: 60px;
  height: 34px;
}
.switch input {
  display: none;
}
.slider,
.slider:before {
  position: absolute;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
.slider {
  display: none;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
}
.slider:before {
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: #f5f5f5;
}
input:checked + .slider {
  background-color: #ccc;
}
input:focus + .slider {
  box-shadow: 0 0 1px #2196f3;
}
input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}
.slider.round {
  border-radius: 34px;
}
.slider.round:before {
  border-radius: 50%;
}
#footer .container {
  padding: 0;
}
#footer {
  width: 265px;
  height: 110px;
}
#weather-text {
  position: absolute;
  bottom: 8px;
  font-style: italic;
  color: gray;
}
#city-text {
  position: absolute;
  bottom: 5px;
  left: 98px;
  padding-left: 8px;
  font-size: 24px;
}
#footer-bottom {
  position: relative;
  top: 130px;
}
#footer-bottom .text-center {
  background: #f5f5f5;
  padding: 10px;
  border-radius: 5px;
  opacity: 0.8;
}
#copy {
  margin-top: 10px;
  font-family: "Lato", sans-serif;
  font-size: 16px;
}
