/* A restrained refresh of the existing Academic theme. */
:root{--ink:#263244;--muted:#5b6473;--blue:#354ca1;--link:#185a78;--rule:#dce2e8;--tint:#f6f8fb;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html{scroll-padding-top:88px}
html,body,p,ul,ol,li{font-size:17px}
body{color:var(--ink);background:#fff;margin-top:72px}
p{line-height:1.7;margin-bottom:16px;min-height:0}
h1,h2,h3,h4{color:var(--ink)}
a,a:visited{color:var(--link)}
a:hover,a:focus{color:#123c57;text-decoration:underline}
a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #b96913;outline-offset:4px}
.home-section .container,.navbar .container,.site-footer .container,body>.container{width:auto;max-width:1180px;padding-left:30px;padding-right:30px}
.home-section{padding:58px 0;border-bottom:1px solid var(--rule)}
.home-section:first-of-type{padding-top:48px;padding-bottom:48px}
.home-section:nth-of-type(odd){background:#fff}
.home-section:nth-of-type(even){background:var(--tint)}
.section-heading h2{font-size:30px;margin:0 0 14px;line-height:1.2}
.section-heading p{color:var(--muted);font-size:16px;max-width:24ch}
.section-link,.view-all a{font-family:var(--sans);font-size:14px;font-weight:600;display:inline-block;padding:6px 0}
.navbar-default{background:var(--blue);box-shadow:0 1px 0 rgba(0,0,0,.08)}
.navbar-default .navbar-brand{text-transform:none;font-family:'Source Serif Pro',Georgia,serif;font-weight:600;font-size:21px;letter-spacing:-.2px}
.navbar-default .navbar-nav>li>a{font-family:var(--sans);font-size:14px;font-weight:500;padding-left:13px;padding-right:13px}
.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#fff;background:rgba(255,255,255,.1);text-decoration:none}
.navbar-default .navbar-toggle{border-color:rgba(255,255,255,.5);margin-top:15px}
.navbar-default .navbar-toggle .icon-bar{background:#fff}
.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background:rgba(255,255,255,.15)}
#profile{padding:4px 24px 0 0}
#profile .portrait{width:176px;height:176px;border-radius:50%;object-fit:cover;object-position:center top;display:block;margin:0 auto 22px}
#profile .portrait-title h1{font-size:31px;line-height:1.18;margin:0 0 14px;letter-spacing:-.5px}
#profile .portrait-title h3{font-family:var(--sans);font-size:14px;line-height:1.55;margin:3px 0;color:var(--muted);font-weight:400}
.profile-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:22px 0 0;padding:0;list-style:none}
.profile-links li{margin:0;padding:0}
.profile-links a{font-family:var(--sans);font-size:13px;display:inline-flex;align-items:center;gap:6px;min-height:36px}
.profile-links i{font-size:16px}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:1px;line-height:1.5;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.biography>h2{font-size:30px;margin:6px 0 16px}
.biography>p{font-size:16px}
.biography>.row{margin-top:24px;padding-top:12px;border-top:1px solid var(--rule)}
.biography .row h3{font-size:21px;margin-bottom:12px}
.biography .ul-interests{padding-left:18px}
.biography .ul-interests li{font-size:15px;line-height:1.7}
.biography .ul-edu{margin-left:22px}
.biography .ul-edu .course{font-size:15px;line-height:1.4;margin-bottom:2px}
.biography .ul-edu .institution{color:var(--muted);font-size:13px;line-height:1.4}
.biography .ul-edu li{margin-bottom:13px}
.community-note{font-size:16px;margin-top:18px;margin-bottom:8px}
.community-note ul{padding-left:18px;margin:6px 0 0}
.community-note li{font-size:inherit;line-height:1.65}
.research-feature{padding:0 0 25px;margin-bottom:25px;border-bottom:1px solid var(--rule)}
.research-feature:last-child{padding-bottom:0;margin-bottom:0;border:0}
.research-feature h3{margin:0 0 10px;font-size:23px;line-height:1.35}
.research-feature>p:not(.eyebrow):not(.research-meta){font-size:17px;margin-bottom:10px}
p.research-meta,p.publication-venue{color:var(--muted);font-size:14px;margin-bottom:8px}
.software-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.featured-software{grid-template-columns:repeat(2,minmax(0,1fr))}
.software-card{border:1px solid var(--rule);border-top:3px solid var(--blue);padding:22px 19px 18px;background:#fff;display:flex;flex-direction:column;scroll-margin-top:90px}
.software-card h3{font-size:27px;line-height:1.2;margin:0 0 12px}
.software-tagline{font-size:17px;font-weight:600;line-height:1.4;margin-bottom:12px}
.software-description{font-size:15px;line-height:1.6;margin-bottom:18px}
.software-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.software-actions a{display:inline-flex;align-items:center;text-decoration:none}
.article-container{max-width:1040px;padding:36px 25px}
.article-container>h1{font-size:37px;margin-top:5px;margin-bottom:22px}
.article-container .software-catalog{margin-top:30px}
.publication-entry{padding:0 0 22px;margin:0 0 22px;border-bottom:1px solid var(--rule)}
.publication-entry:last-child{margin-bottom:0}
h3.publication-title{font-size:21px;line-height:1.4;margin:0 0 8px}
p.publication-authors{color:var(--muted);font-size:14px;line-height:1.65;margin:0 0 6px}
p.publication-authors strong{color:var(--ink);font-weight:600}
.publication-actions{display:flex;flex-wrap:wrap;gap:7px}
.btn.btn-outline.btn-xs,.btn.btn-primary.btn-outline{font-family:var(--sans);font-size:12px;line-height:1.4;padding:7px 11px;border:1px solid #9fb0bf;border-radius:3px;color:var(--link);background:transparent;min-height:34px;margin:0}
.btn.btn-primary.btn-outline:hover,.btn.btn-primary.btn-outline:focus{color:#fff;background:var(--link);border-color:var(--link);text-decoration:none}
#teaching .pub-list-item{margin-bottom:26px!important}
#teaching .pub-list-item:last-child{margin-bottom:0!important}
#teaching .pub-list-item>[itemprop="course_num"],#teaching .pub-list-item>a{font-size:21px}
#teaching .pub-list-item p{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.course-detail{display:inline-block;font-family:var(--sans);font-size:12px;color:var(--muted);padding:6px 10px;background:#eef1f5;border-radius:3px}
#contact .section-intro p{margin:0 0 22px}
#contact .fa-ul li{margin-bottom:13px}
#contact .fa-li{color:var(--muted)}
#contact li span,#contact li a{font-size:16px}
.pub-filters{font-family:var(--sans);font-size:14px;min-height:40px;background:#fff;border:1px solid #aeb9c3;border-radius:3px;padding:7px 10px;margin:0 8px 12px 0;max-width:100%}
#container-publications{margin-top:20px}
.site-footer{padding:28px 0;margin:0;color:var(--muted);background:#fff}
.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.footer-inner p,.footer-inner>a{font-family:var(--sans);font-size:12px;margin:0}
.footer-credit{display:block;font-size:11px;margin-top:3px}
.skip-link{position:fixed;top:-100px;left:20px;z-index:2000;padding:12px 20px;background:#fff}
.skip-link:focus{top:10px}
.modal-body{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1100px) and (min-width:769px){
.navbar-default .navbar-brand{font-size:18px}
.navbar-default .navbar-nav>li>a{padding-left:8px;padding-right:8px;font-size:13px}
}
@media(max-width:991px){
#profile{padding:0;max-width:450px;margin:0 auto 36px}
.section-heading{margin-bottom:30px}
.section-heading p{max-width:none}
.profile-links{max-width:340px;margin-left:auto;margin-right:auto}
}
@media(max-width:768px){
body{margin-top:61px}
.home-section .container,.navbar .container,.site-footer .container,body>.container{padding-left:22px;padding-right:22px}
.navbar-default .navbar-brand{font-size:18px;line-height:50px;padding-top:5px;padding-bottom:5px}
.navbar-header{min-height:60px}
.navbar-default .navbar-nav>li>a{line-height:24px;font-size:15px;padding-top:10px;padding-bottom:10px}
.home-section,.home-section:first-of-type{padding:38px 0}
#profile .portrait{width:144px;height:144px;margin-bottom:18px}
#profile .portrait-title h1{font-size:30px}
.biography>h2,.section-heading h2{font-size:28px}
.software-grid{grid-template-columns:1fr}
.software-card{padding:23px}
.profile-links a{min-height:44px}
.software-description{font-size:16px}
.research-feature h3{font-size:22px}
.article-container{padding:28px 20px}
.article-container>h1{font-size:30px}
.footer-inner{flex-direction:column;gap:14px}
.btn.btn-outline.btn-xs,.btn.btn-primary.btn-outline{min-height:40px;display:inline-flex;align-items:center}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.article-container{margin-left:auto;margin-right:auto}
.navbar-default .navbar-brand,.navbar-default .navbar-nav>li>a,.navbar-default .navbar-nav>li>a:visited{color:#fff}
