.borx {  
  cursor: pointer;
 
}
.borx .inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.borx:before, .borx:after, .borx .inner:before, .borx .inner:after {
  background-color: #777777;  
}

.borx:before, .borx:after, .borx .inner:before, .borx .inner:after {
  position: absolute;
  content: "";
  display: block;
  -webkit-transition: -webkit-transform 0.5;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
.borx.horizontal:before, .borx.horizontal:after, .borx.both:before, .borx.both:after {
  left: 0;
  width: 100%;
  height: 2px;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
}
.borx.horizontal .inner:before, .borx.horizontal .inner:after, .borx.both .inner:before, .borx.both .inner:after {
  top: 0;
  width: 2px;
  height: 100%;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
}
.borx.horizontal .inner:before, .borx.both .inner:before {
  left: 0;
}
.borx.horizontal .inner:after, .borx.both .inner:after {
  right: 0;
}
.borx.horizontal .inner:hover:before, .borx.horizontal .inner:hover:after, .borx.both .inner:hover:before, .borx.both .inner:hover:after {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}
.borx.horizontal:before, .borx.both:before {
  top: 0;
}
.borx.horizontal:after, .borx.both:after {
  bottom: 0;
}
.borx.horizontal:hover:before, .borx.horizontal:hover:after, .borx.both:hover:before, .borx.both:hover:after {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}
.borx.horizontal:hover .inner:before, .borx.horizontal:hover .inner:after, .borx.both:hover .inner:before, .borx.both:hover .inner:after {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}
.borx.horizontal.clockwise .inner:before, .borx.both.clockwise .inner:before {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.horizontal.clockwise .inner:after, .borx.both.clockwise .inner:after {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.horizontal.clockwise:before, .borx.both.clockwise:before {
  -webkit-transform-origin: right center;
          transform-origin: right center;
}
.borx.horizontal.clockwise:after, .borx.both.clockwise:after {
  -webkit-transform-origin: left center;
          transform-origin: left center;
}
.borx.horizontal.clockwise:hover .inner:before, .borx.both.clockwise:hover .inner:before {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.horizontal.clockwise:hover .inner:after, .borx.both.clockwise:hover .inner:after {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.horizontal.clockwise:hover:before, .borx.both.clockwise:hover:before {
  -webkit-transform-origin: left center;
          transform-origin: left center;
}
.borx.horizontal.clockwise:hover:after, .borx.both.clockwise:hover:after {
  -webkit-transform-origin: right center;
          transform-origin: right center;
}
.borx.horizontal.counterclockwise .inner:before, .borx.both.counterclockwise .inner:before {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.horizontal.counterclockwise .inner:after, .borx.both.counterclockwise .inner:after {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.horizontal.counterclockwise:before, .borx.both.counterclockwise:before {
  -webkit-transform-origin: left center;
          transform-origin: left center;
}
.borx.horizontal.counterclockwise:after, .borx.both.counterclockwise:after {
  -webkit-transform-origin: right center;
          transform-origin: right center;
}
.borx.horizontal.counterclockwise:hover .inner:before, .borx.both.counterclockwise:hover .inner:before {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.horizontal.counterclockwise:hover .inner:after, .borx.both.counterclockwise:hover .inner:after {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.horizontal.counterclockwise:hover:before, .borx.both.counterclockwise:hover:before {
  -webkit-transform-origin: right center;
          transform-origin: right center;
}
.borx.horizontal.counterclockwise:hover:after, .borx.both.counterclockwise:hover:after {
  -webkit-transform-origin: left center;
          transform-origin: left center;
}
.borx.vertical:before, .borx.vertical:after {
  top: 0;
  width: 2px;
  height: 100%;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
}
.borx.vertical:before {
  left: 0;
}
.borx.vertical:after {
  right: 0;
}
.borx.vertical:hover:before, .borx.vertical:hover:after {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}
.borx.vertical.clockwise:before {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.vertical.clockwise:after {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.vertical.clockwise:hover:before {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.vertical.clockwise:hover:after {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.vertical.counterclockwise:before {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.borx.vertical.counterclockwise:after {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.vertical.counterclockwise:hover:before {
  -webkit-transform-origin: top center;
          transform-origin: top center;
}
.borx.vertical.counterclockwise:hover:after {
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}

.codepen-link {
  position: absolute;
  bottom: 30px;
  right: 30px;
  height: 40px;
  width: 40px;
  z-index: 10;
  border-radius: 50%;
  box-sizing: border-box;
  background-image: url("");
  background-position: center center;
  background-size: cover;
  opacity: 0.5;
  -webkit-transition: all 0.25s;
  transition: all 0.25s;
}
.codepen-link:hover {
  opacity: 0.8;
  box-shadow: 0 0 6px #efefef;
}