:root{--primary:#2d2926;--secondary:#8c8680;--accent:#9e5f40;--background:#f7f5f2;--surface:#fff;--accent-hover:#b8704f;--accent-light:#9e5f4033;--accent-lighter:#9e5f4020;--nav-active:var(--accent);--nav-hover:#8c868080;--nav-text:var(--primary);--border-light:#e5e1db;--border:#d0c9be;--border-accent:var(--accent-light);--shadow-light:#2d292615;--shadow:#2d292630;--shadow-strong:#2d292650;--text-muted:var(--secondary);--text-inverse:var(--surface);--surface-hover:#fdfcfa;--surface-border:var(--border-light);--gradient-accent:linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);--gradient-surface:linear-gradient(135deg, var(--surface) 0%, var(--surface-hover) 100%)}.text-primary{color:var(--primary)!important}.text-secondary{color:var(--secondary)!important}.text-accent{color:var(--accent)!important}.text-muted{color:var(--text-muted)!important}.text-inverse{color:var(--text-inverse)!important}.bg-background{background-color:var(--background)!important}.bg-surface{background-color:var(--surface)!important}.bg-accent{background-color:var(--accent)!important}.bg-accent-light{background-color:var(--accent-light)!important}.border-light{border-color:var(--border-light)!important}.border-normal{border-color:var(--border)!important}.border-accent{border-color:var(--accent)!important}.hover-accent:hover{color:var(--accent-hover)!important}.hover-surface:hover{background-color:var(--surface-hover)!important}@font-face{font-family:Plus Jakarta Sans;src:url(/assets/plus-jakarta-sans-v12-latin-regular-Dhut76fR.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/assets/plus-jakarta-sans-v12-latin-italic-D5MFNpT-.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/assets/plus-jakarta-sans-v12-latin-600-DLTa1BUW.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/assets/plus-jakarta-sans-v12-latin-600italic-5ssjdLIB.woff2)format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/assets/plus-jakarta-sans-v12-latin-700-CfpNZvy6.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Plus Jakarta Sans;src:url(/assets/plus-jakarta-sans-v12-latin-700italic-B6fOe9QJ.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Outfit;src:url(/assets/outfit-v15-latin-regular-BGsTXAXT.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Outfit;src:url(/assets/outfit-v15-latin-600-B7SfZ07L.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Outfit;src:url(/assets/outfit-v15-latin-700-Cu9v6i1X.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--font-primary:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-secondary:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--weight-regular:400;--weight-semibold:600;--weight-bold:700;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem}.typography-title-main,h1{font-family:var(--font-primary);font-weight:var(--weight-bold);font-size:var(--text-4xl);letter-spacing:-.02em;line-height:1.2}.typography-title-subtitle{font-family:var(--font-primary);font-weight:var(--weight-regular);font-size:var(--text-2xl);letter-spacing:-.01em;color:var(--accent);line-height:1.3}.typography-title-section,h2{font-family:var(--font-primary);font-weight:var(--weight-bold);font-size:var(--text-3xl);letter-spacing:-.01em;line-height:1.3}.typography-subtitle,h3{font-family:var(--font-primary);font-weight:var(--weight-semibold);font-size:var(--text-xl);line-height:1.4}.typography-subtitle-small,h4{font-family:var(--font-primary);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:1.4}.typography-body,p{font-family:var(--font-secondary);font-weight:var(--weight-regular);font-size:var(--text-base);line-height:1.6}.typography-body-large{font-family:var(--font-secondary);font-weight:var(--weight-regular);font-size:var(--text-lg);line-height:1.6}.typography-label{font-family:var(--font-primary);font-weight:var(--weight-semibold);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;line-height:1.4}.typography-label-normal{font-family:var(--font-primary);font-weight:var(--weight-semibold);font-size:var(--text-sm);line-height:1.4}.typography-label-lowercase{font-family:var(--font-primary);font-size:var(--text-sm);text-transform:capitalize;line-height:1.4;font-weight:700!important}.typography-badge{font-family:var(--font-secondary);font-weight:var(--weight-regular);font-size:var(--text-sm);line-height:1.3}.typography-nav{font-family:var(--font-secondary);font-weight:var(--weight-semibold);font-size:var(--text-base);line-height:1.4;text-decoration:none}.typography-button{font-family:var(--font-secondary);font-weight:var(--weight-semibold);font-size:var(--text-sm);text-transform:none;line-height:1.3}@media (width<=768px){.typography-title-main,h1{font-size:var(--text-3xl)}.typography-title-section,h2{font-size:var(--text-2xl)}.typography-subtitle,h3{font-size:var(--text-lg)}.typography-body-large{font-size:var(--text-base)}}body{font-family:var(--font-secondary);font-weight:var(--weight-regular);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}@keyframes reveal{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0}}.reveal{animation:cubic-bezier(.22,1,.36,1) both reveal;animation-timeline:view();animation-range:entry entry 40%}body{background-color:var(--background)}#root{text-align:center;border-inline:1px solid var(--border-light);box-sizing:border-box;background-color:var(--surface);flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{font-family:var(--font-secondary);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}h1,h2{font-family:var(--font-primary);font-weight:var(--weight-bold);color:var(--primary)}h1{font-size:var(--text-4xl);letter-spacing:-.02em;margin:32px 0;line-height:1.2}@media (width<=1024px){h1{font-size:var(--text-3xl);margin:20px 0}}h2{font-size:var(--text-3xl);letter-spacing:-.01em;margin:0 0 8px;line-height:1.3}@media (width<=1024px){h2{font-size:var(--text-2xl)}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.ant-tag{background-color:var(--accent-light)!important;color:var(--accent)!important;border-color:var(--accent-light)!important;font-weight:500!important;font-family:var(--font-secondary)!important;border-radius:12px!important}.ant-tag-blue{background-color:var(--accent-light)!important;color:var(--accent)!important;border-color:var(--accent-light)!important}.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-typography h4{color:var(--primary)!important;font-family:var(--font-primary)!important}.ant-typography{color:var(--primary)!important;font-family:var(--font-secondary)!important}.ant-btn-primary{background-color:var(--accent)!important;border-color:var(--accent)!important}.ant-btn-primary:hover,.ant-btn-primary:focus{background-color:var(--accent-hover)!important;border-color:var(--accent-hover)!important}.ant-card{background-color:var(--surface)!important;border-color:var(--border-light)!important}@media (width<=1024px){.mobile-menu-close-row-inside{background:0 0;justify-content:flex-start;align-items:center;width:100%;margin-bottom:8px;padding:0 0 8px;font-size:10px;display:flex}.mobile-menu-close-btn-inside{background:var(--surface);color:var(--accent);cursor:pointer;z-index:10000;border:none;border-radius:50%;margin-left:8px;padding:8px 16px;font-size:10px;transition:background .2s}.mobile-menu-close-btn-inside:active,.mobile-menu-close-btn-inside:hover{background:var(--surface-hover);color:var(--accent-hover)}.mobile-dropdown-fullheight .ant-dropdown-menu{width:80vw;height:100vh;min-height:100vh;max-height:100vh;box-shadow:none;z-index:2000;border-radius:0;padding-top:32px;font-size:1.2rem;position:fixed!important;top:0!important;left:0!important}.mobile-dropdown-fullheight{width:100vw!important;max-width:100vw!important;top:0!important;left:0!important}}html.w-mod-touch *{background-attachment:scroll!important}.navbar{z-index:1000;background:var(--surface);-webkit-backdrop-filter:blur(12px)saturate(1.5);backdrop-filter:blur(12px)saturate(1.5);box-shadow:0 4px 24px var(--shadow);border-radius:500px;justify-content:center;align-items:center;min-width:0;max-width:50%;height:56px;margin:30px auto 0;padding:0 16px;transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,box-shadow .3s,opacity .3s,transform .3s;display:flex;position:sticky;top:0;left:0}@media (width<=1024px){.navbar{box-shadow:none;border-radius:0;justify-content:flex-start;max-width:100%;margin:0;padding:0 8px}}.navbar-desktop{align-items:center;gap:24px;display:flex}.navbar-mobile{display:none}@media (width<=1024px){.navbar-desktop{display:none}.navbar-mobile{justify-content:flex-start;align-items:center;width:100%;display:flex}.navbar-burger{margin-left:0}}.nav-item{color:var(--primary);cursor:pointer;height:40px;font-family:var(--font-primary);text-overflow:ellipsis;white-space:normal;text-align:center;background-color:#0000;border-radius:100px;justify-content:center;align-items:center;max-width:100px;margin:0;padding:0 8px;font-size:15px;font-weight:500;line-height:1.1;transition:background-color .15s ease-in-out;display:flex;overflow:hidden}.nav-item:hover{color:var(--accent-hover)}.w-nav-link{vertical-align:top;color:var(--primary);text-align:center;white-space:normal;word-break:break-word;text-overflow:ellipsis;cursor:pointer;max-width:100px;margin-left:auto;margin-right:auto;padding:12px 0;text-decoration:none;transition:color .2s;display:inline-block;position:relative;overflow:hidden}.w-nav-link:hover{color:var(--accent)}a{color:#1a1b1f;background-color:#0000;text-decoration:underline;transition:opacity .2s;display:block}*{box-sizing:border-box}.ant-menu-horizontal{border-bottom:none}.language-switch{margin-left:16px}.slide-in-fwd-center{animation:.4s cubic-bezier(.25,.46,.45,.94) both slide-in-fwd-center}@keyframes slide-in-fwd-center{0%{opacity:0;transform:translateZ(-1400px)}to{opacity:1;transform:translateZ(0)}}.about-section{perspective:1200px;flex-direction:column;justify-content:center;align-items:center;min-height:80vh;margin-top:.8em;padding:32px 16px;display:flex}.about-photo{object-fit:contain;filter:grayscale(.3);width:auto;height:360px;margin-top:1.6em;transition:filter .3s;background:0 0!important}.about-description a{border-radius:6px;padding:4px;transition:transform .2s,box-shadow .2s;display:inline-block}.about-description a:hover{box-shadow:0 4px 12px var(--shadow-light);transform:translateY(-2px)}.about-description a img{transition:filter .2s}.about-description a:hover img{filter:brightness(1.1)}.about-description{text-align:center;max-width:600px}.about-description h2{margin-bottom:16px}.about-description p{color:var(--primary);margin-top:16px;margin-bottom:12px}@media (width<=600px){.about-photo{width:340px;height:340px}.about-description h2{font-size:1.4rem;font-weight:600}}.bounce-in-top{animation:.7s cubic-bezier(.22,1,.36,1) both bounce-in-top}@keyframes bounce-in-top{0%{opacity:0;animation-timing-function:ease-in;transform:translateY(-500px)}38%{opacity:1;animation-timing-function:ease-out;transform:translateY(0)}55%{animation-timing-function:ease-in;transform:translateY(-65px)}72%{animation-timing-function:ease-out;transform:translateY(0)}81%{animation-timing-function:ease-in;transform:translateY(-28px)}90%{animation-timing-function:ease-out;transform:translateY(0)}95%{animation-timing-function:ease-in;transform:translateY(-8px)}to{animation-timing-function:ease-out;transform:translateY(0)}}.work-section{text-align:center;max-width:1200px;margin:0 auto;padding:50px 20px}.work-container h2{font-family:var(--font-primary);color:var(--primary);margin-bottom:60px;font-size:30px;font-weight:600}.work-company-header{margin-bottom:50px}.work-company-header h3{font-family:var(--font-primary);color:var(--primary);margin-bottom:8px;font-size:24px;font-weight:500}.work-period{font-family:var(--font-secondary);color:var(--secondary);font-size:16px;font-style:italic}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:30px;margin-top:40px;display:grid}.project-card{background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-light);box-shadow:0 8px 32px var(--shadow-light);text-align:left;cursor:default;border-radius:16px;flex-direction:column;height:100%;padding:0;display:flex;overflow:hidden}.project-image{background:var(--background);flex-shrink:0;width:100%;height:200px;overflow:hidden}.project-image img{object-fit:contain;background-color:var(--surface);width:100%;height:100%}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.project-content{flex-direction:column;flex-grow:1;padding:30px;display:flex}.project-header{justify-content:flex-start;align-items:flex-start;margin-bottom:15px;display:flex}.project-title{font-family:var(--font-primary);color:var(--primary);margin:0;font-size:22px;font-weight:600}.project-status{background:var(--gradient-accent);color:var(--text-inverse);white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500}.project-role{font-family:var(--font-primary);color:var(--accent);margin-bottom:15px;font-size:16px;font-weight:500}.project-description{font-family:var(--font-secondary);color:var(--secondary);flex-grow:1;margin-bottom:20px;font-size:14px;line-height:1.6}.project-skills{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.project-footer{margin-top:auto;padding:0 30px 30px}.project-links{flex-wrap:wrap;gap:12px;display:flex}.app-link{border:1px solid var(--border-light);background:var(--surface);color:var(--primary);font-size:13px;font-weight:500;font-family:var(--font-secondary);border-radius:8px;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;transition:all .2s;display:inline-flex}.app-link:hover{box-shadow:0 4px 12px var(--shadow-light);color:var(--primary);text-decoration:none;transform:translateY(-1px)}.app-link-ios{border-color:var(--accent-light);color:var(--accent)}.app-link-ios:hover{background:var(--accent-lighter);border-color:var(--accent);color:var(--accent-hover)}.app-link-android{border-color:var(--accent-light);color:var(--accent)}.app-link-android:hover{background:var(--accent-lighter);border-color:var(--accent);color:var(--accent-hover)}.app-link-web{border-color:var(--secondary);color:var(--secondary)}.app-link-web:hover{background:var(--accent-lighter);border-color:var(--accent);color:var(--accent-hover)}.app-store-icon,.google-play-icon{flex-shrink:0;width:14px;height:14px}.app-link span{font-size:12px;font-weight:500}@media (width<=768px){.work-section{padding:80px 15px}.work-container h2{margin-bottom:40px;font-size:36px}.work-company-header h3{font-size:20px}.projects-grid{grid-template-columns:1fr;gap:20px}.project-card{padding:0}.project-content{padding:20px}.project-footer{padding:0 20px 20px}.project-title{font-size:18px}.project-header{flex-direction:column;align-items:flex-start;gap:10px}}@media (width<=480px){.work-container h2{font-size:28px}.projects-grid{grid-template-columns:1fr}.project-card{padding:15px}}.projects-section{background:var(--background);padding:48px 16px}.projects-cards-container{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.project-card-link{color:inherit;cursor:pointer;width:350px;max-width:100%;text-decoration:none}.project-card{box-shadow:0 2px 16px var(--shadow-light);background:var(--surface);border-radius:16px;min-height:100%;transition:box-shadow .3s,transform .2s}.projects-section .project-card:hover{box-shadow:0 8px 32px var(--shadow);cursor:pointer;transform:translateY(-2px)}.project-card-img-container{background:var(--background);border-radius:12px 12px 0 0;width:100%;height:220px;overflow:hidden}.project-card-img{object-fit:cover;border-radius:12px 12px 0 0;width:100%;height:100%}.project-card-label{font-weight:600}.project-card-stack{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 18px;display:flex}.project-card-info{margin-bottom:8px}.project-card .ant-typography h3{font-family:var(--font-primary)!important;color:var(--primary)!important;margin:0 0 12px!important;font-size:22px!important;font-weight:600!important}.projects-section .project-card .typography-subtitle,.projects-section .project-card .ant-typography h3,.projects-section .project-card .ant-typography.ant-typography h3,.projects-section .project-card h3.typography-subtitle,.projects-section .project-card .ant-typography h3.typography-subtitle{font-family:"Plus Jakarta Sans", var(--font-primary), -apple-system, BlinkMacSystemFont, sans-serif!important;color:var(--primary)!important;margin-bottom:8px!important;font-size:22px!important;font-weight:600!important;line-height:1.3!important}.project-card .ant-typography-caption,.project-card .typography-label-normal,.project-card .ant-typography strong,.project-card .ant-typography.ant-typography{font-family:var(--font-primary)!important;color:var(--accent)!important;margin-bottom:12px!important;font-size:16px!important;font-weight:400!important}.project-card .ant-typography strong,.project-card .ant-typography-caption strong,.project-card strong.typography-label-normal{font-weight:400!important}.project-card .typography-body{font-family:var(--font-secondary)!important;color:var(--secondary)!important;font-size:14px!important;line-height:1.6!important}.project-card .typography-label-lowercase{font-family:var(--font-secondary)!important;color:var(--secondary)!important;text-transform:capitalize!important;letter-spacing:.5px!important;font-size:13px!important;font-weight:600!important;text-decoration:underline!important}.skills-section{background:var(--background);padding:48px 16px}.skills-categories-vertical{flex-direction:column;align-items:center;gap:32px;display:flex}.skills-category-vertical{background:var(--surface);width:100%;max-width:900px;box-shadow:0 2px 12px var(--shadow-light);border:1px solid var(--border-light);border-radius:12px;padding:24px 32px}.skills-list{margin:16px 0 0;padding:0;list-style:none}.skills-badges-row{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:12px 16px;margin-top:16px;display:flex}.skills-badge{background:var(--accent-lighter);color:var(--accent);cursor:default;min-height:48px;box-shadow:0 2px 8px var(--shadow-light);border-radius:28px;align-items:center;gap:10px;padding:12px 18px 12px 14px;font-size:14px;font-weight:500;display:inline-flex}.skills-logo{object-fit:contain;object-position:center;filter:grayscale(40%)opacity(.8);content-visibility:auto;contain-intrinsic-size:22px 22px;flex-shrink:0;width:22px;height:22px;display:block}.skills-badge-label{vertical-align:middle;white-space:nowrap;line-height:1.2;display:inline-block}.language-switcher-global{z-index:1000;gap:12px;display:flex;position:absolute;top:24px;right:32px}.language-switcher-global span{cursor:pointer;color:var(--secondary);text-decoration:none;transition:color .2s,-webkit-text-decoration .2s,text-decoration .2s}.language-switcher-global span.active{color:var(--accent);text-decoration:underline}.language-switcher-desktop{display:block}.language-switcher-mobile{display:none}@media (width<=768px){.language-switcher-global{justify-content:center;gap:18px;margin:12px 0 0;position:static}.language-switcher-desktop{display:none}.language-switcher-mobile{justify-content:center;margin-bottom:12px;display:flex}}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
