:root{--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    sans-serif;--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--page-width:680px;--step-07:clamp(0.7rem, 0.7rem + 0.33vw, 1rem);--step-09:clamp(0.9rem, 0.9rem + 0.33vw, 1.15rem);--step-0:clamp(1.06rem, 1rem + 0.33vw, 1.25rem);--step-1:clamp(1.19rem, 1.12rem + 0.38vw, 1.41rem);--step-2:clamp(1.34rem, 1.22rem + 0.58vw, 1.75rem);--step-3:clamp(1.58rem, 1.38rem + 1.01vw, 2.38rem);--color-primary:#00b166;--color-primary-dark:#008a50;--color-bg:#f7fbf9;--color-text-heading:#061a11;--color-text-body:#1f2937;--color-text-muted:#636c76;--color-accent-soft:#e6f7ef}body{background-color:var(--color-bg);color:var(--text-body);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.7;font-feature-settings:"kern","liga","clig","calt";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-ligatures:common-ligatures;font-kerning:normal;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:column;min-height:100vh;align-items:center}header{border-bottom:1px solid #222;margin-bottom:.5rem;max-width:var(--page-width);width:calc(100% - 2em);padding:.5rem 1rem;display:flex;justify-content:space-between;align-items:center}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-dark);text-decoration:underline}p a{color:var(--color-primary-dark);text-decoration:underline}header a:hover{text-decoration:underline;color:var(--color-primary-dark)}header h1{margin:0;font-size:var(--step-2);line-height:1;font-family:courier new,Courier,monospace}header nav ul{display:flex;column-gap:1rem}header nav li{display:inline-block}header nav{font-weight:600}main{max-width:var(--page-width);width:calc(100% - 2rem);padding:1rem;padding-top:0;flex:1}footer{max-width:var(--page-width);width:calc(100% - 2em);padding:1em;margin-top:1rem;border-top:1px solid #222;display:flex;justify-content:center}footer p{font-size:smaller}blockquote{margin:1rem 0;padding:0 1em;border-left:.25em solid var(--color-text-body)}.highlight{line-height:1.2;font-size:var(--step-07)}.highlight pre{overflow-x:auto;white-space:pre;word-wrap:normal;background-color:#f4f4f4;padding:1rem;border-radius:4px}.highlight pre code{display:inline-block;min-width:100%}p>code,table code,li>code{box-sizing:border-box;background:rgba(135,131,120,.15);color:#eb5757;border-radius:4px;font-size:var(--step-07);font-weight:600;padding:.2em .4em}h1,h2,h3{font-family:var(--font-sans);color:var(--color-text-heading);letter-spacing:-.02em;margin-top:2.5rem;margin-bottom:1rem}h1{font-size:var(--step-3);line-height:1.1;font-weight:800;margin-top:1.5rem;margin-bottom:0}h2{font-size:var(--step-2);line-height:1.2;font-weight:700}h3{font-size:var(--step-1);line-height:1.3;font-weight:600}time{font-size:var(--step-07);font-family:var(--font-sans);display:block;font-weight:500;color:#666}p.page-width img{max-width:100%}table{width:100%;font-size:var(--step-09)}table thead th{text-align:left}.table-wrapper{width:100%;overflow-x:auto;margin-bottom:1.5rem}.table-wrapper table{width:100%;border-collapse:collapse}.table-wrapper th,.table-wrapper td{text-align:left;padding:.5rem;border:1px solid #ddd}article{margin-bottom:2rem}article h2{margin-top:1.5rem;margin-bottom:0;font-size:var(--step-1)}article p{margin-top:0;line-height:1.3}.text-image img{width:96px;float:left;margin-right:1.5rem;margin-top:.5rem}@media(max-width:600px){.text-image img{width:60px;margin-right:1rem}}.layout-work-item .back-link{font-size:var(--step-07)}.cv-page{display:flex;row-gap:2rem;flex-direction:column;width:calc(100% - 2rem);padding:1rem;flex:1;max-width:var(--page-width);font-size:var(--step-09);line-height:1.6}.cv-page p{margin:0;padding:0}.cv-page h2{margin:0;padding:0}.cv-page h3{margin:0;padding:0}.cv-page h4{margin:0;padding:0;line-height:1.2rem;font-size:1.1rem;font-weight:600}.cv-page .font-bold{font-weight:600}.cv-page section{display:flex;flex-direction:column;row-gap:2rem}.cv-page .contact{flex-direction:row;flex-wrap:wrap;row-gap:0}.cv-page .contact span:not(:last-child):after{content:"\00a0|\00a0"}.cv-page .work .subtitle{margin:0;padding:0;font-style:italic}.cv-page .work ul{margin:0;padding:0;padding-left:1.1rem;display:flex;flex-direction:column;row-gap:.3rem}.cv-page .work em{font-weight:600;font-style:normal}.cv-page .work .current{display:flex;flex-direction:column;row-gap:2rem}.cv-page .work .current>div{display:flex;flex-direction:column;row-gap:.5rem}.cv-page .work .previous{display:flex;flex-direction:column;row-gap:1rem}.cv-page .skills .columns{display:flex;flex-direction:row;column-gap:1rem}@media(max-width:600px){.cv-page .skills .columns{flex-direction:column;row-gap:1rem}}.cv-page .skills .column{display:flex;flex-direction:column;row-gap:.5rem;flex:1}.cv-page .skills h3{line-height:1.3rem;font-size:1.1rem;font-weight:600}.cv-page .education span:not(:last-child):after{content:"\00A0|\00a0";font-weight:400}