:root{
  --paper:#f8f7f3;
  --surface:#fffefb;
  --ink:#1e2942;
  --muted:#667085;
  --line:#e3e1dc;
  --navy:#121b38;
  --navy-2:#1b2850;
  --teal:#087f78;
  --teal-soft:#e5f3f0;
  --warm:#f3eadb;
  --radius:18px;
  --shadow:0 24px 60px rgba(18,27,56,.11);
  --gold:#b5853f;
  --gold-soft:#f7eedf;
  --rose:#9e5d63;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:85px}
body{margin:0;font-family:"Manrope",system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit}
::selection{background:#d5e7e4}

.site-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(22px,5vw,72px);background:rgba(248,247,243,.90);backdrop-filter:blur(18px);border-bottom:1px solid rgba(20,32,43,.08)}
.brand{display:flex;align-items:center;gap:11px;font-weight:700}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--navy);color:white;font-family:"Newsreader",Georgia,serif;font-size:16px;letter-spacing:.02em}
.brand-name{font-family:"Newsreader",Georgia,serif;font-size:19px}
.site-header nav{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#4e586f}
.site-header nav a{padding:8px 10px;border-radius:9px;transition:.18s ease}
.site-header nav a:hover{background:#f0eee8;color:var(--navy)}
.site-header nav .nav-cta{margin-left:4px;background:var(--navy);color:white;padding:8px 13px}
.site-header nav .nav-cta:hover{background:var(--navy-2);color:white}
.menu-btn{display:none;border:0;background:transparent;font-size:23px;color:var(--navy);cursor:pointer}

.section{max-width:1380px;margin:auto;padding:96px clamp(24px,6.4vw,96px)}
.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.58fr);gap:clamp(55px,7vw,105px);align-items:center;min-height:680px;padding-top:78px;padding-bottom:72px}
.eyebrow,.section-kicker{margin:0 0 14px;color:var(--teal);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
h1,h2{font-family:"Newsreader",Georgia,serif;color:var(--navy);margin:0;letter-spacing:-.035em}
h1{font-size:clamp(55px,6.3vw,92px);line-height:.98}
h2{font-size:clamp(36px,4vw,56px);line-height:1.08}
h3{color:var(--navy)}
.hero-role{max-width:840px;margin:22px 0 0;font-family:"Newsreader",Georgia,serif;font-size:clamp(22px,2.1vw,31px);line-height:1.35;color:#35405b}
.hero-role em{font-style:normal;color:var(--teal)}
.hero-text{max-width:760px;margin:19px 0 0;color:var(--muted);font-size:17px;line-height:1.78}
.hero-actions,.contact-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:29px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 17px;border-radius:10px;border:1px solid transparent;font-size:13px;font-weight:700;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--navy);color:#fff;box-shadow:0 8px 22px rgba(12,27,42,.13)}
.btn.primary:hover{background:var(--navy-2)}
.btn.secondary{background:transparent;border-color:#bec6ca;color:var(--navy)}
.quick-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:22px;font-size:13px;font-weight:600;color:#697287}
.quick-links a:hover{color:var(--teal)}
.quick-links span{font-size:12px}
.hero-aside{position:relative;justify-self:end;width:min(100%,400px)}
.portrait-frame{padding:9px;background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}
.portrait-frame img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 42%;border-radius:19px;filter:saturate(.94) contrast(1.01)}
.affiliation-card{position:absolute;left:-38px;right:26px;bottom:-27px;display:flex;gap:12px;align-items:flex-start;padding:15px 17px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 38px rgba(18,27,56,.14)}
.affiliation-card span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.affiliation-card strong{display:block;margin-top:2px;color:var(--navy);font-size:12px;line-height:1.4}
.status-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--teal);flex:0 0 auto;box-shadow:0 0 0 4px var(--teal-soft)}

.focus-bar{max-width:1240px;margin:0 auto 18px;display:grid;grid-template-columns:auto repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;box-shadow:0 8px 22px rgba(15,30,42,.04)}
.focus-bar>*{padding:17px 20px;border-right:1px solid var(--line)}
.focus-bar>*:last-child{border-right:0}
.focus-label{display:flex;align-items:center;background:var(--navy);color:white;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.focus-bar div{display:flex;flex-direction:column}
.focus-bar strong{font-size:13px;color:var(--navy)}
.focus-bar small{margin-top:2px;color:var(--muted);font-size:11px}

.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(55px,7vw,110px)}
.section-intro h2{max-width:530px}
.prose{max-width:790px;color:#4f596f;font-size:16px}
.prose p{margin:0 0 18px}
.prose .lead{font-family:"Newsreader",Georgia,serif;color:#33405d;font-size:20px;line-height:1.62}
.about-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px;padding-top:25px;border-top:1px solid var(--line)}
.about-meta span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em}
.about-meta strong{display:block;margin-top:6px;color:var(--navy);font-size:13px;line-height:1.45}

.research-section{padding-top:82px}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:37px}
.section-summary{max-width:480px;margin:0;color:var(--muted);font-size:15px}
.research-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.research-card{min-height:310px;display:flex;flex-direction:column;padding:25px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:.2s ease}
.research-card:hover{transform:translateY(-4px);border-color:#c5d5d3;box-shadow:0 18px 42px rgba(18,27,56,.08)}
.card-index{font-family:"Newsreader",Georgia,serif;color:var(--teal);font-size:24px}
.research-card h3{margin:34px 0 9px;font-family:"Newsreader",Georgia,serif;font-size:22px;line-height:1.25}
.research-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.micro-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:24px}
.micro-tags span{padding:5px 8px;border-radius:6px;background:#eef5f3;color:#53666c;font-size:10px;font-weight:600}

.projects-section{max-width:none;background:var(--navy);color:white}
.projects-section>.section-heading-row,.projects-section>.project-grid{max-width:1188px;margin-left:auto;margin-right:auto}
.light-heading h2{color:#fff;max-width:730px}
.light-heading .section-kicker{color:#69b7b0}
.light-heading .section-summary{color:#aebbc5}
.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.project-card{min-height:300px;display:flex;flex-direction:column;padding:28px;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:#182344;transition:.2s ease}
.project-card:hover{transform:translateY(-3px);border-color:rgba(109,190,182,.45);background:#1d2b50}
.project-card.featured{background:linear-gradient(145deg,#1b3157,#12655f)}
.project-topline{display:flex;justify-content:space-between;gap:15px;color:#9fc8c3;font-size:10px;font-weight:700;letter-spacing:.08em}
.project-card h3{margin:28px 0 9px;color:white;font-family:"Newsreader",Georgia,serif;font-size:31px;line-height:1.18}
.project-card p{margin:0;color:#c5ccda;font-size:14px;line-height:1.7}
.project-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:24px}
.project-tags span{padding:6px 9px;border:1px solid rgba(255,255,255,.14);border-radius:7px;color:#d7e0e4;font-size:10px;font-weight:600}

.publications-section{padding-bottom:83px}
.text-link{color:var(--teal);font-size:13px;font-weight:700;white-space:nowrap}
.text-link:hover{text-decoration:underline;text-underline-offset:3px}
.pub-list{border-top:1px solid var(--line)}
.pub{display:grid;grid-template-columns:76px minmax(0,1fr) 120px;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start}
.pub-year{font-family:"Newsreader",Georgia,serif;color:var(--teal);font-size:20px;font-weight:700}
.pub h3{margin:0 0 7px;font-family:"Newsreader",Georgia,serif;font-size:20px;line-height:1.36}
.pub .authors{color:#596671;font-size:12.5px;line-height:1.55}
.pub .venue{display:inline-flex;margin-top:8px;padding:4px 7px;border-radius:6px;background:var(--warm);color:#4d5a62;font-size:10px;font-weight:700;letter-spacing:.03em}
.pub-links{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.pub-links a{padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:#45525d;font-size:10px;font-weight:700}
.pub-links a:hover{border-color:#9fb7b4;color:var(--teal)}
.pub-links a[href="#"]{opacity:.42;pointer-events:none}

.teaching-section{max-width:none;background:#f2f0ea}
.teaching-section>.section-heading-row,.teaching-section>.teaching-grid{max-width:1188px;margin-left:auto;margin-right:auto}
.teaching-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.course-card{padding:27px;border-radius:16px;background:var(--surface);border:1px solid #e2dfd6}
.course-card span,.panel-label{color:var(--teal);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.course-card h3{margin:19px 0 8px;font-family:"Newsreader",Georgia,serif;font-size:23px}
.course-card p{margin:0;color:var(--muted);font-size:13.5px}

.people-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:15px}
.people-panel,.collab-panel{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:28px}
.people-list{list-style:none;margin:16px 0 0;padding:0}
.people-list li{padding:14px 0;border-bottom:1px solid var(--line)}
.people-list li:last-child{border-bottom:0;padding-bottom:0}
.people-list strong{display:block;color:var(--navy);font-family:"Newsreader",Georgia,serif;font-size:17px}
.people-list span{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.collab-panel{background:var(--teal-soft)}
.collab-panel h3{margin:22px 0 8px;font-family:"Newsreader",Georgia,serif;font-size:29px}
.collab-panel p:not(.panel-label){max-width:520px;color:#526967;font-size:14px}
.inline-arrow{display:inline-block;margin-top:16px;color:var(--teal);font-size:12px;font-weight:700}

.news-section{padding-top:76px}
.timeline{margin-top:10px;border-top:1px solid var(--line)}
.timeline article{display:grid;grid-template-columns:70px 12px minmax(0,1fr);gap:22px;padding:23px 0;border-bottom:1px solid var(--line);align-items:start}
.timeline time{font-family:"Newsreader",Georgia,serif;color:var(--teal);font-size:17px;font-weight:700}
.timeline-dot{width:8px;height:8px;margin-top:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px var(--teal-soft)}
.timeline h3{margin:0 0 4px;font-family:"Newsreader",Georgia,serif;font-size:18px}
.timeline p{margin:0;color:var(--muted);font-size:13px}

.contact-section{padding-top:65px;padding-bottom:65px}
.contact-card{padding:52px clamp(28px,5vw,68px);border-radius:24px;background:linear-gradient(135deg,#121b38 0%,#173256 48%,#0d625c 100%);color:white;text-align:center;box-shadow:var(--shadow)}
.contact-card h2{max-width:760px;margin:auto;color:white}
.contact-card>p:not(.section-kicker){max-width:650px;margin:17px auto 0;color:#d1d6df;font-size:15px}
.contact-actions{justify-content:center}
.btn.light{background:white;color:var(--navy)}
.btn.outline-light{border-color:rgba(255,255,255,.28);color:white}
.contact-card .section-kicker{color:#8dd9d1}

footer{max-width:1240px;margin:auto;display:flex;justify-content:space-between;gap:20px;padding:27px 24px 34px;border-top:1px solid var(--line);color:#7a848b;font-size:11px}

@media(max-width:1050px){
  .site-header nav{display:none;position:absolute;top:68px;left:18px;right:18px;padding:12px;flex-direction:column;align-items:stretch;background:white;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
  .site-header nav.open{display:flex}.menu-btn{display:block}.site-header nav .nav-cta{margin-left:0}
  .hero{grid-template-columns:1fr .55fr;gap:50px}.research-grid{grid-template-columns:repeat(2,1fr)}
  .focus-bar{margin-left:22px;margin-right:22px;grid-template-columns:repeat(2,1fr)}.focus-label{grid-column:1/-1}.focus-bar>*{border-bottom:1px solid var(--line)}
  .about-grid{grid-template-columns:1fr;gap:40px}.about-meta{max-width:760px}.teaching-grid{grid-template-columns:1fr}.course-card{min-height:auto}
}
@media(max-width:760px){
  .section{padding:72px 22px}.brand-name{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:55px;gap:45px}.hero-copy{order:1}.hero-aside{order:2;justify-self:start;width:min(88vw,380px)}.affiliation-card{left:14px;right:-14px}.portrait-frame img{aspect-ratio:1/1.17}
  .focus-bar{grid-template-columns:1fr}.focus-label{grid-column:auto}.focus-bar>*{border-right:0}
  .section-heading-row{align-items:flex-start;flex-direction:column;gap:16px}.section-summary{max-width:650px}
  .research-grid,.project-grid,.people-grid{grid-template-columns:1fr}.project-card{min-height:275px}.about-meta{grid-template-columns:1fr}.about-meta div{padding-bottom:11px;border-bottom:1px solid var(--line)}
  .pub{grid-template-columns:58px minmax(0,1fr)}.pub-links{grid-column:2;justify-content:flex-start}.timeline article{grid-template-columns:55px 10px 1fr;gap:13px}
  footer{flex-direction:column}
}
@media(max-width:480px){
  h1{font-size:50px}.hero-role{font-size:22px}.quick-links{gap:13px}.hero-aside{width:100%}.affiliation-card{position:static;margin-top:10px}.pub{grid-template-columns:1fr;gap:7px}.pub-links{grid-column:1}.contact-card{padding:38px 20px}.btn{width:100%}
}


/* Refined visual system */
body{
  background:
    radial-gradient(circle at 8% 6%, rgba(8,127,120,.055), transparent 26rem),
    radial-gradient(circle at 92% 11%, rgba(181,133,63,.05), transparent 24rem),
    var(--paper);
}
.site-header{box-shadow:0 1px 0 rgba(18,27,56,.02)}
.brand-mark{background:linear-gradient(145deg,var(--navy),#243564);box-shadow:0 8px 18px rgba(18,27,56,.14)}
.brand-name{font-weight:600;letter-spacing:-.02em}
.eyebrow,.section-kicker{color:var(--teal);font-weight:700;letter-spacing:.18em}
h1{font-weight:600;letter-spacing:-.055em}
h2{font-weight:600}
.hero-role{font-weight:500}
.hero-role em{position:relative;font-weight:600}
.hero-role em::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:5px;border-radius:999px;background:rgba(181,133,63,.18);z-index:-1}
.btn{border-radius:999px;padding:11px 19px}
.btn.primary{background:linear-gradient(135deg,var(--navy),#263866);box-shadow:0 9px 24px rgba(18,27,56,.18)}
.btn.secondary{background:rgba(255,255,255,.55);border-color:#d8d4ca}
.btn.secondary:hover{background:var(--surface);border-color:#bbb6aa}
.portrait-frame{background:linear-gradient(145deg,#fffefb,#f1eee5);border-color:#ded9ce}
.portrait-frame::before{content:"";position:absolute;inset:-18px 35% 56% -20px;border-radius:999px;background:rgba(8,127,120,.09);filter:blur(2px);z-index:-1}
.hero-aside{isolation:isolate}
.affiliation-card{background:rgba(255,254,251,.96);border-color:#ded9ce}
.focus-bar{border-color:#e0ddd4;box-shadow:0 12px 34px rgba(18,27,56,.055)}
.focus-label{background:linear-gradient(145deg,var(--navy),#253763)}
.focus-bar strong{letter-spacing:-.01em}
.research-card,.people-panel,.collab-panel,.course-card{box-shadow:0 8px 26px rgba(18,27,56,.035)}
.research-card{position:relative;overflow:hidden}
.research-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,var(--teal),rgba(181,133,63,.7));opacity:.72}
.card-index{color:var(--gold);font-weight:600}
.micro-tags span{background:var(--teal-soft);color:#356b67;border:1px solid rgba(8,127,120,.08)}
.projects-section{background:
  radial-gradient(circle at 10% 0%,rgba(8,127,120,.16),transparent 28rem),
  radial-gradient(circle at 92% 100%,rgba(181,133,63,.10),transparent 30rem),
  var(--navy)}
.project-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.project-tags span{background:rgba(255,255,255,.035)}
.pub{transition:background .18s ease,padding-left .18s ease,padding-right .18s ease}
.pub:hover{background:rgba(255,255,255,.52);padding-left:12px;padding-right:12px}
.pub-year{color:var(--gold)}
.pub .venue{background:var(--gold-soft);color:#785b2f}
.pub-links a{background:rgba(255,255,255,.72)}
.course-card{position:relative;overflow:hidden}
.course-card::after{content:"";position:absolute;right:-30px;bottom:-38px;width:110px;height:110px;border-radius:50%;background:rgba(8,127,120,.055)}
.collab-panel{background:linear-gradient(145deg,var(--teal-soft),#f6f0e6)}
.timeline time{color:var(--gold)}
.contact-card{position:relative;overflow:hidden}
.contact-card::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-95px;top:-115px;background:rgba(255,255,255,.055)}
.contact-card::after{content:"";position:absolute;width:210px;height:210px;border-radius:50%;left:-90px;bottom:-120px;background:rgba(181,133,63,.12)}
.contact-card>*{position:relative;z-index:1}
@media(max-width:760px){.pub:hover{padding-left:0;padding-right:0;background:transparent}}

/* ================================
   Research programs — interactive
   ================================ */
.research-programs-section{padding-top:108px;padding-bottom:112px}
.research-programs-section>.section-heading-row,
.research-programs-section>.research-program-grid{max-width:1180px;margin-left:auto;margin-right:auto}
.project-heading-copy{max-width:520px}
.explore-hint{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:8px 13px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.04);color:#cbd7e3;font-size:12px;font-weight:700;letter-spacing:.025em}
.research-program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:42px}
.research-program-card{--project-accent:#61c9c1;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 190px;min-height:350px;width:100%;padding:0;overflow:hidden;text-align:left;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.035));color:#fff;box-shadow:0 20px 50px rgba(0,0,0,.14);cursor:pointer;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}
.research-program-card::after{content:"";position:absolute;inset:auto -15% -48% 35%;height:65%;background:radial-gradient(circle,var(--project-glow,rgba(97,201,193,.18)),transparent 68%);pointer-events:none}
.research-program-card:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.26);box-shadow:0 28px 70px rgba(0,0,0,.22);background:linear-gradient(145deg,rgba(255,255,255,.115),rgba(255,255,255,.045))}
.research-program-card:focus-visible{outline:3px solid var(--project-accent);outline-offset:4px}
.research-card-copy{position:relative;z-index:2;padding:29px 18px 27px 29px;display:flex;flex-direction:column}
.research-program-number{display:flex;align-items:center;gap:9px;color:var(--project-accent);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.research-program-number::after{content:"";width:34px;height:1px;background:currentColor;opacity:.55}
.research-program-card h3{margin:17px 0 6px;font-family:"Newsreader",Georgia,serif;font-size:31px;line-height:1.04;font-weight:580;letter-spacing:-.035em;color:white}
.research-program-tagline{margin:0;color:#dce5ec;font-size:13px;line-height:1.55;font-weight:600}
.research-program-summary{margin:15px 0 20px;color:#aebbc8;font-size:12.5px;line-height:1.68;max-width:500px}
.research-card-metrics{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.research-card-metrics span{padding:6px 9px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.04);color:#dbe4eb;font-size:10px;font-weight:700;white-space:nowrap}
.research-card-open{display:inline-flex;align-items:center;gap:7px;margin-top:17px;color:white;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.research-card-open i{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--project-accent);color:#111d2c;font-style:normal;transition:transform .22s ease}
.research-program-card:hover .research-card-open i{transform:translate(3px,-2px)}
.research-card-art{position:relative;min-width:0;overflow:hidden;border-left:1px solid rgba(255,255,255,.08);background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.015));isolation:isolate}
.research-card-art::before{content:"";position:absolute;inset:13%;border-radius:50%;background:radial-gradient(circle,var(--project-glow,rgba(97,201,193,.2)),transparent 68%);filter:blur(1px);z-index:-1}

.accent-teal{--project-accent:#61d2c8;--project-glow:rgba(97,210,200,.28)}
.accent-indigo{--project-accent:#99a8ff;--project-glow:rgba(130,145,255,.28)}
.accent-gold{--project-accent:#e5bc71;--project-glow:rgba(229,188,113,.25)}
.accent-rose{--project-accent:#efa7c2;--project-glow:rgba(239,167,194,.24)}
.accent-red{--project-accent:#ff9a92;--project-glow:rgba(255,126,117,.23)}
.accent-blue{--project-accent:#83c5ff;--project-glow:rgba(89,176,255,.26)}

/* CSS miniatures used on research-program cards */
.art-travel .route-line{position:absolute;left:23px;right:22px;top:53%;height:2px;background:linear-gradient(90deg,transparent,var(--project-accent),transparent);transform:rotate(-18deg)}
.art-travel .route-line::before,.art-travel .route-line::after{content:"";position:absolute;width:9px;height:9px;border:3px solid var(--project-accent);border-radius:50%;background:#18233b;top:-5px}
.art-travel .route-line::before{left:13px}.art-travel .route-line::after{right:7px}
.art-travel .map-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.08)}
.art-travel .d1{left:38%;top:25%}.art-travel .d2{left:63%;top:67%}.art-travel .d3{left:28%;top:72%}
.art-travel .plane{position:absolute;left:48%;top:44%;font-size:30px;transform:rotate(-20deg);filter:grayscale(1) brightness(2);opacity:.9}

.art-agents .agent-core{position:absolute;left:50%;top:50%;width:52px;height:52px;transform:translate(-50%,-50%);border:1px solid var(--project-accent);border-radius:17px;background:rgba(153,168,255,.12);box-shadow:0 0 28px var(--project-glow)}
.art-agents .agent-core::before{content:"AI";position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:900;color:#fff}
.art-agents .node{position:absolute;width:20px;height:20px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:#1b2640}
.art-agents .n1{left:22%;top:24%}.art-agents .n2{right:18%;top:31%}.art-agents .n3{left:24%;bottom:20%}.art-agents .n4{right:21%;bottom:17%}
.art-agents .link{position:absolute;left:50%;top:50%;width:55px;height:1px;background:linear-gradient(90deg,var(--project-accent),transparent);transform-origin:left center;opacity:.65}
.art-agents .l1{transform:rotate(-142deg)}.art-agents .l2{transform:rotate(-28deg)}.art-agents .l3{transform:rotate(145deg)}.art-agents .l4{transform:rotate(34deg)}

.art-education .book{position:absolute;left:50%;top:51%;width:102px;height:70px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.22);border-radius:10px 10px 15px 15px;background:rgba(229,188,113,.08)}
.art-education .book::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,.25)}
.art-education .book::after{content:"</>  ∑  A+";position:absolute;inset:0;display:grid;place-items:center;color:var(--project-accent);font:800 13px/1 Manrope,sans-serif;letter-spacing:.05em}
.art-education .spark{position:absolute;color:#fff;font-size:11px;opacity:.75}.art-education .s1{left:21%;top:22%}.art-education .s2{right:18%;top:19%}.art-education .s3{right:24%;bottom:18%}

.art-culture .frame{position:absolute;left:50%;top:50%;width:104px;height:84px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.18);border-radius:18px;background:linear-gradient(150deg,rgba(239,167,194,.14),rgba(255,255,255,.02));overflow:hidden}
.art-culture .sun{position:absolute;width:24px;height:24px;border-radius:50%;background:var(--project-accent);right:13px;top:12px;opacity:.8}
.art-culture .hill{position:absolute;width:95px;height:65px;border-radius:50% 50% 0 0;left:-11px;bottom:-37px;background:rgba(255,255,255,.13);transform:rotate(12deg)}
.art-culture .story-lines{position:absolute;left:24px;right:24px;bottom:19px;height:20px;border-top:2px solid rgba(255,255,255,.6);border-bottom:2px solid rgba(255,255,255,.26)}

.art-misinfo .signal{position:absolute;left:50%;top:50%;width:58px;height:58px;transform:translate(-50%,-50%);border:1px solid var(--project-accent);border-radius:50%;display:grid;place-items:center;color:var(--project-accent);font-size:24px;font-weight:900;background:rgba(255,154,146,.08)}
.art-misinfo .signal::before{content:"!"}
.art-misinfo .wave{position:absolute;left:50%;top:50%;border:1px solid rgba(255,154,146,.28);border-radius:50%;transform:translate(-50%,-50%)}
.art-misinfo .w1{width:95px;height:95px}.art-misinfo .w2{width:135px;height:135px;opacity:.6}
.art-misinfo .tick{position:absolute;width:4px;height:4px;border-radius:50%;background:white}.art-misinfo .t1{left:20%;top:29%}.art-misinfo .t2{right:19%;top:22%}.art-misinfo .t3{right:23%;bottom:20%}

.art-mobility .road{position:absolute;left:50%;top:-10%;width:54px;height:120%;transform:translateX(-50%) rotate(16deg);border-left:1px dashed rgba(255,255,255,.35);border-right:1px dashed rgba(255,255,255,.35);background:rgba(131,197,255,.05)}
.art-mobility .path{position:absolute;left:31%;top:18%;width:72px;height:110px;border:2px solid transparent;border-left-color:var(--project-accent);border-bottom-color:var(--project-accent);border-radius:50%;transform:rotate(-12deg);opacity:.85}
.art-mobility .pin{position:absolute;width:17px;height:17px;border:4px solid var(--project-accent);border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#18233b}.art-mobility .p1{left:29%;top:22%}.art-mobility .p2{right:24%;bottom:22%}

/* Full research modal */
body.modal-open{overflow:hidden}
.research-modal{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;padding:24px}
.research-modal.is-open{display:flex}
.research-modal-backdrop{position:absolute;inset:0;background:rgba(7,13,25,.78);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}
.research-modal-panel{position:relative;width:min(1180px,96vw);max-height:92vh;overflow:auto;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.15);border-radius:28px;background:#f8f6f0;box-shadow:0 42px 110px rgba(0,0,0,.42);scrollbar-width:thin;outline:none}
.modal-close{position:sticky;float:right;top:16px;right:16px;z-index:8;display:grid;place-items:center;width:40px;height:40px;margin:16px 16px -56px 0;border:1px solid rgba(255,255,255,.19);border-radius:50%;background:rgba(11,20,36,.58);color:white;font-size:22px;line-height:1;cursor:pointer;backdrop-filter:blur(8px);transition:transform .2s ease,background .2s ease}
.modal-close:hover{transform:rotate(5deg);background:rgba(11,20,36,.82)}
.modal-close:focus-visible{outline:3px solid var(--project-accent,#61d2c8);outline-offset:2px}
.research-modal-hero{--project-accent:#61d2c8;--project-glow:rgba(97,210,200,.25);position:relative;min-height:330px;padding:54px 64px 46px;overflow:hidden;background:linear-gradient(135deg,#121b34,#182740 68%,#112a35);color:#fff}
.research-modal-hero::before{content:"";position:absolute;width:480px;height:480px;right:-180px;top:-190px;border-radius:50%;background:radial-gradient(circle,var(--project-glow),transparent 68%)}
.modal-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.7fr);gap:48px;align-items:end}
.modal-kicker{display:flex;align-items:center;gap:10px;color:var(--project-accent);font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
.modal-kicker::after{content:"";width:44px;height:1px;background:currentColor;opacity:.55}
.research-modal-hero h2{margin:16px 0 8px;max-width:730px;font-family:"Newsreader",Georgia,serif;font-size:clamp(42px,5vw,67px);font-weight:580;line-height:.98;letter-spacing:-.05em;color:white}
.modal-tagline{margin:0;max-width:650px;color:#d4dde5;font-size:16px;line-height:1.55;font-weight:550}
.modal-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.modal-metric{padding:15px 15px 13px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.045)}
.modal-metric strong{display:block;color:white;font-family:"Newsreader",Georgia,serif;font-size:22px;line-height:1.05;font-weight:600}
.modal-metric span{display:block;margin-top:5px;color:#aebbc6;font-size:9.5px;font-weight:700;line-height:1.35;text-transform:uppercase;letter-spacing:.06em}
.modal-body{padding:54px 64px 66px}
.modal-overview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:54px;padding-bottom:45px;border-bottom:1px solid #dedbd2}
.modal-section-label{margin:0 0 10px;color:#787f84;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.modal-overview h3,.modal-block h3{margin:0;font-family:"Newsreader",Georgia,serif;color:#172039;font-size:31px;line-height:1.08;font-weight:600;letter-spacing:-.03em}
.modal-story{margin:15px 0 0;color:#4f5962;font-size:15px;line-height:1.8}
.modal-highlights{display:grid;gap:10px}
.modal-highlight{position:relative;padding:13px 15px 13px 38px;border:1px solid #e0ddd4;border-radius:14px;background:#fff;color:#47525b;font-size:12.5px;line-height:1.55}
.modal-highlight::before{content:"✓";position:absolute;left:14px;top:13px;color:var(--project-accent);font-weight:900}
.modal-block{padding-top:43px}
.research-arc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:20px}
.arc-item{position:relative;min-height:145px;padding:18px 16px;border:1px solid #ddd9cf;border-radius:16px;background:#fff;overflow:hidden}
.arc-item::after{content:"";position:absolute;right:-34px;bottom:-42px;width:90px;height:90px;border-radius:50%;background:var(--project-glow);opacity:.42}
.arc-index{color:var(--project-accent);font-size:10px;font-weight:900;letter-spacing:.12em}
.arc-item strong{display:block;margin-top:12px;color:#202a3f;font-size:13px;line-height:1.35}
.arc-item p{margin:7px 0 0;color:#687178;font-size:11.5px;line-height:1.55}
.research-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:21px}
.gallery-card{margin:0;border:1px solid #ddd9cf;border-radius:18px;background:white;overflow:hidden}
.gallery-card img{display:block;width:100%;height:290px;object-fit:contain;background:#fff;padding:8px}
.gallery-card figcaption{padding:12px 15px 14px;border-top:1px solid #ece9e0;color:#667079;font-size:10.5px;line-height:1.5}
.research-paper-list{display:grid;gap:12px;margin-top:21px}
.research-paper{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:17px;align-items:start;padding:20px;border:1px solid #ddd9cf;border-radius:17px;background:#fff;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.research-paper:hover{transform:translateY(-2px);border-color:#c8c3b7;box-shadow:0 12px 26px rgba(18,27,56,.055)}
.paper-seq{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--teal-soft);color:var(--project-accent);font-size:10px;font-weight:900}
.paper-main h4{margin:1px 0 5px;color:#202a3f;font-size:14px;line-height:1.38}
.paper-meta{margin:0;color:#7b8389;font-size:10.5px;font-weight:650;line-height:1.5}
.paper-desc{margin:8px 0 0;color:#59636b;font-size:12px;line-height:1.6}
.paper-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:180px}
.paper-actions a{display:inline-flex;align-items:center;padding:7px 9px;border:1px solid #dad6cc;border-radius:999px;background:#faf9f5;color:#29364c;font-size:9.5px;font-weight:800;text-decoration:none;white-space:nowrap;transition:border-color .18s ease,background .18s ease,color .18s ease}
.paper-actions a:hover{border-color:var(--project-accent);background:#fff;color:#111b31}
.contributor-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.contributor-chip{padding:8px 11px;border:1px solid #dad6cc;border-radius:999px;background:#fff;color:#45515c;font-size:10.5px;font-weight:700}
.modal-note{margin-top:16px;color:#858b8f;font-size:10.5px;line-height:1.55}

@media(max-width:980px){
  .research-program-card{grid-template-columns:minmax(0,1fr) 150px}
  .research-modal-hero{padding:50px 40px 42px}.modal-body{padding:46px 40px 56px}
  .modal-hero-grid,.modal-overview{grid-template-columns:1fr}.modal-hero-grid{gap:30px}.modal-metrics{grid-template-columns:repeat(4,1fr)}
  .research-arc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .research-gallery{grid-template-columns:1fr}.gallery-card img{height:auto;max-height:430px}
}
@media(max-width:760px){
  .research-programs-section{padding-top:76px;padding-bottom:82px}.research-program-grid{grid-template-columns:1fr;margin-top:30px}
  .research-program-card{grid-template-columns:minmax(0,1fr) 120px;min-height:330px;border-radius:20px}.research-card-copy{padding:24px 14px 23px 23px}.research-program-card h3{font-size:28px}.research-program-summary{font-size:12px}.research-card-metrics span:nth-child(n+3){display:none}
  .research-modal{padding:8px}.research-modal-panel{width:100%;max-height:96vh;border-radius:21px}.modal-close{top:10px;right:10px;margin:10px 10px -50px 0;width:38px;height:38px}
  .research-modal-hero{min-height:0;padding:55px 24px 34px}.research-modal-hero h2{font-size:44px}.modal-tagline{font-size:14px}.modal-metrics{grid-template-columns:repeat(2,1fr)}
  .modal-body{padding:37px 24px 44px}.modal-overview{gap:31px;padding-bottom:34px}.modal-overview h3,.modal-block h3{font-size:27px}.modal-story{font-size:14px;line-height:1.72}.modal-block{padding-top:34px}
  .research-arc{grid-template-columns:1fr}.arc-item{min-height:auto}.research-paper{grid-template-columns:38px minmax(0,1fr);gap:12px;padding:16px}.paper-actions{grid-column:2;justify-content:flex-start;max-width:none}.paper-seq{width:34px;height:34px}.gallery-card figcaption{font-size:10px}
}
@media(max-width:480px){
  .research-program-card{grid-template-columns:1fr;min-height:0}.research-card-art{height:135px;order:-1;border-left:0;border-bottom:1px solid rgba(255,255,255,.08)}.research-card-copy{padding:22px}.research-program-card h3{font-size:30px}.research-card-metrics span:nth-child(n+3){display:inline-flex}
  .research-modal-hero h2{font-size:38px}.modal-metric strong{font-size:19px}.modal-metric{padding:12px}.modal-body{padding-left:19px;padding-right:19px}.research-paper{grid-template-columns:1fr}.paper-seq{display:none}.paper-actions{grid-column:1}.gallery-card img{padding:4px}
}

/* Markup compatibility / final project-card presentation */
.research-modal.open{display:flex}
.research-program-card{display:flex;flex-direction:column;min-height:430px;padding:26px 26px 24px}
.program-card-top{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between}
.program-index{color:var(--project-accent);font-size:11px;font-weight:900;letter-spacing:.16em}
.program-arrow{display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(255,255,255,.13);border-radius:50%;color:#dce4eb;font-size:13px;transition:transform .22s ease,background .22s ease}
.research-program-card:hover .program-arrow{transform:translate(2px,-2px);background:rgba(255,255,255,.08)}
.cover-art{position:relative;height:142px;margin:18px -4px 11px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.015));isolation:isolate}
.cover-art::before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle,var(--project-glow),transparent 52%);z-index:-1}
.program-copy{position:relative;z-index:2}
.program-eyebrow{margin:0 0 7px;color:var(--project-accent);font-size:9.5px;font-weight:850;letter-spacing:.15em;text-transform:uppercase}
.program-copy h3{margin:0;font-family:"Newsreader",Georgia,serif;font-size:31px;line-height:1.04;font-weight:580;letter-spacing:-.035em;color:white}
.program-copy>p:last-child{margin:8px 0 0;color:#bac5d0;font-size:12.5px;line-height:1.56}
.program-metrics{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:18px}
.program-metrics span{padding:6px 9px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.035);color:#dbe4eb;font-size:9.5px;font-weight:750}

/* Travel miniature */
.travel-art .route-dot{position:absolute;width:11px;height:11px;border:3px solid var(--project-accent);border-radius:50%;background:#17223a;z-index:2}.travel-art .a{left:15%;top:67%}.travel-art .b{left:50%;top:35%}.travel-art .c{right:13%;top:57%}
.travel-art .route-line{position:absolute;height:1.5px;background:linear-gradient(90deg,var(--project-accent),rgba(255,255,255,.2));transform-origin:left center}.travel-art .l1{width:42%;left:18%;top:68%;transform:rotate(-24deg)}.travel-art .l2{width:37%;left:52%;top:38%;transform:rotate(17deg)}
.travel-art>strong{position:absolute;left:47%;top:44%;font-size:26px;color:white;transform:rotate(-18deg);text-shadow:0 0 18px var(--project-glow)}
.travel-art .art-label{position:absolute;right:11px;bottom:9px;color:#9fadb9;font-size:7px;font-weight:850;letter-spacing:.12em}
/* Agents miniature */
.agents-art .agent-core{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:48px;height:48px;transform:translate(-50%,-50%);border:1px solid var(--project-accent);border-radius:15px;background:rgba(153,168,255,.1);color:white;font-size:11px;font-weight:900;box-shadow:0 0 30px var(--project-glow)}
.agents-art .agent-node{position:absolute;padding:6px 7px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#1a2740;color:#cbd5df;font-size:6.5px;font-weight:800;letter-spacing:.08em}.agents-art .n1{left:9%;top:16%}.agents-art .n2{right:8%;top:23%}.agents-art .n3{left:24%;bottom:12%}
.agents-art::after{content:"";position:absolute;left:21%;right:18%;top:49%;height:1px;background:linear-gradient(90deg,transparent,var(--project-accent),transparent);opacity:.6}
/* Education miniature */
.education-art .formula{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font-family:"Newsreader",serif;font-size:57px;color:var(--project-accent);opacity:.9}.education-art .edu-chip{position:absolute;padding:7px 9px;border:1px solid rgba(255,255,255,.14);border-radius:10px;color:white;font-size:8px;font-weight:800;background:rgba(255,255,255,.04)}.education-art .c1{left:12%;top:19%}.education-art .c2{right:12%;top:17%}.education-art .c3{right:17%;bottom:17%}.education-art .edu-line{position:absolute;left:12%;bottom:12%;color:#aeb9c5;font-size:7px;letter-spacing:.09em}
/* Culture miniature */
.culture-art>strong{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--project-accent);font-size:44px}.culture-art .culture-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(239,167,194,.28);border-radius:50%;transform:translate(-50%,-50%) rotate(-15deg)}.culture-art .o1{width:105px;height:65px}.culture-art .o2{width:145px;height:93px;transform:translate(-50%,-50%) rotate(26deg)}.culture-art .culture-word{position:absolute;color:#e3dbe0;font-family:"Newsreader",serif;font-size:10px}.culture-art .w1{left:12%;top:22%}.culture-art .w2{right:10%;top:34%}.culture-art .w3{left:24%;bottom:15%}
/* Misinformation miniature */
.misinfo-art>strong{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);display:grid;place-items:center;width:37px;height:37px;border-radius:50%;border:1px solid var(--project-accent);color:var(--project-accent);font-size:20px}.misinfo-art>small{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);color:#aeb8c3;font-size:7px;letter-spacing:.12em;text-transform:uppercase}.misinfo-art .pulse-ring{position:absolute;left:50%;top:47%;border:1px solid rgba(255,154,146,.22);border-radius:50%;transform:translate(-50%,-50%)}.misinfo-art .r1{width:78px;height:78px}.misinfo-art .r2{width:116px;height:116px}.misinfo-art .network-node{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.06)}.misinfo-art .q1{left:18%;top:24%}.misinfo-art .q2{right:18%;top:19%}.misinfo-art .q3{left:20%;bottom:20%}.misinfo-art .q4{right:14%;bottom:29%}
/* Mobility miniature */
.mobility-art .map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:22px 22px}.mobility-art .mobility-path{position:absolute;left:18%;top:61%;width:66%;height:1.5px;background:linear-gradient(90deg,var(--project-accent),#fff,var(--project-accent));transform:rotate(-17deg);box-shadow:0 0 10px var(--project-glow)}.mobility-art .pin{position:absolute;color:var(--project-accent);font-size:13px;z-index:2}.mobility-art .p1{left:17%;top:66%}.mobility-art .p2{left:49%;top:46%}.mobility-art .p3{right:14%;top:29%}.mobility-art>small{position:absolute;right:10px;bottom:9px;color:#aab5c0;font-size:7px;letter-spacing:.1em}

/* Modal markup used by script.js */
.modal-hero{position:relative;min-height:320px;padding:50px 62px 44px;overflow:hidden;background:linear-gradient(135deg,#111a31,#192842 70%,#142d38);color:white}
.modal-hero::before{content:"";position:absolute;width:520px;height:520px;right:-210px;top:-240px;border-radius:50%;background:radial-gradient(circle,var(--project-glow),transparent 68%)}
.modal-hero-number{position:absolute;right:54px;top:34px;color:rgba(255,255,255,.055);font-family:"Newsreader",Georgia,serif;font-size:132px;font-weight:650;line-height:1}
.modal-hero-copy{position:relative;z-index:2;max-width:730px}
.modal-eyebrow{margin:0;color:var(--project-accent);font-size:10.5px;font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.modal-hero h2{margin:15px 0 8px;max-width:720px;font-family:"Newsreader",Georgia,serif;color:white;font-size:clamp(44px,5.5vw,70px);font-weight:580;line-height:.95;letter-spacing:-.05em}
.modal-tagline{max-width:680px;color:#d3dce5;font-size:15px;line-height:1.6}
.modal-hero .modal-metrics{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.modal-hero .modal-metrics span{padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.04);color:#dce5ec;font-size:9.5px;font-weight:750}
.modal-cover-mini{position:absolute;right:48px;bottom:35px;width:255px;opacity:.47;transform:scale(.82);transform-origin:right bottom;pointer-events:none}.modal-cover-mini .cover-art{border-color:rgba(255,255,255,.05)}
.modal-body{padding:52px 62px 66px}
.modal-overview-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:52px;padding-bottom:45px;border-bottom:1px solid #ddd9cf}
.modal-section-label{margin-bottom:10px;color:#858a8d;font-size:9.5px;font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.modal-lead{margin:0;max-width:700px;color:#45515b;font-family:"Newsreader",Georgia,serif;font-size:25px;line-height:1.45;letter-spacing:-.018em}
.modal-highlights-card{padding:22px 23px;border:1px solid #ddd9cf;border-radius:18px;background:white}.modal-highlights-card ul{display:grid;gap:11px;margin:2px 0 0;padding:0;list-style:none}.modal-highlights-card li{position:relative;padding-left:22px;color:#57616a;font-size:12px;line-height:1.55}.modal-highlights-card li::before{content:"✓";position:absolute;left:0;color:var(--project-accent);font-weight:900}
.research-arc-section,.modal-gallery-section,.modal-papers-section,.contributors-section{padding-top:43px}
.modal-section-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.modal-section-head h3{margin:0;font-family:"Newsreader",Georgia,serif;color:#172039;font-size:31px;line-height:1.06;font-weight:600;letter-spacing:-.03em}.paper-count{padding:7px 10px;border:1px solid #ddd9cf;border-radius:999px;color:#757c81;font-size:9.5px;font-weight:800;background:white}
.research-arc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:20px}.arc-card{position:relative;min-height:155px;padding:18px;border:1px solid #ddd9cf;border-radius:16px;background:white;overflow:hidden}.arc-card>span{color:var(--project-accent);font-size:9px;font-weight:900;letter-spacing:.13em}.arc-card .arc-label{margin:15px 0 4px;color:#888f93;font-size:8.5px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.arc-card h4{margin:0;color:#273248;font-size:13px;line-height:1.35}.arc-card>p:last-child{margin:7px 0 0;color:#687178;font-size:11px;line-height:1.55}
.modal-gallery{display:grid;gap:15px;margin-top:20px}.modal-gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-gallery.one{grid-template-columns:minmax(0,780px)}.modal-gallery figure{margin:0;border:1px solid #ddd9cf;border-radius:18px;background:#fff;overflow:hidden}.figure-frame{display:grid;place-items:center;min-height:260px;padding:8px;background:white}.figure-frame img{display:block;width:100%;height:300px;object-fit:contain}.modal-gallery figcaption{padding:12px 15px 14px;border-top:1px solid #ece8de;color:#687178;font-size:10.5px;line-height:1.5}
.modal-paper-list{display:grid;gap:11px;margin-top:20px}.modal-paper{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:16px;align-items:start;padding:19px 20px;border:1px solid #ddd9cf;border-radius:17px;background:white;transition:transform .18s ease,box-shadow .18s ease}.modal-paper:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(18,27,56,.055)}.modal-paper .paper-seq{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--teal-soft);color:var(--project-accent);font-size:9px;font-weight:900}.paper-content .paper-meta{display:flex;gap:8px;align-items:center;margin:0 0 6px;color:#81888d;font-size:9.5px}.paper-content .paper-meta strong{color:#6a7278;font-weight:800}.paper-content h4{margin:0;color:#202a3f;font-size:13.5px;line-height:1.4}.paper-authors{margin:5px 0 0;color:#6f777d;font-size:10.5px;line-height:1.5}.paper-note{margin:8px 0 0;color:#59636b;font-size:11.5px;line-height:1.55}.paper-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:190px}.paper-link{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #d9d5cb;border-radius:999px;background:#faf9f5;color:#2b374c;font-size:9px;font-weight:850;text-decoration:none;white-space:nowrap}.paper-link:hover{border-color:var(--project-accent);background:white}.paper-link span{font-size:9px}
.contributor-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.contributor-cloud span{padding:8px 11px;border:1px solid #d9d5cb;border-radius:999px;background:white;color:#49545d;font-size:10px;font-weight:750}

@media(max-width:980px){.modal-cover-mini{display:none}.modal-overview-grid{grid-template-columns:1fr}.research-arc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-gallery.two{grid-template-columns:1fr}.modal-hero{padding:50px 40px 40px}.modal-body{padding:44px 40px 54px}}
@media(max-width:760px){.research-program-card{min-height:390px}.cover-art{height:125px}.modal-hero{padding:55px 24px 34px}.modal-hero-number{right:20px;top:31px;font-size:84px}.modal-hero h2{font-size:44px}.modal-body{padding:36px 24px 46px}.modal-overview-grid{gap:28px}.modal-lead{font-size:22px}.research-arc-grid{grid-template-columns:1fr}.modal-section-head{align-items:flex-start;flex-direction:column}.modal-paper{grid-template-columns:36px minmax(0,1fr)}.modal-paper .paper-actions{grid-column:2;justify-content:flex-start;max-width:none}.figure-frame img{height:auto;max-height:390px}}
@media(max-width:480px){.research-program-card{padding:21px;min-height:380px}.program-copy h3{font-size:29px}.modal-hero h2{font-size:38px}.modal-body{padding-left:18px;padding-right:18px}.modal-paper{grid-template-columns:1fr}.modal-paper .paper-seq{display:none}.modal-paper .paper-actions{grid-column:1}.modal-highlights-card{padding:18px}.modal-lead{font-size:20px}}

/* v4: lighter, more editorial research section */
.projects-section{
  background:#f2f5f3;
  color:var(--ink);
  border-top:1px solid #e2e8e5;
  border-bottom:1px solid #e2e8e5;
}
.light-heading h2{color:var(--navy)}
.light-heading .section-kicker{color:var(--teal)}
.light-heading .section-summary{color:var(--muted)}
.explore-hint{color:#718079}
.research-program-grid{gap:18px}
.research-program-card{
  min-height:410px;
  border:1px solid #dde5e1;
  background:#fff;
  color:var(--ink);
  box-shadow:0 10px 28px rgba(27,47,58,.055);
}
.research-program-card::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--project-accent);opacity:.78}
.research-program-card::after{display:none}
.research-program-card:hover{
  transform:translateY(-4px);
  border-color:#c9d7d2;
  background:#fff;
  box-shadow:0 18px 42px rgba(27,47,58,.09);
}
.program-index{color:var(--project-accent)}
.program-arrow{border-color:#dbe3df;color:#65746d;background:#fbfcfb}
.research-program-card:hover .program-arrow{background:#f0f5f2}
.program-eyebrow{color:#6a7772;letter-spacing:.12em}
.program-copy h3{color:var(--navy);font-size:30px;line-height:1.08}
.program-copy>p:last-child{color:#66726d;font-size:12.8px;line-height:1.62}
.program-metrics span{border-color:#e1e8e4;background:#f6f8f7;color:#5c6964}
.cover-art{
  height:150px;
  margin:18px -4px 14px;
  border:1px solid #e1e8e4;
  background:#f8faf9;
}
.cover-art::before{display:none}
.clean-icon-art{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.clean-icon-art svg{width:112px;height:82px;overflow:visible}
.clean-icon-art svg *{fill:none;stroke:var(--project-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.clean-icon-art span{position:absolute;right:12px;bottom:9px;color:#8a9691;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}

.research-modal-backdrop{background:rgba(29,41,49,.52);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.research-modal-panel{background:#fbfaf7;border-color:#dfe3df;box-shadow:0 30px 80px rgba(26,40,48,.26)}
.modal-close{border-color:#d7dfdb;background:rgba(255,255,255,.92);color:#43514b;box-shadow:0 5px 18px rgba(26,40,48,.08)}
.modal-close:hover{background:#fff}
.modal-hero{
  min-height:290px;
  background:linear-gradient(135deg,#f5f2ea,#eef4f1 72%,#f5f7f4);
  color:var(--ink);
  border-bottom:1px solid #dfe5e1;
}
.modal-hero::before{width:390px;height:390px;right:-150px;top:-180px;opacity:.35}
.modal-hero-number{color:rgba(25,48,60,.055)}
.modal-eyebrow{color:#61726a}
.modal-hero h2{color:var(--navy)}
.modal-tagline{color:#5e6b66}
.modal-hero .modal-metrics span{border-color:#d8e1dc;background:rgba(255,255,255,.6);color:#56645e}
.modal-cover-mini{opacity:.38}
.modal-cover-mini .cover-art{background:rgba(255,255,255,.55);border-color:#dce3df}
.modal-body{background:#fbfaf7}
.modal-section-label{color:#7e8b85;letter-spacing:.13em;text-transform:none;font-size:10px}
.modal-lead{color:#3d4b46}
.modal-highlights-card,.arc-card,.modal-paper,.modal-gallery figure,.contributor-cloud span{border-color:#e0e5e1;background:#fff}
.modal-highlights-card li{color:#596660}
.modal-highlights-card li::before{content:"—";color:var(--project-accent)}
.modal-section-head h3{color:var(--navy)}
.arc-card .arc-label{text-transform:none;letter-spacing:.04em;color:#7b8782}
.paper-count{border-color:#dfe5e1;background:#fff;color:#6e7b75}
.paper-link{border-color:#dce3df;background:#f8faf8;color:#33423c}
.paper-link:hover{background:#fff}
.figure-frame{background:#fff}
.modal-gallery figcaption{border-color:#ecefeb;color:#66736d}

@media(max-width:760px){
  .research-program-card{min-height:375px}
  .cover-art{height:128px}
}

/* v5: balanced contrast, stronger research visuals, polished scrollable work panels */
:root{
  --paper:#f5f2eb;
  --surface:#fffdf9;
  --ink:#223047;
  --muted:#657184;
  --line:#d9d8d2;
  --navy:#213354;
  --navy-2:#2d466f;
  --teal:#147d78;
  --teal-soft:#dfeeea;
  --warm:#eee3d1;
  --gold:#b17b35;
}
body{
  background:
    radial-gradient(circle at 8% 7%, rgba(20,125,120,.075), transparent 26rem),
    radial-gradient(circle at 91% 10%, rgba(177,123,53,.065), transparent 26rem),
    var(--paper);
}
.site-header{background:rgba(245,242,235,.92)}

/* Larger academic / professional profile links */
.profile-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:27px;max-width:820px}
.profile-link{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 12px;border:1px solid #d8d9d4;border-radius:13px;background:rgba(255,253,249,.82);box-shadow:0 6px 16px rgba(33,51,84,.045);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.profile-link:hover{transform:translateY(-2px);border-color:#b9c9c5;background:#fff;box-shadow:0 10px 25px rgba(33,51,84,.09)}
.profile-link.featured{border-color:#b9d1cc;background:linear-gradient(135deg,#f6fbf9,#fffdf9)}
.profile-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#e9efed;color:var(--navy);font-weight:800}
.profile-link.featured .profile-icon{background:var(--navy);color:#fff}
.profile-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.profile-icon.text-icon{font-family:Arial,sans-serif;font-size:19px;letter-spacing:-.04em;background:#e4eaf4;color:#285a9f}
.profile-icon.dblp-icon{font-size:10px;letter-spacing:-.03em;background:#efe9df;color:#765d42;text-transform:lowercase}
.profile-link strong{display:block;color:var(--navy);font-size:11.5px;line-height:1.2}
.profile-link small{display:block;margin-top:3px;color:#7c8491;font-size:8.8px;line-height:1.25}
.profile-link i{font-style:normal;color:#95a09b;font-size:11px}

/* Research section: neither dark nor washed out */
.projects-section{
  background:linear-gradient(145deg,#e5eaed 0%,#eef0ec 48%,#e8e3da 100%);
  border-top:1px solid #d1d8dc;
  border-bottom:1px solid #d1d4d2;
}
.projects-section>.section-heading-row,.projects-section>.research-program-grid{max-width:1210px}
.research-program-grid{gap:22px}
.research-program-card{
  min-height:450px;
  padding:26px;
  border:1px solid #cdd5d9;
  border-radius:23px;
  background:rgba(255,253,249,.94);
  box-shadow:0 12px 31px rgba(37,53,70,.085);
}
.research-program-card::before{height:4px;opacity:.92}
.research-program-card:hover{border-color:#aebdc3;box-shadow:0 22px 52px rgba(37,53,70,.14);background:#fffdf9}
.program-card-top{margin-bottom:3px}
.program-index{font-size:12px;letter-spacing:.17em}
.program-arrow{width:36px;height:36px;border-color:#cbd3d4;background:#f3f5f3;color:#52636c;font-size:14px}
.program-eyebrow{font-size:9.5px;color:#66777d}
.program-copy h3{font-size:33px;color:#213354}
.program-copy>p:last-child{font-size:13.2px;color:#5e6973;line-height:1.62}
.program-metrics{gap:8px;padding-top:19px}
.program-metrics span{padding:6px 10px;border-color:#d7dedc;background:#eef2f0;color:#52645f;font-size:9.7px}

/* Editorial line illustrations: larger, quieter, more intentional */
.cover-art{height:190px;margin:18px 0 18px;border:1px solid #d1dad8;border-radius:19px;background:linear-gradient(145deg,#e9efed,#f5f2ec);overflow:hidden}
.editorial-icon-art{display:flex;align-items:center;justify-content:center;position:relative}
.editorial-icon-art::after{content:"";position:absolute;width:220px;height:220px;right:-85px;bottom:-110px;border-radius:50%;background:var(--project-glow);opacity:.45}
.editorial-icon-art svg{position:relative;z-index:2;width:166px;height:112px;overflow:visible}
.editorial-icon-art svg *{fill:none;stroke:var(--project-accent);stroke-width:2.35;stroke-linecap:round;stroke-linejoin:round}
.editorial-icon-art svg .soft-line{stroke-width:3.2}
.editorial-icon-art svg .detail{opacity:.58;stroke-width:1.8}
.editorial-icon-art svg .core{fill:rgba(255,255,255,.42)}
.art-caption{position:absolute;z-index:3;left:15px;bottom:11px;color:#6f7b7e;font-size:8.7px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.accent-teal{--project-accent:#248f88;--project-glow:rgba(36,143,136,.25)}
.accent-indigo{--project-accent:#6576b9;--project-glow:rgba(101,118,185,.24)}
.accent-gold{--project-accent:#b98945;--project-glow:rgba(185,137,69,.23)}
.accent-rose{--project-accent:#aa6f7d;--project-glow:rgba(170,111,125,.22)}
.accent-red{--project-accent:#b8615d;--project-glow:rgba(184,97,93,.22)}
.accent-blue{--project-accent:#467fa7;--project-glow:rgba(70,127,167,.24)}

/* Detail view: stronger hierarchy and much larger figures */
.research-modal-panel{width:min(1280px,97vw);max-height:94vh;background:#f7f4ed}
.modal-hero{min-height:305px;background:linear-gradient(135deg,#e9edf0 0%,#f4f1e9 58%,#e6eeeb 100%);border-bottom-color:#d3d9d7}
.modal-hero::before{opacity:.62}
.modal-cover-mini{opacity:.62;max-width:285px}
.modal-cover-mini .cover-art{height:160px;margin:0;background:rgba(255,255,255,.5)}
.modal-cover-mini .editorial-icon-art svg{width:145px;height:98px}
.modal-body{background:#f7f4ed;padding:52px 64px 70px}
.modal-gallery-section{padding-top:48px}
.modal-gallery,.modal-gallery.two,.modal-gallery.one{display:grid;grid-template-columns:1fr;gap:24px;margin-top:22px}
.modal-gallery figure{border-color:#cfd5d2;border-radius:20px;box-shadow:0 10px 26px rgba(35,48,58,.065)}
.figure-frame{min-height:430px;padding:18px;background:#fff}
.figure-frame img{width:100%;height:auto;max-height:690px;object-fit:contain}
.modal-gallery figcaption{padding:14px 18px 16px;font-size:11.5px;color:#59686a;background:#fafaf8}

/* Section heading icon system */
.heading-with-icon{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.heading-with-icon .section-kicker{margin:0}
.section-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:#e4ece9;color:var(--teal)}
.section-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.section-icon.warm-icon{background:#efe2cf;color:#8c612c;font-size:16px}
.publication-summary{margin-top:11px;max-width:700px}
.publication-heading{align-items:center}
.scholar-button{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #ccd5d2;border-radius:11px;background:#fffdf9;color:#27425f;box-shadow:0 7px 18px rgba(33,51,84,.05)}
.scholar-button:hover{text-decoration:none;border-color:#a7c2bc;background:white}
.scholar-button b{font-weight:500;color:#7b8b86}

/* Scroll shells and deliberate slim side scrollbar */
.scroll-shell{display:grid;grid-template-columns:118px minmax(0,1fr);border:1px solid #d3d6d2;border-radius:20px;background:rgba(255,253,249,.78);overflow:hidden;box-shadow:0 10px 30px rgba(33,51,84,.055)}
.scroll-note{padding:22px 17px;background:linear-gradient(180deg,#e7eeeb,#ece7df);border-right:1px solid #d3d6d2;display:flex;flex-direction:column;gap:5px}
.scroll-note span{color:#34485d;font-family:"Newsreader",Georgia,serif;font-size:17px;font-weight:650;line-height:1.15}
.scroll-note small{color:#7d8688;font-size:8.8px;line-height:1.35;text-transform:uppercase;letter-spacing:.08em}
.scroll-panel{max-height:610px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8ea39d #edf0ed}
.scroll-panel::-webkit-scrollbar{width:8px}
.scroll-panel::-webkit-scrollbar-track{background:#edf0ed;border-left:1px solid #e0e3e0}
.scroll-panel::-webkit-scrollbar-thumb{background:#91a59f;border-radius:999px;border:2px solid #edf0ed}
.scroll-panel:focus-visible{outline:2px solid rgba(20,125,120,.45);outline-offset:-2px}

/* Publications as compact editorial cards */
.pub-list{border-top:0;padding:12px 14px 14px}
.pub{grid-template-columns:72px minmax(0,1fr) 135px;gap:18px;align-items:center;padding:17px 16px;margin:0 0 10px;border:1px solid #dddeda;border-radius:15px;background:#fff;transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}
.pub:last-child{margin-bottom:0}
.pub:hover{transform:translateY(-1px);border-color:#bdccc8;box-shadow:0 8px 22px rgba(33,51,84,.065)}
.pub-side{display:grid;grid-template-columns:30px auto;gap:3px 8px;align-items:center}
.pub-doc-icon{grid-row:1/3;display:grid;place-items:center;width:30px;height:36px;border-radius:8px;background:#e7efec;color:#3e7773}
.pub-doc-icon svg{width:17px;height:20px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.pub-year{font-family:"Manrope",sans-serif;color:#40526b;font-size:11px;font-weight:800;line-height:1}
.pub-no{color:#99a0a6;font-size:8px;font-weight:700;letter-spacing:.08em}
.pub-main h3{margin:5px 0 7px;font-size:18px;line-height:1.34;color:#263753}
.pub .authors{font-size:11.7px;color:#69747b}
.pub-venue-line span{display:inline-flex;padding:4px 8px;border-radius:6px;background:#eee7dc;color:#675c50;font-size:8.7px;font-weight:800;letter-spacing:.02em}
.pub-links{justify-content:flex-end}
.pub-links a{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border-color:#d7dad6;background:#f8f8f5;font-size:9.2px}
.pub-links a span{color:#8d9792;font-size:8px}

/* Recent highlights: compact scrollable feed */
.news-section{padding-top:82px}
.news-heading{margin-bottom:28px}
.news-shell .scroll-panel{max-height:455px}
.timeline{margin:0;padding:12px 14px;border-top:0}
.timeline article{display:grid;grid-template-columns:55px 38px minmax(0,1fr);gap:14px;align-items:center;padding:15px 15px;margin-bottom:9px;border:1px solid #dddeda;border-radius:14px;background:#fff}
.timeline article:last-child{margin-bottom:0}
.timeline article::before{display:none}
.timeline time{color:#52657b;font-size:10px;font-weight:800}
.news-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-size:11px;font-weight:850;background:#e7eeeb;color:#3e716d}
.award-icon{background:#efe4ce;color:#8a642e;font-size:14px}
.demo-icon{background:#e5e9f3;color:#586a9e}
.visual-icon{background:#f0e4e7;color:#8a5c69}
.travel-icon{background:#e4eeec;color:#357b74}
.timeline h3{font-size:17px;line-height:1.3;color:#273954}
.timeline p{font-size:12.2px;line-height:1.5;color:#6a747d}

@media(max-width:980px){
  .profile-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scroll-shell{grid-template-columns:92px minmax(0,1fr)}
  .research-program-card{min-height:430px}
}
@media(max-width:760px){
  .profile-links{grid-template-columns:1fr 1fr;gap:8px}
  .profile-link{grid-template-columns:36px minmax(0,1fr) auto;padding:9px}
  .profile-icon{width:36px;height:36px}
  .profile-link small{display:none}
  .research-program-card{min-height:410px;padding:22px}
  .cover-art{height:165px}.editorial-icon-art svg{width:145px;height:100px}
  .scroll-shell{grid-template-columns:1fr}.scroll-note{display:none}.scroll-panel{max-height:535px}
  .pub{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:14px 12px}.pub-links{grid-column:2;justify-content:flex-start}.pub-main h3{font-size:16.5px}
  .timeline article{grid-template-columns:48px 34px minmax(0,1fr);gap:10px;padding:13px 11px}.timeline h3{font-size:15.5px}
  .figure-frame{min-height:260px;padding:8px}.figure-frame img{max-height:none}
}
@media(max-width:480px){
  .profile-links{grid-template-columns:1fr}.profile-link small{display:block}
  .research-program-card{min-height:390px}.cover-art{height:150px}.editorial-icon-art svg{width:130px;height:90px}
  .pub{grid-template-columns:1fr}.pub-side{grid-template-columns:30px auto auto;justify-content:start}.pub-doc-icon{grid-row:auto}.pub-links{grid-column:1}.timeline article{grid-template-columns:40px 32px minmax(0,1fr)}
}

/* --- v6: student groups, collaborations, and teaching details --- */
.course-card-button{appearance:none;width:100%;text-align:left;cursor:pointer;color:inherit;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;background:var(--surface)}
.course-card-button:hover{transform:translateY(-3px);border-color:#b9c9c4;box-shadow:0 14px 34px rgba(32,50,64,.085)}
.course-card-button:focus-visible{outline:2px solid rgba(8,127,120,.42);outline-offset:3px}
.course-card-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;padding-top:15px;border-top:1px solid var(--line)}
.course-card-footer small{color:#7b858a;font-size:10px;text-transform:none;letter-spacing:0;font-weight:600}
.course-card-footer b{color:#315c67;font-size:10px;font-weight:800}

.student-groups-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.student-group-card{position:relative;overflow:hidden;min-height:300px;padding:27px;border:1px solid #d7dcda;border-radius:19px;background:#fffdf9;box-shadow:0 8px 26px rgba(18,27,56,.035)}
.student-group-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#168d84,#4d7897)}
.student-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid #e3e5e1}
.student-level{font-family:"Newsreader",Georgia,serif;color:#233b55;font-size:25px;font-weight:650;line-height:1}
.student-group-head small{color:#87908f;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.student-name-list{list-style:none;margin:18px 0 0;padding:0}
.student-name-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #ecece8;color:#39485b;font-size:13.2px;font-weight:650}
.student-name-list li:last-child{border-bottom:0}
.student-name-list em{font-style:normal;color:#8c9695;font-size:10px;font-weight:700}
.student-note{margin:14px 0 0;color:#8a9393;font-size:10.5px;line-height:1.5}

.collaboration-block{display:grid;grid-template-columns:.65fr 1.35fr;gap:28px;margin-top:18px;padding:29px;border:1px solid #ced8d5;border-radius:20px;background:linear-gradient(135deg,#e6efec,#f2eee6 76%)}
.collaboration-copy h3{margin:11px 0 8px;font-family:"Newsreader",Georgia,serif;color:#203a50;font-size:30px;line-height:1.12}
.collaboration-copy>p:last-child{margin:0;color:#607071;font-size:13px;line-height:1.65}
.collaboration-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.collab-group{display:flex;align-items:center;gap:13px;min-height:96px;padding:16px;border:1px solid rgba(113,135,132,.24);border-radius:14px;background:rgba(255,255,255,.68)}
.collab-group.featured-collab{background:#fff;border-color:#b9cbc7}
.collab-mark{display:grid;place-items:center;flex:0 0 auto;width:39px;height:39px;border-radius:11px;background:#2d5964;color:white;font-family:"Newsreader",Georgia,serif;font-size:18px}
.collab-group small{display:block;color:#7f8a89;font-size:8px;font-weight:800;letter-spacing:.1em}
.collab-group h4{margin:2px 0 0;color:#243b53;font-family:"Newsreader",Georgia,serif;font-size:17px;line-height:1.2}
.collab-group p{margin:4px 0 0;color:#647272;font-size:10.5px}

.teaching-modal{position:fixed;inset:0;z-index:1300;display:none;align-items:center;justify-content:center;padding:24px}
.teaching-modal.open{display:flex}
.teaching-modal-backdrop{position:absolute;inset:0;background:rgba(29,41,49,.54);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.teaching-modal-panel{position:relative;width:min(900px,95vw);max-height:90vh;overflow:auto;border:1px solid #d7dcda;border-radius:25px;background:#fbfaf6;box-shadow:0 32px 90px rgba(24,37,46,.26);outline:none}
.teaching-modal-close{position:absolute;z-index:4;right:18px;top:18px;display:grid;place-items:center;width:39px;height:39px;border:1px solid rgba(67,82,86,.2);border-radius:50%;background:rgba(255,255,255,.85);color:#334954;font-size:22px;line-height:1;cursor:pointer}
.teaching-modal-hero{padding:50px 56px 40px;background:linear-gradient(135deg,#e5edeb,#eee9df);border-bottom:1px solid #d4d9d6}
.teaching-modal-eyebrow{margin:0 0 10px;color:#087f78;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.teaching-modal-hero h2{max-width:680px;font-size:50px;line-height:1.02}
.teaching-modal-hero>p:last-child{max-width:730px;margin:18px 0 0;color:#56666b;font-size:14px;line-height:1.75}
.teaching-modal-body{padding:38px 56px 52px}
.teaching-detail-section+.teaching-detail-section{margin-top:34px;padding-top:31px;border-top:1px solid #dfe2df}
.teaching-detail-label{margin-bottom:14px;color:#778380;font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.teaching-topic-grid{display:flex;flex-wrap:wrap;gap:9px}
.teaching-topic-grid span{padding:8px 11px;border:1px solid #d6dcda;border-radius:9px;background:#fff;color:#425761;font-size:11px;font-weight:650}
.teaching-course-links{display:grid;gap:10px}
.teaching-course-links a{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 17px;border:1px solid #d8ddda;border-radius:13px;background:#fff;transition:.17s ease}
.teaching-course-links a:hover{border-color:#abc5bf;transform:translateY(-1px);box-shadow:0 7px 20px rgba(30,48,58,.055)}
.teaching-course-links span{color:#16857e;font-size:11px;font-weight:850}
.teaching-course-links strong{color:#283d53;font-family:"Newsreader",Georgia,serif;font-size:17px}
.teaching-course-links b{color:#71817f;font-size:9.5px}
.professional-teaching-note{padding:20px;border:1px solid #ccd9d5;border-radius:14px;background:#edf4f1}
.professional-teaching-note strong{color:#244b54;font-family:"Newsreader",Georgia,serif;font-size:22px}
.professional-teaching-note p{margin:6px 0 0;color:#5c6d6d;font-size:12.5px}

@media(max-width:900px){
  .student-groups-grid{grid-template-columns:1fr}
  .student-group-card{min-height:0}
  .collaboration-block{grid-template-columns:1fr}
}
@media(max-width:650px){
  .collaboration-groups{grid-template-columns:1fr}
  .teaching-modal{padding:8px}
  .teaching-modal-panel{width:100%;max-height:96vh;border-radius:20px}
  .teaching-modal-hero{padding:52px 22px 30px}
  .teaching-modal-hero h2{font-size:38px}
  .teaching-modal-body{padding:28px 22px 36px}
  .teaching-course-links a{grid-template-columns:48px minmax(0,1fr)}
  .teaching-course-links b{grid-column:2}
}
