*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  background: var(--background);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1.1875rem;
  line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }

main {
  width: 100%;
  max-width: 72rem;
  margin: auto;
  padding: 2rem 1.25rem;
  display: grid;
  gap: 2rem;
  align-items: center;
  justify-items: center;
  text-align: center;
}
.copy { max-width: 34rem; }
.lockup { width: min(15rem, 70vw); height: auto; margin: 0 auto 2rem; }
h1 {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(2.4rem, 7vw, 4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 1rem;
}
/* accessible orange rule: shade in light mode, base orange in dark (tokens) */
.rule {
  width: 4.5rem;
  height: 4px;
  border: 0;
  margin: 0 auto 1.25rem;
  background: var(--link-underline);
}
p { margin: 0; color: var(--text-secondary); }
.hero { width: min(26rem, 80vw); }

@media (min-width: 56rem) {
  main { grid-template-columns: 1fr 1fr; gap: 4rem; padding: 3rem 2rem; text-align: left; justify-items: stretch; }
  .copy { justify-self: end; }
  .lockup { margin-left: 0; width: 17rem; }
  .rule { margin-left: 0; }
  .hero { width: 100%; max-width: 36rem; justify-self: start; }
}
