/* Resume: the original content, using the portfolio's type and color roles. */
.resume-page .wrap { max-width: 75rem; }
.resume-content { padding-block: 3rem 4rem; }
.resume-heading { margin-bottom: 3rem; }
.resume-heading h1 {
  max-width: 100%;
  margin: 0;
  text-align: left;
  font-size: var(--type-display);
  line-height: var(--type-display-line-height);
  letter-spacing: var(--type-display-tracking);
}
.resume-role {
  margin-top: 1rem;
  font-size: var(--type-body-large);
  line-height: var(--type-body-large-line-height);
  color: var(--text-secondary);
}
.resume-contact {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
  font-size: var(--type-body);
  line-height: var(--type-body-line-height);
  color: var(--text-secondary);
}
.resume-contact a {
  color: var(--text-brand);
  text-decoration: underline;
  text-underline-offset: .2em;
  overflow-wrap: anywhere;
}
.resume-contact a:hover { text-decoration-thickness: 2px; }
.resume-layout {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(15rem, 1fr);
  align-items: start;
  gap: clamp(2rem, 6vw, 5rem);
}
.resume-main-column, .resume-details { min-width: 0; }
.resume-summary, .resume-job-description, .resume-job ul {
  max-width: 65ch;
  color: var(--text-secondary);
  font-size: var(--type-body);
  line-height: var(--type-body-line-height);
}
.resume-content p, .resume-content li, .resume-content dd {
  overflow-wrap: break-word;
  text-wrap: pretty;
}
.resume-summary { margin-bottom: 3rem; }
.resume-content h2 {
  margin-bottom: 1.5rem;
  font-size: var(--type-heading-medium);
  line-height: var(--type-heading-medium-line-height);
  letter-spacing: var(--type-heading-medium-tracking);
  font-weight: var(--type-heading-medium-weight);
}
.resume-job + .resume-job { margin-top: 2.5rem; }
.resume-job-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.resume-job h3 {
  font-size: var(--type-heading-small);
  line-height: var(--type-heading-small-line-height);
  letter-spacing: var(--type-heading-small-tracking);
  font-weight: var(--type-heading-small-weight);
}
.resume-job-heading > div > p {
  margin-top: .5rem;
  color: var(--text-secondary);
}
.resume-dates {
  flex-shrink: 0;
  font-size: var(--type-small);
  line-height: var(--type-small-line-height);
  color: var(--text-muted);
  white-space: nowrap;
}
.resume-job ul { margin: 0; padding-left: 1.25rem; }
.resume-job li + li { margin-top: 1rem; }
.resume-job li::marker { color: var(--text-brand); }
.resume-details {
  display: grid;
  gap: 2.5rem;
  color: var(--text-secondary);
  font-size: var(--type-body);
  line-height: var(--type-body-line-height);
}
.resume-details h2 { color: var(--text-primary); }
.resume-skills { display: grid; gap: 1.25rem; margin: 0; }
.resume-skills dt { color: var(--text-primary); font-weight: 500; }
.resume-skills dd { margin: .25rem 0 0; }
.resume-details .resume-degree { color: var(--text-primary); margin-bottom: .5rem; }
.resume-page .contact { margin-top: 0; }
.resume-page .contact-panel { background: var(--background-selected); color: var(--text-primary); }
.resume-page .contact-panel p { color: var(--text-secondary); font-size: var(--type-body); }
.resume-page .contact-panel .button { border-color: var(--action-primary-border); }

@media (max-width: 1199px) {
  .resume-content { padding-top: 2rem; }
  .resume-layout { grid-template-columns: minmax(0, 2fr) minmax(13rem, 1fr); gap: 2rem; }
  .resume-job-heading { flex-direction: column; gap: .5rem; }
}
@media (max-width: 767px) {
  .resume-content { padding-bottom: 3rem; }
  .resume-heading { margin-bottom: 2rem; }
  .resume-contact { display: grid; gap: .75rem; }
  .resume-layout { grid-template-columns: minmax(0, 1fr); gap: 3rem; }
  .resume-summary { margin-bottom: 2rem; }
  .resume-job + .resume-job { margin-top: 2rem; }
  .resume-details { gap: 2rem; }
  .resume-page .footer { padding-bottom: 5rem; }
}
@media print {
  @page { margin: 15mm; }
  .resume-page { color: #000; background: #fff; font-size: 10pt; }
  .resume-page > .header, .resume-page > .contact, .resume-page > .footer,
  .resume-page .skip { display: none !important; }
  .resume-page .wrap { width: 100%; max-width: none; }
  .resume-content { padding: 0; }
  .resume-heading { margin-bottom: 18pt; }
  .resume-heading h1 { font-size: 26pt; }
  .resume-role { font-size: 12pt; }
  .resume-contact { display: flex; font-size: 9pt; gap: 4pt 12pt; margin-top: 10pt; }
  .resume-layout { display: block; }
  .resume-content p, .resume-content li, .resume-content dd, .resume-content dt { color: #000; font-size: 10pt; line-height: 1.4; }
  .resume-summary, .resume-job ul, .resume-job-description { max-width: none; }
  .resume-summary, .resume-job + .resume-job { margin-bottom: 16pt; margin-top: 0; }
  .resume-content h2 { color: #000; font-size: 15pt; margin-bottom: 10pt; break-after: avoid; }
  .resume-job h3 { font-size: 12pt; }
  .resume-job-heading { flex-direction: row; gap: 12pt; margin-bottom: 8pt; break-after: avoid; }
  .resume-job li + li { margin-top: 6pt; }
  .resume-job li { break-inside: avoid; }
  .resume-details { margin-top: 20pt; gap: 16pt; }
  .resume-details section { break-inside: avoid; }
  .resume-skills { gap: 6pt; }
  .resume-contact a { color: #000; }
}

.resume-earlier-divider{border:0;border-top:1px solid var(--border-default);margin:2.5rem 0}
.resume-job-heading > div > .resume-job-location{font-size:var(--type-small);line-height:var(--type-small-line-height);color:var(--text-muted)}
@media(max-width:767px){.resume-earlier-divider{margin:2rem 0}}
@media print{.resume-earlier-divider{border-color:#d1d5db;margin:16pt 0}}

.resume-download { margin-top: 3rem; }
@media print { .resume-download { display: none; } }
