:root{--color-primary:#2563eb;--color-secondary:#1e40af;--color-accent:#f59e0b;--color-background:#fff;--color-text:#1f2937;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-size-sm:.875rem;--font-size-base: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;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}h1,h2,h3,h4,h5,h6{margin-bottom:var(--spacing-md);font-weight:600;line-height:1.2}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-secondary)}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none}.container{max-width:1200px;padding:0 var(--spacing-lg);margin:0 auto}.btn{padding:var(--spacing-sm)var(--spacing-lg);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:500;transition:background-color .2s;display:inline-block}.btn:hover{background-color:var(--color-secondary);color:#fff}.btn-accent{background-color:var(--color-accent)}.btn-accent:hover{background-color:var(--color-accent);opacity:.9}.text-on-primary{color:#fff}.text-on-background{color:var(--color-text)}.loading-container{justify-content:center;align-items:center;gap:var(--spacing-lg);flex-direction:column;min-height:100vh;display:flex}.loading-spinner{border:4px solid #2563eb1a;border-top-color:var(--color-primary);border-radius:50%;width:50px;height:50px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{font-size:var(--font-size-lg);color:var(--color-text);margin:0}.error-container{min-height:100vh;padding:var(--spacing-xl);justify-content:center;align-items:center;display:flex}.error-message{text-align:center;max-width:600px;padding:var(--spacing-2xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background-color:#fee2e2;border:1px solid #fca5a5}.error-message h2{color:#991b1b;margin-bottom:var(--spacing-md)}.error-message p{color:#7f1d1d;font-size:var(--font-size-base);margin-bottom:var(--spacing-lg)}.retry-button{padding:var(--spacing-sm)var(--spacing-lg);color:#fff;border-radius:var(--radius-md);font-weight:500;font-size:var(--font-size-base);cursor:pointer;background-color:#dc2626;border:none;transition:background-color .2s}.retry-button:hover{background-color:#991b1b}.error-boundary{min-height:100vh;padding:var(--spacing-xl);justify-content:center;align-items:center;display:flex}.error-boundary .error-message{background-color:#fef3c7;border-color:#fcd34d}.error-boundary .error-message h2{color:#78350f}.error-boundary .error-message p{color:#92400e}.app{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;padding-top:80px}.navigation{background-color:var(--color-background);box-shadow:var(--shadow-sm);z-index:1000;border-bottom:1px solid #0000001a;position:fixed;top:0;left:0;right:0}.nav-container{max-width:1200px;padding:var(--spacing-md)var(--spacing-lg);justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin:0 auto;display:flex}.nav-logo{align-items:center;transition:transform .2s;display:flex}.nav-logo:hover{transform:scale(1.05)}.nav-links{gap:var(--spacing-xl);align-items:center;display:flex}.nav-link{color:var(--color-text);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);font-weight:500;transition:all .2s}.nav-link:hover{color:var(--color-primary);background-color:#2563eb1a}.nav-link.active{color:var(--color-primary);background-color:#2563eb1a;font-weight:600}.social-links{gap:var(--spacing-md);align-items:center;display:flex}.social-link{color:var(--color-text);padding:var(--spacing-sm);border-radius:var(--radius-md);justify-content:center;align-items:center;transition:all .2s;display:flex}.social-link:hover{color:var(--color-primary);background-color:#2563eb1a}.theme-toggle{transition:transform .2s}.theme-toggle:hover{transform:scale(1.1)}.theme-toggle svg{display:block}.theme-toggle-mobile{align-items:center;gap:var(--spacing-sm);display:flex}.hamburger{padding:var(--spacing-sm);cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;display:none}.hamburger-line{background-color:var(--color-text);border-radius:2px;width:25px;height:3px;transition:all .3s}.hamburger-line.open:first-child{transform:rotate(45deg)translate(8px,8px)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:rotate(-45deg)translate(7px,-7px)}@media (width<=768px){.hamburger{display:flex}.nav-container{padding:var(--spacing-sm)var(--spacing-md);position:relative}.nav-links{background-color:var(--color-background);box-shadow:var(--shadow-md);border-bottom:1px solid #0000001a;flex-direction:column;gap:0;max-height:0;transition:max-height .3s;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nav-links.open{max-height:400px}.nav-link-external{align-items:center;gap:var(--spacing-sm);display:flex}.nav-link-external svg{flex-shrink:0}.nav-link{padding:var(--spacing-md);text-align:left;border-bottom:1px solid #0000000d;border-radius:0;width:100%}.nav-link:last-child{border-bottom:none}.social-links{display:none}.main-content{padding-top:60px}.container{padding:0 var(--spacing-md)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}.btn{padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-size-sm)}.landing-page{padding:var(--spacing-xl)var(--spacing-md)}.hero{padding:var(--spacing-xl)0}.hero-name{font-size:var(--font-size-3xl)}.hero-title{font-size:var(--font-size-xl)}.hero-tagline{font-size:var(--font-size-base);padding:0 var(--spacing-sm)}.section-title{font-size:var(--font-size-2xl)}.projects-grid{gap:var(--spacing-lg);grid-template-columns:1fr}.project-card{padding:var(--spacing-lg)}.project-name{font-size:var(--font-size-lg)}.project-description{font-size:var(--font-size-sm);min-height:auto}.project-technologies{min-height:auto}.tech-tag{font-size:.75rem}.project-link{padding:var(--spacing-xs)var(--spacing-sm);font-size:.75rem}.about-page{padding:var(--spacing-xl)var(--spacing-md)}.about-header{padding:var(--spacing-xl)0}.profile-image{width:150px;height:150px;margin-bottom:var(--spacing-lg)}.about-section{padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.page-title{font-size:var(--font-size-3xl)}.profile-subtitle{font-size:var(--font-size-lg)}.section-heading{font-size:var(--font-size-xl)}.about-text{font-size:var(--font-size-base)}.about-text p{margin-bottom:var(--spacing-md)}.skills-grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.skill-tag{font-size:var(--font-size-sm);padding:var(--spacing-xs)var(--spacing-sm)}.interests-list li{font-size:var(--font-size-base);padding-left:var(--spacing-lg)}.experience-page{padding:var(--spacing-xl)var(--spacing-md)}.experience-page .page-title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-xl)}.timeline-section{margin-bottom:var(--spacing-xl)}.timeline-section-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg);padding-left:40px}.timeline-item{padding-left:40px;padding-bottom:var(--spacing-xl)}.timeline-item:before{left:11px}.timeline-marker{width:12px;height:12px;left:6px}.timeline-content{padding:var(--spacing-lg)}.timeline-header{gap:var(--spacing-sm);flex-direction:column;align-items:flex-start}.timeline-date{white-space:normal;align-self:flex-start}.timeline-title{font-size:var(--font-size-lg)}.timeline-subtitle{font-size:var(--font-size-base)}.timeline-description{font-size:var(--font-size-sm)}.timeline-achievements li{font-size:var(--font-size-sm);padding-left:var(--spacing-md)}.projects-page{padding:var(--spacing-xl)var(--spacing-md)}.projects-page .page-title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-xl)}.publications-page{padding:var(--spacing-xl)var(--spacing-md)}.publications-page .page-title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-xl)}.certifications-page{padding:var(--spacing-xl)var(--spacing-md)}.certifications-page .page-title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-xl)}.projects-table-container{border-radius:var(--radius-md)}.projects-table thead{display:none}.projects-table,.projects-table tbody,.projects-table tr,.projects-table td{display:block}.projects-table tr{margin-bottom:var(--spacing-lg);border-radius:var(--radius-md);border:1px solid #0000001a;overflow:hidden}.projects-table tr:last-child{margin-bottom:0}.projects-table tbody tr:hover{background-color:#0000}.projects-table td{padding:var(--spacing-md);border-bottom:1px solid #0000000d}.projects-table td:last-child{border-bottom:none}.projects-table td:before{content:attr(data-label);color:var(--color-primary);margin-bottom:var(--spacing-xs);font-weight:600;font-size:var(--font-size-sm);display:block}.project-name-cell{background-color:var(--color-primary);color:#fff;font-size:var(--font-size-lg);padding:var(--spacing-md)var(--spacing-lg)}.project-name-cell:before{display:none}.project-description-cell,.project-technologies-cell,.project-links-cell{min-width:auto;max-width:none}.project-description-cell{font-size:var(--font-size-sm);line-height:1.5}.tech-tags-list{gap:var(--spacing-xs)}.project-links-list{flex-flow:wrap}.project-table-link{padding:var(--spacing-xs)var(--spacing-sm);font-size:.75rem}.modal-overlay{padding:var(--spacing-md);padding-top:var(--spacing-xl);align-items:flex-start}.modal-content{max-height:85vh}.modal-header{padding:var(--spacing-lg)}.modal-title{font-size:var(--font-size-xl)}.modal-close{width:28px;height:28px;font-size:1.5rem}.contact-form{padding:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-md)}.form-label,.form-input,.form-textarea{font-size:var(--font-size-sm)}.form-textarea{min-height:100px}.form-actions{gap:var(--spacing-sm);flex-direction:column-reverse}.form-actions button{width:100%}.alert{padding:var(--spacing-sm);font-size:var(--font-size-sm)}}@media (width>=769px){.nav-link-external{display:none}}@media (width<=480px){.nav-container{padding:var(--spacing-xs)var(--spacing-sm)}.main-content{padding-top:55px}.social-link svg{width:20px;height:20px}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-lg)}.container{padding:0 var(--spacing-sm)}.landing-page{padding:var(--spacing-lg)var(--spacing-sm)}.hero{padding:var(--spacing-lg)0}.hero-name{font-size:var(--font-size-2xl)}.hero-title{font-size:var(--font-size-lg)}.hero-tagline{font-size:var(--font-size-sm)}.section-title{font-size:var(--font-size-xl)}.projects-grid{gap:var(--spacing-md)}.project-card{padding:var(--spacing-md)}.project-name{font-size:var(--font-size-base)}.about-page{padding:var(--spacing-lg)var(--spacing-sm)}.about-header{padding:var(--spacing-lg)0}.profile-image{width:120px;height:120px;margin-bottom:var(--spacing-md)}.about-section{padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.page-title{font-size:var(--font-size-2xl)}.profile-subtitle{font-size:var(--font-size-base)}.section-heading{font-size:var(--font-size-lg)}.about-text{font-size:var(--font-size-sm)}.skills-grid{gap:var(--spacing-xs);grid-template-columns:1fr}.skill-tag{font-size:.75rem}.interests-list li{font-size:var(--font-size-sm);padding-left:var(--spacing-md)}.experience-page{padding:var(--spacing-lg)var(--spacing-sm)}.experience-page .page-title{font-size:var(--font-size-2xl)}.timeline-section-title{font-size:var(--font-size-lg);padding-left:30px}.timeline-item{padding-left:30px;padding-bottom:var(--spacing-lg)}.timeline-item:before{left:7px}.timeline-marker{border:2px solid var(--color-background);width:10px;height:10px;box-shadow:0 0 0 2px var(--color-primary);left:3px}.education-item .timeline-marker{box-shadow:0 0 0 2px var(--color-accent)}.timeline-content{padding:var(--spacing-md)}.timeline-title{font-size:var(--font-size-base)}.timeline-subtitle{font-size:var(--font-size-sm)}.timeline-description,.timeline-achievements li{font-size:.75rem}.timeline-achievements li{padding-left:var(--spacing-sm)}.projects-page{padding:var(--spacing-lg)var(--spacing-sm)}.projects-page .page-title{font-size:var(--font-size-2xl)}.publications-page{padding:var(--spacing-lg)var(--spacing-sm)}.publications-page .page-title{font-size:var(--font-size-2xl)}.certifications-page{padding:var(--spacing-lg)var(--spacing-sm)}.certifications-page .page-title{font-size:var(--font-size-2xl)}.projects-table tr{margin-bottom:var(--spacing-md)}.projects-table td{padding:var(--spacing-sm)var(--spacing-md)}.project-name-cell{font-size:var(--font-size-base);padding:var(--spacing-sm)var(--spacing-md)}.modal-overlay{padding:var(--spacing-sm);padding-top:var(--spacing-md)}.modal-content{max-height:90vh}.modal-header{padding:var(--spacing-md)}.modal-title{font-size:var(--font-size-lg)}.modal-close{width:24px;height:24px;font-size:1.25rem}.contact-form{padding:var(--spacing-md)}.form-input,.form-textarea{padding:var(--spacing-sm);font-size:.875rem}.form-textarea{min-height:80px}}.landing-page{max-width:1200px;padding:var(--spacing-2xl)var(--spacing-lg);margin:0 auto}.hero{text-align:center;padding:var(--spacing-2xl)0;margin-bottom:var(--spacing-2xl)}.hero-name{font-size:var(--font-size-4xl);color:var(--color-text);margin-bottom:var(--spacing-sm);font-weight:700}.hero-title{font-size:var(--font-size-2xl);color:var(--color-primary);margin-bottom:var(--spacing-md);font-weight:500}.hero-tagline{font-size:var(--font-size-lg);color:var(--color-text);opacity:.8;max-width:600px;margin:0 auto}.featured-projects{margin-top:var(--spacing-2xl)}.section-title{font-size:var(--font-size-3xl);color:var(--color-text);margin-bottom:var(--spacing-xl);text-align:center;font-weight:600}.projects-grid{gap:var(--spacing-xl);margin-top:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-auto-rows:1fr;display:grid}.project-card{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);border:1px solid #0000001a;grid-template-rows:auto auto 1fr auto;gap:0;height:100%;transition:transform .2s,box-shadow .2s;display:grid}.project-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px -5px #2563eb4d,0 10px 15px -3px #0000001a}.project-name{font-size:var(--font-size-xl);color:var(--color-text);margin-bottom:var(--spacing-md);font-weight:600}.project-description{font-size:var(--font-size-base);color:var(--color-text);opacity:.8;margin-bottom:var(--spacing-lg);min-height:4.8em;line-height:1.6}.project-technologies{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap;align-content:flex-start;min-height:70px;display:flex}.tech-tag{padding:var(--spacing-xs)var(--spacing-sm);color:var(--color-primary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background-color:#2563eb1a;font-weight:500;display:inline-block}.project-links{gap:var(--spacing-md);margin-top:var(--spacing-lg);display:flex}.project-link{padding:var(--spacing-sm)var(--spacing-md);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:500;font-size:var(--font-size-sm);transition:background-color .2s;display:inline-block}.project-link:hover{background-color:var(--color-secondary);color:#fff}.about-page{max-width:900px;padding:var(--spacing-2xl)var(--spacing-lg);margin:0 auto}.about-header{text-align:center;padding:var(--spacing-2xl)0;margin-bottom:var(--spacing-xl)}.profile-image{object-fit:cover;width:200px;height:200px;margin:0 auto var(--spacing-xl);border:4px solid var(--color-primary);box-shadow:var(--shadow-lg);border-radius:50%;display:block}.page-title{font-size:var(--font-size-4xl);color:var(--color-text);margin-bottom:var(--spacing-sm);font-weight:700}.profile-subtitle{font-size:var(--font-size-xl);color:var(--color-primary);margin-bottom:0;font-weight:500}.about-section{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-2xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-md)}.section-heading{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary);font-weight:600}.about-text{font-size:var(--font-size-lg);color:var(--color-text);line-height:1.8}.about-text p{margin-bottom:var(--spacing-lg)}.skills-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.skill-tag{padding:var(--spacing-sm)var(--spacing-md);color:var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-base);text-align:center;background-color:#2563eb1a;font-weight:500;transition:all .2s;display:inline-block}.skill-tag:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px)}.interests-list{padding:0;list-style:none}.interests-list li{font-size:var(--font-size-lg);color:var(--color-text);padding:var(--spacing-sm)0;padding-left:var(--spacing-xl);line-height:1.8;position:relative}.interests-list li:before{content:"→";color:var(--color-primary);font-weight:700;font-size:var(--font-size-xl);position:absolute;left:0}.experience-page{max-width:900px;padding:var(--spacing-2xl)var(--spacing-lg);margin:0 auto}.experience-page .page-title{text-align:center;margin-bottom:var(--spacing-2xl)}.timeline{position:relative}.timeline-section{margin-bottom:var(--spacing-2xl)}.timeline-section-title{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--spacing-xl);padding-left:50px;font-weight:600}.timeline-item{padding-left:50px;padding-bottom:var(--spacing-2xl);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background-color:var(--color-primary);opacity:.3;width:2px;position:absolute;top:30px;bottom:0;left:15px}.timeline-item:last-child:before{display:none}.timeline-marker{background-color:var(--color-primary);border:3px solid var(--color-background);width:16px;height:16px;box-shadow:0 0 0 3px var(--color-primary);z-index:1;border-radius:50%;position:absolute;top:8px;left:8px}.timeline-content{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);border:1px solid #0000001a;transition:transform .2s,box-shadow .2s}.timeline-item:hover .timeline-content{transform:translateY(-2px);box-shadow:0 10px 30px -5px #2563eb4d,0 10px 15px -3px #0000001a}.timeline-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);display:flex}.timeline-title-section{flex:1}.timeline-title{font-size:var(--font-size-xl);color:var(--color-text);margin-bottom:var(--spacing-xs);font-weight:600}.timeline-subtitle{font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:0;font-weight:500}.timeline-date{font-size:var(--font-size-sm);color:var(--color-text);opacity:.7;white-space:nowrap;padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);background-color:#2563eb1a;font-weight:500}.timeline-description{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:var(--spacing-md);line-height:1.6}.timeline-achievements{margin:0;padding:0;list-style:none}.timeline-achievements li{font-size:var(--font-size-base);color:var(--color-text);padding:var(--spacing-xs)0;padding-left:var(--spacing-lg);line-height:1.6;position:relative}.timeline-achievements li:before{content:"→";color:var(--color-primary);font-weight:700;position:absolute;left:0}.education-item .timeline-marker{background-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent)}.projects-page{max-width:1400px;padding:var(--spacing-2xl)var(--spacing-lg);margin:0 auto}.projects-page .page-title{text-align:center;margin-bottom:var(--spacing-2xl)}.publications-page{max-width:1200px;padding:var(--spacing-2xl)var(--spacing-lg);margin:0 auto}.publications-page .page-title{text-align:center;margin-bottom:var(--spacing-2xl)}.certifications-page{max-width:1200px;padding:var(--spacing-2xl)var(--spacing-lg);margin:0 auto}.certifications-page .page-title{text-align:center;margin-bottom:var(--spacing-2xl)}.projects-table-container{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid #0000001a;overflow-x:auto}.projects-table{border-collapse:collapse;width:100%;font-size:var(--font-size-base)}.projects-table thead{background-color:var(--color-primary);color:#fff}.projects-table th{padding:var(--spacing-lg);text-align:left;font-weight:600;font-size:var(--font-size-base);white-space:nowrap}.projects-table tbody tr{border-bottom:1px solid #0000001a;transition:background-color .2s}.projects-table tbody tr:last-child{border-bottom:none}.projects-table tbody tr:hover{background-color:#2563eb0d}.projects-table td{padding:var(--spacing-lg);vertical-align:top}.project-name-cell{color:var(--color-text);min-width:150px;font-weight:600}.project-description-cell{color:var(--color-text);min-width:250px;max-width:400px;line-height:1.6}.project-technologies-cell{min-width:200px}.tech-tags-list{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.project-links-cell{min-width:150px}.project-links-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.project-table-link{padding:var(--spacing-xs)var(--spacing-md);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-weight:500;font-size:var(--font-size-sm);text-align:center;white-space:nowrap;transition:background-color .2s;display:inline-block}.project-table-link:hover{background-color:var(--color-secondary);color:#fff}.modal-overlay{z-index:2000;padding:var(--spacing-lg);background-color:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:var(--color-background);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;animation:.3s slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--spacing-xl);border-bottom:1px solid #0000001a;justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-2xl);color:var(--color-text);margin:0;font-weight:600}.modal-close{color:var(--color-text);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:2rem;transition:background-color .2s;display:flex}.modal-close:hover:not(:disabled){background-color:#0000001a}.modal-close:disabled{opacity:.5;cursor:not-allowed}.contact-form{padding:var(--spacing-xl)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{color:var(--color-text);margin-bottom:var(--spacing-sm);font-weight:500;font-size:var(--font-size-base);display:block}.form-input,.form-textarea{width:100%;padding:var(--spacing-md);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-background);border:1px solid #0003;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.form-input.error,.form-textarea.error{border-color:#dc2626}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #dc26261a}.form-input:disabled,.form-textarea:disabled{cursor:not-allowed;opacity:.7;background-color:#0000000d}.form-textarea{resize:vertical;min-height:120px}.form-error{color:#dc2626;font-size:var(--font-size-sm);margin-top:var(--spacing-xs);display:block}.form-actions{gap:var(--spacing-md);margin-top:var(--spacing-xl);justify-content:flex-end;display:flex}.btn-secondary{color:var(--color-text);background-color:#0000;border:1px solid #0003}.btn-secondary:hover:not(:disabled){color:var(--color-text);background-color:#0000000d}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.alert{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-base)}.alert-success{color:#065f46;background-color:#d1fae5;border:1px solid #6ee7b7}.alert-error{color:#991b1b;background-color:#fee2e2;border:1px solid #fca5a5}@media (width>=769px) and (width<=1024px){.container{padding:0 var(--spacing-xl)}.nav-container{padding:var(--spacing-md)var(--spacing-xl)}.nav-links{gap:var(--spacing-lg)}.main-content{padding-top:75px}.landing-page{padding:var(--spacing-2xl)var(--spacing-xl)}.hero{padding:var(--spacing-2xl)0}.hero-name{font-size:var(--font-size-4xl)}.hero-title{font-size:var(--font-size-2xl)}.hero-tagline{font-size:var(--font-size-lg);max-width:700px}.projects-grid{gap:var(--spacing-xl);grid-template-columns:repeat(2,1fr)}.about-page{padding:var(--spacing-2xl)var(--spacing-xl)}.profile-image{width:180px;height:180px}.about-section{padding:var(--spacing-xl)}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.experience-page{padding:var(--spacing-2xl)var(--spacing-xl)}.timeline-content{padding:var(--spacing-xl)}.projects-page{padding:var(--spacing-2xl)var(--spacing-xl)}.projects-table{font-size:var(--font-size-sm)}.projects-table th,.projects-table td{padding:var(--spacing-md)}.project-description-cell{max-width:350px}.project-technologies-cell{min-width:180px}.modal-overlay{padding:var(--spacing-xl)}.modal-content{max-width:650px}}@media (width>=1025px){.container{max-width:1200px;padding:0 var(--spacing-2xl)}.nav-container{max-width:1200px;padding:var(--spacing-lg)var(--spacing-2xl)}.nav-links{gap:var(--spacing-2xl)}.main-content{padding-top:85px}.landing-page{max-width:1200px;padding:var(--spacing-2xl)var(--spacing-2xl)}.hero{padding:4rem 0}.hero-name{font-size:3rem}.hero-title{font-size:var(--font-size-2xl)}.hero-tagline{font-size:var(--font-size-xl);max-width:700px}.projects-grid{gap:var(--spacing-2xl);grid-template-columns:repeat(3,1fr)}.about-page{max-width:1000px;padding:var(--spacing-2xl)var(--spacing-2xl)}.profile-image{width:220px;height:220px}.about-section{padding:var(--spacing-2xl)}.about-text{font-size:var(--font-size-lg)}.skills-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.experience-page{max-width:1000px;padding:var(--spacing-2xl)var(--spacing-2xl)}.timeline-content{padding:var(--spacing-2xl)}.timeline-header{gap:var(--spacing-xl)}.projects-page{max-width:1400px;padding:var(--spacing-2xl)var(--spacing-2xl)}.projects-table{font-size:var(--font-size-base)}.projects-table th,.projects-table td{padding:var(--spacing-lg)}.project-description-cell{max-width:450px}.project-technologies-cell{min-width:220px}.project-links-cell{min-width:180px}.modal-overlay{padding:var(--spacing-2xl)}.modal-content{max-width:700px}.modal-header,.contact-form{padding:var(--spacing-2xl)}.form-input,.form-textarea{font-size:var(--font-size-base)}.form-textarea{min-height:140px}}@media (width>=1440px){.container,.nav-container,.landing-page{max-width:1400px}.hero{padding:5rem 0}.hero-name{font-size:3.5rem}.projects-grid{grid-template-columns:repeat(3,1fr);gap:2.5rem}.about-page,.experience-page{max-width:1100px}.projects-page{max-width:1600px}.project-description-cell{max-width:500px}}.typing-cursor{color:var(--color-primary);margin-left:2px;font-weight:300}.education-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.education-card{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);border:1px solid #0000001a;transition:transform .2s,box-shadow .2s}.education-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px -5px #2563eb4d,0 10px 15px -3px #0000001a}.education-degree{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--spacing-sm);font-weight:600}.education-school{font-size:var(--font-size-base);color:var(--color-primary);margin-bottom:var(--spacing-xs);font-weight:500}.education-date{font-size:var(--font-size-sm);color:var(--color-text);opacity:.7;margin-bottom:0}.publications-grid{gap:var(--spacing-xl);margin-top:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));display:grid}.publication-card{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);border:1px solid #0000001a;flex-direction:column;height:100%;transition:transform .2s,box-shadow .2s;display:flex}.publication-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px -5px #2563eb4d,0 10px 15px -3px #0000001a}.publication-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.publication-title{font-size:var(--font-size-xl);color:var(--color-text);flex:1;margin:0;font-weight:600}.publication-link{color:var(--color-text);align-items:center;gap:var(--spacing-xs);text-decoration:none;transition:color .2s;display:flex}.publication-link:hover{color:var(--color-primary)}.external-link-icon{opacity:.7;flex-shrink:0;transition:opacity .2s}.publication-link:hover .external-link-icon{opacity:1}.publication-type-badge{padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);white-space:nowrap;flex-shrink:0;font-weight:500;display:inline-block}.publication-type-badge[data-type=article]{color:#1d4ed8;background-color:#3b82f61a}.publication-type-badge[data-type=blog-post]{color:#047857;background-color:#10b9811a}.publication-type-badge[data-type=white-paper]{color:#6d28d9;background-color:#8b5cf61a}.publication-type-badge[data-type=research-paper]{color:#92400e;background-color:#f59e0b1a}.publication-type-badge[data-type=case-study]{color:#991b1b;background-color:#ef44441a}.publication-type-badge[data-type=technical-guide]{color:#15803d;background-color:#22c55e1a}.publication-type-badge[data-type=conference-paper]{color:#7c3aed;background-color:#a855f71a}.publication-type-badge[data-type=book-chapter]{color:#be185d;background-color:#ec48991a}.publication-type-badge[data-type=other]{color:#374151;background-color:#6b72801a}.publication-description{font-size:var(--font-size-base);color:var(--color-text);opacity:.8;margin-bottom:var(--spacing-lg);flex:1;line-height:1.6}.publication-meta{padding-top:var(--spacing-md);border-top:1px solid #0000001a;margin-top:auto}.publication-date{font-size:var(--font-size-sm);color:var(--color-text);opacity:.7;font-weight:500}.certifications-grid{gap:var(--spacing-xl);margin-top:var(--spacing-xl);flex-wrap:wrap;justify-content:center;max-width:1200px;margin-left:auto;margin-right:auto;display:flex}.certification-card{background-color:var(--color-background);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm);text-align:center;width:160px;height:220px;color:inherit;border:1px solid #0000001a;flex-direction:column;justify-content:space-between;align-items:center;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.certification-card-link:hover{cursor:pointer;transform:translateY(-4px);box-shadow:0 10px 30px -5px #2563eb4d,0 10px 15px -3px #0000001a}.certification-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px -5px #2563eb4d,0 10px 15px -3px #0000001a}.certification-badge-image{object-fit:contain;border-radius:4px;flex-shrink:0;width:120px;height:150px}.certification-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex}.certification-name{font-size:var(--font-size-lg);color:var(--color-text);margin:0 0 var(--spacing-xs)0;text-align:center;font-weight:600;line-height:1.3}.certification-info{align-items:center;gap:var(--spacing-xs);flex-direction:column;flex-grow:1;display:flex}.certification-meta{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.certification-status-badge{padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);white-space:nowrap;flex-shrink:0;font-weight:500;display:inline-block}.certification-status-badge.status-active{color:#15803d;background-color:#22c55e1a}.certification-status-badge.status-expiring{color:#92400e;background-color:#f59e0b1a}.certification-status-badge.status-expired{color:#991b1b;background-color:#ef44441a}.certification-issuer{font-size:var(--font-size-base);color:var(--color-text);margin-bottom:var(--spacing-md)}.certification-dates{margin-bottom:var(--spacing-lg)}.certification-dates>div{font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--spacing-xs)}.certification-dates>div:last-child{margin-bottom:0}.certification-dates strong{color:var(--color-primary);font-weight:600}.no-expiration{color:var(--color-text);opacity:.7}.certification-badge{padding-top:var(--spacing-md);border-top:1px solid #0000001a;margin-top:auto}.credly-link{align-items:center;gap:var(--spacing-xs);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex}.credly-link:hover{color:var(--color-secondary)}.credly-link .external-link-icon{opacity:.7;transition:opacity .2s}.credly-link:hover .external-link-icon{opacity:1}.credly-embed{margin:var(--spacing-sm)0;justify-content:center;align-items:center;width:120px;height:150px;margin-left:auto;margin-right:auto;display:flex;overflow:hidden}.credly-embed iframe{width:120px!important;max-width:120px!important;height:150px!important;max-height:150px!important;box-shadow:none!important;border:none!important;outline:none!important}.credly-embed *,.credly-embed div{box-shadow:none!important;border:none!important;outline:none!important}.credly-badge-loading{margin:var(--spacing-sm)0;justify-content:center;align-items:center;display:flex}.credly-badge-error{margin:var(--spacing-sm)0;padding:var(--spacing-md);border-radius:var(--radius-md);color:#991b1b;text-align:center;background-color:#ef44441a;border:1px solid #ef444433;flex-direction:column;justify-content:center;align-items:center;display:flex}.credly-badge-error p{margin:0 0 var(--spacing-xs)0;font-size:var(--font-size-sm);font-weight:500}.credly-badge-error small{opacity:.7;font-size:.75rem}.credly-link-secondary{align-items:center;gap:var(--spacing-xs);color:var(--color-text);font-size:var(--font-size-sm);opacity:.7;margin-top:var(--spacing-sm);font-weight:400;text-decoration:none;transition:all .2s;display:inline-flex}.credly-link-secondary:hover{color:var(--color-primary);opacity:1}.certification-fallback{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);flex-direction:column;display:flex}.certification-fallback .certification-name{font-size:var(--font-size-base);margin:0}.certification-fallback .certification-issuer{font-size:var(--font-size-sm);color:var(--color-text);opacity:.7}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--color-text);opacity:.7}.empty-state h2{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md);color:var(--color-text)}.empty-state p{font-size:var(--font-size-lg);margin:0}.page-header{text-align:center;margin-bottom:var(--spacing-2xl)}.page-subtitle{font-size:var(--font-size-lg);color:var(--color-text);opacity:.7;max-width:600px;margin:0 auto}@media (width<=768px){.publications-grid{gap:var(--spacing-lg);grid-template-columns:1fr}.publication-card{padding:var(--spacing-lg)}.publication-header{gap:var(--spacing-sm);flex-direction:column;align-items:flex-start}.publication-title{font-size:var(--font-size-lg)}.publication-type-badge{align-self:flex-start}.publication-description{font-size:var(--font-size-sm)}.certifications-grid{gap:var(--spacing-lg);grid-template-columns:1fr}.certification-card{padding:var(--spacing-lg)}.certification-header{gap:var(--spacing-sm);flex-direction:column;align-items:flex-start}.certification-name{font-size:var(--font-size-lg)}.certification-status-badge{align-self:flex-start}.certification-issuer,.certification-dates>div{font-size:var(--font-size-sm)}.credly-embed{min-height:240px}.credly-link-secondary{font-size:.75rem}.page-header{margin-bottom:var(--spacing-xl)}.page-subtitle{font-size:var(--font-size-base);padding:0 var(--spacing-sm)}.empty-state{padding:var(--spacing-xl)var(--spacing-md)}.empty-state h2{font-size:var(--font-size-xl)}.empty-state p{font-size:var(--font-size-base)}}@media (width<=480px){.publications-grid{gap:var(--spacing-md)}.publication-card{padding:var(--spacing-md)}.publication-title{font-size:var(--font-size-base)}.publication-type-badge{font-size:.75rem}.publication-description{font-size:.875rem}.certifications-grid{gap:var(--spacing-md)}.certification-card{padding:var(--spacing-md)}.certification-name{font-size:var(--font-size-base)}.certification-status-badge{font-size:.75rem}.certification-issuer{font-size:var(--font-size-sm)}.certification-dates>div{font-size:.75rem}.credly-embed{min-height:200px}.credly-link-secondary{font-size:.75rem}.page-subtitle{font-size:var(--font-size-sm)}.empty-state h2{font-size:var(--font-size-lg)}.empty-state p{font-size:var(--font-size-sm)}}
/*# sourceMappingURL=frontend.c9ba45f6.css.map */
