/* One font family; explicit A4 sheets. Screen rules never affect print. */
:root { --ink:#303b3e; --muted:#616c6e; --line:#d6dcda; --accent:#526460; --wash:#f1f3f1; }
* { box-sizing:border-box; }
html,body { margin:0; padding:0; }
body { background:#e4e7e5; color:var(--ink); font:9.2pt/1.43 Arial,Helvetica,sans-serif; }
.document { padding:10mm 0; }
.page { width:210mm; height:297mm; margin:0 auto 10mm; display:grid; grid-template-columns:61mm 149mm; background:white; box-shadow:0 2mm 8mm #0001; break-after:page; }
.page:last-child { break-after:auto; }
.sidebar { padding:13mm 7mm 12mm 9mm; background:var(--wash); min-width:0; }
.portrait-wrap { width:43mm; height:43mm; margin:0 0 11mm; border-radius:50%; overflow:hidden; }
.portrait { width:100%; height:100%; display:block; object-fit:contain; }
.side-section { margin-bottom:8mm; }
.side-section h2,.section-title { font-size:9pt; line-height:1.3; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin:0 0 3.5mm; padding-bottom:2mm; border-bottom:.25mm solid var(--line); }
.sidebar { font-size:8.4pt; line-height:1.48; }
.contact address { font-style:normal; }
.contact address>* { display:block; margin-bottom:2mm; }
a { color:inherit; text-decoration:none; overflow-wrap:anywhere; }
.tag-list { list-style:none; padding:0; margin:0; }
.tag-list li { margin-bottom:2mm; }
.side-section p { margin:0; }
.languages dl { margin:0; }
.languages dl div { display:flex; justify-content:space-between; margin-bottom:1.5mm; }
.languages dt { font-weight:700; }
.languages dd { margin:0; color:var(--muted); }
.content { min-width:0; padding:14mm 12mm 12mm; }
.hero { margin-bottom:6mm; padding-bottom:5mm; border-bottom:.35mm solid var(--line); }
.eyebrow,.impact,.profile .section-title { display:none; }
h1 { font-size:25pt; line-height:1.12; letter-spacing:-.035em; margin:0; font-weight:700; }
.position { font-size:13pt; margin:2.5mm 0 2mm; color:var(--accent); }
.specialisation { margin:0; font-size:8pt; color:var(--muted); line-height:1.45; }
.specialisation span { padding:0 .5mm; }
.profile p { margin:0 0 2.5mm; }
.impact-note { margin:0 0 6mm; }
.job { margin:0 0 4mm; break-inside:avoid; }
.job+.job { padding-top:4mm; border-top:.25mm solid var(--line); }
.job-heading { display:flex; justify-content:space-between; gap:3mm; margin-bottom:2mm; }
.job h3 { font-size:10.5pt; margin:0; line-height:1.3; }
.role { margin:.5mm 0 0; font-size:9pt; color:var(--accent); }
.date { margin:0; text-align:right; white-space:nowrap; font-size:8pt; line-height:1.4; }
.date span { display:block; color:var(--muted); font-size:7.7pt; }
.job ul { padding-left:4mm; margin:0; }
.job li { margin-bottom:1mm; padding-left:.5mm; }
.job li::marker { color:#82908c; }
.page-one .job { font-size:8.8pt; line-height:1.38; }
.page-one .job li { margin-bottom:.8mm; }
.sidebar-continuation { padding-top:17mm; }
.education article { margin-bottom:7mm; }
.education h3 { font-size:8.8pt; line-height:1.4; margin:0 0 1.5mm; }
.education time { display:block; margin-top:1.5mm; color:var(--muted); }
.sidebar-continuation .side-section { margin-bottom:12mm; }
.running-header { display:flex; justify-content:space-between; align-items:center; padding-bottom:4mm; margin-bottom:8mm; border-bottom:.25mm solid var(--line); }
.running-header p { margin:0 0 1mm; font-size:10pt; font-weight:700; }
.running-header span { font-size:8pt; color:var(--muted); }
.page-two .job { margin-bottom:6mm; }
.projects { margin-top:8mm; }
.projects article { margin-bottom:5mm; break-inside:avoid; }
.projects h3 { margin:0 0 1.5mm; display:flex; justify-content:space-between; align-items:baseline; gap:3mm; font-size:9.5pt; }
.projects h3 span { font-size:8pt; font-weight:400; white-space:nowrap; color:var(--accent); }
.projects p { margin:0; font-size:9pt; line-height:1.45; }
@page { size:A4; margin:0; }
@media print { html,body { background:white; } * { print-color-adjust:exact; -webkit-print-color-adjust:exact; } .document { padding:0; } .page { margin:0; box-shadow:none; } }
@media screen and (max-width:800px) { .document { padding:0; } .page { width:100%; height:auto; display:flex; flex-direction:column; margin:0; } .content { order:0; } .sidebar { order:1; } }
