﻿:root{--color-primary: #2563eb;--color-primary-dark: #1e40af;--color-secondary: #64748b;--color-accent: #8b5cf6;--color-text: #1e293b;--color-text-light: #64748b;--color-background: #ffffff;--color-background-alt: #f8fafc;--color-border: #e2e8f0;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);--spacing-xs: 0.25rem;--spacing-sm: 0.5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: 0.25rem;--radius-md: 0.5rem;--radius-lg: 0.75rem;--radius-xl: 1rem;--transition-fast: 150ms ease-in-out;--transition-base: 200ms ease-in-out;--transition-slow: 300ms ease-in-out;--font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px}[data-theme=dark]{--color-text: #f1f5f9;--color-text-light: #cbd5e1;--color-background: #0f172a;--color-background-alt: #1e293b;--color-border: #334155;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-background);transition:background-color var(--transition-base),color var(--transition-base)}#main-content{min-height:100vh;padding-top:80px}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}a:focus{outline:2px solid var(--color-primary);outline-offset:2px}img{max-width:100%;height:auto;display:block}ul,ol{padding-left:1.5rem}code{font-family:var(--font-mono);font-size:.875em;background-color:var(--color-background-alt);padding:.125rem .25rem;border-radius:var(--radius-sm)}pre{font-family:var(--font-mono);background-color:var(--color-background-alt);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto}pre code{background-color:rgba(0,0,0,0);padding:0}hr{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-xl) 0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.skip-to-main{position:absolute;top:-40px;left:0;background:var(--color-primary);color:#fff;padding:var(--spacing-sm) var(--spacing-md);z-index:100}.skip-to-main:focus{top:0}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3;color:var(--color-text);margin-bottom:var(--spacing-md)}h1{font-size:2.5rem}@media(min-width: 768px){h1{font-size:3rem}}h2{font-size:2rem}@media(min-width: 768px){h2{font-size:2.5rem}}h3{font-size:1.5rem}@media(min-width: 768px){h3{font-size:1.875rem}}h4{font-size:1.25rem}@media(min-width: 768px){h4{font-size:1.5rem}}h5{font-size:1.125rem}h6{font-size:1rem}p{margin-bottom:var(--spacing-md);line-height:1.7}.section-title{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-xl);text-align:center}@media(min-width: 768px){.section-title{font-size:2.5rem}}.page-title{font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-sm)}@media(min-width: 768px){.page-title{font-size:3rem}}.page-subtitle{font-size:1.25rem;color:var(--color-text-light);margin-bottom:var(--spacing-xl)}strong,b{font-weight:600}em,i{font-style:italic}.text-muted{color:var(--color-text-light)}.text-small{font-size:.875rem}.text-large{font-size:1.125rem}.main-nav{position:fixed;top:0;left:0;right:0;background-color:var(--color-background);border-bottom:1px solid var(--color-border);z-index:1000;box-shadow:var(--shadow-sm)}.nav-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;height:70px}.nav-brand{font-size:1.25rem;font-weight:700;color:var(--color-text)}.nav-brand:hover{color:var(--color-primary)}.nav-toggle{display:block;background:none;border:none;cursor:pointer;padding:var(--spacing-sm)}@media(min-width: 768px){.nav-toggle{display:none}}.nav-toggle .nav-toggle-icon{display:block;width:24px;height:2px;background-color:var(--color-text);position:relative;transition:background-color var(--transition-fast)}.nav-toggle .nav-toggle-icon::before,.nav-toggle .nav-toggle-icon::after{content:"";position:absolute;width:100%;height:2px;background-color:var(--color-text);transition:transform var(--transition-fast)}.nav-toggle .nav-toggle-icon::before{top:-8px}.nav-toggle .nav-toggle-icon::after{bottom:-8px}.nav-toggle[aria-expanded=true] .nav-toggle-icon{background-color:rgba(0,0,0,0)}.nav-toggle[aria-expanded=true] .nav-toggle-icon::before{transform:rotate(45deg) translate(5px, 6px)}.nav-toggle[aria-expanded=true] .nav-toggle-icon::after{transform:rotate(-45deg) translate(5px, -6px)}.nav-menu{display:none;position:absolute;top:70px;left:0;right:0;background-color:var(--color-background);border-bottom:1px solid var(--color-border);padding:var(--spacing-md)}@media(min-width: 768px){.nav-menu{display:flex;position:static;align-items:center;gap:var(--spacing-xl);padding:0;border-bottom:none}}.nav-menu.active{display:block}.nav-links{list-style:none;padding:0;margin:0}@media(min-width: 768px){.nav-links{display:flex;gap:var(--spacing-lg)}}.nav-links li{margin:0}.nav-links a{display:block;padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);font-weight:500;transition:color var(--transition-fast)}.nav-links a:hover,.nav-links a.active{color:var(--color-primary)}@media(min-width: 768px){.nav-links a{padding:var(--spacing-xs) var(--spacing-sm)}}.theme-toggle{background:none;border:none;cursor:pointer;padding:var(--spacing-sm);color:var(--color-text);margin-top:var(--spacing-md);width:100%;text-align:left}@media(min-width: 768px){.theme-toggle{margin-top:0;width:auto}}.theme-toggle .theme-icon{display:inline-block;width:24px;height:24px}.theme-toggle .theme-icon::before{content:"☀️";font-size:1.5rem}.theme-toggle:hover{color:var(--color-primary)}[data-theme=dark] .theme-toggle .theme-icon::before{content:"🌙"}.site-footer{background-color:var(--color-background-alt);border-top:1px solid var(--color-border);padding:var(--spacing-3xl) 0 var(--spacing-xl);margin-top:var(--spacing-3xl)}.footer-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.footer-content{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}@media(min-width: 768px){.footer-content{grid-template-columns:repeat(3, 1fr)}}.footer-section h3{font-size:1.125rem;margin-bottom:var(--spacing-md)}.footer-section p{color:var(--color-text-light);line-height:1.8}.footer-section a{color:var(--color-text-light)}.footer-section a:hover{color:var(--color-primary)}.social-links,.footer-section ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2, 1fr);gap:var(--spacing-sm) var(--spacing-md)}.social-links li,.footer-section ul li{margin-bottom:0}.footer-bottom{text-align:center;padding-top:var(--spacing-xl);border-top:1px solid var(--color-border);color:var(--color-text-light);font-size:.875rem}.btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);font-weight:500;text-align:center;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:2px solid rgba(0,0,0,0);font-size:1rem}.btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-dark);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:rgba(0,0,0,0);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-1px)}.filter-btn{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-background-alt);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;transition:all var(--transition-fast)}.filter-btn:hover{background-color:var(--color-background);border-color:var(--color-primary)}.filter-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.highlight-card,.project-card,.course-card,.person-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:all var(--transition-base)}.highlight-card:hover,.project-card:hover,.course-card:hover,.person-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.featured-badge{background-color:var(--color-accent);color:#fff}.award-badge{background-color:var(--color-warning);color:#fff}.citations-badge{background-color:var(--color-secondary);color:#fff}.category-tag,.language-tag{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-right:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.hero{padding:var(--spacing-3xl) 0;background:linear-gradient(135deg, var(--color-background) 0%, var(--color-background-alt) 100%)}.hero-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);display:grid;grid-template-columns:1fr;gap:var(--spacing-2xl);align-items:center}@media(min-width: 1024px){.hero-container{grid-template-columns:300px 1fr}}.hero-image{text-align:center}.hero-image .profile-photo{width:250px;height:250px;border-radius:50%;object-fit:cover;margin:0 auto;box-shadow:var(--shadow-xl);border:4px solid var(--color-background)}.hero-content .hero-title{margin-bottom:var(--spacing-sm)}.hero-content .hero-subtitle{font-size:1.25rem;color:var(--color-primary);margin-bottom:var(--spacing-xs)}.hero-content .hero-institution{font-size:1.125rem;color:var(--color-text-light);margin-bottom:var(--spacing-xl)}.hero-content .hero-bio{margin-bottom:var(--spacing-xl);font-size:1.0625rem;line-height:1.8}.hero-links{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.social-icons{display:flex;gap:var(--spacing-md)}.social-icons a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:var(--color-background-alt);color:var(--color-text);transition:all var(--transition-fast)}.social-icons a:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px)}.highlights{padding:var(--spacing-3xl) 0}.highlights-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.highlights-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media(min-width: 768px){.highlights-grid{grid-template-columns:repeat(3, 1fr)}}.highlight-card{display:flex;flex-direction:column;height:100%}.highlight-card h3{font-size:1.25rem;margin-bottom:var(--spacing-md);color:var(--color-primary)}.highlight-card .highlight-list{list-style:none;padding:0;margin-bottom:var(--spacing-md);flex-grow:1}.highlight-card .highlight-list li{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.highlight-card .highlight-list li:last-child{border-bottom:none}.highlight-card .highlight-link{color:var(--color-primary);font-weight:500;margin-top:auto}.highlight-card .highlight-link:hover{text-decoration:underline}.pub-venue,.talk-event,.project-desc{font-size:.875rem;color:var(--color-text-light);display:block;margin-top:var(--spacing-xs)}.news{padding:var(--spacing-3xl) 0;background-color:var(--color-background-alt)}.news-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);max-width:var(--container-xl)}.news-timeline{position:relative;padding-left:50px;margin-top:var(--spacing-2xl)}.news-timeline::before{content:"";position:absolute;left:14.5px;top:0;bottom:0;width:3px;background:linear-gradient(to bottom, var(--color-primary), rgba(var(--color-primary-rgb, 59, 130, 246), 0.3));border-radius:2px}.timeline-item{position:relative;padding-bottom:var(--spacing-2xl);opacity:0;animation:fadeInUp .6s ease forwards}.timeline-item:nth-child(1){animation-delay:0.1s}.timeline-item:nth-child(2){animation-delay:0.2s}.timeline-item:nth-child(3){animation-delay:0.3s}.timeline-item:nth-child(4){animation-delay:0.4s}.timeline-item:nth-child(5){animation-delay:0.5s}.timeline-item:nth-child(6){animation-delay:0.6s}.timeline-item:nth-child(7){animation-delay:0.7s}.timeline-item:nth-child(8){animation-delay:0.8s}.timeline-item:nth-child(9){animation-delay:0.9s}.timeline-item:nth-child(10){animation-delay:1s}.timeline-item:last-child{padding-bottom:0}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.timeline-marker{position:absolute;left:-44px;top:24px;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg, var(--color-primary), #2563eb);border:4px solid var(--color-background-alt);box-shadow:0 0 0 2px var(--color-primary);z-index:2;transition:all var(--transition-base)}.timeline-item:hover .timeline-marker{transform:scale(1.2);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2)}.timeline-content{background-color:var(--color-background);padding:var(--spacing-lg);border-radius:12px;border-left:3px solid var(--color-primary);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.timeline-content:hover{transform:translateX(4px);box-shadow:var(--shadow-lg);border-left-color:#2563eb}.timeline-content time{display:inline-block;font-size:.875rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-md);padding:4px 12px;background-color:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1);border-radius:6px;letter-spacing:.5px}.timeline-content p{color:var(--color-text);line-height:1.8;margin:0;font-size:1rem}.timeline-content p a{color:var(--color-text);text-decoration:none;transition:color var(--transition-fast)}.timeline-content p a:hover{color:var(--color-primary)}.publications-page{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);padding:var(--spacing-2xl) 0}.publications-intro{margin-bottom:var(--spacing-2xl);font-size:1.0625rem}.publications-controls{margin-bottom:var(--spacing-xl)}.publications-controls .search-box{margin-bottom:var(--spacing-md)}.publications-controls .search-box input{width:100%;padding:var(--spacing-md);font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background);color:var(--color-text)}.publications-controls .search-box input:focus{outline:2px solid var(--color-primary);outline-offset:0;border-color:var(--color-primary)}.publications-controls .filter-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.year-section{margin-bottom:var(--spacing-3xl)}.year-heading{font-size:1.75rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.publication{margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl);background-color:var(--color-background-alt);border-radius:var(--radius-lg);border-left:4px solid var(--color-border);transition:all var(--transition-base)}.publication:hover{border-left-color:var(--color-primary);box-shadow:var(--shadow-md)}.pub-title{font-size:1.25rem;margin-bottom:var(--spacing-sm);line-height:1.4}.pub-authors{color:var(--color-text-light);margin-bottom:var(--spacing-xs)}.pub-authors .author-highlight{font-weight:600;color:var(--color-text)}.pub-venue{margin-bottom:var(--spacing-md);color:var(--color-text-light)}.pub-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.pub-abstract{margin:var(--spacing-md) 0}.pub-abstract summary{cursor:pointer;font-weight:600;color:var(--color-primary);user-select:none}.pub-abstract summary:hover{text-decoration:underline}.pub-abstract .abstract-content{margin-top:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-md);line-height:1.7}.pub-abstract .abstract-content p{margin-bottom:var(--spacing-md)}.pub-abstract .abstract-content p:last-child{margin-bottom:0}.pub-links{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.pub-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-text);transition:all var(--transition-fast)}.pub-link:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pub-link svg{width:16px;height:16px}.projects-page{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);padding:var(--spacing-2xl) 0}.projects-intro{margin-bottom:var(--spacing-2xl);font-size:1.0625rem}.projects-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);justify-content:center}.projects-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media(min-width: 768px){.projects-grid{grid-template-columns:repeat(2, 1fr)}}.project-card{display:flex;flex-direction:column}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md)}.project-title-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.project-name{font-size:1.5rem;margin:0}.project-name a{color:var(--color-text)}.project-name a:hover{color:var(--color-primary)}.platform-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:default}.platform-badge .platform-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px}.platform-badge .platform-icon svg{width:100%;height:100%;display:block}.platform-badge[data-platform-type=github]{border-color:#333;background-color:rgba(51,51,51,.05)}.platform-badge[data-platform-type=gitcode]{border-color:#e74c3c;background-color:rgba(231,76,60,.05)}.platform-badge[data-platform-type=huggingface]{border-color:#ffd21e;background-color:rgba(255,210,30,.05)}.project-description{flex-grow:1;margin-bottom:var(--spacing-md);color:var(--color-text-light);line-height:1.6}.project-languages{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.project-stats{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);font-size:.875rem;color:var(--color-text-light)}.project-stats .stat{display:flex;align-items:center;gap:var(--spacing-xs)}.project-stats .stat svg{width:16px;height:16px}.project-links{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.project-link{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;transition:all var(--transition-fast)}.project-link:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.teaching-page{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);padding:var(--spacing-2xl) 0}.course-hero{margin-bottom:var(--spacing-3xl);padding:var(--spacing-2xl);background:linear-gradient(135deg, var(--color-background-alt) 0%, var(--color-background) 100%);border-radius:var(--radius-lg);border-left:4px solid var(--color-primary)}.course-title-main{font-size:2rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}@media(min-width: 768px){.course-title-main{font-size:2.5rem}}.course-title-sub{font-size:1.25rem;color:var(--color-text-light);margin-bottom:var(--spacing-lg);font-weight:400}.course-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.course-meta-item{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-text-light)}.course-meta-item strong{color:var(--color-text)}.course-description-section{margin-bottom:var(--spacing-3xl)}.course-description-section h2,.syllabus-section-wrapper h2,.assessment-section h2,.references-section h2{font-size:1.5rem;margin-bottom:var(--spacing-lg);color:var(--color-text);border-bottom:2px solid var(--color-border);padding-bottom:var(--spacing-sm)}.course-description-content{font-size:1rem;line-height:1.8;color:var(--color-text)}.learning-objectives{margin-top:var(--spacing-xl)}.learning-objectives h3{font-size:1.125rem;margin-bottom:var(--spacing-md);color:var(--color-text)}.learning-objectives ol{padding-left:var(--spacing-lg)}.learning-objectives ol li{margin-bottom:var(--spacing-md);line-height:1.7;color:var(--color-text)}.learning-objectives ol li strong{color:var(--color-primary)}.syllabus-section-wrapper{margin-bottom:var(--spacing-3xl)}.syllabus-controls{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.syllabus-control-btn{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast);color:var(--color-text)}.syllabus-control-btn:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.syllabus-section{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background-color:var(--color-background)}.syllabus-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-background-alt);cursor:pointer;transition:background-color var(--transition-fast);user-select:none}.syllabus-header:hover{background-color:var(--color-border)}.syllabus-header-content{display:flex;align-items:center;gap:var(--spacing-md)}.section-number{font-size:.875rem;font-weight:600;color:var(--color-primary);background-color:var(--color-background);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);min-width:2.5rem;text-align:center}.section-title{font-size:1rem;font-weight:600;color:var(--color-text)}.section-lecture-count{font-size:.75rem;color:var(--color-text-light);margin-left:var(--spacing-sm)}.expand-icon{width:24px;height:24px;transition:transform var(--transition-fast);color:var(--color-text-light)}.syllabus-section.expanded .expand-icon{transform:rotate(180deg)}.syllabus-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out}.syllabus-section.expanded .syllabus-content{max-height:1000px}.lecture-list{list-style:none;padding:0;margin:0}.lecture-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);transition:background-color var(--transition-fast)}.lecture-item:hover{background-color:var(--color-background-alt)}.lecture-info{display:flex;align-items:center;gap:var(--spacing-md);flex:1}.lecture-number{font-size:.75rem;font-weight:600;color:var(--color-text-light);background-color:var(--color-background-alt);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);min-width:2rem;text-align:center}.lecture-title{font-size:.9375rem;color:var(--color-text)}.lecture-links{display:flex;gap:var(--spacing-sm)}.slides-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-decoration:none;transition:all var(--transition-fast)}.slides-link:hover{background-color:var(--color-accent);transform:translateY(-1px)}.slides-link svg{width:14px;height:14px}.assessment-section{margin-bottom:var(--spacing-3xl)}.assessment-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media(min-width: 768px){.assessment-grid{grid-template-columns:repeat(3, 1fr)}}.assessment-card{padding:var(--spacing-lg);background-color:var(--color-background-alt);border-radius:var(--radius-md);border-left:3px solid var(--color-primary)}.assessment-percentage{font-size:2rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-sm)}.assessment-title{font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--color-text)}.assessment-details{font-size:.875rem;color:var(--color-text-light);line-height:1.6}.assessment-details ul{padding-left:var(--spacing-md);margin-top:var(--spacing-sm)}.references-section{margin-bottom:var(--spacing-3xl)}.references-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media(min-width: 768px){.references-grid{grid-template-columns:repeat(2, 1fr)}}.reference-category{padding:var(--spacing-lg);background-color:var(--color-background-alt);border-radius:var(--radius-md)}.reference-category h3{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text)}.reference-category ul{list-style:none;padding:0}.reference-category ul li{margin-bottom:var(--spacing-sm)}.reference-category ul li a{color:var(--color-primary);text-decoration:none;font-size:.9375rem}.reference-category ul li a:hover{text-decoration:underline}.teaching-philosophy,.advising-section,.students-preview{margin-bottom:var(--spacing-3xl);padding:var(--spacing-xl);background-color:var(--color-background-alt);border-radius:var(--radius-lg)}.philosophy-content,.advising-content{font-size:1.0625rem;line-height:1.8}.advising-cta{text-align:center;margin-top:var(--spacing-xl)}.courses-section{margin-bottom:var(--spacing-3xl)}.courses-section h2{font-size:2rem;margin-bottom:var(--spacing-xl)}.courses-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media(min-width: 768px){.courses-grid{grid-template-columns:repeat(2, 1fr)}}.course-card.current-course{border-left:4px solid var(--color-primary)}.course-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.course-number{font-weight:700;color:var(--color-primary);font-size:1.125rem}.course-level{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.course-level.graduate{background-color:var(--color-accent);color:#fff}.course-level.undergraduate{background-color:var(--color-secondary);color:#fff}.course-title{font-size:1.25rem;margin-bottom:var(--spacing-sm)}.course-semester{color:var(--color-text-light);font-size:.875rem;margin-bottom:var(--spacing-md)}.course-description{margin-bottom:var(--spacing-md);line-height:1.7}.course-links{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.course-link{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;transition:all var(--transition-fast)}.course-link:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.past-courses-list .semester-group{margin-bottom:var(--spacing-2xl)}.past-courses-list .semester-heading{font-size:1.25rem;color:var(--color-primary);margin-bottom:var(--spacing-md)}.past-courses-list .course-list{list-style:none;padding:0}.past-courses-list .course-item{padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background-color:var(--color-background-alt);border-radius:var(--radius-md)}.past-courses-list .course-item .inline-link{margin-left:var(--spacing-sm);font-size:.875rem}.past-courses-list .course-level-tag{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-background);border-radius:var(--radius-sm);margin-left:var(--spacing-sm)}.students-list{list-style:none;padding:0}.students-list li{margin-bottom:var(--spacing-sm);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.students-list li:last-child{border-bottom:none}.talks-blog-page{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);padding:var(--spacing-2xl) 0}.page-intro{margin-bottom:var(--spacing-2xl);font-size:1.0625rem}.content-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-2xl)}.timeline{position:relative;padding-left:0}@media(min-width: 768px){.timeline{padding-left:50px}.timeline::before{content:"";position:absolute;left:14.5px;top:0;bottom:0;width:3px;background:linear-gradient(to bottom, var(--color-primary), rgba(var(--color-primary-rgb, 59, 130, 246), 0.3));border-radius:2px}}.timeline-item{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);position:relative;opacity:0;animation:fadeInUp .6s ease forwards}.timeline-item:nth-child(1){animation-delay:0.1s}.timeline-item:nth-child(2){animation-delay:0.2s}.timeline-item:nth-child(3){animation-delay:0.3s}.timeline-item:nth-child(4){animation-delay:0.4s}.timeline-item:nth-child(5){animation-delay:0.5s}.timeline-item:nth-child(6){animation-delay:0.6s}.timeline-item:nth-child(7){animation-delay:0.7s}.timeline-item:nth-child(8){animation-delay:0.8s}.timeline-item:nth-child(9){animation-delay:0.9s}.timeline-item:nth-child(10){animation-delay:1s}.timeline-item:nth-child(11){animation-delay:1.1s}.timeline-item:nth-child(12){animation-delay:1.2s}.timeline-item:nth-child(13){animation-delay:1.3s}.timeline-item:nth-child(14){animation-delay:1.4s}.timeline-item:nth-child(15){animation-delay:1.5s}.timeline-item:nth-child(16){animation-delay:1.6s}.timeline-item:nth-child(17){animation-delay:1.7s}.timeline-item:nth-child(18){animation-delay:1.8s}.timeline-item:nth-child(19){animation-delay:1.9s}.timeline-item:nth-child(20){animation-delay:2s}.timeline-item:last-child{margin-bottom:0}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.timeline-marker{display:none}@media(min-width: 768px){.timeline-marker{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg, var(--color-primary), #2563eb);border:4px solid var(--color-background);box-shadow:0 0 0 2px var(--color-primary);flex-shrink:0;position:absolute;left:-44px;top:24px;z-index:2;transition:all var(--transition-base)}}.timeline-marker.talk-marker{background:linear-gradient(135deg, var(--color-primary), #2563eb);box-shadow:0 0 0 2px var(--color-primary)}.timeline-marker.post-marker{background:linear-gradient(135deg, var(--color-accent), #ec4899);box-shadow:0 0 0 2px var(--color-accent)}.timeline-item:hover .timeline-marker{transform:scale(1.2);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2)}.timeline-content{flex:1;padding:var(--spacing-xl);background-color:var(--color-background);border-radius:12px;border-left:3px solid var(--color-primary);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.timeline-content:hover{transform:translateX(4px);box-shadow:var(--shadow-lg);border-left-color:#2563eb}.item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.item-date{display:inline-block;font-size:.875rem;font-weight:700;color:var(--color-primary);padding:4px 12px;background-color:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1);border-radius:6px;letter-spacing:.5px}.item-type{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.item-type.talk-type{background-color:var(--color-primary);color:#fff}.item-type.post-type{background-color:var(--color-accent);color:#fff}.item-title{font-size:1.25rem;margin-bottom:var(--spacing-sm)}.item-title a{color:var(--color-text)}.item-title a:hover{color:var(--color-primary)}.talk-event{margin-bottom:var(--spacing-md);color:var(--color-text-light)}.item-description{margin-bottom:var(--spacing-md);line-height:1.7}.post-categories{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.item-links{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-top:var(--spacing-md)}.item-link{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.875rem;transition:all var(--transition-fast)}.item-link:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.item-link.read-more{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.item-link.read-more:hover{background-color:var(--color-primary-dark)}.empty-state{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-light)}.post-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);max-width:var(--container-md);padding:var(--spacing-2xl) var(--spacing-lg)}.post-header{margin-bottom:var(--spacing-2xl);text-align:center;padding-bottom:var(--spacing-xl);border-bottom:1px solid var(--color-border)}.post-title{margin-bottom:var(--spacing-md)}.post-meta{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);color:var(--color-text-light)}.post-content{font-size:1.0625rem;line-height:1.8;margin-bottom:var(--spacing-2xl)}.post-content h2,.post-content h3,.post-content h4{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-md)}.post-content p{margin-bottom:var(--spacing-lg)}.post-content img{margin:var(--spacing-xl) auto;border-radius:var(--radius-lg)}.post-footer{padding-top:var(--spacing-xl);border-top:1px solid var(--color-border)}.post-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}.post-tags .tags-label{font-weight:600}.post-tags .tag{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-background-alt);border-radius:var(--radius-sm);font-size:.875rem}.post-navigation{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);margin-top:var(--spacing-2xl)}@media(min-width: 768px){.post-navigation{grid-template-columns:1fr 1fr}}.post-navigation a{display:flex;flex-direction:column;padding:var(--spacing-lg);background-color:var(--color-background-alt);border-radius:var(--radius-lg);transition:all var(--transition-base)}.post-navigation a:hover{box-shadow:var(--shadow-md)}.post-navigation .nav-label{font-size:.875rem;color:var(--color-text-light);margin-bottom:var(--spacing-xs)}.post-navigation .nav-title{font-weight:600;color:var(--color-text)}.post-navigation .nav-next{text-align:right}.container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.page-container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);padding:var(--spacing-2xl) var(--spacing-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.hidden-mobile{display:none}@media(min-width: 768px){.hidden-mobile{display:block}}.hidden-desktop{display:block}@media(min-width: 768px){.hidden-desktop{display:none}}.github-icon{fill:#24292f}[data-theme=dark] .github-icon{fill:#fff}/*# sourceMappingURL=main.css.map */