[data-theme=light]{--bg-main:#f9fafb;--bg-section:#ffffff;--bg-card:#f9fafb;--bg-box:#f3f4f6;--bg-button:#e0e7ff;--text-primary:#111827;--text-secondary:#4b5563;--accent:#4f46e5;--accent-transparent:rgba(78,70,229,0.1);--link-hover:#4338ca}[data-theme=dark]{--bg-main:#111827;--bg-section:#1f2937;--bg-card:#111827;--bg-box:#1f2937;--bg-button:#1b1f42;--text-primary:#f3f4f6;--text-secondary:#d1d5db;--accent:#818cf8;--link-hover:#6366f1}html{max-width:100vw;overflow-x:hidden;min-height:200vh;scroll-behavior:smooth;scroll-padding-top:6rem}main{max-width:1280px;margin:0 auto}body{font-family:Onest,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}ul{list-style:none}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;margin:0;color:inherit;font:inherit;text-align:inherit;line-height:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}body{font-family:Onest,sans-serif;background-color:var(--bg-main);line-height:1.5}.text-color--primary,body{color:var(--text-primary)}.experience__description,.summary__text,.text-color--secondary{color:var(--text-secondary)}.highlight,.link,.summary__title,.text-color--accent{color:var(--accent)}.link{text-decoration:none}.link:hover{color:var(--link-hover)}.expandable-text__content{font-size:1rem;color:var(--text-primary);margin-bottom:.5rem;line-height:1.6}.expandable-text__button{background:none;border:none;color:var(--accent);font-size:1rem;cursor:pointer;padding:0}.expandable-text__button:hover{text-decoration:underline}.btn{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-size:1rem;border:none;border-radius:.5rem;cursor:pointer;transition:background-color .3s ease,color .3s ease}@media screen and (max-width:640px){.btn{font-size:.875rem;padding:.5rem 1rem}}.btn__icon{height:1rem}.btn--primary{background-color:var(--accent);color:white}.btn--primary:hover{background-color:var(--link-hover)}.btn--secondary{border:2px solid var(--accent);background-color:var(--bg-box);color:var(--accent)}.btn--secondary:hover{background-color:var(--accent-transparent)}.container{max-width:1024px;padding:0 1rem;margin:0 auto}.tag-list{display:flex;flex-wrap:wrap;margin:.5rem 0}.tag-item{display:inline-block;background-color:var(--bg-button);padding:.25rem .5rem;border-radius:1rem;color:var(--accent);font-size:.875rem;margin:0 .5rem .5rem 0}.tag-list-container{margin-bottom:1rem}.tag-list__button{color:var(--accent);font-size:.875rem;background:none;border:none;padding:.25rem .5rem;cursor:pointer;transition:color .3s ease}.tag-list__button:hover{color:var(--link-hover)}.section{margin:3rem 0}.section__heading{color:var(--text-primary);display:flex;align-items:center;font-size:2.25rem;gap:.5rem}.section__icon{color:var(--accent);width:2.25rem;height:2.25rem}.section__content{margin:1rem 0}.expandable-container{margin-bottom:1rem}.expandable-container__content{overflow:hidden;transition:max-height .3s ease}.expandable-container__button{color:var(--accent);border:none;cursor:pointer;border-radius:4px;margin-top:.5rem}.expandable-container__button:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}.responsive-image{display:block;max-width:100%;height:auto;object-fit:cover;object-position:center}.nav-container{position:-webkit-sticky;position:sticky;top:0;z-index:100;width:100%}.header{width:100%;background-color:var(--bg-main);box-shadow:0 2px 4px rgba(0,0,0,.1)}.nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:0 auto;padding:1rem 0;font-size:1rem}.nav__logo{color:var(--accent);font-weight:700;transition:transform .3s ease-in-out}.nav__logo:hover{transform:scale(1.05)}.nav__icon{color:var(--text-secondary)}.nav__list{display:flex;align-items:center;gap:1rem}.nav__list--mobile{display:none}.nav__list--togglers{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1rem}.nav__item,.nav__link{color:var(--text-secondary);transition:color .3s ease-in-out}.nav__link{position:relative;padding:.5rem 0}.nav__link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--accent);transition:width .3s ease-in-out}.nav__link:hover{color:var(--link-hover)}.nav__link:hover:after{width:100%}.nav__link--active{color:var(--accent)}.nav__link--active:after{width:100%}.nav__theme-switcher{display:flex;align-items:center;background-color:var(--bg-box);padding:.5rem;border:1px solid var(--bg-box);border-radius:.375rem;transition:transform .3s ease-in-out}.nav__theme-switcher:hover{transform:scale(1.05)}.nav__item--mobile{display:none}.nav__toggler{display:flex;justify-content:center;align-items:center;transition:transform .3s ease-in-out}.nav__toggler:hover{transform:scale(1.1)}@media screen and (max-width:768px){.nav__item--mobile{display:block}.nav__list{display:none}.open{background-color:var(--bg-main);width:100%;display:flex;flex-direction:column;gap:1rem;position:absolute;top:4rem;left:0;padding:1rem 1.5rem;z-index:10;box-shadow:0 4px 6px rgba(0,0,0,.1);animation:slideDown .3s ease-in-out}.close{display:none;animation:slideUp .3s ease-in-out}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.summary{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:3rem 0}.summary__title{font-size:3.75rem;margin:0 0 .5rem;text-align:center}.summary__text{font-size:1.25rem;text-align:center;max-width:1024px;margin:0 2rem 2rem}.summary__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}@media screen and (max-width:768px){.summary__title{font-size:3rem}.summary__text{font-size:1.125rem}}.experience__list{display:flex;flex-direction:column;gap:1rem;position:relative}.experience__list:before{border-left:2px solid var(--text-secondary);content:"";position:absolute;top:0;left:1rem;height:100%}.experience__item{position:relative;padding-left:3rem;display:grid;grid-template-columns:1fr 2fr;grid-gap:1rem;gap:1rem}@media screen and (max-width:768px){.experience__item{grid-template-columns:1fr}}.experience__item:before{content:"";position:absolute;top:8%;left:.65rem;width:8px;height:8px;background-color:var(--accent);border:3px solid transparent;border-radius:50%}@media screen and (max-width:768px){.experience__item:before{top:5%}}.experience__role{color:var(--accent);font-size:1.5rem;position:relative}.experience__company{color:var(--text-primary);font-size:1.25rem}.experience__company-link{color:var(--text-primary);text-decoration:none}.experience__company-link:hover{text-decoration:underline}.experience__date{color:var(--text-primary)}.education{display:flex;flex-direction:column;gap:3rem}.education__container{width:100%}.education__header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}@media screen and (max-width:640px){.education__header{flex-direction:column;text-align:center;margin-bottom:1rem}}.education__certifications-wrapper{width:100%}.education__list{display:flex;flex-direction:column;gap:2rem;background-color:var(--bg-box);border:1px solid transparent;border-radius:.75rem;padding:2rem}@media screen and (max-width:640px){.education__list{padding:1rem;gap:1.5rem}}.education__list--certifications{display:flex;flex-direction:column;gap:1.5rem;background-color:var(--bg-box);border:1px solid transparent;border-radius:.75rem;padding:2rem}@media screen and (max-width:640px){.education__list--certifications{padding:1rem}}.education__list--container{width:100%;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1.5rem;gap:1.5rem;justify-content:space-between}@media screen and (max-width:1024px){.education__list--container{grid-template-columns:repeat(3,1fr)}}@media screen and (max-width:640px){.education__list--container{grid-template-columns:repeat(1,1fr);gap:1rem}}.education__item{display:flex;flex-direction:row;align-items:flex-start;gap:1rem}@media screen and (max-width:640px){.education__item{flex-direction:column;gap:.5rem}}.education__icon-wrapper{display:flex;justify-content:center}@media screen and (max-width:640px){.education__icon-wrapper{width:100%;margin-bottom:.5rem}}.education__icon{color:var(--accent);flex-shrink:0;height:2.25rem;width:3.75rem}@media screen and (max-width:640px){.education__icon{margin-bottom:.25rem}}.education__icon--certification{color:var(--accent);flex-shrink:0;height:2.25rem;width:2.25rem;padding:.5rem;border-radius:50%;background-color:var(--bg-tertiary);border:1px solid transparent;transition:all .1s ease-in-out}.education__icon--certification:hover{transform:scale(1.1);color:var(--link-hover);background-color:var(--bg-highlight);cursor:pointer;border-color:var(--accent)}.education__details{max-width:1024px}@media screen and (max-width:640px){.education__details{width:100%}}.education__title{font-size:1.25rem;color:var(--text-primary);margin-bottom:.5rem}@media screen and (max-width:640px){.education__title{font-size:1.125rem}}.education__title--certification{font-size:1.125rem;color:var(--text-primary);margin-bottom:.25rem;font-weight:600}.education__institution{font-size:1rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.education__institution--certification{font-weight:400;margin-bottom:.25rem}.education__date,.education__institution--certification{font-size:1rem;color:var(--text-secondary)}.education__achievements{list-style-type:disc;padding-left:1.5rem;margin-top:1rem}@media screen and (max-width:640px){.education__achievements{padding-left:1rem}}.education__description{color:var(--text-primary);font-size:1rem;margin-top:.5rem}@media screen and (max-width:640px){.education__description{margin-top:.25rem}}.education__cert-item{list-style:none}.education__cert-card{display:flex;flex-direction:column;background-color:var(--bg-main);border-radius:.375rem;padding:1rem;height:100%;border:1px solid var(--border-color);transition:transform .2s ease,box-shadow .2s ease}.education__cert-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,.1);border-color:var(--accent)}.education__cert-content{flex:1 1;margin-bottom:.5rem}.education__cert-links{display:flex;gap:1rem;margin-top:.5rem;justify-content:flex-end}.education__cert-link{display:flex;align-items:center;justify-content:center;z-index:2;position:relative}.projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));grid-gap:1.5rem;gap:1.5rem;padding:2rem 0}.projects__content{background-color:var(--bg-section);border-radius:0 0 .5rem .5rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);padding:1.5rem;background-color:var(--bg-box);border:1px solid var(--border-color);text-align:left}.projects__image{width:100%;border-radius:.5rem .5rem 0 0;overflow:hidden}.projects__image img{display:block;width:100%;height:auto;object-fit:cover;object-position:center;transition:transform .3s ease}.projects__image img:hover{transform:scale(1.1)}.projects__heading{color:var(--text-primary);font-size:1.5rem;margin-bottom:1rem}.projects__text{margin-bottom:1rem;max-height:4.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;text-overflow:ellipsis}.projects__links,.projects__text{font-size:1rem;color:var(--text-secondary)}.projects__links{gap:1rem}.projects__links,.projects__links .projects__link{display:flex;flex-direction:row;align-items:center}.projects__links .projects__link{transition:color .3s ease-in-out;gap:.5rem}.projects__links .projects__link:hover{color:var(--link-hover)}.contact{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:3rem 0;padding:3rem 1.5rem;background-color:var(--bg-section);border-radius:.75rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);position:relative;overflow:hidden}.contact:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:linear-gradient(90deg,var(--accent) 0,var(--link-hover) 100%)}.contact__content{text-align:center;max-width:80%;margin-bottom:2rem}.contact__title{font-size:2.25rem;font-weight:700;margin-bottom:1rem;color:var(--accent);position:relative;display:inline-block}.contact__title:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:60px;height:3px;background-color:var(--accent);border-radius:2px}.contact__text{font-size:1.125rem;line-height:1.6;color:var(--text-secondary);margin-bottom:1.5rem}.contact__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem;width:100%;max-width:600px}.contact__actions .btn{flex:1 1;min-width:260px;padding:1rem 1.5rem;transition:transform .3s ease,box-shadow .3s ease}.contact__actions .btn:hover{transform:translateY(-3px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1)}.contact__actions .btn__icon{font-size:1.2em}@media screen and (max-width:768px){.contact{padding:2rem 1rem}.contact__content{max-width:100%}.contact__title{font-size:1.875rem}.contact__text{font-size:1rem}.contact__actions{flex-direction:column}.contact__actions .btn{width:100%}}.not-found{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 10rem);padding:2rem;background-color:var(--bg-main)}.not-found__container{max-width:600px;text-align:center;background-color:var(--bg-section);padding:3rem;border-radius:.5rem;box-shadow:0 4px 6px rgba(0,0,0,.05)}.not-found__title{font-size:8rem;font-weight:700;color:var(--accent);line-height:1;margin-bottom:1rem}.not-found__subtitle{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:1.5rem}.not-found__description{font-size:1.125rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.not-found__button{margin:0 auto}@media screen and (max-width:640px){.not-found__button{width:100%;justify-content:center}}.footer{width:100%;padding:2rem 1rem;background-color:var(--bg-section);margin-top:3rem;border-top:1px solid var(--accent-transparent)}.footer-container{max-width:1024px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:0 1rem}@media (min-width:768px){.footer-container{flex-direction:row;justify-content:space-between}}.footer-info .copyright{font-size:.875rem;color:var(--text-secondary)}.footer-social .social-links{display:flex;gap:1rem}.footer-social .social-links li{transition:transform .2s ease}.footer-social .social-links li:hover{transform:translateY(-3px)}.footer-social .social-links .social-link{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;background-color:var(--bg-box);color:var(--accent);transition:background-color .2s ease,color .2s ease}.footer-social .social-links .social-link:focus,.footer-social .social-links .social-link:hover{background-color:var(--accent);color:white}.footer-social .social-links .social-link:focus{outline:2px solid var(--accent);outline-offset:2px}.footer-contact .contact-link{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--bg-button);border-radius:9999px;color:var(--accent);font-weight:600;transition:background-color .2s ease,transform .2s ease}.footer-contact .contact-link:focus,.footer-contact .contact-link:hover{background-color:var(--accent);color:white;transform:translateY(-3px)}.footer-contact .contact-link:focus{outline:2px solid var(--accent);outline-offset:2px}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;background-color:var(--accent);color:var(--bg-section);width:3rem;height:3rem;border-radius:50%;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:all .3s ease;box-shadow:0 4px 10px rgba(0,0,0,.2);z-index:100}@media (max-width:768px){.scroll-to-top{bottom:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem}}.scroll-to-top.visible{opacity:1;visibility:visible}.scroll-to-top:hover{background-color:var(--link-hover);transform:translateY(-3px);box-shadow:0 6px 12px rgba(0,0,0,.3)}.scroll-to-top__icon{font-size:1.2rem;font-weight:700;transition:transform .2s ease}@media (max-width:768px){.scroll-to-top__icon{font-size:1rem}}.skills{display:flex;flex-direction:column;gap:2rem}.skills__category{background-color:var(--bg-box);border-radius:.75rem;padding:1.5rem;border:1px solid var(--border-color,transparent)}.skills__category-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.skills__category-icon{width:1.5rem;height:1.5rem;color:var(--accent)}.skills__list{display:flex;flex-wrap:wrap;gap:.75rem}.skills__item{background-color:var(--bg-button);color:var(--text-secondary);padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:500;transition:all .2s ease}.skills__item:hover{background-color:var(--accent);color:#ffffff;transform:translateY(-2px)}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c1f853e4758089a8-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c1f853e4758089a8-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7bb4ad34d7ebf0d7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c1f853e4758089a8-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/4c4943bfceab8361-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6e50af2f4c313e23-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Onest Fallback;src:local("Arial");ascent-override:92.20%;descent-override:28.99%;line-gap-override:0.00%;size-adjust:105.20%}.__className_6ce2fc{font-family:Onest,Onest Fallback;font-style:normal}.__variable_6ce2fc{--font-onest:"Onest","Onest Fallback"}