:root{--color-bg:#0f1419;--color-surface:#182029;--color-text:#eef1f4;--color-text-muted:#9aa7b2;--color-border:#2a323b;--color-accent:#4fd1c5;--color-accent-strong:#7fe0d6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:18px/155% system-ui,Segoe UI,Roboto,sans-serif}@media (width<=1024px){:root{font-size:16px}}:root[data-theme=light]{--color-bg:#f7f8fa;--color-surface:#fff;--color-text:#1a2129;--color-text-muted:#5b6773;--color-border:#e1e5e9;--color-accent:#0d8f83;--color-accent-strong:#0a746a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;transition:background-color .2s,color .2s}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{color:var(--color-text);font-family:inherit;font-weight:700;line-height:1.25}p{margin:0}a{color:var(--color-accent)}a:hover{color:var(--color-accent-strong)}main{flex-direction:column;flex:1;display:flex}.page{flex:1;width:100%;max-width:80rem;margin:0 auto;padding:0 1.5rem 3rem}.card-list{flex-direction:column;gap:1.25rem;display:flex}.btn{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.4rem;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s,transform .2s,box-shadow .2s;display:inline-flex}.btn:hover{background:var(--color-accent);color:var(--color-bg);box-shadow:0 6px 16px color-mix(in srgb, var(--color-accent) 35%, transparent);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}.navbar{z-index:10;background:color-mix(in srgb, var(--color-surface) 75%, transparent);-webkit-backdrop-filter:blur(10px)saturate(1.4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--color-text);letter-spacing:-.01em;font-size:1.15rem;font-weight:700;text-decoration:none}.navbar-links{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.navbar-links a{color:var(--color-text-muted);padding:.35rem .1rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .2s;position:relative}.navbar-links a:hover{color:var(--color-text)}.navbar-links a:after{content:"";background:var(--color-accent);transform-origin:50%;border-radius:999px;height:2px;transition:transform .2s;position:absolute;bottom:-.15rem;left:0;right:0;transform:scaleX(0)}.navbar-links a:hover:after{transform:scaleX(.6)}.navbar-links a.active{color:var(--color-accent)}.navbar-links a.active:after{transform:scaleX(1)}.navbar-external{opacity:.85;align-items:center;gap:.3rem;display:inline-flex}.navbar-subtle{opacity:.4;filter:grayscale();font-size:1rem;line-height:1;transition:opacity .2s,filter .2s,transform .2s;display:inline-flex}.navbar-subtle:after{display:none}.navbar-subtle:hover{opacity:1;filter:grayscale(0);transform:scale(1.1)}@media (prefers-reduced-motion:reduce){.navbar-subtle:hover{transform:none}}.theme-toggle{border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:border-color .2s,transform .2s;display:inline-flex}.theme-toggle:hover{border-color:var(--color-accent);transform:scale(1.08)}@media (prefers-reduced-motion:reduce){.theme-toggle:hover{transform:none}}.social-links{flex-wrap:wrap;gap:.75rem;display:flex}.social-link{border:1px solid var(--color-border);width:2.5rem;height:2.5rem;color:var(--color-text-muted);background:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;transition:color .2s,border-color .2s,transform .2s,background-color .2s;display:inline-flex}.social-link:hover{color:var(--color-accent);border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.social-link:hover{transform:none}}.site-footer{text-align:center;border-top:1px solid var(--color-border);margin-top:auto;padding:2.5rem 1.5rem 3rem}.footer-socials{justify-content:center;margin-bottom:1.25rem}.footer-email,.footer-copy{color:var(--color-text-muted);margin:.25rem 0;font-size:.85rem}.news-timeline{flex-direction:column;gap:2rem;display:flex}.news-year-group{grid-template-columns:4rem 1fr;gap:1.25rem;display:grid}.news-year-label{color:var(--color-text-muted);padding-top:.35rem;font-size:1.4rem;font-weight:700}.news-list{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.news-item{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:.6rem;grid-template-columns:2.5rem 1fr;align-items:flex-start;gap:.9rem;padding:.9rem 1.1rem;transition:border-color .2s,transform .2s,box-shadow .2s;display:grid}.news-item:hover{transform:translate(4px);box-shadow:0 6px 18px #0000001f}.news-item--paper{border-left-color:#4fd1c5}.news-item--talk{border-left-color:#6ea8fe}.news-item--award{border-left-color:#f2c94c}.news-item--milestone{border-left-color:#eb7fb0}.news-item--teaching{border-left-color:#9d84e8}.news-item--service{border-left-color:#7bc67e}.news-icon{background:var(--color-bg);border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.2rem;line-height:1;display:flex}.news-date{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem;font-size:.78rem;font-weight:600;display:block}.news-item-body p{color:var(--color-text);line-height:1.5}@media (width<=600px){.news-year-group{grid-template-columns:1fr;gap:.5rem}}@media (prefers-reduced-motion:reduce){.news-item:hover{transform:none}}.home-top{grid-template-columns:1fr;gap:2rem;max-width:42rem;margin:0 auto;padding:3.5rem 0 2.5rem;display:grid}.hero-identity{text-align:center}.hero-avatar{object-fit:cover;border:3px solid var(--color-accent);border-radius:50%;width:8rem;height:8rem;margin-bottom:1.25rem;animation:.6s both fade-in-up}.hero-identity h1{margin:0 0 .35rem;font-size:clamp(1.9rem,4vw,2.6rem);animation:.6s 50ms both fade-in-up}.hero-tagline{color:var(--color-accent);margin-bottom:1.75rem;font-weight:600;animation:.6s .1s both fade-in-up}.hero-contact{border-top:1px solid var(--color-border);flex-direction:column;align-items:center;gap:.9rem;margin-top:1.75rem;padding-top:1.75rem;animation:.6s .2s both fade-in-up;display:flex}.hero-email{color:var(--color-text-muted);font-size:.9rem}.hero-bio{text-align:left;color:var(--color-text-muted);flex-direction:column;gap:1rem;line-height:1.65;animation:.6s .15s both fade-in-up;display:flex}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width>=900px){.home-top{grid-template-columns:20rem 1fr;align-items:start;gap:3rem;max-width:none}.hero-identity{text-align:left}.hero-contact,.hero-avatar{align-self:center}.hero-contact{align-items:flex-start}}.home-news{width:100%;max-width:none;padding-bottom:3rem}.home-news-heading{justify-content:space-between;align-items:baseline;margin-bottom:1.25rem;display:flex}.home-news-heading h2{margin:0}.home-news-heading a{align-items:center;gap:.3rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:gap .2s;display:inline-flex}.home-news-heading a:hover{gap:.55rem}@media (prefers-reduced-motion:reduce){.hero-avatar,.hero-identity h1,.hero-tagline,.hero-bio,.hero-contact{animation:none}}.page-header{text-align:center;max-width:48rem;margin:0 auto;padding:3rem 1.5rem 2rem}.page-header h1{margin:0 0 .5rem;font-size:clamp(1.8rem,4vw,2.6rem)}.page-header p{color:var(--color-text-muted);font-size:1.05rem}.pub-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;grid-template-columns:10rem 1fr;gap:1.5rem;padding:1.5rem;transition:border-color .2s,transform .2s;display:grid}.pub-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.pub-card-image{background:var(--color-bg);border-radius:.5rem;justify-content:center;align-items:center;display:flex;overflow:hidden}.pub-card-image img{width:100%;height:auto;display:block}.pub-card-body h3{margin:0 0 .4rem;font-size:1.1rem}.pub-card-body h3 a{color:var(--color-text);text-decoration:none}.pub-card-body h3 a:hover{color:var(--color-accent)}.pub-card-meta{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.9rem}.pub-card-excerpt{color:var(--color-text-muted);margin-bottom:1rem;line-height:1.55}.pub-card-links{flex-wrap:wrap;gap:.75rem;display:flex}.pub-card--no-image{grid-template-columns:1fr}@media (width<=640px){.pub-card{grid-template-columns:1fr}}.cv-download-wrap{justify-content:center;margin-bottom:1.75rem;display:flex}.cv-embed{max-width:50rem;margin:0 auto}.cv-embed iframe{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.75rem;width:100%;height:85vh;min-height:700px}.entry-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1.5rem}.entry-card h3{margin:0 0 .35rem;font-size:1.1rem}.entry-card-meta{color:var(--color-accent);margin-bottom:.75rem;font-size:.85rem;font-weight:600}.entry-card-description{color:var(--color-text-muted);line-height:1.55}.coming-soon{color:var(--color-text-muted);text-align:center;margin-top:1.5rem;font-style:italic}.portfolio-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;grid-template-columns:10rem 1fr;align-items:center;gap:1.5rem;padding:1.5rem;display:grid}.portfolio-card img{border-radius:.5rem;width:100%}.portfolio-card h3{margin:0 0 .4rem}.portfolio-card p{color:var(--color-text-muted)}@media (width<=640px){.portfolio-card{grid-template-columns:1fr}}.blog-post{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1.5rem}.blog-post h3{margin:0 0 .35rem}.blog-post-meta{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.85rem}.blog-post-tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.blog-post-tags span{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:.15rem .65rem;font-size:.75rem}.blog-post-body{color:var(--color-text-muted);line-height:1.6}
