:root{--ruler:.5pt solid #888888;--background-color:#f8f8f8;--text-color:#000000;--hover-color:#000066;--muted-color:#5a5a5a;--measure:36em;--gutter:clamp(1rem, 4vw, 2rem);--1_star:url(/graphics/1_star.svg);--2_star:url(/graphics/2_star.svg);--3_star:url(/graphics/3_star.svg);--4_star:url(/graphics/4_star.svg);--5_star:url(/graphics/5_star.svg);--envelope:url(/graphics/envelope.svg);--phone:url(/graphics/phone.svg);--home:url(/graphics/house.svg);--download:url(/graphics/download.svg);--block_separator:url(/graphics/square-full.svg)}@media(prefers-color-scheme:dark){:root{--background-color:#161510;--text-color:#f8f8f8;--hover-color:#f0f0f8;--muted-color:#a8a49a;--1_star:url(/graphics/1_star_light.svg);--2_star:url(/graphics/2_star_light.svg);--3_star:url(/graphics/3_star_light.svg);--4_star:url(/graphics/4_star_light.svg);--5_star:url(/graphics/5_star_light.svg);--envelope:url(/graphics/envelope_light.svg);--phone:url(/graphics/phone_light.svg);--home:url(/graphics/house_light.svg);--download:url(/graphics/download_light.svg)}}@font-face{font-family:pmncaecilia;src:url(/fonts/caecilialt_roman_webfont.ttf)format('truetype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:pmncaecilia;src:url(/fonts/caecilialt_heavy_webfont.ttf)format('truetype');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:pmncaecilia;src:url(/fonts/caecilialt_italic_webfont.ttf)format('truetype');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:pmncaecilia;src:url(/fonts/caecilialt_heavyitalic_webfont.ttf)format('truetype');font-weight:700;font-style:italic;font-display:swap}*,*::before,*::after{box-sizing:border-box}html{scroll-padding-top:4.5rem;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-size:clamp(1.0625rem,.85rem + .8vw,1.5rem);line-height:1.4;font-family:pmncaecilia,iowan old style,Georgia,serif;background-color:var(--background-color);color:var(--text-color);overflow-wrap:break-word;hyphens:auto}img,svg{max-width:100%;height:auto}a{text-decoration:none;color:inherit}a:hover{text-decoration:underline;color:var(--hover-color)}a:focus-visible{outline:2px solid var(--hover-color);outline-offset:2px;border-radius:2px}h1{margin-top:1em}h3{margin-bottom:-.1em}[id]{scroll-margin-top:4.5rem}.metadata{display:none}body{display:flex;flex-direction:column}nav{order:-1;position:sticky;top:0;z-index:10;background-color:var(--background-color);width:100%;max-width:var(--measure);margin-inline:auto;padding:.4em var(--gutter)0}nav div{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em 1.2em;padding-bottom:.4em;margin-bottom:.2em;border-bottom:var(--ruler)}nav a{white-space:nowrap}.content{flex:1 0 auto;width:100%;max-width:var(--measure);margin-inline:auto;padding-inline:var(--gutter);padding-bottom:2.5em}.footer{flex:none;width:100%;max-width:var(--measure);margin-inline:auto;padding:0 var(--gutter)1.2em;background-color:var(--background-color);display:grid;grid-template-columns:1fr;align-items:end;row-gap:.8em}.footer .contact_data{order:1}.footer .databox{order:2;margin:0}.footer::before{content:'';grid-column:1/-1;border-top:var(--ruler)}.claim,.author{margin-top:1.2em;text-align:center}.claim small{display:block;font-size:.55em;margin-top:.6em;color:var(--muted-color)}.pitch{list-style-type:none;margin:2em 0;padding-left:.8em;border-left:var(--ruler)}.pitch li::before{content:'';display:inline-block;height:1em;width:4.5em;background-image:var(--5_star);background-repeat:no-repeat;background-size:auto 500%;background-position:0 .3em}ul.cloud{list-style-type:none;text-align:center;font-weight:700;margin-top:1em;padding:0 0 2em}ul.cloud li{display:inline-block}ul.cloud li:not(:last-child)::after{content:'';display:inline-block;height:1em;width:.6em;margin-left:.4em;background-image:var(--block_separator);background-repeat:no-repeat;background-size:30% 30%;background-position:.1em .5em}@media(prefers-color-scheme:dark){ul.cloud li:not(:last-child)::after{filter:invert(.85)}}dl{margin-top:1em;line-height:normal}dt .datespan{display:block;font-size:.8em;color:var(--muted-color);letter-spacing:.02em}dd{margin-left:0}.p-experience,.p-education{margin-bottom:.8em}dd ul{list-style-type:none;padding-left:0;margin-top:0;margin-bottom:0}dd li::before{content:'';display:inline-block;height:1em;width:1.1em;background-image:var(--block_separator);background-repeat:no-repeat;background-size:22% 22%;background-position:.1em .55em}@media(prefers-color-scheme:dark){dd li::before{filter:invert(.85)}}.employer{margin:-1.4em 0 1em;color:var(--muted-color);text-align:right}.technologies{border-top:var(--ruler);border-bottom:var(--ruler);margin:.8em 0;padding:.3em 0}.technologies ul{margin:0;padding-left:0;list-style-type:none}.technologies li{page-break-after:avoid;white-space:nowrap;text-align:right;padding-right:5em;background-image:var(--5_star);background-repeat:no-repeat;background-size:auto 500%;background-position:100% .3em}.skill_matrix{column-count:1}.skill_matrix ul{list-style-type:none;padding-left:0;font-weight:700;padding-top:.5em}.skill_matrix ul:first-child{padding-top:0;margin-top:0}.skill_matrix>ul>li>ul{padding-bottom:.5em}.skill_matrix ul ul{font-weight:400}.skill_matrix ul ul ul{column-count:1;padding-left:1.2em;padding-top:0}.skill_matrix ul ul ul *{break-before:avoid;break-after:avoid}.skill_matrix li span{background-repeat:no-repeat;background-size:auto 500%;float:right;width:4.5em;height:1.2em}.expert{background-image:var(--5_star)}.good{background-image:var(--4_star)}.ok{background-image:var(--3_star)}.bad{background-image:var(--2_star)}.ugly{background-image:var(--1_star)}.skill_matrix .also{display:block;font-weight:400;font-size:.78em;line-height:1.4;color:var(--muted-color);padding:.2em 0 .6em 1.2em;break-inside:avoid}.skill_matrix .also ul,.skill_matrix .also li{display:inline;padding:0;margin:0;font-weight:inherit;font-size:inherit}.skill_matrix .also li:not(:last-child)::after{content:', '}.skill_matrix .also li span{display:none}.industries{margin-top:1em;column-count:1}.industries ul{list-style-type:none;padding-left:0;padding-top:0;margin-top:0}.h-cite .e-content:has(>p)>p:first-child::before,.h-cite .e-content:not(:has(>p))::before{content:"\201C"}.h-cite .e-content:has(>p)>p:last-child::after,.h-cite .e-content:not(:has(>p))::after{content:"\201D"}.h-cite .p-x-verification{display:none}.h-cite .employer{margin-top:-.5em}.h-cite .original{font-size:.8em;font-style:italic;color:var(--muted-color)}.databox,.contact_data{width:auto;padding-bottom:0;margin:0;text-align:left}.footer .electronic,.footer .address{text-align:left}.availability{color:var(--muted-color);font-size:.8em}.contact_mail,.contact_phone{display:block}.contact_phone{margin-bottom:1em}.contact_mail::after,.contact_phone::after{display:inline-block;width:.8em;padding-left:.3em}.contact_mail::after{content:var(--envelope)}.contact_phone::after{content:var(--phone)}.home_button::before,.download_button::after{display:inline-block;height:.8em;width:.8em}.home_button::before{content:var(--home)}.download_button::after{content:var(--download)}@media(prefers-color-scheme:dark){.contact_mail::after,.contact_phone::after,.home_button::before,.download_button::after{filter:invert(.85)}}@media print{@page{size:A4;margin:18mm 16mm}:root{--background-color:#ffffff;--text-color:#000000;--muted-color:#444444}body{font-size:11pt;line-height:1.35;background:#fff;color:#000}nav{display:none}.content,.footer{max-width:none;padding-inline:0}.footer{position:static;flex-direction:row-reverse;justify-content:space-between}h1,h2,h3,h4{break-after:avoid}.p-experience,.p-education,.p-x-project,.h-cite{break-inside:avoid}a[href^=http]::after{content:" (" attr(href)")";font-size:.75em;color:var(--muted-color);word-break:break-all}.h-cite a::after,nav a::after,.contact_mail::after,.contact_phone::after{content:none}}