:root {
  --doc-reading-width: 860px;
  --doc-hero-space: clamp(70px, 9vw, 118px);
  --doc-rule-width: 4px;
  --doc-curve-large: 520px;
  --doc-curve-small: 280px;
}

.doc-hero {
  background: linear-gradient(180deg, var(--color-ocean-top) 0%, var(--color-ocean) 58%, var(--color-ocean-low) 100%);
  color: var(--color-white);
  overflow: hidden;
  padding-top: var(--doc-hero-space);
  padding-bottom: calc(var(--doc-hero-space) + 46px);
  position: relative;
}

.doc-hero__inner {
  position: relative;
  z-index: 2;
}

.doc-hero__eyebrow {
  color: var(--color-accent-bright);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  margin-bottom: 18px;
  text-transform: uppercase;
}

.doc-hero h1 {
  color: var(--color-white);
  font-size: clamp(34px, 4vw, 48px);
  margin-bottom: 22px;
  max-width: 15em;
}

.doc-hero__summary {
  color: var(--color-white-82);
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.85;
  max-width: 46em;
}

.doc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.doc-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 36px;
}

.doc-facts span {
  background: var(--color-white-14);
  border: 1px solid var(--color-white-30);
  border-radius: var(--radius-pill);
  color: var(--color-white-82);
  font-family: var(--font-mono);
  font-size: 12px;
  max-width: 100%;
  overflow: hidden;
  padding: 7px 13px;
}

.doc-hero__curve {
  border-radius: 50%;
  position: absolute;
}

.doc-hero__curve--large {
  background: var(--color-curve-one);
  height: var(--doc-curve-large);
  right: -180px;
  top: -210px;
  width: var(--doc-curve-large);
}

.doc-hero__curve--small {
  background: var(--color-curve-three);
  bottom: -150px;
  height: var(--doc-curve-small);
  right: 18%;
  width: var(--doc-curve-small);
}

.doc-hero__dot {
  background: var(--color-pink);
  border-radius: 50%;
  height: 92px;
  position: absolute;
  right: 7%;
  top: 45%;
  width: 92px;
}

.doc-layout {
  display: grid;
  justify-items: center;
}

.doc-article {
  max-width: var(--doc-reading-width);
  width: 100%;
}

.doc-intro {
  border-left: var(--doc-rule-width) solid var(--color-accent);
  color: var(--color-text-muted);
  font-size: 18px;
  margin-bottom: 42px;
  padding-left: 24px;
}

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

.doc-article .toc {
  position: relative;
}

.doc-chapter {
  border-top: 1px solid var(--color-border);
  padding-top: 72px;
  scroll-margin-top: calc(var(--header-height) + 24px);
}

.doc-chapter + .doc-chapter {
  margin-top: 72px;
}

.chapter-index {
  color: var(--color-accent-dark);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  margin-bottom: 14px;
}

.doc-chapter h2 {
  color: var(--color-text);
  margin-bottom: 34px;
}

.doc-chapter h3 {
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: clamp(21px, 2.3vw, 25px);
  margin-top: 44px;
}

.doc-chapter p {
  color: var(--color-text-muted);
}

.doc-chapter li {
  color: var(--color-text-muted);
}

.doc-chapter table {
  font-size: 15px;
}

.doc-chapter pre {
  margin-top: 26px;
  margin-bottom: 28px;
}

.doc-chapter pre code {
  font-size: 13px;
  line-height: 1.7;
}

.doc-chapter .callout {
  margin-top: 34px;
  margin-bottom: 34px;
}

.doc-chapter .callout p {
  color: var(--color-text);
}

.doc-article .end-download-card {
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .doc-hero {
    padding-top: 62px;
    padding-bottom: 94px;
  }

  .doc-hero h1 {
    font-size: clamp(26px, 7.4vw, 30px);
  }

  .doc-hero__summary {
    font-size: 17px;
  }

  .doc-hero__dot {
    height: 58px;
    opacity: .7;
    right: -14px;
    top: 54%;
    width: 58px;
  }

  .doc-intro {
    font-size: 16px;
    padding-left: 17px;
  }

  .doc-chapter {
    padding-top: 58px;
  }

  .doc-chapter + .doc-chapter {
    margin-top: 58px;
  }

  .doc-chapter h3 {
    margin-top: 36px;
  }
}

@media (max-width: 480px) {
  .doc-hero__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .doc-hero__actions .btn {
    width: 100%;
  }

  .doc-facts {
    gap: 7px;
  }

  .doc-facts span {
    font-size: 11px;
    padding: 6px 10px;
  }

  .doc-hero__curve--large {
    right: -310px;
  }

  .doc-hero__curve--small {
    right: -120px;
  }

  .doc-chapter pre {
    border-radius: var(--radius-medium);
    padding: 16px;
  }

  .doc-chapter pre code {
    font-size: 12px;
  }
}