﻿:root{--global-bg-color:#fff;--global-code-bg-color:rgba(181,9,172,0.05);--global-text-color:#000;--global-text-color-light:#828282;--global-theme-color:#b509ac;--global-hover-color:#b509ac;--global-hover-text-color:#fff;--global-footer-bg-color:#1c1c1d;--global-footer-text-color:#e8e8e8;--global-footer-link-color:#fff;--global-distill-app-color:#828282;--global-divider-color:rgba(0,0,0,0.1);--global-card-bg-color:#fff;--global-highlight-color:#b71c1c;--global-back-to-top-bg-color:rgba(0,0,0,0.4);--global-back-to-top-text-color:#fff;--global-newsletter-bg-color:#fff;--global-newsletter-text-color:#000;--global-tip-block:#42b983;--global-tip-block-bg:#e2f5ec;--global-tip-block-text:#215d42;--global-tip-block-title:#359469;--global-warning-block:#e7c000;--global-warning-block-bg:#fff8d8;--global-warning-block-text:#6b5900;--global-warning-block-title:#b29400;--global-danger-block:#c00;--global-danger-block-bg:#ffe0e0;--global-danger-block-text:#600;--global-danger-block-title:#c00}:root #light-toggle-system{padding-left:10px;padding-top:12px;display:block}:root #light-toggle-dark{display:none}:root #light-toggle-light{display:none}:root #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color);bottom:30px;right:30px;height:40px;width:40px;z-index:10}html[data-theme=dark]{--global-bg-color:#1c1c1d;--global-code-bg-color:#2c3237;--global-text-color:#e8e8e8;--global-text-color-light:#828282;--global-theme-color:#2698ba;--global-hover-color:#2698ba;--global-hover-text-color:#fff;--global-footer-bg-color:#e8e8e8;--global-footer-text-color:#1c1c1d;--global-footer-link-color:#000;--global-distill-app-color:#e8e8e8;--global-divider-color:#424246;--global-card-bg-color:#212529;--global-back-to-top-bg-color:rgba(255,255,255,0.5);--global-back-to-top-text-color:#000;--global-newsletter-bg-color:#e8e8e8;--global-newsletter-text-color:#1c1c1d;--global-tip-block:#42b983;--global-tip-block-bg:#e2f5ec;--global-tip-block-text:#215d42;--global-tip-block-title:#359469;--global-warning-block:#e7c000;--global-warning-block-bg:#fff8d8;--global-warning-block-text:#6b5900;--global-warning-block-title:#b29400;--global-danger-block:#c00;--global-danger-block-bg:#ffe0e0;--global-danger-block-text:#600;--global-danger-block-title:#c00}html[data-theme-setting=dark] #light-toggle-system{display:none}html[data-theme-setting=dark] #light-toggle-dark{padding-left:10px;padding-top:12px;display:block}html[data-theme-setting=dark] #light-toggle-light{display:none}html[data-theme-setting=dark] #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color)}html[data-theme-setting=light] #light-toggle-system{display:none}html[data-theme-setting=light] #light-toggle-dark{display:none}html[data-theme-setting=light] #light-toggle-light{padding-left:10px;padding-top:12px;display:block}body{padding-bottom:70px;color:var(--global-text-color);background-color:var(--global-bg-color)}body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:66px}body.fixed-top-nav{padding-top:56px}body.sticky-bottom-footer{padding-bottom:0}.container{max-width:930px}.profile img{width:100%}p,h1,h2,h3,h4,h5,h6,em,div,li,span,strong{color:var(--global-text-color)}hr{border-top:1px solid var(--global-divider-color)}table td,table th{font-size:1rem;padding:1px 1rem 1px 0}table th{font-weight:bold}a,table.table a{color:var(--global-theme-color)}a:hover,table.table a:hover{color:var(--global-theme-color);text-decoration:underline}a:hover:after :not(.nav-item.dropdown),table.table a:hover:after :not(.nav-item.dropdown){width:100%}.table-dark{background-color:rgba(0,0,0,0)}blockquote{background:var(--global-bg-color);border-left:5px solid var(--global-theme-color);margin:1.5em 0;padding:1em;font-size:1.2rem}blockquote p{margin-bottom:0}.caption{font-size:.875rem;margin-top:.75rem;margin-bottom:1.5rem;text-align:center}.card{background-color:var(--global-card-bg-color)}.card .card-title{color:var(--global-text-color)}.citation,.citation-number{color:var(--global-theme-color)}.profile{width:100%}.profile.float-right{margin-left:1rem}@media(min-width:576px){.profile{width:30%}.profile .address p{display:block}}.post-description{margin-bottom:2rem;font-size:.875rem}.post-description a{color:inherit}.post-description a:hover{color:var(--global-theme-color);text-decoration:none}.navbar{box-shadow:none;border-bottom:1px solid var(--global-divider-color);background-color:var(--global-bg-color);opacity:.95}.navbar .dropdown-menu{background-color:var(--global-bg-color);border:1px solid var(--global-divider-color)}.navbar .dropdown-menu a:not(.active){color:var(--global-text-color)}.navbar .dropdown-menu a:hover{color:var(--global-hover-color)}.dropdown-item{color:var(--global-text-color)}.dropdown-item:hover{color:var(--global-hover-color);background-color:var(--global-bg-color)}.navbar.navbar-light a:hover{text-decoration:none}.navbar.navbar-light .navbar-brand{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link{color:var(--global-text-color)}.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link{background-color:inherit;font-weight:bolder;color:var(--global-theme-color)}.navbar.navbar-light .navbar-nav .nav-item.active>.nav-link:hover{color:var(--global-hover-color)}.navbar.navbar-light .navbar-brand.social{padding-bottom:0;padding-top:0;font-size:1.7rem}.navbar.navbar-light .navbar-brand.social a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.navbar.navbar-light .navbar-brand.social a:hover i::before{color:var(--global-theme-color)}.navbar-toggler .icon-bar{display:block;width:22px;height:2px;background-color:var(--global-text-color);border-radius:1px;margin-bottom:4px;transition:all .2s}.navbar-toggler .top-bar{transform:rotate(45deg);transform-origin:10% 10%}.navbar-toggler .middle-bar{opacity:0}.navbar-toggler .bottom-bar{transform:rotate(-45deg);transform-origin:10% 90%}.navbar-toggler.collapsed .top-bar{transform:rotate(0)}.navbar-toggler.collapsed .middle-bar{opacity:1}.navbar-toggler.collapsed .bottom-bar{transform:rotate(0)}#light-toggle,#search-toggle{padding:0;border:0;background-color:inherit;color:var(--global-text-color)}#light-toggle:hover,#search-toggle:hover{color:var(--global-hover-color)}.social{text-align:center}.social .contact-icons{font-size:4rem}.social .contact-icons a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.social .contact-icons a:hover i::before{color:var(--global-theme-color)}footer.fixed-bottom{background-color:var(--global-footer-bg-color);font-size:.75rem}footer.fixed-bottom .container{color:var(--global-footer-text-color);padding-top:9px;padding-bottom:8px;text-align:center}footer.fixed-bottom a{color:var(--global-footer-link-color)}footer.fixed-bottom a:hover{color:var(--global-theme-color);text-decoration:none}footer.sticky-bottom{border-top:1px solid var(--global-divider-color);padding-top:40px;padding-bottom:40px;font-size:.9rem}footer.sticky-bottom .container{text-align:center}.cv{margin-bottom:40px}.cv .card{background-color:var(--global-card-bg-color);border:1px solid var(--global-divider-color)}.cv .card .list-group-item{background-color:inherit;border-color:var(--global-divider-color)}.cv .card .list-group-item .badge{color:var(--global-card-bg-color)!important;background-color:var(--global-theme-color)!important}.distill a:hover{border-bottom-color:var(--global-theme-color);text-decoration:none}.projects a{text-decoration:none}.projects a:hover .card-title{color:var(--global-theme-color)}.projects .card img{width:100%}.projects .col{padding-bottom:1rem}.projects .grid-item{width:250px;margin-bottom:10px}.publications,.repositories,.teaching{margin-top:1rem}.publications h1,.repositories h1,.teaching h1{color:var(--global-theme-color);font-size:2rem;text-align:center;margin-top:1em;margin-bottom:1em}.publications h2,.repositories h2,.teaching h2{margin-bottom:-1rem}.publications h2 span,.repositories h2 span,.teaching h2 span{font-size:2rem}.publications h2.bibliography,.publications h2.year,.publications h2.section,.repositories h2.bibliography,.repositories h2.year,.repositories h2.section,.teaching h2.bibliography,.teaching h2.year,.teaching h2.section{color:var(--global-divider-color);border-top:1px solid var(--global-divider-color);padding-top:1rem;margin-top:1rem;text-align:right;font-size:1.5em}.publications h2.year,.repositories h2.year,.teaching h2.year{font-size:1em}.publications ol.bibliography,.publications ol.artifact,.publications ol.topics,.repositories ol.bibliography,.repositories ol.artifact,.repositories ol.topics,.teaching ol.bibliography,.teaching ol.artifact,.teaching ol.topics{list-style:none;padding:0;margin-top:0}.publications ol.bibliography li,.publications ol.artifact li,.publications ol.topics li,.repositories ol.bibliography li,.repositories ol.artifact li,.repositories ol.topics li,.teaching ol.bibliography li,.teaching ol.artifact li,.teaching ol.topics li{margin-bottom:1rem}.publications ol.bibliography li .title,.publications ol.artifact li .title,.publications ol.topics li .title,.repositories ol.bibliography li .title,.repositories ol.artifact li .title,.repositories ol.topics li .title,.teaching ol.bibliography li .title,.teaching ol.artifact li .title,.teaching ol.topics li .title{font-weight:bolder}.publications ol.bibliography li .author,.publications ol.artifact li .author,.publications ol.topics li .author,.repositories ol.bibliography li .author,.repositories ol.artifact li .author,.repositories ol.topics li .author,.teaching ol.bibliography li .author,.teaching ol.artifact li .author,.teaching ol.topics li .author{font-size:.8em}.publications ol.bibliography li .author a,.publications ol.artifact li .author a,.publications ol.topics li .author a,.repositories ol.bibliography li .author a,.repositories ol.artifact li .author a,.repositories ol.topics li .author a,.teaching ol.bibliography li .author a,.teaching ol.artifact li .author a,.teaching ol.topics li .author a{border-bottom:1px dashed var(--global-theme-color)}.publications ol.bibliography li .author a:hover,.publications ol.artifact li .author a:hover,.publications ol.topics li .author a:hover,.repositories ol.bibliography li .author a:hover,.repositories ol.artifact li .author a:hover,.repositories ol.topics li .author a:hover,.teaching ol.bibliography li .author a:hover,.teaching ol.artifact li .author a:hover,.teaching ol.topics li .author a:hover{border-bottom-style:solid;text-decoration:none}.publications ol.bibliography li .author>em,.publications ol.artifact li .author>em,.publications ol.topics li .author>em,.repositories ol.bibliography li .author>em,.repositories ol.artifact li .author>em,.repositories ol.topics li .author>em,.teaching ol.bibliography li .author>em,.teaching ol.artifact li .author>em,.teaching ol.topics li .author>em{border-bottom:1px solid;font-style:normal}.publications ol.bibliography li .author>span.more-authors,.publications ol.artifact li .author>span.more-authors,.publications ol.topics li .author>span.more-authors,.repositories ol.bibliography li .author>span.more-authors,.repositories ol.artifact li .author>span.more-authors,.repositories ol.topics li .author>span.more-authors,.teaching ol.bibliography li .author>span.more-authors,.teaching ol.artifact li .author>span.more-authors,.teaching ol.topics li .author>span.more-authors{color:var(--global-text-color-light);border-bottom:1px dashed var(--global-text-color-light);cursor:pointer}.publications ol.bibliography li .author>span.more-authors:hover,.publications ol.artifact li .author>span.more-authors:hover,.publications ol.topics li .author>span.more-authors:hover,.repositories ol.bibliography li .author>span.more-authors:hover,.repositories ol.artifact li .author>span.more-authors:hover,.repositories ol.topics li .author>span.more-authors:hover,.teaching ol.bibliography li .author>span.more-authors:hover,.teaching ol.artifact li .author>span.more-authors:hover,.teaching ol.topics li .author>span.more-authors:hover{color:var(--global-text-color);border-bottom:1px dashed var(--global-text-color)}.publications ol.bibliography li .periodical,.publications ol.artifact li .periodical,.publications ol.topics li .periodical,.repositories ol.bibliography li .periodical,.repositories ol.artifact li .periodical,.repositories ol.topics li .periodical,.teaching ol.bibliography li .periodical,.teaching ol.artifact li .periodical,.teaching ol.topics li .periodical{font-size:.8em}.publications ol.bibliography li .links a.btn,.publications ol.artifact li .links a.btn,.publications ol.topics li .links a.btn,.repositories ol.bibliography li .links a.btn,.repositories ol.artifact li .links a.btn,.repositories ol.topics li .links a.btn,.teaching ol.bibliography li .links a.btn,.teaching ol.artifact li .links a.btn,.teaching ol.topics li .links a.btn{color:var(--global-text-color);border:1px solid var(--global-text-color);padding-left:1rem;padding-right:1rem;padding-top:.25rem;padding-bottom:.25rem;margin-left:0;font-size:.5em}.publications ol.bibliography li .links a.btn:hover,.publications ol.artifact li .links a.btn:hover,.publications ol.topics li .links a.btn:hover,.repositories ol.bibliography li .links a.btn:hover,.repositories ol.artifact li .links a.btn:hover,.repositories ol.topics li .links a.btn:hover,.teaching ol.bibliography li .links a.btn:hover,.teaching ol.artifact li .links a.btn:hover,.teaching ol.topics li .links a.btn:hover{color:var(--global-theme-color);border-color:var(--global-theme-color)}
.publications ol.bibliography li .links a.award.btn,.publications ol.artifact li .links a.award.btn,.publications ol.topics li .links a.award.btn,.repositories ol.bibliography li .links a.award.btn,.repositories ol.artifact li .links a.award.btn,.repositories ol.topics li .links a.award.btn,.teaching ol.bibliography li .links a.award.btn,.teaching ol.artifact li .links a.award.btn,.teaching ol.topics li .links a.award.btn{border-color:var(--global-highlight-color)}.publications ol.bibliography li .badges,.publications ol.artifact li .badges,.publications ol.topics li .badges,.repositories ol.bibliography li .badges,.repositories ol.artifact li .badges,.repositories ol.topics li .badges,.teaching ol.bibliography li .badges,.teaching ol.artifact li .badges,.teaching ol.topics li .badges{padding-bottom:.5rem}.publications ol.bibliography li .badges span,.publications ol.artifact li .badges span,.publications ol.topics li .badges span,.repositories ol.bibliography li .badges span,.repositories ol.artifact li .badges span,.repositories ol.topics li .badges span,.teaching ol.bibliography li .badges span,.teaching ol.artifact li .badges span,.teaching ol.topics li .badges span{display:inline-block;color:#000;height:100%;padding-right:.5rem;vertical-align:middle}.publications ol.bibliography li .badges span:hover,.publications ol.artifact li .badges span:hover,.publications ol.topics li .badges span:hover,.repositories ol.bibliography li .badges span:hover,.repositories ol.artifact li .badges span:hover,.repositories ol.topics li .badges span:hover,.teaching ol.bibliography li .badges span:hover,.teaching ol.artifact li .badges span:hover,.teaching ol.topics li .badges span:hover{text-decoration:underline}.publications ol.bibliography li .hidden,.publications ol.artifact li .hidden,.publications ol.topics li .hidden,.repositories ol.bibliography li .hidden,.repositories ol.artifact li .hidden,.repositories ol.topics li .hidden,.teaching ol.bibliography li .hidden,.teaching ol.artifact li .hidden,.teaching ol.topics li .hidden{font-size:.875rem;max-height:0;overflow:hidden;text-align:justify;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li .hidden p,.publications ol.artifact li .hidden p,.publications ol.topics li .hidden p,.repositories ol.bibliography li .hidden p,.repositories ol.artifact li .hidden p,.repositories ol.topics li .hidden p,.teaching ol.bibliography li .hidden p,.teaching ol.artifact li .hidden p,.teaching ol.topics li .hidden p{line-height:1.4em;margin:10px}.publications ol.bibliography li .hidden pre,.publications ol.artifact li .hidden pre,.publications ol.topics li .hidden pre,.repositories ol.bibliography li .hidden pre,.repositories ol.artifact li .hidden pre,.repositories ol.topics li .hidden pre,.teaching ol.bibliography li .hidden pre,.teaching ol.artifact li .hidden pre,.teaching ol.topics li .hidden pre{font-size:1em;line-height:1.4em;padding:10px}.publications ol.bibliography li .hidden.open,.publications ol.artifact li .hidden.open,.publications ol.topics li .hidden.open,.repositories ol.bibliography li .hidden.open,.repositories ol.artifact li .hidden.open,.repositories ol.topics li .hidden.open,.teaching ol.bibliography li .hidden.open,.teaching ol.artifact li .hidden.open,.teaching ol.topics li .hidden.open{max-height:100em;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li div.abstract.hidden,.publications ol.artifact li div.abstract.hidden,.publications ol.topics li div.abstract.hidden,.repositories ol.bibliography li div.abstract.hidden,.repositories ol.artifact li div.abstract.hidden,.repositories ol.topics li div.abstract.hidden,.teaching ol.bibliography li div.abstract.hidden,.teaching ol.artifact li div.abstract.hidden,.teaching ol.topics li div.abstract.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography li div.abstract.hidden.open,.publications ol.artifact li div.abstract.hidden.open,.publications ol.topics li div.abstract.hidden.open,.repositories ol.bibliography li div.abstract.hidden.open,.repositories ol.artifact li div.abstract.hidden.open,.repositories ol.topics li div.abstract.hidden.open,.teaching ol.bibliography li div.abstract.hidden.open,.teaching ol.artifact li div.abstract.hidden.open,.teaching ol.topics li div.abstract.hidden.open{border-color:var(--global-text-color)}.publications ol.bibliography div.award.hidden,.publications ol.artifact div.award.hidden,.publications ol.topics div.award.hidden,.repositories ol.bibliography div.award.hidden,.repositories ol.artifact div.award.hidden,.repositories ol.topics div.award.hidden,.teaching ol.bibliography div.award.hidden,.teaching ol.artifact div.award.hidden,.teaching ol.topics div.award.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography div.award.hidden.open,.publications ol.artifact div.award.hidden.open,.publications ol.topics div.award.hidden.open,.repositories ol.bibliography div.award.hidden.open,.repositories ol.artifact div.award.hidden.open,.repositories ol.topics div.award.hidden.open,.teaching ol.bibliography div.award.hidden.open,.teaching ol.artifact div.award.hidden.open,.teaching ol.topics div.award.hidden.open{border-color:var(--global-highlight-color)}
figure.highlight{margin:0 0 1rem}pre{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:6px;padding:6px 12px}pre pre,pre code{background-color:rgba(0,0,0,0);border-radius:0;margin-bottom:0;padding:0}code{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:3px;padding:3px 3px}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 750ms!important;transition-delay:0!important}.post .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-top:.25rem;padding-bottom:1rem}.post .post-tags a{color:var(--global-text-color-light);text-decoration:none}.post .post-tags a:hover{color:var(--global-theme-color)}progress{position:fixed;left:0;top:56px;z-index:10;width:100%;height:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:rgba(0,0,0,0);color:var(--global-theme-color)}progress::-webkit-progress-bar{background-color:rgba(0,0,0,0)}progress::-webkit-progress-value{background-color:var(--global-theme-color)}progress::-moz-progress-bar{background-color:var(--global-theme-color)}.progress-container{width:100%;background-color:rgba(0,0,0,0);position:fixed;top:56px;left:0;height:5px;display:block}.progress-bar{background-color:var(--global-theme-color);width:0;display:block;height:inherit}.code-display-wrapper{position:relative}.code-display-wrapper .copy{background:var(--global-card-bg-color);border-color:var(--global-bg-color);border-radius:.3rem;border-style:none;color:var(--global-text-color);font-size:medium;opacity:0;position:absolute;right:.2rem;top:.2rem}.code-display-wrapper:active .copy,.code-display-wrapper:focus .copy,.code-display-wrapper:hover .copy{color:var(--global-hover-color);opacity:1}nav[data-toggle=toc]{top:5rem}nav[data-toggle=toc] .nav .nav>li>a{font-size:.75rem}nav[data-toggle=toc] .nav>li>a{color:var(--global-text-color);font-size:.75rem}nav[data-toggle=toc] .nav>li>a:hover{color:var(--global-hover-color);border-left-color:var(--global-hover-color)}nav[data-toggle=toc] .nav-link.active{color:var(--global-theme-color);border-left-color:var(--global-theme-color);font-size:.75rem}nav[data-toggle=toc] .nav-link.active:hover{color:var(--global-hover-color);border-left-color:var(--global-hover-color)}@media(max-width:576px){nav[data-toggle=toc]{visibility:hidden;height:0;top:0}}.unloaded{display:none!important}#toc-sidebar{z-index:1}.echarts{height:400px;width:100%}.map{height:400px;width:100%}ninja-keys{--ninja-accent-color:var(--global-theme-color);--ninja-icon-size:0;--ninja-modal-background:var(--global-bg-color);--ninja-z-index:1031}ninja-keys::part(ninja-input){color:var(--ninja-selected-text-color)}ninja-keys::part(ninja-input-wrapper){background:var(--global-bg-color)}
.bibsearch-form-input{color:var(--global-newsletter-text-color);background:var(--global-newsletter-bg-color);border:1px solid var(--global-newsletter-text-color);outline:0;margin:0 10px 0 0;width:100%;max-width:350px;min-width:100px;box-sizing:border-box;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;padding:8px 12px}.popover{background-color:var(--global-bg-color);border-color:var(--global-divider-color)}.popover .popover-header{color:var(--global-text-color);border-bottom:1px solid var(--global-divider-color)}.popover .popover-body{color:var(--global-text-color)}::highlight(search){background-color:var(--global-theme-color);color:var(--global-text-color)}d-byline{border-top-color:var(--global-divider-color)!important}d-byline h3{color:var(--global-text-color)!important}d-byline a,d-article d-byline a{color:var(--global-text-color)!important}d-byline a:hover,d-article d-byline a:hover{color:var(--global-hover-color)!important}d-article{border-top-color:var(--global-divider-color)!important}d-article p,d-article h1,d-article h2,d-article h3,d-article h4,d-article h5,d-article h6,d-article li,d-article table{color:var(--global-text-color)!important}d-article h1,d-article h2,d-article hr,d-article table,d-article table th,d-article table td{border-bottom-color:var(--global-divider-color)!important}d-article a{color:var(--global-theme-color)!important}d-article a:hover{color:var(--global-theme-color)!important}d-article b i{display:inline}d-article blockquote{border-left:2px solid var(--global-theme-color)!important}d-article details{color:var(--global-text-color);background-color:var(--global-code-bg-color);margin-top:0;padding:8px 12px;position:relative;border-radius:6px;display:block;margin-bottom:20px;grid-column:text;overflow:auto;max-width:100%}d-article details summary{color:var(--global-theme-color)}d-article details p{margin-top:.5rem;margin-bottom:.5rem}d-article d-footnote{scroll-margin-top:66px}d-appendix{border-top-color:var(--global-divider-color)!important;color:var(--global-distill-app-color)!important}d-appendix h3,d-appendix li,d-appendix span{color:var(--global-distill-app-color)!important}d-appendix a,d-appendix a.footnote-backlink{color:var(--global-distill-app-color)!important}d-appendix a:hover,d-appendix a.footnote-backlink:hover{color:var(--global-hover-color)!important}table.table-cv{background-color:rgba(0,0,0,0)!important}p.location{font-size:.7rem;white-space:nowrap}i.iconlocation{color:var(--global-theme-color);font-size:.8rem}i.iconinstitution{color:var(--global-theme-color);font-size:.95rem;margin-right:.3rem}table.institution{margin-bottom:1rem}div.list-group{display:flex;flex-wrap:wrap;flex-direction:column;align-items:flex-start;margin-bottom:2rem}a.anchor{display:block;position:relative;top:-50px;visibility:hidden}.tab{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none;position:relative}.tab>*{flex:none;padding-left:20px;position:relative}.tab>*>a{display:block;text-align:center;padding:9px 20px;color:var(--global-text-color-light);border-bottom:2px solid rgba(0,0,0,0);border-bottom-color:rgba(0,0,0,0);font-size:12px;text-transform:uppercase;transition:color .1s ease-in-out;line-height:20px}.tab>.active>a{color:var(--global-text-color);border-color:var(--global-theme-color)}.tab>li>a{text-decoration:none;cursor:pointer}.tab-content{padding:0}.tab-content>li{display:none}.tab-content>li.active{display:block}:root{--global-bg-color:#fbfaf7;--global-text-color:#202326;--global-text-color-light:#5f6872;--global-theme-color:#315f7c;--global-hover-color:#254a62;--global-card-bg-color:#fff;--global-divider-color:rgba(32,35,38,0.13);--home-surface-color:#fff;--home-soft-surface-color:#f4f2ed;--home-accent-muted:#6d8377;--home-shadow:0 12px 30px rgba(22,31,39,0.08)}html[data-theme=dark]{--global-bg-color:#191b1d;--global-text-color:#eeece7;--global-text-color-light:#a8adb3;--global-theme-color:#8bb4cc;--global-hover-color:#a5c5d8;--global-card-bg-color:#22262a;--global-divider-color:rgba(238,236,231,0.16);--home-surface-color:#22262a;--home-soft-surface-color:#1f2326;--home-accent-muted:#9bb0a6;--home-shadow:0 12px 30px rgba(0,0,0,0.22)}body{background:var(--global-bg-color);color:var(--global-text-color)}.post article>h2{border-left:4px solid var(--global-theme-color);padding-left:.55rem;margin-top:2rem;margin-bottom:.75rem;font-size:1.35rem;letter-spacing:.01em}.news .table{margin-bottom:0}.news table th[scope=row]{font-weight:400;color:var(--global-text-color-light);font-size:.82rem;white-space:nowrap;vertical-align:middle;font-family:"Roboto Mono","Courier New",monospace}.news table td{vertical-align:middle;font-size:.93rem;line-height:1.5}.news table tr{border-bottom:1px solid var(--global-divider-color)}.news table tr:last-child{border-bottom:0}.news table tr:hover td,.news table tr:hover th{background-color:rgba(0,0,0,.025)}.news .news-title{color:var(--global-text-color);font-weight:500;text-decoration:none}.news .news-title:hover{color:var(--global-theme-color);text-decoration:underline;text-underline-offset:2px}html[data-theme=dark] .news table tr:hover td,html[data-theme=dark] .news table tr:hover th{background-color:hsla(0,0,100%,.04)}.profile img{box-shadow:0 4px 18px rgba(0,0,0,.12);border-radius:6px}.post-header .post-title{font-size:2rem;letter-spacing:-0.01em;margin-bottom:.15rem}footer.fixed-bottom,footer.sticky-bottom,footer{padding-top:.5rem;padding-bottom:.5rem}.home-redesign{color:var(--global-text-color)}.home-redesign .home-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,310px);gap:2.4rem;align-items:center;margin-bottom:2.7rem;padding:1.1rem 0 2rem}.home-redesign .home-eyebrow{margin-bottom:.45rem;color:var(--home-accent-muted);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.home-redesign .home-title{margin-bottom:.55rem;color:var(--global-text-color);font-size:2.7rem;line-height:1.05}.home-redesign .home-subtitle{margin-bottom:1.1rem;color:var(--global-text-color-light);font-size:1rem;line-height:1.58}.home-redesign .home-lede{max-width:46rem;margin-bottom:1.25rem;font-size:1.1rem;line-height:1.76}.home-redesign .home-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.home-redesign .home-actions .btn{border-radius:4px;padding:.38rem .72rem;font-weight:500;text-transform:none}.home-redesign .home-actions .btn-primary{background-color:var(--global-theme-color);border-color:var(--global-theme-color)}.home-redesign .home-actions .btn-outline-primary{border-color:var(--global-divider-color);color:var(--global-theme-color);background:rgba(0,0,0,0)}.home-redesign .home-actions .btn-outline-primary:hover{border-color:var(--global-hover-color);background:var(--global-hover-color);color:var(--global-hover-text-color)}.home-redesign .home-profile{width:100%}.home-redesign .home-profile img{width:100%;border-radius:6px;box-shadow:var(--home-shadow)}.home-redesign .home-profile__info{margin-top:.75rem;padding:.6rem .75rem;border:1px solid var(--global-divider-color);border-radius:6px;color:var(--global-text-color-light);font-size:.82rem;line-height:1.55}.home-redesign .home-profile__info p{margin-bottom:.15rem}.home-redesign .home-section{padding:1.9rem 0;border-top:1px solid var(--global-divider-color)}.home-redesign .home-section>h2,.home-redesign .home-section__header h2{margin-bottom:.9rem;color:var(--global-text-color);font-size:1.28rem;line-height:1.35}.home-redesign .home-section__header h2 a{color:inherit}.home-redesign .home-section--agenda p,.home-redesign .home-section__intro,.home-redesign .home-contact p{max-width:48rem;line-height:1.72}.home-redesign .home-section__intro{margin-bottom:.8rem;color:var(--global-text-color-light);font-size:.96rem}.home-redesign .home-topic-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.home-redesign .home-topic-tags span{border:1px solid var(--global-divider-color);border-radius:999px;padding:.22rem .55rem;background:var(--home-soft-surface-color);color:var(--global-text-color-light);font-size:.78rem;line-height:1.35}
.home-redesign .home-grid{display:grid;gap:.95rem}.home-redesign .home-grid--themes{grid-template-columns:repeat(2,minmax(0,1fr))}.home-redesign .home-grid--stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;text-align:center}.home-redesign .home-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1.25rem .75rem;border-radius:8px;background:var(--home-soft-surface-color)}.home-redesign .home-stat__number{color:var(--global-theme-color);font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.home-redesign .home-stat__label{color:var(--global-text-color-light);font-size:.82rem;line-height:1.3}.home-redesign .home-stat__note{color:var(--global-text-color-light);font-size:.72rem;line-height:1.3;opacity:.85}.home-redesign .home-card{border:1px solid var(--global-divider-color);border-radius:6px;padding:1.05rem;background:var(--home-surface-color)}.home-redesign .home-card h3{margin-bottom:.5rem;color:var(--global-text-color);font-size:1rem;line-height:1.35}.home-redesign .home-card p{margin-bottom:0;color:var(--global-text-color-light);font-size:.94rem;line-height:1.6}.home-redesign .home-card__links{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.8rem;font-size:.84rem;line-height:1.4}.home-redesign .home-card__links a{color:var(--global-theme-color);font-weight:500;text-decoration:none}.home-redesign .home-card__links a:hover{color:var(--global-hover-color);text-decoration:underline;text-underline-offset:2px}.home-redesign .publications{padding-top:.2rem}.home-redesign .news table tr:hover td,.home-redesign .news table tr:hover th{background-color:var(--home-soft-surface-color)}.home-redesign .home-news-list{display:grid;gap:.85rem}.home-redesign .home-news-list article{display:grid;grid-template-columns:6.2rem minmax(0,1fr);gap:1rem;padding:.95rem 0;border-top:1px solid var(--global-divider-color)}.home-redesign .home-news-list article:first-child{border-top:0;padding-top:0}.home-redesign .home-news-list time{color:var(--global-text-color-light);font-family:"Roboto Mono","Courier New",monospace;font-size:.82rem;line-height:1.6}.home-redesign .home-news-list h3{margin-bottom:.35rem;color:var(--global-text-color);font-size:1rem;line-height:1.38}.home-redesign .home-news-list p{margin-bottom:.35rem;color:var(--global-text-color-light);font-size:.94rem;line-height:1.58}.home-redesign .home-news-list a{color:var(--global-theme-color);font-size:.86rem;font-weight:500;text-decoration:none}.home-redesign .home-news-list a:hover{color:var(--global-hover-color);text-decoration:underline;text-underline-offset:2px}.home-redesign .home-contact .social{margin-top:1rem}@media(max-width:767px){.home-redesign .home-hero{grid-template-columns:1fr;gap:1.25rem;padding-top:.4rem}.home-redesign .home-profile{max-width:320px}.home-redesign .home-title{font-size:2.05rem}.home-redesign .home-grid--themes{grid-template-columns:1fr}.home-redesign .home-grid--stats{grid-template-columns:repeat(2,minmax(0,1fr))}.home-redesign .home-news-list article{grid-template-columns:1fr;gap:.3rem}}.tools-intro{max-width:48rem;margin-bottom:1.4rem;color:var(--global-text-color-light);font-size:1rem;line-height:1.72}.tools-section{margin-bottom:2.2rem}.tools-section__title{display:flex;align-items:baseline;gap:.55rem;margin-bottom:.3rem;padding-bottom:.35rem;border-bottom:1px solid var(--global-divider-color);color:var(--global-text-color);font-size:1.3rem;scroll-margin-top:4.5rem}.tools-section__count{color:var(--home-accent-muted);font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums}.tools-section__blurb{margin-bottom:.9rem;color:var(--global-text-color-light);font-size:.92rem;line-height:1.6}.tools-grid{display:grid;gap:1rem}.tool-card{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem;padding:1rem;border:1px solid var(--global-divider-color);border-radius:6px;background:var(--home-surface-color)}.tool-card__media{align-self:start;overflow:hidden;border:1px solid var(--global-divider-color);border-radius:5px;background:var(--home-soft-surface-color);width:9rem;height:6.75rem}.tool-card__media img{width:100%;height:100%;object-fit:cover;display:block}.tool-card__body{min-width:0}.tool-card__eyebrow{margin-bottom:.25rem;color:var(--home-accent-muted);font-size:.76rem;font-weight:700;letter-spacing:.08em;line-height:1.4;text-transform:uppercase}.tool-card h3{margin-bottom:.45rem;color:var(--global-text-color);font-size:1.12rem;line-height:1.35}.tool-card p{margin-bottom:.7rem;color:var(--global-text-color-light);font-size:.95rem;line-height:1.62}.tool-card__links{display:flex;flex-wrap:wrap;gap:.65rem;font-size:.86rem;line-height:1.4}.tool-card__links a{color:var(--global-theme-color);font-weight:500;text-decoration:none}.tool-card__links a:hover{color:var(--global-hover-color);text-decoration:underline;text-underline-offset:2px}@media(max-width:767px){.tool-card{grid-template-columns:5.5rem minmax(0,1fr);gap:.85rem}
.tool-card__media{width:5.5rem;height:4.15rem}}.teaching-intro{max-width:52rem;margin-bottom:1.5rem;color:var(--global-text-color);font-size:.95rem;line-height:1.7}.teaching-crosslink{margin:.5rem 0 1rem;color:var(--global-text-color-light);font-size:.85rem}.opportunities-callout{margin-top:1rem;padding:1rem 1.25rem;border-left:3px solid var(--global-theme-color);border-radius:0 4px 4px 0;background:var(--home-soft-surface-color);font-size:.9rem}.opportunities-callout p:last-child{margin-bottom:0}.opportunities-callout ul{margin:.5rem 0;padding-left:1.25rem}.opportunities-callout li{margin-bottom:.25rem}.cv-downloads{margin:.4rem 0 0;color:var(--global-text-color-light);font-size:.92rem}.cv-downloads i{margin-right:.3rem;color:var(--global-theme-color)}.cv-downloads a{font-weight:500}.cv-downloads__sep{margin:0 .35rem}/*!
 * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa-solid,.fa-brands,.far,.fa{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-solid,.far{font-family:"Font Awesome 6 Free"}.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,0.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,0.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-0.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,0.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-0.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,0.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,0.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,100%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-clipboard::before{content:""}.fa-clipboard-check::before{content:""}.fa-file-pdf::before{content:""}.fa-envelope::before{content:""}.fa-location-dot::before{content:""}.fa-calendar::before{content:""}.fa-building-columns::before{content:""}.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}/*!
 * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}
@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-brands-400.woff2") format("woff2"),url("../webfonts/fa-brands-400.ttf") format("truetype")}.fa-brands{font-weight:400}.fa-x-twitter:before{content:""}.fa-linkedin:before{content:""}.fa-github:before{content:""}/*!
 * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url("../webfonts/fa-solid-900.woff2") format("woff2"),url("../webfonts/fa-solid-900.ttf") format("truetype")}.fa-solid{font-weight:900}/*!
 * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-regular-400.woff2") format("woff2"),url("../webfonts/fa-regular-400.ttf") format("truetype")}.far{font-weight:400}/*!
 * Tabler Icons 3.0.1 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons.woff2?v3.0.1") format("woff2"),url("../fonts/tabler-icons.woff?") format("woff"),url("../fonts/tabler-icons.ttf?v3.0.1") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-moon-filled:before{content:"\f684"}.ti-search:before{content:"\eb1c"}.ti-sun-filled:before{content:"\f6a9"}.ti-sun-moon:before{content:"\f4a3"}/*!
 * Tabler Icons 3.0.1 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons-filled.woff2?v3.0.1") format("woff2"),url("../fonts/tabler-icons-filled.woff?") format("woff"),url("../fonts/tabler-icons-filled.ttf?v3.0.1") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}/*!
 * Tabler Icons 3.0.1 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons-outline.woff2?v3.0.1") format("woff2"),url("../fonts/tabler-icons-outline.woff?") format("woff"),url("../fonts/tabler-icons-outline.ttf?v3.0.1") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-search:before{content:"\eb1c"}.ti-sun-moon:before{content:"\f4a3"}