*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;line-height:1.5}ul,ol{list-style:none}a{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none}button{background:none;border:none;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}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}body{color:#d4d4d4;font-family:verdana,geneva,tahoma,sans-serif;font-size:1rem;font-weight:400}:root{background-color:#0a0a0a;scroll-behavior:smooth}@supports not selector(::-webkit-scrollbar){:root{scrollbar-color:oklch(55.6% 0 0deg) oklch(37.1% 0 0deg)}}.background{inset:0;position:fixed;z-index:-1;background-color:#111;background-image:linear-gradient(32deg,oklch(13.44% 0 0deg / .74) 30px,transparent);background-position:-5px -5px;background-size:3.75rem 3.75rem}.background:before{background-image:radial-gradient(circle,oklch(14.5% 0 0deg) 0%,transparent 150%);content:"";inset:0;pointer-events:none;position:fixed}.nav-bar{backdrop-filter:blur(10px);background-color:#000c;bottom:0;left:0;padding:.5rem;position:fixed;right:0;z-index:1000;border-color:#262626;border-radius:2rem 2rem 0 0;border-style:solid;border-width:1px}.nav-bar>.navmenu{display:flex;gap:1.5rem;justify-content:space-evenly;width:100%}.nav-bar>.navmenu>li>.navlink{align-items:center;border-radius:.5rem;display:flex;flex-direction:column;gap:.2rem;outline:none;padding:.5rem 1rem;position:relative;font-size:.75rem;font-weight:500;transition-duration:.2s,.3s;transition-property:box-shadow,color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nav-bar>.navmenu>li>.navlink.-active{color:oklch(69.6% .17 162.48deg)}.nav-bar>.navmenu>li>.navlink.-active:before{width:80%}.nav-bar>.navmenu>li>.navlink:focus-visible{box-shadow:0 0 0 3px oklch(50.8% .118 165.612deg)}.nav-bar>.navmenu>li>.navlink:hover{color:oklch(69.6% .17 162.48deg)}.nav-bar>.navmenu>li>.navlink>.text{text-transform:capitalize}@media screen and (min-width:40rem){.nav-bar{border-radius:calc(infinity * 1px);inset:1rem auto auto 50%;padding:.5rem 3rem;translate:-50%}.nav-bar>.navmenu{gap:4rem;justify-content:center}.nav-bar>.navmenu>li>.navlink{font-size:inherit}.nav-bar>.navmenu>li>.navlink:before{background-color:oklch(69.6% .17 162.48deg);bottom:0;content:"";height:.125rem;position:absolute;transition:width .3s cubic-bezier(.4,0,.2,1);width:0}.nav-bar>.navmenu>li>.navlink>.icon{display:none}}.hero-section{align-items:center;display:flex;flex-direction:column;gap:1.5rem;height:100vh;justify-content:center;padding-inline:1.5rem;position:relative;text-align:center}.hero-section>.summary{font-weight:500;max-width:48rem}.hero-section>.available{align-items:center;display:inline-flex;gap:1rem}.hero-section>.available>.indicator{display:flex;position:relative}.hero-section>.available>.indicator>.ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite;background-color:oklch(76.5% .177 163.223deg);border-radius:calc(infinity * 1px);height:100%;opacity:.75;position:absolute;width:100%}.hero-section>.available>.indicator>.dot{background-color:oklch(69.6% .17 162.48deg);border-radius:calc(infinity * 1px);height:.75rem;width:.75rem}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@media screen and (min-width:48rem){.hero-section>.greeting{font-size:3rem}.hero-section>.summary{font-size:1.125rem}}@media screen and (min-width:64rem){.hero-section>.greeting{font-size:4rem}.hero-section>.summary{font-size:1.25rem}}.projects-section{align-items:center;display:flex;flex-direction:column;gap:4rem;justify-content:center;min-height:100vh;padding:4rem 1.5rem;position:relative;text-align:center}@media screen and (min-width:48rem){.projects-section>.heading{font-size:2.25rem}}@media screen and (min-width:64rem){.projects-section>.heading{font-size:3rem}}.contact-section{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:4rem 1.5rem;position:relative;text-align:center}.contact-section>.container{align-items:center;display:grid;gap:2rem;grid-template-columns:1fr;max-width:75rem;width:100%}.contact-section>.container>.intro{display:flex;flex-direction:column;gap:2rem;text-align:start}.contact-section>.container>.intro>.heading{text-align:center}.contact-section>.container>#form-container>.submit-feedback>h2{color:oklch(69.6% .17 162.48deg)}.contact-section>.container>#form-container>.submit-feedback>h2.error{color:#fb2c36}@media screen and (min-width:48rem){.contact-section>.container{gap:3rem;grid-template-columns:1fr 1fr}.contact-section>.container>.intro>.heading{font-size:2.25rem;text-align:inherit}}@media screen and (min-width:64rem){.contact-section>.container>.intro>.heading{font-size:3rem}}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.contact-form>.formgroup{display:flex;flex-direction:column;gap:.5rem}.contact-form>.formgroup>.label{font-weight:600;text-align:start}.contact-form>.formgroup>.inputbox,.contact-form>.formgroup>.messagebox{background-color:#262626;color:#f5f5f5;outline:none;padding:.5rem;border-color:#404040;border-radius:.5rem;border-style:solid;border-width:1px;transition-duration:.2s,.2s,.1s;transition-property:border-color,box-shadow,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.contact-form>.formgroup>.inputbox::placeholder,.contact-form>.formgroup>.messagebox::placeholder{color:#737373;font-style:italic}.contact-form>.formgroup>.inputbox:focus,.contact-form>.formgroup>.messagebox:focus{border-color:oklch(69.6% .17 162.48deg);box-shadow:0 0 0 3px oklch(50.8% .118 165.612deg)}.contact-form>.formgroup>.inputbox:disabled,.contact-form>.formgroup>.messagebox:disabled{cursor:not-allowed;opacity:.5}.contact-form>.formgroup>.inputbox.-invalid,.contact-form>.formgroup>.messagebox.-invalid{border-color:#fb2c36;box-shadow:0 0 0 3px oklch(50.5% .213 27.518deg)}.contact-form>.formgroup>.messagebox{min-height:7.5rem;resize:vertical}.contact-form>.formgroup>.errortext{color:oklch(70.4% .191 22.216deg);display:none;font-size:.875rem;text-align:start}.contact-form>.sendbutton{align-items:center;background-image:linear-gradient(to right,oklch(37.8% .077 168.94deg),oklch(50.8% .118 165.612deg));border-radius:.5rem;color:#e5e5e5;display:flex;font-weight:600;gap:.5rem;justify-content:center;outline:none;padding:1rem 2rem;transition-duration:.2s,.3s,.1s,.3s;transition-property:box-shadow,filter,opacity,translate;transition-timing-function:cubic-bezier(.4,0,.2,1)}.contact-form>.sendbutton:hover{filter:brightness(1.2);translate:0 -.125rem}.contact-form>.sendbutton:hover>.icon{translate:.25rem}.contact-form>.sendbutton:active{translate:0 0}.contact-form>.sendbutton:focus-visible{box-shadow:0 0 0 3px oklch(69.6% .17 162.48deg)}.contact-form>.sendbutton:focus-visible>.icon{translate:.25rem}.contact-form>.sendbutton:disabled{cursor:not-allowed;filter:unset;opacity:.5;translate:unset}.contact-form>.sendbutton:disabled>.icon{translate:unset}.contact-form>.sendbutton>.icon{transition:translate .3s cubic-bezier(.4,0,.2,1)}.footer{align-items:center;background-color:#0a0a0a;border-top:1px solid oklch(37.1% 0 0deg);color:#a1a1a1;display:flex;flex-direction:column;justify-content:space-evenly;padding:3rem 1.5rem 7rem;width:100%}.footer>.stack{display:flex;flex-direction:column;font-size:.875rem;gap:.5rem;margin-bottom:1.5rem}.footer>.stack>span{background-color:#262626;border-radius:calc(infinity * 1px);padding-inline:.5rem;text-align:center}.footer>.source{font-size:.75rem;margin-top:1.25rem}.footer>.source>.link{color:oklch(59.6% .145 163.225deg);transition:color .2s cubic-bezier(.4,0,.2,1)}.footer>.source>.link:hover{color:oklch(69.6% .17 162.48deg)}.footer>.copyright{color:#a1a1a1bf;font-size:.75rem;letter-spacing:1px;margin-top:.5rem;text-align:center}@media screen and (min-width:40rem){.footer{padding:3rem 1.5rem}.footer>.stack{flex-direction:initial}}.social-links{display:flex;gap:1.5rem}.social-links>email-copy-button{position:relative}.social-links>.btn,.social-links>email-copy-button>.btn{border:1px solid oklch(26.9% 0 0deg);border-radius:.5rem;color:#d4d4d4;outline:none;overflow:hidden;padding:.625rem;position:relative;transition-duration:.2s,.2s,.2s,.2s,.1s;transition-property:background-color,border-color,box-shadow,color,scale;transition-timing-function:cubic-bezier(.4,0,.2,1)}.social-links>.btn:active,.social-links>email-copy-button>.btn:active{scale:.9}.social-links>.btn:focus-visible,.social-links>email-copy-button>.btn:focus-visible{border-color:oklch(69.6% .17 162.48deg);box-shadow:0 0 0 3px oklch(50.8% .118 165.612deg)}.social-links>.btn:hover{background-color:#262626;border-color:#525252;color:#fff}.social-links>email-copy-button>.btn{align-items:center;display:flex;height:2.875rem;justify-content:center;width:2.875rem}.social-links>email-copy-button>.btn.-copied{background-color:#262626;border-color:#525252;color:#fff}@media(any-hover:hover)and (pointer:fine){.social-links>email-copy-button>.btn:hover{background-color:#262626;border-color:#525252;color:#fff}}.social-links>email-copy-button>.btn>svg{position:absolute;transition-duration:.3s;transition-property:opacity,scale;transition-timing-function:cubic-bezier(.4,0,.2,1)}.social-links>email-copy-button>.btn>.email-icon{opacity:1;scale:1}.social-links>email-copy-button>.btn>.check-icon{opacity:0;scale:.5}.social-links>email-copy-button>.btn.-copied>.email-icon{opacity:0;scale:.5}.social-links>email-copy-button>.btn.-copied>.check-icon{opacity:1;scale:1}.social-links>email-copy-button>.tooltip{background-color:#262626;border:1px solid oklch(69.6% .17 162.48deg);border-radius:.5rem;bottom:calc(100% + .625rem);color:oklch(69.6% .17 162.48deg);font-size:.75rem;left:50%;letter-spacing:.04em;opacity:0;padding:.375rem .625rem;pointer-events:none;position:absolute;translate:-50% .25rem;visibility:hidden;white-space:nowrap;transition-duration:.2s;transition-property:opacity,translate,visibility;transition-timing-function:cubic-bezier(.4,0,.2,1)}.social-links>email-copy-button>.tooltip:after{border:5px solid transparent;border-top-color:oklch(69.6% .17 162.48deg);content:"";left:50%;position:absolute;top:100%;translate:-50%}.social-links>email-copy-button>.tooltip.-visible{opacity:1;translate:-50% 0;visibility:visible}.social-links>email-copy-button>.tooltip.-error{border-color:oklch(70.4% .191 22.216deg);color:oklch(70.4% .191 22.216deg)}.social-links>email-copy-button>.tooltip.-error:after{border-top-color:oklch(70.4% .191 22.216deg)}.project-card{background-color:#262626;border-radius:.75rem;display:flex;flex-direction:column;height:25rem;max-width:70rem;position:relative;width:100%}.project-card>.cover{height:12.5rem;overflow:hidden;width:100%;border-top-left-radius:.75rem;border-top-right-radius:.75rem}.project-card>.cover>.image{height:100%;object-fit:cover;object-position:top;transition:scale .5s cubic-bezier(.4,0,.2,1);width:100%}.project-card:hover>.cover>.image{scale:1.1}.project-card>.content{display:flex;flex-direction:column;gap:.5rem;padding:1rem;text-align:start;width:100%}.project-card>.content>.title{color:oklch(69.6% .17 162.48deg)}.project-card>.content>.summary{-webkit-box-orient:vertical;color:#d4d4d4;display:-webkit-box;font-size:.875rem;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}.project-card>.content>.tags{display:flex;gap:1rem;overflow-x:auto;padding-block:.25rem}@supports not selector(::-webkit-scrollbar){.project-card>.content>.tags{scrollbar-color:oklch(43.2% .095 166.913deg) oklch(20.5% 0 0deg);scrollbar-width:thin}}.project-card>.content>.tags::-webkit-scrollbar{height:.35rem}.project-card>.content>.tags::-webkit-scrollbar-thumb{background-color:oklch(43.2% .095 166.913deg);border-radius:.5rem}.project-card>.content>.tags::-webkit-scrollbar-thumb:hover{background-color:oklch(50.8% .118 165.612deg)}.project-card>.content>.tags::-webkit-scrollbar-track{background-color:#171717}.project-card>.content>.tags>.tag{align-items:center;color:oklch(69.6% .17 162.48deg);display:flex;flex-shrink:0;font-size:.75rem;gap:.125rem}.project-card>.actions{bottom:-1rem;display:flex;gap:1rem;position:absolute;right:-.5rem}.project-card>.actions>.btn{align-items:center;background-image:linear-gradient(to right,oklch(37.8% .077 168.94deg),oklch(50.8% .118 165.612deg));border-radius:.75rem .25rem;color:#f5f5f5;display:flex;font-size:.875rem;gap:.25rem;outline:none;padding:.375rem .5rem;transition-duration:.2s,.15s,.15s,.15s;transition-property:box-shadow,filter,scale,translate;transition-timing-function:cubic-bezier(.4,0,.2,1)}.project-card>.actions>.btn:focus-visible{box-shadow:0 0 0 3px oklch(69.6% .17 162.48deg)}.project-card>.actions>.btn:hover{filter:brightness(1.2);scale:1.05;translate:.25rem .25rem}.project-card>.actions>.btn>.text{display:none}@media screen and (min-width:48rem){.project-card{flex-direction:row;height:12.5rem}.project-card>.cover{border-bottom-left-radius:.75rem;clip-path:polygon(0 0,92% 0%,100% 100%,0% 100%);width:calc(50% - 2rem)}.project-card>.content{width:calc(50% + 2rem)}.project-card>.actions>.btn>.text{display:inline}}.back-to-top{align-items:center;background-color:oklch(59.6% .145 163.225deg);border-radius:calc(infinity * 1px);bottom:6.25rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;color:#f5f5f5;cursor:pointer;display:flex;height:3rem;justify-content:center;opacity:0;position:fixed;right:1.25rem;translate:0 1.25rem;visibility:hidden;width:3rem;z-index:999;transition-duration:.2s,.3s,.3s,.3s,.3s;transition-property:box-shadow,filter,opacity,translate,visibility;transition-timing-function:cubic-bezier(.4,0,.2,1)}.back-to-top.-visible{opacity:1;translate:0 0;visibility:visible}.back-to-top:hover{filter:brightness(1.2);translate:0 -.125rem}.back-to-top:focus-visible{box-shadow:0 0 0 3px #5ee9b5;outline:none}.back-to-top:active{translate:0 0}@media screen and (min-width:40rem){.back-to-top{bottom:2.5rem;height:2.75rem;right:1.875rem;width:2.75rem}}@media(prefers-reduced-motion:reduce){.back-to-top{transition-duration:.15s;transition-property:box-shadow,filter,opacity,visibility;transition-timing-function:cubic-bezier(.4,0,.2,1)}.back-to-top:hover,.back-to-top:active{translate:none}}
