/* Screen presentation shares the portfolio tokens. Print rules stay separate. */
body { font-family: var(--sp-font); background: var(--sp-bg); color: var(--sp-text); }
.resume-main { width: min(960px, calc(100% - 2 * var(--sp-edge))); max-width: 960px; margin-inline: auto; padding: 64px 0 80px; }
.resume-heading { display: block; border-bottom: 2px solid var(--sp-rule); padding-bottom: 28px; }
.resume-heading h1 { font-family: var(--sp-font); font-size: clamp(38px, 5vw, 60px); font-weight: 800; line-height: 1.05; letter-spacing: -.025em; color: var(--sp-text); }
.resume-heading .resume-tagline { font-size: var(--sp-lead); font-weight: 400; line-height: 1.5; color: var(--sp-text-muted); margin-top: 18px; }
.resume-contact { display: flex; flex-wrap: wrap; gap: 2px 24px; font-size: var(--sp-small); margin-top: 16px; }
.resume-contact.resume-links { margin-top: 0; }
.resume-contact a { min-height: 44px; color: var(--sp-accent); text-decoration: none; }
.resume-contact a:hover { text-decoration: underline; }
.resume-section { margin-top: 36px; }
.resume-section h2 { font-family: var(--sp-font); font-size: 15px; font-weight: 600; line-height: 1.5; letter-spacing: .08em; color: var(--sp-accent); text-transform: uppercase; margin-bottom: 16px; }
.resume-section h3 { font-family: var(--sp-font); font-size: 22px; font-weight: 800; line-height: 1.25; color: var(--sp-text); }
.resume-section p, .resume-section li { font-size: 17px; line-height: 1.65; color: var(--sp-text); }
.resume-section .role-title { font-weight: 600; margin-top: 6px; }
.resume-section .role-dates, .resume-section .role-location { font-size: 15px; color: var(--sp-text-muted); }
.resume-section .role-intro { color: var(--sp-text-muted); margin-top: 16px; }
.resume-section .resume-role + .resume-role { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--sp-hairline); }
.resume-section li + li { margin-top: 12px; }
.resume-page + .resume-page { border-top: 2px solid var(--sp-rule); padding-top: 32px; margin-top: 40px; }
.resume-page + .resume-page > .resume-section:first-of-type { margin-top: 0; }
.resume-navigation .sp-nav-inner { gap: 16px; }
.resume-navigation .sp-btn { white-space: nowrap; }
.resume-navigation a { text-decoration: none; }
.resume-navigation button { font-family: var(--sp-font); cursor: pointer; }
.resume-note { color: var(--sp-text-muted); }
@media (max-width: 760px) {
  .resume-main { padding-top: 40px; }
  .resume-navigation .sp-nav-inner { padding-block: 10px; gap: 8px; }
  .resume-navigation .sp-brand { flex-basis: 100%; }
  .resume-navigation .sp-btn { flex: 1; min-width: 0; width: auto; padding-inline: 12px; justify-content: center; }
  .resume-section .role-dates { white-space: normal; }
}
