.splash-screen {
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  position: fixed;
  z-index: 10000;
  background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
  background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
  background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
  background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0, #A7A7A7),color-stop(0.51, #E4E4E4));
  top:0;
  right:0;
  bottom:0;
  left:0;
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
  background: rgba(255, 255, 255, .9);
  color: #222;
}
.loading {
  position: fixed;
  z-index: 999;
  right: 2vw;
  bottom: 2vh;
}
.background-effect {
  position:fixed;
  top:0;height: 100vh;
  width: 100vw;
  z-index:-2;
  animation:kenburns 20s ease infinite;
  -ms-animation:kenburns 20s ease infinite;
  -webkit-animation:kenburns 20s ease infinite;
  -0-animation:kenburns 20s ease infinite;
  -moz-animation:kenburns 20s ease infinite;
}
.background-effect-overlay {
  content: '';
  z-index: -1;
  position:fixed;
  top:0;
  height:100vh;
  width:100vw;
  background:linear-gradient(to bottom, rgba(90, 93, 165, 1), rgba(0, 0, 0, .7));
  background:-webkit-linear-gradient(top, rgba(90, 93, 165, 1), rgba(0, 0, 0, .7));
}

@keyframes kenburns {
  0% {
    opacity: 0;
  }
  5% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  95% {
    transform: scale(1.2) translate(5vw, 5vh);
    -ms-transform: scale(1.2) translate(5vw, 5vh);
    -webkit-transform: scale(1.2) translate(5vw, 5vh);
    -o-transform: scale(1.2) translate(5vw, 5vh);
    -moz-transform: scale(1.2) translate(5vw, 5vh);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
.ng-valid[required], .ng-valid.required  {
  border-left: 5px solid #42A948!important; /* green */
}
.ng-invalid:not(form)  {
  border-left: 5px solid #a94442!important; /* red */
}
