.header-media-link:where(.astro-NTEURWXK){color:var(--text)}.header-media-link:where(.astro-NTEURWXK),.header-media-link:where(.astro-NTEURWXK):hover{transition:color .6s cubic-bezier(.22,1,.36,1)}.header-media-link:where(.astro-NTEURWXK):hover{color:var(--secondary-text)}.header-media-link:where(.astro-NTEURWXK)>a:where(.astro-NTEURWXK){align-content:center;display:flex;flex-direction:row-reverse;gap:1em;justify-content:flex-end}@media print{.header-media-link:where(.astro-NTEURWXK)>a:where(.astro-NTEURWXK){flex-direction:row}}@media screen and (min-width:640px){.header-media-link:where(.astro-NTEURWXK)>a:where(.astro-NTEURWXK){flex-direction:row}}.email-link:where(.astro-NTEURWXK){margin-right:3px}.skill-item:where(.astro-ORSQTMXO){background-color:var(--resume-bg);border:1px solid var(--secondary-text);border-radius:10px;border-radius:var(--space);color:var(--text);cursor:pointer;font-size:.7rem;font-weight:700;margin-right:calc(var(--space)/4);opacity:.8;overflow:hidden;padding:2px 6px;text-align:center;transition:.6s cubic-bezier(.22,1,.36,1);white-space:nowrap}@media print{.skill-item:where(.astro-ORSQTMXO){border-width:2px;font-size:16px;line-height:2.2}}@media screen and (min-width:640px){.skill-item:where(.astro-ORSQTMXO){font-size:14px;line-height:2.2}}.cv-skills-module{border-top:1px solid var(--secondary-text);padding:1em 0}@media screen and (min-width:640px){.cv-skills-module{border-left:1px solid var(--secondary-text);padding:1em 0 1em 1em;width:30%}}.skills-block-title{font-size:18px}@media screen and (min-width:1024px){.skills-block-title{font-size:20px}}.cv-english-link{color:var(--text);display:inline-block;margin-bottom:1.5em}.cv-english-link:hover{color:salmon}.cv-skills-block{line-height:1.5;margin-bottom:1em}@media screen and (min-width:1024px){.cv-skills-block{line-height:1.8}}.cv-skills-block:last-of-type{margin-bottom:2em}body:has(.css-skill:hover) .css-skill{background-color:var(--secondary-text)}body:has(.css-skill:hover) .resume-card:after{animation:css-anim .6s ease forwards}.resume-card:after{animation:css-anim-backwards .6s ease forwards;background-image:url(/images/css_icon_1.png);background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:100px;position:absolute;right:0;top:0;width:100px}.typescript{transition:var(--transition)}.resume-card:has(.common-tech:hover) .common-tech{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.typescript:hover) .typescript{background-color:var(--blue-ts);color:var(--white)}.resume-card:has(.react:hover) .react{background-color:var(--blue-react);color:var(--white)}.resume-card:has(.javascript:hover) .javascript{background-color:var(--javascript);color:var(--text)}.resume-card:has(.react-native:hover) .react-native{background-color:var(--blue-react);color:var(--white)}.astro,.watermelondb{background-color:var(--resume-bg);position:relative}.watermelondb{transition:2.6s cubic-bezier(.22,1,.36,1)}.resume-card:has(.astro:hover) .astro{opacity:.7}.resume-card:has(.astro:hover) .astro:after{animation:astro-anim .6s forwards;background-image:url(/images/astro.png);background-size:cover;bottom:-20px;content:"";height:35px;left:50%;position:absolute;transform:translate(-50%) scaleY(0);width:100%;z-index:-1}.html-skill{position:relative}.resume-card:has(.html-skill:hover) .html-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.html-skill:hover) .html-skill:after{animation:html-fade 2s ease forwards;background-size:cover;bottom:1.5em;content:url(/images/html_logo.png);left:50%;position:absolute;transform:translate(-50%);z-index:2}.resume-card:has(.watermelondb:hover) .watermelondb{background-image:url(/images/watermelon.png);background-position:50%;background-size:auto;border:1px solid #7cfc00;color:var(--white)}.resume-card:has(.redux:hover) .redux{background-color:var(--redux-bg);color:var(--white)}.resume-card:has(.tailwind-skill:hover) .tailwind-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.styled-components-skill:hover) .styled-components-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.node-js-skill:hover) .node-js-skill{background-color:var(--node-js-bg);color:var(--white)}body:has(.postgresql-skill:hover) .postgresql-skill{background-color:var(--secondary-text);color:var(--white)}body:has(.postgresql-skill:hover) .resume-wrapper{box-shadow:1px 8px 8px 5px #0000001a,0 2px 4px -2px #0000001a;overflow:hidden}body:has(.postgresql-skill:hover) .resume-card:before{animation-delay:0;animation-duration:15s;animation-timing-function:linear;animation:elephant-anim 15s linear forwards;background-image:url(/images/elephant_animation.gif);background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:500px;left:-250px;position:absolute;top:500px;width:500px}.resume-card:has(.mongodb-skill:hover) .mongodb-skill{background-color:var(--mongodb-bg);color:var(--white)}.resume-card:has(.firebase-skill:hover) .firebase-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.material-ui-skill:hover) .material-ui-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.aws-skill:hover) .aws-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.vite-skill:hover) .vite-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.circle-ci-skill:hover) .circle-ci-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.cloudflare-skill:hover) .cloudflare-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.ngrok-skill:hover) .ngrok-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.nginx-skill:hover) .nginx-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.jest-skill:hover) .jest-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.mocha-chai-skill:hover) .mocha-chai-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.strapi-skill:hover) .strapi-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.gatsby-skill:hover) .gatsby-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.scss-skill:hover) .scss-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.mysql-skill:hover) .mysql-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.socket-io-skill:hover) .socket-io-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.auth0-skill:hover) .auth0-skill{background-color:var(--secondary-text);color:var(--white)}.resume-card:has(.docker-skill:hover) .docker-skill{background-color:#003f8c;color:var(--white)}@keyframes astro-anim{0%{transform:translate(-50%) scaleY(0);transform-origin:top}to{transform:translate(-50%) scaleY(1)}}@keyframes html-fade{0%{opacity:0;transform:translateY(-150px) translate(-50%)}30%{opacity:1;transform:translateY(1em) translate(-50%)}60%{transform:translateY(-10px) translate(-50%)}}@keyframes css-anim{0%{transform:translateZ(-1px) translateY(0) translate(0)}60%{transform:translateZ(-1px) translateY(-88px) translate(100px) rotate(40deg)}61%{transform:translateZ(2px) translateY(-88px) translate(100px) rotate(40deg)}to{transform:translateZ(2px) translateY(-10px) translate(30px) rotate(25deg)}}@keyframes elephant-anim{0%{transform:scale(.3) translate(-10vw)}10%{transform:translateZ(2px) translateY(2vh) translate(10vw) scale(.4)}20%{transform:translateY(0) translate(30vw) scale(.5)}30%{transform:translateY(4vh) translate(50vw) scale(.6)}40%{transform:translateY(2vh) translate(70vw) scale(.6)}50%{transform:translateY(0) translate(90vw) scale(.6)}60%{transform:translateY(0) translate(110vw) scale(.6)}to{transform:translateZ(2px) translateY(0) translate(110vw) scale(.6)}}@keyframes css-anim-backwards{0%{transform:translateZ(2px) translateY(-10px) translate(30px) rotate(25deg)}60%{transform:translateZ(2px) translateY(-88px) translate(100px) rotate(40deg)}61%{transform:translateZ(-1px) translateY(-88px) translate(100px) rotate(40deg)}to{transform:translateZ(-1px) translateY(0) translate(0)}}.job-date-wrapper,.job-position-wrapper{display:flex;flex-direction:column;line-height:1.4}@media print{.job-date-wrapper,.job-position-wrapper{flex-direction:row}}@media screen and (min-width:640px){.job-date-wrapper,.job-position-wrapper{flex-direction:row;line-height:1}}.job-position-wrapper{flex-direction:column}@media screen and (min-width:768px){.job-position-wrapper{flex-direction:row}}.separate-symbol{color:var(--secondary-text);display:none}@media screen and (min-width:640px){.separate-symbol{display:inline}}.job-date{color:var(--secondary-text)}@media print{.job-date{line-height:2.2}}@media screen and (min-width:640px){.job-date{line-height:2.2}}.company-link{color:var(--text)}@media print{.company-link{font-size:20px}}@media screen and (min-width:640px){.company-link{font-size:20px}}.company-link:hover{color:salmon}.job-wrapper{line-height:1}.cv-project-block:where(.astro-L57GKA2Z){margin-bottom:2em}.project-description:where(.astro-L57GKA2Z){color:var(--secondary-text);font-size:16px}.description-wrapper:where(.astro-L57GKA2Z){margin:0;padding:0 0 .5em}.about-experience-module:where(.astro-L4ZKCP4Z){padding:1em 1em 1em 0}.about-text:where(.astro-L4ZKCP4Z){color:var(--secondary-text)}.cv-experience-module:where(.astro-TSVYWF7I){border-top:1px solid var(--secondary-text);padding:1em 1em 1em 0}@media screen and (min-width:640px){.cv-experience-module:where(.astro-TSVYWF7I){width:70%}}.button-save{align-self:flex-end;background-color:orange;border-radius:5px;color:var(--text);font-family:var(--wotfard);margin-bottom:20px;padding:1em;transition:var(--transition)}.button-save:hover{box-shadow:0 8px 18px #00000080;opacity:.9;transform:translateY(-3px)}.button-save:active{background-color:salmon;box-shadow:none;transform:translateY(3px)}@media print{@page{size:280mm 357mm;margin:14mm}#print-fade-wrapper{display:none}@font-face{#print{font-display:block;font-family:Wotfard;src:url(/fonts/wotfard-regular.woff2) format("woff2"),url(/fonts/wotfard-regular.ttf) format("truetype"),url(/fonts/worfard-regular.eot) format("embedded-opentype")}}#print *{font-family:Wotfard,Arial,sans-serif;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}#print :root{--dark-grey-text:#595960;--light-grey-text:#c3c3c3;--dark-grey-text-20:#8b8b8b;--background-grey:#f4f4f4;--background-light-grey:#fcfbfc;--light-grey-80:#f8f8f9;--dark-grey-40:#e7e7e7;--light-grey:#f7f7f9;--white:#fff;--white-two:#f0f0f0;--black:#111;--blue-ts:#2965f1;--blue-react:#61dbfb;--black-two:#353535;--black-three:#121212;--dark:#181820;--slate-grey:#7c7c7c;--abs-black:#000;--hover-card-bg:#e8e8e8;--contacts-background:#f7f5e8;--widget-color:#fafafa;--avatar-size:50px;--wotfard:"Wotfard";--main-bg:#f2f2f2;--inverted-main-bg:#000;--resume-bg:#fff;--text:#000;--accent:#fff;--secondary-text:#767676;--header-shadow:#00000033;--space:1rem;--transition:.6s cubic-bezier(.22,1,.36,1)}#print *,#print :after,#print :before{box-sizing:border-box}#print html:focus-within{scroll-behavior:smooth}#print body,#print html{background-color:var(--white);height:100%}#print body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Wotfard,sans-serif;line-height:1.5;margin:0 auto;position:relative}#print blockquote,#print body,#print dd,#print dl,#print figure,#print h1,#print h2,#print h3,#print h4,#print p{margin:0}#print h1,#print h2,#print h3,#print h4,#print p,#print span{color:#000}#print a{-webkit-tap-highlight-color:transparent;color:inherit}#print button,#print input,#print select,#print textarea{font:inherit}#print details>summary{list-style:none;outline:none}#print details>summary::-webkit-details-marker,#print details>summary::marker{display:none}#print dialog:not([open]){display:none}#print a{text-decoration:none!important}#print li{list-style:none!important}#print .job-position-wrapper,#print .resume-header{display:flex;flex-direction:row!important}#print .header-media-link>a{display:flex!important;gap:16px!important;justify-content:flex-end!important}#print .job-date-wrapper{display:flex;flex-direction:row}#print .job-date{color:#767676}#print .header-media-links{margin-left:auto!important}#print .company-link{font-size:20px}#print .header-media-links{display:flex;flex-direction:column;font-size:16px;gap:3px;margin-bottom:0;margin-left:auto;margin-top:0}#print .resume-position{text-transform:uppercase}#print .header-media-link{color:#000;transition:color .6s cubic-bezier(.22,1,.36,1)}#print .header-media-link:hover{color:#767676;transition:color .6s cubic-bezier(.22,1,.36,1)}#print .header-media-link>a{align-content:center;display:flex;flex-direction:row-reverse;flex-direction:row!important;gap:1em;justify-content:flex-end}#print .email-link{margin-right:3px}#print .resume-header{display:flex;flex-direction:row!important;width:100%}#print .resume-card{background-color:#fff;background-position:100%;border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;display:flex;flex-direction:column;list-style:none;padding:2rem;position:relative;transform-style:preserve-3d;transition:box-shadow .6s cubic-bezier(.22,1,.36,1)}#print .cv-main-module{display:flex;flex-direction:row!important}#print .resume-card>a{background-color:#fff;border-radius:.35rem;color:#111;line-height:1.4;opacity:.8;padding:1rem 1.3rem;text-decoration:none;width:100%}#print h2{font-size:1.25rem;transition:color .6s cubic-bezier(.22,1,.36,1)}#print .header-name{font-size:2.25rem}#print .cv-module-title{font-size:1.5rem;font-weight:500;margin-bottom:.75rem;margin-top:0!important;text-transform:uppercase}#print .skill-item{background-color:#fff;border:none!important;color:#000;font-size:14px;font-weight:700;line-height:normal!important;margin-right:calc(var(--space)/4);margin:0!important;opacity:.8;overflow:hidden;padding:0!important;text-align:center;white-space:nowrap}#print .skill-item:after{content:", "}#print .skill-item:first-of-type:before,#print .skill-item:last-of-type:after{content:" "}#print .cv-skills-block{line-height:1.8;margin-bottom:1em}#print .cv-skills-block:last-of-type{margin-bottom:2em}#print .cv-secondary-title{font-size:20px;font-weight:400}#print .secondary-head-title{font-family:var(--wotfard);font-size:42px}#print .cv-skills-module{border-left:1px solid #767676;border-top:1px solid #767676;padding:1em 0 1em 1em}#print .skills-block-title{font-size:20px;font-weight:400}#print .cv-english-link{color:#000;display:inline-block;margin-bottom:1.5em}#print .cv-project-block{margin-bottom:1em}#print .project-description{color:#767676!important;font-size:15px}#print .description-wrapper{margin:0;padding:0}#print .technologies-hidden{display:none!important}#print .cv-experience-module{border-top:1px solid #767676;max-width:80%!important;padding:1em 1em 1em 0}#print .separate-symbol{color:#767676;display:inline!important}}
