:root{--ink:#122439;--muted:#526276;--accent:#075eab;--line:#dce3eb;--paper:#fff;--wash:#f3f6fa}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:var(--accent);text-underline-offset:4px}a:hover{color:#003968}a:focus-visible,summary:focus-visible{outline:3px solid #e7a72c;outline-offset:5px}.skip{position:absolute;left:1rem;top:-100px;background:#fff;padding:1rem;z-index:20}.skip:focus{top:0}.wrap{max-width:1160px;margin:auto;padding:0 32px}header{border-bottom:1px solid var(--line)}.mast{padding-top:23px;padding-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{color:var(--ink);text-decoration:none;font-size:20px;font-weight:750;letter-spacing:-.5px}.affiliation{font-size:14px;color:var(--muted)}nav{display:flex;flex-wrap:wrap;gap:4px 25px;padding-bottom:14px}nav a{font-size:15px;color:var(--muted);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}nav a[aria-current=page]{color:var(--accent);border-color:var(--accent);font-weight:650}main{min-height:70vh}.hero{padding:62px 0 50px;display:grid;grid-template-columns:1fr 220px;gap:60px;align-items:center}.eyebrow{font-size:13px;letter-spacing:1.7px;text-transform:uppercase;color:var(--accent);font-weight:750;margin:0 0 13px}h1,h2,h3{line-height:1.2}h1{font-size:clamp(36px,5vw,58px);letter-spacing:-2px;margin:0 0 22px;font-weight:650}h2{font-size:29px;letter-spacing:-.7px;margin:0 0 24px}h3{font-size:21px;letter-spacing:-.3px;margin:0 0 12px}p{margin:0 0 18px}.lead{font-size:20px;line-height:1.6;max-width:760px;color:var(--muted)}.portrait{width:210px;height:250px;object-fit:cover;object-position:center;border-radius:3px;background:var(--wash)}.links{display:flex;flex-wrap:wrap;gap:12px 25px;margin-top:25px}.links a{font-size:15px;font-weight:650}.section{padding:40px 0;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.section-head>a{font-size:15px;white-space:nowrap}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{border:1px solid var(--line);border-top:3px solid var(--accent);padding:25px;background:var(--paper)}.card p{color:var(--muted);font-size:16px}.meta{color:var(--muted);font-size:14px}.tag{font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--accent);font-weight:700;display:block;margin-bottom:12px}.news-row{display:grid;grid-template-columns:140px 1fr;gap:25px;padding:20px 0;border-bottom:1px solid var(--line)}.news-row time{font-size:14px;color:var(--muted)}.news-row p{margin:0}.page-head{padding:50px 0 32px;max-width:830px}.page-head h1{font-size:46px}.publication{padding:23px 0;border-bottom:1px solid var(--line);max-width:900px}.publication h3{font-size:20px;line-height:1.4}.publication p{margin:8px 0}.pub-links{display:flex;gap:22px;font-size:14px}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:50px}.stack article{padding:22px 0;border-bottom:1px solid var(--line)}.stack article p:last-child{margin:0}.list-clean{padding-left:20px}.list-clean li{margin:10px 0}details{border-bottom:1px solid var(--line);padding:19px 0}summary{cursor:pointer;font-size:20px;font-weight:650}details>div{padding-top:20px}.note{padding:18px 22px;background:var(--wash);border-left:3px solid var(--accent);font-size:15px}.course{display:grid;grid-template-columns:1fr 160px;gap:24px;border-bottom:1px solid var(--line);padding:22px 0}.course h3{font-size:19px}.course p{margin:0}.course .meta{text-align:right}.soft{background:var(--wash)}footer{margin-top:55px;padding:30px 0;background:var(--ink);color:#d4dfeb;font-size:14px}footer a{color:#fff}.footer-inner{display:flex;justify-content:space-between;gap:25px}.archive-label{margin-top:35px;color:var(--muted)}@media(max-width:760px){.wrap{padding:0 21px}.mast{align-items:flex-start;flex-direction:column;gap:2px;padding-top:18px}.hero{padding-top:35px;grid-template-columns:1fr;gap:22px}.hero .portrait{width:120px;height:145px;grid-row:1}.grid,.two-col{grid-template-columns:1fr}.hero h1{letter-spacing:-1.2px}.page-head h1{font-size:37px}.section-head{align-items:flex-start}.news-row{grid-template-columns:1fr;gap:5px}.course{grid-template-columns:1fr;gap:8px}.course .meta{text-align:left}.footer-inner{flex-direction:column}nav{gap:2px 18px}h2{font-size:26px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{nav,.skip,footer{display:none}body{font-size:11pt}.hero{padding:20px 0}a{color:inherit}.card{break-inside:avoid}}

/* Readability and content hierarchy review, September 2026. */
.hero{padding:36px 0 32px;gap:42px;grid-template-columns:minmax(0,1fr) 195px}
.hero h1{font-size:clamp(32px,3.6vw,46px);letter-spacing:-1.25px;line-height:1.13;margin-bottom:18px}
.hero .lead{font-size:19px;max-width:735px}.hero-affiliation{font-size:15px;color:var(--muted)}
.portrait{width:190px;height:210px;object-fit:cover}.hero .links{margin-top:18px}
.page-head{padding:36px 0 25px}.page-head h1{font-size:clamp(32px,4vw,42px);letter-spacing:-1px}
.section{padding:32px 0}.section-head{flex-wrap:wrap;gap:8px 20px}.section-head h2{margin-bottom:20px}
.main-nav a{min-height:44px;display:inline-flex;align-items:center}.main-nav{gap:0 24px;padding-bottom:6px}
.tag{font-size:14px;letter-spacing:.45px;line-height:1.45}.role-label{display:block;font-size:14px;color:var(--muted);font-weight:600;margin:-4px 0 14px}
.card{padding:22px}.card h3{font-size:23px}.card p{line-height:1.6}.card .meta{font-size:14px}
.highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.highlights article{padding:4px 0 4px 18px;border-left:3px solid var(--line)}.highlights h3{font-size:19px;line-height:1.3}
.highlights p{font-size:16px;color:var(--muted)}.highlights a{font-size:15px;font-weight:650}.highlights .recognition{border-color:#9a6200}.recognition .tag{color:#805000}
.pub-meta{display:block;font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:10px}
.award-label,.status-label{display:inline-block;background:#eef4fb;color:#174f85;font-size:14px;line-height:1.5;padding:4px 9px;margin-bottom:12px}
.award-label{background:#fff4dd;color:#704700}.publication h3{font-size:20px;line-height:1.45}.publication{padding:21px 0}
.page-nav{display:flex;flex-wrap:wrap;gap:4px 20px;padding:12px 0 18px;align-items:center}
.page-nav span{font-size:14px;color:var(--muted)}.page-nav a{font-size:15px;min-height:40px;display:inline-flex;align-items:center}
.page-nav a:hover,.page-nav a:focus{border-bottom-color:var(--accent)}
.news-row{padding:17px 0;gap:22px}.news-row .tag{margin-bottom:6px}.news-row p{line-height:1.65}
section[id],article[id]{scroll-margin-top:24px}main:focus{outline:none}
.summary,summary{min-height:44px}details{padding:14px 0}summary{font-size:18px;padding:6px 0}
p,a,h1,h2,h3,li{overflow-wrap:break-word}.grid>*,.two-col>*,.hero>*,.highlights>*{min-width:0}
@media(max-width:850px){.highlights{grid-template-columns:1fr;gap:20px}.grid{gap:14px}.card{padding:17px}}
@media(max-width:760px){.hero{grid-template-columns:1fr 110px;gap:20px;padding-top:28px}.hero .portrait{width:110px;height:125px;grid-row:auto;align-self:start}.hero h1{font-size:32px}.hero .lead{font-size:18px}.grid,.two-col{grid-template-columns:1fr}.main-nav{gap:0 18px}.main-nav a{font-size:15px}.page-head{padding-top:28px}.section{padding:27px 0}.section-head>a{white-space:normal}.news-row{grid-template-columns:1fr;gap:5px}.card .tag{font-size:14px}.course{gap:8px}.portrait{width:150px;height:165px}.footer-inner a{overflow-wrap:anywhere}}
@media(max-width:450px){.hero{grid-template-columns:1fr}.hero .portrait{grid-row:1;width:95px;height:105px}.wrap{padding-left:18px;padding-right:18px}.hero h1{font-size:32px}.main-nav{gap:0 16px}.main-nav a{font-size:14px}.page-nav{gap:0 16px}.section-head h2{margin-bottom:14px}h2{font-size:25px}}

/* Consistent project alignment and compact academic activity headings. */
.card>.tag{min-height:2.9em}.pub-links{flex-wrap:wrap}.news-row h3{font-size:18px;line-height:1.4;margin:0 0 8px}.contribution{color:var(--muted);font-size:16px}.highlights [lang=fr]{font-size:15px;line-height:1.5} @media(max-width:760px){.card>.tag{min-height:0}}


/* Approved academic preview: light appearance, September 2026. */
:root{color-scheme:light;--ink:#182b40;--muted:#516173;--accent:#15558b;--line:#dce3e9;--paper:#fff;--wash:#f3f6f9}
body{font-size:16px;background:#fff;color:var(--ink)}
.wrap{max-width:1120px}.brand{font:600 25px/1.3 Georgia,serif;letter-spacing:-.5px}
h1,h2{font-family:Georgia,serif;font-weight:500}.hero h1{font-size:clamp(32px,4vw,44px);line-height:1.16;letter-spacing:-1px}.hero h1 br{display:none}
h2{font-size:28px;letter-spacing:-.4px}.hero .lead{font-size:18px}.eyebrow{color:var(--muted);font-size:14px;font-weight:500;letter-spacing:1px}
.hero-affiliation strong{display:inline-block;margin-top:10px;border-left:3px solid var(--accent);padding-left:12px;color:var(--ink)}
.hero{padding:38px 0 32px}.hero .links a{font-size:14px;font-weight:500}.main-nav a{font-size:14px}.main-nav{gap:0 22px}
.section{padding:27px 0}.section-head h2{margin-bottom:18px}.section-head>a{font-size:14px}
.grid{gap:18px}.card{background:var(--wash);border:1px solid var(--line);border-radius:4px;padding:22px;display:flex;flex-direction:column}
.card h3{font:500 25px/1.3 Georgia,serif}.card h3 a{text-decoration:none}.card h3 a:hover{text-decoration:underline}.card p{flex:1;color:var(--ink);font-size:16px}.card .tag{font-size:14px;text-transform:none;letter-spacing:0;color:var(--muted)}.card .role-label{color:var(--accent);font-size:14px}
.publication{max-width:none;padding:20px 0}.publication h3{font-size:18px}.publication h3 a{text-decoration:none}.publication h3 a:hover{text-decoration:underline}.publication .meta strong{color:var(--ink)}
.pub-links{gap:8px 12px;margin-top:12px}.pub-links a{display:inline-flex;align-items:center;min-height:40px;padding:4px 13px;border:1px solid var(--line);border-radius:3px;text-decoration:none}.pub-links a:hover{background:var(--wash);border-color:var(--accent)}
.highlights article{border-left:0;border-top:2px solid var(--line);padding:15px 0 0}.highlights .recognition{border-color:var(--line)}.recognition .tag{color:var(--muted)}.highlights .tag{font-size:14px;text-transform:none;letter-spacing:0}.highlights h3{font-size:18px}.highlights p{font-size:16px}.highlights a{font-size:14px}
#news .news-row{padding:12px 0;font-size:16px}.news-row time{font-size:14px}
footer{background:var(--wash);color:var(--muted);border-top:1px solid var(--line);margin-top:28px}footer a{color:var(--accent)}footer strong{color:var(--ink)}
@media(max-width:850px){.grid{grid-template-columns:1fr}.card>.tag{min-height:0}.highlights{gap:20px}}
@media(max-width:760px){.hero h1{font-size:32px}.hero .lead{font-size:17px}.main-nav{gap:0 18px}.section{padding:24px 0}.card{padding:20px}h2{font-size:26px}}
@media print{body{font-size:11pt}.card{background:white}.pub-links a{border:none;padding:0}}
