body {
  min-height: 100vh;
  display: grid;
  place-content: start center;
  background: linear-gradient(#fff, #aaa, #fff);
}
article {
  position: absolute;
  top: 20vh;
  left: 30vw;
  width: 40vw;
  color: #333;
}
article h1,
article p {
  margin: 10px;
}
article h1 {
  font-size: 1.2rem;
}
article p {
  font-size: 0.9rem;
  line-height: 1.4;
}
.g {
  width: auto;
  height: 5vh;
  display: grid;
  grid-auto-flow: column;
  grid-auto-rows: 10vh;
  place-content: start center;
  z-index: 1;
  transition: all 1s;
  position: relative;
  top: 5vh;
}
.g:hover {
  background: linear-gradient(transparent, hsla(0, 0%, 100%, 0.5), transparent);
  height: 95vh;
  width: 50vw;
}
.g a {
  font: 0.8em monospace;
  position: static;
  display: block;
  width: 5ch;
  height: 5ch;
  display: grid;
  place-content: center;
  background: hsla(0, 0%, 100%, 0.5);
  color: #333;
  text-decoration: none;
  border-bottom: thin solid red;
  box-sizing: border-box;
}
.g a:hover {
  background: hsla(0, 0%, 0%, 0.5);
  color: #eee;
  border-bottom: 0 none;
}
.g a img {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 85vh;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  -webkit-clip-path: polygon(50% 0, 50% 0, 50% 100%, 50% 100%, 50% 0, 50% 0, 50% 100%, 50% 100%);
          clip-path: polygon(50% 0, 50% 0, 50% 100%, 50% 100%, 50% 0, 50% 0, 50% 100%, 50% 100%);
  transition: -webkit-clip-path 0.3s ease-in;
  transition: clip-path 0.3s ease-in;
  transition: clip-path 0.3s ease-in, -webkit-clip-path 0.3s ease-in;
}
.g a:hover img,
.g a img:hover {
  -webkit-clip-path: polygon(50% 0, 0 0, 0 100%, 50% 100%, 50% 0, 100% 0, 100% 100%, 50% 100%);
          clip-path: polygon(50% 0, 0 0, 0 100%, 50% 100%, 50% 0, 100% 0, 100% 100%, 50% 100%);
}
article {
  transition: filter 0.5s;
}
.g:hover + article {
  filter: blur(3px);
}