:root{
  --maxw: 880px;
  --pad: 16px;
  --link: #0000EE; /* 1900ba */
  --bold: 550;
}

html, body{
  margin: 0;
  padding: 0;
  background: #fff;
  color: #000;
  font-family: "Google Sans Flex", "Roboto", Arial, Helvetica, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
}

.wrap{
  max-width: var(--maxw);
  padding: 16px var(--pad);
  margin: 16px var(--pad); /* Left-justify */
  /* margin: 16px auto; Center */
}

h1{
  margin: 0 0 6px 0;
  font-size: 1.75rem;
  font-weight: 700;
}

h2{
  margin: 28px 0 12px 0;
  font-size: 1.25rem;
  font-weight: 700;
}

p{
  margin: 0 0 12px 0;
}

.subhead{
  margin: 0;
}

a{
  color: var(--link);
  text-decoration: none;
}

a:hover{
  text-decoration: none;
}

.pub{
  margin: 0 0 16px 0;
}

.pub-title{
  margin: 0 0 2px 0;
}

.pub-meta{
  margin: 0;
}

.pub-links{
  margin: 2px 0 0 0;
}

.journal{
  font-weight: var(--bold);
}

.contact{
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.contact-photo{
  margin: 0;
  flex: 0 0 auto;
  align-self: flex-start;
}

.contact-photo img{
  height: 190px;
  width: auto;
  display: block;
}

/* Mobile: larger text, photo below contact text, generous side margins */
@media (max-width: 800px){
  body{
    font-size: 18px;
  }

  h2{
    font-size: 1.4rem;
  }
  .wrap{
    margin: 12px var(--pad);
  }

  .contact{
    flex-direction: column;
    gap: 16px;
  }

  .contact-photo{
    align-self: center;
    margin: 20px 0;
  }

  .contact-photo img{
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: min(80vw, 300px);
    width: auto;
    height: auto;
  }

  .pub{
    margin-bottom: 22px;
  }
}
