:root{--font-sans:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:'Newsreader', Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:'JetBrains Mono', Menlo, Monaco, Consolas, monospace}:root,[data-theme=light]{--color-bg:#fcfbf6;--color-surface:#f2f1e6;--color-text:#1c1f18;--color-text-muted:#5a6052;--color-accent:#2d5a27;--color-accent-hover:#1d3d19;--color-border:#dadcd0;--color-highlight:#f5f5eb;--color-shadow:rgba(28, 31, 24, 0.05);--color-jmp-bg:#eef0e2;--color-nav-bg:#284b24;--color-nav-text:#fcfbf6;--color-nav-hover:#d9f99d;--color-nav-border:#1b3518;--color-nav-toggle-hover:rgba(255, 255, 255, 0.15)}[data-theme=dark]{--color-bg:#10120e;--color-surface:#181c15;--color-text:#eaefe4;--color-text-muted:#8f9984;--color-accent:#a3ff12;--color-accent-hover:#c2ff5e;--color-border:#283022;--color-highlight:#1b2017;--color-shadow:rgba(0, 0, 0, 0.35);--color-jmp-bg:#151912;--color-nav-bg:#161913;--color-nav-text:#eaefe4;--color-nav-hover:#a3ff12;--color-nav-border:#283022;--color-nav-toggle-hover:rgba(163, 255, 18, 0.08)}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease}body{margin:0;background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:.95rem;line-height:1.65;transition:background-color .25s ease,color .25s ease}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s ease,text-decoration-color .15s ease,opacity .15s ease}a:hover{color:var(--color-accent-hover);text-decoration-color:var(--color-accent-hover)}a:visited{color:var(--color-accent)}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-text);color:var(--color-bg);padding:.5rem 1rem;z-index:100;font-family:var(--font-mono);font-size:.85rem}.skip-link:focus{left:1rem;top:1rem}.site-nav{position:sticky;top:0;z-index:100;background-color:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);padding:.7rem 1.5rem;transition:background-color .25s ease,border-bottom-color .25s ease}.nav-inner{max-width:920px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.nav-brand,.nav-brand:visited,.nav-brand:hover,.nav-brand:active{font-weight:600;font-size:1.12rem;letter-spacing:-.025em;color:var(--color-nav-text);text-decoration:none;font-family:var(--font-sans);transition:color .15s ease}.nav-brand:hover{color:var(--color-nav-hover)}.nav-actions{display:flex;align-items:center;gap:1rem}.nav-links{display:flex;gap:.35rem;list-style:none;margin:0;padding:0;align-items:center}.nav-links a{color:var(--color-nav-text);font-family:var(--font-sans);font-size:.88rem;font-weight:500;text-decoration:none;padding:.2rem .4rem;position:relative;transition:color .15s ease}.nav-links a::before{content:"[";margin-right:.2rem;opacity:0;font-family:var(--font-mono);font-size:.8rem;color:var(--color-nav-hover);transition:opacity .18s,transform .18s;display:inline-block;transform:translateX(3px)}.nav-links a::after{content:"]";margin-left:.2rem;opacity:0;font-family:var(--font-mono);font-size:.8rem;color:var(--color-nav-hover);transition:opacity .18s,transform .18s;display:inline-block;transform:translateX(-3px)}.nav-links a:hover::before,.nav-links a:hover::after{opacity:.9;transform:translateX(0)}.nav-links a:hover{color:var(--color-nav-hover);text-decoration:none}.nav-toggle{display:none;background:0 0;border:0;cursor:pointer;padding:.25rem;color:var(--color-nav-text);border-radius:4px;transition:background-color .15s,color .15s}.nav-toggle:hover{background-color:var(--color-nav-toggle-hover);color:var(--color-nav-hover)}.nav-toggle svg{display:block;width:22px;height:22px}.theme-toggle{background:0 0;border:1px solid var(--color-nav-border);color:var(--color-nav-text);border-radius:4px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;transition:background-color .15s,border-color .15s,color .15s}.theme-toggle:hover{background-color:var(--color-nav-toggle-hover);border-color:var(--color-nav-hover);color:var(--color-nav-hover)}.theme-toggle svg{width:16px;height:16px;transition:transform .3s ease}.theme-toggle:hover svg{transform:rotate(20deg)}[data-theme=dark] .sun-icon{display:block}[data-theme=dark] .moon-icon{display:none}[data-theme=light] .sun-icon{display:none}[data-theme=light] .moon-icon{display:block}@media(max-width:768px){.nav-toggle{display:block}.nav-links{position:absolute;top:100%;right:0;left:0;background-color:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);flex-direction:column;gap:0;padding:.5rem 1.5rem 1rem;display:none;box-shadow:0 4px 6px var(--color-shadow)}.nav-links.open{display:flex}.nav-links li{width:100%;padding:.5rem 0;border-bottom:1px solid var(--color-nav-border)}.nav-links li:last-child{border-bottom:0}.nav-links a{display:block;width:100%}}main{max-width:920px;margin:0 auto;padding:3.25rem 1.5rem 5rem}section{margin-bottom:3.75rem;scroll-margin-top:5rem}h1,h2,h3,h4{color:var(--color-text);font-family:var(--font-sans);font-weight:600;letter-spacing:-.02em;line-height:1.25;margin-top:0}h1{font-size:1.95rem;letter-spacing:-.03em;margin-bottom:.5rem}h2{font-size:1.25rem;letter-spacing:-.02em;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}h3{font-size:1.05rem;margin:1.75rem 0 .85rem}p{margin:0 0 1rem}.intro-grid{display:grid;grid-template-columns:270px 1fr;gap:2.75rem;margin-bottom:3.75rem;align-items:flex-start}.intro-profile{text-align:center}.profile-photo img{width:205px;height:205px;border-radius:50%;object-fit:cover;border:1px solid var(--color-border);padding:4px;background-color:var(--color-surface);box-shadow:0 2px 10px var(--color-shadow);margin:0 auto 1.25rem}.profile-name{font-size:1.75rem;font-weight:600;letter-spacing:-.035em;margin:0 0 .35rem;line-height:1.15;font-family:var(--font-sans)}.profile-tagline{color:var(--color-text-muted);font-family:var(--font-sans);font-size:.94rem;font-style:normal;margin:0 0 .35rem}.profile-meta{font-family:var(--font-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 1.25rem;line-height:1.4}.profile-meta a{color:var(--color-text-muted);text-decoration:underline;text-decoration-color:var(--color-border)}.profile-meta a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}.profile-actions{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center;margin-top:.85rem}.profile-btn,.profile-btn:visited{display:inline-flex;align-items:center;gap:.38rem;padding:.36rem .68rem;background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:4px;font-size:.76rem;font-family:var(--font-mono);text-decoration:none;transition:all .15s ease}.profile-btn:hover,.profile-btn:visited:hover{background-color:var(--color-highlight);border-color:var(--color-accent);color:var(--color-accent);text-decoration:none;transform:translateY(-1px)}.profile-btn svg{width:13px;height:13px;color:var(--color-accent);flex-shrink:0;transition:color .15s ease}.intro-bio{border-left:1px solid var(--color-border);padding-left:2.75rem}.intro-bio h2{font-size:1.35rem;font-weight:600;letter-spacing:-.025em;margin-bottom:.9rem;border-bottom:none;padding-bottom:0}.intro-bio p{font-size:.95rem;color:var(--color-text-muted);line-height:1.68;margin-bottom:.9rem}.intro-bio p:last-child{margin-bottom:0}.intro-bio a{color:var(--color-text);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--color-accent)}.intro-bio a:hover{color:var(--color-accent)}@media(max-width:768px){.intro-grid{grid-template-columns:1fr;gap:2rem}.intro-bio{border-left:none;padding-left:0;border-top:1px solid var(--color-border);padding-top:1.75rem}.profile-photo img{width:175px;height:175px}}.page-title{font-family:var(--font-sans);font-size:1.75rem;font-weight:600;letter-spacing:-.03em;border-bottom:1.5px solid var(--color-text);padding-bottom:.55rem;margin-bottom:2.25rem;font-style:normal}.subsection-title{font-family:var(--font-mono);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin:2.75rem 0 1rem;border-bottom:1.5px solid var(--color-text);padding-bottom:.5rem;color:var(--color-text)}.projects-list,.datasets-list,.experience-list,.education-list,.awards-list,.teaching-list{display:flex;flex-direction:column}.project-item,.data-item,.experience-item,.education-item,.award-item,.teaching-item{border-bottom:1px solid var(--color-border);padding:.95rem .5rem;margin:0 -.5rem;border-radius:3px;transition:background-color .15s ease}.project-item:hover,.experience-item:hover,.education-item:hover,.award-item:hover{background-color:var(--color-highlight)}.project-item.has-image{display:flex;gap:1.75rem;align-items:flex-start}.project-content{flex:1}.paper-image{flex-shrink:0;width:175px;margin-top:.15rem}.paper-image img{width:100%;height:auto;border:1px solid var(--color-border);background-color:var(--color-surface);padding:3px;border-radius:3px}.project-name,.data-title,.role-title,.degree-title,.award-title,.course-title{font-family:var(--font-sans);font-size:.98rem;font-weight:500;letter-spacing:-.008em;margin-top:0;margin-bottom:.25rem;line-height:1.42}.project-name a,.data-title a{color:var(--color-text);text-decoration:none}.project-name a:hover,.data-title a:hover{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}.project-desc,.data-desc,.role-desc{margin-top:.3rem;font-size:.88rem;color:var(--color-text-muted);line-height:1.6;margin-bottom:0}.data-meta,.item-meta,.teaching-meta{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.76rem;margin-top:.15rem}.paper-links{display:flex;flex-wrap:wrap;gap:.35rem .85rem;margin-top:.45rem;font-family:var(--font-mono);font-size:.74rem}.paper-links a{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}.paper-links a::after{content:" ↗"}.entry-list{list-style:none;padding:0;margin:0}.entry-list li{padding:.75rem 0;border-bottom:1px solid var(--color-border)}.entry-list li:last-child{border-bottom:none}.entry-list .entry-meta{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);margin-bottom:.2rem}.entry-list .entry-desc{font-size:.92rem}.contact-block{color:var(--color-text-muted);font-size:.9rem}.contact-block p{line-height:1.7}.contact-block a{font-family:var(--font-mono);font-size:.84rem}.site-footer{border-top:1px solid var(--color-border);margin-top:4.5rem;padding:2rem 1.5rem;text-align:center;color:var(--color-text-muted);font-family:var(--font-sans);font-size:.8rem}.site-footer a{color:var(--color-text-muted);text-decoration:underline}.scholar-section{margin:3.5rem 0 2.5rem}.scholar-tracker-card{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:4px;padding:1.1rem 1.5rem}.scholar-tracker-left{display:flex;align-items:center;gap:1rem}.scholar-svg{width:28px;height:28px;color:var(--color-accent);flex-shrink:0}.scholar-label{display:block;font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--color-text);margin-bottom:.2rem}.scholar-sub-meta{font-family:var(--font-mono);font-size:.74rem;color:var(--color-text-muted)}.scholar-sub-meta b{color:var(--color-text)}.scholar-count-badge{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:.45rem 1.25rem;border:1px solid var(--color-accent);border-radius:4px;text-decoration:none;background-color:var(--color-bg);transition:all .15s ease;min-width:98px}.scholar-count-badge:hover{background-color:var(--color-accent);text-decoration:none}.scholar-number{font-family:var(--font-mono);font-size:1.45rem;font-weight:600;color:var(--color-accent);line-height:1.1;transition:color .15s ease}.scholar-count-badge:hover .scholar-number{color:var(--color-bg)}.scholar-unit{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);transition:color .15s ease}.scholar-count-badge:hover .scholar-unit{color:var(--color-bg)}@media(max-width:576px){.scholar-tracker-card{flex-direction:column;align-items:flex-start}.project-item.has-image{flex-direction:column-reverse;gap:.85rem}.paper-image{width:120px}}.imas-research-index{margin-top:1.25rem}.minimal-section{margin-bottom:3.25rem}.minimal-section:last-child{margin-bottom:0}.section-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:.5rem;border-bottom:1.5px solid var(--color-text);margin-bottom:.75rem}.section-label{font-family:var(--font-mono);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text);margin:0}.section-num{color:var(--color-text-muted)}.section-meta{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-muted)}.writing-table-head{display:grid;gap:1.25rem;padding:0 .5rem .45rem;margin:0 -.5rem;border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:.66rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.research-grid{grid-template-columns:minmax(0,52%)minmax(0,24%)minmax(0,24%)}.writing-table-head>div:last-child{text-align:right}.writing-list{display:flex;flex-direction:column}.writing-row{padding:.88rem .5rem;margin:0 -.5rem;border-bottom:1px solid var(--color-border);border-radius:3px;transition:background-color .15s ease}.writing-row:hover{background-color:var(--color-highlight)}.writing-main{display:grid;gap:1.25rem;align-items:baseline}.writing-main.has-abstract{cursor:pointer}.writing-title-col{min-width:0}.writing-title{font-family:var(--font-sans);font-size:.95rem;font-weight:500;letter-spacing:-.008em;color:var(--color-text);line-height:1.42}.writing-title a{color:var(--color-text);text-decoration:none;transition:color .15s ease}.writing-title a:hover,.writing-row:hover .writing-main.has-abstract .writing-title{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.item-badge{display:inline-block;font-family:var(--font-mono);font-size:.64rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text);border:1px solid var(--color-text);padding:.04rem .38rem;border-radius:3px;margin-left:.45rem;vertical-align:middle}.inline-links-bar{margin-top:.36rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .85rem;font-family:var(--font-mono);font-size:.71rem}.inline-link,.abstract-toggle-btn{background:0 0;border:none;padding:0;font-family:var(--font-mono);font-size:.71rem;color:var(--color-accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.inline-link:hover,.abstract-toggle-btn:hover{color:var(--color-accent-hover);opacity:.85}.writing-authors{font-family:var(--font-sans);font-size:.84rem;color:var(--color-text-muted);line-height:1.45}.writing-venue{font-family:var(--font-sans);font-size:.83rem;color:var(--color-text-muted);line-height:1.45;text-align:right}.writing-venue strong{font-weight:600;color:var(--color-text)}.writing-venue em{font-style:italic}.writing-venue strong em,.writing-venue em strong{font-weight:600;font-style:italic;color:var(--color-text)}.writing-venue .status-label{font-family:var(--font-mono);font-size:.76rem;font-weight:600;color:var(--color-text)}[data-theme=dark] .section-num,[data-theme=dark] .writing-venue .status-label,[data-theme=dark] .nav-brand{color:var(--color-accent)}[data-theme=dark] .section-head,[data-theme=dark] .subsection-title,[data-theme=dark] .page-title{border-bottom-color:var(--color-accent)}.writing-drawer{display:none;margin:.8rem 0 .2rem .15rem;padding:.15rem 0 .15rem 1rem;border-left:1.5px solid var(--color-accent);font-size:.89rem;color:var(--color-text-muted);max-width:72ch;line-height:1.66}.writing-drawer p{margin:0}.writing-drawer p+p{margin-top:.65rem}.writing-row.expanded .writing-drawer{display:block}@media(max-width:768px){.writing-table-head{display:none}.research-grid{grid-template-columns:1fr;gap:.25rem}.writing-venue{text-align:left}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}