@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-ext-wght-normal.CO5hGrJv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-cyrillic-wght-normal.EAA9jha_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-vietnamese-wght-normal.k7S-YeeD.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-ext-wght-normal.BsZE-iaG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/montserrat-latin-wght-normal.l_AIctKy.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}footer[data-astro-cid-jo6i4kqk]{text-align:center;padding-block:67px;padding-inline:var(--mobile-inline-padding);@media (width>=768px){padding-inline:0}& a{color:var(--text-color);transition:var(--transition-text);text-decoration:none;@media (any-hover:hover){&:hover{color:var(--text-description-color)}}}& video{translate:0 -2px}}label[data-astro-cid-wqridlde]{--padding:4px;width:50px;height:24px;padding:var(--padding);cursor:pointer;display:inline-block;position:relative;& input{opacity:0;width:0;height:0}& .toggle-thumb{--toggle-gap:8px;justify-content:space-between;align-items:center;gap:var(--toggle-gap);background-color:var(--bg-toggle-thumb);border-radius:var(--radius);transition:var(--transition-bg);display:flex;position:absolute;inset:0;overflow:hidden;&.active:before{--offset:calc(var(--padding) / 2);translate:calc(var(--size) + var(--toggle-gap) + var(--offset))}&:before{--size:16px;content:"";top:calc(var(--toggle-gap) / 2);left:calc(var(--toggle-gap) / 2);width:var(--size);height:var(--size);background-color:var(--text-color);transition:translate .3s ease, var(--transition-bg);border-radius:50%;position:absolute}& svg{&:nth-child(odd){translate:calc(var(--toggle-gap) / 2)}&:nth-child(2n){translate:calc((var(--toggle-gap) / 2) * -1)}}}}nav[data-astro-cid-l7arcky5]#menu{background-color:color-mix(in srgb, var(--bg-color), transparent 30%);backdrop-filter:blur(12px);padding-block:1rem;padding-inline:var(--mobile-inline-padding);text-align:right;z-index:1;position:sticky;top:0;@media (width>=768px){backdrop-filter:none;text-align:initial;background:0 0;padding:0;top:36px}& ul{display:none;@media (width>=768px){--gap:35px;background-color:color-mix(in srgb, var(--bg-color), transparent 30%);backdrop-filter:blur(12px);align-items:center;gap:var(--gap);border:1px solid var(--border-color);width:fit-content;transition:var(--transition-border);border-radius:1000px;margin:36px auto 0;padding:16px 24px;display:flex;& li{position:relative;&:not(:last-child):after{--size:3px;content:"";width:var(--size);height:var(--size);translate:calc(var(--gap) / 2) -50%;background-color:var(--bg-separator);transition:var(--transition-bg);border-radius:50%;position:absolute;top:50%;right:0}& .language{align-items:center;gap:4px;display:flex;& span:first-child{line-height:0}}}& a{--hover-color:color-mix(in srgb, var(--text-color), var(--bg-color) 40%);color:var(--text-color);transition:var(--transition-text);text-decoration:none;&.active,&:active,&:focus{color:var(--hover-color)}@media (any-hover:hover){&:hover{color:var(--hover-color)}}}}}& button{--hover-color:color-mix(in srgb, var(--text-color), var(--bg-color) 40%);color:var(--text-color);transform:var(--transition-text);background:0 0;border:none;padding:0;&:active{color:var(--hover-color)}@media (any-hover:hover){&:hover{color:var(--hover-color)}}@media (width>=768px){display:none}}}dialog[data-astro-cid-l7arcky5]{background-color:var(--bg-secondary-color);border-radius:var(--radius);border:1px solid var(--border-color);width:70vw;transition:opacity .3s ease, transform .3s ease, overlay .5s ease allow-discrete, display .3s ease allow-discrete;opacity:0;backdrop-filter:blur();position:fixed;transform:translateY(1em);&::backdrop{backdrop-filter:blur(4px);transition:display .3s allow-discrete, overlay .5s allow-discrete, background-color .3s;background-color:#0000}&[open]::backdrop{background-color:#00000080}&[open]{opacity:1;transform:translateY(0)}@starting-style{&[open]{opacity:0;transform:translateY(-1em)}&[open]::backdrop{background-color:#0000}}& nav{text-align:center;color:var(--text-color);flex-direction:column;gap:24px;padding:24px;display:flex;& a{color:var(--text-color);transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}& #close{--position:8px;color:var(--text-color);translate:calc(var(--position) * -1) var(--position);background:0 0;border:none;position:absolute;top:0;right:0;&:active{color:var(--text-description-color)}}}body.no-scroll{overflow:hidden}.socials[data-astro-cid-fvhemjle]{display:none;@media (width>=1200px){display:initial;position:fixed;bottom:0;left:0;translate:46px;& nav{flex-direction:column;gap:24px;display:flex;&:after{content:"";background-color:var(--text-color);width:1px;height:127px;margin-inline:auto}& a{color:var(--color-text);transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}}}*,:before,:after{box-sizing:border-box;background-repeat:no-repeat}:before,:after{text-decoration:inherit;vertical-align:inherit}:where(:root){cursor:default;overflow-wrap:break-word;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;line-height:1.5}:where(body){margin:0}:where(h1){margin:.67em 0;font-size:2em}:where(dl,ol,ul) :where(dl,ol,ul){margin:0}:where(hr){color:inherit;height:0}:where(nav) :where(ol,ul){padding:0;list-style-type:none}:where(nav li):before{content:"​";float:left}:where(pre){font-family:monospace;font-size:1em;overflow:auto}:where(abbr[title]){text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace;font-size:1em}:where(small){font-size:80%}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}:where(iframe){border-style:none}:where(svg:not([fill])){fill:currentColor}:where(table){border-collapse:collapse;border-color:inherit;text-indent:0}:where(button,input,select){margin:0}:where(button,[type=button i],[type=reset i],[type=submit i]){-webkit-appearance:button}:where(fieldset){border:1px solid #a0a0a0}:where(progress){vertical-align:baseline}:where(textarea){resize:vertical;margin:0}:where([type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(dialog){color:#000;background-color:#fff;border:solid;width:fit-content;height:fit-content;margin:auto;padding:1em;position:absolute;left:0;right:0}:where(dialog:not([open])){display:none}:where(details>summary:first-of-type){display:list-item}:where([aria-busy=true i]){cursor:progress}:where([aria-controls]){cursor:pointer}:where([aria-disabled=true i],[disabled]){cursor:not-allowed}:where([aria-hidden=false i][hidden]){display:initial}:where([aria-hidden=false i][hidden]:not(:focus)){clip:rect(0, 0, 0, 0);position:absolute}:where(iframe,img,input,video,select,textarea){max-width:100%;height:auto}html{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}code,kbd,samp,pre{font-family:ui-monospace,Menlo,Consolas,Roboto Mono,Ubuntu Monospace,Noto Mono,Oxygen Mono,Liberation Mono,monospace,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}html{--bg-color:#000;--bg-secondary-color:#1e1e1e;--bg-toggle-thumb:#343434;--bg-card-contributions:#4847474d;--bg-separator:#5a5a5a;--text-color:#fff;--text-description-color:#a6a6a6;--font:"Montserrat Variable", sans-serif;--border-color:#5a5a5a;--border-card-contributions-color:#272727;--radius:24px;--mobile-inline-padding:22px;--transition-bg:background-color .15s ease;--transition-text:color .15s ease;--transition-border:border-color .15s ease;scroll-behavior:smooth;scroll-padding-top:96px;@media (width>=768px){scroll-padding-top:126px}}html.dark{--bg-color:#fff;--bg-secondary-color:#f3f3f3;--bg-toggle-thumb:#d5d5d5;--bg-card-contributions:#cbcbcb4d;--bg-separator:#000;--text-color:#000;--text-description-color:#646464;--border-color:#e6e6e6;--border-card-contributions-color:#e6e6e6}body{background-color:var(--bg-color);color:var(--text-color);font-family:var(--font);transition:var(--transition-bg), var(--transition-text)}h1{text-wrap:balance;margin:0;font-size:2.25rem;font-weight:700;@media (width>=768px){font-size:4rem}}h2{margin:0;font-size:2rem;font-weight:600;@media (width>=768px){font-size:2.5rem}}h3{margin:0;font-size:1.5rem;font-weight:600}h4{margin:0;font-size:1.25rem;font-weight:600}p{margin:0}.headline-1{font-size:2rem;font-weight:500;@media (width>=768px){font-size:2.5rem}}.headline-2{font-size:1.5rem;font-weight:600;@media (width>=768px){font-size:2rem}}.headline-3{font-size:1.5rem}.headline-4{font-size:1.25rem}.about[data-astro-cid-szf7lw6w]{padding-bottom:120px;& h2{white-space:nowrap;justify-content:center;align-items:center;gap:24px;display:flex;@media (width>=768px){justify-content:start;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}& .info{background-color:var(--bg-card-contributions);border-radius:4px;flex-direction:column;align-items:center;gap:32px;margin-top:48px;padding:24px 16px;display:flex;@media (width>=768px){max-width:470px;margin-inline:auto;padding:48px}@media (width>=1200px){flex-direction:row;max-width:fit-content}& .picture{& img{border-radius:4px}}& .description{flex:1;& p{color:var(--text-description-color);margin-top:24px}}}}a[data-astro-cid-ekguhzzh]{color:var(--text-color);border:1px solid var(--text-color);transition:var(--transition-bg), var(--transition-text);border-radius:1000px;justify-content:center;gap:10px;padding:12px 40px;font-weight:500;text-decoration:none;display:inline-flex;&:hover{background-color:var(--bg-secondary-color)}&.filled{background-color:var(--text-color);color:var(--bg-color);transition:var(--transition-bg), var(--transition-text);&:hover{background-color:var(--bg-secondary-color);color:var(--text-color)}}}.contact[data-astro-cid-p2ow4bj2]{text-align:center;border:1px solid #80808054;border-radius:4px;padding-block:97px;padding-inline:1rem;position:relative;overflow:hidden;@media (width>=768px){padding-inline:0}& h3{font-weight:initial}& .buttons-container{flex-direction:column;justify-content:center;gap:13px;margin-top:24px;display:flex;@media (width>=768px){flex-direction:row}}& canvas{z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}}.experience[data-astro-cid-fvemjl4k]{padding-bottom:120px;& h2{white-space:nowrap;justify-content:center;align-items:center;gap:24px;display:flex;@media (width>=768px){justify-content:start;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}}}.jobs[data-astro-cid-fvemjl4k]{flex-direction:column;gap:32px;margin-top:48px;display:flex;@media (width>=768px){flex-direction:row}& .job-title{flex-direction:row;display:flex;overflow-x:auto;mask:linear-gradient(90deg,#0000,#fff 0% 70%,#0000);@media (width>=768px){flex-direction:column;mask:none}& button{color:var(--text-description-color);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;padding:16px 24px;position:relative;&:before{content:"";width:100%;height:100%;transition:var(--transition-bg), border-color .15s ease;border-bottom:2px solid #5a5a5a;position:absolute;top:0;left:0}@media (width>=768px){&:before{border-bottom:none;border-left:2px solid #5a5a5a}}&.active{color:var(--text-color);&:before{border-bottom:3px solid var(--text-color);translate:0 .8px}@media (width>=768px){&:before{border-left:3px solid var(--text-color);border-bottom:none;translate:-.5px}}}@media (any-hover:hover){&:hover{color:var(--text-color);transition:var(--transition-text)}}}}& .jobs-descriptions{flex:1;& .description{animation:1.2s fade;display:none;&.active{display:block}&>[data-astro-cid-fvemjl4k]+[data-astro-cid-fvemjl4k],& ul li{margin-top:16px}& .job-time{align-items:center;gap:16px;display:flex;& .badge{background-color:var(--bg-secondary-color);border:1px solid var(--text-color);transition:var(--transition-bg);border-radius:1000px;padding:2px 12px;font-size:.875rem}}& p{text-wrap:pretty}& .headline-4,& p,& ul{color:var(--text-description-color)}}}}@keyframes fade{0%{opacity:0}to{opacity:1}}.hero[data-astro-cid-cvys7hfr]{padding-top:113px;padding-bottom:56px;@media (width>=768px){padding-block:50px}&>div[data-astro-cid-cvys7hfr]{text-align:center;border:1px solid var(--border-color);border-radius:var(--radius);margin-inline:auto;padding:120px 29px;position:relative;overflow:hidden;@media (width>=992px){padding:148px 125px}& canvas{opacity:.6;z-index:-1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}&>[data-astro-cid-cvys7hfr]+[data-astro-cid-cvys7hfr]:not(canvas){margin-top:24px}& .badge{background-color:var(--bg-secondary-color);border:1px solid var(--text-color);width:fit-content;transition:var(--transition-bg), var(--transition-border);border-radius:1000px;align-items:center;gap:8px;margin-inline:auto;padding:6px 12px;font-size:.875rem;display:flex;& .dot{--size:6px;--color:#22c55e;width:var(--size);height:var(--size);background-color:var(--color);box-shadow:0 0 0 0 var(--color);border-radius:50%;animation:2s infinite pulse;transform:scale(1)}}& p{color:var(--text-description-color);font-size:1.25rem;@media (width>=768px){font-size:1.5rem}&>strong[data-astro-cid-cvys7hfr]{color:var(--text-color)}}& .button-container{flex-direction:column;justify-content:center;gap:13px;display:flex;@media (width>=768px){flex-direction:row}}}}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 6px #0000}to{transform:scale(.95);box-shadow:0 0 #0000}}html{& .astro,& .html{transition:var(--transition-bg);background-color:#7f4932}& .css{transition:var(--transition-bg);background-color:#324b7f}& .tailwindcss,& .typescript,& .react{transition:var(--transition-bg);background-color:#32547f}& .sass{transition:var(--transition-bg);background-color:#602957}& .open-props{transition:var(--transition-bg);background-color:#3a4367}& .javascript{transition:var(--transition-bg);background-color:#665e24}& .php{transition:var(--transition-bg);background-color:#616161}& .wordpress{transition:var(--transition-bg);background-color:#3a4367}& .firebase{transition:var(--transition-bg);background-color:#7f6932}& .pwa{color:#000;transition:var(--transition-bg), var(--transition-text);background-color:#c4c4c4}}html.dark{& .astro,& .html{background-color:#ffbc96}& .css{background-color:#1c80bf5e}& .tailwindcss,& .typescript,& .react{background-color:#bddaff}& .sass{background-color:#cfbfcd}& .open-props{background-color:#c1cbf1}& .javascript{background-color:#e2da9a}& .php{background-color:#cacaca}& .wordpress{background-color:#b1b8d1}& .firebase{background-color:#fd8}}.card-project[data-astro-cid-tngbzbkr]{margin-bottom:86px;align-items:center;gap:48px;max-width:434px;margin-inline:auto;display:grid;@media (width>=1200px){grid-template-columns:434px 1fr;max-width:fit-content;&:nth-child(odd){grid-template-columns:1fr 434px;& .description{order:-1}}}& img{border-radius:4px}& .description{& h3{& a{color:inherit;transition:var(--transition-text);text-decoration:none;&:hover{color:var(--text-description-color)}}}& .badges{flex-wrap:wrap;gap:12px 8px;display:flex;& .badge-tech{border-radius:1000px;align-items:center;gap:8px;padding:4px 12px;font-size:.875rem;display:inline-flex}}& .links{align-items:center;gap:16px;display:flex;& a{color:var(--text-color);transition:var(--transition-text);border:1px solid var(--text-color);transition:var(--transition-bg);border-radius:1000px;align-items:center;gap:10px;padding:8px 24px;font-weight:500;text-decoration:none;display:inline-flex;&:hover{background-color:var(--bg-secondary-color)}}}& p{color:var(--text-description-color);font-size:1.125rem}&>[data-astro-cid-tngbzbkr]+[data-astro-cid-tngbzbkr]{margin-top:24px}}}.projects[data-astro-cid-zuc2hnyc]{padding-bottom:120px;& h2{white-space:nowrap;justify-content:center;align-items:center;gap:24px;margin-bottom:86px;display:flex;@media (width>=768px){justify-content:start;&:after{content:"";background-color:var(--border-color);width:100%;height:1px;display:block}}& span{order:1}}}
