:root {
  --guide-reading-width: 76ch;
  --guide-shot-width: 280px;
  --guide-column-gap: 48px;
  --guide-step-line: 1px;
}

.guide-intro {
  padding-bottom: 48px;
}

.guide-intro h1 {
  max-width: 19em;
  margin: 22px 0 18px;
}

.guide-lead {
  max-width: 70ch;
  color: var(--text-muted);
  font-size: 18px;
  line-height: 1.8;
}

.guide-prerequisite {
  max-width: 80ch;
  margin-top: 26px;
}

.guide-prerequisite strong {
  color: var(--text);
}

.guide-prerequisite a,
.guide-step a,
.guide-outro a {
  color: var(--accent);
  text-underline-offset: 3px;
}

.guide-toc {
  margin-top: 28px;
}

.guide-step {
  scroll-margin-top: 20px;
  border-top: var(--guide-step-line) solid var(--border);
}

.guide-step-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, var(--guide-shot-width));
  align-items: start;
  gap: var(--guide-column-gap);
  margin-top: 30px;
}

.guide-step-grid > * {
  min-width: 0;
}

.guide-step .prose h3:first-child {
  margin-top: 0;
}

.guide-step .prose h3 {
  color: var(--text);
}

.guide-step .prose p:last-child {
  margin-bottom: 0;
}

.guide-step .callout {
  margin-top: 28px;
}

.guide-step pre {
  margin-top: 24px;
}

.guide-reading {
  max-width: var(--guide-reading-width);
  margin-top: 28px;
}

.guide-outro {
  border-top: var(--guide-step-line) solid var(--border);
}

.guide-outro .sec-note {
  max-width: var(--guide-reading-width);
  line-height: 1.85;
}

@media (max-width: 850px) {
  :root {
    --guide-column-gap: 28px;
  }

  .guide-step-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .guide-step-grid .official-shot {
    justify-self: center;
  }
}

@media (max-width: 640px) {
  .guide-lead {
    font-size: 16px;
  }

  .guide-intro {
    padding-bottom: 40px;
  }

  .guide-step-grid {
    gap: 30px;
  }
}