@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}:root{font-size:20px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#333;background-color:#f8f9fa;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-moz-tab-size:4;tab-size:4}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:#2c5282}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}b,strong{font-weight:600}small{font-size:.875rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875rem}code{font-size:.875rem;word-wrap:break-word}mark{padding:.1875em;background-color:#fff3cd}sub,sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid #2c5282;opacity:.25}a{color:#0091ea;text-decoration:none;text-decoration-skip-ink:auto}a:hover{color:#07c;text-decoration:underline}a:not(:focus-visible){outline:0}.cv-container{max-width:1200px;margin:0 auto;background-color:#fff;box-shadow:0 0 20px #0000001a}.cv-header{position:relative;overflow:hidden;text-align:center;padding:40px 40px 30px;border-bottom:3px solid #f8f9fa}.cv-header .logo-holder{margin-bottom:30px}.cv-header .logo-holder img{max-width:200px;height:auto}#header-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}#header-canvas canvas{display:block}.cv-header-content{position:relative;z-index:1}.cv-name{font-size:2.5rem;color:#2c5282;margin:0 0 .3rem;text-transform:uppercase;letter-spacing:.125em}.cv-title{font-size:1rem;color:#666;margin:0 0 1.25rem;text-transform:uppercase;letter-spacing:.0625em}.cv-contact{font-size:.8125rem;margin-bottom:1.5rem;line-height:1.8}.cv-contact .separator{color:#4a90a4;margin:0 .5rem;font-size:.5rem;vertical-align:middle}.cv-summary{font-size:.875rem;line-height:1.7;text-align:left;margin:0;padding:1.25rem 0 0;border-top:1px solid #eee}.cv-main{padding:0}.cv-section{padding:30px 40px}.cv-section:nth-child(2n){background-color:#f8f9fa}.cv-section-title{font-size:.875rem;font-weight:700;color:#2c5282;text-transform:uppercase;letter-spacing:.0625em;margin:0 0 1.25rem;padding-bottom:.625rem;border-bottom:2px solid #2c5282}.cv-experience .cv-job{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #eee}.cv-experience .cv-job:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.cv-job-header{display:flex;align-items:flex-start;gap:15px;margin-bottom:10px}.cv-job-logo{width:50px;height:50px;object-fit:contain;border-radius:4px;flex-shrink:0}.cv-job-info{flex:1}.cv-job-title{font-size:1rem;font-weight:600;color:#2c5282;margin:0 0 .2rem}.cv-job-company{font-size:.875rem;font-weight:500;color:#4a90a4;margin:0 0 .2rem}.cv-job-period{font-size:.8125rem;font-style:italic;color:#666;margin:0 0 .625rem}.cv-job-description{font-size:.875rem;margin:0 0 .625rem}.cv-job-list{margin:.625rem 0;padding-left:1.25rem;list-style:none}.cv-job-list li{font-size:.875rem;margin-bottom:.375rem;position:relative;padding-left:1rem}.cv-job-list li:before{content:"▸";position:absolute;left:0;color:#4a90a4;font-size:.75rem}.cv-job-tech,.cv-job-daily{font-size:.8125rem;color:#666;margin:.625rem 0 0}.cv-job-tech strong,.cv-job-daily strong{color:#333}.cv-skills-list{margin:0;padding:0}.cv-skill-row{display:flex;flex-wrap:wrap;margin-bottom:.5rem;font-size:.875rem}.cv-skill-row dt{min-width:7.5rem;margin-right:.625rem}.cv-skill-row dd{margin:0;flex:1}.cv-education-item{margin-bottom:.75rem}.cv-education-item:last-child{margin-bottom:0}.cv-education-item h4{font-size:.875rem;font-weight:700;color:#333;margin:0 0 .125rem}.cv-education-item p{font-size:.875rem;color:#666;margin:0}.cv-languages p{font-size:.875rem;margin:0 0 .3rem}.cv-community-list{margin:0;padding:0}.cv-community-row{display:flex;flex-wrap:wrap;margin-bottom:.5rem;font-size:.875rem}.cv-community-row dt{min-width:8.75rem;margin-right:.625rem}.cv-community-row dd{margin:0;flex:1}.cv-technology{text-align:center}.cv-logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;margin-top:20px}.cv-logos img{max-height:50px;max-width:120px;object-fit:contain;filter:grayscale(20%);opacity:.85;transition:all .2s ease}.cv-logos img:hover{filter:grayscale(0%);opacity:1}.cv-logos #logo-redux,.cv-logos #logo-react{max-height:50px}.cv-logos #logo-polymer{max-height:45px}.cv-logos #logo-angularjs{max-height:55px}.cv-logos #logo-ubuntu{max-height:45px}.cv-logos #logo-python{max-height:55px}.cv-footer{background-color:#2c5282;color:#fff}.cv-footer .cv-section{background-color:transparent}.cv-footer .cv-section-title{color:#fff;border-bottom-color:#ffffff4d}.cv-footer p{font-size:.875rem;margin:0 0 .3rem;color:#ffffffe6}.cv-footer p strong{color:#fff}.cv-footer a{color:#7dd3fc}.cv-footer a:hover{color:#fff}@media(max-width:768px){.cv-container{margin:0;box-shadow:none}.cv-header{padding:30px 20px 20px}.cv-name{font-size:1.75rem}.cv-contact .separator{display:none}.cv-contact a,.cv-contact span{display:block;margin:.3rem 0}.cv-section{padding:25px 20px}.cv-skill-row,.cv-community-row{flex-direction:column}.cv-skill-row dt,.cv-community-row dt{margin-bottom:.2rem}.cv-logos{gap:15px}.cv-logos img{max-height:40px;max-width:100px}.cv-job-logo{width:40px;height:40px}}@media(max-width:480px){.cv-name{font-size:1.5rem;letter-spacing:.0625em}.cv-title{font-size:.875rem}.cv-job-title{font-size:.9375rem}.cv-section-title{font-size:.8125rem}}@media print{body{background-color:#fff}.cv-container{box-shadow:none;max-width:100%}.cv-header .logo-holder,#header-canvas,.cv-technology{display:none}.cv-section,.cv-job{page-break-inside:avoid}}
