:root{color-scheme:light;--color-bg:#fff;--color-bg-alt:#f9f9f9;--color-text:#515151;--color-text-muted:#717171;--color-heading:#313131;--color-accent:#227bb9;--color-accent-hover:#1a5f8f;--color-border:#e5e5e5;--color-on-accent:#fff;--font-serif:'Source Serif 4', Georgia, 'Times New Roman', serif;--font-mono:'Roboto Mono', 'SF Mono', Menlo, monospace;--font-date-weight:700;--font-code-weight:500;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:3rem;--max-width:680px;--header-height:3rem;--code-bg:#f6f8fa;--code-border:#d0d7de;--code-shadow:rgba(27, 31, 36, 0.08);--code-line-highlight:#eaeef2;--code-text:#1f2328;--code-muted:#57606a;--code-comment:#6e7781;--code-keyword:#cf222e;--code-function:#8250df;--code-string:#0a3069;--code-number:#0550ae;--code-constant:#953800;--code-operator:#1f2328;--code-punctuation:#57606a;--code-tag:#116329;--code-added-bg:#dafbe1;--code-added-text:#116329;--code-removed-bg:#ffebe9;--code-removed-text:#cf222e}:root[data-theme=dark]{color-scheme:dark;--color-bg:#0f172a;--color-bg-alt:#152238;--color-text:#c7d2e0;--color-text-muted:#94a3b8;--color-heading:#dfe7f3;--color-accent:#7bb6ff;--color-accent-hover:#9cc7ff;--color-border:#243347;--color-on-accent:#0b1528;--code-bg:#22272e;--code-border:#373e47;--code-shadow:rgba(1, 4, 9, 0.55);--code-line-highlight:#2d333b;--code-text:#adbac7;--code-muted:#768390;--code-comment:#768390;--code-keyword:#f47067;--code-function:#8ddb8c;--code-string:#96d0ff;--code-number:#f69d50;--code-constant:#6cb6ff;--code-operator:#adbac7;--code-punctuation:#768390;--code-tag:#6cb6ff;--code-added-bg:#1f3b2d;--code-added-text:#7ee787;--code-removed-bg:#3a1d26;--code-removed-text:#ff7b72}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{font-family:var(--font-serif);font-size:1rem;line-height:1.7;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.skip-link{position:absolute;top:-100%;left:0;background:var(--color-accent);color:var(--color-on-accent);padding:var(--space-sm)var(--space-md);text-decoration:none;font-weight:600;z-index:1000;border-radius:0 0 4px 0;transition:top .2s ease}.skip-link:focus{top:0;outline:3px solid var(--color-accent-hover);outline-offset:2px}a{color:var(--color-accent);text-decoration:none}a:hover,a:focus{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;text-decoration:none}h1,h2,h3,h4,h5,h6{color:var(--color-heading);font-weight:300;line-height:1.3}h2{font-size:1.5rem;padding-bottom:var(--space-xs);margin-bottom:var(--space-md)}.page-wrapper{min-height:100vh;display:flex;flex-direction:column}.content-wrapper{flex:1;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg);width:100%}main{flex:1;padding:var(--space-lg)0}.nav-toggle{background:0 0;border:none;cursor:pointer;padding:var(--space-sm);z-index:1001;position:relative}.hamburger{display:block;width:24px;height:2px;background:var(--color-text);position:relative;transition:background .3s ease}.hamburger::before,.hamburger::after{content:'';position:absolute;width:24px;height:2px;background:var(--color-text);left:0;transition:transform .3s ease,top .3s ease}.hamburger::before{top:-7px}.hamburger::after{top:7px}.nav-toggle.active .hamburger{background:0 0}.nav-toggle.active .hamburger::before{top:0;transform:rotate(45deg);background:var(--color-heading)}.nav-toggle.active .hamburger::after{top:0;transform:rotate(-45deg);background:var(--color-heading)}.nav-actions{display:flex;align-items:center;gap:var(--space-sm)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:0;width:40px;height:40px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:all .2s ease}.theme-toggle:hover{background:var(--color-bg-alt);color:var(--color-heading);border-color:var(--color-accent)}.theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;text-decoration:none}.theme-toggle .theme-icon{width:18px;height:18px;display:none}.theme-toggle .theme-icon.sun{display:block}.theme-toggle .theme-toggle-label{display:none;font-size:.85rem}.theme-toggle.theme-toggle--full{width:auto;height:auto;min-height:40px;padding:.35rem .75rem;justify-content:flex-start}.theme-toggle.theme-toggle--full .theme-toggle-label{display:inline}:root[data-theme-preference=dark] .theme-toggle .theme-icon.sun,:root[data-theme-preference=system] .theme-toggle .theme-icon.sun{display:none}:root[data-theme-preference=dark] .theme-toggle .theme-icon.moon{display:block}:root[data-theme-preference=system] .theme-toggle .theme-icon.system{display:block}:root[data-theme=dark] .theme-toggle{background:var(--color-bg-alt);border-color:var(--color-border);color:var(--color-heading)}:root[data-theme=dark] .theme-toggle:hover{border-color:var(--color-accent);color:var(--color-heading)}.menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--color-bg);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;overflow-y:auto}.menu-overlay.open{opacity:1;visibility:visible}.menu-overlay-content{max-width:var(--max-width);margin:0 auto;padding:calc(var(--header-height) + var(--space-xl))var(--space-lg)var(--space-xl);min-height:100%;display:flex;flex-direction:column;gap:var(--space-xl)}.menu-nav{flex:1}.menu-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-md)}.menu-links li{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-md)}.menu-links li:last-child{border-bottom:none}.menu-links a{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;color:var(--color-heading);text-decoration:none;display:block;transition:color .2s ease,transform .2s ease}.menu-links a:hover,.menu-links a.active{color:var(--color-accent);transform:translateX(8px)}.menu-actions{display:flex;align-items:center}.site-header{padding:var(--space-md)0;border-bottom:1px solid var(--color-border);width:100%}.site-header .nav{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg);display:flex;justify-content:space-between;align-items:center}.site-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;color:var(--color-heading);text-decoration:none;letter-spacing:-.02em}.site-title:hover{color:var(--color-accent)}.nav-links{display:flex;list-style:none;gap:var(--space-lg)}.nav-links a{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted);text-decoration:none;transition:color .2s ease}.nav-links a:hover,.nav-links a.active{color:var(--color-accent)}.hero{padding:var(--space-xl)0 var(--space-lg);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg)}.hero-content{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-xl)}.hero-text{flex:1}.hero-text .social-icons{margin-top:var(--space-lg)}.profile-photo{filter:grayscale(15%);width:180px;height:180px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:0 4px 20px rgba(0,0,0,8%);transition:transform .3s ease,box-shadow .3s ease}.profile-photo:hover{transform:scale(1.02);box-shadow:0 8px 30px rgba(0,0,0,.12)}:root[data-theme=dark] .profile-photo{filter:grayscale(10%)brightness(.9)contrast(1.05);box-shadow:0 8px 30px rgba(0,0,0,.35)}.name{font-size:2.2rem;font-weight:300;letter-spacing:.02em;margin-bottom:var(--space-xs);line-height:1.2;color:var(--color-heading)}.role{font-size:1.1rem;font-weight:600;color:var(--color-heading);margin-bottom:.25rem}.affiliation{font-size:.95rem;color:var(--color-text-muted);margin-bottom:0}.affiliation a{color:var(--color-text-muted);text-decoration:none;border-bottom:1px dotted var(--color-text-muted);transition:color .2s ease,border-color .2s ease}.affiliation a:hover{color:var(--color-accent);border-color:var(--color-accent);text-decoration:none}.tagline{font-size:1rem;color:var(--color-text-muted);max-width:480px}.social-icons{display:flex;gap:var(--space-md);align-items:center}.social-icons a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--color-text-muted);text-decoration:none;border-radius:50%;background:var(--color-bg-alt);border:1px solid var(--color-border);transition:all .2s ease}.social-icons a:hover{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent);transform:translateY(-2px);text-decoration:none}.social-icons i{font-size:1.3rem}.social-icons svg{width:20px;height:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){.hero-content{flex-direction:column-reverse;align-items:center;text-align:center}.profile-photo{width:140px;height:140px}.hero-text .social-icons{justify-content:center}.name{font-size:1.8rem}.role{font-size:1rem}}.about{margin-bottom:var(--space-xl)}.about-content{margin-bottom:var(--space-lg)}.about-content p{margin-bottom:var(--space-md)}.about-content strong{color:var(--color-heading);font-weight:600}.about h2{font-size:1.3rem;margin-top:0;margin-bottom:var(--space-md);font-weight:600}.research-interests{margin-top:var(--space-lg);padding-top:var(--space-lg)}.research-interests h2{font-size:1.1rem;margin-bottom:var(--space-md);border-bottom:none;padding-bottom:0}.interest-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm);list-style:none;padding:0;margin:0}.interest-tag{display:inline-block;background:linear-gradient(135deg,var(--color-bg-alt) 0%,#f0f4f8 100%);border:1px solid var(--color-border);padding:.4em .9em;border-radius:20px;font-size:.85rem;color:var(--color-text);transition:all .2s ease}.interest-tag a{color:inherit;text-decoration:none;display:inline-block}.interest-tag:hover{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent);transform:translateY(-1px)}.interest-tag:hover a{color:var(--color-on-accent)}:root[data-theme=dark] .interest-tag{background:linear-gradient(135deg,var(--color-bg-alt) 0%,#1f2c43 100%);border-color:#2f3e5b;color:var(--color-text)}:root[data-theme=dark] .interest-tag:hover{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}:root[data-theme=dark] .interest-tag:hover a{color:var(--color-on-accent)}.about img{max-width:180px;border-radius:4px;float:right;margin:0 0 var(--space-md)var(--space-lg)}.section-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.section-header h2{margin-bottom:0;padding-bottom:0}.last-updated{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted);letter-spacing:.01em;font-weight:var(--font-date-weight)}.news-section{margin-bottom:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.news-section h2{font-size:1.3rem;margin-bottom:var(--space-md);font-weight:600}.news-items,.news-list{list-style:none;margin:0;padding:0}.news-item{padding:var(--space-md)0;border-bottom:1px solid var(--color-border);line-height:1.6;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-sm)}.news-item:last-child{border-bottom:none}.news-date{font-family:var(--font-mono);font-size:.7rem;color:var(--color-on-accent);background:var(--color-accent);padding:0 .4em;border-radius:3px;font-weight:var(--font-date-weight);letter-spacing:.02em;white-space:nowrap;flex-shrink:0}.news-content{flex:1}.news-content p{margin:0;display:inline}.news-list strong,.news-item strong{font-family:var(--font-mono);font-size:.75rem;color:var(--color-on-accent);background:var(--color-accent);padding:.2em .6em;border-radius:3px;margin-right:var(--space-sm);font-weight:var(--font-date-weight);display:inline-block;letter-spacing:.02em}.news-page .news-list{list-style:none;margin:0;padding:0}.news-filters{margin-bottom:var(--space-lg)}.news-filter{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin:0 0 var(--space-sm);align-items:center}.news-year-section{display:block;margin-bottom:var(--space-lg)}.news-page .year-heading{font-size:1.3rem;font-weight:600;color:var(--color-heading);border-bottom:2px solid var(--color-accent);padding-bottom:var(--space-xs);margin-bottom:var(--space-md);margin-top:var(--space-lg);position:sticky;top:var(--space-sm);background:var(--color-bg);background:color-mix(in srgb,var(--color-bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5}.news-page .news-year-section:first-of-type .year-heading{margin-top:0}.pub-filter-toggle{display:flex;justify-content:flex-end;margin-bottom:var(--space-sm);gap:var(--space-xs);align-items:center;flex-wrap:wrap}.filter-toggle-btn{display:inline-flex;align-items:center;gap:.3em;border:1px solid var(--color-border-strong,var(--color-border));background:var(--color-bg-alt);color:var(--color-heading);padding:.45em .9em;border-radius:999px;font-weight:700;letter-spacing:.04em;font-size:.8rem;cursor:pointer;transition:all .2s ease}.filter-reset-btn{background:var(--color-bg);color:var(--color-accent);border-color:var(--color-accent)}.filter-reset-btn:hover,.filter-reset-btn:focus-visible{background:var(--color-bg-alt)}.filter-reset-btn.is-hidden{display:none}.filter-toggle-btn:hover,.filter-toggle-btn:focus-visible{box-shadow:0 4px 12px rgba(34,123,185,.15);border-color:var(--color-accent);outline:none}.filter-toggle-btn[aria-expanded=true]{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.pub-filters{margin-bottom:var(--space-lg)}.pub-filters.is-hidden{display:none}.pub-filter-actions{display:flex;justify-content:flex-end;margin-bottom:var(--space-sm)}.reset-btn{font-weight:600;text-transform:uppercase;letter-spacing:.04em}.pub-filter{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin:0 0 var(--space-sm);align-items:center}.filter-label{font-size:.85rem;font-weight:600;color:var(--color-text-muted);margin-right:var(--space-xs)}.filter-btn{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);padding:.25em .6em;border-radius:3px;font-family:var(--font-serif);font-size:.7rem;cursor:pointer;transition:all .15s ease}.filter-btn:hover,.filter-btn:focus-visible{opacity:.85;box-shadow:0 0 0 2px rgba(34,123,185,.2);outline:none}.filter-btn.active{box-shadow:0 0 0 2px var(--color-accent)}.filter-btn.unavailable{opacity:.35;cursor:not-allowed}.filter-btn.unavailable:hover{box-shadow:none}.pub-filter:not(.keyword-filter) .filter-btn{font-weight:600;text-transform:uppercase;letter-spacing:.05em}.pub-filter:not(.keyword-filter) .filter-btn[data-type=all]{background:var(--color-bg-alt);color:var(--color-text);border-color:var(--color-border)}.pub-filter:not(.keyword-filter) .filter-btn[data-type=journal]{background:#e3f2fd;color:#1565c0;border-color:#e3f2fd}.pub-filter:not(.keyword-filter) .filter-btn[data-type=conference]{background:#f3e5f5;color:#6a1b9a;border-color:#f3e5f5}.pub-filter:not(.keyword-filter) .filter-btn[data-type=preprint]{background:#fff3e0;color:#b23c00;border-color:#fff3e0}.pub-filter:not(.keyword-filter) .filter-btn[data-type=thesis]{background:#e8f5e9;color:#2e7d32;border-color:#e8f5e9}.pub-filter:not(.keyword-filter) .filter-btn[data-type=book],.pub-filter:not(.keyword-filter) .filter-btn[data-type="book chapter"]{background:#fce4ec;color:#c2185b;border-color:#fce4ec}.pub-filter:not(.keyword-filter) .filter-btn[data-type=report]{background:#e0f2f1;color:#00695c;border-color:#e0f2f1}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn{background:var(--color-bg-alt);color:var(--color-text);border-color:var(--color-border)}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type=journal]{background:#132a40;color:#9cc7ff;border-color:#26486b}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type=conference]{background:#241a36;color:#d3b6ff;border-color:#3b2c57}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type=preprint]{background:#332012;color:#ffce99;border-color:#503319}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type=thesis]{background:#173022;color:#a0e4c0;border-color:#264c38}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type=book],:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type="book chapter"]{background:#301728;color:#f3b2d8;border-color:#4b2640}:root[data-theme=dark] .pub-filter:not(.keyword-filter) .filter-btn[data-type=report]{background:#12342e;color:#8be0d2;border-color:#1f4f45}.keyword-filter .filter-btn{background:var(--color-bg-alt);color:var(--color-text-muted);border:1px solid var(--color-border)}.hidden-by-filter{display:none!important}.year-section{display:block}.publication-list{list-style:none;padding:0;margin:0}.publication-item{padding:0;margin-bottom:var(--space-md)}.pub-card{padding:var(--space-md);border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);transition:all .2s ease}.pub-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px rgba(34,123,185,.1);transform:translateY(-2px)}.pub-header{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-xs)}.pub-title{font-size:1rem;font-weight:600;line-height:1.4;margin:0;flex:1;color:var(--color-heading)}.pub-title a{color:inherit;text-decoration:none}.pub-title a:hover,.pub-title a:focus{color:var(--color-accent)}.pub-type-tag{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25em .6em;border-radius:3px;white-space:nowrap;flex-shrink:0}.pub-type-journal{background:#e3f2fd;color:#1565c0}.pub-type-conference{background:#f3e5f5;color:#6a1b9a}.pub-type-preprint{background:#fff3e0;color:#b23c00}.pub-type-thesis{background:#e8f5e9;color:#2e7d32}.pub-type-book,.pub-type-book-chapter{background:#fce4ec;color:#c2185b}.pub-type-report{background:#e0f2f1;color:#00695c}.pub-type-other{background:#f5f5f5;color:#616161}:root[data-theme=dark] .pub-type-journal{background:#132a40;color:#9cc7ff;border:1px solid #26486b}:root[data-theme=dark] .pub-type-conference{background:#241a36;color:#d3b6ff;border:1px solid #3b2c57}:root[data-theme=dark] .pub-type-preprint{background:#332012;color:#ffce99;border:1px solid #503319}:root[data-theme=dark] .pub-type-thesis{background:#173022;color:#a0e4c0;border:1px solid #264c38}:root[data-theme=dark] .pub-type-book,:root[data-theme=dark] .pub-type-book-chapter{background:#301728;color:#f3b2d8;border:1px solid #4b2640}:root[data-theme=dark] .pub-type-report{background:#12342e;color:#8be0d2;border:1px solid #1f4f45}:root[data-theme=dark] .pub-type-other{background:#1f2c43;color:var(--color-text);border:1px solid var(--color-border)}.pub-tags{display:flex;gap:var(--space-xs);flex-shrink:0;flex-wrap:wrap}.pub-venue-tag{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25em .6em;border-radius:3px;white-space:nowrap;background:#e8eaf6;color:#3949ab}.venue-filter .filter-btn{background:#e8eaf6;color:#3949ab;border:1px solid #e8eaf6}.venue-filter .filter-btn[data-venue=all]{background:var(--color-bg-alt);color:var(--color-text-muted);border:1px solid var(--color-border)}:root[data-theme=dark] .pub-venue-tag{background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border)}:root[data-theme=dark] .venue-filter .filter-btn{background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border)}@media(max-width:640px){.pub-header{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.pub-tags{order:-1;width:100%}}:root[data-theme=dark] .venue-filter .filter-btn[data-venue=all]{color:var(--color-text-muted)}.pub-authors{font-size:.9rem;color:var(--color-text-muted);margin:0 0 var(--space-xs)}.pub-venue{font-size:.85rem;color:var(--color-text-muted);margin:0 0 var(--space-sm)}.venue-name{font-style:italic}.pub-year{font-weight:600;color:var(--color-accent)}.pub-keywords{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:var(--space-sm)}.pub-keyword{font-size:.7rem;padding:.2em .5em;background:var(--color-bg-alt);color:var(--color-text-muted);border-radius:3px;border:1px solid var(--color-border);cursor:pointer;transition:all .15s ease;font-family:var(--font-serif);line-height:1.2}.pub-keyword:hover,.pub-keyword:focus-visible{color:var(--color-text);border-color:var(--color-accent);outline:none}.pub-keyword.active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.pub-links{display:flex;gap:var(--space-sm);flex-wrap:wrap}.pub-link{display:inline-flex;align-items:center;gap:.3em;font-size:.8rem;color:var(--color-accent);text-decoration:none;padding:.25em .6em;border:1px solid var(--color-accent);border-radius:4px;transition:all .2s ease}.pub-link:hover{background:var(--color-accent);color:var(--color-on-accent);text-decoration:none}.link-icon{font-size:.9em}.see-all{display:inline-flex;align-items:center;gap:.3em;margin-top:var(--space-lg);font-size:.9rem;color:var(--color-accent);text-decoration:none;padding:.5em 1em;border:1px solid var(--color-border);border-radius:20px;transition:all .2s ease}.see-all:hover{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent);text-decoration:none}.recent-work{margin-bottom:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.recent-work h2{font-size:1.3rem;margin-bottom:var(--space-md);font-weight:600}.contact{padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.contact h2{font-size:1.3rem;margin-bottom:var(--space-md);font-weight:600}.social-links{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-md)var(--space-lg)}.social-links a{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted);text-decoration:none}.social-links a:hover{color:var(--color-accent)}.article-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.article-header h1{font-size:1.8rem;line-height:1.3;margin-bottom:var(--space-sm)}.article-header time{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted)}.content h1,.content h2,.content h3,.content h4{margin-top:var(--space-lg);margin-bottom:var(--space-md);font-weight:600;line-height:1.3}.content h1{font-size:1.8rem}.content h2{font-size:1.4rem}.content h3{font-size:1.2rem}.content h4{font-size:1rem}.content p{margin-bottom:var(--space-md)}.content ul,.content ol{margin-bottom:var(--space-md);padding-left:var(--space-lg)}.content li{margin-bottom:var(--space-sm)}.content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.content a:hover{color:var(--color-accent-hover)}.content blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-md);margin:var(--space-md)0;color:var(--color-text-muted);font-style:italic}.content :not(pre)>code{font-family:var(--font-mono);font-size:.9em;font-weight:var(--font-code-weight);background:var(--color-bg-alt);padding:.1em .3em;border-radius:3px}.content pre,.content .highlight{background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);border-radius:6px;padding:var(--space-md);overflow-x:auto;margin-bottom:var(--space-md);box-shadow:0 18px 50px var(--code-shadow)}.content pre{font-family:var(--font-mono);font-size:.95rem;line-height:1.6}.content pre code,.content .highlight code{display:block;background:0 0;color:inherit;padding:0;font-family:var(--font-mono);font-size:.8rem;font-weight:var(--font-code-weight);line-height:1.6}.content .highlight{padding:var(--space-md)}.content .highlight pre{background:0 0;border:none;padding:0;margin:0;box-shadow:none;border-radius:0;overflow:visible}.content .highlight .chroma{background:0 0;color:var(--code-text)}.content .highlight .line{display:block;min-width:100%}.content .highlight .hl{background:var(--code-line-highlight)}.content .highlight .ln,.content .highlight .lnt{color:var(--code-muted);user-select:none;padding-right:var(--space-sm)}.content .highlight table{width:100%;border-collapse:collapse}.content .highlight td{padding:0}.content .highlight .lntd{width:1%;padding-right:var(--space-md)}.content .highlight .ln,.content .highlight .lnt,.content .highlight .lntd{text-align:right}.content .highlight .chroma .c,.content .highlight .chroma .ch,.content .highlight .chroma .cm,.content .highlight .chroma .c1,.content .highlight .chroma .cs,.content .highlight .chroma .cp,.content .highlight .chroma .cpf{color:var(--code-comment);font-style:italic}.content .highlight .chroma .err{color:var(--code-removed-text);background-color:var(--code-removed-bg)}.content .highlight .chroma .k,.content .highlight .chroma .kc,.content .highlight .chroma .kd,.content .highlight .chroma .kn,.content .highlight .chroma .kp,.content .highlight .chroma .kr,.content .highlight .chroma .kt{color:var(--code-keyword);font-weight:600}.content .highlight .chroma .o{color:var(--code-operator)}.content .highlight .chroma .p{color:var(--code-punctuation)}.content .highlight .chroma .gd{color:var(--code-removed-text);background-color:var(--code-removed-bg)}.content .highlight .chroma .gi{color:var(--code-added-text);background-color:var(--code-added-bg)}.content .highlight .chroma .na,.content .highlight .chroma .nc,.content .highlight .chroma .no,.content .highlight .chroma .nd,.content .highlight .chroma .ni,.content .highlight .chroma .ne,.content .highlight .chroma .nn,.content .highlight .chroma .nt{color:var(--code-tag)}.content .highlight .chroma .nf,.content .highlight .chroma .fm{color:var(--code-function)}.content .highlight .chroma .nb,.content .highlight .chroma .bp{color:var(--code-constant)}.content .highlight .chroma .l,.content .highlight .chroma .ld,.content .highlight .chroma .m,.content .highlight .chroma .mb,.content .highlight .chroma .mf,.content .highlight .chroma .mh,.content .highlight .chroma .mi,.content .highlight .chroma .il,.content .highlight .chroma .mo{color:var(--code-number)}.content .highlight .chroma .s,.content .highlight .chroma .sa,.content .highlight .chroma .sb,.content .highlight .chroma .sc,.content .highlight .chroma .dl,.content .highlight .chroma .sd,.content .highlight .chroma .s2,.content .highlight .chroma .se,.content .highlight .chroma .sh,.content .highlight .chroma .si,.content .highlight .chroma .sx,.content .highlight .chroma .sr,.content .highlight .chroma .s1,.content .highlight .chroma .ss{color:var(--code-string)}.content .highlight .chroma .vc,.content .highlight .chroma .vg,.content .highlight .chroma .vi,.content .highlight .chroma .vm,.content .highlight .chroma .nv{color:var(--code-text)}.content img{max-width:100%;height:auto;border-radius:4px;margin:var(--space-md)0}.content hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-lg)0}.page-header{margin-bottom:var(--space-md)}.page-header h1{font-size:1.8rem;margin:0}.list h1{font-size:1.8rem;margin-bottom:var(--space-md)}.post-list{list-style:none}.post-list li{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-md)0;border-bottom:1px solid var(--color-border);gap:var(--space-md)}.post-list a{color:var(--color-text);text-decoration:none}.post-list a:hover{color:var(--color-accent)}.post-list time{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted);flex-shrink:0}.site-footer{padding:var(--space-lg);border-top:1px solid var(--color-border);margin-top:auto;max-width:var(--max-width);margin-left:auto;margin-right:auto}.footer-content{font-family:var(--font-serif);font-size:.8rem;color:var(--color-text-muted)}.footer-content a{color:var(--color-text-muted)}.footer-content a:hover{color:var(--color-accent)}@media(max-width:600px){html{font-size:16px}.content-wrapper{padding:0 var(--space-md)}.site-header .nav{padding:0 var(--space-md)}.nav-links{gap:var(--space-md)}.name{font-size:2rem}.about img{float:none;display:block;margin:0 auto var(--space-lg)}.post-list li{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.social-links{flex-direction:column;gap:var(--space-sm)}}@media print{.site-header,.site-footer,.sidebar{display:none}body{font-size:12pt;line-height:1.5}.content-wrapper{max-width:100%;margin-left:0;padding-left:var(--space-md)}}.blog-list .post-list li{display:block;padding:var(--space-lg)0}.blog-list .post-meta{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.blog-list .post-title{font-size:1.2rem;font-weight:600;display:block;margin-bottom:var(--space-xs)}.blog-list .post-description{font-size:.95rem;color:var(--color-text-muted);margin:0}.blog-post .post-meta{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.blog-post .reading-time{color:var(--color-text-muted)}.blog-post .tags{margin-top:var(--space-sm)}.blog-post .tag{display:inline-block;font-family:var(--font-serif);font-size:.75rem;background:var(--color-bg-alt);padding:.2em .6em;border-radius:3px;margin-right:var(--space-xs);color:var(--color-text-muted)}.blog-post .article-footer{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.blog-post .article-footer a{font-family:var(--font-serif);font-size:.9rem;color:var(--color-accent);text-decoration:none}.blog-post .article-footer a:hover{text-decoration:underline}.research-page .intro{margin-bottom:var(--space-xl)}.research-page .intro>p:first-of-type{margin-bottom:var(--space-lg)}.research-page h2{font-size:1.3rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm);padding-top:var(--space-lg);border-top:1px solid var(--color-border);font-weight:600}.research-page h2:first-of-type{margin-top:var(--space-md)}.research-page h3{font-size:1.1rem;margin-top:var(--space-md);margin-bottom:var(--space-xs);font-weight:600}.research-page h3+p{font-size:.9rem;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.research-page ul{margin-bottom:var(--space-lg);padding-left:var(--space-lg)}.research-page ul li{margin-bottom:var(--space-sm)}.research-page ul li strong{font-weight:600}.publications-page .year-heading{font-size:1.3rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-weight:600;color:var(--color-accent);position:sticky;top:var(--space-sm);background:var(--color-bg);background:color-mix(in srgb,var(--color-bg) 88%,transparent);padding:var(--space-xs)0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5}.publications-page .year-heading:first-of-type{margin-top:var(--space-md)}.publications-page .publication-list{margin-bottom:var(--space-md)}.cv-page-header{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:2px solid var(--color-border);position:relative}.cv-page .cv-lead{color:var(--color-text-muted);margin:0;margin-top:var(--space-sm);max-width:55ch;font-size:1.1rem;line-height:1.6}.cv-nav{margin-top:var(--space-md);position:sticky;top:calc(var(--header-height) + var(--space-sm));z-index:5;padding:var(--space-xs)0;background:var(--color-bg)}.cv-nav-links{display:flex;flex-wrap:wrap;gap:var(--space-sm);list-style:none;padding:0;margin:0}.cv-nav-links li a{display:inline-block;padding:var(--space-xs)var(--space-sm);font-size:.85rem;font-weight:500;color:var(--color-text-muted);background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:6px;text-decoration:none;transition:all .2s ease;box-shadow:0 6px 20px rgba(0,0,0,3%)}.cv-nav-links li a:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-bg)}.cv-section:target .cv-section-header{border-color:var(--color-accent)}.cv-content{margin-top:0}.cv-page .content-wrapper{max-width:860px}.cv-sections{display:flex;flex-direction:column;gap:var(--space-xl)}.cv-section{padding:0;scroll-margin-top:calc(var(--header-height) + var(--space-lg))}.cv-section-header{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border);position:relative}.cv-section h2{margin:0;padding:0;font-size:1.4rem;font-weight:600;color:var(--color-heading);display:flex;align-items:center;gap:var(--space-sm)}.cv-section h2::before{display:none}.cv-section-lead{margin:0;color:var(--color-text-muted);font-size:.95rem}.cv-entry{padding:var(--space-md)0;display:grid;grid-template-columns:1fr;gap:var(--space-xs);border-bottom:none}.cv-timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:var(--space-md)}.cv-timeline::before{content:'';position:absolute;left:50px;top:var(--space-md);bottom:var(--space-md);width:2px;background:linear-gradient( to bottom,var(--color-accent) 0%,var(--color-border) 25%,var(--color-border) 85%,transparent 100% );border-radius:1px}.cv-timeline .cv-entry{grid-template-columns:60px 1fr;align-items:start;gap:var(--space-lg);padding:var(--space-md)0;position:relative;transition:background-color .2s ease;margin-left:calc(-1 * var(--space-md));padding-left:var(--space-md);border-radius:8px}.cv-timeline .cv-entry:hover{background-color:var(--color-bg-alt)}.cv-timeline .cv-entry::before{content:'';position:absolute;left:calc(80px + var(--space-md) + 3px);top:calc(var(--space-md) + .35rem);width:10px;height:10px;background:var(--color-bg);border:2px solid var(--color-accent);border-radius:50%;z-index:1;transition:background-color .2s ease,transform .2s ease}.cv-timeline .cv-entry:hover::before{background:var(--color-accent);transform:scale(1.2)}.cv-timeline .cv-item-body{padding-left:var(--space-md)}.cv-period{display:inline-flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:.15rem;font-family:var(--font-serif);color:var(--color-text-muted);font-size:.85rem;font-weight:600;letter-spacing:.02em;line-height:1.3;margin-top:0;white-space:pre-line;padding:var(--space-xs)var(--space-sm);background:var(--color-bg-alt);border-radius:6px;text-align:right}.cv-item-body h3{margin:0 0 var(--space-xs);font-size:1.05rem;font-weight:600;color:var(--color-heading);line-height:1.4}.cv-meta{margin:0 0 var(--space-xs);color:var(--color-text-muted);font-size:.92rem;line-height:1.5}.cv-note{margin:var(--space-xs)0 0;color:var(--color-accent);font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:var(--space-xs)}.cv-note::before{content:'★';font-size:.75rem}.cv-page .cv-sublist{list-style:none;padding-left:0;margin:var(--space-xs)0 0;color:var(--color-text)}.cv-page .cv-sublist li{position:relative;padding-left:var(--space-md);margin-bottom:var(--space-xs);font-size:.95rem}.cv-page .cv-sublist li::before{content:'›';position:absolute;left:0;color:var(--color-accent);font-weight:600}.cv-page .cv-sublist li:last-child{margin-bottom:0}.cv-card-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.cv-card-grid .cv-entry{grid-template-columns:1fr;align-items:stretch;padding:0}.cv-card-grid .cv-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;padding:var(--space-sm)var(--space-md);transition:all .2s ease;display:flex;flex-direction:column;gap:var(--space-xs);position:relative;overflow:hidden}.cv-card-grid .cv-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:var(--color-accent);opacity:0;transition:opacity .2s ease}.cv-card-grid .cv-card:hover{border-color:var(--color-accent);box-shadow:0 4px 20px rgba(0,0,0,6%);transform:translateY(-2px)}.cv-card-grid .cv-card:hover::before{opacity:1}.cv-card-header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.cv-card-header .cv-period{flex-shrink:0;margin:0;align-self:flex-start}.cv-card-grid .cv-period{font-size:.8rem;padding:2px var(--space-sm);background:var(--color-bg-alt);border-radius:4px}.cv-card-title{margin:0;margin-top:var(--space-md)!important;font-size:.95rem;font-weight:600;color:var(--color-heading);line-height:1.4}.cv-card-meta{margin:0;color:var(--color-text-muted);line-height:1.5;font-size:.88rem}.cv-page .cv-card-list{list-style:none;padding-left:0;margin:0;color:var(--color-text)}.cv-page .cv-card-list li{position:relative;padding-left:var(--space-md);margin-bottom:var(--space-xs);font-size:.88rem;line-height:1.5}.cv-page .cv-card-list li::before{content:'•';position:absolute;left:0;color:var(--color-accent);font-weight:700}.cv-page .cv-card-list li:last-child{margin-bottom:0}.cv-card--wide{grid-column:span 1}.cv-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-md)}.cv-service-grid .cv-card{height:100%}.cv-service-grid .cv-card--wide{grid-column:1/-1}.cv-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);padding:var(--space-lg);border-radius:12px;border:1px solid var(--color-border);background:linear-gradient(135deg,var(--color-bg-alt) 0%,var(--color-bg) 100%);position:relative;overflow:hidden}.cv-contact::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover))}.cv-contact-block{display:flex;flex-direction:column;gap:var(--space-xs);text-align:left}.cv-contact-block h3{margin:0;font-size:.85rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.cv-contact-block p{margin:0;font-size:.95rem;line-height:1.6}.cv-contact-line{display:block}.cv-contact a{font-weight:600;color:var(--color-accent);transition:color .2s ease}.cv-contact a:hover{color:var(--color-accent-hover)}@media(max-width:700px){.cv-timeline{padding-left:0}.cv-timeline::before{display:none}.cv-timeline .cv-entry{grid-template-columns:1fr;gap:var(--space-sm);margin-left:0;padding-left:0;border-bottom:1px solid var(--color-border);border-radius:0}.cv-timeline .cv-entry:last-child{border-bottom:none}.cv-timeline .cv-entry::before{display:none}.cv-timeline .cv-entry:hover{background-color:transparent}.cv-timeline .cv-item-body{padding-left:0}.cv-period{align-self:flex-start;text-align:left;align-items:flex-start}.cv-service-grid{grid-template-columns:1fr}.cv-card--wide{grid-column:span 1}.cv-contact{padding:var(--space-md)}}@media print{.cv-page-header::after,.cv-section-header::before,.cv-timeline::before,.cv-timeline .cv-entry::before,.cv-card-grid .cv-card::before,.cv-contact::before{display:none}.cv-timeline .cv-entry,.cv-card-grid .cv-card{break-inside:avoid;page-break-inside:avoid}.cv-timeline .cv-entry:hover,.cv-card-grid .cv-card:hover{background:0 0;box-shadow:none;transform:none;border-color:var(--color-border)}.cv-section{break-before:auto;page-break-before:auto}.cv-card-grid .cv-card{border:1px solid #ccc;box-shadow:none}}.reading-group-page .rg-section{margin-top:var(--space-xl)}.reading-group-page .rg-section h2{font-size:1.3rem;margin-bottom:var(--space-md);font-weight:600}.reading-group-page .rg-note{color:var(--color-text-muted);font-style:italic}.reading-group-page .rg-list{list-style:none;padding:0;margin:0}.reading-group-page .rg-item{padding:var(--space-sm)0;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:baseline}.reading-group-page .rg-item:last-child{border-bottom:none}.reading-group-page .rg-date{font-family:var(--font-mono);font-size:.7rem;color:var(--color-on-accent);background:var(--color-accent);padding:0 .4em;border-radius:3px;flex-shrink:0;font-weight:var(--font-date-weight)}.reading-group-page .rg-title{flex:1;min-width:200px}.reading-group-page .rg-presenter{font-size:.9rem;color:var(--color-text-muted)}@media(max-width:600px){.reading-group-page .rg-item{flex-direction:column;gap:var(--space-xs)}}.teaching-filters{margin-bottom:var(--space-lg)}.teaching-page .teaching-section{margin-top:var(--space-lg)}.teaching-page .teaching-section:first-of-type{margin-top:var(--space-md)}.teaching-page .teaching-section h2{font-size:1.3rem;margin-bottom:var(--space-sm);font-weight:600}.teaching-page .teaching-section h3{font-size:1.15rem;margin-top:var(--space-md);margin-bottom:var(--space-xs);font-weight:700;color:var(--color-text-muted)}.teaching-page .teaching-list,.teaching-page .thesis-list{list-style:none;padding:0;margin:0}.teaching-page .teaching-item,.teaching-page .thesis-item{padding:var(--space-sm)0;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:baseline}.teaching-page .course-title{display:block;font-weight:600;color:var(--color-heading)}.teaching-page .course-title a{color:inherit;text-decoration:none}.teaching-page .course-title a:hover{color:var(--color-accent);text-decoration:underline}.teaching-page .course-meta{display:block;font-size:.9rem;color:var(--color-text-muted)}.teaching-page .teaching-item:last-child,.teaching-page .thesis-item:last-child{border-bottom:none}.teaching-page .teaching-section h2.year-heading{font-size:1.3rem;font-weight:600;color:var(--color-accent);margin:var(--space-lg)0 var(--space-sm);position:sticky;top:var(--space-sm);background:var(--color-bg);background:color-mix(in srgb,var(--color-bg) 88%,transparent);z-index:5;padding:var(--space-xs)0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.teaching-page .teaching-section:first-of-type h2.year-heading{margin-top:var(--space-md)}.teaching-page .teaching-section h3.subsection-heading{font-size:1rem;font-weight:700;color:var(--color-text-muted);margin:var(--space-md)0 var(--space-xs);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--color-border);padding-bottom:var(--space-xs)}.teaching-page.teaching-single-filter .subsection-heading{display:none}.teaching-page .teaching-details{flex:1;min-width:200px}.teaching-page .thesis-details{flex:1;min-width:200px;display:flex;flex-direction:column;gap:.2em}.teaching-page .thesis-title{font-weight:500}.teaching-page .thesis-meta{font-size:.9rem;color:var(--color-text-muted)}.teaching-page .thesis-meta p{display:inline;margin:0}.teaching-page .thesis-position,.teaching-page .thesis-publication{display:block;font-size:.85rem;margin-top:.2em}.teaching-page .thesis-position{color:var(--color-accent)}.teaching-page .thesis-publication{color:var(--color-text-muted)}.teaching-page .thesis-position p,.teaching-page .thesis-publication p{display:inline;margin:0}@media(max-width:600px){.teaching-page .teaching-item,.teaching-page .thesis-item{flex-direction:column;gap:var(--space-xs)}}.teaching-page .content h2{font-size:1.3rem;margin-top:var(--space-xl);margin-bottom:var(--space-md);font-weight:600}.teaching-page .content h2:first-of-type{margin-top:var(--space-md)}.teaching-page .content h3{font-size:1.1rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm);font-weight:600}.recent-blog{margin-bottom:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.recent-blog h2{font-size:1.3rem;margin-bottom:var(--space-md);font-weight:600}.blog-preview-list{list-style:none;padding:0;margin:0}.blog-preview-item{padding:0;margin-bottom:var(--space-md)}.blog-preview-card{padding:var(--space-md);border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);transition:all .2s ease}.blog-preview-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px rgba(34,123,185,.1);transform:translateY(-2px)}.blog-preview-meta{font-family:var(--font-serif);font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-xs)}.blog-preview-title{font-size:1rem;font-weight:600;line-height:1.4;margin:0 0 var(--space-xs);color:var(--color-heading)}.blog-preview-title a{color:inherit;text-decoration:none}.blog-preview-title a:hover{color:var(--color-accent)}.blog-preview-description{font-size:.9rem;color:var(--color-text-muted);margin:0;line-height:1.5}