@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@200;300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@200;300;400;600;700;800;900&display=swap";@import"https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@300;400;500;600;700&display=swap";:root{--b-blue:#0070f3;--b-blue-black:#2b353f;--theme:#afd4f2;--theme-light-0:#fdffff;--theme-light:#dfefff;--accent-light:#56cbf9;--accent:#0070f3;--accent-dark:#003fc7;--header-scroll:rgba(253,255,255,.9);--text-highlight:#191f25;--text:#2b353f;--text-light:#3a4856;--input-highlight:rgba(86,203,249,.224);--input-border:#a8b4b7;--input-border-active:rgba(36,69,86,.688);--hover:#f5fafa;--btn-hover:#0065d9;--btn-active:#056ade;--highlight:#dbf3fb;--highlight-active:#c0edff;--line:#a8b4b7;--shadow:#00479725;--shadow-light:hsla(192,8%,61%,.074);--carousel-shadow:#001a383f;--loading:#fdffff;--stack-hover:#00ade7;--h2-background:#2b353f}:root.dark{--b-blue:#00ade7;--b-blue-black:#00ade7;--theme:#040f16;--theme-light-0:#0b202b;--theme-light:#0b202b;--accent-light:#00ade7;--accent:#0094c6;--accent-dark:#0078a0;--btn-hover:rgba(0,166,221,.086);--btn-active:rgba(0,166,221,.137);--header-scroll:rgba(10,28,38,.925);--line:#2b3f46;--text-highlight:#cbdcdf;--text:#b4c5cb;--text-light:#8d9a9c;--input-highlight:rgba(65,189,238,.344);--shadow:#00090c;--shadow-light:#001319;--carousel-shadow:rgba(0,19,25,.643);--loading:#00ade7;--stack-hover:#ffbf00;--h2-background:#fdffff}html{scroll-behavior:smooth}.layout{overflow:hidden}*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}*{font-family:IBM Plex Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif}body{background-color:var(--theme);display:flex;flex-direction:column;transition:background-color .25s ease;overflow-x:hidden!important;text-rendering:optimizeSpeed;line-height:1.5}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}ol[role=list],ul[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}button,input,select,textarea{font:inherit}@keyframes background-pan{0%{background-position:0}to{background-position:-200%}}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}section button{font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;padding:.75rem 2rem;font-weight:500;background-color:var(--accent);color:#fff;border-radius:.35rem;cursor:pointer;box-shadow:0 .25rem .5rem 0 rgba(0,96,206,.39);border:none;outline:none;transition:background-color .25s ease,color .25s ease,box-shadow .25s ease}section button:active{background-color:var(--btn-active)}section button:not(:disabled):hover{box-shadow:0 .25rem 1rem 0 rgba(0,118,255,.39)}section :is(p,span) a{color:var(--accent);font-weight:500;text-decoration:none;position:relative;white-space:nowrap;outline-offset:1px!important;transition:color .25s ease}section :is(p,span) a:after{pointer-events:none;position:absolute;content:"";background:currentColor;width:100%;height:.05rem;bottom:0;left:0;transform:translateY(.1rem);transition:transform .1s ease}section :is(p,span) a:is(:hover,:focus-visible):after{transform:translateY(0)}section span.extra-info{font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;color:var(--text-light);opacity:.9;font-size:13.5px!important;margin-top:1rem;display:block}:root.dark section button{background-color:var(--theme);color:var(--accent);box-shadow:inset 0 0 0 .05rem var(--accent)}:root.dark section button:hover{background:var(--btn-hover)}:root.dark section button:active{background:var(--btn-active)}:root.dark section :is(p,span) a{color:var(--accent-light)}@media screen and (max-width:768px){section span.extra-info{text-align:center}}:focus-visible{outline:2px dashed var(--accent);outline-offset:7.5px;transition:scale .25s ease}.header{transition:top .15s ease-in,background-color .15s ease-in,display .15s ease-in ease 2s,box-shadow .35s ease-in;z-index:100}.header *{color:var(--text)}.header.sticky{position:-webkit-sticky;position:sticky;top:-.1px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 0 .5rem var(--shadow);transition:background-color .25s ease}.navigation{padding:1.25rem 1.75rem;display:flex;margin-inline:auto}.navigation .logo{margin-right:auto;position:relative}.navigation .logo svg{position:absolute;top:0;height:40px;width:60px}.navigation ul>li>.flagsSelect{padding-bottom:0}.navigation ul>li>.flagsSelect button>span{margin:1px 0}.navigation__links{z-index:90;display:flex;gap:.75rem;list-style-type:none;margin:0;padding:0;align-items:center}.navigation__links li{cursor:pointer;padding:0 .15rem}.navigation__links li a{font-size:.9rem;text-transform:uppercase;font-weight:400;text-decoration:none;opacity:.8;transition:color .25s ease,opacity .25s ease}.navigation__links li a:is(:hover,.active){color:var(--accent);opacity:1}.navigation__links .navigation__linkResume{padding-left:1rem}.navigation__links .navigation__linkResume a{opacity:1}.navigation__links .navigation__linkResume a button{color:#fff;border:none;padding:.35rem 1rem;border-radius:.25rem;background-color:var(--accent);cursor:pointer;opacity:1;margin:0;transition:background-color .25s ease,box-shadow .25s ease}.navigation__links .navigation__linkResume a button:hover{background-color:var(--theme-light-0);color:var(--accent);box-shadow:inset 0 0 0 .05rem var(--accent)}:root.dark .navigation__links li a:is(:hover,.active){color:var(--accent-light)}:root.dark .navigation__linkResume{padding-left:1rem}:root.dark .navigation__linkResume a button{background-color:var(--theme);color:var(--accent);box-shadow:inset 0 0 0 .05rem var(--accent)}:root.dark .navigation__linkResume a button:hover{background-color:var(--btn-hover)}:root.dark .navigation__linkResume a button:active{background-color:var(--btn-active)}.m_navigation{padding:1.25rem 1.75rem;display:flex;align-items:center;margin-inline:auto;min-height:64px}.m_navigation .logo{margin-right:auto;position:relative}.m_navigation .logo svg{height:40px;width:50px;position:absolute;top:0;transform:translateY(-10px)}.m_navigation .flagsSelect{padding-bottom:0;margin-right:1rem}.m_navigation .flagsSelect button>span{margin:1px 0}.m_navigation__toggle{background:none;margin-left:1rem;border:none;width:1.5rem;padding:0;cursor:pointer}.m_navigation__toggle .hamburger{height:2rem;position:relative}.m_navigation__toggle .hamburger:after,.m_navigation__toggle .hamburger:before{content:"";position:absolute;left:0;height:.05rem;width:100%;background-color:var(--text);transition:transform .25s ease,top .25s ease,bottom .25s ease}.m_navigation__toggle .hamburger:before{top:25%;transform:rotate(0deg) translateY(0)}.m_navigation__toggle .hamburger:after{bottom:25%;transform:rotate(0deg) translateY(0)}.m_navigation__links{z-index:99;position:fixed;list-style:none;background-color:var(--theme);margin:0;top:5rem;left:0;overflow:hidden;pointer-events:none;width:100%;height:0;padding:0;transition:height .3s ease-in .25s}.m_navigation__links>li.social-links{display:flex;margin:2rem;gap:.8rem;overflow:hidden}.m_navigation__links>li.social-links a{padding-top:.5rem;padding-inline:.25rem;border-radius:.25rem;opacity:0;transform:translateY(1.5rem)}.m_navigation__links>li.social-links a *{color:var(--text);transition:color .25s ease-in}.m_navigation__links>li.social-links a:first-child{margin-left:auto}.m_navigation__links>li.social-links a:hover *{color:var(--text-highlight)}.m_navigation__links>li.social-links svg{font-size:1.5rem}.m_navigation__links li:not(.social-links){transition:transform .45s ease-out,opacity .25s ease,margin-bottom .35s ease;display:flex;border-bottom:1px solid var(--line);margin-inline:2rem;transform:translateY(-1rem) rotateX(10deg);opacity:0}.m_navigation__links li:not(.social-links):first-of-type{margin-top:1rem}.m_navigation__links li:not(.social-links) a{width:100%;text-decoration:none;padding:.5rem .5rem .75rem;font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;font-weight:600;position:relative}.m_navigation__links li:not(.social-links) a.active{color:var(--accent)}.m_navigation__links li:not(.social-links) a:before{position:absolute;content:"";height:100%;width:.12rem;background:var(--accent);top:0;left:0;opacity:0;border-radius:.2rem;transform:translateX(-.75rem) scaleY(.75);transition:opacity .25s}.m_navigation__links li:not(.social-links) a.active:before{opacity:.5;transition:transform .35s ease .15s}.m_navigation__links *{font-size:18px}.m_navigation__links .navigation__linkResume{padding:0!important;border:0!important;margin-top:2.5rem}.m_navigation__links .navigation__linkResume a{padding:0!important}.m_navigation__links .navigation__linkResume a button{color:#fff;font-weight:400;padding:.35rem 1rem;border-radius:.25rem;background-color:var(--accent);cursor:pointer;opacity:1;border:1px solid var(--accent);margin:0;width:100%;box-shadow:0 .25rem .5rem 0 rgba(0,96,206,.39);transition:background-color .25s ease,box-shadow .25s ease}.m_navigation__links .navigation__linkResume a button:hover{box-shadow:0 .25rem 1rem 0 rgba(0,118,255,.39)}.m_navigation__links .navigation__linkResume a:active{background-color:var(--btn-active)}.m_navigation__toggle.active .hamburger:before{top:47.5%;transform:rotate(45deg)}.m_navigation__toggle.active .hamburger:after{bottom:47.5%;transform:rotate(-45deg)}.m_navigation__toggle.active+.m_navigation__links{transition:height .5s ease-out;opacity:1;pointer-events:all;height:calc(100vh - 4rem)}.m_navigation__toggle.active+.m_navigation__links li:not(.social-links){transition:transform .45s ease-out .15s,opacity .25s ease,margin-bottom .25s ease;margin-bottom:1rem;opacity:1;transform:translateY(0) rotateX(0deg)}.m_navigation__toggle.active+.m_navigation__links li:not(.social-links) a.active:before{transform:translateX(-1rem) scaleY(.8)}.m_navigation__toggle.active+.m_navigation__links li.social-links a{opacity:1;transform:translateX(0)}:root.dark .m_navigation .navigation__linkResume a button{box-shadow:none}.sidebar{background-color:var(--theme-light-0);box-shadow:0 0 0 .05rem var(--line);border-radius:.25rem;position:fixed;transform:translateY(-50%);top:50%;left:.5rem;transition:background-color .25s ease,box-shadow .25s ease;z-index:50}.sidebar__links{margin:0;padding:.35rem;list-style-type:none;width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column;gap:.5rem}.sidebar__item{padding-inline:.25rem;display:flex;border-radius:.25rem;align-items:center;justify-content:center;color:var(--text);transition:background .25s ease,background-color .25s ease,color .25s ease,scale .15s ease,box-shadow .15s ease}.sidebar__item:active{background-color:var(--highlight-active);scale:.95}.sidebar__item:has(a:focus-within),.sidebar__item:hover{background:linear-gradient(to top,var(--highlight),var(--theme-light-0));box-shadow:0 0 0 .05rem var(--line);color:var(--text-highlight)}.sidebar__item a:first-child{font-size:1.5rem;color:currentColor}.sidebar__item a .sidebar__label{display:none}.sidebar__item:has(a:focus-within) a{outline:none}:root.dark .sidebar{box-shadow:none}:root.dark .sidebar__item{color:var(--text)}:root.dark .sidebar__item:has(a:focus-within),:root.dark .sidebar__item:hover{background:none;box-shadow:none;color:var(--text-highlight);scale:1.05}:root.dark .sidebar__item a:focus-visible{outline:2px dashed var(--accent);outline-offset:2.5px;border-radius:0}section{max-width:calc(1000px + 5rem);margin-top:5rem;padding-top:5rem;margin-inline:auto;padding-right:3.75rem;padding-left:4rem}section li,section p,section span{color:var(--text-light);font-size:clamp(15px,2.5vw,16px)!important}section b{color:var(--text)}section .b-blue{color:var(--b-blue)}section .b-blue-black{color:var(--b-blue-black)}section p{margin-top:1rem;line-height:1.6;font-size:1.05rem}section h2{color:var(--text);font-size:1.75rem}section :is(h3,h4,h5){color:var(--text)}section :is(h1,h2,h3,h4,h5){font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;font-weight:800}section>header{display:flex;align-items:center;gap:1rem}section>header h2{width:max-content}section>header:after{content:"";background-color:var(--highlight-active);height:.05rem;flex:1 1;max-width:30rem;transition:background-color .25s ease}:root.dark section header:after{background-color:var(--theme-light-0)}@media screen and (max-width:768px){section{padding-inline:2rem}}.hero{margin-top:0;min-height:calc(100vh - 7rem);padding-top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;inset:0}.hero #canvas{z-index:0;position:absolute;width:100vw;height:100vh}.hero>.section-wrapper{display:flex;flex-direction:column;justify-content:center}.hero>.section-wrapper .hero__image{flex:var(--image-ratio);display:flex;justify-content:center}.hero>.section-wrapper .hero__image img{min-width:220px;width:40%;height:max-content;box-shadow:0 0 0 .025rem var(--line),0 .25rem .5rem 0 var(--shadow);background-color:var(--theme-light-0);border-radius:50%;object-fit:contain;transition:box-shadow .15s ease,scale .25s ease;scale:1.0025}.hero>.section-wrapper .hero__image img:hover{scale:1.1;box-shadow:0 0 0 .025rem var(--line),0 .25rem 1rem 0 var(--shadow)}.hero>.section-wrapper h1{font-weight:600;font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;font-size:18px;padding:0;margin-top:2rem;color:var(--text-light)}.hero>.section-wrapper h2{--min-fs:37.5px;background:linear-gradient(to right,var(--accent-dark),var(--accent),var(--accent-dark));background-size:200%;background-clip:text;color:transparent;-webkit-background-clip:text;-webkit-text-fill-color:transparent;white-space:break-spaces;margin:1rem 0;width:-moz-fit-content;width:fit-content;animation:background-pan 10s linear infinite}.hero>.section-wrapper h2,.hero>.section-wrapper h3{line-height:1.1;font-size:clamp(var(--min-fs),6vw,4rem)}.hero>.section-wrapper h3{--min-fs:35px}.hero>.section-wrapper p{margin-top:0;margin-bottom:2rem;font-size:1rem!important;width:min(500px,100%);color:var(--text)}.hero>.section-wrapper a{width:-moz-fit-content;width:fit-content;z-index:1}:root.dark .section-wrapper .hero__image img{box-shadow:0 0 0 .05rem var(--theme-light-0),0 0 .5rem var(--shadow);background:linear-gradient(var(--theme),40%,var(--theme-light-0))}:root.dark .section-wrapper .hero__image img:hover{box-shadow:0 0 0 .05rem var(--accent),0 0 .5rem var(--shadow)}@media screen and (max-width:600px){.hero>.section-wrapper>h1{font-size:16px}}.featuredProjects{margin-top:3rem}.featuredProject__container{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:.75rem;gap:.75rem;position:relative;isolation:isolate;--left-grid-pos:1/8;--right-grid-pos:7/13}.featuredProject__container:not(:last-child){margin-bottom:5rem}.featuredProject__container:hover .featuredProject__image>a>img{border:3px solid var(--stack-hover)}.featuredProject__container .featuredProject__content{display:flex;flex-direction:column;justify-content:center;grid-row:-1/1;grid-column:var(--left-grid-pos)}.featuredProject__container .featuredProject__content h3{font-size:25px;margin-bottom:1rem;background:linear-gradient(to right,var(--text),var(--text-highlight));background-clip:text;-webkit-background-clip:text;color:transparent}.featuredProject__container .featuredProject__content p{--dynamic-fade-color:var(--accent-light);background-color:var(--theme-light);padding:1rem;border-radius:.25rem;position:relative;transition:box-shadow .15s ease,background-color .25s ease}.featuredProject__container .featuredProject__content p:before{position:absolute;content:"";width:100%;height:100%;border-radius:inherit;top:0;left:0;opacity:0;transition:opacity .5s;background:radial-gradient(800px circle at var(--mouse-x) var(--mouse-y),var(--dynamic-fade-color),transparent 30%)}.featuredProject__container .featuredProject__content p:hover:before{opacity:.1}.featuredProject__container .featuredProject__techStack{display:flex;gap:1rem;list-style-type:none;padding:0}.featuredProject__container .featuredProject__techStack li{font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;color:var(--accent-light)}.featuredProject__container .featuredProject__links{display:flex;gap:1rem}.featuredProject__container .featuredProject__links a{font-size:1.25rem;color:var(--text);transition:color .25s ease;outline-offset:3px}.featuredProject__container .featuredProject__links a:hover{color:var(--accent)}.featuredProject__container .featuredProject__image{grid-row:-1/1;grid-column:var(--right-grid-pos);position:relative;border-radius:1rem;box-shadow:0 .25rem .5rem var(--shadow-light);overflow:hidden;z-index:-2;height:-moz-fit-content;height:fit-content;transition:box-shadow .25s ease}.featuredProject__container .featuredProject__image:after{position:absolute;content:"";top:0;opacity:.75;mix-blend-mode:multiply;height:100%;width:100%;transition:opacity .25s ease .15s}.featuredProject__container .featuredProject__image img{height:-moz-fit-content;height:fit-content;opacity:.9;transition:filter .25s ease 0s;border:3px solid var(--theme);border-radius:1rem}.featuredProject__container .featuredProject__image a:before{content:"";z-index:1;position:absolute;inset:0}.featuredProject__container .featuredProject__image:hover:after{transition:opacity .25s ease .15s;opacity:0}.featuredProject__container .featuredProject__image:hover img{transition:filter .25s ease 0s;filter:grayscale(0)}.featuredProject__container:nth-child(odd) .featuredProject__content{grid-column:var(--right-grid-pos)}.featuredProject__container:nth-child(odd) .featuredProject__content h3,.featuredProject__container:nth-child(odd) .featuredProject__content p{text-align:right}.featuredProject__container:nth-child(odd) .featuredProject__techStack{flex-direction:row-reverse}.featuredProject__container:nth-child(odd) .featuredProject__links{align-self:flex-end}.featuredProject__container:nth-child(odd) .featuredProject__image{grid-column:var(--left-grid-pos)}:root:not(.dark) .featuredProject__container .featuredProject__content p{--dynamic-border-color:var(--accent);--dynamic-fade-color:transparent;box-shadow:0 0 0 .05rem var(--shadow);background:var(--theme-light)}:root:not(.dark) .featuredProject__container .featuredProject__content p:hover{box-shadow:0 0 0 .05rem var(--shadow),0 0 .75rem var(--shadow-light)}:root:not(.dark) .featuredProject__container .featuredProject__content .featuredProject__techStack li{color:var(--accent)}:root:not(.dark) .featuredProject__container .featuredProject__image:after{background:none!important}:root:not(.dark) .featuredProject__container .featuredProject__image img{filter:grayscale(0)}@media screen and (max-width:900px){.featuredProject__container{--left-grid-pos:1/9;--right-grid-pos:5/13}}@media screen and (max-width:768px){.featuredProject__container:is(:nth-child(2n),:nth-child(odd)){display:grid;grid-template-columns:1fr;grid-template-rows:repeat(5,minmax(1fr));grid-gap:0;gap:0;border-radius:.25rem;overflow:hidden;margin-bottom:5rem;max-width:500px;margin-inline:auto;box-shadow:0 0 0 .05rem var(--line)}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content{grid-column:-1/1;grid-row:3/span 5;padding:1rem;box-shadow:inset 0 var(--height,-255px) 2.5rem var(--theme);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);transition:box-shadow .25s ease}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content h3{width:-moz-fit-content;width:fit-content}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content h3,.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content p{text-align:left;margin-bottom:0}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content p{background:none!important;border-radius:0;box-shadow:unset!important;padding:0}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content p:after,.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__content p:before{display:none}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__techStack{flex-direction:row;margin-block:.5rem}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__techStack li{font-weight:600}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__links{align-self:flex-start}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__image{grid-column:-1/1;grid-row:1/span 3}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__image:after{opacity:0}.featuredProject__container:is(:nth-child(2n),:nth-child(odd)) .featuredProject__image img{filter:grayscale(0);opacity:.9}:root:not(.dark) .featuredProject__container{box-shadow:0 0 0 .05rem var(--shadow),0 0 1rem var(--shadow-light)}:root:not(.dark) .featuredProject__container .featuredProject__content{box-shadow:inset 0 var(--height,-240px) 2.5rem var(--theme-light-0)}:root:not(.dark) .featuredProject__container img{opacity:1}}.projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1rem;gap:1rem;padding:0;-webkit-margin-after:0;margin-block-end:0}.projectCard{list-style:none;position:relative;background-color:var(--line);border-radius:.5rem;overflow:hidden;box-shadow:0 0 .25rem var(--shadow-light),0 0 0 .05rem var(--shadow);transition:box-shadow .25s ease}.projectCard:hover{box-shadow:0 0 .75rem var(--shadow-light),0 0 0 .05rem var(--shadow)}.projectCard__container{padding:1.5rem;background-color:var(--theme-light-0);height:100%;display:grid;grid-template-rows:repeat(2,1fr);position:relative;isolation:isolate;transition:background-color .25s ease}.projectCard__techStack{list-style:none;padding:0;display:flex;gap:.75rem;margin-top:1rem}.projectCard__techStack li{font-size:.9rem!important}.projectCard__wrapper1{grid-row:1/span 1}.projectCard__wrapper1 header{display:flex;justify-content:space-between}.projectCard__wrapper1 header .projectCard__icon{font-size:35px;color:var(--accent);border-radius:.15rem}.projectCard__wrapper1 header .projectCard__icon.ror{color:#a02a44}.projectCard__wrapper1 header .projectCard__icon.js{color:#f7d803;background-color:#040f16}.projectCard__wrapper1 header .projectCard__icon.react{color:#27b6de}.projectCard__wrapper1 header .project__links{display:flex;gap:.25rem;height:-moz-fit-content;height:fit-content;align-self:flex-end;z-index:2}.projectCard__wrapper1 header .project__links a{color:var(--text);font-size:1.5rem;outline-offset:1px}.projectCard__wrapper1 header .project__links a :first-of-type{padding:.2rem;border-radius:.25rem;transition:.15s ease}.projectCard__wrapper1 header .project__links a:hover{color:var(--text-highlight)}.projectCard__wrapper1 header .project__links a:hover :first-of-type{background:linear-gradient(var(--theme-light-0),80%,var(--highlight));box-shadow:0 0 0 .05rem var(--line)}.projectCard__wrapper1 .projectCard__techStack{margin-top:.15rem}.projectCard__wrapper1 .projectCard__techStack li{color:var(--accent)}.projectCard__wrapper2{text-decoration:none;grid-row:2/span 1}.projectCard__wrapper2:before{content:"";position:absolute;inset:0;z-index:1}.projectCard__wrapper2 .projectCard__content p{margin-top:0}:root.dark .projectCard{box-shadow:none}:root.dark .projectCard__container{isolation:isolate}:root.dark .projectCard__container:before{z-index:-1;content:"";border-radius:inherit;position:absolute;width:100%;height:100%;left:0;top:0;opacity:0;background:radial-gradient(800px circle at var(--mouse-x) var(--mouse-y),var(--accent-light),transparent 40%);transition:.5s}:root.dark .projectCard__container:hover:before{opacity:.1}:root.dark .projectCard__wrapper1 header .project__links a:hover :first-of-type{box-shadow:0 0 0 .05rem var(--accent);background:none}@media screen and (max-width:768px){:root.dark .projectCard__container:before{background:none}}.about__container{--content-ratio:7;--image-ratio:3;display:flex;gap:1rem}.about__container .about__content{flex:var(--content-ratio)}.about__container .about__techList{list-style-type:none}.about__container .about__techList li{position:relative;cursor:default;transition:color .1s ease,scale .2s ease}.about__container .about__techList li:before{content:"";position:absolute;height:45%;aspect-ratio:1/1;left:-1.5rem;top:50%;transform:translateY(-50%);box-shadow:inset 0 0 0 .1rem var(--accent)}.about__container .about__techList li:hover{color:var(--text-highlight);scale:1.0025}.about__container .about__techList li:hover:before{box-shadow:inset 0 0 0 .1rem var(--accent-dark)}:root.dark .about__container .about__techList li:hover:before{box-shadow:inset 0 0 0 .1rem var(--accent-light);background-color:var(--btn-active)}@media screen and (max-width:900px){.about__container{--content-ratio:6;--image-ratio:4}}@media screen and (max-width:768px){.about__container{flex-direction:column;gap:2.5rem}.about__container .about__image{display:flex;justify-content:center;padding-inline:2rem}.about__container .about__image img{max-width:20rem}}.contact{display:flex;flex-direction:column;margin-bottom:9rem}.contact>p{text-align:center;max-width:40rem;align-self:center}.contactForm__container{display:flex;flex-direction:column;align-items:center;margin-top:4rem}.contactForm{--success:#01b307;--error:#ff2f24;padding:1rem;box-shadow:0 0 0 .05rem var(--line);background-color:var(--header-scroll);border-radius:.25rem;width:100%;max-width:30rem;display:flex;flex-direction:column;gap:1rem;position:relative;transition:background-color .25s ease,box-shadow .25s ease}.contactForm>.error,.contactForm>.success{border-radius:.25rem;color:#fff;padding:.35rem .5rem;height:1.85rem;font-size:.8rem;width:80%;position:absolute;left:50%;text-align:center;transform:translateX(-50%)}.contactForm>.error{background-color:var(--error)}.contactForm>.success{background-color:var(--success)}.contactForm label{font-size:.9rem;color:var(--text-light)}.contactForm label span{color:var(--text-highlight);font-size:900;opacity:.75;transition:color .15s ease}.contactForm label span.error{color:var(--error)}.contactForm :is(input,textarea){resize:none;width:100%;border:.05rem solid var(--line);box-shadow:0 0 0 .0125rem var(--input-border);padding:.5rem .75rem;background-color:#fff;border-radius:.25rem;outline:none;font-size:.85rem;transition:box-shadow .25s ease}.contactForm :is(input,textarea):is(:focus,:focus-within){box-shadow:0 0 0 .025rem var(--input-border-active),0 0 0 .25rem var(--input-highlight)}.contactForm :is(input,textarea):is(:active){box-shadow:0 0 0 .025rem var(--input-border-active)}.contactForm :is(input,textarea).invalid:is(:focus,:focus-within){box-shadow:0 0 0 .025rem var(--input-border-active),0 0 0 .25rem rgba(255,0,0,.2)}.contactForm :is(input,textarea).invalid{border:1px solid var(--error)}.contactForm button{padding:.5rem .75rem;display:flex;align-items:center;justify-content:center;gap:1rem;box-shadow:none!important;transition:opacity .25s ease}.contactForm button:disabled{opacity:.8}:root.dark .contactForm{--error:#e9423a;--success:#12a117;background-color:var(--theme);box-shadow:0 0 0 .025rem var(--accent-light)}:root.dark .contactForm :is(input,textarea){background-color:var(--theme-light-0);border:1px solid transparent;color:var(--text-highlight);box-shadow:none}:root.dark .contactForm :is(input,textarea)::placeholder{color:var(--text-light);opacity:.8}:root.dark .contactForm :is(input,textarea):is(:focus,:focus-within){box-shadow:0 0 0 .25rem var(--input-highlight)}:root.dark .contactForm :is(input,textarea).invalid{border:1px solid var(--error)}:root.dark .contactForm :is(input,textarea).invalid:is(:focus,:focus-within){box-shadow:0 0 0 .025rem var(--input-border-active),0 0 0 .25rem rgba(195,49,0,.371)}:root.dark .contactForm input:-webkit-autofill,:root.dark .contactForm input:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s;transition:background-color 600000s 0s,color 600000s 0s}:root.dark .contactForm button{box-shadow:inset 0 0 0 .05rem var(--accent)!important}:root.dark .contactForm button:disabled{opacity:.5}#skip-to-content{color:var(--theme);background-color:var(--accent);text-decoration:none;padding:.75rem 1.2rem;border-radius:.25rem;top:.1rem;left:.1rem;outline:none;position:fixed;z-index:120;transition:scale .25 ease}#skip-to-content:active{scale:.1}:root.dark #skip-to-content{color:var(--accent);box-shadow:0 0 0 .1rem var(--accent);background-color:var(--theme)}@keyframes scaleUp{0%{transform:translateY(100%)}to{transform:translateY(15%)}}.stacks__grid{display:grid;justify-items:center;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));grid-gap:1rem 4.8rem;gap:1rem 4.8rem;padding:0;-webkit-margin-after:0;margin-block-end:0}.stackCard{display:flex;justify-content:center;height:7rem;width:6rem;list-style:none;position:relative;border-radius:.5rem;transition:box-shadow .25s ease}.stackCard .stack{opacity:.5;transition:.2s ease}.stackCard h2{opacity:0;z-index:0;position:absolute;transform:translateY(212%);background:var(--h2-background);padding:.2rem 1rem;border-radius:8px;text-align:center;font-size:1rem;font-weight:500;white-space:nowrap;color:var(--theme)}.stackCard h2:before{content:"";z-index:-1;bottom:-5px;position:absolute;width:0;height:0;border-left:25px solid transparent;border-right:25px solid transparent;border-top:25px solid var(--h2-background);transform:translateX(-50%);left:50%}.stackCard:hover .stack{opacity:1;transition:.2s ease}.stackCard:hover h2{opacity:1;z-index:3;transform:translateY(10%);animation:scaleUp .5s ease-in-out forwards}.stackCard:hover .stackCard__container>.stackCard__icon{transition:.2s ease;opacity:1}.stackCard__container{height:100%;width:100%;display:grid;align-items:center;grid-template-rows:repeat(1,1fr);position:relative;justify-content:center;align-items:end}.stackCard__container .stackCard__icon.custom-color{color:var(--text-highlight);opacity:.5;transition:.2s ease}@media screen and (max-width:768px){:root.dark .stackCard__container:before{background:none}}.testimonialCard{width:20rem;box-shadow:0 0 0 .05rem var(--line);background-color:var(--theme-light-0);border-radius:.5rem;overflow:hidden;isolation:isolate;margin-inline:auto;transition:background-color .25s ease,box-shadow .25s ease}.testimonialCard__content{padding:1.5rem 1.5rem 3.5rem;position:relative;z-index:2}.testimonialCard__content blockquote{position:relative}.testimonialCard__content blockquote p{font-size:.9rem!important;font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif;line-height:1.4;margin-top:.5rem}.testimonialCard__content blockquote p:first-of-type:before{color:var(--accent);content:open-quote;font-size:5em;line-height:.09em;margin-right:.05em;vertical-align:-.4em;opacity:.5}.testimonialCard__content blockquote p:first-of-type:after{content:close-quote;opacity:0}.testimonialCard__content .testimonialCard__image{position:absolute;border-radius:50%;overflow:hidden;bottom:0;right:.5rem;transform:translateY(50%);box-shadow:0 0 0 .15rem var(--accent);transition:box-shadow .25s ease}.testimonialCard__content .testimonialCard__image:hover{box-shadow:0 0 0 .15rem var(--accent-light)}.testimonialCard__content .testimonialCard__image img{aspect-ratio:1}.testimonialCard__header{padding:2rem 1rem 1rem;position:relative;isolation:isolate}.testimonialCard__header div{color:var(--theme);font-size:.75rem;font-family:Nunito Sans,system-ui,-apple-system,blinkmacsystemfont,Segoe UI,roboto,oxygen,ubuntu,cantarell,Helvetica Neue,sans-serif}.testimonialCard__header h3{color:var(--theme-light-0)}.testimonialCard__header div,.testimonialCard__header h3{transition:color .25s ease}.testimonialCard__wave{position:absolute;bottom:0;left:0;height:calc(100% + 3rem);display:block;z-index:-1}.testimonialCard__wave path{fill:var(--accent);transition:fill .25s ease}:root.dark .testimonialCard{box-shadow:none}:root.dark .testimonialCard__content .testimonialCard__image{box-shadow:0 0 0 .15rem var(--accent-light)}:root.dark .testimonialCard__content .testimonialCard__image:hover{box-shadow:0 0 0 .15rem var(--accent)}:root.dark .testimonialCard__content blockquote p{color:var(--text)}:root.dark .testimonialCard__content blockquote p:first-of-type:before{color:var(--accent);opacity:1}:root.dark .testimonialCard__header div,:root.dark .testimonialCard__header h3{color:var(--theme)}:root.dark .testimonialCard__wave path{fill:var(--accent-light)}@media screen and (max-width:500px){.testimonialCard{width:17.5rem}}.testimonials__swiper{overflow:hidden;padding-bottom:2rem;margin-top:1rem;position:relative;height:500px}.testimonials__swiper:before{pointer-events:none;content:"";position:absolute;top:0;height:100%;width:100%;z-index:2;box-shadow:inset 0 .2rem .5rem .5rem var(--theme);transition:box-shadow .25s ease}.swiper{margin-top:1rem;pointer-events:all;overflow:visible!important}.swiper-slide{margin-block:auto;display:flex;border-radius:.25rem!important;width:-moz-fit-content!important;width:fit-content!important}.swiper-pagination{bottom:-2rem!important}.swiper-pagination-bullet{transition:background-color .25s ease}.swiper-slide-shadow-left{background-image:linear-gradient(to left,var(--carousel-shadow),40%,transparent)!important}.swiper-slide-shadow-right{background-image:linear-gradient(to right,var(--carousel-shadow),40%,transparent)!important}:root.dark .swiper-pagination-bullet{background-color:var(--accent)!important}@media screen and (max-width:768px){.testimonials__swiper{overflow:visible}.testimonials__swiper:before{display:none}}#c-mask,#curved-h-mask,#period,#vertical-h-mask{fill:var(--accent);stroke:var(--accent);transition:fill .25s ease}#logo-img{transition:box-shadow .15s ease,scale .25s ease;scale:1}#logo-img:hover{scale:1.08}@media screen and (max-width:768px){.navigation,.sidebar{opacity:0}}