html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-primary);color:var(--text-primary);font-family:var(--font-family-primary);margin:0;padding:0}code{font-family:var(--font-family-mono)}a{color:inherit;text-decoration:none}ul{list-style:none}:root{--background-primary:#fff;--background-secondary:#f6f8fa;--background-accent:#eef1f5;--background-glass:#ffffffd9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-accent:#2563eb;--text-white:#fff;--primary-color:#2563eb;--primary-dark:#1d4ed8;--primary-gradient:linear-gradient(135deg,#2563eb,#1d4ed8);--primary-gradient-subtle:#2563eb14;--secondary-color:#7c3aed;--secondary-dark:#5b21b6;--secondary-gradient-subtle:#7c3aed14;--success-color:#047857;--warning-color:#b45309;--error-color:#b91c1c;--border-light:#e2e8f0;--font-family-primary:"IBM Plex Sans",system-ui,sans-serif;--font-family-heading:"IBM Plex Sans",system-ui,sans-serif;--font-family-mono:"IBM Plex Mono","JetBrains Mono",monospace;--container-3xl:768px;--container-4xl:896px;--container-5xl:1024px;--container-6xl:1152px;--container-7xl:1100px;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-size-6xl:3.75rem;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--spacing-3xl:64px;--spacing-4xl:80px;--spacing-5xl:128px;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f;--shadow-md:0 4px 10px -2px #0f172a14,0 2px 4px -2px #0f172a0f;--shadow-lg:0 12px 24px -6px #0f172a1a,0 4px 8px -4px #0f172a14;--shadow-xl:0 24px 48px -12px #0f172a29,0 8px 16px -8px #0f172a1a;--blur-md:12px;--transition-normal:0.2s cubic-bezier(0.4,0,0.2,1);--transition-bounce:cubic-bezier(0.68,-0.55,0.265,1.55)}.site-layout{display:flex;flex-direction:column;min-height:100vh}.container{margin:0 auto;max-width:var(--container-7xl);padding:0 var(--spacing-lg);width:100%}.container--sm{max-width:var(--container-3xl)}.container--md{max-width:var(--container-4xl)}.grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg)}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.card{background:var(--background-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-xl);transition:all var(--transition-normal)}.card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.tag{background:var(--background-accent);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);display:inline-flex;font-family:var(--font-family-mono);font-size:var(--font-size-xs);padding:4px 10px}.tag--primary{border-color:var(--primary-color);color:var(--primary-color)}.page-title{align-items:center;color:var(--text-primary);display:flex;font-family:var(--font-family-heading);font-size:clamp(2.25rem,5vw,3rem);font-weight:700;gap:16px;letter-spacing:-.5px;margin:0}.page-title svg{color:var(--primary-color);flex-shrink:0;font-size:.7em}.page-subtitle{color:var(--text-secondary);font-size:var(--font-size-lg);line-height:1.6;margin-top:var(--spacing-sm)}.error-state,.loading-state{align-items:center;color:var(--text-muted);display:flex;font-family:var(--font-family-mono);font-size:var(--font-size-sm);gap:var(--spacing-sm);letter-spacing:.5px;padding:var(--spacing-xl) 0;text-transform:uppercase}.error-state{color:var(--error-color)}.loading-state:before{animation:pulse 1.4s infinite;background:var(--primary-color);border-radius:50%;content:"";flex-shrink:0;height:8px;width:8px}.skeleton,.skeleton-avatar,.skeleton-button,.skeleton-card,.skeleton-text{background:var(--background-accent);border-radius:var(--radius-sm);overflow:hidden;position:relative}.skeleton-avatar{border-radius:var(--radius-lg)}.skeleton-card{border-radius:var(--radius-md)}.skeleton-button{border-radius:var(--radius-sm)}.skeleton-avatar:after,.skeleton-button:after,.skeleton-card:after,.skeleton-text:after,.skeleton:after{animation:skeleton-shimmer 1.6s infinite;background:linear-gradient(90deg,#0000,#0f172a0f,#0000);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;padding-bottom:var(--spacing-4xl)}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}body,html{margin:0;max-width:100vw;overflow-x:hidden;padding:0}*{box-sizing:border-box}.header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid var(--border-light);left:0;position:fixed;top:0;width:100%;z-index:9999}.header:before{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));content:"";height:3px;left:0;position:absolute;right:0;top:0}.header .container{margin:0;max-width:100%!important;padding:0 var(--spacing-xl);width:100%}.header-content{height:64px;justify-content:space-between;padding-left:80px;padding-right:80px}.header-content,.header-logo{align-items:center;display:flex}.header-logo{font-size:1.2rem;padding:6px 10px}.main-nav{align-items:center;display:flex;gap:var(--spacing-lg)}.nav-links{display:flex;gap:var(--spacing-xs)}.nav-link{color:var(--text-secondary);font-size:1rem;font-weight:500;gap:7px;letter-spacing:1px;padding:8px 12px;position:relative;transition:all var(--transition-normal)}.nav-link,.nav-link-icon{align-items:center;display:flex}.nav-link-icon{font-size:.9rem}.nav-link.active,.nav-link:hover{color:var(--primary-color)}.nav-link.active:after{background:var(--primary-color);border-radius:var(--radius-full);bottom:-1px;box-shadow:0 0 8px #2563eb66;content:"";height:2px;left:12px;position:absolute;right:12px}.avatar{border-radius:4px;height:32px;object-fit:cover;width:32px}.avatar,.menu-toggle{border:1px solid var(--border-light)}.menu-toggle{align-items:center;background:#0000;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;display:none;font-size:1.2rem;height:40px;justify-content:center;transition:all var(--transition-normal);width:40px}.menu-toggle:hover{border-color:var(--primary-color);color:var(--primary-color)}.mobile-nav{border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md) 0 var(--spacing-lg)}.mobile-nav-link{align-items:center;border-radius:var(--radius-sm);color:var(--text-secondary);display:flex;font-size:1rem;font-weight:500;gap:12px;padding:12px 10px;transition:all var(--transition-normal)}.mobile-nav-link.active,.mobile-nav-link:hover{background:var(--primary-gradient-subtle);color:var(--primary-color)}.mobile-nav-icon{align-items:center;display:flex;font-size:1.1rem}@media (max-width:900px){.header-content{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.main-nav{display:none}.menu-toggle{display:flex}}.footer{background:var(--background-primary);padding:var(--spacing-xl) 0;position:relative;width:100%}.footer:before{background:linear-gradient(90deg,var(--primary-color),var(--secondary-color));content:"";height:3px;left:0;position:absolute;right:0;top:0}.footer .container{box-sizing:border-box;max-width:100%!important;padding:0 var(--spacing-xl);width:100%}.footer-content{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between}.footer-copyright{color:var(--text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-xs);margin:0}.footer-actions{align-items:center;display:flex;gap:var(--spacing-md)}.social-links{display:flex;gap:var(--spacing-sm)}.back-to-top,.social-link{align-items:center;background:var(--background-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all var(--transition-normal);width:36px}.back-to-top:hover,.social-link:hover{border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-2px)}@media (max-width:600px){.footer-content{flex-direction:column;text-align:center}}.home-page{background:var(--background-primary);width:100%}.hero-section{align-items:center;background:radial-gradient(circle at 20% 30%,#2563eb0d,#0000 40%),var(--background-primary);display:flex;min-height:100vh;padding:var(--spacing-5xl) 0}.hero-section .container{margin:0 auto;max-width:1400px;width:100%}.hero-content{grid-gap:var(--spacing-5xl);align-items:start;display:grid;gap:var(--spacing-5xl);grid-template-columns:320px 1fr}.hero-avatar{align-items:flex-start;display:flex;flex-direction:column;gap:var(--spacing-xl)}.avatar-image{border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);height:300px;object-fit:cover;transition:transform var(--transition-normal);width:300px}.avatar-image:hover{border-color:var(--primary-color);transform:translateY(-5px)}.avatar-status{align-items:center;background:#04785714;border:1px solid #04785733;border-radius:var(--radius-sm);color:var(--success-color);display:inline-flex;font-size:.75rem;font-weight:500;gap:var(--spacing-sm);letter-spacing:.5px;padding:10px 16px}.status-dot{animation:pulse 2s infinite;background:var(--success-color);box-shadow:0 0 1px var(--success-color)}.hero-text{display:flex;flex-direction:column;gap:var(--spacing-xl);padding-top:var(--spacing-md)}.hero-title{background:linear-gradient(120deg,var(--text-primary) 30%,var(--primary-color) 95%);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:4rem;font-weight:800;letter-spacing:-2px;line-height:1.1;margin:0}.hero-subtitle{color:var(--text-secondary);font-size:1.75rem;font-weight:400;margin:0;max-width:800px}.hero-location{align-items:center;color:var(--text-muted);display:flex;font-size:var(--font-size-md);gap:var(--spacing-sm)}.hero-description{color:var(--text-secondary);font-size:1.2rem;line-height:1.8;margin:var(--spacing-md) 0;max-width:750px}.hero-actions{display:flex;gap:var(--spacing-xl);margin-top:var(--spacing-lg)}.btn-lg{align-items:center;border-radius:var(--radius-sm);display:flex;font-size:.85rem;gap:12px;letter-spacing:1px;padding:16px 32px;text-transform:uppercase;transition:all .3s ease}.btn-primary{background:var(--primary-color);border:1px solid var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 10px 20px #2563eb40;transform:translateY(-2px)}.btn-outline{background:#0000;border:1px solid var(--border-light);color:var(--text-primary)}.btn-outline:hover{background:var(--background-secondary);border-color:var(--text-primary)}@media (max-width:1024px){.hero-content{gap:var(--spacing-3xl);grid-template-columns:1fr}.hero-avatar,.hero-text{align-items:center}.hero-text{text-align:center}.hero-title{font-size:3rem}.hero-actions{justify-content:center}}@media (max-width:768px){.hero-title{font-size:2.5rem}.avatar-image{height:200px;width:200px}}.resume-page{background:var(--background-primary);font-family:var(--font-family-primary);min-height:100vh;padding-top:var(--spacing-5xl)}.resume-page .container{box-sizing:border-box;max-width:100%!important;padding:0 var(--spacing-2xl);width:100%}.resume-grid{grid-gap:100px;display:grid;gap:100px;grid-template-columns:350px 1fr}.resume-group{margin-bottom:100px;scroll-margin-top:100px}.resume-group .page-title{margin-bottom:40px}.resume-quicknav{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:56px}.resume-quicknav-link{align-items:center;background:var(--background-secondary);border:1px solid var(--border-light);border-radius:var(--radius-full);color:var(--text-secondary);display:inline-flex;font-size:.85rem;font-weight:600;gap:8px;padding:10px 16px;transition:all var(--transition-normal)}.resume-quicknav-link:hover{background:var(--primary-gradient-subtle);border-color:var(--primary-color);color:var(--primary-color)}.resume-list{border-left:2px solid var(--primary-color);display:flex;flex-direction:column;gap:20px;padding-left:24px}.resume-group--formation .resume-list{border-left-color:var(--secondary-color)}.resume-item{background:var(--background-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:28px;position:relative;transition:all var(--transition-normal)}.resume-item:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.resume-item--ongoing{background:var(--secondary-gradient-subtle);border-color:var(--secondary-color)}.resume-item--ongoing:hover{border-color:var(--secondary-color);box-shadow:var(--shadow-lg)}.date{color:var(--primary-color);display:flex;font-family:var(--font-family-mono);font-size:.8rem;font-weight:600;gap:8px;margin-bottom:8px}.date,.ongoing-badge{align-items:center;letter-spacing:.04em;text-transform:uppercase}.ongoing-badge{background:var(--secondary-gradient-subtle);border-radius:var(--radius-full);color:var(--secondary-color);display:inline-flex;font-size:.7rem;font-weight:700;padding:2px 10px}.title{color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1.25;margin:5px 0}.organization{display:block;font-size:1rem;font-weight:600;letter-spacing:.02em;margin-bottom:15px}.desc,.organization{color:var(--text-secondary)}.desc{font-size:1.05rem;line-height:1.7;max-width:850px}.resume-section-title{align-items:center;color:var(--text-primary);display:flex;font-family:var(--font-family-heading);font-size:1.1rem;font-weight:700;gap:10px;margin:0 0 20px}.resume-section-title svg{color:var(--primary-color)}.skills-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:40px}.skill-chip{background:var(--background-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:10px 8px;text-align:center;transition:border-color var(--transition-normal)}.skill-chip:hover{border-color:var(--primary-color)}.skill-chip p{color:var(--text-secondary);font-size:.8rem;font-weight:500;margin:0}.resume-btn{align-items:center;border:1px solid var(--primary-color);border-radius:var(--radius-sm);color:var(--primary-color);display:flex;font-weight:700;gap:8px;justify-content:center;padding:16px;text-align:center;text-decoration:none;transition:.3s ease}.resume-btn:hover{background:var(--primary-gradient-subtle)}@media (max-width:1100px){.resume-grid{gap:50px;grid-template-columns:1fr}.resume-left{position:static}}.skills-page-tech{align-items:center;background:var(--background-primary);display:flex;flex-direction:column;min-height:100vh;padding-bottom:var(--spacing-5xl)}.skills-page-tech .container{box-sizing:border-box;max-width:1440px;padding:0 var(--spacing-2xl);width:100%}.tech-header{margin-bottom:var(--spacing-5xl);padding:var(--spacing-5xl) 0 0 0;width:100%}.tech-section{margin-bottom:80px;width:100%}.section-meta{align-items:center;border-left:3px solid var(--primary-color);display:flex;gap:15px;margin-bottom:35px;padding-left:20px}.section-index{color:var(--primary-color);font-family:var(--font-family-mono);font-size:.9rem;font-weight:700}.tech-section:nth-of-type(2n) .section-meta{border-left-color:var(--secondary-color)}.tech-section:nth-of-type(2n) .section-index{color:var(--secondary-color)}.section-label{color:var(--text-primary);font-family:var(--font-family-heading);font-size:1.4rem;font-weight:700;margin:0;text-transform:uppercase}.tech-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));justify-content:center}@media (min-width:1300px){.tech-grid{grid-template-columns:repeat(5,1fr)}}.tech-card{background:var(--background-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px;transition:all var(--transition-normal)}.tech-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg);transform:translateY(-5px)}.card-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:18px}.skill-name{color:var(--text-primary);font-family:var(--font-family-heading);font-size:1.1rem;font-weight:700}.skill-level-text{color:var(--primary-color);font-family:var(--font-family-mono);font-size:.7rem;text-transform:uppercase}.progress-track{background:var(--background-accent);border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--primary-color),var(--primary-dark));height:100%}.tech-section:nth-of-type(2n) .tech-card:hover{border-color:var(--secondary-color)}.tech-section:nth-of-type(2n) .skill-level-text{color:var(--secondary-color)}.tech-section:nth-of-type(2n) .progress-fill{background:linear-gradient(90deg,var(--secondary-color),var(--secondary-dark))}.projects-page{align-items:center;background:var(--background-primary);display:flex;flex-direction:column;min-height:100vh;padding-bottom:var(--spacing-5xl)}.projects-page .container{box-sizing:border-box;max-width:1400px!important;padding:0 var(--spacing-2xl);width:100%}.page-header{padding:var(--spacing-5xl) 0 0 0;width:100%}.projects-filters{display:flex;flex-wrap:wrap;gap:12px;margin:var(--spacing-4xl) 0;width:100%}.filter-btn{background:var(--background-secondary);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:var(--font-family-mono);font-size:.7rem;padding:8px 16px;text-transform:uppercase;transition:all var(--transition-normal)}.filter-btn.active,.filter-btn:hover{background:var(--primary-gradient-subtle);border-color:var(--primary-color);color:var(--primary-color)}.projects-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));justify-content:center;width:100%}@media (min-width:1200px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.project-card{background:var(--background-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all var(--transition-normal)}.project-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-xl);transform:translateY(-5px)}.project-card-skeleton{aspect-ratio:3/4;border-radius:var(--radius-md)}.project-image{aspect-ratio:16/9;background-position:50%;background-size:cover;border-bottom:1px solid var(--border-light);position:relative;width:100%}.project-image:after{background:linear-gradient(180deg,#0000001a,#0009);content:"";inset:0;position:absolute}.project-type-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;border:1px solid #ffffff1a;color:var(--text-white);font-family:var(--font-family-mono);font-size:10px;left:15px;padding:4px 10px;position:absolute;text-transform:uppercase;top:15px;z-index:2}.project-info{flex-grow:1;padding:24px}.project-info h3{align-items:center;color:var(--text-primary);display:flex;font-family:var(--font-family-heading);font-size:1.4rem;font-weight:700;gap:8px;margin-bottom:12px}.project-link-icon{color:var(--text-muted);font-size:.85rem}.project-info p{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:20px}.tech-tag{background:var(--secondary-gradient-subtle);border:1px solid var(--secondary-color);border-radius:var(--radius-sm);color:var(--secondary-color);display:inline-block;font-family:var(--font-family-mono);font-size:10px;margin-bottom:8px;margin-right:8px;padding:4px 10px}.project-meta{align-items:center;background:var(--background-secondary);border-top:1px solid var(--border-light);display:flex;justify-content:space-between;padding:16px 24px}.project-date,.project-status{color:var(--text-muted);font-family:var(--font-family-mono);font-size:.8rem}.project-date{gap:6px}.project-date,.project-status{align-items:center;display:flex}.status-dot{border-radius:50%;display:inline-block;height:8px;margin-right:8px;width:8px}.main-card-link{inset:0;position:absolute;z-index:5}@media (max-width:768px){.projects-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=main.4e95e9ca.css.map*/