:root {
  color-scheme: light;
  --ink: #1d2821;
  --muted: #58665d;
  --opal: linear-gradient(100deg, #287b73 0%, #648b48 42%, #ba9352 68%, #9471a5 100%);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
  margin: 0;
}

body {
  background:
    radial-gradient(ellipse at 16% 14%, rgba(211, 237, 225, .42), transparent 34%),
    radial-gradient(ellipse at 86% 78%, rgba(235, 226, 242, .3), transparent 33%),
    #fff;
  color: var(--ink);
  font-family: 'DM Sans', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.landing {
  display: grid;
  min-height: 100vh;
  min-height: 100svh;
  grid-template-rows: 1fr auto;
  padding: 32px 24px 20px;
}

.landing-content {
  align-self: center;
  justify-self: center;
  width: min(100%, 760px);
  padding: 70px 24px 90px;
  text-align: center;
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 42px;
  color: #171a18;
  font: 800 24px/1 'Bricolage Grotesque', Arial, sans-serif;
  letter-spacing: -.06em;
}

.brand-lockup img {
  width: 54px;
  height: 54px;
  object-fit: contain;
}

h1 {
  margin: 0;
  font: 700 clamp(40px, 7vw, 66px)/1.05 'Bricolage Grotesque', Arial, sans-serif;
  letter-spacing: -.065em;
}

.opal-rule {
  display: block;
  width: 72px;
  height: 4px;
  margin: 28px auto 17px;
  border-radius: 999px;
  background: var(--opal);
}

.landing-content p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

.site-footer {
  color: #707a72;
  font-size: 12px;
  text-align: center;
}

@media (max-width: 520px) {
  .landing { padding: 20px 18px 17px; }
  .landing-content { padding: 54px 8px 72px; }
  .brand-lockup { gap: 9px; margin-bottom: 34px; font-size: 21px; }
  .brand-lockup img { width: 46px; height: 46px; }
  h1 { font-size: clamp(37px, 10.5vw, 52px); }
  .landing-content p { font-size: 15px; }
}
