:root{--navy:#102b43;--blue:#17597a;--ink:#233646;--muted:#596b78;--line:#d8e1e7;--light:#f1f5f7;--accent:#c28b42}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:white;color:var(--ink);font:17px/1.75 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-underline-offset:4px}a:hover{color:#9a591b}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.15;color:var(--navy)}h1{font-size:clamp(2.6rem,5.5vw,4.8rem);letter-spacing:-.045em;margin:.3em 0}h2{font-size:2rem}h3{font-size:1.5rem}p{margin:0 0 1.3em}.wrap{width:min(1200px,90%);margin:auto}.skip{position:absolute;top:-100px}.skip:focus{top:5px;background:white;padding:10px;z-index:10}.masthead{border-top:5px solid var(--navy);background:white}.brandrow{display:flex;justify-content:space-between;align-items:center;padding:24px 0;gap:25px}.brand{font-family:Georgia,serif;font-size:25px;font-weight:bold;text-decoration:none;color:var(--navy)}.affiliation{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}nav .wrap{display:flex;gap:27px;flex-wrap:wrap}nav a{font-size:14px;text-decoration:none;padding:15px 0;color:var(--ink);border-bottom:3px solid transparent}nav a[aria-current]{border-color:var(--accent);font-weight:700}details.mobile{display:none}.hero{background:var(--navy);color:#dce7ed}.hero .wrap{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;align-items:center;padding:60px 0}.hero h1{color:white}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:650}.hero .eyebrow{color:#d9b47f}.hero p{font-size:19px;max-width:560px}.portrait{width:100%;max-height:400px;object-fit:cover;object-position:center 30%;display:block}.portrait-caption{font-size:12px;color:#acbfcb;margin-top:10px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.button{background:#fff;color:var(--navy);padding:10px 20px;display:inline-block;text-decoration:none;font-size:14px;font-weight:650}.button.secondary{background:transparent;color:white;border:1px solid #7b94a5}.intro-grid{display:grid;grid-template-columns:2fr 1fr;gap:75px;padding:62px 0}.intro-grid h2{margin-top:0}.sidebox{background:var(--light);padding:28px}.sidebox h3{margin:0 0 18px}.sidebox p{font-size:15px}.sidebox a{overflow-wrap:anywhere}.section{padding:50px 0;border-top:1px solid var(--line)}.sectionhead{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:26px}.sectionhead h2{margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card{border-top:3px solid var(--accent);padding:24px 0}.card h3{margin:8px 0 16px}.card p{font-size:16px;color:var(--muted)}.card a{font-weight:600;font-size:15px}.book{display:grid;grid-template-columns:120px 1fr;gap:28px;align-items:center}.book img{width:120px}.news-row{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);font-size:15px}.news-row time{color:var(--muted);font-variant-numeric:tabular-nums}.pagehead{background:var(--light);padding:42px 0}.pagehead h1{font-size:clamp(2.5rem,5vw,4rem)}.pagehead p{max-width:780px;color:var(--muted);margin-bottom:0}.content-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:65px;padding:50px 0 70px}.toc{font-size:14px;align-self:start;position:sticky;top:25px}.toc strong{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin-bottom:16px}.toc a{display:block;text-decoration:none;padding:7px 0;border-bottom:1px solid var(--line);line-height:1.5}.prose{min-width:0}.prose h2{clear:both;padding-top:30px;margin-top:22px;border-top:1px solid var(--line)}.prose h2:first-child{margin-top:0;padding-top:0;border:0}.prose h3{margin-top:32px}.prose p{overflow-wrap:anywhere}.prose img{max-width:100%;height:auto}.prose img.alignleft,.prose img.alignright{float:right;max-width:42%;margin:0 0 24px 30px}.prose video,.prose iframe{max-width:100%;width:100%;aspect-ratio:16/9;height:auto;border:0}.prose pre{white-space:pre-wrap;font:inherit}.prose hr{border:0;border-top:1px solid var(--line);clear:both;margin:28px 0}.prose table{border-collapse:collapse;width:100%}.prose td,.prose th{padding:16px;text-align:left;border-bottom:1px solid var(--line)}.prose th{background:var(--light);font-size:14px}.gallery img,.group img,.about img{display:block;width:100%;margin:20px 0 30px;float:none!important;max-width:100%!important}.download-list{display:grid;gap:16px}.download{border:1px solid var(--line);padding:23px 25px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;text-decoration:none}.download h2{font-size:1.4rem;margin:0 0 8px;padding:0;border:0}.download p{font-size:14px;margin:0;color:var(--muted)}.download .pdf{font-size:13px;color:var(--blue);border:1px solid var(--line);padding:4px 10px}.download:hover{background:var(--light)}footer{background:var(--navy);color:#c0ced8;padding:38px 0;font-size:14px}footer .wrap{display:flex;justify-content:space-between;gap:30px}footer a{color:#dce7ed}footer strong{color:#fff}details.archive{margin-top:24px}summary{cursor:pointer;color:var(--blue);font-weight:600}.not-found{padding:100px 0}#search-form{display:flex;gap:10px}#search-form input{min-width:0;padding:9px;border:1px solid var(--line);font:inherit}#search-form button{border:0;background:var(--navy);color:white;padding:10px;font:inherit}
@media(max-width:900px){nav .wrap{gap:17px}.hero .wrap{gap:30px}.intro-grid{gap:30px}.content-layout{grid-template-columns:170px minmax(0,1fr);gap:30px}.affiliation{max-width:200px;text-align:right}}@media(max-width:650px){body{font-size:16px}.wrap{width:90%}.brandrow{padding:18px 0}.brand{font-size:22px}.affiliation{display:none}nav>.wrap{display:none}details.mobile{display:block;padding:10px 0}details.mobile .mobilelinks{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}details.mobile a{padding:10px 0}.hero .wrap{grid-template-columns:1fr;padding:36px 0;gap:26px}.hero h1{font-size:3.1rem}.hero p{font-size:17px}.portrait{max-height:330px;object-position:center 28%}.hero figure{margin:0}.intro-grid{grid-template-columns:1fr;padding:38px 0;gap:30px}.cards{grid-template-columns:1fr;gap:5px}.section{padding:32px 0}.sectionhead{display:block}.content-layout{grid-template-columns:1fr;padding-top:25px;gap:25px}.toc{position:static}.toc a{display:inline-block;margin-right:16px}.prose img.alignleft,.prose img.alignright{float:none;max-width:100%;margin:16px auto;display:block}.news-row{grid-template-columns:1fr;gap:3px}.download{padding:18px}.download h2{font-size:1.25rem}.book{grid-template-columns:85px 1fr;gap:20px}.book img{width:85px}footer .wrap{display:block}footer p{margin-top:15px}.pagehead{padding:28px 0}.prose td{padding:8px}h2{font-size:1.8rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Page-specific image banners, recovered from the Yale originals. */
.image-banner{background:#102b43;overflow:hidden;border-bottom:3px solid var(--accent)}.image-banner img{display:block;width:100%;max-width:1440px;margin:auto;height:clamp(180px,21vw,280px);object-fit:cover;object-position:center 45%}.banner-home img{object-position:center 50%}.banner-about-me img{object-position:center 30%}.banner-presentations img{object-position:center 42%}.banner-teaching img{object-position:center 50%}@media(max-width:650px){.image-banner img{height:170px}.banner-about-me img{object-position:center 30%}}

/* Titles and introductions share their image banner. */
.pagehead,.hero{position:relative;isolation:isolate;background:#102b43;color:#fff;overflow:hidden}.pagehead{min-height:300px;display:flex;align-items:center;padding:48px 0}.pagehead .wrap,.hero>.wrap{position:relative;z-index:1}.pagehead h1,.pagehead p,.pagehead .eyebrow{color:#fff}.pagehead p{max-width:780px}.pagehead .eyebrow,.hero .eyebrow{color:#f1d4ab}.pagehead .image-banner,.hero .image-banner{position:absolute;inset:0;z-index:-1;border:0}.pagehead .image-banner img,.hero .image-banner img{width:100%;height:100%;max-width:none;object-fit:cover}.image-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,19,32,.41),rgba(5,19,32,.285) 60%,rgba(5,19,32,.15))}.pagehead{border-bottom:3px solid var(--accent)}.hero .portrait-caption{color:#e0e8ee}@media(max-width:650px){.pagehead{min-height:260px;padding:34px 0}.image-banner::after{background:rgba(5,19,32,.335)}.hero .image-banner::after{background:rgba(5,19,32,.38)}}

/* Center page-title text around 30% of the banner height. */
.pagehead .wrap{transform:translateY(-60px)}
@media(max-width:650px){.pagehead .wrap{transform:translateY(-52px)}}

/* Restore the original stronger shading for lecture notes only. */
.banner-lecture-notes::after{background:linear-gradient(90deg,rgba(5,19,32,.82),rgba(5,19,32,.57) 60%,rgba(5,19,32,.3))}
@media(max-width:650px){.banner-lecture-notes::after{background:rgba(5,19,32,.67)}}

/* Preserve the full composition of the updated portrait. */
.hero .portrait{width:auto;height:auto;max-width:100%;max-height:440px;object-fit:contain;margin-inline:auto}

/* Compact homepage hero only when portrait and text sit side by side. */
@media(min-width:651px){.hero>.wrap{padding-top:20px;padding-bottom:20px}.hero figure{margin-top:0;margin-bottom:0}}

.hero .portrait{border:3pt solid #000}

/* Lift homepage text slightly in the side-by-side layout. */
@media(min-width:651px){.hero>.wrap>div:not(.image-banner){transform:translateY(-24px)}}

/* Crop the source artwork's black margins without changing hero height. */
.hero .banner-home img{transform:scale(1.1);transform-origin:center;object-fit:cover}

/* Department link remains in the navigation's upper-right corner. */
.masthead nav{position:relative}.masthead nav>.wrap{padding-right:130px;gap:clamp(10px,1.6vw,27px)}nav .yale-link{position:absolute;top:0;right:3%;white-space:nowrap;font-weight:600;color:var(--blue)}details.mobile summary{padding-right:145px}@media(max-width:650px){nav .yale-link{padding:10px 0;right:5%}}

/* Teaching: consistent typography and softly colored course cards. */
.prose.teaching h3{font-family:Georgia,"Times New Roman",serif;font-size:1.5rem;font-weight:600;line-height:1.3;color:var(--navy)}.prose.teaching h3 strong,.prose.teaching h3 a{font-family:inherit;font-size:inherit;font-weight:inherit}.prose.teaching h3 br{display:none}.prose.teaching>hr{display:none}.prose.teaching>h2{font:600 13px/1.5 system-ui,sans-serif;letter-spacing:.12em;color:var(--blue);border:0;padding:0 0 14px;margin:0 0 22px;border-bottom:2px solid #c28b42}.prose.teaching>h2:not(:first-of-type){margin-top:48px}.prose.teaching>ul:first-of-type{list-style:none;padding:0;margin:0;display:grid;gap:24px}.prose.teaching>ul:first-of-type>li{--course-accent:#17597a;border:1px solid #dbe5eb;border-left:5px solid var(--course-accent);background:#f2f7fa;border-radius:0 10px 10px 0;padding:26px 30px}.prose.teaching>ul:first-of-type>li:nth-child(3n+2){--course-accent:#407c70;background:#f0f7f4;border-color:#d9e7e1;border-left-color:var(--course-accent)}.prose.teaching>ul:first-of-type>li:nth-child(3n){--course-accent:#b17b35;background:#fbf7ef;border-color:#ece2cf;border-left-color:var(--course-accent)}.prose.teaching>ul:first-of-type h3{margin:0 0 18px;color:var(--course-accent)}.prose.teaching>ul:first-of-type h3 a{color:inherit;text-decoration-thickness:1px}.prose.teaching>ul:first-of-type>li>p:first-of-type{font-size:14px;color:#4a606d;margin-bottom:20px}.prose.teaching>ul:first-of-type>li>p:first-of-type em{font-style:normal}.prose.teaching>ul:first-of-type>li>p:last-child{margin-bottom:0}.prose.teaching>h3{border-left:4px solid #c28b42;padding-left:16px;margin-bottom:16px}.prose.teaching>ul:not(:first-of-type){background:#f2f5f8;padding:18px 24px 18px 42px;border-radius:8px}.prose.teaching>ul:not(:first-of-type)>li{padding:5px 0}.content-layout:has(.teaching) .toc{background:#f2f5f8;padding:20px;border-top:3px solid #17597a}@media(max-width:650px){.prose.teaching>ul:first-of-type>li{padding:22px 20px}.prose.teaching h3{font-size:1.35rem}.content-layout:has(.teaching) .toc{padding:16px}}

/* Lecture notes: coordinate download cards with the Teaching page. */
.download-list{gap:20px}.download{--download-accent:#17597a;background:#f2f7fa;border:1px solid #dbe5eb;border-left:5px solid var(--download-accent);border-radius:0 10px 10px 0;padding:26px 28px}.download:nth-child(3n+2){--download-accent:#407c70;background:#f0f7f4;border-color:#d9e7e1;border-left-color:var(--download-accent)}.download:nth-child(3n){--download-accent:#b17b35;background:#fbf7ef;border-color:#ece2cf;border-left-color:var(--download-accent)}.download h2{font-weight:600;color:var(--download-accent);line-height:1.3}.download p{color:#4a606d}.download .pdf{background:white;color:var(--download-accent);border-color:var(--download-accent);border-radius:5px;padding:6px 12px;font-weight:650;white-space:nowrap}.download:hover{background:#e8f0f4;border-color:var(--download-accent)}.content-layout:has(.download-list) .toc{background:#f2f5f8;padding:20px;border-top:3px solid #17597a}@media(max-width:650px){.download{padding:22px 18px;gap:14px}.download .pdf{padding:5px 8px}.content-layout:has(.download-list) .toc{padding:16px}}@media(max-width:380px){.download{grid-template-columns:1fr}.download .pdf{justify-self:start}}

/* Presentation archive: the same blue, green and gold palette as courses. */
.talk-year{--year-accent:#17597a;background:#f2f7fa;border:1px solid #dbe5eb;border-left:5px solid var(--year-accent);border-radius:0 10px 10px 0;padding:26px 30px;margin:24px 0}.talk-year:nth-of-type(3n+2){--year-accent:#407c70;background:#f0f7f4;border-color:#d9e7e1;border-left-color:var(--year-accent)}.talk-year:nth-of-type(3n){--year-accent:#b17b35;background:#fbf7ef;border-color:#ece2cf;border-left-color:var(--year-accent)}.prose .talk-year h2{font-size:2rem;color:var(--year-accent);border:0;margin:0 0 20px;padding:0}.talk-year h2 strong{font-weight:600}.talk-year p{margin-bottom:0;line-height:1.85}.talk-year em{color:#4a606d}.talk-year a{color:#17597a;text-decoration-thickness:1px}.content-layout:has(.presentations) .toc{background:#f2f5f8;padding:20px;border-top:3px solid #17597a}.content-layout:has(.presentations) .toc a{font-weight:600}@media(max-width:650px){.talk-year{padding:22px 20px}.content-layout:has(.presentations) .toc{padding:16px}}
