.card {
  display: grid;
  grid-template-columns: calc(126rem / 16) auto;
  grid-template-areas:
    "picture name"
    "picture role"
    "picture description";
  column-gap: calc(32rem / 16);
  row-gap: 0;
  justify-items: start;
  align-items: start;
}

.picture {
  grid-area: picture;
  justify-self: center;

  max-width: calc(126rem / 16);
  max-height: calc(126rem / 16);

  clip-path: circle(50%);
}

.image {
  width: 100%;
}

.name {
  grid-area: name;
  margin: 0;

  color: var(--primary-accent);
  font-size: calc(36rem / 16);
  font-weight: 600;
}

.role {
  grid-area: role;
  margin: 0;

  color: var(--primary-heading);
  font-size: calc(24rem / 16);
  line-height: calc(40 / 24);
  font-weight: 600;
}

.description {
  grid-area: description;
}

.description > *:first-child {
  margin-top: 0;
}

/* Popup */

@keyframes popup {
  0% {
    transform: scale(0.4) translate(0, -50%);
  }
  100% {
    transform: scale(1) translate(0, -50%);
  }
}

@keyframes revealBg {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 100%;
  }
}

.popupBackground {
  position: fixed;
  z-index: 11;
  background-color: var(--navbar-page-overlay);
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  animation: revealBg 0.2s forwards;
}

.popupContainer {
  position: fixed;
  display: flex;
  z-index: 12;
  flex-direction: column;
  background-color: var(--secondary-background);
  padding: calc(20rem / 16) calc(40rem / 16);
  left: 0;
  top: 50%;
  animation: popup 0.7s forwards;
}

.closeBtn {
  align-self: flex-end;
  /* reset default button styling */
  width: min-content;
  background: transparent;
  border: 0px solid transparent;
  padding: 0;
  font-family: inherit;
  line-height: inherit;
}

.popupContent {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.popupImage {
  width: 100%;
}

.popupName {
  color: var(--primary-accent);
  margin: calc(24rem / 16) 0 0 0;
  font-size: calc(18rem / 16);
  font-weight: 600;
}

.popupRole {
  color: var(--primary-heading);
  margin: 0 0 1rem 0;
  text-align: center;
  font-size: calc(18rem / 16);
  font-weight: 600;
}

.popupDescription {
  font-size: calc(14rem / 16);
}

@media only screen and (max-width: calc(768rem / 16)) {
  .card {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: calc(135rem / 16);
    margin: 0;
  }

  .name {
    margin-top: calc(24rem / 16);
    font-weight: 700;
  }

  .name,
  .role {
    text-align: center;
    font-size: calc(14rem / 16);
  }

  .description {
    display: none;
  }
}
