:root{--primary:#000;--secondary:#777;--bg:#fff;--bg-alt:#eee;--link:#1b4cec;--border:#ddd;--code-bg:#fafafa;--invert-bg:#000;--invert-bg-hover:#333;--invert-fg:#fff;--danger:#a00}@media screen and (prefers-color-scheme:dark){:root{--primary:#fff;--secondary:#aaa;--bg:#222;--bg-alt:#2a2a2a;--link:#5682ff;--border:#444;--code-bg:#2f2f2f;--invert-bg:#fff;--invert-bg-hover:#ccc;--invert-fg:#000;--danger:#e55}}@media print{@page{margin:0}}.blog.post code,input,textarea,button,body{font-family:Fira Code,monospace}@media print{.blog.post code,input,textarea,button,body{font-family:Consolas,Fira Code,monospace}}*{box-sizing:border-box}@media screen{[data-scroll]{transition-property:transform,opacity;transition-duration:.4s;transition-delay:.2s}[data-scroll=in]{opacity:1;transform:translateY(0)}[data-scroll=out]{opacity:0;transform:translateY(30px)}.noscreen{display:none!important}}@media print{.noprint{display:none!important}}body{color:var(--primary);flex-direction:column;justify-content:space-between;min-height:100vh;margin:0;padding:0;font-size:14pt;display:flex}@media screen and (width<=1200px){body{font-size:13pt}}@media screen and (width<=768px){body{font-size:12pt}}body{background:var(--bg)}table{color:var(--primary)}svg{fill:var(--primary)}a,a:visited{color:var(--link)}a:not(:hover){text-decoration:none}h1,h2,h3,h4,h5,h6,.title{font-weight:400}.container{max-width:1200px;margin:auto;padding:60px 20px}.container.wide{max-width:1440px}.container.narrow{max-width:1024px}.row{column-gap:3em;display:flex}.column{flex:1}.column.wide{flex:2.8}@media screen and (width<=1024px){.row{flex-direction:column}}.name-size-adjust{font-size:1.16667em}header .navbar{justify-content:space-between;align-items:center;gap:2em;padding:10px 20px;display:flex}header .navbar a,header .navbar a:visited{color:inherit}section.grow{flex:1}section.full{min-height:100vh}footer{text-align:center;color:var(--secondary);padding:60px 20px 30px;font-size:.6em}@media screen{header:nth-child(odd),section:nth-child(odd),footer:nth-child(odd){background:var(--bg-alt)}}@keyframes fadeInTranslate{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.introduction{flex-direction:row;display:flex}.introduction>div{flex-basis:50%}.introduction>div.main-info{text-align:center;flex-direction:column;justify-content:space-evenly;padding:20px;font-size:1.4em;display:flex}.introduction>div.picture{filter:brightness(1.05)contrast(.95);background:#888 url(/assets/picture.jpg) 50% 30%/cover padding-box padding-box;animation:1s fadeIn}@media screen and (prefers-color-scheme:dark){.introduction>div.picture{filter:brightness(.95)}}@media screen and (width<=768px){.introduction{display:block}.introduction>div{height:50vh}}.introduction h1,.introduction h4,.introduction .main-info>div:nth-child(2){animation:.5s both fadeInTranslate}.introduction h1{margin:0;font-size:2em;animation-delay:.2s}.introduction h4{animation-delay:.4s}.introduction .main-info>div:nth-child(2){animation-delay:.6s}.introduction a{margin:4px}.introduction a:hover svg{transform:scale(1.08)}.introduction svg{width:1.2em;height:1.2em;margin:0;transition:transform .3s}@page a4-page{size:A4 portrait;margin:0}@page letter-page{size:letter portrait;margin:0}.resume .section.timeline>ul>li .description,.resume .section.timeline>ul>li .time,.resume .identity ul.professional-summary{color:var(--secondary);letter-spacing:-.02em;font-size:.86em}@media print{.resume{-webkit-print-color-adjust:exact;print-color-adjust:exact;flex-direction:column;justify-content:space-evenly;gap:.8em;padding:7mm;font-size:9pt;display:flex}}.resume[data-format=letter]{page:letter-page}@media print{.resume[data-format=letter]{width:8.5in;height:11in}}.resume[data-format=a4],.resume:not([data-format=letter]){page:a4-page}@media print{.resume[data-format=a4],.resume:not([data-format=letter]){width:210mm;height:297mm}}.resume .row{column-gap:3.5em}.resume .column.wide{flex:2.6}@media screen{.resume.standalone-resume .identity-row.noscreen{margin-bottom:2em;display:flex!important}}.resume .main-content{row-gap:3em}.resume .identity{flex-direction:row;flex:1.4;align-items:center;gap:1.25em;display:flex}.resume .identity .picture{object-fit:cover;border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:6.8em;height:6.8em}.resume .identity .bio{flex:1}.resume .identity .topTitle{text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.95em}.resume .identity h1.name{margin:.05em 0 .25em;font-size:2.1em;font-weight:700;line-height:1.05}.resume .identity ul.professional-summary{margin:0;padding:0;list-style-type:none}.resume .identity ul.professional-summary li:not(:last-child){margin-bottom:.25em}.resume .contact{justify-content:center}.resume .contact>h2{background:var(--invert-bg);width:6.46em;color:var(--invert-fg);margin:0 0 .5em 1.6em;padding:.34em;font-size:1em;font-weight:700}.resume .contact>div{flex-direction:column;gap:.4em;display:flex}.resume .contact>div>div{white-space:nowrap;flex-direction:row;align-items:center;display:flex}.resume .contact .logo{flex-shrink:0;width:1.2em;height:1.2em;margin-right:.75em}.resume .contact a,.resume .contact span{color:var(--primary)}.resume .section:not(:last-child){margin-bottom:3em}.resume .section>h2{text-transform:lowercase;align-items:center;margin-top:0;margin-bottom:.6em;font-size:1.7em;display:flex}.resume .section>h2 .logo{width:1em;height:1em;margin-right:.84em;display:inline-block}.resume .section>div{padding:0 .63em}.resume .section.timeline a{white-space:nowrap}.resume .section.timeline>ul{margin-top:0;margin-left:1.5em;padding:0}.resume .section.timeline>ul>li{margin-bottom:.8em}.resume .section.timeline>ul>li>.title{text-transform:lowercase;font-weight:700}.resume .section.timeline>ul>li .context{flex-flow:wrap;align-items:baseline;column-gap:.6em;display:flex}.resume .section.timeline>ul>li .subtitle{font-size:.94em}.resume .section.timeline>ul>li .time{letter-spacing:-.06em;text-wrap:nowrap;line-height:1em}.resume .section.timeline>ul>li .time,.resume .section.timeline>ul>li .subtitle{margin-bottom:.1em}.resume .section.timeline>ul>li .description{line-height:1.2em}.resume .section.timeline>ul>li .description>ul{margin-left:1.74em;padding:0}.resume .section.timeline>ul>li .description>ul>li{list-style-type:disc}.resume .skills .content{flex-direction:column;gap:.8em;display:flex}.resume .skills .content .level h4{text-transform:lowercase;margin:0 0 .3em;font-size:1em;font-weight:700}.resume .skills .content .level ul.list{letter-spacing:-.02em;text-transform:lowercase;margin:0;padding:0;font-size:.86em;line-height:1.2em;list-style:none}.resume .skills .content .level ul.list>li{white-space:nowrap;display:inline-block}.resume .skills .content .level ul.list>li:not(:last-child){margin-right:1ch}.resume .skills .content .level ul.list>li:not(:last-child):after{content:","}.resume .languages table{width:100%;font-size:.9em}.resume .languages table td:nth-child(2){text-align:right;color:var(--secondary);padding-right:1em;font-size:.9em}.resume .languages table td:nth-child(2):before{content:"("}.resume .languages table td:nth-child(2):after{content:")"}.resume .languages table td:last-child{vertical-align:top;white-space:nowrap;font-variant-ligatures:none;margin-left:1em;font-weight:700}.resume .hobbies>div{flex-wrap:wrap;justify-content:center;padding:0;display:flex}.resume .hobbies>div svg{max-width:3.5em;max-height:3.5em}.resume .hobbies>div>div{text-align:center;width:50%;margin-bottom:1em;padding:0 .7em}.resume .hobbies>div .title{text-transform:lowercase}.resume .rodo-clause{color:var(--secondary);text-align:center;margin:0;padding:0;font-size:.6em;line-height:1.2}@media print{.resume .section.skills,.resume .section.languages{margin-bottom:4em}}.field{margin-top:2em;font-size:.94em;position:relative}input,textarea,button{font-size:1em;transition-property:background-color,border-color,color;transition-duration:.3s}input,textarea{border:none;border-bottom:1.5px solid var(--secondary);width:100%;color:var(--primary);background-color:var(--bg);padding:.5em}input:focus,textarea:focus{border-bottom-color:var(--primary);outline:0}input:required+label:after,textarea:required+label:after{content:"*";color:var(--danger)}input:placeholder-shown+label,textarea:placeholder-shown+label{cursor:text}input:not(:placeholder-shown)+label,textarea:not(:placeholder-shown)+label{font-size:.8em;top:-2em}label{color:var(--secondary);padding:.5em;transition-property:top,font-size;transition-duration:.3s;position:absolute;top:0;left:0}textarea{resize:vertical}button{color:#fff;cursor:pointer;background:#222;border:0;padding:.6em 3em}button:hover,button:focus{background:#333}button:disabled{cursor:wait;color:#888;background:#444}button:disabled:after{content:"ing..."}.completableWrapper{position:relative}.completableWrapper .completionEl,.completableWrapper .initialEl{transition-property:opacity,transform;transition-duration:.3s}.completableWrapper .completionEl{visibility:hidden;opacity:0;position:absolute;transform:translateY(10px)}.completableWrapper.complete .initialEl{visibility:hidden;opacity:0;transform:translateY(10px)}.completableWrapper.complete .completionEl{visibility:visible;opacity:1;transform:translateY(0)}.blog time{color:var(--secondary)}.blog.postlist li{margin-bottom:.6em}.blog.postlist a{margin-right:.5em}.blog.postlist time{white-space:nowrap;font-size:.75em}.blog.post{line-height:1.6em}.blog.post>.content{margin-top:2em;font-size:.94em}.blog.post>.content p,.blog.post>.content code,.blog.post>.content li{font-size:.9em}.blog.post>.content>p{text-align:justify}.blog.post h1,.blog.post h2,.blog.post h3,.blog.post h4,.blog.post h5,.blog.post h6{margin-top:2em;font-weight:700}.blog.post .title{margin:0}.blog.post time{font-size:.8em}.blog.post time.modification{font-size:.7em}.blog.post blockquote{color:var(--secondary);border-left:.2em solid #8884;margin-left:0;padding-left:1em}.blog.post figure{margin:2em auto}.blog.post figure img{max-width:100%;max-height:30em;margin:auto;display:block}.blog.post figure figcaption{color:var(--secondary);text-align:center;font-style:italic}.blog.post figure img+figcaption{margin-top:.6em}.blog.post :not(pre)>code{background-color:var(--code-bg);border:1px solid #8884;padding:0 2px;display:inline-block}.blog.post pre{border:1px solid #8884;border-radius:0;padding:1em;overflow-y:auto}.blog.post .emphasize{background:#4895;outline:4px solid #4895}.blog.post details{border:1px solid #8884;margin-bottom:.5em;padding:.5em .5em 0}.blog.post details[open]{padding:.5em}.blog.post details summary{margin:-.5em -.5em 0;padding:.5em}
