:root {
  --ink: #183e4b;
  --body: #435e65;
  --paper: #fafbf8;
  --rule: #cfdcd8;
  --serif: Georgia, 'Times New Roman', serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
a:focus-visible, summary:focus-visible {
  outline: 3px solid #ffba5f;
  outline-offset: 5px;
}
img { display: block; max-width: 100%; }
.container { width: min(1160px, 88%); margin-inline: auto; }
.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  z-index: 5;
  padding: 1rem;
  background: white;
}
.skip-link:focus { top: 1rem; }
.site-header { position: absolute; inset: 0 0 auto; z-index: 2; padding: 30px 0; }
.site-header a, .site-footer a { display: inline-block; }
.wordmark { width: 126px; height: auto; }
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(550px, 46vw, 730px);
  color: #fff;
  background: linear-gradient(112deg, #113b5c, #1c6784 54%, #478f99);
}
.hero-image {
  position: absolute;
  z-index: -1;
  inset: 0 0 0 34%;
  background: linear-gradient(120deg, #438da8, #8dc6ca 77%, #73b3b5);
  mask-image: linear-gradient(90deg, transparent, #000 31%);
}
.hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 54% 52%;
  filter: grayscale(1) invert(1) contrast(1.25);
  mix-blend-mode: luminosity;
  opacity: .9;
}
.hero-body { padding-block: 140px 90px; }
h1, h2 { font-family: var(--serif); font-weight: 400; margin: 0; }
h1 {
  font-size: clamp(64px, 7.55vw, 116px);
  line-height: .94;
  letter-spacing: -.063em;
}
h1 em { color: #def5ec; font-weight: inherit; }
.hero-body p, .research-copy p, .contact-copy p {
  font-size: clamp(16px, 1.28vw, 19px);
  line-height: 1.58;
}
.hero-body p { max-width: min(35ch, 40%); margin: 29px 0 0; color: #f0f8f8; }
.specimen {
  position: absolute;
  right: 6%;
  bottom: 24px;
  max-width: min(370px, 88%);
  font-size: 12px;
  line-height: 1.5;
}
.specimen details {
  background: #103d50ef;
  border: 1px solid #ffffff60;
  border-radius: 10px;
  padding: 0 14px;
}
.specimen summary { padding: 10px 0; cursor: pointer; list-style: none; }
.specimen summary::-webkit-details-marker { display: none; }
.specimen summary::after { content: "+"; margin-left: 12px; }
.specimen details[open] summary::after { content: "−"; }
.specimen p { margin: 0 0 12px; }
.specimen a { text-underline-offset: 3px; }
.research {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  align-items: center;
  gap: clamp(34px, 7vw, 106px);
  padding-block: clamp(64px, 7vw, 112px);
}
h2 { font-size: clamp(42px, 4.4vw, 68px); line-height: 1.04; letter-spacing: -.054em; }
.research-copy p, .contact-copy p { color: var(--body); margin-block: 22px 0; max-width: 40ch; }
.collagen { margin: 0; }
.collagen img {
  width: 100%;
  height: auto;
  border-radius: 14px;
  filter: sepia(.15);
}
figcaption {
  display: flex;
  justify-content: space-between;
  gap: 8px 15px;
  flex-wrap: wrap;
  padding-top: 11px;
  font-size: 12px;
  line-height: 1.5;
}
figcaption span { color: var(--body); }
.contact {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  overflow: hidden;
  margin-bottom: clamp(60px, 6vw, 90px);
  border-radius: 20px;
  background: #e6efe9;
}
.contact-photo img {
  width: 100%;
  height: 100%;
  max-height: 436px;
  object-fit: cover;
  object-position: 50% 50%;
}
.contact-copy { align-self: center; padding: clamp(30px, 5vw, 80px); }
.contact-copy h2 { max-width: 11ch; }
.button {
  display: inline-block;
  margin-top: 25px;
  padding: 15px 24px;
  border-radius: 8px;
  background: #154f65;
  color: white;
  font-size: 14px;
  text-decoration: none;
}
.button:hover { background: #0e3e51; }
.site-footer {
  display: flex;
  align-items: center;
  gap: 18px;
  padding-block: 26px;
  border-top: 1px solid var(--rule);
}
.site-footer .wordmark { width: 93px; filter: brightness(0); opacity: .77; }
.site-footer span { border-left: 1px solid var(--rule); padding-left: 18px; color: var(--body); font-size: 13px; }
@media (max-width: 760px) {
  .hero { min-height: 580px; }
  .hero-image { inset-inline-start: 39%; opacity: .86; }
  .hero-body p { max-width: min(34ch, 55%); }
  .research { gap: 32px; }
  .contact-copy { padding: 30px; }
}
@media (max-width: 600px) {
  .container { width: 88%; }
  .site-header { padding-block: 24px; }
  .wordmark { width: 108px; }
  .hero { justify-content: flex-end; min-height: 665px; }
  .hero-image {
    inset: 0 0 auto;
    height: 60%;
    opacity: 1;
    mask-image: linear-gradient(180deg, #000 34%, transparent);
  }
  .hero-image img { object-position: 50% 49%; }
  .site-header { background: linear-gradient(#0d334b99, transparent); }
  .hero-body { padding-block: 300px 28px; }
  h1 { font-size: clamp(53px, 13.1vw, 77px); }
  .hero-body p { max-width: 34ch; margin-top: 20px; }
  .specimen { position: relative; inset: auto; align-self: flex-start; margin: 0 6% 20px; }
  .research { grid-template-columns: 1fr; gap: 25px; padding-block: 52px; }
  h2 { font-size: clamp(38px, 9vw, 50px); }
  .research-copy p, .contact-copy p { margin-top: 15px; }
  .contact { grid-template-columns: 1fr; border-radius: 15px; }
  .contact-photo img { height: 225px; object-position: 50% 56%; }
  .contact-copy { padding: 28px 24px 32px; }
  .contact-copy h2 { max-width: 15ch; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
