.root {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}

.root * {
  box-sizing: border-box;
}

.link {
  vertical-align: bottom;
  text-decoration: none;
  cursor: pointer;
}

.link:after {
  content: '';
  position: absolute;
  z-index: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 2px 14px 0 rgba(0, 0, 0, 0.4);
  opacity: 0;
  top: 0;
  left: 0;
  transition: opacity 200ms ease-in-out;
  z-index: -1;
}

.link:hover:after {
  opacity: 1;
}

.link > * {
  vertical-align: bottom;
}

.link .overlay {
  transition: all 200ms;
}

.link:hover .overlay {
  box-shadow: inset 0 0 0 10000px rgba(20, 20, 21, 0.3);
}
