.locked {
  overflow-y: hidden; }

#modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  width: 100vw;
  height: 100%;
  height: 100vh;
  overflow-y: scroll;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
  transition: opacity 0.5s ease, visibility 0.5s ease; }
  #modal.active {
    visibility: visible;
    opacity: 1; }
    #modal.active .modal-inner {
      -webkit-transform: translateY(0);
      transform: translateY(0); }
  #modal .modal-inner {
    position: relative;
    padding: 80px 50px;
    max-width: 800px;
    height: auto;
    margin: 230px auto 0;
    background: #fff;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4);
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease; }
    #modal .modal-inner :first-child {
      margin-top: 0; }
  #modal .modal-close {
    position: absolute;
    top: 15px;
    right: 15px;
    font-size: 42px;
    color: #333;
    text-decoration: none; }
    #modal .modal-close:hover, #modal .modal-close:focus {
      text-decoration: none;
      color: #000; }
  #modal .saving {
    position: relative;
    left: 50%;
    margin-left: -18px;
    width: 16px;
    height: 16px;
    background: #333;
    border-radius: 100%;
    -webkit-animation-name: hover-rotate;
    -webkit-animation-duration: 2s;
    -webkit-animation-iteration-count: infinite;
    animation-name: hover-rotate;
    animation-duration: 2s;
    animation-iteration-count: infinite; }
    #modal .saving:first-child {
      margin-top: 50px; }
    #modal .saving:before, #modal .saving:after {
      position: absolute;
      display: block;
      width: inherit;
      height: inherit;
      background: inherit;
      content: '';
      border-radius: 100%;
      -webkit-animation-name: hover;
      -webkit-animation-duration: 2s;
      -webkit-animation-iteration-count: infinite;
      animation-name: hover;
      animation-duration: 2s;
      animation-iteration-count: infinite; }
    #modal .saving:before {
      left: -22px; }
    #modal .saving:after {
      left: 24px; }
    #modal .saving + h1 {
      text-align: center; }

@-webkit-keyframes hover {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  50% {
    -webkit-transform: translateY(-35px);
    transform: translateY(-35px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }
@keyframes hover {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  50% {
    -webkit-transform: translateY(-35px);
    transform: translateY(-35px); }
  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0); } }
@-webkit-keyframes hover-rotate {
  0% {
    -webkit-transform: translateY(0) rotateZ(0);
    transform: translateY(0) rotateZ(0); }
  50% {
    -webkit-transform: translateY(-35px) rotateZ(-180deg);
    transform: translateY(-35px) rotateZ(-180deg); }
  100% {
    -webkit-transform: translateY(0) rotateZ(-360deg);
    transform: translateY(0) rotateZ(-360deg); } }
@keyframes hover-rotate {
  0% {
    -webkit-transform: translateY(0) rotateZ(0);
    transform: translateY(0) rotateZ(0); }
  50% {
    -webkit-transform: translateY(-35px) rotateZ(-180deg);
    transform: translateY(-35px) rotateZ(-180deg); }
  100% {
    -webkit-transform: translateY(0) rotateZ(-360deg);
    transform: translateY(0) rotateZ(-360deg); } }
