:root{--page-width:210mm;--page-height:297mm;--sidebar-width:55.6mm;--header-height:32.3mm;--paper:#fff;--panel:#f1f1f1;--ink:#242424;--muted:#858585;--accent:#e2676e}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#d8d8d8;font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:8.6pt;font-weight:400;line-height:1.28}a{color:inherit;text-decoration:none}.cv{grid-template:"sidebar identity" var(--header-height) "sidebar content" calc(var(--page-height) - var(--header-height)) / var(--sidebar-width) calc(var(--page-width) - var(--sidebar-width));width:var(--page-width);height:var(--page-height);background:var(--paper);margin:18px auto;display:grid;overflow:hidden;box-shadow:0 18px 50px #00000029}.identity{background:var(--accent);color:#fff;grid-area:identity;padding:4mm 6.5mm}.identity h1,.identity p{margin:0}.identity h1{letter-spacing:-.03em;font-size:27pt;font-weight:300;line-height:1}.identity .name{margin-top:4.2mm;font-size:14pt;font-weight:300;line-height:1}.identity .role{margin-top:1.1mm;font-size:9.5pt;font-weight:300;line-height:1}.sidebar{background:var(--paper);grid-area:sidebar}.portrait{object-fit:cover;width:24mm;height:28.5mm;margin:4.6mm auto 0;display:block}.sidebar-content{margin:18mm 7.2mm 0 6.2mm}.side-section+.side-section{margin-top:7.2mm}.side-section h2,.section>h2{letter-spacing:-.02em;text-transform:uppercase;border-bottom:.3mm solid #353535;margin:0;font-size:15pt;font-weight:300;line-height:1.18}.side-section h2{color:var(--accent);text-transform:none;padding-bottom:1.2mm;font-size:13pt}.side-section p{text-align:left;margin:4mm 0 0}.side-section p+p{margin-top:2.8mm}.side-section strong{font-weight:700}.contact address{margin-top:4.1mm;font-style:normal}.contact address>*{grid-template-columns:4.7mm minmax(0,1fr);align-items:start;margin:0 0 2.6mm;display:grid}.contact address img{object-fit:contain;width:3.5mm;height:3.5mm;display:block}.contact .web-icon{border:.35mm solid;border-radius:50%;width:3.5mm;height:3.5mm;display:block;position:relative}.contact .web-icon:before,.contact .web-icon:after{content:"";position:absolute}.contact .web-icon:before{border-left:.25mm solid;border-right:.25mm solid;border-radius:50%;inset:-.35mm .8mm}.contact .web-icon:after{border-top:.25mm solid;top:50%;left:0;right:0;transform:translateY(-50%)}.contact address p img{width:3.7mm;height:4.4mm}.contact address p{text-align:left}.details dl{margin:4mm 0 0}.details dt{margin-top:3mm;font-size:7.5pt;font-weight:700}.details dt:first-child{margin-top:0}.details dd{color:#555;margin:.5mm 0 0}.approach .triangle-list{margin-top:3.4mm}.approach .triangle-list li{margin-top:1.4mm}.main-content{background:var(--panel);grid-area:content;min-width:0;padding:4.7mm 6.6mm 4mm 6.5mm}.section>h2{padding-bottom:1.2mm}.job{margin-top:3mm}.job+.job{margin-top:3.8mm}.job-heading{justify-content:space-between;align-items:baseline;gap:4mm;display:flex}.job h3,.skills h3,.education h3{color:var(--accent);letter-spacing:-.018em;margin:0;font-size:13.1pt;font-weight:300;line-height:1.12}.period{color:#555;white-space:nowrap;flex:none;margin:0;font-size:7.4pt;font-weight:700}.meta{color:var(--muted)}.job .meta{margin:.55mm 0 0}.job .description{margin:1.1mm 0 0}.project-list{margin:1.2mm 0 0;padding:0;list-style:none}.project-list li{margin-top:1.1mm;padding-left:2.8mm;position:relative}.project-list li:before{border-top:.7mm solid #0000;border-bottom:.7mm solid #0000;border-left:.9mm solid var(--accent);content:"";width:0;height:0;position:absolute;top:.42em;left:0}.project-list strong{font-weight:700}.skills{margin-top:6.5mm}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5.4mm 6.2mm;margin-top:3.1mm;display:grid}.skills h3{font-size:11.8pt}.triangle-list{margin:2.1mm 0 0;padding:0;list-style:none}.triangle-list li{margin-top:1.25mm;padding-left:3.2mm;position:relative}.triangle-list li:before{content:"";border-top:.7mm solid #0000;border-bottom:.7mm solid #0000;border-left:.9mm solid #111;width:0;height:0;position:absolute;top:.38em;left:0}.education{margin-top:5.5mm}.education-grid{grid-template-columns:1fr;gap:3.2mm;margin-top:3.2mm;display:grid}.education article{grid-template-columns:11mm minmax(0,1fr);gap:2.2mm;display:grid}.education .year{color:#555;text-align:right;margin:.5mm 0 0;font-size:7.5pt;font-weight:700}.education h3{font-size:11.2pt}.education .meta{margin:1mm 0 0;font-size:7.5pt}@page{size:A4;margin:0}@media print{html,body{width:var(--page-width);height:var(--page-height);background:#fff}.cv{box-shadow:none;margin:0}}@media screen and (width<=820px){body{background:var(--paper);font-size:10.5pt}.cv{width:100%;height:auto;min-height:100vh;box-shadow:none;flex-direction:column;margin:0;display:flex;overflow:visible}.identity{order:1;padding:24px clamp(24px,7vw,56px) 27px}.identity h1{font-size:clamp(30px,8vw,46px)}.identity .name{margin-top:18px}.sidebar{order:2;grid-template-columns:120px minmax(0,1fr);gap:28px;padding:30px clamp(24px,7vw,56px);display:grid}.portrait{width:120px;height:142px;margin:0}.sidebar-content{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 34px;margin:0;display:grid}.profile{grid-column:1/-1}.side-section+.side-section{margin-top:0}.main-content{order:3;padding:34px clamp(24px,7vw,56px) 50px}.job,.job+.job{margin-top:22px}.skills,.education{margin-top:38px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.education-grid{grid-template-columns:1fr;gap:24px}.education article:first-child{grid-row:auto}}@media screen and (width<=560px){.sidebar{display:block}.portrait{margin:0 auto 32px}.sidebar-content,.skills-grid{display:block}.side-section+.side-section,.skills-grid section+section{margin-top:30px}.job-heading{display:block}.period{margin-top:6px}.education article{grid-template-columns:46px minmax(0,1fr)}}
