abbr{
  border-bottom: 1px dotted;
  cursor:help;
  position: relative;
}
abbr::after,abbr::before{
    position: absolute;
    left: 50%;
    bottom: 100%;
    transform: translate(-50%);
}
abbr:hover::before{
  content:"";
  color:#000;
  opacity:0;
  
  background:#000;
  width:10px;
  height: 10px;
  border-radius:50%;
  
  animation-name: emerges, expands;
  animation-timing-function: cubic-bezier(0.24, -0.68, 0.82, 1.71), ease-out;
  animation-delay:0s,1s;
  animation-duration:1s,0.5s;
  animation-fill-mode:forwards,forwards;
}

abbr:hover::after{   
    content: attr(title);
    color: #fff;
    text-align: center;
    line-height: 50px;
    width: 186px;
    opacity: 0;
    
    animation: fadein 1s ease-out 1.5s forwards;
}


#overlay.fade-in{
  animation:fadein 1s ease-in-out both;
  display: block;
}

@keyframes emerges{
  from{
    bottom:0%;
    opcity:0;
  }
  to{
    bottom:100%;
    opacity:0.8;
  }
}

#message{
    position: absolute;
    background: #fff;
    padding: 2em;
    top: 50%;
    left: 50%;
}

@keyframes fadein{
  from{
    opacity:0;
  }
  to{
    opacity:1;
  }
}

@keyframes expands{
  from{
    width:10px
    }
  to{
      width:200px;
      height: 50px;
      border-radius:4px
     }
}

@keyframes appear{
  from{
    color: transparent
    }
  to{
    color: #fff;
    }
}
