/* A compact academic site: one reading column, consistent rules and restrained red accents. */
:root{--ink:#242a30;--muted:#59636f;--red:#a30b20;--link:#24527d;--line:#dce1e6;--soft:#f5f7f9;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:1.25rem}
body{max-width:60rem;margin:1.75rem auto;padding:0 1.25rem;background:#f1f3f5;color:var(--ink);font:.875rem/1.6 var(--sans);overflow-wrap:break-word}
main{background:#fff;padding:0 2.25rem 1rem;border:1px solid var(--line);border-top:0}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--red)}
a:focus-visible,summary:focus-visible{outline:2px solid var(--red);outline-offset:4px}
p{margin:0 0 .7rem}figure{margin:0}img{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--sans);line-height:1.35;letter-spacing:0;text-wrap:pretty}
h1{font-size:1.65rem;font-weight:700;margin:0 0 .65rem;color:var(--ink)}
h2{font-size:1.125rem;font-weight:700;color:var(--red);margin:0 0 .85rem}
h3{font-size:.9375rem;margin:0 0 .4rem}
.wrap{width:100%;margin:0 auto}
.skip-link{position:absolute;left:1rem;top:-8rem;background:#fff;padding:.65rem 1rem;z-index:10}
.skip-link:focus{top:1rem}
.site-header{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red)}
.header-inner{padding:1.4rem 2.25rem 0}
.identity{display:block;width:fit-content;max-width:100%;font-size:1.125rem;line-height:1.4;font-weight:700;text-decoration:none;color:var(--ink);margin-bottom:1rem}
.site-header nav{display:flex;flex-wrap:wrap;gap:0 1.5rem;border-top:1px solid var(--line)}
.site-header nav a{font-size:.8125rem;padding:.7rem 0 .6rem;text-decoration:none;border-bottom:2px solid transparent}
.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--red);border-bottom-color:var(--red)}
.site-header nav a[aria-current]{font-weight:700}
.hero{display:flex;flex-direction:column;gap:1.2rem;padding:1.8rem 0}
.hero-photo{order:-1}
.hero-photo img{display:block;width:9rem;height:9rem;object-fit:cover;object-position:center 30%;border:1px solid var(--line)}
.photo-caption{font-size:.75rem;line-height:1.5;color:var(--muted);margin-top:.55rem}
.photo-caption span{display:block}
.eyebrow{font-size:.75rem;line-height:1.5;font-weight:600;color:var(--muted);margin:0 0 .45rem;letter-spacing:.03em}
.hero h1{font-size:1.65rem}.role{margin-bottom:.8rem}.hero-intro{max-width:48rem}
.hero-links,.academic-links,.pub-links,.contact-links,.student-links{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;font-size:.8125rem;align-items:baseline}
.academic-links{margin-top:.5rem}.academic-links span{display:none}.button,.text-link{font-size:.8125rem}
.section,.content-section,.awards-section,.news-section,.teaching-section,.contact-section{padding:1.5rem 0;border-top:1px solid var(--line)}
.section-heading,.content-heading{margin-bottom:1rem}
.section-heading h2,.content-heading h2{margin-bottom:.4rem}
.heading-with-link,.content-heading{display:block}
.heading-with-link>a,.content-heading>.item-count{display:block;margin-top:.3rem;font-size:.8125rem}
.about-content p:last-child{margin-bottom:0}
.education-list{margin:1rem 0;padding-left:.9rem;border-left:2px solid var(--line)}
.education-list>div{display:block;margin-bottom:.6rem}.education-list>div:last-child{margin-bottom:0}
.education-list span{font-size:.75rem;font-weight:600;color:var(--muted)}
.education-list p{font-size:.8125rem;margin:0}.education-list br{display:none}.education-list strong:after{content:' · ';font-weight:400}
.awards-list{display:block;list-style:none;padding:0;margin:0;font-size:.875rem}
.awards-list li{padding:.55rem 0;border-bottom:1px solid #edf0f3}.awards-list li:first-child{padding-top:0}.awards-list li:last-child{padding-bottom:0;border-bottom:0}
.awards-list strong,.awards-list span{display:block}.awards-list span{color:var(--muted);font-size:.75rem;margin-top:.1rem}
.research-grid{display:block}.research-grid article+article{margin-top:1rem}
.research-grid h3{font-size:.9375rem}.research-grid p{margin-bottom:.3rem}
.topic-meta{font-size:.75rem;color:var(--muted)}
.page-intro{padding:1.6rem 0 1.35rem}.page-intro h1{font-size:1.65rem}
.page-description{margin-bottom:.7rem;max-width:46rem}
.page-note{font-size:.8125rem;color:var(--muted)}
.section-nav{display:flex;flex-wrap:wrap;gap:.45rem 1.15rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line);font-size:.8125rem}
.section-description{font-size:.8125rem;color:var(--muted);margin:.35rem 0 0}
.item-count{font-size:.75rem;color:var(--muted)}
.publication-year>h2,.news-year-title{color:var(--red);font-size:1rem;border-left:3px solid var(--red);padding-left:.65rem;margin-bottom:1rem}
.news-year-group+.news-year-group{margin-top:1.5rem}
.news-list{list-style:none;padding:0;margin:0}
.news-list li{display:block;padding:.8rem 0;border-bottom:1px solid #e7ebef;scroll-margin-top:1rem}
.news-list li:first-child{padding-top:0}.news-list li:last-child{padding-bottom:0;border-bottom:0}
.news-date{display:block;font-size:.75rem;font-weight:700;letter-spacing:.015em;color:var(--muted);margin-bottom:.25rem}
.news-list li>div{min-width:0}.news-with-clipping{display:block}.service-more{margin:1rem 0 0;font-size:.8125rem}
.news-award-clipping{max-width:19rem;margin:1.2rem 0 0;padding:.65rem;border:1px solid var(--line);background:var(--soft)}
.news-award-clipping img{display:block;width:100%;height:auto}
.news-award-clipping figcaption{font-size:.75rem;line-height:1.5;margin-top:.65rem}
.news-award-clipping figcaption>*{display:block;margin-top:.25rem}
.publication{display:block;padding:1.15rem 0;border-top:1px solid #e7ebef}
.publication:first-child{border-top:0;padding-top:0}.publication:last-child{padding-bottom:0}
.pub-venue{display:flex;flex-wrap:wrap;gap:.25rem .55rem;font-size:.75rem;color:var(--muted);margin-bottom:.4rem}
.pub-venue strong{color:var(--red)}
.publication h3{font-size:.9375rem;line-height:1.5;margin:0 0 .4rem}
.publication h3 a{color:var(--ink);text-decoration:none}.publication h3 a:hover{color:var(--link);text-decoration:underline}
.authors{font-size:.8125rem;margin:0 0 .45rem;color:var(--muted)}.authors strong{font-weight:600;color:var(--ink)}
.pub-description{font-size:.8125rem;margin-bottom:.5rem}.pub-links{margin-top:.45rem}
.publication-note{font-size:.75rem;color:var(--muted);margin:.65rem 0 0}
.award-label{display:block;font-size:.75rem;color:var(--red);font-weight:700;margin-bottom:.4rem}
.project-logo{display:block;width:5rem;margin:.5rem 0 .8rem;text-decoration:none}
.project-logo img{display:block;width:100%;height:auto}.project-logo-cachemind{width:9.5rem}
.project-identity{display:block;margin-bottom:1.25rem}.project-identity p{font-size:.8125rem;margin:0}.project-identity p span{font-size:.75rem;color:var(--muted)}
.artifact-recognition{margin:.85rem 0 0;padding:.8rem 1rem;border-left:2px solid var(--red);background:var(--soft)}
.artifact-recognition p{font-size:.8125rem;margin:0 0 .65rem}.artifact-recognition p:last-child{margin-bottom:0}
.artifact-badges{display:flex;flex-wrap:wrap;gap:.8rem;margin:.75rem 0 0}.artifact-badges img{display:block;width:4rem;height:auto}
.press-grid{display:block}.press-card{padding:1.2rem 0;border-top:1px solid #e7ebef;min-width:0}.press-card:last-child{padding-bottom:0}
.press-meta{font-size:.75rem;margin-bottom:.45rem}.press-meta strong{display:block;color:var(--red)}.press-meta>span{display:block;color:var(--muted);margin-top:.15rem}
.press-card h3{font-size:.9375rem;line-height:1.45;margin-bottom:.6rem}
.press-note{font-size:.8125rem;color:var(--muted);margin-bottom:.6rem}
.press-clipping{max-width:34rem;margin:.8rem 0 0;padding:.6rem;border:1px solid var(--line);background:var(--soft)}
.press-clipping a{display:block}.press-clipping img{display:block;width:auto;max-width:100%;height:auto;max-height:24rem;object-fit:contain;object-position:top left}
.source-note{font-size:.75rem;color:var(--muted);padding:1rem 0}.source-note p{margin:0}
.teaching-intro{margin-bottom:1.25rem}.teaching-intro>p{max-width:47rem}.teaching-more{margin:.4rem 0 0}
.course{padding:.85rem 0;border-top:1px solid #e7ebef}.course:last-child{padding-bottom:0}
.course-code{font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}.course h3{font-size:.9375rem}.course>p:not(.course-code){font-size:.8125rem;margin-bottom:.45rem}
.review-grid{display:block}.review{border:1px solid #e3dfe1;border-left:3px solid var(--red);border-radius:5px;background:linear-gradient(110deg,#faf7f7,#fff 70%);padding:.65rem .85rem;min-width:0;margin-top:.5rem}
.review:first-child{margin-top:0}.review blockquote{margin:0 0 .4rem;font:italic .8125rem/1.55 var(--sans)}.review blockquote p{margin:0}.review blockquote strong{font-weight:700;color:#751127}
.review figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .55rem;font-size:.75rem;line-height:1.35;font-style:normal;color:var(--muted)}.review figcaption strong,.review figcaption span{display:inline}.review figcaption strong{font-weight:600}.review figcaption span{padding-left:.55rem;border-left:1px solid #d7d0d3}
.evaluation-stat{display:block;padding:1rem;margin:1.1rem 0 1.4rem;background:var(--soft);border-left:2px solid var(--red)}
.evaluation-stat p{font-size:.8125rem;margin:0}.evaluation-stat p+p{margin-top:.7rem}.evaluation-stat p>strong{display:block;font-size:1.4rem;color:var(--red)}
.evaluation-stat strong span{font-size:.8125rem;color:var(--muted);font-weight:400}.evaluation-stat p>span{display:block}.evaluation-stat p:last-child>span{font-size:.75rem;color:var(--muted)}
.more-reviews{margin-top:1rem;padding:.45rem 0;border-top:1px solid var(--line)}.more-reviews summary{cursor:pointer;color:var(--link);font-size:.8125rem;padding:.35rem 0;text-decoration:underline;text-underline-offset:3px}
.more-reviews[open] summary{margin-bottom:1rem}.student-notes{margin-top:1.5rem}.student-notes>.section-description{margin-bottom:1rem}
.student-grid,.researcher-columns,.alumni-list{display:block}
.student-card{padding:1rem 0;border-top:1px solid #e7ebef;min-width:0}.student-card:last-child{padding-bottom:0}
.student-role{font-size:.75rem;color:var(--red);font-weight:600;margin-bottom:.25rem}.student-card h3{font-size:1rem;margin-bottom:.4rem}
.student-card>p:not(.student-role){font-size:.8125rem;margin-bottom:.45rem}.joined-term{color:var(--muted)}.student-links{margin-top:.65rem}
.roster-subhead{font-size:.9375rem;margin:1.25rem 0 .8rem}.name-list,.alumni-list{list-style:none;padding:0;margin:0}
.name-list li,.alumni-list li{padding:.7rem 0;border-top:1px solid #e7ebef}.name-list strong,.alumni-list strong{display:block;font-size:.875rem}
.name-list span,.alumni-list span{display:block;font-size:.8125rem;color:var(--muted);margin-top:.2rem}.alumni-list .text-link{display:block;margin-top:.35rem}
.student-publications{margin-top:.7rem}.student-papers-label{margin:0 0 .3rem;font-size:.75rem;font-weight:600;color:var(--ink)}.student-paper{font-size:.8125rem;line-height:1.5;margin:0 0 .25rem}.student-paper:last-child{margin-bottom:0}
.contact-inner>div+div{margin-top:1rem}.contact-inner p{font-size:.8125rem}.email{display:inline-block;margin-bottom:.5rem}
.contact-details address{font-size:.8125rem;font-style:normal;margin:.8rem 0}.office-phone{margin-bottom:.8rem}
.footer{display:block;font-size:.75rem;color:var(--muted);padding:1rem 2.25rem}.footer p{margin:0 0 .25rem}
@media(max-width:640px){body{margin:0;padding:0;background:#fff}.site-header{border-left:0;border-right:0}.header-inner{padding:1.1rem 1.15rem 0}.site-header nav{gap:0 1.15rem}.identity{font-size:1rem}.site-header nav a{padding:.6rem 0}main{border:0;padding:0 1.15rem 1rem}.hero{padding:1.35rem 0;gap:1rem}.hero-photo img{width:7.5rem;height:7.5rem}.hero h1,.page-intro h1{font-size:1.4rem}.page-intro{padding:1.3rem 0}.section,.content-section,.awards-section,.news-section,.teaching-section,.contact-section{padding:1.3rem 0}.press-clipping{padding:.4rem}.footer{padding:1rem 1.15rem}.desktop-break{display:none}.artifact-recognition{padding:.75rem}.artifact-badges img{width:3.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{max-width:none;margin:0;padding:0;background:#fff}main,.site-header{border:0;padding:0}.header-inner{padding:0}.site-header nav,.section-nav,.skip-link,.footer>a{display:none}a{color:inherit}.publication,.student-card,.review,.press-card{break-inside:avoid}.section,.content-section{padding:1rem 0}.hero{padding:1rem 0}}
