.resume-variant-badge{display:inline-block;margin-bottom:1rem;padding:.35rem .75rem;font-size:.75rem;color:var(--text-muted);border:1px solid var(--border);border-radius:999px}.resume-page{padding-top:2rem;padding-bottom:4rem}.resume-article h1{font-size:clamp(1.75rem,4vw,2.25rem);margin-bottom:.75rem;letter-spacing:-.03em}.resume-article h1+p strong{display:block;font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.resume-article h1+p+p,.resume-article h1+strong+p,.resume-article .resume-contact{font-size:.9rem;color:var(--text-muted);margin-bottom:2rem}.resume-article .resume-contact__pair{white-space:nowrap}.resume-article h2{font-size:1.125rem;font-weight:700;margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.resume-article h3{font-size:1rem;font-weight:700;margin:1.75rem 0 .5rem;color:var(--text)}.resume-article h4{font-size:.9375rem;font-weight:600;margin:1.25rem 0 .5rem;color:var(--accent)}.resume-article p{margin-bottom:.75rem}.resume-article ul{margin:0 0 1rem;padding-left:1.25rem}.resume-article li{margin-bottom:.4rem;color:var(--text-secondary);font-size:.9rem;line-height:1.65}.resume-article a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.resume-article strong{font-weight:600;color:var(--text)}.resume-profile{text-align:center;margin-bottom:2rem}.resume-avatar-wrap{width:80px;height:80px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem;border:2px solid var(--border)}.resume-avatar{width:100%;height:100%;object-fit:cover}.resume-name{font-size:1.25rem;font-weight:700}.resume-title{margin-top:.25rem}.resume-section{margin-bottom:2rem}.resume-page .sidebar-heading{font-size:.6875rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.highlights-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.highlights-list li{font-size:.8125rem;color:var(--text-secondary);padding-left:1rem;position:relative;line-height:1.6}.highlights-list li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.contacts-list{display:flex;flex-direction:column;gap:.5rem}.contact-link{font-size:.8125rem;color:var(--text-secondary);text-decoration:none;display:flex;align-items:center;gap:.5rem;transition:color var(--transition-fast)}.contact-link:hover{color:var(--accent)}.contact-link:hover .contact-value{text-decoration-color:var(--accent)}.contact-label{color:var(--accent);font-weight:500}.contact-value{text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px}.skills-groups{display:flex;flex-direction:column;gap:1.25rem}.skill-category{font-weight:600;font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.skill-pills{display:flex;gap:.375rem;flex-wrap:wrap}.skill-pills .pill{font-size:.6875rem;padding:.2rem .5rem}.resume-bio{margin-bottom:2.5rem}.resume-section-title{margin-bottom:1.5rem;font-size:1.125rem}.timeline-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem;gap:1rem}.timeline-title{font-weight:700;font-size:1rem}.timeline-period{color:var(--text-muted);white-space:nowrap}.timeline-company{margin-bottom:.5rem}.timeline-desc{font-size:.9375rem;margin-bottom:.75rem}.achievement{margin-bottom:1rem}.achievement-title{font-weight:600;font-size:.9375rem;margin-bottom:.5rem}.achievement-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.4rem}.achievement-list li{font-size:.875rem;color:var(--text-secondary);padding-left:1.25rem;position:relative;line-height:1.6}.achievement-list li:before{content:"·";position:absolute;left:.25rem;color:var(--accent);font-weight:700}.resume-projects{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3rem}.resume-project-card{padding:1.25rem}.resume-project-title{font-weight:700;font-size:1rem;margin-bottom:.25rem}.resume-project-link{color:var(--accent);text-decoration:none}
