*,:before,:after{box-sizing:border-box}:where(ul,ol):where([class]){padding-left:0}body,:where(blockquote,figure,fieldset):where([class]){margin:0}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl):where([class]){margin-block:0}:where(dd[class]){margin-left:0}:where(fieldset[class]){padding:0;border:none}:where(ul[class]){list-style:none}:where(address[class]){font-style:normal}p{--paragraphMarginBottom: 1.5rem;margin-block:0}p:where(:not([class]):not(:last-child)){margin-bottom:var(--paragraphMarginBottom)}img,video{display:block;max-width:100%;height:auto}input,textarea,select,button{font:inherit}html{height:100%;scrollbar-gutter:stable}html{scroll-behavior:smooth}body{min-height:100%;line-height:1.5}a:where([class]){display:inline-flex}button,label{cursor:pointer}:where([fill]:not([fill=none],[fill^=url])){fill:currentColor}:where([stroke]:not([stroke=none],[stroke^=url])){stroke:currentColor}svg *{transition-property:fill,stroke}:where(table){border-collapse:collapse;border-color:currentColor}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@font-face{font-family:Exo2;src:url(./fonts/Exo2-Thin.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-ExtraLight.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-ExtraBold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Exo2;src:url(./fonts/Exo2-Black.woff2) format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-base: #FFFFFF;--color-base-variant: #e8e9ed;--color-text: #111528;--color-text-secondary: #232738;--color-primary: #3a435d;--color-accent: #0071ff;--border-width-xl: .375rem;--border-width-l: .25rem;--border-width-m: .1875rem;--border-width-s: .0625rem;--border-radius-l: .75rem;--border-radius-m: .625rem;--border-radius-s: .5rem;--border-radius-xs: .375rem;--border-radius-xxs: .3125rem;--border-radius-xxxs: .25rem;--font-family-base: "Exo2", sans-serif;--container-width: clamp(80rem, 0rem + 100vw, 100rem);--container-padding-x: 1rem;--section-padding-y: clamp(2.5rem, 1.7949380165rem + 2.8925619835vw, 4.6875rem);--transition-duration: .2s;--transition-duration-longer: .4s}.darkmode{--color-base: #070b1d;--color-base-variant: #101425;--color-text: #ffffff;--color-text-secondary: #a4a5b8;--color-primary: #3a435d;--color-accent: #0071ff}.container{width:100%;max-width:calc(var(--container-width) + var(--container-padding-x) * 2);margin-inline:auto;padding-inline:var(--container-padding-x)}.visually-hidden{position:absolute!important;width:.0625rem!important;height:.0625rem!important;margin:-.0625rem!important;border:0!important;padding:0!important;white-space:nowrap!important;clip-path:inset(100%)!important;clip:rect(0 0 0 0)!important;overflow:hidden!important}@media (width > 63.9375rem){.visible-tablet{display:none!important}}@media (width <= 63.9375rem){.hidden-tablet{display:none!important}}@media (width > 47.9375rem){.visible-mobile{display:none!important}}@media (width <= 47.9375rem){.hidden-mobile{display:none!important}}html.is-lock{overflow:hidden}body{font-size:clamp(.875rem,.7944214876rem + .3305785124vw,1.125rem);display:flex;flex-direction:column;font-family:var(--font-family-base);color:var(--color-text);background-color:var(--color-base)}main{flex-grow:1}h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{color:var(--color-azure)}h1,.h1{font-size:clamp(1.75rem,1.145661157rem + 2.479338843vw,3.625rem);font-weight:700}h2,.h2{font-size:clamp(1.5rem,1.0165289256rem + 1.9834710744vw,3rem);font-weight:700}h3,.h3{font-size:clamp(1.25rem,.8873966942rem + 1.4876033058vw,2.375rem);font-weight:700}h4,.h4{font-size:clamp(1.125rem,1.0041322314rem + .4958677686vw,1.5rem);font-weight:600}h5,.h5{font-size:clamp(1.125rem,1.0444214876rem + .3305785124vw,1.375rem);font-weight:500}h6,.h6{font-size:clamp(1rem,.9194214876rem + .3305785124vw,1.25rem);font-weight:600}a,button,label,input,textarea,select,svg *{transition-duration:var(--transition-duration)}a{color:inherit}@media (any-hover: hover){a:hover{color:var(--color-antiflash-white)}}@media (any-hover: none){a:active{color:var(--color-antiflash-white)}}a[class]{text-decoration:none}:focus-visible{outline:.125rem dashed var(--color-white);outline-offset:.25rem;transition-duration:0s!important}:has(.swiper){min-width:0}.logo{color:var(--color-accent);font-weight:700;font-size:clamp(1.5rem,1.3388429752rem + .6611570248vw,2rem)}.header{padding-block:clamp(.9375rem,.736053719rem + .826446281vw,1.5625rem)}@media (width <= 47.9375rem){.header{position:sticky;top:0;z-index:1000;animation-name:scrolling-header;animation-fill-mode:both;background-color:var(--color-primary)}}.header__inner{display:flex;justify-content:space-between;align-items:center;column-gap:.625rem}@media (width > 47.9375rem){.header__overlay{display:contents}}@media (width <= 47.9375rem){.header__overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;row-gap:3rem;padding:1rem;background-color:var(--color-base);transition-duration:var(--transition-duration)}.header__overlay:not(.is-active){opacity:0;visibility:hidden;translate:100%}}.header__menu-list{display:flex;column-gap:clamp(1.5625rem,1.0588842975rem + 2.0661157025vw,3.125rem)}@media (width <= 47.9375rem){.header__menu-list{flex-direction:column;justify-content:center;align-items:center;row-gap:2.25rem}}@media (any-hover: hover){.header__menu-link:hover{color:var(--color-accent)}}@media (any-hover: none){.header__menu-link:active{color:var(--color-accent)}}.header__actions{display:flex;column-gap:1.25rem}.switch-theme__button{height:2.5rem;width:2.5rem;border-radius:50%;display:flex;justify-content:center;align-items:center;padding:0;border:0;background-color:var(--color-base-variant)}.switch-theme__button svg{fill:var(--color-primary)}.switch-theme__button svg:last-child{display:none}.darkmode .switch-theme__button svg:first-child{display:none}.darkmode .switch-theme__button svg:last-child{display:block}.burger-button{display:inline-flex;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;position:relative;background-color:var(--color-base-variant);border:var(--border-width-m) solid transparent;border-radius:var(--border-radius-xs)}@media (any-hover: hover){.burger-button:hover{background-color:var(--color-base-variant);border-color:transparent}}@media (any-hover: none){.burger-button:active{background-color:var(--color-base-variant);border-color:transparent}}.burger-button.is-active{color:var(--color-base)}.burger-button.is-active .burger-button__line{stroke-dasharray:90 207;stroke-dashoffset:-134}.burger-button.is-active .burger-button__line--2{stroke-dasharray:1 60;stroke-dashoffset:-30}.burger-button:not(.is-active) .burger-button__line--3{stroke-dasharray:30 207;stroke-dashoffset:-30}.burger-button__line{fill:none;stroke:var(--color-primary);stroke-width:6;stroke-linecap:round;stroke-dasharray:60 207;transition:stroke-dasharray var(--transition-duration-longer) cubic-bezier(.4,0,.2,1),stroke-dashoffset var(--transition-duration-longer) cubic-bezier(.4,0,.2,1)}.burger-button__line--2{stroke-dasharray:60 60}.content{display:flex;flex-direction:column;row-gap:clamp(1.25rem,.645661157rem + 2.479338843vw,3.125rem);padding-top:clamp(2.5rem,0rem + 3.125vw,3.125rem);padding-bottom:var(--section-padding-y)}.footer{padding:clamp(1.875rem,1.270661157rem + 2.479338843vw,3.75rem) 0;background-color:var(--color-bg-secondary);text-align:center}.footer__inner{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.footer__socials{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;padding:0;margin:0}.footer__item{list-style:none}.footer__link{display:inline-block;width:2.5rem;height:2.5rem;transition:transform .2s ease}@media (any-hover: hover){.footer__link:hover{transform:scale(1.1)}}@media (any-hover: none){.footer__link:active{transform:scale(1.1)}}.footer__icon{width:100%;height:100%;object-fit:contain;filter:grayscale(100%);transition:filter .3s}@media (any-hover: hover){.footer__icon:hover{filter:none}}@media (any-hover: none){.footer__icon:active{filter:none}}.footer__copy{font-size:clamp(.875rem,.8347107438rem + .1652892562vw,1rem);color:var(--color-text-secondary)}.button{padding:clamp(.625rem,.5242768595rem + .4132231405vw,.9375rem);background-color:var(--color-accent);border-radius:var(--border-radius-m);color:var(--color-base);font-size:clamp(1rem,.8388429752rem + .6611570248vw,1.5rem)}.button--black{background-color:var(--color-text);color:var(--color-base)}@media (any-hover: hover){.button--black:hover{color:var(--color-text-secondary);background-color:var(--color-base)}}@media (any-hover: none){.button--black:active{color:var(--color-text-secondary);background-color:var(--color-base)}}.about__inner{display:flex;align-items:center;justify-content:space-between}@media (width <= 47.9375rem){.about__inner{flex-direction:column}}.about__text{display:flex;flex-direction:column;row-gap:clamp(1rem,.0330578512rem + 3.9669421488vw,4rem);max-width:31.25rem}@media (width <= 47.9375rem){.about__text{max-width:100%}}.about__info{display:flex;flex-direction:column;row-gap:clamp(.9375rem,.6353305785rem + 1.2396694215vw,1.875rem)}.about__actions{display:flex;column-gap:.625rem}.about__button{padding:clamp(.625rem,.5242768595rem + .4132231405vw,.9375rem);background-color:var(--color-accent);border-radius:var(--border-radius-m);color:var(--color-base);font-size:clamp(1rem,.8388429752rem + .6611570248vw,1.5rem)}.about__button--white{background-color:var(--color-text);color:var(--color-base)}@media (any-hover: hover){.about__button--white:hover{color:var(--color-text-secondary);background-color:var(--color-base)}}@media (any-hover: none){.about__button--white:active{color:var(--color-text-secondary);background-color:var(--color-base)}}.about__title span{color:var(--color-accent)}.about__subtitle{font-size:clamp(1rem,.5165289256rem + 1.9834710744vw,2.5rem);font-weight:200;overflow:hidden;border-right:.15em solid var(--color-accent);white-space:nowrap;letter-spacing:.15em;width:0;animation:typing 3s steps(28,end) forwards,blink-caret .75s step-end infinite}@keyframes typing{0%{width:0}to{width:30ch}}@keyframes blink-caret{0%,to{border-color:transparent}50%{border-color:var(--color-accent)}}.about__image{max-width:50%}@media (width <= 47.9375rem){.about__image{max-width:80%}}@media (width <= 30rem){.about__image{max-width:100%}}.portfolio{background:var(--color-base-variant);padding:clamp(1.875rem,1.472107438rem + 1.652892562vw,3.125rem) 0}.portfolio__inner{display:flex;flex-direction:column;row-gap:clamp(.9375rem,.6353305785rem + 1.2396694215vw,1.875rem)}.portfolio__title{text-align:center;font-size:clamp(1.5rem,1.0165289256rem + 1.9834710744vw,3rem)}.portfolio__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(17.5rem,1fr));gap:1.5rem;list-style:none;padding:0;margin:0}.portfolio__item{background:var(--color-base);border-radius:.75rem;overflow:hidden;display:flex;flex-direction:column}.portfolio__image{width:100%;height:11.25rem;object-fit:cover}.portfolio__content{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.portfolio__name{font-size:1.25rem;font-weight:700}.portfolio__desc{font-size:.875rem;color:var(--color-text-secondary)}.portfolio__tech{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--color-accent);list-style:none;padding:0;margin:0}.portfolio__links{margin-top:auto;display:flex;gap:.75rem}.portfolio__links a{font-size:.875rem;color:var(--color-base)}@media (any-hover: hover){.portfolio__links a:hover{color:var(--color-text-secondary);background-color:var(--color-base)}}@media (any-hover: none){.portfolio__links a:active{color:var(--color-text-secondary);background-color:var(--color-base)}}.portfolio img.portfolio__icon{width:1.5rem;height:1.5rem;object-fit:contain}.skills__inner{display:flex;flex-direction:column;row-gap:clamp(.9375rem,.6353305785rem + 1.2396694215vw,1.875rem)}.skills__title{font-size:clamp(1.5rem,1.0165289256rem + 1.9834710744vw,3rem);text-align:center}.skills__description{text-align:center;font-size:clamp(1rem,.9194214876rem + .3305785124vw,1.25rem);color:var(--color-text-secondary);max-width:37.5rem;margin:0 auto}.skills__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.25rem,1fr));gap:1rem}.skills__item{background:var(--color-base-variant);padding:1rem;border-radius:.75rem;text-align:center;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:.5rem}.skills__item img.skills__icon{width:2rem;height:2rem;object-fit:contain}.experience__title{margin-bottom:clamp(1.5rem,1.0165289256rem + 1.9834710744vw,3rem);text-align:center}.experience__list{display:flex;flex-direction:column;gap:clamp(1.25rem,.847107438rem + 1.652892562vw,2.5rem)}.experience__item{display:flex;flex-direction:column;row-gap:.625rem;padding:clamp(1rem,.8388429752rem + .6611570248vw,1.5rem);border-left:.25rem solid var(--color-accent);background:var(--color-base-variant);border-radius:var(--border-radius-m)}.experience__company{display:flex;align-items:center;column-gap:.625rem}.experience__company-title{font-size:clamp(1.125rem,1.0041322314rem + .4958677686vw,1.5rem);font-weight:600}.experience__company-logo{width:1.5rem;height:1.5rem;object-fit:contain}.experience__meta{display:flex;justify-content:space-between;font-size:clamp(.875rem,.8347107438rem + .1652892562vw,1rem);color:var(--color-text-secondary);margin-bottom:.5rem}.experience__description{font-size:clamp(.875rem,.8347107438rem + .1652892562vw,1rem);line-height:1.5}.experience__button{font-size:.875rem;align-self:start}@media (any-hover: hover){.experience__button:hover{color:var(--color-text-secondary);background-color:var(--color-base)}}@media (any-hover: none){.experience__button:active{color:var(--color-text-secondary);background-color:var(--color-base)}}.experience__actions{display:flex;column-gap:.625rem}
