:root {
  font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;

  --icon-size: 64px;
  --max-description-lines: 2;
}

#app_container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}

a.app {
  display: block;
  display: flex;
  text-decoration: none;
  color: black;
  padding: 5px;
  border-radius: 3px;
  /* TODO sizes based on device breakpoints,
   like on mobile the size would be 90vw
   and depending on breakpoint 1/2 or 1/3 or 1/4 of screen? */
  max-width: 460px;
  align-items: center;
  flex-grow: 1;
}

a.app:hover {
  background-color: rgba(128, 128, 128, 0.2);
}

a.app:focus {
  outline: 2px solid red;
}

a.app img {
  width: var(--icon-size);
  height: var(--icon-size);
  border-radius: 7%;
  margin-inline-end: 5px;
}

a.app .props .title {
  font-size: 1.5em;
}

a.app .props .description {
  display: -webkit-box;
  -webkit-line-clamp: var(--max-description-lines);
  line-clamp: var(--max-description-lines);
  -webkit-box-orient: vertical;
  box-orient: vertical;
  overflow: hidden;
}

a.app .props .date {
  opacity: 0.5;
  font-size: smaller;
}
