* {
  box-sizing: border-box;
}

:root {
  --ink: #080808;
  --paper: #ffffff;
  --rule: #c8c8c8;
  --muted: #707070;
  --micro: #707981;
  --orange: #ef7130;
  --gold: #efb13b;
  --side: 48px;
  --page-max: 960px;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #ececec;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
  text-decoration: none;
}

/* page frame: tuned to the Figma screenshots */
.site-header,
main,
footer {
  width: min(100%, var(--page-max));
  margin-left: auto;
  margin-right: auto;
  background: var(--paper);
}

.site-header {
  height: 82px;
  padding: 12px var(--side);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--rule);
}

.brand {
  width: 109px;
  height: 54px;
  padding: 3px 5px 3px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #363636;
  color: #fff;
  font-weight: 800;
  line-height: .9;
  letter-spacing: -0.03em;
  overflow: hidden;
}

.brand-line-1 {
  font-size: 18px;
  white-space: nowrap;
}

.brand-line-1 span {
  color: var(--orange);
}

.brand-line-2 {
  margin-top: 4px;
  color: var(--gold);
  font-size: 22px;
}

.nav-contact,
.section-kicker,
.metric-label,
footer,
.contact-button,
.contact-details {
  letter-spacing: .34em;
}

.nav-contact {
  font-size: 10px;
  line-height: 1;
}

/* HERO */

.hero {
  min-height: 790px;
  border-bottom: 1px solid var(--rule);
}

.hero-inner {
  min-height: 790px;
  padding: 255px var(--side) 48px;
  position: relative;
}

.hero h1 {
  margin: 0;
  max-width: 760px;
  font-family: "Times New Roman", Times, serif;
  font-size: 94px;
  font-weight: 400;
  line-height: .83;
  letter-spacing: -.062em;
}

.hero p {
  margin: 52px 0 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.5;
}

.scroll-mark {
  position: absolute;
  left: var(--side);
  bottom: 46px;
  color: #b1b1b1;
  font-size: 13px;
}

/* SECTION KICKERS */

.section-kicker {
  padding: 10px var(--side) 11px;
  border-bottom: 1px solid var(--rule);
  color: var(--micro);
  font-size: 9px;
  line-height: 1.5;
}

.section-kicker.two-line {
  padding-top: 74px;
  padding-bottom: 26px;
  border-bottom: 0;
  line-height: 2.75;
}

/* ARCHIVE */

.archive-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.metric {
  min-height: 222px;
  padding: 49px var(--side) 42px;
  border-bottom: 1px solid var(--rule);
}

.metric:nth-child(odd) {
  border-right: 1px solid var(--rule);
}

.metric-number {
  margin-bottom: 20px;
  font-family: "Times New Roman", Times, serif;
  font-size: 58px;
  font-weight: 400;
  line-height: .95;
  letter-spacing: -.05em;
}

.metric-label {
  color: var(--micro);
  font-size: 9px;
  line-height: 2.15;
}

.body-copy {
  font-size: 16px;
  line-height: 1.62;
}

.body-copy p {
  margin: 0 0 27px;
}

.archive-copy {
  padding: 49px var(--side) 31px;
}

/* METHODOLOGY */

.methodology {
  background: var(--ink);
  color: #fff;
}

.section-kicker-dark {
  border-color: #303030;
  color: #828282;
}

.methodology-statement {
  min-height: 205px;
  padding: 38px var(--side) 50px;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px 18px;
  font-family: "Times New Roman", Times, serif;
  font-size: 55px;
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.045em;
}

.methodology-statement .arrow {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .72em;
  font-weight: 300;
  padding-top: .13em;
}

/* CONTENT */

.text-section {
  padding: 0 0 54px;
  border-bottom: 1px solid var(--rule);
}

.text-section > .section-kicker:not(.two-line) {
  padding-top: 76px;
  padding-bottom: 27px;
  border-bottom: 0;
}

.text-section .body-copy {
  padding: 0 var(--side);
}

.platform {
  padding-bottom: 44px;
}

.comparison {
  margin: 20px 0 22px;
  padding: 30px 0 32px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 16px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  font-family: "Times New Roman", Times, serif;
  font-size: 22px;
  line-height: 1.4;
}

.comparison-arrow {
  color: #a7a7a7;
}

.partnerships {
  padding-bottom: 58px;
}

/* CONTACT */

.contact-section {
  min-height: 360px;
  padding: 113px var(--side) 78px;
  border-bottom: 1px solid var(--rule);
}

.contact-button {
  width: 346px;
  max-width: 100%;
  min-height: 58px;
  padding: 0 39px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid #111;
  font-size: 10px;
  line-height: 1.2;
}

.contact-arrow {
  font-size: 20px;
  letter-spacing: 0;
}

.contact-details {
  margin-top: 29px;
  font-size: 10px;
  line-height: 2.9;
}

.contact-details a {
  color: #777;
}

/* FOOTER */

footer {
  padding: 15px var(--side) 17px;
  font-size: 9px;
  border-top: 0;
}

/* LARGE DESKTOP:
   keep the page visually close to the Figma-width composition
   instead of stretching typography across a huge monitor */
@media (min-width: 1100px) {
  body {
    padding: 0 0 40px;
  }

  .site-header,
  main,
  footer {
    box-shadow: 0 0 0 1px rgba(0,0,0,.015);
  }
}

/* TABLET */

@media (max-width: 760px) {
  :root {
    --side: 22px;
  }

  body {
    background: #fff;
    font-size: 15px;
  }

  .site-header,
  main,
  footer {
    width: 100%;
  }

  .site-header {
    height: 75px;
  }

  .brand {
    transform: scale(.88);
    transform-origin: left center;
  }

  .hero,
  .hero-inner {
    min-height: 590px;
  }

  .hero-inner {
    padding-top: 152px;
    padding-bottom: 36px;
  }

  .hero h1 {
    max-width: 94%;
    font-size: clamp(52px, 16vw, 76px);
    line-height: .87;
  }

  .hero p {
    margin-top: 34px;
    font-size: 16px;
  }

  .desktop-break {
    display: none;
  }

  .scroll-mark {
    bottom: 30px;
  }

  .archive-grid {
    grid-template-columns: 1fr;
  }

  .metric {
    min-height: 172px;
    padding-top: 36px;
    padding-bottom: 34px;
    border-right: 0 !important;
  }

  .metric-number {
    font-size: 48px;
  }

  .archive-copy {
    padding-top: 42px;
  }

  .methodology-statement {
    min-height: 0;
    padding-top: 34px;
    padding-bottom: 39px;
    display: block;
    font-size: 39px;
    line-height: 1.02;
  }

  .methodology-statement .arrow {
    display: inline-block;
    margin: 0 8px;
  }

  .text-section > .section-kicker:not(.two-line),
  .section-kicker.two-line {
    padding-top: 52px;
  }

  .comparison {
    display: block;
    font-size: 21px;
  }

  .comparison span {
    display: inline;
  }

  .comparison-arrow {
    margin: 0 8px;
  }

  .contact-section {
    min-height: 320px;
    padding-top: 82px;
  }

  .contact-button {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* SMALL MOBILE */

@media (max-width: 430px) {
  .nav-contact {
    letter-spacing: .25em;
  }

  .hero h1 {
    font-size: 54px;
  }

  .hero p {
    font-size: 15px;
  }

  .metric-number {
    font-size: 44px;
  }

  .methodology-statement {
    font-size: 35px;
  }

  .contact-button {
    letter-spacing: .24em;
    font-size: 9px;
  }

  footer {
    letter-spacing: .22em;
  }
}