/* Chapter opener ------------------------------------------------------- */

.chead { padding: clamp(36px, 6vw, 72px) 0 4px; }

.chead__rule {
  display: flex; align-items: center; gap: 14px; margin-bottom: 20px;
  font-family: var(--face-data); font-size: var(--t-xs); letter-spacing: .24em;
  text-transform: uppercase; color: var(--grey-dim);
}
.chead__rule::after { content: ""; flex: 1; height: 1px; background: var(--line-soft); }

.chead__title { font-family: var(--face-display); font-size: var(--t-h1); line-height: 1.08; margin-bottom: 18px; }
.chead__blurb { font-size: var(--t-lede); line-height: 1.66; color: var(--bone-dim); }

.chead__meta {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line-soft);
  font-family: var(--face-data); font-size: var(--t-xs); letter-spacing: .1em;
  text-transform: uppercase; color: var(--grey-dim);
}
.chead__meta .gap { flex: 1; }

.pips { display: flex; gap: 4px; }
.pips i { width: 16px; height: 2px; background: var(--line); border-radius: 2px; transition: background .3s; }
.pips i.on { background: var(--brass); }

/* Steps ---------------------------------------------------------------- */

.step { display: none; padding: 30px 0 4px; border-top: 1px solid var(--line-hair); }
.step:first-of-type { border-top: 0; }
.step.is-shown { display: block; }
.step.is-fresh { animation: unseal .55s var(--ease) both; }

@keyframes unseal {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

/* The kicker lives in the margin like a printed note, not stacked above
   the heading. On narrow screens it folds back inline. */
.step__body { position: relative; }

.step__note {
  font-family: var(--face-data); font-size: 10px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--grey-dim);
  margin-bottom: 10px;
}
.step__note b { color: var(--brass); font-weight: 400; }

.step__h { font-family: var(--face-display); font-size: var(--t-h2); line-height: 1.24; margin-bottom: 16px; }

.step__lede { font-size: 18.5px; line-height: 1.62; color: var(--bone-dim); margin-bottom: 18px; }

@media (min-width: 1320px) {
  .step__body { padding-left: 0; }
  .step__note {
    position: absolute; left: -168px; top: 6px; width: 140px; text-align: right;
    margin: 0; line-height: 1.5;
  }
}

/* Callouts ------------------------------------------------------------- */

.callout {
  margin: 26px 0; padding: 20px 22px 20px 24px; border-radius: 2px;
  background: linear-gradient(100deg, var(--brass-wash), transparent 72%);
  border: 1px solid var(--line); border-left: 2px solid var(--brass);
}
.callout__l {
  display: block; margin-bottom: 9px;
  font-family: var(--face-data); font-size: 10px; letter-spacing: .24em;
  text-transform: uppercase; color: var(--brass);
}
.callout p { font-style: italic; font-size: 18.5px; line-height: 1.6; color: var(--bone); }

.aside {
  margin: 22px 0; padding: 15px 18px; border: 1px dashed var(--line); border-radius: 2px;
  color: var(--grey); font-size: 15.5px; line-height: 1.65;
}
.aside strong { color: var(--bone-dim); }

.statusline {
  display: flex; align-items: center; gap: 10px; margin: 24px 0 14px;
  font-family: var(--face-data); font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--grey-dim);
}
.statusline::after { content: ""; flex: 1; height: 1px; background: var(--line-hair); }

/* Continue ------------------------------------------------------------- */

.gate { padding: 26px 0 0; }

.cont {
  display: inline-flex; align-items: center; gap: 16px; padding: 13px 22px;
  cursor: pointer; border-radius: 2px; text-align: left;
  background: transparent; color: var(--bone);
  border: 1px solid var(--line);
  transition: background .2s, border-color .2s, transform .15s;
}
.cont:hover { border-color: var(--brass-deep); background: var(--brass-wash); }
.cont:active { transform: translateY(1px); }
.cont__t { display: block; font-family: var(--face-text); font-size: 16.5px; }
.cont__n {
  display: block; margin-top: 2px;
  font-family: var(--face-data); font-size: 10px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--grey-dim);
}
.cont__arrow {
  width: 28px; height: 28px; flex: none; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--brass);
  transition: transform .2s;
}
.cont:hover .cont__arrow { transform: translateX(3px); border-color: var(--brass-deep); }

/* Chapter close -------------------------------------------------------- */

.close {
  margin: 46px 0 0; padding: 24px; border-radius: 2px;
  background: var(--panel); border: 1px solid var(--line);
}
.close__k {
  display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
  font-family: var(--face-data); font-size: 10px; letter-spacing: .2em;
  text-transform: uppercase; color: var(--verd);
}
.close__t { font-family: var(--face-display); font-size: 21px; margin-bottom: 8px; }
.close__d { color: var(--grey); font-size: 15.5px; margin-bottom: 18px; }
.close__row { display: flex; gap: 10px; flex-wrap: wrap; }

.btn {
  display: inline-flex; align-items: center; gap: 10px; padding: 11px 18px;
  cursor: pointer; border-radius: 2px; text-decoration: none;
  font-family: var(--face-data); font-size: var(--t-xs); letter-spacing: .13em;
  text-transform: uppercase;
  border: 1px solid var(--line); background: transparent; color: var(--bone-dim);
  transition: background .2s, color .2s, border-color .2s;
}
.btn:hover { border-color: var(--brass-deep); color: var(--bone); background: var(--brass-wash); }
.btn--brass { background: var(--brass); border-color: var(--brass); color: var(--ink); }
.btn--brass:hover { background: #d9b45c; border-color: #d9b45c; color: var(--ink); }
