/* ============================================================
   resume.css — /resume page layer on top of workbench.css
   Self-contained Workbench "ledger" document. No nav/footer.
   Loads after workbench.css; equal-specificity rules win by order.
   Reuses tokens (--ink, --ground, --signal, --mono, --sans, rules),
   the .sec-head chrome, and the hero eyebrow / work-row signal-tick DNA.
   ============================================================ */

.resume-doc {
  max-width: 880px;
  margin: 0 auto;
  padding: 88px 32px 96px;
}
@media (max-width: 767px) {
  .resume-doc {
    padding: 56px 20px 64px;
  }
}

/* --- Back link (screen only; the printed page is the resume) -- */
.rz-back {
  margin-bottom: 40px;
}
.rz-back a {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink-60);
}
.rz-back a:hover {
  color: var(--ink);
}

/* --- Masthead (echoes #hero) --------------------------------- */
.rz-masthead {
  margin-bottom: 64px;
}
.rz-eyebrow {
  margin: 0 0 20px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-60);
}
.rz-eyebrow::before {
  content: "\25A0\00a0\00a0";
  color: var(--signal);
  font-size: 9px;
  vertical-align: 2px;
}
.rz-name {
  margin: 0 0 24px;
  font-family: var(--sans);
  font-size: clamp(40px, 6vw, 60px);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1;
}
.rz-contact {
  margin: 0;
  font-family: var(--mono);
  font-size: 12.5px;
  line-height: 1.7;
  letter-spacing: 0.01em;
  color: var(--ink-60);
}
.rz-contact a {
  color: inherit;
}

/* --- Sections ------------------------------------------------- */
.rz-section {
  margin-top: 56px;
}
@media (max-width: 767px) {
  .rz-section {
    margin-top: 44px;
  }
}
.rz-summary {
  margin: 0;
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink-60);
  max-width: 62ch;
}

/* --- Experience: ruled rows (work-row DNA, no image side) ----- */
.rz-role {
  position: relative;
  border-top: 1px solid var(--rule-soft);
  padding: 24px 0;
}
/* signal tick draws on the row rule on hover (web only; harmless in
   print, where it stays scaleX(0)) */
.rz-role::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 64px;
  height: 2px;
  background: var(--signal);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 300ms var(--ease-mech);
}
.rz-role:hover::before {
  transform: scaleX(1);
}
.rz-role-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.rz-role-org {
  color: var(--ink);
}
.rz-role-title {
  color: var(--ink-60);
}
.rz-sep {
  color: var(--ink-40);
}
.rz-role-dates {
  margin-left: auto;
  color: var(--ink-60);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.rz-bullets {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink-60);
}
.rz-bullets li {
  position: relative;
  padding-left: 20px;
  margin-top: 8px;
}
.rz-bullets li:first-child {
  margin-top: 0;
}
.rz-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;              /* optical center of the first line; pairs with translateY */
  transform: translateY(-50%);
  width: 0.3em;
  height: 0.3em;
  background: var(--signal);
}

/* Consistency: the section head owns the section's opening rule, so the
   first item under any head adds neither its own rule nor an extra top gap.
   (Skills already does this via .rz-spec-row:first-child.) */
.sec-head + .rz-role {
  border-top: 0;
  padding-top: 0;
}
.sec-head + .rz-bullets {
  margin-top: 0;
}

/* No numerals on this page, so the heading takes the ink emphasis the
   shared component reserves for .sec-num. */
.sec-head {
  color: var(--ink);
}

/* --- Independent AI Practice / Community: bold lead-in bullets - */
.rz-lead {
  font-weight: 600;
  color: var(--ink);
}

/* --- Skills: mono spec block --------------------------------- */
.rz-spec {
  margin: 0;
}
.rz-spec-row {
  display: grid;
  grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
  gap: 12px 32px;
  padding: 16px 0;
  border-top: 1px solid var(--rule-faint);
}
.rz-spec-row:first-child {
  border-top: 0;
  padding-top: 0;
}
.rz-spec dt {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
}
.rz-spec dd {
  margin: 0;
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-60);
}
@media (max-width: 600px) {
  .rz-spec-row {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}

/* --- Print / one-page PDF ------------------------------------ */
@media print {
  @page {
    size: Letter;
    margin: 0.5in;
  }
  .rz-back {
    display: none;
  }
  body.resume {
    background: #fff !important;
    background-image: none !important;
  }
  .resume-doc {
    max-width: none;
    margin: 0;
    padding: 0;
  }

  /* keep the signal accents when the browser strips backgrounds */
  .rz-eyebrow::before,
  .rz-name .sig,
  .rz-bullets li::before,
  .sec-head::before {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* reclaim vertical space */
  .rz-masthead {
    margin-bottom: 16px;
  }
  .rz-name {
    font-size: 34px;
    margin-bottom: 12px;
  }
  .rz-eyebrow {
    margin-bottom: 10px;
  }
  .sec-head {
    margin-bottom: 10px;
  }
  .rz-section {
    margin-top: 14px;
  }
  .rz-summary {
    font-size: 10.5px;
    line-height: 1.45;
  }
  .rz-role {
    padding: 11px 0;
  }
  .rz-role-head {
    font-size: 10.5px;
  }
  .rz-bullets {
    font-size: 10px;
    line-height: 1.4;
    margin-top: 10px;
  }
  .rz-bullets li {
    margin-top: 5px;
  }
  .rz-spec-row {
    padding: 10px 0;
  }
  .rz-spec dt {
    font-size: 10.5px;
  }
  .rz-spec dd {
    font-size: 10px;
    line-height: 1.4;
  }
  .rz-contact {
    font-size: 10.5px;
  }
  /* keep rows and sections from splitting across pages */
  .rz-role,
  .rz-section {
    break-inside: avoid;
  }
  /* Intentional two-page split: page 1 = identity + Summary + Experience,
     page 2 = Skills + Independent AI Practice + Community + Education.
     Rebalances the break so neither page reads as a spillover. */
  .rz-break-before {
    break-before: page;
  }
}
