/* =============================================================================
   Résumé page. Dark on screen to match the site; the print stylesheet flips it
   to black-on-white so "Download PDF" (Cmd+P → Save as PDF) produces a clean,
   ink-friendly document rather than a screenshot of a dark page.
   ========================================================================== */

.resume-body { background: transparent; }

.cv-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  max-width: 860px;
  margin: 0 auto;
  padding: 150px 24px 24px;
}
.cv-actions .back { margin: 0; }
#print-cv { cursor: pointer; font: inherit; font-size: 15px; }

.cv {
  max-width: 860px;
  margin: 0 auto 120px;
  padding: 0 24px;
  color: var(--text-dim);
}

.cv-head { padding-bottom: 28px; border-bottom: 1px solid var(--hairline); }
.cv-head h1 {
  font-size: clamp(32px, 5vw, 46px);
  letter-spacing: -1.4px;
  color: var(--white);
  margin: 0 0 6px;
}
.cv-role { margin: 0 0 16px; font-size: 18px; color: var(--text); }
.cv-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 15px;
  color: var(--text-mute);
}
/* Phone ships in the downloaded PDF but stays off the public page, so it is
   not scraped by crawlers. */
.print-only { display: none; }

.cv-contact a { color: var(--text-dim); text-decoration: underline; text-underline-offset: 3px; }

.cv-block { margin-top: 44px; }
.cv-block > h2 {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-mute);
  margin: 0 0 18px;
}
.cv-block p { font-size: 16px; line-height: 1.65; margin: 0; }

.cv-job { margin-bottom: 30px; }
.cv-job-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.cv-job h3 { font-size: 19px; color: var(--white); letter-spacing: -0.3px; margin: 0; }
.cv-meta { font-size: 14px; color: var(--text-mute); margin: 0; }
.cv-job ul, .cv-projects { margin: 0; padding-left: 20px; }
.cv-job li, .cv-projects li {
  font-size: 15.5px;
  line-height: 1.65;
  margin-bottom: 8px;
}
.cv-projects strong { color: var(--white); font-weight: 500; }

.cv-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.cv-tags { font-size: 15px; line-height: 1.9; color: var(--text-dim); }
.cv-tools-gap { margin-top: 28px !important; }

.cv-edu { list-style: none; margin: 0; padding: 0; }
.cv-edu li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 9px 0;
  border-bottom: 1px solid var(--hairline);
}
.cv-edu li:last-child { border-bottom: 0; }
.cv-edu-school { font-size: 16px; color: var(--white); }
.cv-edu-detail { font-size: 14px; color: var(--text-mute); }

.cv-quote {
  margin: 0 0 18px;
  padding-left: 18px;
  border-left: 2px solid var(--hairline);
  font-size: 16px;
  line-height: 1.6;
}
.cv-quote cite {
  display: block;
  margin-top: 8px;
  font-style: normal;
  font-size: 14px;
  color: var(--text-mute);
}

@media (max-width: 700px) {
  .cv-cols { grid-template-columns: 1fr; gap: 28px; }
  .cv-actions { padding-top: 120px; }
}

/* ---------- print ---------- */

@media print {
  /* The animated field is screen-only: printing it would flood the page
     with ink and wreck legibility. */
  .no-print, .skip-link, .page-shader, .page-scrim { display: none !important; }
  .print-only { display: block; }

  /* Force light: printers render dark backgrounds as heavy grey or drop them. */
  html, body, .resume-body { background: #fff !important; }
  .cv { max-width: none; margin: 0; padding: 0; color: #1a1a1a; }
  .cv-head h1, .cv-job h3, .cv-projects strong { color: #000; }
  .cv-role { color: #222; }
  .cv-contact, .cv-meta, .cv-block > h2, .cv-quote cite { color: #555; }
  .cv-contact a { color: #1a1a1a; }
  .cv-head { border-bottom-color: #ccc; }
  .cv-edu-school { color: #000; }
  .cv-edu-detail { color: #555; }
  .cv-edu li { border-bottom-color: #e2e2e2; padding: 5px 0; }
  .cv-quote { border-left-color: #ccc; }

  /* Tuned to land on two pages: a 15-year résumé running to three reads as
     unedited, and page three is where recruiters stop. */
  @page { margin: 11mm 13mm; }
  body { font-size: 9.8pt; }
  .cv-head { padding-bottom: 14px; }
  .cv-head h1 { font-size: 22pt; margin-bottom: 2px; }
  .cv-role { font-size: 11pt; margin-bottom: 8px; }
  .cv-contact { font-size: 8.6pt; gap: 4px 14px; }
  .cv-block { margin-top: 15px; }
  .cv-block > h2 { margin-bottom: 8px; font-size: 8.4pt; }
  .cv-block p { font-size: 9.6pt; line-height: 1.45; }
  .cv-job { margin-bottom: 11px; }
  .cv-job h3 { font-size: 11pt; }
  .cv-meta { font-size: 8.8pt; }
  .cv-job-head { margin-bottom: 4px; }
  .cv-job li, .cv-projects li { font-size: 9.4pt; line-height: 1.42; margin-bottom: 2px; }
  .cv-tags { font-size: 8.8pt; line-height: 1.5; }
  .cv-cols { gap: 24px; }
  .cv-edu li { padding: 3px 0; }
  .cv-edu-school { font-size: 9.8pt; }
  .cv-edu-detail { font-size: 8.8pt; }
  .cv-quote { font-size: 9.2pt; line-height: 1.45; margin-bottom: 9px; padding-left: 12px; }
  .cv-quote cite { font-size: 8.4pt; margin-top: 3px; }

  /* Never split a role or a quote across pages. */
  .cv-job, .cv-quote, .cv-block > h2 { break-inside: avoid; page-break-inside: avoid; }
  .cv-block > h2 { break-after: avoid; page-break-after: avoid; }
}
