/* ==========================================================================
   RESUME — screen
   ========================================================================== */
.resume {
    max-width: 92rem;
    margin: 0 auto;
    padding: 14rem var(--gutter) var(--space-7);
}

.resume-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--space-4);
    flex-wrap: wrap;
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--border-light);
}
.resume-name { font-size: clamp(3.2rem, 5vw, 4.4rem); letter-spacing: -0.04em; }
.resume-role {
    font-size: var(--text-md);
    color: var(--accent);
    font-weight: 600;
    margin-top: 0.8rem;
}
.resume-contact {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    font-size: 1.4rem;
    color: var(--text-secondary);
}
.resume-contact a { color: var(--text-secondary); }
.resume-contact a:hover { color: var(--accent); }
.resume-contact span { display: inline-flex; align-items: center; gap: 0.8rem; }
.resume-contact .icon { color: var(--text-muted); }

.resume-block {
    display: grid;
    grid-template-columns: 20rem 1fr;
    gap: var(--space-4);
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--border-light);
}
.resume-block:last-of-type { border-bottom: 0; }
.resume-block h2 {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--text-muted);
    font-weight: 700;
    padding-top: 0.4rem;
}
.resume-block p { font-size: 1.5rem; color: var(--text-secondary); line-height: 1.8; max-width: var(--measure); }

.resume-entry + .resume-entry { margin-top: var(--space-4); }
.resume-entry-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--space-2);
    flex-wrap: wrap;
}
.resume-entry h3 { font-size: var(--text-lg); letter-spacing: -0.02em; }
.resume-entry h3 a { color: inherit; }
.resume-entry h3 a:hover { color: var(--accent); }
.resume-entry-when {
    font-size: var(--text-sm);
    color: var(--text-muted);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.resume-entry-note {
    font-size: var(--text-sm);
    color: var(--accent);
    font-weight: 600;
    margin-top: 0.4rem;
}
.resume-entry p { margin-top: 0.8rem; font-size: 1.45rem; }

.resume-list { display: flex; flex-direction: column; gap: 1rem; }
.resume-list li {
    font-size: 1.45rem;
    color: var(--text-secondary);
    line-height: 1.6;
    /* absolute marker keeps inline markup inside the li from being split up */
    position: relative;
    padding-left: 1.8rem;
}
.resume-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--accent);
}
.resume-list strong { color: var(--text-primary); font-weight: 600; }

.skill-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.skill-group h3 {
    font-size: var(--text-sm);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-primary);
    margin-bottom: 1rem;
}
.skill-group p { font-size: 1.45rem; }

.resume-actions {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    margin-top: var(--space-6);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-light);
}

@media (max-width: 768px) {
    .resume { padding-top: 12rem; }
    .resume-block { grid-template-columns: 1fr; gap: var(--space-2); }
    .skill-groups { grid-template-columns: 1fr; }
}

/* ==========================================================================
   RESUME — print / save as PDF
   ========================================================================== */
@media print {
    @page { margin: 14mm; }

    :root {
        --text-primary: #000000;
        --text-secondary: #26262b;
        --text-muted: #55555d;
        --accent: #047857;
        --border-light: #d4d4d8;
    }

    html { font-size: 57%; }
    body { background: #ffffff; color: #000; }

    .header,
    .universal-footer,
    .resume-actions,
    .skip-link,
    .mobile-menu,
    .mobile-menu-backdrop { display: none !important; }

    .resume { max-width: none; padding: 0; }
    .resume-header { padding-bottom: 1.2rem; }

    /* grid containers fragment unreliably across pages, so stack for print */
    .resume-block { display: block; padding: 1.6rem 0; break-inside: auto; }
    .resume-block h2 { letter-spacing: 0.1em; padding-top: 0; margin-bottom: 0.8rem; break-after: avoid; }
    .resume-entry { break-inside: avoid; }
    .resume-entry + .resume-entry { margin-top: 1.6rem; }
    .resume-entry p { margin-top: 0.4rem; }
    .resume-list { gap: 0.6rem; }
    .skill-groups { gap: 1.6rem 2.4rem; }

    a { color: inherit; text-decoration: none; }
}
