:root{--paper:#f7f5ef;--surface:#fff;--ink:#20242a;--muted:#5f6872;--line:#d7d3c8;--navy:#183a5a;--dark:#102a43;--accent:#8c5b24;--side:18rem}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,"Times New Roman",serif;line-height:1.65}a{color:var(--navy);text-underline-offset:.15em}a:hover{color:var(--accent)}img{max-width:100%;height:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:100;background:#fff;padding:.7rem}.site-shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;padding:2rem 1.4rem;background:var(--dark);color:#fff}.site-name{font-size:1.35rem;font-weight:700;margin-bottom:1.5rem}.site-name a,.sidebar a{color:#fff;text-decoration:none}.sidebar ul{list-style:none;padding:0}.sidebar a{display:block;padding:.38rem .5rem;border-left:3px solid transparent}.sidebar a:hover,.sidebar a[aria-current=page]{background:#ffffff17;border-left-color:#d6b47b}.menu-button{display:none}main{width:min(100%,78rem);padding:clamp(1.25rem,4vw,4rem)}h1,h2,h3{color:var(--dark);line-height:1.18}h1{font-size:clamp(2.3rem,6vw,4.5rem)}h2{font-size:clamp(1.7rem,3vw,2.5rem)}.eyebrow{color:var(--accent);font:700 .78rem system-ui;letter-spacing:.12em;text-transform:uppercase}.profile-header{display:grid;grid-template-columns:1fr minmax(12rem,19rem);gap:3rem;align-items:center;padding-bottom:4rem;border-bottom:1px solid var(--line)}.title{font-size:1.35rem;color:var(--muted)}.portrait{margin:0}.portrait img{display:block;width:100%;border:1px solid var(--line)}.button{display:inline-block;padding:.65rem .9rem;background:var(--navy);color:#fff;text-decoration:none}.profile-links{display:flex;flex-wrap:wrap;gap:.7rem}.content-section{padding:4rem 0;border-bottom:1px solid var(--line)}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.course-group{background:#fff;border:1px solid var(--line);padding:1.2rem}.course-group h2{font-size:1.25rem}.publication-tools{max-width:46rem;margin:1.5rem 0}.publication-tools label{display:block;font:700 .95rem system-ui}.publication-tools input{width:100%;padding:.8rem;border:1px solid #9ba4ad;font:inherit}.publication-year{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--line)}.publication-year h2{font-size:1.4rem;margin:0}.publication-list{margin:0;padding-left:1.5rem}.publication-list>li{margin-bottom:1.4rem}.publication-list img{vertical-align:middle;max-height:1rem;width:auto}.page-header{padding-bottom:2.5rem;border-bottom:1px solid var(--line)}.record-list{border-top:1px solid var(--line)}.record-entry{display:grid;grid-template-columns:8rem 1fr;gap:1.5rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}.record-year{font-weight:700;color:var(--dark)}.service-list li{margin-bottom:1rem}.site-footer{padding:3rem 0}.is-hidden{display:none!important}@media(max-width:900px){.course-grid{grid-template-columns:1fr}.publication-year{grid-template-columns:1fr}}@media(max-width:720px){.site-shell{display:block}.menu-button{display:block;position:fixed;right:.75rem;top:.75rem;z-index:40;padding:.6rem;background:#fff;border:1px solid var(--dark)}.sidebar{position:fixed;inset:0 20% 0 0;z-index:30;transform:translateX(-105%);transition:.2s}.sidebar.is-open{transform:none}main{padding:4.2rem 1.1rem 2rem}.profile-header{grid-template-columns:1fr}.portrait{grid-row:1;width:13rem}.record-entry{grid-template-columns:1fr;gap:.2rem}}
/* Academic bibliography numbering */
.numbered-bibliography{counter-reset:bibliography-item}
.numbered-bibliography.numbered-list,.numbered-bibliography .numbered-list{list-style:none;padding-left:3.1rem}
.numbered-bibliography.numbered-list>li,.numbered-bibliography .numbered-list>li{counter-increment:bibliography-item;position:relative}
.numbered-bibliography.numbered-list>li::before,.numbered-bibliography .numbered-list>li::before{content:"[" counter(bibliography-item) "]";position:absolute;left:-3.1rem;width:2.5rem;text-align:right;color:var(--dark);font-weight:700}
.unnumbered-list{list-style:none;padding-left:0}
