:root { --line-size: 5px; } .link-container { width: 60rem; height: 20rem; margin-bottom: 2rem; cursor: pointer; transition: var(--transition); display: grid; border-radius: 1rem; grid-template-areas: "overlay"; } .link-container:hover { box-shadow: var(--shadow); } .link-container svg { margin-left: 1rem; color: var(--color-text); transition: var(--transition); } .link-img { display: grid; grid-template-areas: "overlay"; max-width: 30rem; height: 20rem; } .link-img img { grid-area: overlay; height: 100%; width: auto; } .link-img-hover { opacity: 0; } .link-content { grid-area: overlay; width: 60rem; height: 20rem; border-radius: 1rem; } .link-background { grid-area: overlay; width: 60rem; height: 20rem; border-radius: 1rem; opacity: 0; background-image: var(--gradient); } /* Link Underlined */ .link-content>span { font-family: 'JetBrains Mono'; font-weight: 500; font-size: 2.5rem; text-decoration: none; position: relative; color: var(--color-text); transition: var(--transition); } .link-content>span::after { content: ""; position: absolute; background-color: var(--color-background); height: var(--line-size); bottom: calc(0px - var(--line-size)); height: var(--line-size); left: 0; transition: var(--transition); width: var(--span-width); }