:root{--ink:#202020;--muted:#6d625d;--paper:#edf4eb;--wash:#d6e6d3;--line:#d8ccba;--accent:#b84f70;--accent-soft:#d6e6d3;--max:1080px;--reading:790px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif}a,a:hover,a:focus,a:active{color:var(--accent);text-decoration:none}a:hover{color:#8f173c}img{max-width:100%}
.site-header{border-bottom:1px solid var(--line);background:#fff}.header-inner{width:min(var(--max),calc(100% - 40px));margin:auto;min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px}.site-title{color:var(--ink);font:700 1.3rem Georgia,serif;text-decoration:none;white-space:nowrap}.site-description{color:var(--muted);font-size:.82rem;margin:.1rem 0 0}.site-nav{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}.site-nav a{color:var(--ink);font-size:.88rem;text-decoration:none}.site-nav a:hover,.site-nav a.active{color:var(--accent);font-weight:650}
main{min-height:calc(100vh - 170px)}.page-hero{background:var(--wash);border-bottom:1px solid var(--line);padding:44px 20px 38px}.page-hero-inner{width:min(var(--reading),100%);margin:auto}.kicker{color:var(--accent);font-size:.7rem;font-weight:750;letter-spacing:.13em;margin:0 0 .55rem;text-transform:uppercase}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:600;line-height:1.2}h1{font-size:clamp(2.3rem,5vw,4rem);letter-spacing:-.03em;margin:0}h2{font-size:1.65rem;margin:2.5rem 0 .8rem}h3{font-size:1.25rem;margin:1.9rem 0 .45rem}.content{width:min(var(--reading),calc(100% - 40px));margin:auto;padding:34px 0 70px}.content p{margin:.65rem 0 1rem}.content ul{padding-left:1.25rem}.content li{margin:.3rem 0}
.hero-home{background:#d6e6d3;padding:60px 20px}.hero-grid{width:min(var(--max),100%);margin:auto;display:grid;grid-template-columns:180px 1fr;gap:38px;align-items:center}.portrait{width:180px;height:205px;object-fit:cover;border-radius:3px}.hero-home h1{font-size:clamp(2.5rem,6vw,4.6rem)}.lead{font:1.2rem/1.4 Georgia,serif;color:var(--muted)}.quick-links{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.4rem}.quick-links a,.button{background:var(--accent);color:#fff;padding:.42rem .75rem;border-radius:3px;text-decoration:none;font-size:.86rem}.quick-links a:hover,.button:hover{background:#8f173c;color:#fff}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 2.5rem}.card{background:var(--wash);border:1px solid var(--line);border-radius:3px;padding:18px 20px}.card h3{margin:.05rem 0 .35rem}.note{background:var(--accent-soft);border-left:3px solid var(--accent);padding:13px 16px}.pub-section{margin-top:2.4rem}.pub-list{list-style:none;padding:0!important}.pub-list li{border-top:1px solid var(--line);margin:0;padding:.72rem 0}.pub-list li:last-child{border-bottom:1px solid var(--line)}.post-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.post-card{border:1px solid var(--line);padding:16px 18px;background:var(--wash)}.post-card h2{font:600 1.18rem/1.3 Georgia,serif;margin:0 0 .35rem}.post-card p{font-size:.92rem;color:var(--muted);margin:.25rem 0}.post-date{color:var(--accent);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.cv-table{width:100%;border-collapse:collapse;margin:1rem 0 2rem}.cv-table td{border-bottom:1px solid var(--line);padding:.5rem .35rem;vertical-align:top}.cv-table td:first-child{font-weight:700;width:140px;color:#48535d}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.footer-inner{width:min(var(--max),calc(100% - 40px));min-height:84px;margin:auto;display:flex;align-items:center;justify-content:space-between}.footer-inner p{margin:0}
@media(max-width:720px){.header-inner{display:block;padding:18px 0}.site-nav{margin-top:13px;gap:.8rem}.hero-grid{display:block}.portrait{margin-bottom:22px}.card-grid,.post-list{grid-template-columns:1fr}.content{padding-top:26px}.cv-table td{display:block;width:100%!important;padding:.3rem 0}.cv-table tr{display:block;padding:.4rem 0;border-bottom:1px solid var(--line)}.footer-inner{display:block;padding:25px 0}.footer-inner p+p{margin-top:.5rem}}
/* Publications: compact layout matching the original page. */
.publications-content{width:min(1600px,calc(100% - 40px));max-width:none;padding-top:32px}.publications-content>h1{font-size:2.35rem;margin:0 0 1.45rem}.publications-content .pub-section{margin-top:1.7rem;overflow-x:auto}.publications-content h2{font-size:1.35rem;margin:0 0 .35rem}.publications-content .pub-list{width:max-content;min-width:100%;list-style:disc;padding-left:1.25rem!important}.publications-content .pub-list li{display:list-item;white-space:nowrap;border:0;padding:.18rem 0;line-height:1.48;font-size:.93rem}.resource-links{white-space:nowrap;font-size:.78rem;margin-left:.35rem}.resource-links a{text-decoration:none}
.cv-content,.teaching-content,.contact-content{width:min(1600px,calc(100% - 40px));max-width:none;padding-top:32px}.cv-content>h1,.teaching-content>h1,.contact-content>h1{font-size:2.35rem;margin:0 0 1.45rem}.contact-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:18px;max-width:1100px}.contact-grid .card h2{font-size:1.35rem;margin:0 0 .55rem}.contact-grid address{font-style:normal}
.teaching-content .book-reference{width:fit-content;max-width:100%;padding:14px 18px;background:var(--wash);border:1px solid var(--line);border-radius:3px}
/* Dark masthead shared by every page. */
.site-header{position:sticky;top:0;z-index:1000;background:#000;border-bottom:0}.header-inner{width:min(1600px,calc(100% - 40px));min-height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}.header-inner>div{grid-column:1;grid-row:1}.site-title{color:#fff;font:700 1.05rem/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.015em}.site-title:hover{color:#fff}.site-description{display:none}.site-nav{grid-column:2;grid-row:1;justify-content:center;gap:1.05rem}.site-nav a{color:#f8eaf0;font-size:.82rem}.site-nav a:hover,.site-nav a.active{color:#fff;font-weight:700}
.footer-logos{display:flex;align-items:center;gap:22px}.footer-logos a{display:block}.footer-logos img{display:block;object-fit:contain}.footer-logos .logo-imj{width:110px;height:auto}.footer-logos .logo-cnrs{width:54px;height:54px}.footer-logos .logo-upc{width:132px;height:auto}.header-brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.header-logos{display:flex;align-items:center;gap:7px;background:#fff;border-radius:2px;padding:3px 6px}.header-logos a,.header-logos img{display:block}.header-logos img{object-fit:contain}.header-logos .logo-imj{width:58px;height:auto}.header-logos .logo-cnrs{width:22px;height:22px}.header-logos .logo-upc{width:68px;height:auto}
@media(max-width:720px){.header-inner{display:block;min-height:0;padding:12px 0}.header-brand{flex-wrap:wrap}.site-nav{margin-top:9px;justify-content:flex-start;gap:.6rem .8rem}.contact-grid{grid-template-columns:1fr}.footer-logos{margin-top:16px;gap:16px;flex-wrap:wrap}}
/* Pale green, high-key treatment for the portrait. */
.portrait-frame{position:relative;width:180px;height:205px;overflow:hidden;border-radius:3px;background:#d6e6d3}.portrait-frame::after{content:"";position:absolute;inset:0;background:#d6e6d3;mix-blend-mode:color;opacity:.8;pointer-events:none}.portrait-frame .portrait{display:block;width:180px;height:205px;margin:0;object-fit:cover;filter:grayscale(100%) brightness(1.48) contrast(.84)}
@media(max-width:720px){.portrait-frame{margin-bottom:22px}}
/* Local blog posts. */
.blog-article{width:min(900px,calc(100% - 40px));margin:auto;padding:32px 0 70px}.blog-article>.post-date{margin:0 0 .45rem}.blog-article>h1{font-size:2.35rem;margin:0 0 1.6rem}.blog-body{font-size:1rem}.blog-body h2{font-size:1.5rem;margin:2rem 0 .7rem}.blog-body h3{font-size:1.25rem}.blog-body p{margin:.65rem 0 1rem}.blog-body figure{margin:1.6rem 0}.blog-body img{display:block;max-width:100%;height:auto;margin:auto}.blog-body figcaption{margin-top:.45rem;color:var(--muted);font-size:.84rem;text-align:center}.blog-back{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line)}
/* Two most recent posts shown on the home page. */
.latest-posts-section{margin-top:3rem}.latest-posts-section>h2{margin-bottom:.5rem}.latest-post{padding:1.5rem 0 1rem;border-top:1px solid var(--line)}.latest-post>.post-date{margin:0 0 .3rem}.latest-post>h3{margin:.15rem 0 1rem;font-size:1.5rem}.latest-post>h3 a{color:#761a37;text-decoration:none}.latest-post>h3 a:hover{color:var(--accent)}.latest-post-body figure{margin:1.4rem 0}.latest-post-body img{display:block;width:100%;height:auto}.latest-post-body figcaption{margin-top:.4rem;color:var(--muted);font-size:.84rem;text-align:center}.latest-post-body p{margin:.65rem 0 1rem}
/* More compact home masthead. */
.hero-home{padding:24px 20px}.hero-grid{grid-template-columns:100px 1fr;gap:20px}.portrait-frame,.portrait-frame .portrait{width:100px;height:114px}.hero-home .kicker{font-size:.62rem;margin-bottom:.35rem}.hero-home h1{color:#761a37;font-size:clamp(1.2rem,2vw,1.8rem)}.hero-home .lead{font-size:.85rem;margin:.4rem 0}
.hero-home h1,#research-interests-title,#recent-post-links-title{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
/* Home page: posts in the main column, research interests on the right. */
.home-content{width:min(1200px,calc(100% - 40px));margin:auto;padding:34px 0 70px}.home-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:58px;align-items:start}.home-content .latest-posts-section{margin-top:0}.home-sidebar{margin-top:0}.research-interests,.recent-post-links{padding:20px 22px;background:#d6e6d3}.research-interests h2,.recent-post-links h2{font-size:1.35rem;margin:0 0 .8rem}.research-interests ul{margin:0;padding-left:1.15rem}.research-interests li{margin:.35rem 0}.recent-post-links{margin-top:24px}.recent-post-links ol{margin:0;padding-left:1.4rem}.recent-post-links li{margin:0 0 .65rem;padding-left:.15rem;line-height:1.35}.recent-post-links a{color:#761a37;text-decoration:none}.recent-post-links a:hover{color:var(--accent)}.all-posts-link{margin:1rem 0 0;font-size:.9rem;font-weight:650}
.selected-papers,.editorial-boards{width:790px;max-width:100%;margin:0 0 2.5rem}.selected-papers h2,.editorial-boards h2{margin:0 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.selected-papers .pub-list,.editorial-boards .pub-list{width:100%;list-style:disc;padding-left:1.25rem!important}.selected-papers .pub-list li,.editorial-boards .pub-list li{display:list-item;white-space:normal;border:0;margin:0;padding:.3rem 0;line-height:1.48;font-size:.93rem}
.editorial-boards .former-boards-title{margin:1rem 0 .2rem;color:#929292;font:italic 400 .95rem/1.3 system-ui,-apple-system,"Segoe UI",sans-serif}
@media(max-width:850px){.home-content-grid{grid-template-columns:1fr;gap:20px}.home-sidebar{margin-top:0;grid-row:1}.home-main{grid-row:2}}
/* Exact monochrome treatments for the institutional logos in the black header. */
.header-logos{margin-left:3ch;background:transparent;padding:0}.header-logos a:first-child{width:27px;height:27px;overflow:hidden}.header-logos .logo-imj{width:120px;max-width:none;filter:brightness(0) invert(1);transform:translate(-47px,-3px)}.header-logos .logo-cnrs{filter:grayscale(1) invert(1) contrast(3)}.header-logos a:last-child{width:22px;height:29px;overflow:hidden}.header-logos .logo-upc{width:75px;max-width:none;filter:brightness(0) invert(1);transform:translateX(-5px)}
/* Sticky secondary mastheads and home sidebar on desktop layouts. */
@media(min-width:721px){.hero-home,.page-hero{position:sticky;top:48px;z-index:900}}
@media(min-width:851px){.home-sidebar{position:sticky;top:230px}}
