a.effect-underline:after {
  content:'';
  float:left;
  position:relative;
  left:0;
  display:inline-block;
  width:100%;
  border-bottom:1px solid;
  opacity:0;
  -webkit-transition:opacity 0.35s, -webkit-transform 0.35s;
  transition:opacity 0.35s, transform 0.35s;
  -webkit-transform:scale(0,1);
  transform:scale(0,1);
}

a.effect-underline:hover:after {
  opacity:1;
  -webkit-transform:scale(1);
  transform:scale(1);
}

a.effect-box:after, a.effect-box:before {
  content:'';
  position:absolute;
  left:0;
  display:inline-block;
  height:1em;
  width:100%;
  margin-top:10px;
  opacity:0;
  -webkit-transition:opacity 0.35s, -webkit-transform 0.35s;
  transition:opacity 0.35s, transform 0.35s;
}

a.effect-box:before {
  border-left:1px solid;
  border-right:1px solid;
  -webkit-transform:scale(1,0);
  transform:scale(1,0);
}

a.effect-box:after {
  border-bottom:1px solid;
  border-top:1px solid;
  -webkit-transform:scale(0,1);
  transform:scale(0,1);
}

a.effect-box:hover:after, a.effect-box:hover:before {
  opacity:1;
  -webkit-transform:scale(1);
  transform:scale(1);
}

a.effect-shine:hover {
  -webkit-mask-image:linear-gradient(-75deg, rgba(0,0,0,.6) 30%, #000 50%, rgba(0,0,0,.6) 70%);
  -webkit-mask-size:200%;
  animation:shine 2s infinite;
}

