body,
.identity,
.header nav a,
.banner,
.welcome,
.news {
  font-family: "Lora", Georgia, serif;
}

sub {
  font-size: .72em;
  line-height: 0;
  vertical-align: sub;
}

/* Scale typography against the page width used in the approved reference. */
.identity { font-size: clamp(17px, 1.72vw, 31px); }
.header nav a { font-size: clamp(16px, 1.61vw, 29px); }
.banner i { font-size: clamp(17px, 1.94vw, 35px); }
.banner strong { font-size: clamp(24px, 2.72vw, 49px); }
.slide h2 { font-size: clamp(19px, 1.72vw, 31px); }
.slide p { font-size: clamp(17px, 1.44vw, 26px); }
.welcome { font-size: clamp(18px, 1.72vw, 31px); }
.welcome h1 { font-size: clamp(20px, 1.83vw, 33px); }
.news h2 { font-size: clamp(27px, 2.17vw, 39px); }
.news p { font-size: clamp(17px, 1.61vw, 29px); }

/* The supplied banner is already cropped and graded; display it unchanged. */
.banner {
  aspect-ratio: 2752 / 508;
}
.banner > img {
  width: 100%;
  height: auto;
  aspect-ratio: 2752 / 508;
  object-fit: contain;
  object-position: center;
  filter: none;
  background: #111;
}

.identity { font-weight: 400; }
.header nav a { font-size: clamp(14px, 1.28vw, 23px); }
.welcome h1 { font-size: inherit; line-height: inherit; }
.news h2 { text-decoration: none; }
.news p i { text-decoration: underline; text-underline-offset: .12em; }
.header nav a { font-size: clamp(13px, 1.08vw, 20px); font-weight: 400; }
.header nav a.active { font-weight: 700; }
.welcome { font-size: clamp(16px, 1.4vw, 25px); }
.welcome h1 { font-size: inherit; }
.news { border-top-color: #d2d2d2; }
.welcome,
.welcome h1,
.welcome p,
.news,
.news p,
.news i {
  font-family: "Lora", Georgia, serif;
  font-style: normal;
  line-height: 1.2;
}

.welcome,
.welcome h1,
.welcome p,
.news,
.news h2,
.news p {
  line-height: 1.25;
}

.welcome,
.welcome h1,
.welcome p,
.news,
.news h2 {
  line-height: 1.25;
}

.welcome h1,
.welcome p {
  margin-bottom: 1em;
}

.welcome h1 {
  margin-bottom: 1em;
}

.welcome p:last-child {
  margin-bottom: 0;
}

.welcome a {
  font-style: italic;
}

.news i { line-height: 1.25; }
.identity { font-size: clamp(15px, 1.28vw, 23px); }
.identity img { width: clamp(38px, 2.7vw, 49px); height: auto; }
.news p { font-size: clamp(16px, 1.4vw, 25px); }
.home-grid { align-items: start; }
.welcome h1 { margin-top: 0; }
.header { height: 66px; }
.home-grid { padding-top: 46px; align-items: stretch; }
.news p { margin-bottom: .55em; }

/* Keep a comfortable separation between the introduction and the Lab News rule. */
.home-grid { padding-bottom: 38px; }
.news { padding-top: 24px; }
.page .news h2 { font-size: clamp(22px, 1.65vw, 30px); }

.welcome,
.welcome h1,
.welcome p,
.news p {
  line-height: 1.5;
}

/* Paper titles in Lab News remain underlined and are also italicized. */
.news p i {
  font-style: italic;
}

@media (min-width: 761px) {
  .header { position: relative; }
  .header nav {
    position: absolute;
    left: calc(52.5% + 22px);
    right: 0;
    top: 0;
    height: 100%;
    justify-content: space-between;
  }
  .header nav a:last-child { padding-right: 0; }
  .header nav {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .header nav a,
  .header nav a:last-child {
    width: 100%;
    padding: 0;
    justify-content: center;
    text-align: center;
  }
  .header nav a {
    padding-left: clamp(12px, 1.2vw, 22px);
    padding-right: clamp(12px, 1.2vw, 22px);
    justify-content: center;
    text-align: center;
  }
}
