:root{--color-text-primary:#08060dde;--color-text-secondary:#08060d99;--color-text-white:#f3f4f6;--color-bg:#fff;--color-border:#08060d33;--color-accent:#007acc;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--font-sans:SFProText, system-ui, Avenir, Helvetica, Arial, sans-serif;--asside-width:320px}@media (prefers-color-scheme:dark){:root{--color-text-primary:#f3f4f6;--color-text-secondary:#9ca3af;--color-text-white:#f3f4f6;--color-bg:#16171d;--color-border:#fff3;--color-accent:#005c99;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;color:var(--color-text-primary)}ul{list-style-type:none}body{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}hr{color:var(--color-border)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-white{color:var(--color-text-white)}.container{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:.75rem;padding-right:.75rem}hr.vertical{border-color:#0000;border-left:1px solid var(--color-border);width:1px;margin-left:1rem;margin-right:1rem}@font-face{font-family:SFProText;font-style:normal;font-weight:700;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-Bold.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-Bold.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-Bold.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-Bold.ttf)format("truetype")}@font-face{font-family:SFProText;font-style:normal;font-weight:300;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-Light.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-Light.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-Light.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-Light.ttf)format("truetype")}@font-face{font-family:SFProText;font-style:italic;font-weight:300;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-LightItalic.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-LightItalic.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-LightItalic.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-LightItalic.ttf)format("truetype")}@font-face{font-family:SFProText;font-style:normal;font-weight:500;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-Medium.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-Medium.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-Medium.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-Medium.ttf)format("truetype")}@font-face{font-family:SFProText;font-style:normal;font-weight:400;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-Regular.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-Regular.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-Regular.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-Regular.ttf)format("truetype")}@font-face{font-family:SFProText;font-style:normal;font-weight:600;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-Semibold.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-Semibold.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-Semibold.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-Semibold.ttf)format("truetype")}@font-face{font-family:SFProText;font-style:italic;font-weight:600;font-stretch:98%;font-display:swap;src:url(/fonts/sf-pro-text/SFProText-SemiboldItalic.eot#iefix)format("embedded-opentype"),url(/fonts/sf-pro-text/SFProText-SemiboldItalic.woff2)format("woff2"),url(/fonts/sf-pro-text/SFProText-SemiboldItalic.woff)format("woff"),url(/fonts/sf-pro-text/SFProText-SemiboldItalic.ttf)format("truetype")}@font-face{font-family:IconFont;font-style:normal;font-display:block;font-weight:400;src:url(/fonts/icon-font/icon-font.woff2)format("woff2"),url(/fonts/icon-font/icon-font.woff)format("woff"),url(/fonts/icon-font/icon-font.ttf)format("truetype"),url(/fonts/icon-font/icon-font.eot#iefix)format("embedded-opentype")}@layer base{.icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--icon-display,inline-block);font-variant:normal;font-family:IconFont;font-style:normal;font-weight:400;line-height:var(--icon-line-height,1);text-rendering:auto}}.icon-1x{font-size:1em}.icon-2x{font-size:2em}.icon-3x{font-size:3em}.icon-4x{font-size:4em}.icon-5x{font-size:5em}.icon-6x{font-size:6em}.icon-7x{font-size:7em}.icon-8x{font-size:8em}.icon-9x{font-size:9em}.icon-10x{font-size:10em}.icon-2xs{font-size:.625em}.icon-xs{font-size:.75em}.icon-sm{font-size:.875em}.icon-lg{font-size:1.25em}.icon-xl{font-size:1.5em}.icon-2xl{font-size:2em}.icon-3xl{font-size:2.5em}.icon-fw{text-align:center;width:1.25em}.icon-beat{animation-name:icon-motion-beat;animation-delay:var(--icon-animation-delay,0s);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,ease-in-out)}.icon-bounce{animation-name:icon-motion-bounce;animation-delay:var(--icon-animation-delay,0s);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,cubic-bezier(.28,.84,.42,1))}.icon-fade{animation-name:icon-motion-fade;animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,cubic-bezier(.4,0,.6,1))}.icon-beat-fade,.icon-fade{animation-delay:var(--icon-animation-delay,0s);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s)}.icon-beat-fade{animation-name:icon-motion-beat-fade;animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,cubic-bezier(.4,0,.6,1))}.icon-flip{animation-name:icon-motion-flip;animation-delay:var(--icon-animation-delay,0s);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,ease-in-out)}.icon-shake{animation-name:icon-motion-shake;animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,linear)}.icon-spin-reverse{--icon-animation-direction:reverse}.icon-shake,.icon-spin-reverse,.icon-spin{animation-delay:var(--icon-animation-delay,0s);animation-direction:var(--icon-animation-direction,normal)}.icon-spin-reverse,.icon-spin{animation-name:icon-motion-spin;animation-duration:var(--icon-animation-duration,2s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,linear)}.icon-pulse,.icon-spin-pulse{animation-name:icon-motion-spin;animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.icon-beat,.icon-beat-fade,.icon-bounce,.icon-fade,.icon-flip,.icon-pulse,.icon-shake,.icon-spin-reverse,.icon-spin,.icon-spin-pulse{transition-duration:0s;transition-delay:0s;animation-duration:1ms;animation-iteration-count:1;animation-delay:-1ms}}@keyframes icon-motion-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--icon-beat-scale,1.25))}}@keyframes icon-motion-bounce{0%{transform:scale(1)translateY(0)}10%{transform:scale(var(--icon-bounce-start-scale-x,1.1),var(--icon-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--icon-bounce-jump-scale-x,.9),var(--icon-bounce-jump-scale-y,1.1)) translateY(var(--icon-bounce-height,-.5em))}50%{transform:scale(var(--icon-bounce-land-scale-x,1.05),var(--icon-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--icon-bounce-rebound,-.125em))}64%{transform:scale(1)translateY(0)}to{transform:scale(1)translateY(0)}}@keyframes icon-motion-fade{50%{opacity:var(--icon-fade-opacity,.4)}}@keyframes icon-motion-beat-fade{0%,to{opacity:var(--icon-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--icon-beat-fade-scale,1.125))}}@keyframes icon-motion-flip{50%{transform:rotate3d(var(--icon-flip-x,0),var(--icon-flip-y,1),var(--icon-flip-z,0),var(--icon-flip-angle,-180deg))}}@keyframes icon-motion-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes icon-motion-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}i.icon-book:before{content:""}i.icon-briefcase:before{content:""}i.icon-email:before{content:""}i.icon-facebook:before{content:""}i.icon-github:before{content:""}i.icon-gitlab:before{content:""}i.icon-google:before{content:""}i.icon-habr:before{content:""}i.icon-hexagon:before{content:""}i.icon-linkedin:before{content:""}i.icon-marker:before{content:""}i.icon-phone:before{content:""}i.icon-telegram:before{content:""}:root{font-family:var(--font-sans);font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--color-text-primary);background:var(--color-bg);font-size:16px;font-weight:400;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}h1{font-size:1.875rem;font-weight:500;line-height:1.4}h2{padding-top:.5rem;padding-bottom:.5rem;font-size:1.5rem;font-weight:500;line-height:1.3}h3{font-size:1.25rem;font-weight:500;line-height:1.3}main{display:flex}main .content{flex-grow:1}main aside{width:var(--asside-width);flex-shrink:0}.section-title{margin-bottom:1rem}.section-title .icon{background-color:var(--color-accent);text-align:center;border-radius:50%;width:2.5rem;height:2.5rem;margin-right:.5rem;font-size:1.125rem;line-height:2.5rem}#header{padding:3rem 0;position:relative}#header .stripe{background-color:var(--color-accent);z-index:1;height:6rem;position:absolute;top:4rem;left:0;right:0}#header .container{z-index:2;align-items:center;gap:1.25rem;display:flex;position:relative}#header .photo{aspect-ratio:1;border:6px solid var(--color-accent);background:var(--color-accent);border-radius:50%;width:8rem;min-width:8rem;height:8rem;overflow:hidden}:is(#header .photo) img{border-radius:50%;width:100%;height:100%;display:block}:is(#header .info) .name{color:var(--color-text-white);font-size:2.25rem;font-style:italic;font-weight:600}:is(#header .info) .subscription{color:var(--color-text-white);font-size:1rem;font-style:italic;font-weight:300}#header .contacts{justify-content:flex-end;align-items:center;gap:2rem;margin-top:-.5rem;margin-left:auto;display:flex}:is(#header .contacts) li{color:var(--color-text-secondary)}:is(:is(#header .contacts) li) .icon{color:var(--color-accent);margin-right:.25rem;font-size:1.125rem;position:relative;top:3px}:is(:is(#header .contacts) li) a{color:inherit;text-decoration:none}:is(:is(:is(#header .contacts) li) a):hover{color:var(--color-text-primary)}#links{margin-bottom:1rem}#links li{padding:.125rem 0}:is(#links li) a{color:var(--color-text-secondary);text-underline-offset:.125rem;font-size:1.125rem;font-weight:500;text-decoration:none;text-decoration-thickness:3px}:is(:is(#links li) a) .icon{color:var(--color-accent);line-height:1.125rem;position:relative;top:2px}:is(:is(#links li) a):hover{text-decoration:underline}.competence{margin-bottom:1rem}.competence h3{margin-bottom:.25rem}:is(.competence ul) li{color:var(--color-text-secondary);justify-content:space-between;align-items:center;display:flex}:is(:is(.competence ul) li) .indicator{border:inset 1px var(--color-border);border-radius:3px;width:8rem;height:.75rem;overflow:hidden}:is(:is(:is(.competence ul) li) .indicator) .level{background:var(--color-accent);height:100%}.level-1:is(:is(:is(:is(.competence ul) li) .indicator) .level){width:20%}.level-2:is(:is(:is(:is(.competence ul) li) .indicator) .level){width:40%}.level-3:is(:is(:is(:is(.competence ul) li) .indicator) .level){width:60%}.level-4:is(:is(:is(:is(.competence ul) li) .indicator) .level){width:80%}.level-5:is(:is(:is(:is(.competence ul) li) .indicator) .level){width:100%}:is(#experience ul) li{-moz-column-gap:1rem;grid-template-columns:2.5rem 1fr;column-gap:1rem;display:grid;position:relative}:is(:is(#experience ul) li) .marker{align-self:flex-start;padding-top:.25rem}:is(:is(:is(#experience ul) li) .marker) .icon{background-color:var(--color-accent);text-align:center;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.5rem;line-height:2.5rem}:is(:is(#experience ul) li) .line{justify-self:center}:is(:is(:is(#experience ul) li) .line) hr{border-color:#0000;border-right:3px solid var(--color-accent);width:0;height:100%}:is(:is(:is(:is(#experience ul) li) .label) h2) i{color:var(--color-text-primary);font-size:1.125rem;font-weight:400}:is(:is(#experience ul) li) .article{margin-bottom:1rem}:is(:is(:is(#experience ul) li) .article) .description{white-space:pre-line;color:var(--color-text-secondary)}:is(:is(:is(#experience ul) li) .article) .period{color:var(--color-text-secondary);font-size:1rem;font-style:italic}:is(:is(:is(#experience ul) li) .article) .stack{margin-top:.5rem}:is(:is(:is(:is(#experience ul) li) .article) .stack) .chip{background-color:var(--color-accent);color:var(--color-text-white);white-space:nowrap;border-radius:3px;margin:1px;padding:.125rem .5rem;font-size:.875rem;line-height:1.75rem}footer{height:5rem;display:block}
