.about-cv{--cv-muted:#838383;--cv-line:#e7e7e7;width:100%;color:#111;font-size:14px;line-height:1.65;padding:128px 0 0;box-sizing:border-box}
html[data-theme=dark] .about-cv{--cv-muted:#a6a6a6;--cv-line:#383838;color:#eee}
.about-cv *{box-sizing:border-box}.about-cv h2,.about-cv h3,.about-cv h4,.about-cv p{margin:0}.about-cv h2{font-size:44px;line-height:1.15;font-weight:500;letter-spacing:-.045em}.about-cv h3,.about-cv h4{font-size:14px;font-weight:600;line-height:1.5}.about-cv a{color:inherit;text-decoration:none}.about-cv a:hover{text-decoration:underline;text-underline-offset:5px}
.cv-lead,.cv-overview,.cv-experience{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.cv-lead{margin-bottom:112px;align-items:start}.cv-position{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.cv-position p{font-size:13px;line-height:1.55;font-weight:500}.cv-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover}.cv-avatar[hidden]{display:none}
.cv-section-label{min-height:65px;border-bottom:1px solid var(--cv-line);padding-bottom:22px}.cv-section-label p{font-size:13px;color:var(--cv-muted);margin-top:2px}.cv-bio-copy{padding-top:32px;max-width:47ch}.cv-bio-copy>p+p{margin-top:18px}.cv-location{margin-top:32px}.cv-location>span{color:var(--cv-muted);font-size:12px}.cv-location p{margin-top:4px;font-weight:500}.cv-download{display:inline-block;margin-top:24px;font-size:13px}.cv-download[hidden]{display:none}.cv-tools{margin-top:56px}.cv-tools dl{max-width:49ch;margin:26px 0 0}.cv-tools dl>div+div{margin-top:20px}.cv-tools dt{font-weight:500}.cv-tools dd{margin:4px 0 0;color:var(--cv-muted);font-size:13px}
.cv-disclosure{border-bottom:1px solid var(--cv-line)}.cv-disclosure summary{display:grid;grid-template-columns:96px minmax(0,1fr) 24px;gap:16px;list-style:none;cursor:pointer;padding:30px 0;align-items:start}.cv-disclosure summary::-webkit-details-marker{display:none}.cv-disclosure summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}.cv-summary-copy{display:flex;flex-direction:column;gap:3px}.cv-summary-copy strong{font-size:15px;line-height:1.5;font-weight:600}.cv-summary-copy>span{color:var(--cv-muted);font-size:13px;line-height:1.6}.cv-number,.cv-year{color:var(--cv-muted);font-size:15px;font-weight:500;line-height:1.5}.cv-disclosure[open] .cv-number,.cv-disclosure[open] .cv-year{color:inherit}.cv-plus{position:relative;display:block;width:20px;height:22px;justify-self:end}.cv-plus::before,.cv-plus::after{content:'';position:absolute;left:5px;top:10px;width:10px;height:1px;background:currentColor}.cv-plus::after{transform:rotate(90deg)}.cv-disclosure[open] .cv-plus::after{transform:rotate(0)}.cv-reveal{margin-left:112px;padding:0 40px 32px 0;color:var(--cv-muted);font-size:13px}.cv-reveal ul{margin:0;padding-left:18px}.cv-disclosure[open] summary{padding-bottom:16px}.cv-specialties{margin-top:20px!important;line-height:1.8}.cv-experience{margin-top:112px}.cv-metric{padding-top:28px;margin-bottom:150px}.cv-metric strong{display:block;font-size:clamp(80px,8vw,140px);line-height:1;font-weight:600;letter-spacing:-.065em}.cv-metric>span{display:block;color:var(--cv-muted);font-size:13px;margin-top:12px}.cv-metric p{font-size:36px;color:var(--cv-muted);letter-spacing:-.045em;margin-top:18px}.cv-company{max-width:47ch}.cv-company+.cv-company{margin-top:64px}.cv-company h3{font-size:26px;letter-spacing:-.04em}.cv-company>p:last-child{margin-top:20px}.cv-muted{color:var(--cv-muted);font-size:13px}.cv-timeline-label{display:grid;grid-template-columns:96px 1fr;gap:16px;min-height:65px;align-items:start;padding-bottom:22px;border-bottom:1px solid var(--cv-line);font-size:12px;color:var(--cv-muted)}.cv-timeline-track{position:relative}.cv-timeline-track::before{content:'';position:absolute;left:80px;top:36px;bottom:37px;width:1px;background:var(--cv-line)}.cv-milestone{position:relative}.cv-year{position:relative;font-size:14px}.cv-year::after{content:'';position:absolute;left:76.5px;top:7px;width:8px;height:8px;background:var(--cv-muted);border-radius:50%}.cv-milestone[open] .cv-year::after{background:currentColor}.cv-scope{display:grid;grid-template-columns:112px minmax(0,1fr);gap:20px}.cv-scope+.cv-scope{margin-top:24px}.cv-scope>span{font-size:12px}.cv-scope h4{font-size:13px;color:#111}.cv-scope p{margin-top:4px}.cv-contact{display:flex;gap:24px;justify-content:space-between;border-top:1px solid var(--cv-line);padding-top:24px;margin-top:96px;font-size:13px}html[data-theme=dark] .cv-scope h4{color:#eee}
@media(max-width:1199px){.cv-disclosure summary{grid-template-columns:72px minmax(0,1fr) 20px;gap:12px}.cv-reveal{margin-left:84px;padding-right:24px}.cv-timeline-label{grid-template-columns:72px 1fr;gap:12px}.cv-timeline-track::before{left:61px}.cv-year::after{left:57.5px}.cv-scope{grid-template-columns:1fr;gap:4px}.cv-position{grid-template-columns:64px 1fr}.cv-metric{margin-bottom:100px}}
@media(max-width:899px){.about-cv{padding-top:80px}.cv-lead{margin-bottom:72px}.cv-overview,.cv-experience{grid-template-columns:1fr;gap:64px}.cv-bio-copy,.cv-tools dl{max-width:65ch}.cv-experience{margin-top:80px}.cv-career-summary{display:grid;grid-template-columns:1fr 1fr;gap:32px 24px}.cv-career-summary>.cv-section-label{grid-column:1/-1}.cv-metric{padding:0;margin:0;grid-row:span 2}.cv-metric strong{font-size:110px}.cv-metric p{font-size:30px}.cv-company+.cv-company{margin-top:0}.cv-company h3{font-size:23px}.cv-contact{margin-top:72px}.cv-scope{grid-template-columns:112px 1fr;gap:20px}}
@media(max-width:600px){.about-cv{padding-top:56px;font-size:14px}.about-cv h2{font-size:36px}.cv-lead{grid-template-columns:1fr;gap:32px;margin-bottom:56px}.cv-position{grid-template-columns:56px 1fr;gap:16px}.cv-position p{font-size:12px}.cv-section-label{min-height:60px}.cv-overview{gap:56px}.cv-tools{margin-top:40px}.cv-experience{margin-top:64px;gap:40px}.cv-career-summary{grid-template-columns:1fr}.cv-metric{grid-row:auto}.cv-metric strong{font-size:100px}.cv-company{max-width:100%}.cv-disclosure summary{grid-template-columns:54px minmax(0,1fr) 16px;gap:10px;padding:24px 0}.cv-summary-copy strong{font-size:14px}.cv-summary-copy>span{font-size:12px}.cv-number,.cv-year{font-size:12px}.cv-reveal{margin-left:64px;padding-right:0;font-size:12px}.cv-timeline-label{grid-template-columns:54px 1fr;gap:10px;font-size:11px}.cv-timeline-track::before{left:46px;top:31px;bottom:31px}.cv-year::after{left:43px;top:6px;width:7px;height:7px}.cv-scope{grid-template-columns:1fr;gap:5px}.cv-contact{flex-direction:column;gap:16px;margin-top:56px}.cv-plus{width:16px}.cv-plus::before,.cv-plus::after{left:3px}}
@media(prefers-reduced-motion:no-preference){.cv-plus::after{transition:transform .22s ease}}
.cv-year{max-width:70px}@media(max-width:1199px){.cv-year{max-width:52px}}@media(max-width:600px){.cv-year{max-width:39px}}
/* Compact career stages, matching the reference's date / role hierarchy. */
.cv-role-list{margin:24px 0 0;font-size:13px;line-height:1.55}.cv-role-list>div+div{margin-top:18px}.cv-role-list dt{font-weight:400}.cv-role-list dd{margin:2px 0 0;font-weight:600}
/* Keep the career summary's final row level with the timeline on desktop. */
@media(min-width:900px){
 .cv-career-summary{display:flex;flex-direction:column;align-items:stretch}
 .cv-career-summary>.cv-section-label{flex-shrink:0}
 .cv-career-summary>.cv-metric{margin-bottom:auto;padding-bottom:64px}
 .cv-career-summary>.cv-company{flex-shrink:0}
}
/* Omit the closing rules while preserving row height and internal dividers. */
.cv-skills>.cv-disclosure:last-child,.cv-timeline-track>.cv-disclosure:last-child{border-bottom-color:transparent}
/* Align the visible last lines, allowing for the timeline's bottom inset. */
@media(min-width:900px){
 .cv-career-summary{padding-bottom:31px}
 .cv-experience:has(.cv-milestone:last-child[open]) .cv-career-summary{padding-bottom:33px}
}
@media(min-width:900px){.cv-experience .cv-career-summary{padding-bottom:var(--cv-bottom-inset,39px)}}
@media(min-width:900px){.cv-timeline{align-self:start}}
@media(min-width:900px){.cv-career-summary>.cv-metric{padding-bottom:40px}}
/* Competencies pair concrete responsibilities with observable working behaviors. */
.about-cv .cv-capabilities{list-style:none;padding:0;margin:0}.cv-capabilities li+li{margin-top:18px}.cv-capabilities strong{display:block;color:#111;font-size:13px;font-weight:600;line-height:1.6}.cv-capabilities p{margin-top:4px;line-height:1.7}html[data-theme=dark] .cv-capabilities strong{color:#eee}
/* Two consistent reading levels within each career stage. */
.cv-stage-group h4{font-size:12px;font-weight:600;color:#111;line-height:1.6}.cv-stage-group+.cv-stage-group{margin-top:28px;padding-top:24px;border-top:1px solid var(--cv-line)}.cv-stage-content .cv-stage-technical{margin:14px 0 0;padding-left:17px;display:grid;gap:6px 24px}.cv-stage-role{margin-top:12px!important;font-weight:500;line-height:1.7;color:#111}.cv-stage-english{margin-top:4px!important;font-size:12px;font-style:italic;line-height:1.7}.cv-stage-content .cv-stage-soft{margin:18px 0 0;padding:0;list-style:none}.cv-stage-soft li+li{margin-top:12px}.cv-stage-soft strong{font-size:12px;color:#111;font-weight:600;display:block}.cv-stage-soft span{display:block;margin-top:3px;line-height:1.7}html[data-theme=dark] .cv-stage-group h4,html[data-theme=dark] .cv-stage-role,html[data-theme=dark] .cv-stage-soft strong{color:#eee}
@media(min-width:1200px){.cv-stage-content .cv-stage-technical{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Match both career headings without changing the reserved header row. */
.cv-timeline-heading{grid-template-columns:minmax(0,1fr);color:inherit}.about-cv .cv-timeline-heading h3{font-size:14px;font-weight:600;line-height:1.5}


/* Grouped skill sets within the five About disclosures. */
.cv-skill .cv-summary-copy{gap:10px}
.cv-skill .cv-summary-copy>span{line-height:1.75}
.cv-skill-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;padding-top:12px}
.about-cv .cv-skill-group h4{color:#111;font-size:13px;line-height:1.6;font-weight:600}
html[data-theme=dark] .about-cv .cv-skill-group h4{color:#eee}
.about-cv .cv-skill-group ul{list-style:none;padding:0;margin:12px 0 0}
.cv-skill-group li{line-height:1.7;overflow-wrap:break-word}
.cv-skill-group li+li{margin-top:5px}
@media(min-width:1200px){.cv-skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}}
@media(min-width:700px) and (max-width:899px){.cv-skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}}
@media(max-width:600px){.cv-skill-groups{gap:24px;padding-top:8px}.about-cv .cv-skill-group h4{font-size:12px}}

/* Career timeline: progression, role, then concrete changes. */
.cv-milestone .cv-summary-copy{gap:10px}
.cv-milestone .cv-summary-copy>span{line-height:1.75}
.cv-story-content{padding-top:12px}
.cv-story-role{display:flex;flex-direction:column;gap:5px}
.cv-story-role>span{font-size:11px}
.cv-story-role>strong{font-size:13px;line-height:1.65;font-weight:500;color:#111}
.cv-story-changes{margin-top:24px}
.about-cv .cv-story-changes h4{font-size:12px;line-height:1.6;font-weight:600;color:#111}
.about-cv .cv-story-changes ul{margin-top:12px;padding-left:16px}
.cv-story-changes li{line-height:1.75;overflow-wrap:break-word}
.cv-story-changes li+li{margin-top:10px}
html[data-theme=dark] .cv-story-role>strong,html[data-theme=dark] .cv-story-changes h4{color:#eee}
@media(max-width:600px){.cv-story-content{padding-top:8px}.cv-story-role>strong{font-size:12px}.cv-story-role>span{font-size:10px}.cv-story-changes{margin-top:20px}.cv-story-changes li+li{margin-top:9px}}

/* Visible career roles and scope; expanded narrative changes. */
.cv-story-meta{display:flex;flex-direction:column;gap:20px;margin-top:16px}
.cv-story-meta .cv-story-role,.cv-story-scope{display:flex;flex-direction:column;gap:5px}
.cv-story-role>span,.cv-story-scope>span{font-size:11px;line-height:1.6;font-weight:400}
.cv-story-role>b,.cv-story-scope>b{font-size:13px;line-height:1.7;font-weight:500;color:#111}
.cv-story-scope>em{font-size:12px;line-height:1.65;font-style:italic;font-weight:400}
.cv-story-content .cv-story-changes{margin-top:8px}
.about-cv .cv-story-changes .cv-story-points{list-style:none;padding:0;margin:20px 0 0}
.cv-story-points li+li{margin-top:24px}
.about-cv .cv-story-points h5{font-size:13px;font-weight:500;line-height:1.7;color:#111;margin:0}
.about-cv .cv-story-points p{margin-top:6px;line-height:1.8}
html[data-theme=dark] .cv-story-role>b,html[data-theme=dark] .cv-story-scope>b,html[data-theme=dark] .cv-story-points h5{color:#eee}
@media(max-width:600px){.cv-story-meta{gap:16px;margin-top:12px}.cv-story-role>b,.cv-story-scope>b,.about-cv .cv-story-points h5{font-size:12px}.cv-story-role>span,.cv-story-scope>span{font-size:10px}.cv-story-scope>em{font-size:11px}.cv-story-points li+li{margin-top:20px}}

/* Scope belongs to the expanded career details. */
.cv-story-content>.cv-story-scope+.cv-story-changes{margin-top:28px}

/* Enlarged labels with enough room for the current-stage caption. */
.cv-number,.cv-year{font-size:20px}
.cv-disclosure summary{grid-template-columns:128px minmax(0,1fr) 24px;column-gap:32px}
.cv-year{max-width:100px}
.cv-timeline-track::before{left:112px}.cv-year::after{left:108.5px}
.cv-reveal{margin-left:160px;padding-right:56px}
@media(max-width:1199px){
 .cv-disclosure summary{grid-template-columns:112px minmax(0,1fr) 20px;column-gap:24px}
 .cv-year{max-width:84px}.cv-timeline-track::before{left:96px}.cv-year::after{left:92.5px}
 .cv-reveal{margin-left:136px;padding-right:44px}
}
@media(max-width:600px){
 .cv-disclosure summary{grid-template-columns:64px minmax(0,1fr) 16px;column-gap:16px}
 .cv-milestone summary{grid-template-columns:104px minmax(0,1fr) 16px}
 .cv-year{max-width:84px}.cv-timeline-track::before{left:92px}.cv-year::after{left:88.5px}
 .cv-reveal{margin-left:80px;padding-right:0}.cv-milestone .cv-reveal{margin-left:120px}
}

/* Keep the two career summaries alongside each other on phones. */
@media(max-width:600px){
 .cv-career-summary{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;align-items:start}
 .cv-career-summary>.cv-metric{grid-column:1/-1;grid-row:auto}
 .cv-career-summary>.cv-company{min-width:0;margin-top:0}
}
