/* Tricker — explainer article
   Reuses the palette and fonts from .bl-root in styles.css.
   Everything here is article-specific: measure, rhythm and reading furniture. */

.ar-page { --measure: 680px; padding-bottom: 90px; }

/* ---------- masthead ---------- */
.ar-masthead {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  max-width: 1180px; margin: 0 auto; padding: 22px 32px;
  border-bottom: 1px solid var(--line);
}
.ar-back { font-size: 14px; font-weight: 500; color: var(--muted); }
.ar-back:hover { color: var(--accent); }

/* ---------- column ---------- */
.ar-col { max-width: var(--measure); margin: 0 auto; padding: 0 24px; }
.ar-wide { max-width: 880px; margin: 0 auto; padding: 0 24px; }

/* ---------- header ---------- */
.ar-header { padding: 64px 24px 40px; }
.ar-kicker {
  font-family: var(--font-mono); font-size: 12px; font-weight: 700;
  letter-spacing: 0.13em; text-transform: uppercase; color: var(--accent);
  margin-bottom: 18px;
}
.ar-title {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(32px, 5vw, 50px); line-height: 1.04; letter-spacing: -0.03em;
  text-wrap: balance; margin: 0 0 22px; color: var(--ink);
}
.ar-deck {
  font-size: 20px; line-height: 1.55; color: var(--muted);
  margin: 0 0 28px; text-wrap: pretty;
}
.ar-byline {
  display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center;
  font-size: 13px; color: var(--muted);
  padding-top: 20px; border-top: 1px solid var(--line);
}
.ar-byline b { color: var(--ink); font-weight: 600; }
.ar-byline-sep { color: var(--line); }

/* ---------- body ---------- */
.ar-body { font-size: 18px; line-height: 1.72; color: var(--prose); }
.ar-body p { margin: 0 0 22px; text-wrap: pretty; }
.ar-body strong { color: var(--ink); font-weight: 600; }
.ar-body a { text-decoration: underline; text-underline-offset: 3px; }

.ar-h2 {
  font-family: var(--font-mono); font-weight: 800;
  font-size: clamp(23px, 2.6vw, 29px); line-height: 1.15; letter-spacing: -0.02em;
  color: var(--ink); text-wrap: balance;
  margin: 52px 0 16px; padding-top: 26px; border-top: 2px solid var(--ink);
}
.ar-h3 {
  font-family: var(--font-mono); font-weight: 700; font-size: 17px;
  color: var(--ink); margin: 32px 0 10px;
}

.ar-list { margin: 0 0 22px; padding-left: 22px; }
.ar-list li { margin-bottom: 9px; }
.ar-list li::marker { color: var(--accent); }

/* ---------- the four steps: a real sequence, so it is numbered ---------- */
.ar-steps { list-style: none; counter-reset: step; margin: 0 0 26px; padding: 0; }
.ar-steps li {
  counter-increment: step; position: relative;
  padding: 0 0 20px 52px; margin: 0;
}
.ar-steps li::before {
  content: counter(step, decimal-leading-zero);
  position: absolute; left: 0; top: 2px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 700;
  color: var(--on-accent); background: var(--accent);
  padding: 3px 8px; border-radius: 6px;
}
.ar-steps b { display: block; font-family: var(--font-mono); color: var(--ink); }

/* ---------- callout: the section a reader could get burned on ---------- */
.ar-callout {
  background: var(--card); border-left: 2px solid var(--accent);
  border-radius: 0 12px 12px 0; padding: 22px 26px; margin: 0 0 26px;
}
.ar-callout p:last-child { margin-bottom: 0; }
.ar-callout-title {
  font-family: var(--font-mono); font-weight: 700; font-size: 15px;
  color: var(--ink); margin: 0 0 10px;
}

/* ---------- pull quote ---------- */
.ar-quote { margin: 44px 0; padding: 0; }
.ar-quote p {
  font-family: var(--font-mono); font-weight: 700;
  font-size: clamp(21px, 2.5vw, 27px); line-height: 1.25; letter-spacing: -0.02em;
  color: var(--ink); margin: 0 0 12px; text-wrap: balance;
}
.ar-quote cite { font-style: normal; font-size: 13px; color: var(--muted); }

/* ---------- spec table ---------- */
.ar-specs-wrap { overflow-x: auto; margin: 0 0 26px; }
.ar-specs {
  width: 100%; border-collapse: collapse; font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.ar-specs th, .ar-specs td { text-align: left; padding: 12px 16px 12px 0; border-bottom: 1px solid var(--line); }
.ar-specs th {
  font-family: var(--font-mono); font-weight: 600; color: var(--muted);
  white-space: nowrap; width: 38%;
}
.ar-specs td { color: var(--ink); }
.ar-specs tr:last-child th, .ar-specs tr:last-child td { border-bottom: 0; }
.ar-specs .ar-unset { color: var(--muted); }

/* ---------- open questions ---------- */
.ar-gaps { border: 1px solid var(--line); border-radius: 12px; padding: 4px 26px 8px; margin: 0 0 26px; background: var(--bg-alt); }

/* ---------- footer ---------- */
.ar-foot {
  margin-top: 66px; padding-top: 26px; border-top: 1px solid var(--line);
  font-size: 14px; color: var(--muted);
}
.ar-foot p { margin: 0 0 10px; }

@media (max-width: 640px) {
  .ar-header { padding: 40px 24px 28px; }
  .ar-body { font-size: 17px; }
  .ar-deck { font-size: 18px; }
  .ar-callout { padding: 18px 20px; }
}
