@import"https://fonts.googleapis.com/css2?family=Chivo:ital,wght@0,100..900;1,100..900&display=swap";.logo__link{display:flex;align-items:center;gap:1rem;text-decoration:none}.logo__link .logo__container{stroke:var(--color-headings)}.logo__link .logo .line{transition:transform .2s ease-in}.logo__link .line--top{transform:translate(22.5px,7.610834px) rotate(-72deg) translate(-22.5px,-7.610834px)}.logo__link .line--bottom{transform:translate(22.5px,20.721668px) rotate(-72deg) translate(-22.5px,-20.721668px)}.logo__link:hover .line--top{transform:translate(22.5px,7.610834px) rotate(-108deg) translate(-22.5px,-7.610834px)}.logo__link:hover .line--bottom{transform:translate(22.5px,20.721668px) rotate(-108deg) translate(-22.5px,-20.721668px)}.logo__link span{font-size:1.25rem;font-family:var(--font-family-headings);font-weight:var(--font-weight-regular);color:var(--color-headings)}@media screen and (min-width: 1200px){.logo__link span{font-size:1.5rem}}.header{display:flex;justify-content:space-between;align-items:center;position:fixed;width:100%;z-index:10;transition:.25s ease-out;transition-property:background-color,transform}.is-scrolling .header{background-color:var(--color-background-main)}.is-scrolling-down .header{transform:translateY(-100%)}.header__logo{padding:var(--spacing-8)}@media screen and (min-width: 744px){.header__logo{padding:var(--spacing-9)}}@media screen and (min-width: 1200px){.header__logo{padding:var(--spacing-10)}}.header__logo svg{height:1.875rem;width:auto}@media screen and (min-width: 744px){.header__logo svg{height:2.25rem;width:auto}}.button-toggle-theme{border:none;background-color:transparent;padding:var(--spacing-7);cursor:pointer}.button-toggle-theme svg{width:2rem;height:2rem}@media screen and (min-width: 744px){.button-toggle-theme{padding:var(--spacing-8)}.button-toggle-theme svg{width:2.5rem;height:2.5rem}}@media screen and (min-width: 1200px){.button-toggle-theme{padding:var(--spacing-9)}}.pill{position:relative;display:inline-flex;align-items:center;gap:var(--spacing-4);padding-right:var(--spacing-4);background-color:var(--color-background-subtle-alternative);border:.25rem solid var(--color-background-subtle-alternative);border-radius:6rem;font-size:var(--font-size-heading-sm);font-weight:var(--font-weight-regular)}@media screen and (min-width: 1200px){.pill{gap:var(--spacing-8);padding-right:var(--spacing-8)}}.pill__avatar{border-radius:6rem;background-color:var(--color-neutral-50);border:.25rem solid var(--color-background-subtle-alternative);height:2.5rem;width:2.5rem}@media screen and (min-width: 1200px){.pill__avatar{height:4.5rem;width:4.5rem}}.pill__avatar:hover+.pill__avatar--hover{display:block}.pill__text{line-height:1}@keyframes wave-animation{0%{transform:rotate(0) scaleX(-1)}10%{transform:rotate(-10deg) scaleX(-1)}20%{transform:rotate(12deg) scaleX(-1)}30%{transform:rotate(-10deg) scaleX(-1)}40%{transform:rotate(9deg) scaleX(-1)}50%{transform:rotate(0) scaleX(-1)}to{transform:rotate(0) scaleX(-1)}}@keyframes rotate-animation{0%{transform:rotate(0)}50%{transform:rotate(180deg)}to{transform:rotate(360deg)}}.wave{animation-name:wave-animation;animation-duration:2.5s;animation-iteration-count:1;animation-delay:1s;transform-origin:70% 70%;transform:scaleX(-1);transform-origin:bottom;display:inline-block}.hero{padding-top:calc(var(--spacing-12) * 1.2);padding-bottom:var(--spacing-10)}@media screen and (min-width: 345px){.hero{padding-top:calc(var(--spacing-12) * 1.4);padding-bottom:var(--spacing-10)}}@media screen and (min-width: 744px){.hero{padding-top:calc(var(--spacing-12) * 1.5);padding-bottom:calc(var(--spacing-12) * 1.5)}}@media screen and (min-width: 1200px){.hero{padding-top:calc(var(--spacing-12) * 2);padding-bottom:calc(var(--spacing-12) * 2)}}.hero__title{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-8);text-wrap:pretty}.tech-words__list{display:flex;flex-flow:row wrap;justify-content:flex-start;gap:var(--spacing-3);list-style-type:none;padding:var(--spacing-8) 0;margin:0;border-top:1px solid var(--color-border-default);border-bottom:1px solid var(--color-border-default)}@media screen and (min-width: 345px){.tech-words__list{gap:var(--spacing-4)}}@media screen and (min-width: 1200px){.tech-words__list{justify-content:center;padding:var(--spacing-10) var(--spacing-12);gap:var(--spacing-8)}}.tech-words__list li{display:flex;justify-content:flex-start;align-items:center;gap:var(--spacing-3);color:var(--color-headings);font-family:var(--font-family-headings);font-size:var(--font-size-heading-sm);font-weight:var(--font-weight-regular)}@media screen and (min-width: 345px){.tech-words__list li{gap:var(--spacing-4)}}@media screen and (min-width: 1200px){.tech-words__list li{justify-content:center;gap:var(--spacing-8)}}.tech-words__list li:not(:last-child):after{content:"◆";font-size:.5em}.button{display:inline-flex;justify-content:center;align-items:center;font-family:var(--font-family-headings);font-weight:var(--font-weight-medium);font-size:var(--font-size-medium);text-decoration:none;border:2px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;padding:var(--spacing-3) var(--spacing-6);transition:.25s ease-out;transition-property:color,border,background}@media screen and (min-width: 744px){.button{padding:var(--spacing-3) var(--spacing-7)}}@media screen and (min-width: 1200px){.button{padding:var(--spacing-3) var(--spacing-7) calc(var(--spacing-3) + .175rem)}}.button.small{font-size:var(--font-size-small);padding:var(--spacing-2) var(--spacing-5)}.button.large{font-size:var(--font-size-large);padding:var(--spacing-3) var(--spacing-7)}@media screen and (min-width: 744px){.button.large{padding:var(--spacing-4) var(--spacing-8)}}.button svg{width:0;height:1.5rem;transition:all .2s ease-out}.small :is(.button svg){height:1rem}.large :is(.button svg){height:2rem}@media screen and (min-width: 744px){.button svg{height:1.5rem}.small :is(.button svg){height:1rem}.large :is(.button svg){height:2rem}}@media screen and (min-width: 1200px){.button svg{height:2rem}.small :is(.button svg){height:1.5rem}.large :is(.button svg){height:2.5rem}}.button:hover svg,.button:focus-visible svg{width:2rem;margin-left:.5rem}.small :is(.button:hover svg),.small :is(.button:focus-visible svg){width:1.5rem}.large :is(.button:hover svg),.large :is(.button:focus-visible svg){width:2.5rem}.button.primary{color:var(--color-button-primary-text);background-color:var(--color-button-primary-bg);border-color:transparent}.button.primary svg path{fill:var(--color-button-primary-text)}.button.secondary{color:var(--color-button-secondary-text);border-color:var(--color-button-secondary-border)}.button.secondary svg path{fill:var(--color-button-secondary-text)}.button.inverted{color:var(--color-button-inverted-text);border-color:var(--color-button-inverted-border)}.button.inverted:focus-visible{outline-color:var(--color-neutral-50)}.button.inverted svg path{fill:var(--color-button-inverted-text)}.button:focus-visible{outline:2px solid var(--color-neutral-900);outline-offset:2px}.button-group{display:flex;flex-flow:row wrap;gap:var(--spacing-4)}.tags{display:flex;flex-flow:column wrap;gap:var(--spacing-3);list-style:none;padding:0;color:var(--color-headings)}@media screen and (min-width: 744px){.tags{flex-flow:row wrap}}.tags .tag:last-child:after{content:""}.tag{display:flex;align-items:center;gap:var(--spacing-3);font-size:var(--font-size-small);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.06rem}.tag:before{content:"◆";font-size:.5em}@media screen and (min-width: 744px){.tag:before{content:""}.tag:after{content:"◆";font-size:.5em}}.project{display:flex;flex-direction:column;gap:var(--spacing-9)}@media screen and (min-width: 1200px){.project{align-items:stretch;flex-direction:row}.project>*{flex-basis:50%}.project:nth-child(2n) .project__info{order:1;padding-left:0;padding-right:var(--spacing-7)}.project:nth-child(2n) .project__image{order:2}}.project__image{position:relative}@media screen and (min-width: 1200px){.project__image{min-height:27rem}}@media screen and (min-width: 1600px){.project__image{min-height:30rem}}.project__image img{object-fit:cover;height:100%;width:100%}@media screen and (min-width: 1200px){.project__image img{position:absolute;top:0;left:0}}.project__info{display:flex;flex-direction:column;justify-content:center;gap:var(--spacing-5);padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}@media screen and (min-width: 744px){.project__info{gap:var(--spacing-7)}}@media screen and (min-width: 1200px){.project__info{padding-left:var(--spacing-7);padding-top:var(--spacing-9);padding-bottom:var(--spacing-9)}}.project__info .tags{margin-bottom:var(--spacing-3)}.section-projects .section-heading{margin-bottom:var(--spacing-7)}.projects{display:flex;flex-direction:column;gap:var(--spacing-10)}.skill-lists{border-top:1px solid var(--color-border-default)}.skill-lists .skill-lists-heading{margin-bottom:1rem}.skill-list{list-style:none;margin:0;padding:0;display:flex;flex-flow:row wrap;gap:.5rem}.skill-list li{font-size:var(--font-size-small);padding:.5rem 1rem;border-radius:3rem;background-color:var(--color-background-subtle-alternative)}.article{display:flex;flex-direction:column;flex:1 1 100%;gap:var(--spacing-6);margin-bottom:var(--spacing-6);min-width:17.5rem}@media screen and (max-width: 320px){.article{min-width:15.5rem}}@media screen and (min-width: 744px){.article{gap:var(--spacing-7)}}@media screen and (min-width: 1200px){.article{margin-bottom:0}}.article .article__text{display:flex;flex-direction:column;gap:var(--spacing-3)}.article img{width:100%;height:auto}.section-articles{background-color:var(--color-background-subtle)}.articles__title{margin-bottom:var(--spacing-9)}.articles{display:flex;gap:var(--spacing-5);overflow-x:auto;max-width:100vw}@media screen and (min-width: 744px){.articles{flex-direction:column;gap:var(--spacing-9)}}@media screen and (min-width: 1200px){.articles{flex-direction:row}}footer{position:relative;display:flex;flex-direction:column;color:var(--color-text-footer);background-color:var(--color-background-footer);gap:var(--spacing-10);padding:var(--spacing-10) 0 0}@media screen and (min-width: 345px){footer{gap:var(--spacing-11);padding:var(--spacing-11) 0 0}}@media screen and (min-width: 744px){footer{gap:calc(var(--spacing-11) * 2);padding:calc(var(--spacing-11) * 2) var(--spacing-10) 0}}@media screen and (min-width: 1200px){footer{gap:calc(var(--spacing-11) * 2);padding:calc(var(--spacing-11) * 2) var(--spacing-10) 0}}footer .footer__title{color:var(--color-text-footer);margin-bottom:var(--spacing-9)}@media screen and (min-width: 744px){footer .footer__title{margin-bottom:var(--spacing-10)}}@media screen and (min-width: 1200px){footer .footer__title{margin-bottom:var(--spacing-11)}}@media screen and (max-width: 767px){footer .footer__title{padding-right:var(--spacing-12)}}footer .footer__bottom{border-top:1px solid var(--color-border-footer)}footer .footer__bottom__content{display:flex;flex-flow:row wrap;gap:var(--spacing-5);padding:var(--spacing-10) 0}footer .footer__links{display:flex;gap:var(--spacing-6)}footer .footer__links a{display:flex;gap:var(--spacing-2);color:var(--color-text-footer);text-decoration:none}footer .footer__links a:hover,footer .footer__links a:focus-visible{text-decoration:underline}footer svg{width:1.25rem;height:1.25rem}footer svg path{fill:var(--color-text-footer)}footer .back-to-top-link{position:absolute;right:1rem;top:1rem}@media screen and (min-width: 744px){footer .back-to-top-link{top:2rem;right:2rem}}@media screen and (min-width: 1200px){footer .back-to-top-link{top:3.75rem;right:3.75rem}}footer .back-to-top{height:4.375rem;width:auto}footer .back-to-top .circle{animation:rotate-animation 10s infinite linear;transform-origin:center}@media screen and (min-width: 744px){footer .back-to-top{height:5rem;width:auto}}@media screen and (min-width: 1200px){footer .back-to-top{height:8.75rem;width:auto}}@font-face{font-family:ClashDisplay-Variable;src:url(/assets/ClashDisplay-Variable-Buk7cB_f.woff2) format("woff2"),url(/assets/ClashDisplay-Variable-Dt2PxZhp.woff) format("woff"),url(/assets/ClashDisplay-Variable-BHZjogP3.ttf) format("truetype");font-weight:200 700;font-display:swap;font-style:normal}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}:root{--color-neutral-950: #1d1f21;--color-neutral-900: #2b2d31;--color-neutral-800: #323437;--color-neutral-700: #4a4d53;--color-neutral-300: #d5dee6;--color-neutral-200: #e9f2f9;--color-neutral-50: #fff;--color-headings: var(--color-neutral-900);--color-text: var(--color-neutral-700);--color-text-inverted: var(--color-neutral-50);--color-text-footer: var(--color-neutral-50);--color-background-main: var(--color-neutral-50);--color-background-subtle: var(--color-neutral-200);--color-background-subtle-alternative: var(--color-neutral-200);--color-background-footer: var(--color-neutral-900);--color-border-footer: var(--color-neutral-700);--color-border-default: var(--color-neutral-300);--color-button-primary-bg: var(--color-neutral-900);--color-button-primary-border: var(--color-neutral-900);--color-button-primary-text: var(--color-neutral-50);--color-button-secondary-text: var(--color-neutral-900);--color-button-secondary-border: var(--color-neutral-900);--color-button-inverted-text: var(--color-neutral-50);--color-button-inverted-border: var(--color-neutral-700);--font-family-body: "Chivo", "Helvetica Neue", Arial, sans-serif;--font-size-small: .875rem;--font-size-medium: 1rem;--font-size-large: 1.125rem;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--line-height-default: 1.5;--font-family-headings: "Clash Display", "Helvetica Neue", Arial, sans-serif;--font-size-heading-xl: 2.25rem;--font-size-heading-lg: 1.5rem;--font-size-heading-md: 1.25rem;--font-size-heading-sm: 1.125rem;--font-size-heading-xs: 1rem;--line-height-heading: 128%;--line-height-compact: 105%;--spacing-1: .125rem;--spacing-2: .25rem;--spacing-3: .5rem;--spacing-4: .75rem;--spacing-5: 1rem;--spacing-6: 1.25rem;--spacing-7: 1.5rem;--spacing-8: 1.75rem;--spacing-9: 2rem;--spacing-10: 2.5rem;--spacing-11: 3.75rem;--spacing-12: 5rem;--spacing-13: 6.25rem;--border-radius-sm: var(--spacing-3);--border-radius-md: var(--spacing-4);--border-radius-lg: var(--spacing-6)}@media (min-width: 744px){:root{--font-size-small: 1rem;--font-size-medium: 1.25rem;--font-size-large: 1.25rem}}@media (min-width: 1200px){:root{--font-size-small: 1rem;--font-size-medium: 1.25rem;--font-size-large: 1.5rem}}@media (min-width: 345px){:root{--font-size-heading-xl: 2.75rem;--font-size-heading-lg: 1.75rem;--font-size-heading-md: 1.5rem}}@media (min-width: 744px){:root{--font-size-heading-xl: 3.5rem;--font-size-heading-lg: 2.75rem;--font-size-heading-md: 2rem;--font-size-heading-sm: 1.5rem;--font-size-heading-xs: 1.125rem}}@media (min-width: 1200px){:root{--font-size-heading-xl: 6rem;--font-size-heading-lg: 4.5rem;--font-size-heading-md: 2.75rem;--font-size-heading-sm: 1.75rem;--font-size-heading-xs: 1.25rem}}[data-theme=dark]{--color-background-main: var(--color-neutral-900);--color-background-subtle: var(--color-neutral-800);--color-background-subtle-alternative: var(--color-neutral-950);--color-background-footer: var(--color-neutral-950);--color-headings: var(--color-neutral-50);--color-text: var(--color-neutral-200);--color-text-inverted: var(--color-neutral-900);--color-border-default: var(--color-neutral-700);--color-button-primary-bg: var(--color-neutral-200);--color-button-primary-border: var(--color-neutral-200);--color-button-primary-text: var(--color-neutral-950);--color-button-secondary-text: var(--color-neutral-200);--color-button-secondary-border: var(--color-neutral-200)}*:focus-visible{outline:2px solid var(--color-headings);outline-offset:2px}html{scroll-behavior:smooth}body{font-family:var(--font-family-body);font-weight:var(--font-weight-light);line-height:var(--line-height-default);color:var(--color-text);background-color:var(--color-background-main)}main{overflow:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-headings);line-height:var(--line-height-heading);color:var(--color-headings)}.heading-xl{font-size:var(--font-size-heading-xl);font-weight:var(--font-weight-light);line-height:var(--line-height-compact)}h1,.heading-lg{font-size:var(--font-size-heading-lg);font-weight:var(--font-weight-regular)}h2,.heading-md{font-size:var(--font-size-heading-md);font-weight:var(--font-weight-medium)}h3,.heading-sm{font-size:var(--font-size-heading-sm);font-weight:var(--font-weight-medium)}.section-heading{font-family:var(--font-family-headings);font-size:var(--font-size-heading-xs);font-weight:var(--font-weight-medium);color:var(--color-headings);text-transform:uppercase;letter-spacing:.06rem}p,.text-large{font-size:var(--font-size-large)}.text-medium{font-size:var(--font-size-medium)}.text-small{font-size:var(--font-size-small)}.grid-container{display:grid;grid-template-columns:repeat(1,1fr);gap:1rem;max-width:1600px;width:100%;margin:0 auto;padding:0 var(--spacing-4)}@media (min-width: 345px){.grid-container{padding:0 var(--spacing-6)}}.grid-container .grid-container{padding:0}@media (min-width: 744px){.grid-container{grid-template-columns:repeat(4,1fr);gap:2rem}}@media (min-width: 1200px){.grid-container{grid-template-columns:repeat(12,1fr);padding:0}}.col-1{grid-column:span 1}.col-2{grid-column:span 12}.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{grid-column:span 1}@media (min-width: 744px) and (max-width: 1200px){.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{grid-column:span 4}}@media (min-width: 1200px){.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-10{grid-column:span 10}.col-11{grid-column:span 11}.col-12{grid-column:span 12}}.align-center{align-items:center}.justify-space-between{justify-content:space-between}.section-spacing-vertical{padding-top:var(--spacing-10);padding-bottom:var(--spacing-10)}@media (min-width: 744px){.section-spacing-vertical{padding-top:var(--spacing-11);padding-bottom:var(--spacing-11)}}@media (min-width: 1200px){.section-spacing-vertical{padding-top:var(--spacing-12);padding-bottom:var(--spacing-12)}}.section-spacing-horizontal{padding-left:var(--spacing-3);padding-right:var(--spacing-3)}@media screen and (min-width: 744px){.section-spacing-horizontal{padding-left:calc(var(--spacing-10) + 5vw);padding-right:calc(var(--spacing-10) + 5vw)}}@media screen and (min-width: 1200px){.section-spacing-horizontal{padding-left:var(--spacing-11);padding-right:var(--spacing-11)}}.border-radius-lg{border-radius:var(--border-radius-lg)}
