*{margin:0;padding:0;outline:none;border:none}*,*:before,*:after{box-sizing:border-box}*:focus-visible{box-shadow:0 0 0 2px var(--text-color)}html,body{height:100%;line-height:1.5;font-size:62.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}ul,ol{list-style:none}a{text-decoration:none;color:inherit}a,button{cursor:pointer}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}@font-face{font-family:Inter-regular;src:url(/web/Inter-Regular.woff2) format("woff2")}@font-face{font-family:Inter-medium;src:url(/web/Inter-Medium.woff2) format("woff2")}@font-face{font-family:Inter-bold;src:url(/web/Inter-Bold.woff2) format("woff2")}:root{--max-vw: 96rem;--font-family: "Inter-regular", sans-serif;--font-family-bold: "Inter-bold", sans-serif;--font-family-medium: "Inter-medium", sans-serif;--font-xxs: clamp(1rem, 1rem + .125vw, 1.2rem);--font-xs: clamp(1.2rem, 1.2rem + .125vw, 1.4rem);--font-sm: clamp(1.4rem, 1.4rem + .125vw, 1.6rem);--font-base: clamp(1.6rem, 1.6rem + .125vw, 1.8rem);--font-md: clamp(1.8rem, 1.6rem + .625vw, 2rem);--font-lg: clamp(2.2rem, 2rem + .625vw, 2.5rem);--font-xl: clamp(2.6rem, 2.4rem + .625vw, 3rem);--font-2xl: clamp(3.2rem, 2.8rem + 1.25vw, 4rem);--font-3xl: clamp(4rem, 3.4rem + 1.875vw, 5rem);--font-4xl: clamp(4.8rem, 4rem + 2.5vw, 6rem);--fw-regular: 400;--fw-bold: 700;--fw-extra-bold: 800;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--bp-xs: 34rem;--bp-sm: 42rem;--bp-md: 60rem;--bp-lg: 80rem;--bp-xl: 96rem;--bp-2xl: 120rem;--bp-3xl: 144rem}body.dark{--background-color: #1e1e1e;--text-color: #e0e0e0;--navItem-hover-color: #3a3a3a;--border-color: #444444;--form-btn-color: #2a2a2a;--form-btn-hover-color: #f4f4f4;--btn-color: #f4f4f4;--btn-bg-color: #1e1e1e;--btn-hover-color: #1e1e1e;--btn-hover-bg-color: #f4f4f4;--form-success-text-color: #c3e6cb;--form-success-bg-color: #155724;--form-success-border-color: #155724;--form-error-text-color: #f5c6cb;--form-error-bg-color: #721c24;--form-error-border-color: #721c24}body.light{--background-color: #f4f4f4;--text-color: #2b2b2b;--navItem-hover-color: #a6a09b;--border-color: #363636;--form-btn-color: #f4f4f4;--form-btn-hover-color: #222222;--btn-color: #1e1e1e;--btn-bg-color: #f4f4f4;--btn-hover-color: #f4f4f4;--btn-hover-bg-color: #1e1e1e;--form-success-text-color: #155724;--form-success-bg-color: #d4edda;--form-success-border-color: #c3e6cb;--form-error-text-color: #721c24;--form-error-bg-color: #f8d7da;--form-error-border-color: #f5c6cb}body{font-family:var(--font-family);font-size:var(--font-sm);font-weight:var(--fw-regular);line-height:var(--leading-normal);background-color:var(--background-color);color:var(--text-color)}.container{max-width:var(--max-vw);min-height:100vh;margin-inline:auto;padding-inline:2rem}h1{font-family:var(--font-family-bold);font-size:var(--font-4xl);line-height:var(--leading-tight);letter-spacing:-2px}h2{font-family:var(--font-family-bold);font-size:var(--font-3xl);line-height:var(--leading-snug);margin-block:2rem;letter-spacing:-2px}h3{font-family:var(--font-family-bold);font-size:var(--font-2xl);line-height:var(--leading-snug)}section{padding-bottom:4rem}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}.header{width:100%;position:fixed;left:0;bottom:3rem;display:flex;justify-content:center;align-items:center;z-index:1000}.header-nav{max-width:700px;border:2px solid;border-radius:3rem;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-menu{display:flex;justify-content:space-between;align-items:center}.header-item{font-size:var(--font-lg);padding:1rem 2rem;transition:all .3s ease-in-out}.header-link{text-decoration:none;color:var(--text-color);transition:all .3s ease-in-out}.header-link:hover{color:var(--navItem-hover-color)}.header-item:last-child:hover{cursor:pointer;color:var(--navItem-hover-color)}.header-item .sun{display:none}body:is(.dark) .header-item .sun{display:block}body:is(.dark) .header-item .moon{display:none}body:is(.light) .header-item .sun{display:none}body:is(.light) .header-item .moon{display:block}@media (max-width: 768px){.header{bottom:2rem}.header-nav{max-width:90%;border-width:1px}.header-item{padding:1rem 1.25rem}}@media (max-width: 480px){.header{bottom:1.5rem}.header-nav{max-width:95%;border-width:1px}.header-menu{flex-wrap:wrap;justify-content:center;gap:.5rem}.header-item{font-size:var(--font-md);padding:.8rem 1rem}}.hero{display:flex;align-items:center;justify-content:space-between;padding-block-start:5rem}.hero-content{flex:1;padding-right:10rem}.hero-description{text-align:justify;margin:2rem 0 3rem}.hero-links{display:flex;align-items:center;gap:3rem}.hero-links .hero-project-link{padding:1rem 2rem;border:2px solid var(--border-color);border-radius:1rem;font-size:var(--font-sm);color:var(--btn-color);background-color:var(--btn-bg-color);cursor:pointer;transition:all .3s ease-in-out}.hero-links .hero-project-link:hover,.hero-links .hero-project-link:focus{color:var(--btn-hover-color);background-color:var(--btn-hover-bg-color)}.hero-links .hero-link:not(:first-child){font-size:var(--font-xl)}.hero-image{max-width:100%;height:auto}@media screen and (max-width: 960px){.hero-title{font-size:var(--font-3xl)}.hero-content{padding-right:50px}}@media screen and (max-width: 960px){.hero{flex-direction:column;align-items:flex-start;padding-block-start:4rem;gap:3rem}.hero-content{padding-right:0;width:100%}.hero-title{font-size:var(--font-2xl)}.hero-description{text-align:left}.hero-links{flex-wrap:wrap;gap:2rem}.hero-image{width:100%;display:flex;justify-content:center;max-width:500px;align-self:center}}@media screen and (max-width: 600px){.hero{gap:2rem}.hero-image{order:1}.hero-content{order:2}.hero-title{font-size:var(--font-xl)}.hero-links{align-items:center;gap:1rem}.hero-links .hero-project-link{text-align:center;align-items:center;font-size:var(--font-sm);padding:.5rem 2.5rem}.hero-links .hero-link:not(:first-child){font-size:var(--font-lg)}}@media screen and (max-width: 400px){.hero-image{justify-content:flex-start}.hero-image img{width:50%;height:50%}}.skill-list{display:flex;flex-wrap:wrap;height:auto;gap:2rem}.skill-item{padding:.8rem 2rem;border:2px solid var(--border-color);border-radius:1rem;font-family:var(--font-family-medium)}@media screen and (max-width: 600px){.skill-list{gap:1rem}.skill-item{padding:.5rem 1rem}}.project-container{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.project-card{border:2px solid var(--border-color);border-radius:1rem;padding:2rem;background-color:var(--background-color);cursor:pointer;transition:all .3s ease-in-out}.project-image-container{width:100%;height:10rem;border-radius:1rem;padding:.5rem;border:2px solid var(--border-color);object-fit:contain}.project-image-container>img{width:100%;height:100%;object-fit:cover}.project-contents{display:flex;gap:2rem;margin-bottom:2rem}.project-title{font-size:var(--font-lg);margin-bottom:.5rem}.project-description{margin-bottom:.5rem}.project-button-container{display:flex;justify-content:space-between;align-items:center}.project-button{display:flex;border:1px solid;border-radius:1rem;overflow:hidden}.project-button a{padding:.7rem 1.5rem;background-color:inherit;transition:all .3s ease-in-out}.project-button a:hover,.project-button a:focus-visible{color:var(--btn-hover-color);background-color:var(--btn-hover-bg-color)}.project-techstack{display:flex;gap:3rem;border:1px solid;border-radius:1rem;padding:.7rem 1.5rem;font-size:var(--font-lg)}@media screen and (max-width: 960px){.project-container{grid-template-columns:1fr,1fr}.project-contents{flex-direction:column;gap:1rem}.project-title{font-size:var(--font-md)}.project-techstack{font-size:var(--font-md);gap:2rem;flex-wrap:wrap}.project-button{align-items:stretch}.project-button a{text-align:center}.project-button-container{align-items:center;gap:1rem}}@media screen and (max-width: 600px){.project-container{grid-template-columns:1fr}.project-card{padding:1.5rem}.project-title{font-size:var(--font-base)}.project-description{font-size:var(--font-sm)}.project-techstack{font-size:var(--font-md);gap:1rem;padding:.8rem 1rem}.project-button a{padding:.8rem 1rem;font-size:var(--font-sm)}.project-image-container{height:13rem}}.contact{padding-bottom:15rem}.contact-container{display:flex;justify-content:center;align-items:flex-start;gap:3rem}.contact-form-container{flex:2}.contact-details-container{flex:1}.contact-form{display:flex;flex-direction:column}.contact-form label{margin-top:10px;margin-bottom:5px;font-weight:700}.contact-form input,.contact-form textarea{padding:10px;border:1px solid var(--border-color);border-radius:6px;font-size:16px;background-color:transparent;color:var(--text-color)}.contact-form textarea{resize:none}.contact-form button{margin-top:20px;padding:12px;font-size:16px;background-color:var(--btn-bg-color);color:var(--btn-color);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .3s ease-in-out}.contact-form button:hover,.contact-form button:focus{color:var(--btn-hover-color);background-color:var(--btn-hover-bg-color)}.success-message,.error-message{text-align:center;font-weight:700;border-radius:5px;margin-bottom:0;padding:0 1.5rem;max-height:0;opacity:0;overflow:hidden;transform:translateY(-10px);transition:all .4s ease-in-out;pointer-events:none}.success-message{background-color:var(--form-success-bg-color);color:var(--form-success-text-color);border:1px solid var(--form-success-border-color)}.error-message{background-color:var(--form-error-bg-color);color:var(--form-error-text-color);border:1px solid var(--form-error-border-color)}.success-message.show,.error-message.show{padding:.75rem 1.5rem;max-height:200px;margin-bottom:10px;opacity:1;transform:translateY(0);pointer-events:auto}.contact-details-container h3{font-size:var(--font-lg);margin-bottom:2rem}.contact-details-container p{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--navItem-hover-color)}.contact-details-container .contact-details .contact-group{display:flex;align-items:center;gap:1rem}.contact-details-container .contact-details .contact-group a{margin-top:2rem}.contact-details-container .contact-details a{display:block;margin-bottom:2rem}.loader{width:20px;height:20px;border:3px solid transparent;border-top:3px solid var(--btn-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.contact-form button:hover .loader{border-top:3px solid var(--btn-hover-color)}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.contact-container{flex-direction:column;padding:0 2rem;gap:2rem}.contact-form-container,.contact-details-container{width:100%}.contact-details-container .contact-details .contact-group{flex-direction:row;align-items:center}}@media (max-width: 600px){.contact-container{padding:0 1rem}.contact-details-container .contact-details .contact-group{flex-direction:column;align-items:flex-start;gap:.5rem}.contact-form input,.contact-form textarea{font-size:var(--font-xs);padding:8px}.contact-form button{font-size:var(--font-xs);padding:10px}.contact-details-container h3{font-size:var(--font-md)}.success-message,.error-message{padding:.75rem 1.5rem;font-size:var(--font-xs)}}
