.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();
}

.image {
  width: calc(126rem / 16);
  height: calc(126rem / 16);
}

.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;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 11;

  background-color: var(--navbar-page-overlay);
  animation: revealBg 0.2s forwards;
}

.popupContainer {
  position: fixed;
  left: 0;
  right: 0;
  top: 50%;
  z-index: 12;

  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;

  box-sizing: border-box;
  padding: calc(40rem / 16);
  max-height: 75vh;
  overflow: auto;

  background-color: var(--secondary-background);
  animation: popup 0.7s forwards;
}

.closeBtn {
  position: absolute;
  align-self: flex-end;
  cursor: pointer;

  display: flex;
  justify-content: center;
  align-items: center;

  /* reset default button styling */
  background: none;
  border: none;
  padding: 0;
}

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

.popupContent .name {
  margin-top: calc(24rem / 16);
  font-size: calc(18rem / 16);
  font-weight: 600;
}

.popupContent .role {
  margin-bottom: calc(16rem / 16);
  font-size: calc(18rem / 16);
  font-weight: 600;
}

.popupContent .description {
  display: block;
  font-size: calc(14rem / 16);
}

.popupContent .description > *:last-child {
  margin-bottom: 0;
}

@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;
  }
}
