:root{--bg:#0B1E30;--bg2:#0E2540;--fg:#E6F1FB;--ac:#378ADD;--pk:#FF2D9B;--mu:#3D6080;--bd:#1A3A5C;--sn:#122E48;--gl:rgba(14,30,52,0.6);--gb:rgba(55,138,221,0.12)}
:root.light{--bg:#EDF0F5;--bg2:#E6EAF0;--fg:#1A3A5C;--ac:#2568A8;--pk:#D91A80;--mu:#5A7088;--bd:#B8C8D8;--sn:#0B1E3D;--gl:rgba(255,255,255,0.6);--gb:rgba(37,104,168,0.15)}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;background:var(--bg2);color:var(--fg);min-height:100vh;overflow-x:hidden;line-height:1.65;transition:background .5s,color .5s}
body.locked{overflow:hidden;height:100vh}a{text-decoration:none;color:inherit}::selection{background:rgba(255,45,155,0.25)}

/* Canvas + atmosphere */
#cv{position:fixed;inset:0;z-index:0;pointer-events:none}
.grl{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(55,138,221,0.12) 1px,transparent 1px),linear-gradient(90deg,rgba(55,138,221,0.12) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(circle,black,transparent 80%)}

/* Background snake watermark */
.bg-snake{position:fixed;right:-8%;top:50%;transform:translateY(-50%);width:90vw;max-width:1200px;opacity:0.3;z-index:1;pointer-events:none}
:root.light .bg-snake{opacity:0.12}
:root.light .grl{background-image:linear-gradient(rgba(5,20,55,0.08) 1px,transparent 1px),linear-gradient(90deg,rgba(5,20,55,0.08) 1px,transparent 1px)}

:root.light 
:root.light .gs{background:rgba(255,255,255,0.5)}
:root.light 

/* Entry gate */
#eg{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:transparent;transition:opacity 1.2s ease,transform 1.2s ease;cursor:pointer}
#eg.ex{opacity:0;transform:scale(1.05);pointer-events:none}
.logo-wrap{padding:5rem 4rem;position:relative;overflow:visible;background:transparent;border-radius:10px;display:flex;align-items:center;min-height:480px;width:100%;max-width:850px}
.logo-snake{position:absolute;top:40%;right:0;transform:translateY(-50%);width:290px;height:430px}
.logo-snake .glow{position:absolute;inset:0;opacity:.20;filter:blur(14px)}
.logo-snake .solid{position:absolute;inset:0}
.logo-content{position:relative;z-index:1;max-width:55%}
.lab-of{font-size:13px;font-weight:500;letter-spacing:12px;text-transform:uppercase;color:var(--pk);margin-bottom:20px}
.title-p{font-size:clamp(40px,8vw,64px);font-weight:800;color:var(--fg);letter-spacing:-2px;text-transform:uppercase;line-height:.90}
.title-a{font-size:clamp(40px,8vw,64px);font-weight:800;color:var(--ac);letter-spacing:-2px;text-transform:uppercase;line-height:.90;margin-top:6px}
.divider{display:flex;align-items:center;gap:12px;margin-top:32px}
.seg1{width:40px;height:2px;background:var(--pk);border-radius:1px;flex-shrink:0}
.seg2{width:200px;height:1px;background:var(--bd)}
.inst{font-size:11px;font-weight:300;letter-spacing:2px;color:var(--mu);margin-top:18px}

.eb{padding:16px 56px;border:2px solid var(--pk);color:var(--fg);font-size:12px;text-transform:uppercase;letter-spacing:.6em;font-weight:700;background:rgba(255,255,255,0.15);backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);border-radius:999px;cursor:pointer;transition:all .5s ease;font-family:inherit;box-shadow:0 0 24px rgba(255,45,155,0.25)}
.eb:hover{background:linear-gradient(135deg,rgba(255,45,155,1),rgba(217,26,128,1));color:#fff;transform:scale(1.1);border-color:rgba(255,45,155,0.8);box-shadow:0 0 40px rgba(255,45,155,0.5),0 0 80px rgba(255,45,155,0.3)}
.rg{position:absolute;border-radius:50%;border:1px solid rgba(255,45,155,0.25);animation:rp 5s ease-in-out infinite}
.rg:nth-child(1){width:300px;height:300px;top:50%;left:50%;margin:-150px 0 0 -150px}
.rg:nth-child(2){width:500px;height:500px;top:50%;left:50%;margin:-250px 0 0 -250px;animation-delay:1.5s}
.rg:nth-child(3){width:700px;height:700px;top:50%;left:50%;margin:-350px 0 0 -350px;animation-delay:3s}
@keyframes rp{0%,100%{transform:scale(1);opacity:.3}50%{transform:scale(1.06);opacity:.8}}

/* Nav */
#nv{position:fixed;top:0;left:0;right:0;z-index:100;padding:0 36px;height:56px;display:flex;align-items:center;justify-content:space-between;background:var(--gl);backdrop-filter:blur(32px) saturate(1.5);-webkit-backdrop-filter:blur(32px) saturate(1.5);border-bottom:1px solid var(--gb);opacity:0;transform:translateY(-100%);transition:all .8s ease}
#nv.vi{opacity:1;transform:translateY(0)}
.nav-logo{display:flex;align-items:center;gap:12px}.nav-logo svg{height:28px;width:auto}
.nav-logo .nm{font-size:14px;font-weight:800;letter-spacing:-0.5px}.nav-logo .nm .t1{color:var(--fg)}.nav-logo .nm .t2{color:var(--ac)}
.nvl{display:flex;align-items:center;gap:18px}.nvl a,.nvl button{font-family:'Outfit',sans-serif}.nvl a{font-size:10px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--fg);opacity:.9;transition:color .2s,opacity .2s}.nvl a:hover{color:var(--pk);opacity:1}
.ns{width:1px;height:12px;background:var(--bd)}

.gs{padding:26px 30px;border-radius:12px;background:rgba(8,22,40,0.5)}

/* Content */
#mc{position:relative;z-index:10;opacity:0;display:none;transition:opacity 1.4s ease;padding-bottom:60px}
#mc.vi{display:block;opacity:1}
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.rv.ac{opacity:1;transform:translateY(0)}
.ct{max-width:1060px;margin:0 auto;padding:0 40px}.sc{padding:100px 0}

/* ═══ FROSTED GLASS PANELS ═══ */
.gp>*{position:relative;z-index:3}
.gp{
  position:relative;
  overflow:visible;
  background:rgba(12,28,50,0.55);
  border:1px solid rgba(55,138,221,0.2);
  backdrop-filter:blur(28px) saturate(1.4);
  -webkit-backdrop-filter:blur(28px) saturate(1.4);
  border-radius:18px;
  padding:44px 48px;
  box-shadow:0 8px 32px rgba(0,0,0,0.2),0 2px 6px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.05);
  transition:border-color .4s ease,box-shadow .4s ease,transform .3s ease;
}
.gp::before{
  content:"";position:absolute;top:0;left:5%;right:5%;height:2px;border-radius:2px;z-index:4;
  background:linear-gradient(90deg,transparent 5%,rgba(255,45,155,0.5) 30%,rgba(55,138,221,0.4) 70%,transparent 95%);
}
.gp::after{
  content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:18px;pointer-events:none;z-index:1;
  background:radial-gradient(ellipse at 15% 10%,rgba(255,255,255,0.06) 0%,transparent 50%);
}
.gp:hover{
  border-color:rgba(55,138,221,0.35);
  box-shadow:0 12px 40px rgba(0,0,0,0.25),0 0 20px rgba(55,138,221,0.08),inset 0 1px 0 rgba(255,255,255,0.08);
  transform:translateY(-2px);
}
:root.light .gp{
  background:linear-gradient(145deg,rgba(240,245,255,0.65) 0%,rgba(220,230,250,0.45) 50%,rgba(240,245,255,0.55) 100%);
  border:1px solid rgba(180,200,230,0.5);
  border-top-color:rgba(200,215,240,0.8);
  border-left-color:rgba(195,210,235,0.7);
  box-shadow:0 8px 32px rgba(31,38,135,0.15),0 2px 8px rgba(0,0,0,0.06),0 0 0 1px rgba(100,130,180,0.08),inset 0 2px 0 rgba(255,255,255,0.8),inset 0 -1px 0 rgba(100,130,180,0.06);
  backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);
}
:root.light .gp::before{background:linear-gradient(90deg,transparent 5%,rgba(255,45,155,0.45) 30%,rgba(37,104,168,0.35) 70%,transparent 95%)}
:root.light .gp::after{background:radial-gradient(ellipse at 20% 15%,rgba(255,255,255,0.5) 0%,rgba(200,220,255,0.1) 30%,transparent 50%)}
:root.light .gp:hover{
  border-color:rgba(55,138,221,0.3);
  box-shadow:0 12px 40px rgba(31,38,135,0.18),0 4px 12px rgba(0,0,0,0.08),0 0 30px rgba(55,138,221,0.07),inset 0 2px 0 rgba(255,255,255,0.9);
  transform:translateY(-3px);
}

/* Funder logo strip (Recent Funding section) */
.funder-strip{margin:0 0 40px}
.funder-label{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--mu);margin-bottom:18px;font-weight:500}
.funder-row{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch}
.funder-chip{display:inline-flex;align-items:center;justify-content:center;padding:18px 26px;border-radius:14px;background:rgba(255,255,255,0.96);border:1px solid rgba(255,255,255,0.2);min-height:96px;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;cursor:pointer}
.funder-chip:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,0.25),0 0 16px rgba(255,45,155,0.18);border-color:rgba(255,45,155,0.4)}
.funder-chip img{display:block;width:auto;max-width:100%}
.funder-chip[data-fund="nsf"] img{height:60px}
.funder-chip[data-fund="nih"] img{height:34px}
.funder-chip[data-fund="aim"] img{height:56px}
:root.light .funder-chip{background:#fff;border:1px solid rgba(180,200,230,0.5);box-shadow:0 2px 8px rgba(31,38,135,0.06)}
:root.light .funder-chip:hover{border-color:rgba(217,26,128,0.5);box-shadow:0 8px 22px rgba(31,38,135,0.15),0 0 16px rgba(217,26,128,0.12)}
@media(max-width:640px){.funder-chip{min-height:76px;padding:14px 20px}.funder-chip[data-fund="nsf"] img{height:48px}.funder-chip[data-fund="nih"] img{height:28px}.funder-chip[data-fund="aim"] img{height:44px}}
/* JABSOM/CMB combined panel: campus banner + section divider */
.jc-banner{display:block;width:calc(100% + 96px);margin:-44px -48px 36px;aspect-ratio:1024/400;object-fit:cover;border-radius:17px 17px 0 0;position:relative;z-index:2;background:#04101E}
.jc-banner-cap{position:absolute;left:0;right:0;bottom:0;height:60%;border-radius:0;background:linear-gradient(180deg,transparent 0%,rgba(4,16,30,0.55) 70%,rgba(4,16,30,0.85) 100%);pointer-events:none}
:root.light .jc-banner-cap{background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,0.4) 70%,rgba(255,255,255,0.7) 100%)}
@media(max-width:860px){.jc-banner{width:calc(100% + 48px);margin:-28px -24px 28px}}
@media(max-width:680px){.jc-banner{width:calc(100% + 40px);margin:-24px -20px 24px}}
@media(max-width:480px){.jc-banner{width:calc(100% + 32px);margin:-20px -16px 20px}}
.jc-divider{border:none;height:1px;margin:38px 0;background:linear-gradient(90deg,transparent 0%,rgba(255,45,155,0.28) 30%,rgba(55,138,221,0.28) 70%,transparent 100%)}
:root.light .jc-divider{background:linear-gradient(90deg,transparent 0%,rgba(217,26,128,0.32) 30%,rgba(37,104,168,0.28) 70%,transparent 100%)}
/* PI headshot avatar */
.pi-avatar{width:128px;height:128px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,45,155,0.35);box-shadow:0 8px 24px rgba(0,0,0,0.25),0 0 0 1px rgba(55,138,221,0.18),inset 0 0 0 1px rgba(255,255,255,0.08);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;background:var(--bg)}
.pi-avatar:hover{transform:scale(1.04);border-color:rgba(255,45,155,0.7);box-shadow:0 12px 32px rgba(0,0,0,0.3),0 0 24px rgba(255,45,155,0.25),0 0 0 1px rgba(55,138,221,0.3),inset 0 0 0 1px rgba(255,255,255,0.1)}
:root.light .pi-avatar{border-color:rgba(217,26,128,0.45);box-shadow:0 8px 24px rgba(31,38,135,0.18),0 0 0 1px rgba(37,104,168,0.15),inset 0 1px 0 rgba(255,255,255,0.6);background:#fff}
:root.light .pi-avatar:hover{border-color:rgba(217,26,128,0.75);box-shadow:0 12px 32px rgba(31,38,135,0.25),0 0 24px rgba(217,26,128,0.2),0 0 0 1px rgba(37,104,168,0.25)}
@media(max-width:640px){.pi-avatar{width:96px;height:96px}}
.lb{font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--pk);margin-bottom:14px;font-weight:500}
.hd{font-weight:800;color:var(--fg);line-height:1.08;letter-spacing:-0.035em}.h2{font-size:clamp(24px,3.2vw,38px)}.h3{font-size:clamp(20px,2.5vw,28px)}
.kw{display:inline-block;padding:4px 14px;font-size:10px;font-weight:500;color:var(--ac);border:1px solid rgba(55,138,221,0.18);border-radius:4px;margin:0 6px 6px 0;cursor:pointer;transition:all .2s}.kw:hover{border-color:var(--pk);color:var(--pk);background:rgba(255,45,155,0.05)}
.pr{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--bd)40}.pr:last-child{border-bottom:none}
.py{font-size:14px;font-weight:300;color:var(--ac);opacity:.85;min-width:46px}.pj{font-size:10px;text-transform:uppercase;letter-spacing:2.5px;font-weight:600;margin-bottom:4px;color:var(--pk)}.pj.na{color:#ef5555}
.jl{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border-radius:4px;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-right:14px;vertical-align:middle;border:1px solid transparent;flex-shrink:0;font-family:'Outfit',sans-serif}
.jl-nature{background:#000;color:#fff;font-family:Georgia,serif;font-style:italic;letter-spacing:0.5px;text-transform:none;font-size:17px;padding:0 16px;font-weight:400}
.jl-elife{background:#fff;color:#000;font-family:Georgia,serif;letter-spacing:0;text-transform:none;font-size:16px;padding:0 16px;font-weight:600;border-radius:17px}
.jl-elife::before{content:"e";color:#0d8a3f;font-weight:700;margin-right:1px}
.jl-jaha{background:#c8102e;color:#fff;letter-spacing:1px;font-size:13px}
.jl-channels{background:#1a4d8c;color:#fff;letter-spacing:1px;font-size:13px}
.jl-cs{background:#2b3a55;color:#fff;letter-spacing:0.5px;font-size:12px}
.jl-heliyon{background:#f7941d;color:#fff;letter-spacing:1px;font-size:13px}
.jl-biorxiv{background:#be2026;color:#fff;letter-spacing:0.5px;font-size:13px;font-style:italic}
.jl-pearc{background:#005a9c;color:#fff;letter-spacing:1px;font-size:13px}
.jl-frontiers{background:#d64550;color:#fff;letter-spacing:1px;font-size:13px}
.jl-medicines{background:#2f8f83;color:#fff;letter-spacing:1px;font-size:13px}
.jl-default{background:rgba(255,255,255,0.06);color:var(--mu);border-color:rgba(255,255,255,0.12);letter-spacing:1px;font-size:13px}
.pa{font-size:16px;color:var(--fg);line-height:1.7;font-weight:300;margin-top:6px;font-style:italic;opacity:.85}
.pt2{font-size:15px;color:var(--fg);line-height:1.65;font-weight:300;opacity:.8}
.dl{font-size:10px;color:var(--mu);border:1px solid var(--bd);padding:5px 14px;border-radius:4px;font-weight:500;flex-shrink:0}
.cg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cts{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.ci{font-size:9px;letter-spacing:1.5px;font-weight:500;color:var(--ac)}.cs{font-size:8px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--mu)}
.cx{font-size:15px;font-weight:700;color:var(--fg);line-height:1.4;margin-bottom:10px}
.cd{font-size:12px;color:var(--mu);line-height:1.7;font-weight:300;margin-bottom:12px}
.ca{font-size:22px;font-weight:200;color:var(--ac)}.cp{font-size:10px;color:var(--mu)}
.ab{color:#48a078!important}.nb{color:#d4a048!important}
.vl{font-size:9px;color:var(--mu);border:1px solid var(--bd);padding:5px 14px;border-radius:4px;font-weight:500}
.mg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mv{font-size:48px;font-weight:200;color:var(--ac);line-height:1;margin-bottom:8px;letter-spacing:-0.04em}.ml{font-size:10px;color:var(--mu);font-weight:600;letter-spacing:2px;text-transform:uppercase}
.ccg{display:grid;grid-template-columns:1fr 1fr;gap:56px}.ccl{font-size:10px;letter-spacing:2.5px;color:var(--pk);margin-bottom:8px;font-weight:600;text-transform:uppercase}.ccv{font-size:14px;color:var(--fg);line-height:1.7;opacity:.8}.ccv a{border-bottom:1px solid var(--bd);padding-bottom:2px}
.ai{font-size:13px;color:var(--fg);opacity:.7;padding-left:16px;border-left:2px solid var(--bd);margin-bottom:10px}
.pls{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.pl{padding:6px 16px;font-size:10px;font-weight:600;letter-spacing:1px;color:var(--ac);border:1px solid rgba(55,138,221,0.2);border-radius:4px;transition:all .2s}.pl:hover{background:rgba(55,138,221,0.06)}.pl.pk{color:var(--pk);border-color:rgba(255,45,155,0.2)}
footer{padding:32px 40px;border-top:1px solid var(--bd)40;background:var(--gl);backdrop-filter:blur(16px)}footer .fn{max-width:1060px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}footer .co{font-size:10px;color:var(--mu)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.link-pill{font-size:9px;font-weight:600;letter-spacing:.5px;padding:5px 14px;border-radius:4px;border:1px solid var(--gb);color:var(--ac);transition:all .2s;display:inline-flex;align-items:center;gap:5px}
.link-pill:hover{border-color:var(--pk);color:var(--pk)}
.link-pill.paper{border-color:rgba(72,160,120,0.25);color:#48a078}
.link-pill.patent{border-color:rgba(212,160,72,0.25);color:#d4a048}
.link-pill.news{border-color:rgba(255,45,155,0.2);color:var(--pk)}
.area-bullets{margin:14px 0;padding-left:20px;list-style:none}.area-bullets li{font-size:13px;color:var(--fg);opacity:.7;line-height:1.8;font-weight:300;margin-bottom:6px;padding-left:14px;position:relative}.area-bullets li::before{content:"";position:absolute;left:0;top:10px;width:5px;height:5px;border-radius:50%;background:var(--pk);opacity:.6}

@keyframes btn-glow{0%,100%{box-shadow:0 0 25px rgba(255,45,155,0.3),0 0 50px rgba(55,138,221,0.15)}50%{box-shadow:0 0 40px rgba(255,45,155,0.45),0 0 70px rgba(55,138,221,0.25)}}
:root.light canvas{opacity:.5}
:root.light .bg-snake{opacity:.06!important}

@media(max-width:860px){.ct{padding:0 20px}.gp{padding:28px 24px}.gs{min-width:120px}.mv{font-size:36px}}
@media(max-width:680px){[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}.ct{padding:0 16px}.gp{padding:24px 20px}.pr{flex-direction:column;gap:4px}[style*="grid-template-columns:repeat(auto-fit"]{grid-template-columns:1fr!important}.logo-content{max-width:90%!important}.title-p,.title-a{font-size:clamp(28px,8vw,48px)!important}}
@media(max-width:480px){.gp{padding:20px 16px}.mv{font-size:28px}.pa{display:none}#nv .nvl{display:none}}
@media(-webkit-min-device-pixel-ratio:2){.gp{border-width:0.5px}}
@media(min-aspect-ratio:21/9){.ct{max-width:900px}}
@media print{#eg,#nv,canvas,.bg-snake,.eb,.rg{display:none!important}.gp{box-shadow:none;border:1px solid #ccc}body{background:#fff;color:#000}}

/* Clarity pass (2026-08-11): headings +2px, higher contrast; brighter nav */
.h2{font-size:clamp(26px,3.4vw,40px)}
.h3{font-size:clamp(22px,2.7vw,30px)}
.hd{color:#F4F9FF}
:root.light .hd{color:#0F2C4A}
.lb{font-size:13px;font-weight:600}
.nvl a{font-size:12px;opacity:1;font-weight:700}
#tg2:hover{border-color:var(--pk);color:var(--pk)}
