@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");
:root{--navy:#081f36;--ink:#142a40;--muted:#68788a;--blue:#1379a5;--cyan:#22bebf;--cream:#f5f8f9;--border:#dfE7eb;--max:1200px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:16px/1.65 "DM Sans",Arial,sans-serif;color:var(--ink);background:white}
h1,h2,h3,strong,.brand{font-family:Manrope,Arial,sans-serif}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.2;letter-spacing:-.038em}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #28b6d3;outline-offset:3px}
button,input,select{font:inherit}
.shell{width:min(var(--max),calc(100% - 80px));margin:auto}
.skip{position:absolute;left:14px;top:-80px;background:white;z-index:20;padding:8px}
.skip:focus{top:5px}
.header{position:sticky;top:0;z-index:12;background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border-bottom:1px solid #e7edf0}
.nav{min-height:83px;display:flex;align-items:center;gap:28px;justify-content:space-between}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}
.brand-icon{letter-spacing:-.11em;background:var(--navy);color:white;font-size:22px;font-weight:800;padding:8px 16px 8px 12px;border-radius:4px}
.brand-icon span,.footerbrand span{color:#36d0c9}
.brand-copy{display:grid;line-height:1.45}
.brand-copy strong{font-size:12px;letter-spacing:.07em}
.brand-copy small{font-size:9px;color:#687a8b;letter-spacing:.11em}
.links{display:flex;align-items:center;gap:26px}
.links a{font-size:12px;color:#55687a;font-weight:700;white-space:nowrap;transition:color .2s}
.links a:hover,.links a[aria-current=page]{color:#087ca4}
.menu-toggle{display:none;background:none;border:0;font-size:25px;cursor:pointer}
.hero{background:#f7f9fa;border-bottom:1px solid var(--border)}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;min-height:626px;align-items:stretch}
.hero-copy{padding:100px 55px 60px 0;display:flex;flex-direction:column;align-items:flex-start}
.kicker,.eyebrow{font-size:10px;letter-spacing:.19em;text-transform:uppercase;font-weight:800;color:#088aa8}
.kicker{display:flex;align-items:center;gap:9px;color:#647b88}
.signal{display:inline-block;width:8px;height:8px;background:#27bbc5;border-radius:50%;box-shadow:0 0 0 4px #24c6c51b}
.hero h1{font-size:clamp(44px,4.5vw,66px);font-weight:800;margin:32px 0 25px;max-width:660px;line-height:1.12}
.hero h1 em{font-style:normal;color:#1285a8}
.hero-copy>p{max-width:520px;color:#637789;font-size:16px;line-height:1.9}
.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:24px}
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:33px;font-weight:700;font-size:12px;border-radius:3px;padding:15px 19px;transition:transform .18s,background .18s}
.btn:hover{transform:translateY(-2px)}
.primary{background:var(--navy);color:white}
.ghost,.outline{border:1px solid #cbd8de;color:#14374d;background:white}
.hero-note{margin-top:auto;padding-top:55px;display:flex;flex-wrap:wrap;gap:15px;color:#8195a3;letter-spacing:.15em;font-size:9px;font-weight:700}
.hero-visual{position:relative;min-height:520px;overflow:hidden;background:var(--navy)}
.hero-visual img{height:100%;width:100%;object-fit:cover;position:absolute;inset:0}
.section{padding-top:105px;padding-bottom:105px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:39px}
.section-head h2,.feature-grid h2,.cta h2{font-size:clamp(30px,3vw,45px);margin:13px 0 0;max-width:650px}
.section-head>p{width:340px;max-width:100%;color:#708090;font-size:14px;margin:0}
.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.research-card{border:1px solid #e3eaf0;transition:transform .2s,box-shadow .2s;min-width:0}
.research-card:hover{transform:translateY(-4px);box-shadow:0 15px 40px #0c2b4415}
.card-art{height:210px;background:#082944;position:relative;overflow:hidden}
.energy .card-art{background:#11495b}
.optimization .card-art{background:#132c49}
.card-body{padding:29px 26px 28px}
.card-body h3{font-size:19px;margin-bottom:14px}
.card-body p{font-size:13px;color:#697d8d;line-height:1.9;min-height:95px}
.text-link{font-size:12px;font-weight:800;color:#087fa4}
.text-link span{margin-left:12px}
.feature-band{background:#081f36;color:white}
.feature-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:120px;align-items:center}
.feature-grid h2{max-width:560px}
.feature-grid p{color:#a4bbce;max-width:540px;font-size:15px;line-height:2;margin:22px 0 24px}
.light{color:#64dfe2}
.metric-stack{display:grid;gap:3px}
.metric-stack>div{padding:25px 0;border-bottom:1px solid #31516a;display:grid;grid-template-columns:150px 1fr;align-items:center}
.metric-stack strong{font-size:25px;letter-spacing:-.05em;color:#78e9d9}
.metric-stack span{font-size:12px;color:#b2c9d8}
.papers{border-top:1px solid #dfe7eb}
.paper{display:grid;grid-template-columns:80px 1fr 24px;gap:20px;padding:24px 4px;border-bottom:1px solid #e2e9ee}
.paper-year{font-size:14px;color:#1787a5;font-weight:800}
.paper h3{font-size:16px;line-height:1.55;margin-bottom:5px}
.paper p{color:#718392;font-size:12px;margin:0}
.paper-arr{color:#1e8ca3}
.after-section{margin-top:30px}
.section-tint{background:#f4f8fa}
.partners{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.partners>div{background:white;border:1px solid #e2e9ed;min-height:100px;padding:22px;display:flex;align-items:center;font-size:13px;font-weight:700;color:#40586b}
.cta{background:#126180;color:white;padding:65px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cta h2{margin-top:9px}
.cta .eyebrow{color:#8be7ee}
.lightbtn{background:white;color:#10354e}
.footer{background:#071828;color:#dce9f1;padding-top:67px}
.footgrid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:45px}
.footerbrand{font-size:22px;font-weight:800;letter-spacing:-.05em}
.footgrid p{color:#8ca5b7;font-size:12px;line-height:2;margin-top:17px}
.footgrid>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footgrid .eyebrow{color:#66c5d1;margin-bottom:10px}
.footgrid a{font-size:12px}
.legal{border-top:1px solid #294052;margin-top:65px;padding:22px 0;font-size:11px;color:#7892a4;display:flex;justify-content:space-between}
.subhero{background:#0a2944;color:white;padding:94px 0 88px;background-image:radial-gradient(ellipse at 90% 20%,#15668499,transparent 50%)}
.subhero .eyebrow{color:#5fd5d4}
.subhero h1{font-size:clamp(42px,5vw,66px);margin:17px 0}
.subhero p{max-width:620px;color:#bdd0dc;line-height:1.9}
.content-wrap{padding-top:65px;padding-bottom:100px}
.research-detail{border-bottom:1px solid var(--border);padding:50px 0;scroll-margin-top:120px}
.research-detail:first-child{padding-top:0}
.research-detail h2{font-size:36px;margin:14px 0}
.research-detail p{color:#61798d;max-width:720px}
.tagrow{display:flex;gap:10px;flex-wrap:wrap}
.tagrow span{font-size:11px;font-weight:700;padding:8px 12px;background:#eff6f8;border-radius:3px}
.people-section{margin-bottom:55px}
.people-section h2{font-size:23px;border-bottom:1px solid var(--border);padding-bottom:14px}
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.person{display:flex;gap:16px;align-items:center;padding:20px;border:1px solid var(--border);border-radius:3px}
.avatar{width:54px;height:54px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(140deg,#d7eef1,#a5cfd9);color:#0b5574;font-weight:800;font-size:22px}
.person h3{font-size:14px;margin:0 0 5px}
.person p{font-size:11px;color:var(--muted);margin:0}
.project-row{border-bottom:1px solid var(--border);padding:27px 0;display:grid;grid-template-columns:85px 1fr;gap:35px}
.project-year{font-weight:800;color:#1685a6}
.project-row h3{font-size:17px;line-height:1.5;margin-bottom:10px}
.project-row p{color:#718391;font-size:13px;margin:0}
.filters{display:grid;grid-template-columns:1fr 170px 210px;gap:12px}
.filters input,.filters select{width:100%;min-height:50px;border:1px solid #d8e2e7;background:#fff;padding:12px 16px;color:#304b5f;border-radius:3px;outline-offset:2px}
.results-line{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:27px 0 10px}
.results-line strong{color:#18364a}
.pub-item{display:grid;grid-template-columns:70px 1fr;gap:22px;border-bottom:1px solid #e4ebee;padding:23px 0}
.pub-item time{color:#1490aa;font-weight:800;font-size:13px}
.pub-item h3{font-size:15px;line-height:1.6;font-weight:700;margin-bottom:7px}
.pub-item p{font-size:12px;color:#778996;margin:0}
.empty{padding:45px 0;color:var(--muted)}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.news-card{border:1px solid var(--border)}
.news-visual{height:140px;background:linear-gradient(145deg,#09263e,#1f7895);padding:18px;display:flex;align-items:end;color:#bceff2;font-size:38px;font-weight:800;letter-spacing:-.07em;overflow:hidden;position:relative}
.news-visual:after{content:"";position:absolute;border:1px solid #9bedea80;border-radius:50%;width:200px;height:200px;right:-70px;top:-100px;box-shadow:0 0 0 30px #2ff3d514,0 0 0 60px #2ff3d514}
.news-card>div:last-child{padding:20px}
.news-card h3{font-size:15px;margin:10px 0;line-height:1.5}
.news-card p{font-size:12px;color:#82939f;margin:0}
.note{background:#f4f8f9;border-left:3px solid #1f9cad;padding:16px;color:#708494;font-size:12px;margin-top:38px}
.note a{text-decoration:underline}
.contact-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:40px}
.contact-main,.contact-side{background:#f4f8fa;padding:45px}
.contact-main h2{font-size:30px;margin:15px 0 20px}
.contact-grid p{font-size:14px;color:#637a8d;line-height:2}
.mail{display:inline-block;font-size:21px;font-weight:800;color:#087fa4;margin-top:15px}
.contact-side h3{font-size:26px;margin:15px 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1080px){.shell{width:min(var(--max),calc(100% - 44px))}.links{gap:13px}.links a{font-size:11px}.brand-copy{display:none}.feature-grid{gap:45px}}
@media(max-width:760px){.nav{min-height:70px}.brand-copy{display:grid}.menu-toggle{display:block}.links{display:none;position:absolute;top:70px;left:0;right:0;background:white;box-shadow:0 15px 25px #071e3221;padding:16px 22px;flex-direction:column;align-items:stretch;gap:0}.links.open{display:flex}.links a{font-size:14px;padding:12px 6px}.hero-grid,.feature-grid,.contact-grid{grid-template-columns:1fr}.hero-copy{padding:65px 0 50px}.hero h1{font-size:clamp(40px,9vw,58px)}.hero-visual{min-height:340px}.section{padding-top:65px;padding-bottom:65px}.section-head{display:block}.section-head>p{margin-top:17px}.research-grid,.partners,.news-grid,.people-grid{grid-template-columns:1fr 1fr}.card-body p{min-height:0}.metric-stack>div{grid-template-columns:150px 1fr}.footgrid{grid-template-columns:1fr 1fr}.footgrid>div:first-child{grid-column:1/-1}.filters{grid-template-columns:1fr 1fr}.filters .search{grid-column:1/-1}.cta-inner{align-items:start;flex-direction:column}.subhero{padding:65px 0}.content-wrap{padding-top:35px}}
@media(max-width:510px){.shell{width:calc(100% - 32px)}.brand-copy strong{font-size:9px}.brand-copy small{font-size:8px}.brand-icon{font-size:18px}.hero h1{font-size:39px}.research-grid,.partners,.news-grid,.people-grid,.footgrid{grid-template-columns:1fr}.hero-note{padding-top:35px}.paper{grid-template-columns:42px 1fr;gap:9px}.paper-arr{display:none}.filters{grid-template-columns:1fr}.filters .search{grid-column:auto}.project-row,.pub-item{grid-template-columns:1fr;gap:5px}.contact-main,.contact-side{padding:26px}.legal{display:block}.legal span{display:block;margin-top:7px}.feature-grid h2,.section-head h2{font-size:32px}.hero-visual{min-height:280px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.hero-visual img {width:100%;height:100%;object-fit:cover;display:block}
.research-card .card-art {overflow:hidden;position:relative}
.research-card .card-art > img {width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:.88}
.news-photo {display:block;aspect-ratio:16/10;overflow:hidden;background:#dce8ed}
.news-photo img {width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.news-photo:hover img {transform:scale(1.035)}
.photo-card>div {padding:22px}
.album-details {margin-top:12px;font-size:.88rem}
.album-details summary {cursor:pointer;color:#137d9e;font-weight:650}
.album-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}
.album-grid img {width:100%;height:180px;object-fit:contain;background:#edf1f4;border-radius:8px}
.avatar.with-photo {overflow:hidden}
.avatar.with-photo img {width:100%;height:100%;object-fit:cover;display:block}
.profile-link {display:inline-block;margin:8px 0 0 12px;color:#137d9e;font-size:.86rem}
.research-photograph {margin:18px 0 24px;max-width:650px}
.research-photograph img {width:100%;max-height:390px;object-fit:cover;border-radius:12px}
@media(max-width:700px){.photo-card>div{padding:15px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* AFM-G v2.6: all scientific media are unobstructed and fully visible */
.research-card .card-art, .research-card .card-art::before,.research-card .card-art::after {content:none!important;box-shadow:none!important;}
.research-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.research-card {display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid #dbe6ec;border-radius:6px;background:#fff}
.research-card .card-art {height:250px;max-height:250px;min-height:250px;display:flex;justify-content:center;align-items:center;padding:8px;position:relative;overflow:hidden;background:#fff}
.research-card .card-art img {display:block;position:static!important;inset:auto!important;transform:none!important;opacity:1!important;filter:none!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;mix-blend-mode:normal!important}
.research-card .card-body {flex:1;padding:22px}
.hero-visual {height:350px!important;min-height:0!important;max-height:350px!important;overflow:hidden!important;display:flex;justify-content:center;align-items:center;background:#fff}
.hero-visual img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;position:static!important;transform:none!important}
.research-photograph {box-sizing:border-box;max-width:850px!important;width:100%;margin:16px auto 28px!important;padding:14px!important;max-height:none!important;height:auto!important;overflow:visible!important;background:#fff;border:1px solid #e1e9ec}
.research-photograph a{display:block;text-align:center}
.research-photograph img{display:block;object-fit:contain!important;position:static!important;width:100%!important;height:auto!important;max-height:420px!important;max-width:100%!important;margin:auto;transform:none!important}
.research-photograph figcaption{margin-top:12px;text-align:center;font-size:13px;color:#526579}
@media(max-width:900px){.research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.research-grid{grid-template-columns:1fr}.research-card .card-art{height:250px;max-height:250px;min-height:250px}.research-photograph img{max-height:360px!important}.hero-visual{height:260px!important;max-height:260px!important}}

/* People profile layout fix v2.8: dedicated PI region, no oversized image */
.pi-section .pi-profile {display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);align-items:start;gap:30px;padding:28px;border:1px solid #dbe6ec;border-radius:8px;background:#fff;max-width:100%;min-width:0;overflow:hidden}
.pi-section .pi-profile > img.pi-photo {display:block;width:100% !important;max-width:240px !important;height:auto !important;max-height:320px !important;aspect-ratio:3/4;object-fit:contain !important;position:static !important;transform:none !important;border-radius:6px}
.pi-section .pi-overview {min-width:0;overflow-wrap:anywhere}
.pi-section .pi-overview h3 {margin-top:0;font-size:clamp(20px,2vw,28px)}
.pi-section .pi-profile .pi-details, .pi-section .pi-profile .pi-full {grid-column:1/-1;min-width:0}
.pi-section .pi-profile :is(p,li,a){overflow-wrap:anywhere}
@media(max-width:650px){.pi-section .pi-profile{grid-template-columns:1fr;gap:20px;padding:18px}.pi-section .pi-profile > img.pi-photo{max-width:200px !important;max-height:265px !important}.pi-section .pi-profile .pi-details,.pi-section .pi-profile .pi-full{grid-column:1}}


/* v2.8H Home representative image: two stacked panels */
.hero-visual.hero-visual-stack{height:350px!important;max-height:350px!important;min-height:0!important;display:flex!important;flex-direction:column!important;gap:12px!important;padding:12px!important;justify-content:center!important;align-items:stretch!important;background:#fff!important;overflow:hidden!important}
.hero-visual.hero-visual-stack img{position:static!important;display:block!important;flex:1 1 0!important;width:100%!important;height:calc((100% - 12px) / 2)!important;max-width:100%!important;max-height:none!important;object-fit:contain!important;border:1px solid #e1e8ef!important;background:#fff!important}
@media(max-width:760px){.hero-visual.hero-visual-stack{height:300px!important;max-height:300px!important;gap:10px!important;padding:10px!important}.hero-visual.hero-visual-stack img{height:calc((100% - 10px) / 2)!important}}

/* v2.8V: responsive, uncropped original slide 50 video */
.hero-visual.hero-visual-video{height:350px!important;max-height:350px!important;min-height:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:12px!important;overflow:hidden!important;background:#081e31!important}
.hero-visual.hero-visual-video video{display:block!important;position:static!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;background:#081e31!important}
@media(max-width:760px){.hero-visual.hero-visual-video{height:240px!important;max-height:240px!important;padding:8px!important}}

/* v2.8C - original collaboration partners, two-column lab directory */
.collab-section .section-head{margin-bottom:30px}
.collab-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}
.collab-group{background:white;border:1px solid #dce7ed;border-radius:10px;padding:24px 28px;min-width:0}
.collab-group-heading{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid #e5edf2}
.collab-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:#147b99;background:#eaf6f7;font-size:12px;font-weight:750;flex-shrink:0}
.collab-group-heading h3{font-size:19px;line-height:1.3;margin:0;color:#09253d}
.collab-items{list-style:none;padding:0;margin:0}
.collab-items li{padding:17px 0;border-bottom:1px solid #e9eff3;display:flex;flex-direction:column;gap:5px}
.collab-items li:last-child{border-bottom:0;padding-bottom:0}
.collab-items strong{font-size:15px;line-height:1.4;color:#102c42;font-weight:700}
.collab-items span{color:#657b8d;font-size:13px;line-height:1.5}
@media(max-width:820px){.collab-columns{grid-template-columns:1fr}.collab-group{padding:20px}}

/* v2.8D: Center the home video vertically beside the introduction, desktop only. */
@media(min-width:761px){
  .hero-grid > .hero-visual.hero-visual-video{align-self:center!important;margin-top:28px!important;}
}
@media(max-width:760px){
  .hero-grid > .hero-visual.hero-visual-video{align-self:stretch!important;margin-top:0!important;}
}
