:root{--primary-bg:#fff;--secondary-bg:#f8f9fa;--primary-text:#2c2c2c;--secondary-text:#333;--accent-color:#404040;--border-color:#dee2e6;--border-light:#c0c0c080;--link-color:#06c;--link-hover:#0052a3;--code-bg:#f6f8fa;--card-bg:#212529bf;--card-shadow:0 2px 4px #0000001a;--card-shadow-hover:0 4px 8px #0003;--highlight-bg:#c0c0c033;--dark-bg:#212529;--dark-bg-hover:#343a40;--light-text:#f0f0f0;--light-text-hover:#fff;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--font-size-base:14pt;--font-size-sm:0.9rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-xxl:2rem;--font-size-xxxl:3rem;--font-family-base:"Lexend Deca",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-family-serif:Palatino,"Palatino Linotype","Palatino LT STD","Book Antiqua",Georgia,serif;--font-family-condensed:"Roboto Condensed",sans-serif;--font-family-code:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;--transition-standard:all 0.3s ease;--border-radius-sm:4px;--border-radius-md:8px;--hover-lift:translateY(-2px);--hover-lift-sm:translateY(-1px)}*,:after,:before{box-sizing:border-box}html{font-size:14pt;font-size:var(--font-size-base);scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;background-color:var(--secondary-bg);color:#2c2c2c;color:var(--primary-text);font-family:Lexend Deca,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family-base);line-height:1.6;margin:0;overflow-x:hidden;padding:0}code{background-color:#f6f8fa;background-color:var(--code-bg);border-radius:3px;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-family:var(--font-family-code);font-size:.9em;padding:.2em .4em}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-top:0}p{margin-bottom:1rem;margin-bottom:var(--space-md);margin-top:0}a{color:#06c;color:var(--link-color);text-decoration:none;transition:all .3s ease;transition:var(--transition-standard)}a:focus{border-radius:2px;box-shadow:0 0 0 6px #0066cc40;outline:3px solid #06c;outline:3px solid var(--link-color);outline-offset:3px}a:hover{color:#0052a3;color:var(--link-hover);text-decoration:underline}a:focus:hover{box-shadow:0 0 0 6px #0052a340;outline:3px solid #0052a3;outline:3px solid var(--link-hover);outline-offset:3px}img{border-radius:4px;border-radius:var(--border-radius-sm);display:inline-block;height:auto;max-width:100%;vertical-align:middle}.card-title{font-feature-settings:"smcp";align-items:center;background-color:#212529bf;background-color:var(--card-bg);border-radius:4px;display:flex;font-family:Palatino,Palatino Linotype,Palatino LT STD,Book Antiqua,Georgia,serif;font-family:var(--font-family-serif);font-size:1.25rem;font-variant:small-caps;font-weight:700;justify-content:center;margin-bottom:10px;min-height:100px;padding:10px}.card-title,.card-title a{color:#f0f0f0;color:var(--light-text)}.card-title a{display:block;height:100%;text-decoration:none!important;transition:all .3s ease;transition:var(--transition-standard);width:100%}.card-title a:hover{color:#fff;text-shadow:0 0 2px #ffffff80}.card-title a:focus{border-radius:2px;box-shadow:inset 0 0 0 6px #ffffff4d;outline:3px solid #fff;outline-offset:-6px}.section-header{font-feature-settings:"smcp";border-bottom:1px solid #c0c0c080;border-bottom:1px solid var(--border-light);color:#2c2c2c;color:var(--primary-text);font-family:Palatino,Palatino Linotype,Palatino LT STD,Book Antiqua,Georgia,serif;font-family:var(--font-family-serif);font-variant:small-caps;margin-bottom:1rem;margin-bottom:var(--space-md);margin-top:1.5rem;margin-top:var(--space-lg)}.custom-card{border:2px solid #0000;border-radius:8px;border-radius:var(--border-radius-md);box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow);overflow:hidden;text-decoration:none!important;transition:all .3s ease;transition:var(--transition-standard)}.custom-card:hover{border-color:#dee2e6;border-color:var(--border-color);box-shadow:0 4px 8px #0003;box-shadow:var(--card-shadow-hover);text-decoration:none!important;transform:translateY(-1px);transform:var(--hover-lift-sm)}.custom-card:focus{border-color:#06c;border-color:var(--link-color);box-shadow:0 0 0 6px #0066cc40;outline:3px solid #06c;outline:3px solid var(--link-color);outline-offset:3px}.styled-list{list-style-type:none;padding-left:0}.styled-list li{border-left:2px solid #0000;padding:.5rem 0;padding:var(--space-sm) 0;transition:all .3s ease;transition:var(--transition-standard)}.styled-list li:focus-within,.styled-list li:hover{background-color:#c0c0c033;background-color:var(--highlight-bg);border-left:3px solid #2c2c2c;border-left:3px solid var(--primary-text);padding-left:.5rem;padding-left:var(--space-sm);transition:all .3s ease;transition:var(--transition-standard)}.container-fluid{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:100%}@media (max-width:576px){html{font-size:14px}.container-fluid{padding-left:10px;padding-right:10px}}button:focus,input:focus,select:focus,textarea:focus{box-shadow:0 0 0 6px #0066cc40;outline:3px solid #06c;outline:3px solid var(--link-color);outline-offset:3px}@media (hover:none){a,button{min-height:44px;min-width:44px}}.sr-only-focusable:focus{clip:auto!important;background-color:#fff!important;background-color:var(--primary-bg)!important;border:2px solid #06c!important;border:2px solid var(--link-color)!important;color:#06c!important;color:var(--link-color)!important;font-weight:700!important;height:auto!important;margin:0!important;overflow:visible!important;padding:.5rem 1rem!important;position:static!important;text-decoration:none!important;white-space:normal!important;width:auto!important;z-index:9999!important}.app-wrapper{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 0 auto;padding-bottom:var(--space-xl)}.centered-content{align-items:center;display:flex;flex-direction:column;justify-content:center;text-align:center}.content-section{margin-bottom:var(--space-xl)}.content-section-sm{margin-bottom:var(--space-lg)}.rounded-3{border-radius:.5rem!important}.bg-light{background-color:var(--secondary-bg)!important}.subtitle{font-size:var(--font-size-md);font-weight:300;margin-bottom:var(--space-md)}.subtitle,.year-indicator{color:var(--secondary-text)}.year-indicator{float:right;font-family:var(--font-family-condensed)}.small-text{color:var(--secondary-text);font-size:var(--font-size-sm);font-weight:300}.cv-header,.pub-header,.research-header{font-feature-settings:"smcp";border-bottom:1px solid var(--border-light);color:var(--primary-text);font-family:var(--font-family-serif);font-size:var(--font-size-lg);font-variant:small-caps;margin-bottom:var(--space-md);margin-top:var(--space-lg)}.cv-list,.pub-list{font-family:var(--font-family-condensed);list-style-type:none;margin-bottom:var(--space-lg);margin-top:var(--space-lg);padding-left:0;text-align:left}.cv-list li,.pub-list li{border-left:2px solid #0000;margin-bottom:var(--space-sm);padding-left:var(--space-sm);transition:var(--transition-standard)}.cv-list li:hover,.pub-list li:hover{background-color:var(--highlight-bg);border-left:2px solid var(--primary-text)}.bio-card,.news-card,.research-card{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);overflow:hidden}.news-list{font-size:var(--font-size-sm);list-style-type:none;margin-bottom:0;max-height:300px;overflow-y:auto;padding-left:0}.news-li{line-height:1.4;padding:var(--space-sm) 0;position:relative}.news-li:before{color:var(--secondary-text);content:attr(date-data);display:block;font-weight:700;margin-bottom:var(--space-xs)}.news-li-border:not(:last-child){border-bottom:1px solid var(--border-light);margin-bottom:var(--space-sm);padding-bottom:var(--space-sm)}.footer{background-color:var(--secondary-bg);border-top:1px solid var(--border-color);padding:var(--space-lg) 0}@media (max-width:767.98px){.container,.container-sm{max-width:100%;padding-left:var(--space-md);padding-right:var(--space-md)}h1{font-size:1.75rem}h2{font-size:1.5rem}.cv-header,.pub-header,.research-header,h3{font-size:1.25rem}}@media (min-width:768px) and (max-width:991.98px){h1{font-size:2rem}h2{font-size:1.75rem}}.App-logo{animation:App-logo-spin 20s linear infinite;height:40vmin}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.navbar{background-color:#212529!important;box-shadow:0 2px 5px #0006;width:100%}.navbar-brand{font-feature-settings:"smcp";color:#fff!important;font-family:Palatino Linotype,Palatino LT STD,Book Antiqua,Georgia,serif;font-variant:small-caps;font-weight:700;letter-spacing:.5px;transition:all .3s ease}.navbar-brand:hover{color:#fff!important;text-decoration:none;text-shadow:0 0 1px #ffffff4d}.navbar-brand:focus{border-radius:var(--border-radius-sm);box-shadow:0 0 0 6px #ffffff4d;outline:3px solid #fff;outline-offset:3px}.navbar-nav .nav-link{font-feature-settings:"smcp";border:1px solid #0000;border-radius:4px;color:#fff!important;font-size:1rem;font-style:var(--font-family-serif);font-variant:small-caps;font-weight:600;letter-spacing:.5px;margin:0 .25rem;padding:.5rem .75rem;text-decoration:none;transition:all .3s ease}.navbar-nav .nav-link:hover{font-feature-settings:"smcp";background-color:#343a40;border:1px solid #6c757d;box-shadow:0 2px 4px #0003;color:#fff!important;font-variant:small-caps;text-decoration:none}.navbar-nav .nav-link:focus{background-color:#343a40;border:1px solid #fff;box-shadow:0 0 0 6px #ffffff4d;outline:3px solid #fff;outline-offset:3px}.navbar-toggler{border-color:#ffffff80!important;transition:var(--transition-standard)}.navbar-toggler:focus{border-color:#fffc!important;box-shadow:0 0 0 6px #ffffff4d;outline:3px solid #fff;outline-offset:3px}.navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")!important}@media screen and (max-width:767px){.navbar-brand{font-size:1.5rem}.navbar-collapse{background-color:#212529;border-radius:0 0 4px 4px;padding:.5rem}.navbar-nav .nav-link{margin:.25rem 0;padding:.5rem;text-align:center}}@media screen and (min-width:768px) and (max-width:991px){.navbar-brand{font-size:1.75rem}}@media screen and (min-width:992px){.navbar-brand{font-size:2rem}.navbar-nav .nav-link{margin:0 .5rem}}.profile-container{margin-bottom:var(--space-xl)}.home-link{color:var(--primary-text)}.news-tag{border-radius:4px;color:#fff;display:inline-block;font-size:.7rem;font-weight:600;margin-right:8px;padding:2px 6px;text-transform:uppercase;vertical-align:middle}.news-tag.general{background-color:#6c757d}.news-tag.grant{background-color:#28a745}.news-tag.paper{background-color:#007bff}.news-tag.talk{background-color:#fd7e14}.profile-image{border:3px solid #fff;box-shadow:var(--card-shadow-hover);height:auto;margin:0 auto var(--space-md);max-width:250px}.profile-name{font-feature-settings:"smcp";font-family:var(--font-family-serif);font-size:var(--font-size-xl);font-variant:small-caps;font-weight:600;margin-bottom:var(--space-sm)}.profile-titles{margin-bottom:var(--space-md)}.sub{color:var(--secondary-text);font-size:1.1rem;font-weight:300}.social-icons{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center}.social-icons a{align-items:center;background-color:initial;border:2px solid #0000;border-radius:var(--border-radius-sm);color:var(--primary-text);display:inline-flex;justify-content:center;min-height:44px;min-width:44px;padding:var(--space-sm);transition:var(--transition-standard)}.social-icons a:hover{background-color:#00000014;border-color:var(--primary-text);box-shadow:0 2px 4px #0000001a;color:var(--primary-text);text-decoration:none;transform:var(--hover-lift-sm)}.social-icons a:focus{background-color:#0066cc1a;border-color:var(--link-color);box-shadow:0 0 0 6px #0066cc40;outline:3px solid var(--link-color);outline-offset:3px}.bio{font-size:var(--font-size-md);font-weight:300;line-height:1.6}.bio-title,.news-title{font-feature-settings:"smcp";border-bottom:1px solid var(--border-light)!important;font-family:var(--font-family-serif);font-variant:small-caps;margin-bottom:var(--space-sm);margin-top:var(--space-sm);min-height:20px!important}.research-areas{margin-bottom:var(--space-xl)}@media (max-width:767.98px){.profile-image{max-width:250px}.profile-name{font-size:var(--font-size-lg)}.sub{font-size:var(--font-size-md)}.bio-alignment{padding:0 var(--space-md);text-align:center}.research-intro{padding:.75rem}.research-title{font-size:1.1rem;margin-top:var(--space-sm)}.research-text{font-size:var(--font-size-sm)}}@media (min-width:768px) and (max-width:991.98px){.profile-image{max-width:250px}.bio-alignment{padding:0 var(--space-md);text-align:left}}@media (min-width:992px){.bio-alignment{text-align:left}.research-intro{padding:var(--space-lg)}}.collaborator-item h6{font-size:1.1rem;font-weight:600;margin-bottom:.25rem}.collaborator-item h6 a{color:var(--primary-text);text-decoration:none}.collaborator-item h6 a:hover{color:var(--link-color);text-decoration:underline}.collaborator-item p{margin-bottom:.5rem}.collaborator-item .text-muted{color:#6c757d!important}.collaborator-card{border:1px solid var(--border-light);height:100%;transition:all .3s ease}.collaborator-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.collaborator-card .card-body{padding:1.25rem}.collaborator-card h6{color:var(--accent-color);margin-bottom:.5rem}.collaborator-card a{color:var(--accent-color);font-weight:500;text-decoration:none}.collaborator-card a:hover{text-decoration:underline}.cv-content{margin-bottom:var(--space-xl);padding:0}.mobile-nav-toggle{align-items:center;background:var(--accent-color);border:none;border-radius:50%;bottom:20px;box-shadow:0 4px 12px #00000026;color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:20px;transition:transform .3s ease,box-shadow .3s ease;width:56px;z-index:1000}.mobile-nav-toggle:hover{box-shadow:0 6px 16px #0003;transform:translateY(-2px)}.mobile-nav-toggle:focus{outline:2px solid var(--accent-color);outline-offset:3px}.mobile-nav-toggle svg{height:24px;width:24px}.mobile-nav-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000080;bottom:0;left:0;opacity:0;position:fixed;right:0;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;z-index:999}.mobile-nav-overlay.active{opacity:1;visibility:visible}.mobile-nav-menu{background:#fff;border-radius:12px;bottom:90px;box-shadow:0 10px 30px #00000026;max-width:200px;opacity:0;padding:1rem;position:fixed;right:20px;transform:translateY(20px) scale(.95);transition:all .3s ease;visibility:hidden;z-index:1001}.mobile-nav-menu.active{opacity:1;transform:translateY(0) scale(1);visibility:visible}.mobile-nav-menu .nav{display:flex;flex-direction:column;gap:.5rem}.mobile-nav-menu .nav-link{border-radius:8px;color:var(--secondary-text);padding:.5rem .75rem;text-decoration:none;transition:all .2s ease}.mobile-nav-menu .nav-link:focus,.mobile-nav-menu .nav-link:hover{background:var(--highlight-bg);color:var(--accent-color);transform:translateX(4px)}.mobile-nav-menu .nav-link.active{background:var(--accent-color);color:#fff;font-weight:600}.cv-nav-sidebar{background:#fff;border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:0 2px 8px #0000000d;max-height:calc(100vh - 120px);overflow-y:auto;padding:.75rem .5rem;position:sticky;top:100px;will-change:transform}.nav-sidebar-title{border-bottom:1px solid var(--border-light);font-weight:600;margin-bottom:.5rem;padding-bottom:.3rem;text-transform:uppercase}.nav-sidebar-link,.nav-sidebar-title{color:var(--secondary-text);font-size:.75rem}.nav-sidebar-link{border-radius:4px;margin-bottom:.15rem;padding:.3rem .4rem;text-decoration:none;transition:all .2s ease}.nav-sidebar-link:hover{background-color:var(--highlight-bg);color:var(--accent-color);padding-left:.6rem}.nav-sidebar-link.active{background-color:var(--accent-color);color:#fff;font-weight:600;padding-left:.6rem}.nav-sidebar-link.active:hover{background-color:var(--accent-color);color:#fff;opacity:.9}.nav-sidebar-link:focus{outline:2px solid var(--accent-color);outline-offset:2px}.cv-header-container{background-color:var(--highlight-bg);border-radius:var(--border-radius-md);margin-bottom:var(--space-lg);padding:var(--space-md);text-align:center}.cv-main-title{font-feature-settings:"smcp";font-family:var(--font-family-serif);font-size:1.75rem;font-variant:small-caps;font-weight:600;margin-bottom:.2rem}.cv-subtitle{color:var(--secondary-text);font-size:.85rem;margin-bottom:.5rem}.cv-section{background-color:var(--highlight-bg);border-radius:var(--border-radius-md);margin-bottom:1.5rem;padding:1rem}.section-title{font-feature-settings:"smcp";border-bottom:1px solid var(--border-light);font-family:var(--font-family-serif);font-size:clamp(1.1rem,2.5vw,1.25rem);font-variant:small-caps;font-weight:600;margin-bottom:.75rem;margin-top:.25rem;padding-bottom:.3rem;scroll-margin-top:130px}.section-title.small{font-size:var(--font-size-md)}.section-content{padding:.5rem}.year-badge{background-color:var(--accent-color);border-radius:var(--border-radius-sm);color:#fff;font-size:.8rem;font-weight:500;padding:4px 10px}.education-card{border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);margin-bottom:.5rem;transition:all .3s ease}.education-card .card-body{padding:.5rem .6rem}.institution-name{color:var(--accent-color);font-family:var(--font-family-serif);font-size:clamp(.85rem,2vw,1rem);font-weight:600;line-height:1.2;margin-bottom:.25rem}.institution-icon{border-radius:var(--border-radius-sm);height:auto;max-height:60px;object-fit:contain;width:100%}.institution-icon-placeholder{align-items:center;background-color:var(--accent-color);border-radius:50%;color:#fff;display:flex;font-size:.9rem;font-weight:700;height:50px;justify-content:center;margin:0 auto;width:50px}.degrees-list{margin-bottom:.25rem;margin-top:.25rem}.degree-item{font-style:italic;margin-bottom:5px}.degree-icon{color:var(--accent-color);margin-right:8px}.advisor-info{color:var(--secondary-text);font-size:.9rem;margin-top:var(--space-sm)}.simplified-experience-card{border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);margin-bottom:.5rem;transition:all .3s ease}.simplified-experience-card .card-body{padding:.5rem .6rem}.experience-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.25rem}.employer-name{color:var(--accent-color);font-family:var(--font-family-serif);font-size:clamp(.85rem,2vw,.95rem);font-weight:600;line-height:1.2}.employer-icon{border-radius:var(--border-radius-sm);height:auto;max-height:60px;max-width:100%;object-fit:contain}.employer-icon-placeholder{background-color:var(--accent-color);border-radius:50%;color:#fff;font-size:.9rem;font-weight:700;height:50px;margin:0 auto;width:50px}.employer-icon-placeholder,.logo-column{align-items:center;display:flex;justify-content:center}.logo-column{min-width:40px;padding:0}.employer-logo,.institution-logo{border-radius:var(--border-radius-sm);height:auto;max-height:clamp(32px,8vw,48px);max-width:100%;object-fit:contain;width:auto}.position-title{color:var(--secondary-text);font-size:clamp(.7rem,1.8vw,.8rem);font-style:italic;line-height:1.3;margin-bottom:.25rem}.accomplishment-text{color:var(--secondary-text);font-size:clamp(.65rem,1.6vw,.75rem);line-height:1.4;margin-top:auto}.publications-section{margin-bottom:var(--space-lg)}.dashboard-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000000d;margin-bottom:20px;padding:clamp(12px,3vw,20px)}.stats-overview{display:flex;justify-content:center;margin-bottom:20px}.stats-card{background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 8px #0000000d;padding:15px 25px;text-align:center;transition:transform .3s ease}.stats-card h5{color:#666;font-size:.9rem;margin-bottom:10px}.stats-number{color:var(--accent-color);font-size:1.8rem;font-weight:700}.visualizations-row{grid-gap:clamp(12px,2.5vw,20px);display:grid;gap:clamp(12px,2.5vw,20px);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:20px}.chart-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;min-height:200px;padding:clamp(10px,2vw,15px)}.chart-title{color:#555;font-size:1rem;margin-bottom:15px;text-align:center}.d3-chart{margin:0 auto;min-height:clamp(150px,25vw,180px);width:100%}.d3-chart svg{overflow:visible}.d3-chart .domain,.d3-chart .tick line{stroke:var(--border-light)}.d3-chart .tick text{fill:var(--primary-text);font-size:.8rem}.d3-chart text{font-family:var(--font-family-base)}.venue-chart rect,.year-chart rect{transition:all .3s ease}@media (max-width:768px){.visualizations-row{grid-template-columns:1fr}.chart-container{min-height:180px}.d3-chart{min-height:160px}.bar-chart{height:180px}.chart-item{width:30px}.bar{width:20px}}.publication-year-group{margin-bottom:1rem}.year-dropdown{background-color:#fff;border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);overflow:hidden}.year-header{background-color:#f8f9fa;border-bottom:1px solid var(--border-light);cursor:pointer;padding:.75rem;position:relative;transition:background-color .3s ease}.year-header:focus{outline:none}.year-header:focus .chevron-icon{outline:2px solid var(--link-color);outline-offset:2px}.year-header:hover{background-color:#e9ecef}.year-header:hover .chevron-icon{background-color:#d1d4d8;box-shadow:0 2px 4px #0000001a;transform:scale(1.1)}.year-header:focus-visible{outline:none}.year-header:focus-visible .chevron-icon{outline:2px solid var(--link-color);outline-offset:2px}.year-header:active{background-color:#e9ecef}.year-header:active .chevron-icon{background-color:#d1d4d8}@media (prefers-contrast:high){.year-header:focus .chevron-icon,.year-header:focus-visible .chevron-icon{outline:3px solid #000;outline-offset:2px}}@media (prefers-reduced-motion:reduce){.year-header:active,.year-header:hover{transform:none;transition:none}.year-header:active .chevron-icon,.year-header:hover .chevron-icon{transition:none}.year-header:active .chevron-icon:not(.expanded),.year-header:hover .chevron-icon:not(.expanded){transform:none}.chevron-icon.expanded{transform:rotate(180deg)!important}}.year-header-content{align-items:center;display:flex;justify-content:space-between}.year-label{color:var(--accent-color);font-family:var(--font-family-serif);font-size:clamp(.95rem,2.5vw,1.1rem);font-weight:600;margin:0;padding:0}.year-meta{align-items:center;display:flex;gap:10px}.publication-count{background-color:var(--accent-color)!important;font-size:.8rem;padding:4px 10px}.publication-count.journal{background-color:var(--bs-danger)!important}.publication-count.workshop{background-color:var(--bs-success)!important}.publication-count.conference{background-color:var(--bs-primary)!important}.publication-count.workinggroup{background-color:var(--bs-secondary)!important}.publication-count.preprint{background-color:var(--bs-warning)!important}.publication-count.poster{background-color:var(--bs-dark)!important}.publication-count.abstract{background-color:var(--bs-info)!important}.chevron-icon{background-color:#e9ecef;border:2px solid #0000;border-radius:50%;cursor:pointer;display:inline-block;font-size:.8rem;height:28px;line-height:26px;position:relative;text-align:center;transition:transform .3s ease,background-color .3s ease,color .3s ease,box-shadow .3s ease,border .3s ease;width:28px}.chevron-icon.expanded{transform:rotate(180deg)!important}.year-header[aria-expanded=true]{background-color:#f0f8ff;border-bottom:2px solid var(--link-color)}.year-header[aria-expanded=true] .chevron-icon{background-color:var(--link-color);border:2px solid #06c3;color:#fff}.year-header[aria-expanded=true]:focus .chevron-icon,.year-header[aria-expanded=true]:focus-visible .chevron-icon{outline:2px solid var(--link-color);outline-offset:2px}.year-content{max-height:0;overflow:hidden;padding:0;transition:max-height .5s ease}.year-content.expanded{max-height:5000px;padding:0}.publication-card{animation:fadeIn .5s ease-in-out;border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);margin:.5rem;transition:all .3s ease}.publication-title{align-items:flex-start;display:flex;font-size:clamp(.85rem,2vw,.95rem);font-weight:600;justify-content:space-between;line-height:1.3;margin-bottom:6px}.publication-authors{font-size:clamp(.7rem,1.8vw,.8rem);font-style:italic;margin-bottom:4px}.publication-authors,.publication-venue{color:var(--secondary-text);line-height:1.3}.publication-venue{font-size:clamp(.65rem,1.6vw,.75rem);margin-bottom:6px;margin-left:0!important}.publication-link a{color:var(--link-color);display:inline-block;font-size:.9rem;margin-top:5px;text-decoration:none}.venue-badge{border-radius:var(--border-radius-sm);font-size:.7rem;margin-left:10px;padding:3px 8px;vertical-align:middle}.venue-badge.journal{background-color:var(--bs-danger)!important}.venue-badge.workshop{background-color:var(--bs-success)!important}.venue-badge.conference{background-color:var(--bs-primary)!important}.venue-badge.workinggroup{background-color:var(--bs-secondary)!important}.venue-badge.preprint{background-color:var(--bs-warning)!important}.venue-badge.poster{background-color:var(--bs-dark)!important}.venue-badge.other{background-color:var(--bs-info)!important}.award-emoji{cursor:help;display:inline-block;font-size:1.1rem;margin-left:10px;vertical-align:middle}.project-card{border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);transition:all .3s ease}.project-title{color:var(--accent-color);font-family:var(--font-family-serif);font-size:clamp(.95rem,2.5vw,1.1rem);font-weight:600;line-height:1.2;margin-bottom:5px}.project-client{color:var(--secondary-text);font-size:.9rem;font-style:italic}.project-image{background-color:#fff;border:1px solid var(--border-light);border-radius:var(--border-radius-sm);height:auto;max-height:120px;max-width:100%;padding:5px}.project-details{font-size:.9rem;padding-left:1.25rem}.project-details li{margin-bottom:5px}.workshop-card{border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);margin-bottom:var(--space-sm);transition:all .3s ease}.workshop-title{align-items:flex-start;display:flex;font-size:1.1rem;font-weight:600;justify-content:space-between;margin-bottom:8px}.workshop-authors{color:var(--secondary-text);font-size:.9rem;font-style:italic;margin-bottom:5px}.workshop-venue{color:var(--secondary-text);font-size:.85rem;margin-bottom:8px}.workshop-link a{color:var(--link-color);display:inline-block;font-size:.9rem;margin-top:5px;text-decoration:none}.workshop-link a:hover{text-decoration:underline}.course-website-card{border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);transition:all .3s ease}.course-name{color:var(--accent-color);font-family:var(--font-family-serif);font-size:clamp(.9rem,2.5vw,1.1rem);font-weight:600;line-height:1.2;margin-bottom:var(--space-md);text-align:center}.achievement-card{border:1px solid var(--border-light);border-radius:var(--border-radius-md);box-shadow:var(--card-shadow);margin-bottom:var(--space-sm);transition:all .3s ease}.achievement-title{color:var(--accent-color);font-size:clamp(.95rem,2.5vw,1.1rem);font-style:italic;font-weight:600;line-height:1.2;margin-bottom:8px}.achievement-description{color:var(--secondary-text);font-size:.9rem}.cv-footer{border-top:1px solid var(--border-light);margin-top:var(--space-lg);padding-top:var(--space-md)}.note{color:var(--secondary-text);font-size:.85rem;font-style:italic}.sr-only{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.sr-only table{border-collapse:collapse;width:100%}.sr-only td,.sr-only th{border:1px solid #000;padding:4px;text-align:left}.sr-only th{background-color:#f0f0f0;font-weight:700}.sr-only caption{font-weight:700;margin-bottom:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:575.98px){.cv-content{padding:0 .5rem}.cv-section{margin-bottom:1rem;padding:.5rem}.section-content{padding:.25rem}.logo-column{min-width:35px}.education-card .card-body,.simplified-experience-card .card-body{padding:.4rem}.publication-card .card-body,.year-header{padding:.6rem}.publication-count{font-size:.65rem;padding:2px 6px}.venue-badge{font-size:.6rem;padding:2px 6px}.project-image{max-height:80px}.dashboard-container{padding:10px}.mobile-nav-toggle{display:flex}}@media (min-width:576px) and (max-width:767.98px){.cv-content{padding:0 1rem}.cv-section{padding:.75rem}.mobile-nav-toggle{display:flex}}@media (min-width:768px) and (max-width:991.98px){.cv-content{padding:0 1.5rem}.mobile-nav-toggle{display:flex}}@media (min-width:992px) and (max-width:1199.98px){.mobile-nav-menu,.mobile-nav-overlay,.mobile-nav-toggle{display:none}}@media (min-width:1200px){.cv-section{padding:1.5rem}.mobile-nav-menu,.mobile-nav-overlay,.mobile-nav-toggle{display:none}.visualizations-row{gap:24px;grid-template-columns:repeat(2,1fr)}.chart-container{min-height:220px}}@supports not selector(:focus-visible){.year-header:focus{outline:none}.year-header:focus .chevron-icon{outline:2px solid var(--link-color);outline-offset:2px}}@media (prefers-color-scheme:dark){.year-header:focus .chevron-icon,.year-header:focus-visible .chevron-icon{outline-color:#4dabf7}}.post{font-family:var(--font-family-serif)}.post-header{font-feature-settings:"smcp";border-bottom:1px solid var(--primary-text);display:flow-root;font-variant:small-caps;width:100%}.post-body{margin:var(--space-sm);text-align:left}.title{float:left;font-size:var(--font-size-lg);text-align:left;width:auto}.date{float:right;font-size:var(--font-size-sm);text-align:right;width:auto}.topic-selection{font-feature-settings:"smcp";border-bottom:1px solid var(--primary-text);font-family:var(--font-family-serif);font-size:var(--font-size-lg);font-variant:small-caps;margin-bottom:var(--space-sm);margin-top:var(--space-lg)}.topic-nav{flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.topic-nav .nav-item{position:relative;z-index:1}.topic-nav .nav-item:focus-within{z-index:10}.nav-topic{font-feature-settings:"smcp";background-color:var(--dark-bg)!important;border:1px solid var(--dark-bg-hover);border-radius:var(--border-radius-sm);color:var(--light-text)!important;cursor:pointer;font-variant:small-caps;font-weight:600;letter-spacing:.5px;transition:var(--transition-standard)}.nav-topic:hover{background-color:var(--dark-bg-hover)!important;box-shadow:var(--card-shadow);color:var(--light-text-hover)!important;transform:var(--hover-lift-sm)}.nav-topic:focus{box-shadow:0 0 0 6px #0066cc40;position:relative;transform:none;z-index:10}.nav-topic:focus,.nav-topic:hover:focus{outline:3px solid var(--link-color);outline-offset:3px}.nav-topic:hover:focus{box-shadow:0 0 0 6px #0066cc40,var(--card-shadow);transform:var(--hover-lift-sm)}.active-topic{font-feature-settings:"smcp";background-color:var(--dark-bg-hover)!important;border:1px solid #4a4f53;color:var(--light-text-hover)!important;font-variant:small-caps;font-weight:600;letter-spacing:.5px;position:relative}.active-topic:after{background-color:var(--light-text-hover);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:100%}.active-topic:focus{box-shadow:0 0 0 6px #0066cc40;outline:3px solid var(--link-color);outline-offset:3px;position:relative;z-index:10}.active-topic:focus:after{bottom:-5px}.topics-container{align-items:center;display:flex;flex-wrap:wrap;margin:var(--space-sm) 0}.topic-badge{font-feature-settings:"smcp";background-color:var(--dark-bg)!important;border:1px solid var(--dark-bg-hover);border-radius:var(--border-radius-sm);color:var(--light-text)!important;cursor:pointer;font-variant:small-caps;font-weight:500;margin:0 3px;padding:6px 10px;transition:var(--transition-standard)}.topic-badge:hover{background-color:var(--dark-bg-hover)!important;box-shadow:var(--card-shadow);color:var(--light-text-hover)!important;transform:var(--hover-lift-sm)}.topic-badge:focus{box-shadow:0 0 0 6px #2c2c2c40;outline:3px solid var(--primary-text);outline-offset:2px}.blog-link{font-weight:600;text-decoration:none;transition:var(--transition-standard)}.blog-link,.blog-link:active,.blog-link:hover{color:var(--primary-text)}.input-group{margin-top:var(--space-lg)}.form-control:focus{border-color:#212529;box-shadow:0 0 0 .25rem #21252940;outline:3px solid var(--link-color);outline-offset:1px}.clear-button{background-color:var(--primary-text);border:2px solid var(--primary-text);color:#f8f9fa;cursor:pointer;font-weight:500;letter-spacing:.5px;transition:var(--transition-standard)}.clear-button:hover{background-color:#212529;border-color:#212529;box-shadow:var(--card-shadow);color:#fff;transform:var(--hover-lift-sm)}.clear-button:focus{box-shadow:0 0 0 6px #0066cc40;outline:3px solid var(--link-color);outline-offset:3px}@supports selector(:focus-visible){.active-topic:focus:not(:focus-visible),.nav-topic:focus:not(:focus-visible){box-shadow:none;outline:none}.nav-topic:focus-visible{box-shadow:0 0 0 6px #0066cc40;outline:3px solid var(--link-color);outline-offset:3px}.active-topic:focus-visible{box-shadow:0 0 0 6px #0066cc40;outline:3px solid var(--link-color);outline-offset:3px}}@media screen and (max-width:767px){.profile-photo-subtitle{content:""}.bio-alignment{text-align:center}.topic-nav{justify-content:center}}@media screen and (min-width:767px){.profile-photo-subtitle{content:"David H Smith IV"}.bio-alignment{text-align:left}}.research-intro{background-color:var(--highlight-bg);border-radius:var(--border-radius-md);margin-bottom:var(--space-lg);padding:var(--space-md);width:100%}.research-title{font-feature-settings:"smcp";border-bottom:1px solid var(--border-light);font-family:var(--font-family-serif);font-size:var(--font-size-lg);font-variant:small-caps;font-weight:600;margin-bottom:.75rem;padding-bottom:.5rem}.research-text{color:var(--secondary-text);font-size:var(--font-size-sm);line-height:1.5;margin-bottom:0}.research-card{border:1px solid var(--border-light);box-shadow:var(--card-shadow);margin-bottom:20px;transition:transform .3s}.research-card:hover{box-shadow:var(--card-shadow-hover);transform:var(--hover-lift-sm)}.research-icon{height:auto;margin:0 auto;max-height:150px;max-width:100%}.publication-list{list-style:none;margin-bottom:0;padding-left:0}.publication-list li{line-height:1.4;margin-bottom:.75rem;padding-left:1.25rem;position:relative}.publication-list li:before{color:var(--accent-color);content:"▸";font-weight:700;left:0;position:absolute}.publication-list a{color:var(--link-color);font-size:.9rem;line-height:1.3;text-decoration:none}.publication-list a:hover{background-color:#0066cc0d;text-decoration:underline}.badge{font-size:.7rem!important;font-weight:600!important;padding:3px 6px!important;text-transform:uppercase;vertical-align:middle}.badge.bg-primary{background-color:#007bff!important}.badge.bg-success{background-color:#28a745!important}.badge.bg-info{background-color:#17a2b8!important}.badge.bg-warning{background-color:#ffc107!important;color:#212529!important}.accordion{border:none}.accordion-item{background:#0000}.accordion-button{font-family:var(--font-family-base);font-size:.95rem;font-weight:500}.accordion-button:after{background-size:1rem}.accordion-body{font-size:var(--font-size-sm)}.card{border:1px solid var(--border-light);box-shadow:var(--card-shadow);transition:all .3s ease}.card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.bg-light{background-color:var(--highlight-bg)!important}.rounded{border-radius:var(--border-radius-sm)!important}@media (max-width:767.98px){.research-title{font-size:1.2rem}.research-text{font-size:var(--font-size-sm)}.research-intro{padding:1rem}.research-icon{margin-bottom:1rem;max-height:100px}.publication-list a{font-size:.85rem}.accordion-button{font-size:.9rem;padding:.5rem .75rem}}@media (min-width:768px) and (max-width:991.98px){.research-intro{padding:1.5rem}}@media (min-width:992px){.research-intro{padding:var(--space-lg)}.research-icon{max-height:150px}}.teaching-intro{background-color:var(--highlight-bg);border-radius:var(--border-radius-md);margin-bottom:var(--space-lg);padding:var(--space-md);width:100%}.teaching-title{font-feature-settings:"smcp";border-bottom:1px solid var(--border-light);font-family:var(--font-family-serif);font-size:var(--font-size-lg);font-variant:small-caps;font-weight:600;margin-bottom:.75rem;padding-bottom:.5rem}.lead-text{color:var(--primary-text);font-size:1.1rem;font-weight:500;margin-bottom:.75rem}.institution-section{margin-bottom:3rem}.institution-header{font-feature-settings:"smcp";border-bottom:2px solid var(--accent-color);color:var(--primary-text);font-family:var(--font-family-serif);font-size:1.4rem;font-variant:small-caps;font-weight:600;margin-bottom:1.5rem;padding-bottom:.5rem}.course-card{background:#fff;border:1px solid #00000014;border-radius:var(--border-radius-md);box-shadow:0 1px 3px #0000000d;height:100%;transition:all .3s ease}.course-card:hover{border-color:var(--accent-color);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.course-card-header{border-bottom:1px solid #0000000d;margin-bottom:1rem;padding-bottom:.75rem}.course-title{color:var(--primary-text);font-size:1.1rem;font-weight:600;line-height:1.3;margin-bottom:.25rem}.course-code{color:#6c757d;display:block;font-size:.85rem;font-weight:500;margin-top:.25rem}.course-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.course-meta .badge{border-radius:4px;font-size:.7rem!important;font-weight:600!important;padding:5px 10px!important;text-transform:uppercase}.course-description{color:var(--secondary-text);flex-grow:1;font-size:.9rem;line-height:1.6;margin-bottom:1.5rem}.course-footer{align-items:center;border-top:1px solid #0000000d;display:flex;justify-content:space-between;margin-top:auto;padding-top:1rem}.course-enrollment{color:#6c757d}.course-enrollment,.course-link{align-items:center;display:flex;font-size:.85rem;gap:.25rem}.course-link{color:var(--accent-color);font-weight:600;text-decoration:none;transition:all .2s ease}.course-link:hover{color:var(--primary-text);gap:.5rem}.badge.bg-purple{background-color:#6f42c1!important}.accordion-item{border:1px solid var(--border-light);margin-top:.5rem}.accordion-button{background-color:var(--highlight-bg);color:var(--primary-text);font-size:.9rem;padding:.75rem 1rem}.accordion-button:not(.collapsed){background-color:var(--secondary-bg);box-shadow:none;color:var(--primary-text)}.accordion-button:focus{border-color:var(--border-light);box-shadow:none}.accordion-body{background-color:#fff;font-size:.9rem;padding:1rem}.highlights-list{margin-bottom:0;padding-left:1.25rem}.highlights-list li{color:var(--secondary-text);font-size:.9rem;line-height:1.4;margin-bottom:.5rem}.blockquote-text{background:linear-gradient(135deg,#f8f9fae6,#fffffff2);border:1px solid #0000000d;border-radius:var(--border-radius-md);box-shadow:0 2px 15px #00000014;color:#495057;font-family:"Georgia",var(--font-family-serif);font-size:1.05rem;font-style:italic;line-height:1.7;margin:2rem auto;max-width:85%;padding:2rem 2.5rem 1.5rem 3.5rem;position:relative;text-align:left}.blockquote-text:before{color:var(--accent-color);content:'"';font-family:Georgia,serif;font-size:4rem;font-weight:700;left:15px;opacity:.3;position:absolute;top:-5px}.blockquote-text em{color:#6c757d;display:block;font-size:.9rem;font-style:normal;font-weight:500;letter-spacing:.5px;margin-top:1rem;text-align:right}.future-courses-list{list-style:none;padding-left:0}.future-courses-list li{color:var(--secondary-text);font-size:.95rem;line-height:1.5;margin-bottom:.75rem;padding-left:1.5rem;position:relative}.future-courses-list li:before{color:var(--accent-color);content:"▸";font-weight:700;left:0;position:absolute}.fw-bold{font-weight:600!important}.small{font-size:.875rem}.text-muted{color:#6c757d!important}@media (max-width:767.98px){.teaching-title{font-size:1.2rem}.teaching-intro{padding:1rem}.institution-header{font-size:1.2rem}.course-card{margin-bottom:1rem}.course-title{font-size:1rem}.course-meta .badge{font-size:.65rem!important;padding:4px 8px!important}.course-footer{align-items:flex-start;flex-direction:column;gap:.5rem}.blockquote-text{font-size:.95rem;max-width:95%;padding:1.5rem 1.5rem 1rem 2.5rem}.blockquote-text:before{font-size:3rem;left:10px}}@media (min-width:768px) and (max-width:991.98px){.teaching-intro{padding:1.5rem}}@media (min-width:992px){.teaching-intro{padding:var(--space-lg)}}.lab-container{padding:30px}.announcement-card{margin-bottom:30px;overflow:hidden}.announcement-header{background-color:#343a40;color:#fff;padding:12px 20px}.announcement-header h3{font-size:1.2rem;font-weight:600;margin-bottom:0}.announcement-content{background-color:#f8f9fa;border:1px solid rgba(0,0,0,.125);border-top:none;font-size:.95rem;line-height:1.5}.name-badge{background-color:#343a40;padding:10px 16px;text-align:center;width:100%}.name-badge h5{color:#fff;font-size:1rem;font-weight:600;margin-bottom:2px}.position-text{color:#f8f9fa;font-size:.8rem;margin-bottom:0}.member-card{margin-bottom:20px;transform:scale(.95);transition:transform .3s}.member-card:hover{box-shadow:0 4px 8px #00000026;transform:scale(.98)}.member-card .card-body{padding:.75rem}.member-card .card-text{font-size:.85rem;line-height:1.4}.member-image{border-radius:0;height:180px;object-fit:cover;width:100%}.role-section{margin-bottom:40px}.role-title{border-bottom:2px solid #000;margin-bottom:20px;padding-bottom:10px}.lab-banner{align-items:center;background-color:#212529!important;display:flex;gap:1.5rem;padding:1.2rem 2rem;width:100%}.lab-logo-image{flex-shrink:0;height:auto;width:100px}.lab-name{color:#fff;flex-grow:1;font-family:var(--font-family-serif);font-size:1.25rem;font-weight:600;line-height:1.3;margin:0;max-width:800px;text-align:left}@media (max-width:768px){.lab-name{font-size:1rem;text-align:center}.lab-banner{flex-direction:column;gap:.75rem;padding:1rem;text-align:center}.lab-logo-image{width:80px}.member-card{transform:scale(1)}}
/*# sourceMappingURL=main.0a788dda.css.map*/