.cv-header{position:sticky}
.cv-actions{gap:10px}
.cv-actions .btn--ghost{gap:8px;padding:0 16px}
button.btn{font:inherit;font-weight:500;background:transparent;color:var(--text);cursor:pointer;-webkit-appearance:none;appearance:none}
button.btn--sm{font-size:15px}
.cv-actions__cta{display:none}
@media (min-width:768px){.cv-actions__cta{display:inline-flex}.cv-actions .btn--ghost{padding:0 22px}}
.cv-hero{position:relative;isolation:isolate;overflow:hidden;padding:40px 0 64px}
.cv-sky{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;
-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.cv-hero__inner{display:flex;flex-direction:column;gap:40px}
.cv-hero__text{display:flex;flex-direction:column;gap:18px}
.cv-name{font-size:clamp(56px,11vw,128px);line-height:.92;font-weight:700;letter-spacing:-.045em}
.cv-name .serif{font-weight:400;letter-spacing:-.015em;text-shadow:0 0 60px var(--ice-glow)}
.cv-role{font-size:20px;font-weight:500;color:var(--text)}
.cv-lead{max-width:36ch;font-size:18px;line-height:1.55;font-weight:300;color:var(--text-lead)}
.cv-contact{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin-top:10px;padding-top:24px;border-top:1px solid var(--line-2);font-size:15px}
.cv-contact li{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.cv-contact span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle)}
.cv-contact a:hover{color:var(--ice)}
.cv-portrait{margin:0;width:min(100%,300px);aspect-ratio:4/5;border-radius:var(--radius-card);overflow:hidden;background:var(--surface);
box-shadow:0 0 0 1px var(--line-2),0 30px 80px -30px rgba(168,221,238,.25)}
.cv-portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
@media (min-width:768px){
.cv-hero{padding:72px 0 96px}
.cv-hero__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:end}
.cv-hero__text{grid-column:1/span 7}
.cv-portrait{grid-column:9/span 4;width:100%}
.cv-contact{grid-template-columns:repeat(4,auto);justify-content:start;column-gap:40px}
.cv-lead{font-size:20px}
}
@media (min-width:1280px){.cv-hero{padding:96px 0 120px}.cv-role{font-size:22px}}
.cv-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts{display:grid;grid-template-columns:1fr}
.facts li{display:flex;align-items:baseline;gap:16px;padding:24px 0;border-top:1px solid var(--line)}
.facts li:first-child{border-top:0}
.facts strong{flex:none;min-width:3.2ch;font-size:44px;line-height:1;font-weight:600;letter-spacing:-.04em;color:var(--ice)}
.facts span{font-size:15px;line-height:1.45;color:var(--text-body)}
@media (min-width:768px){
.facts{grid-template-columns:repeat(3,1fr)}
.facts li{flex-direction:column;gap:12px;padding:40px 32px 40px 0;border-top:0}
.facts li+li{padding-left:32px;border-left:1px solid var(--line)}
.facts strong{font-size:64px}
}
.cv-section{padding:var(--section-y) 0}
.cv-section--line{border-top:1px solid var(--line)}
.cv-head{display:flex;flex-direction:column;gap:16px;margin-bottom:var(--head-gap)}
.cv-head .h2{max-width:14ch}
.timeline{position:relative}
.role{position:relative;display:grid;grid-template-columns:28px 1fr;column-gap:16px;padding-bottom:56px}
.role:last-child{padding-bottom:0}
.role__meta{grid-column:2;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:10px}
.role__dates{font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ice)}
.role__co{display:none}
.role__sub{font-size:13px;color:var(--text-subtle)}
.role__node{grid-column:1;grid-row:1/span 2;position:relative;justify-self:center;width:100%}
.role__node::before,.role__node::after{content:"";position:absolute;left:50%;top:14px;bottom:-56px;width:2px;margin-left:-1px;background:var(--line-2)}
.role__node::after{background:linear-gradient(var(--ice),rgba(168,221,238,.35));transform:scaleY(0);transform-origin:top;transition:transform 1.1s var(--ease-ice) .15s}
.role:last-child .role__node::before,.role:last-child .role__node::after{display:none}
.role__node{min-height:14px}
.role__node{--node:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 16'%3E%3Cpath d='M14 0 L28 8 L14 16 L0 8 Z' fill='%23A8DDEE'/%3E%3C/svg%3E")}
.role__node{background:var(--node) center 3px/22px 13px no-repeat;opacity:.35;transition:opacity .5s ease}
.role.is-in .role__node{opacity:1}
.role.is-in .role__node::after{transform:scaleY(1)}
.role--now .role__node{filter:drop-shadow(0 0 10px rgba(168,221,238,.8))}
.role__body{grid-column:2;display:flex;flex-direction:column;gap:14px}
.role__title{font-size:24px;line-height:1.2;font-weight:600;letter-spacing:-.02em}
.role__at{color:var(--text-muted);font-weight:400}
.role__pts{display:flex;flex-direction:column;gap:8px;max-width:66ch;font-size:16px;line-height:1.55;color:var(--text-body)}
.role__pts li{position:relative;padding-left:18px}
.role__pts li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:1.5px;background:var(--ice)}
.role__meta,.role__body{transition:opacity .6s ease,transform .6s var(--ease-ice)}
.js .role:not(.is-in) .role__meta,.js .role:not(.is-in) .role__body{opacity:0;transform:translateY(16px)}
@media (min-width:768px){
.role{grid-template-columns:200px 40px 1fr;column-gap:24px;padding-bottom:72px}
.role__meta{grid-column:1;grid-row:1;flex-direction:column;align-items:flex-end;text-align:right;gap:6px;margin:4px 0 0}
.role__co{display:block;font-size:18px;font-weight:600;color:var(--text)}
.role__node{grid-column:2;grid-row:1}
.role__node::before,.role__node::after{bottom:-72px}
.role__body{grid-column:3;grid-row:1}
.role__at{display:none}
.role__title{font-size:26px}
.role__pts{font-size:17px}
}
@media (min-width:1280px){.role{grid-template-columns:240px 48px 1fr}}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{padding:5px 12px;border-radius:999px;border:1px solid var(--line-3);background:rgba(238,245,248,.03);font-size:13px;line-height:1.4;color:var(--text-body)}
.skills{display:grid;gap:32px}
.skill{display:flex;flex-direction:column;gap:14px}
.skill h3,.edu h3,.langs h3{font-size:18px;font-weight:600;letter-spacing:-.01em}
@media (min-width:768px){.skills{grid-template-columns:1fr 1fr;gap:40px 48px}}
@media (min-width:1280px){.cv-split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}.cv-split .cv-head{grid-column:1/span 4;margin:0}.cv-split .skills{grid-column:6/span 7}}
.cv-duo{display:grid;gap:64px}
.cv-duo .eyebrow{margin-bottom:28px}
.edu{display:flex;flex-direction:column}
.edu li{display:flex;flex-direction:column;gap:4px;padding:20px 0;border-top:1px solid var(--line-2)}
.edu__years{font-size:13px;font-weight:500;letter-spacing:.08em;color:var(--ice)}
.edu p{font-size:16px;color:var(--text-body)}
.langs{display:grid;grid-template-columns:1fr 1fr}
.langs li{display:flex;flex-direction:column;gap:2px;padding:20px 0;border-top:1px solid var(--line-2)}
.langs span{font-size:15px;color:var(--text-body)}
@media (min-width:768px){.cv-duo{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}.cv-duo>:first-child{grid-column:1/span 7}.cv-duo>:last-child{grid-column:9/span 4}}
.cv-close__line{font-size:clamp(32px,4vw,48px);font-weight:600;letter-spacing:-.03em;line-height:1.1}
.print-only{display:none}
@media (prefers-reduced-motion:reduce){
.role__node::after{transform:scaleY(1);transition:none}
.role__node{opacity:1;transition:none}
.js .role:not(.is-in) .role__meta,.js .role:not(.is-in) .role__body{opacity:1;transform:none}
}
@page{size:A4;margin:14mm 15mm 14mm}
@media print{
:root{color-scheme:light}
html,body{background:#fff!important;color:#0B1014;font-size:9.6pt;line-height:1.45;color-scheme:light}
*{box-shadow:none!important;text-shadow:none!important;filter:none!important}
.skip,.cv-sky,.cv-actions,.cv-close,.cv-facts,.header .brand__word{display:none!important}
.header{position:static;border:0;background:none!important}
.header__inner{height:auto;padding:0 0 4mm}
.brand .logo-mark{width:20px;height:24px}
.container{padding:0;max-width:none}
.cv-hero{padding:0 0 5mm;overflow:visible}
.cv-hero__inner{display:grid;grid-template-columns:1fr 30mm;gap:8mm;align-items:start}
.cv-hero__text{gap:2mm}
.eyebrow{color:#56636C;font-size:7.5pt}
.cv-name{font-size:30pt;color:#0B1014}
.cv-name .serif,.serif{color:#1F6F8B}
.cv-role{font-size:12pt;color:#0B1014}
.cv-lead{max-width:none;font-size:10pt;color:#3F4C55}
.cv-contact{grid-template-columns:repeat(4,auto);gap:1mm 7mm;padding-top:3mm;margin-top:1mm;border-color:#C5CFD4;font-size:8.6pt}
.cv-contact span{font-size:6.5pt;color:#56636C}
.cv-portrait{width:30mm;border-radius:3mm;box-shadow:none}
.cv-section{padding:5mm 0 0;border-color:#C5CFD4!important}
.cv-head{margin-bottom:4mm;flex-direction:row;align-items:baseline;gap:4mm}
.cv-head .h2{display:none}
.timeline .role{grid-template-columns:34mm 5mm 1fr;column-gap:3mm;padding-bottom:4.5mm;break-inside:avoid}
.role__meta{grid-column:1;grid-row:1;flex-direction:column;align-items:flex-end;text-align:right;gap:.5mm;margin:.6mm 0 0}
.role__co{display:block;font-size:10pt;font-weight:600;color:#0B1014}
.role__dates{color:#1F6F8B;font-size:7.5pt}
.role__sub{color:#56636C;font-size:7.5pt}
.role__node{grid-column:2;grid-row:1;opacity:1!important;background-size:10px 6px;background-position:center 1.2mm;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 16'%3E%3Cpath d='M14 0 L28 8 L14 16 L0 8 Z' fill='%231F6F8B'/%3E%3C/svg%3E")}
.role__node::before{background:#C5CFD4;top:3mm;bottom:-4.5mm}
.role__node::after{display:none}
.role__body{grid-column:3;grid-row:1;gap:1.5mm}
.js .role .role__meta,.js .role .role__body{opacity:1!important;transform:none!important}
.role__title{font-size:11pt}
.role__at{display:none}
.role__pts{max-width:none;gap:.6mm;font-size:9.2pt;color:#3F4C55}
.role__pts li::before{background:#1F6F8B;height:1px}
.chips{gap:0}
.chips li{padding:0;border:0;background:none;font-size:8pt;color:#56636C}
.chips li+li::before{content:" · "}
.skills{grid-template-columns:1fr 1fr;gap:3mm 8mm}
.cv-split{display:block}
.skill{gap:1mm}
.skill h3,.edu h3,.langs h3{font-size:9.6pt;color:#0B1014}
.cv-duo{grid-template-columns:3fr 2fr;gap:8mm;display:grid}
.cv-duo>*{grid-column:auto!important}
.cv-duo .eyebrow{margin-bottom:2mm}
.edu li,.langs li{padding:2mm 0;border-color:#C5CFD4}
.edu__years{color:#1F6F8B}
.edu p,.langs span{font-size:9pt;color:#3F4C55}
.cv-section--line{break-inside:avoid}
a{color:inherit!important}
.print-only{display:block}
.print-foot{margin-top:6mm;padding-top:3mm;border-top:1px solid #C5CFD4;font-size:7.5pt;color:#56636C}
}