*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.container-animation {
  position: relative;
  font-size: 100px;
  width: 2.7em;
  margin: 80px auto;
  .front {
    width: 2.7em;
    height: 4em;
    border: 10px solid #333;
    position: relative;
    border-bottom: 0;
  }
  .interior {
    -webkit-perspective: 200px;
    perspective: 200px;
    width: 100%;
    height: 100%;
    position: relative;
    [class^="side"] {
      position: absolute;
    }
    .side-left {
      left: 0;
      width: 1em;
      height: 100%;
      background: var(--secondary);
      -webkit-transform-origin: 0 50%;
      -webkit-transform: rotateY(90deg);
      transform-origin: 0 50%;
      transform: rotateY(90deg);
      &:after {
        content: "";
        width: 100%;
        height: 0.4em;
        background: #fff;
        position: absolute;
        bottom: 1.3em;
      }
    }
    .side-back {
      left: 0.01em;
      width: 2.5em;
      height: 100%;
      background: var(--primary);
      -webkit-transform-origin: 0 50%;
      -webkit-transform: translateZ(-1em);
      transform-origin: 0 50%;
      transform: translateZ(-1em);
      &:after {
        content: "";
        width: 100%;
        height: 0.4em;
        background: #ddd;
        position: absolute;
        bottom: 1.3em;
      }
    }
    .side-right {
      right: 0;
      width: 1em;
      height: 100%;
      background: var(--secondary);
      -webkit-transform-origin: 100% 50%;
      -webkit-transform: rotateY(-90deg);
      transform-origin: 100% 50%;
      transform: rotateY(-90deg);
      &:after {
        content: "";
        width: 100%;
        height: 0.4em;
        background: #fff;
        position: absolute;
        bottom: 1.3em;
      }
    }
    .side-top {
      top: 0;
      left: 0;
      width: 100%;
      height: 1em;
      background: #aaa;
      -webkit-transform-origin: 50% 0;
      -webkit-transform: rotateX(-90deg);
      transform-origin: 50% 0;
      transform: rotateX(-90deg);
    }
    .side-bottom {
      bottom: 0;
      left: 0;
      width: 100%;
      height: 1em;
      background: #f1f1f1;
      -webkit-transform-origin: 50% 100%;
      -webkit-transform: rotateX(90deg);
      transform-origin: 50% 100%;
      transform: rotateX(90deg);
    }
  }
  [class^="mask"] {
    position: absolute;
    height: 101.3%;
    width: 1.4em;
    bottom: 0;
    background: #fff;
    z-index: 10;
    border-bottom: 5px solid #333;
  }
  .mask-door-left {
    left: -1.4em;
    border-right: 10px solid #333;
  }
  .mask-door-right {
    right: -1.4em;
    border-left: 10px solid #333;
  }
  [class^="door"] {
    position: absolute;
    height: 100%;
    width: 1.25em;
    top: 0px;
    z-index: 9;
  }
  .door-left {
    background: #666;
    left: 0;
    -webkit-transform: translate3D(0,0,0);
    transform: translate3D(0,0,0);
    border-right: 1px solid #000;
    -webkit-animation: move-door-left 7s ease 2s infinite;
    animation: move-door-left 7s ease 2s infinite;
  }
  .door-right {
    background: #666;
    right: 0;
    -webkit-transform: translate3D(0,0,0);
    transform: translate3D(0,0,0);
    border-left: 1px solid #000;
    -webkit-animation: move-door-right 7s ease 2s infinite;
    animation: move-door-right 7s ease 2s infinite;
  }
}

@-webkit-keyframes move-door-left {
  0% { -webkit-transform: translate3D(0,0,0); }
  20% { -webkit-transform: translate3D(-1.35em,0,0); }
  50% { -webkit-transform: translate3D(-1.35em,0,0); }
  70% { -webkit-transform: translate3D(0,0,0); }
  100% { -webkit-transform: translate3D(0,0,0); }
}

@-webkit-keyframes move-door-right {
  0% { -webkit-transform: translate3D(0,0,0); }
  20% { -webkit-transform: translate3D(1.35em,0,0); }
  50% { -webkit-transform: translate3D(1.35em,0,0); }
  70% { -webkit-transform: translate3D(0,0,0); }
  100% { -webkit-transform: translate3D(0,0,0); }
}

@keyframes move-door-left {
  0% { transform: translate3D(0,0,0); }
  20% { transform: translate3D(-1.35em,0,0); }
  50% { transform: translate3D(-1.35em,0,0); }
  70% { transform: translate3D(0,0,0); }
  100% { transform: translate3D(0,0,0); }
}

@keyframes move-door-right {
  0% { transform: translate3D(0,0,0); }
  20% { transform: translate3D(1.35em,0,0); }
  50% { transform: translate3D(1.35em,0,0); }
  70% { transform: translate3D(0,0,0); }
  100% { transform: translate3D(0,0,0); }
}


@media (max-width: 768px) {
  .container-animation {
  font-size: 80px;}
}

@media (max-width: 480px) {
  .container-animation {
  font-size: 60px;}
}

/* Theme overrides */
.container-animation .front {
  border-color: var(--primary);
}

.container-animation [class^="mask"] {
  background: var(--white);
  border-bottom-color: var(--primary);
}

.container-animation .mask-door-left {
  border-right-color: var(--primary);
}

.container-animation .mask-door-right {
  border-left-color: var(--primary);
}

.container-animation .door-left,
.container-animation .door-right {
  background: var(--secondary);
  border-color: rgba(2, 6, 23, 0.35);
}

.container-animation .side-back {
  background: rgba(32, 64, 91, 0.8);
}

.container-animation .side-left,
.container-animation .side-right {
  background: rgba(32, 64, 91, 0.45);
}

.container-animation .side-top {
  background: rgba(39, 122, 178, 0.4);
}

.container-animation .side-bottom {
  background: var(--light);
}


