{"id":1630,"date":"2026-10-25T09:24:42","date_gmt":"2026-10-25T01:24:42","guid":{"rendered":"https:\/\/oasis.eng.buffalo.edu\/?page_id=1630"},"modified":"2026-10-25T10:02:43","modified_gmt":"2026-10-25T02:02:43","slug":"lab-team","status":"publish","type":"page","link":"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-team\/","title":{"rendered":"Lab Team"},"content":{"rendered":"\n<!-- OASIS site: 4-Lab-Team -- paste this whole file into one Elementor HTML widget -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Public+Sans:wght@400;500;600;700&#038;family=Source+Serif+4:opsz,wght@8..60,500;8..60,600&#038;display=swap\" rel=\"stylesheet\">\n<style>\n:root{\n  --ink:#1B2E22; --forest:#24583A; --leaf:#3E8A56; --leaf-deep:#2C6B40;\n  --mint:#E4F2DE; --paper:#F4F9F1; --line:#D3E4CC; --muted:#4D6154; --white:#FFFFFF;\n  --ember:#B85A2A;\n  --serif:\"Source Serif 4\", Georgia, \"Times New Roman\", serif;\n  --sans:\"Public Sans\", \"Segoe UI\", Helvetica, Arial, sans-serif;\n}\n*{box-sizing:border-box}\nhtml,body{margin:0}\nhtml{scroll-padding-top:80px}\nbody{font-family:var(--sans);color:var(--ink);background:var(--white);font-size:17px;line-height:1.6}\na{color:var(--leaf-deep)}\na:focus-visible,button:focus-visible{outline:3px solid var(--ember);outline-offset:3px}\nimg{max-width:100%}\n.wrap{max-width:1140px;margin:0 auto;padding:0 24px}\n.measure{max-width:68ch}\n\n\/* header *\/\n.nav{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}\n.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px}\n.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink)}\n.brand b{font-family:var(--serif);font-weight:600;font-size:1.45rem;letter-spacing:.03em;color:var(--forest)}\n.brand span{font-size:.8rem;color:var(--muted)}\n.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px 18px;font-size:.93rem}\n.nav ul a{color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}\n.nav ul a:hover{color:var(--leaf-deep)}\n.nav ul a[aria-current]{color:var(--leaf-deep);border-bottom-color:var(--leaf)}\n.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:6px;padding:6px 12px;font:600 .9rem var(--sans);color:var(--ink);cursor:pointer}\n\n\/* page heading band *\/\n.page-head{background:var(--mint);border-bottom:1px solid var(--line)}\n.page-head .wrap{padding-top:52px;padding-bottom:44px}\n.page-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;margin:0 0 10px;color:var(--forest)}\n.page-head p{margin:0;color:var(--muted);max-width:62ch;font-size:1.05rem}\n\nsection{padding:68px 0}\n.tint{background:var(--paper)}\nh2{font-family:var(--serif);font-weight:600;font-size:clamp(1.55rem,2.6vw,2.05rem);line-height:1.2;margin:0 0 14px;color:var(--forest)}\nh3{font-size:1.08rem;margin:0 0 8px;line-height:1.35}\n.lead{font-size:1.08rem;color:var(--muted)}\n.sec-top{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:24px}\n.sec-top h2{margin:0}\n\n\/* buttons *\/\n.btn{display:inline-block;padding:10px 18px;border-radius:6px;font-weight:600;font-size:.95rem;text-decoration:none;border:1px solid transparent}\n.btn-primary{background:var(--leaf-deep);color:#fff}\n.btn-primary:hover{background:var(--forest)}\n.btn-line{border-color:var(--leaf);color:var(--leaf-deep);background:var(--white)}\n\n\/* hero *\/\n.hero video{display:block;width:100%;aspect-ratio:16\/9;max-height:74vh;object-fit:cover;background:var(--ink)}\n.hero-media{position:relative}\n.hero-media button{position:absolute;top:14px;right:14px;font:500 .85rem var(--sans);background:rgba(255,255,255,.88);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px 12px;cursor:pointer}\n.hero-text{background:var(--mint);border-bottom:1px solid var(--line)}\n.hero-text .wrap{padding-top:40px;padding-bottom:44px;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:end}\n.hero-text h1{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.13;margin:0;color:var(--forest)}\n.hero-text p{margin:0;color:var(--muted);font-size:1.05rem}\n.cta{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}\n\n\/* hazard-to-household chain *\/\n.chain{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0}\n.chain li{position:relative;padding:26px 22px 4px 0}\n.chain li::before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:var(--c)}\n.chain li:not(:last-child)::after{content:\"\";position:absolute;top:-5px;right:-1px;border-left:12px solid var(--c);border-top:8px solid transparent;border-bottom:8px solid transparent}\n.chain .step{font-weight:700;font-size:.85rem;color:var(--c);display:block;margin-bottom:4px}\n.chain p{margin:0;font-size:.95rem;color:var(--muted)}\n.chain li:nth-child(1){--c:var(--ember)}\n.chain li:nth-child(2){--c:#8C7A2E}\n.chain li:nth-child(3){--c:var(--leaf)}\n.chain li:nth-child(4){--c:var(--forest)}\n\n\/* generic card grid *\/\n.grid{display:grid;gap:22px}\n.g2{grid-template-columns:repeat(2,1fr)}\n.g3{grid-template-columns:repeat(3,1fr)}\n.card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:24px}\n.card p{margin:0 0 10px;color:var(--muted);font-size:.95rem}\n.card p:last-child{margin-bottom:0}\n.meta{font-size:.84rem;color:var(--muted);margin:0 0 8px}\n.tag{display:inline-block;font-size:.76rem;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--mint);color:var(--leaf-deep);margin:0 6px 8px 0}\n.tag.warm{background:#F7E7DC;color:#8A3E17}\n.tag.gold{background:#F3EDCF;color:#6B5A12}\n\n\/* slider *\/\n.slider{position:relative}\n.track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 18px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}\n.slide{flex:0 0 calc((100% - 40px)\/3);scroll-snap-align:start;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}\n.slide .pic{aspect-ratio:16\/9;background:var(--g,linear-gradient(135deg,#2C6B40,#8CC08E));position:relative}\n.slide .pic img{width:100%;height:100%;object-fit:cover;display:block}\n.slide .body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}\n.slide h3{font-size:1.02rem;margin:0 0 6px}\n.slide p{margin:0 0 12px;font-size:.92rem;color:var(--muted)}\n.slide .more{margin-top:auto;font-weight:600;font-size:.9rem}\n.slide.fire .pic{--g:linear-gradient(135deg,#7A2E12,#C8662B 55%,#E8B04A)}\n.slide.sat .pic{--g:linear-gradient(135deg,#1E3D2B,#3E8A56 55%,#9ED3A4)}\n.slide.wind .pic{--g:linear-gradient(135deg,#2F5D6B,#5FA3A0 55%,#CDE8C4)}\n.slide.plain{border-top:5px solid var(--leaf)}\n.slide.plain.award{border-top-color:var(--ember)}\n.slide.plain.data{border-top-color:#8C7A2E}\n.ctrls{display:flex;gap:8px}\n.ctrls button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--forest);font-size:1.1rem;cursor:pointer}\n.ctrls button:hover{background:var(--mint)}\n\n\/* people *\/\n.person{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:start}\n.person img{width:120px;height:120px;border-radius:50%;object-fit:cover;background:var(--mint);border:3px solid var(--mint)}\n.person h3{margin:0 0 2px}\n.role{font-size:.88rem;color:var(--leaf-deep);font-weight:600;margin:0 0 8px}\n\n\/* director *\/\n.dir-top{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}\n.dir-top img{width:100%;border-radius:10px;border:1px solid var(--line)}\n.links{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}\n.tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}\n.tl li{position:relative;padding:0 0 18px 22px}\n.tl li::before{content:\"\";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--leaf);border:2px solid var(--white)}\n.tl .when{font-size:.84rem;color:var(--muted)}\n.tl strong{display:block}\n\n\/* publications *\/\n.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}\n.jump a{padding:6px 14px;border-radius:20px;border:1px solid var(--line);background:var(--white);text-decoration:none;font-size:.9rem;color:var(--forest)}\n.jump a:hover{background:var(--mint)}\n.pubs{list-style:none;margin:0;padding:0;counter-reset:none}\n.pubs li{padding:14px 0;border-top:1px solid var(--line);font-size:.95rem;display:grid;grid-template-columns:52px 1fr;gap:12px}\n.pubs .id{font-weight:700;color:var(--leaf-deep);font-size:.85rem;padding-top:2px}\n.pubs em{color:var(--ink)}\n\n\/* awards *\/\n.award-list{list-style:none;margin:0;padding:0}\n.award-list li{padding:14px 0;border-top:1px solid var(--line)}\n.award-list li:first-child{border-top:0;padding-top:0}\n.award-list .yr{font-weight:700;color:var(--ember);font-size:.85rem}\n.award-list strong{display:block}\n.award-list span.d{font-size:.9rem;color:var(--muted)}\n\n\/* join + footer *\/\n.join{display:grid;grid-template-columns:1.2fr 1fr;gap:48px}\naddress{font-style:normal;color:var(--muted)}\nfooter{background:var(--forest);color:#D9EBD6;padding:28px 0;font-size:.88rem}\nfooter .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}\nfooter a{color:#fff}\n\n@media (max-width:960px){\n  .slide{flex-basis:calc((100% - 20px)\/2)}\n  .g3{grid-template-columns:1fr 1fr}\n}\n@media (max-width:860px){\n  .menu-btn{display:block}\n  .nav ul{display:none;position:absolute;left:0;right:0;top:66px;background:var(--white);border-bottom:1px solid var(--line);flex-direction:column;padding:8px 24px 16px;gap:0}\n  .nav ul.open{display:flex}\n  .nav ul a{display:block;padding:10px 0}\n  .hero-text .wrap,.join,.dir-top{grid-template-columns:1fr;gap:20px}\n  .dir-top img{max-width:240px}\n  .chain{grid-template-columns:1fr 1fr;row-gap:12px}\n  .chain li:nth-child(2)::after{display:none}\n  .g2{grid-template-columns:1fr}\n  section{padding:52px 0}\n}\n@media (max-width:600px){\n  .slide{flex-basis:86%}\n  .g3,.chain{grid-template-columns:1fr}\n  .chain li::after{display:none}\n  .person{grid-template-columns:84px 1fr}\n  .person img{width:84px;height:84px}\n}\n@media (prefers-reduced-motion:reduce){.track{scroll-behavior:auto}}\n.person img,.dir-top img{color:transparent;font-size:0}\n\/* chain pictures *\/\n.chain li{padding-top:0}\n.chain li::before{top:auto}\n.chain-pic{position:relative;aspect-ratio:16\/10;border-radius:10px;overflow:hidden;margin:0 14px 22px 0;border:1px solid var(--line)}\n.chain-pic svg,.chain-pic img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}\n.chain li .step{position:relative;padding-top:20px}\n.chain li .step::before{content:\"\";position:absolute;top:0;left:0;right:-22px;height:6px;background:var(--c)}\n.chain li::before,.chain li::after{display:none}\n.chain li:not(:last-child) .step::after{content:\"\";position:absolute;top:-5px;right:-23px;border-left:12px solid var(--c);border-top:8px solid transparent;border-bottom:8px solid transparent}\n.chain li:last-child .step::before{right:0}\n@media (max-width:860px){.chain li:nth-child(2) .step::after{display:none}.chain li .step::before{right:0}}\n@media (max-width:600px){.chain li .step::after{display:none}.chain-pic{margin-right:0}}\n\/* news card illustrations *\/\n.slide .pic svg,.slide .pic img{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}\n.track{scrollbar-width:none}\n.track::-webkit-scrollbar{display:none}\n\/* bigger OASIS *\/\n.brand b{font-size:2.1rem;line-height:1;letter-spacing:.06em}\n.nav .wrap{min-height:78px}\n.nav ul{font-size:.95rem}\n@media (max-width:860px){.nav ul{top:78px}.brand b{font-size:1.8rem}}\n.hero-text h1 .wordmark{display:block;font-size:clamp(4.5rem,13vw,9.5rem);line-height:.9;letter-spacing:.06em;color:var(--forest);margin-bottom:14px}\n.hero-text h1 .fullname{display:block;font-size:clamp(1.25rem,2.4vw,1.8rem);line-height:1.25;color:var(--leaf-deep);font-weight:500;max-width:22ch}\n.hero-text .wrap{align-items:center}\n\n\/* year tabs *\/\n.years{display:flex;flex-wrap:wrap;gap:8px}\n.years button{font:600 .95rem var(--sans);padding:8px 16px;border-radius:20px;border:1px solid var(--line);background:var(--white);color:var(--forest);cursor:pointer}\n.years button:hover{background:var(--mint)}\n.years button[aria-selected=\"true\"]{background:var(--leaf-deep);border-color:var(--leaf-deep);color:#fff}\n.year-label{display:flex;align-items:baseline;gap:14px;margin:30px 0 -34px}\n.year-label h2{margin:0;font-size:clamp(2rem,4vw,2.8rem)}\n.year-label span{color:var(--muted);font-size:.95rem}\n.slide[hidden]{display:none}\n.slide .pic{background:var(--g,linear-gradient(135deg,#2C6B40,#8CC08E))}\n@media (max-width:600px){.year-label{margin-bottom:8px}}\n\/* news categories *\/\n.cats{display:flex;gap:0;border-bottom:2px solid var(--line);margin-bottom:28px}\n.cats button{font:600 1.05rem var(--sans);padding:12px 22px;border:0;background:none;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}\n.cats button:hover{color:var(--forest)}\n.cats button[aria-selected=\"true\"]{color:var(--forest);border-bottom-color:var(--leaf-deep)}\n.place{font-size:.86rem !important;color:var(--leaf-deep) !important;font-weight:600;margin:-4px 0 12px !important}\n@media (max-width:600px){.cats button{padding:10px 12px;font-size:.95rem}}\n.slide .pic img.contain{object-fit:contain;background:#2458A6}\n.feature{display:grid;grid-template-columns:360px 1fr;gap:40px;align-items:center}\n.feature img{width:100%;border-radius:10px;border:1px solid var(--line)}\n@media (max-width:860px){.feature{grid-template-columns:1fr}.feature img{max-width:420px}}\n.slide .pic img.contain.dark{background:#4A2A17}\n\/* service cards with pictures *\/\n.card.svc{padding:0;overflow:hidden}\n.card.svc h3{padding:20px 24px 0}\n.card.svc p{padding:0 24px 22px}\n.svc-pic{aspect-ratio:16\/9;background:linear-gradient(135deg,#2C6B40,#8CC08E);position:relative}\n.svc-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n.svc-pic.dark{background:#4A2A17}\n.svc-pic.dark img{object-fit:contain}\n.svc-pic.face img{object-position:50% 22%}\n\n\/* ================= dynamic, flowing layer ================= *\/\n\/* scroll progress *\/\n.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--ember),#E8B04A,var(--leaf));z-index:50}\n\n\/* glass nav that tightens on scroll *\/\n.nav{background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);transition:box-shadow .3s}\n.nav .wrap{transition:min-height .3s}\n.nav.scrolled{box-shadow:0 6px 24px -14px rgba(27,46,34,.35)}\n.nav.scrolled .wrap{min-height:62px}\n.nav.scrolled .brand b{font-size:1.7rem}\n.brand b{transition:font-size .3s}\n.nav ul a{position:relative;border-bottom:0}\n.nav ul a::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--leaf);transform:scaleX(0);transform-origin:left;transition:transform .3s}\n.nav ul a:hover::after,.nav ul a[aria-current]::after{transform:scaleX(1)}\n\n\/* flowing, drifting color fields in heading bands *\/\n.page-head,.hero-text{position:relative;overflow:hidden;isolation:isolate}\n.page-head::before,.hero-text::before{content:\"\";position:absolute;inset:-40%;z-index:-1;\n  background:\n   radial-gradient(35% 45% at 20% 30%,rgba(62,138,86,.28),transparent 70%),\n   radial-gradient(30% 40% at 80% 20%,rgba(232,176,74,.22),transparent 70%),\n   radial-gradient(40% 50% at 60% 90%,rgba(95,163,160,.25),transparent 70%);\n  animation:drift 22s ease-in-out infinite alternate}\n@keyframes drift{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(4%,-3%) rotate(6deg)}100%{transform:translate(-4%,3%) rotate(-5deg)}}\n\n\/* wave edges between sections *\/\n.page-head,.hero-text,.tint,.stats-band{--wave:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L1440,0 L1440,30 C1200,62 960,4 720,28 C480,52 240,6 0,34 Z'\/%3E%3C\/svg%3E\")}\n.page-head,.hero-text{border-bottom:0;padding-bottom:30px;-webkit-mask:var(--wave) bottom\/100% 40px no-repeat,linear-gradient(#000,#000) top\/100% calc(100% - 39px) no-repeat;mask:var(--wave) bottom\/100% 40px no-repeat,linear-gradient(#000,#000) top\/100% calc(100% - 39px) no-repeat}\n.tint{position:relative;margin-top:-1px}\n.tint::before,.tint::after{content:\"\";position:absolute;left:0;right:0;height:40px;background:var(--paper);-webkit-mask:var(--wave) center\/100% 100% no-repeat;mask:var(--wave) center\/100% 100% no-repeat;pointer-events:none}\n.tint::before{top:-39px;transform:scaleY(-1)}\n.tint::after{bottom:-39px}\n.tint{z-index:1}\n\n\/* stats band *\/\n.stats-band{background:var(--forest);color:#fff;padding:44px 0 50px;position:relative}\n.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}\n.stats b{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:1;color:#CFEBC6}\n.stats span{display:block;margin-top:8px;font-size:.95rem;color:#D9EBD6;max-width:22ch}\n@media (max-width:760px){.stats{grid-template-columns:1fr 1fr;row-gap:30px}}\n\n\/* cards: lift and slow image zoom *\/\n.card,.slide{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}\n.card:hover,.slide:hover{transform:translateY(-6px);box-shadow:0 18px 36px -22px rgba(27,46,34,.45)}\n.slide .pic img,.svc-pic img,.chain-pic img,.chain-pic svg{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.slide:hover .pic img,.card.svc:hover .svc-pic img,.chain li:hover .chain-pic svg,.chain li:hover .chain-pic img{transform:scale(1.06)}\n.slide .pic,.svc-pic,.chain-pic{overflow:hidden}\n.btn{transition:transform .2s,background .2s,box-shadow .2s}\n.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(27,46,34,.6)}\n\n\/* scroll reveal *\/\n.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}\n.reveal.in{opacity:1;transform:none}\n\/* chain bar draws itself *\/\n.chain li .step::before{transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.6,.1,.3,1);transition-delay:calc(var(--d,0s) + .2s)}\n.chain li.in .step::before,.chain li:not(.reveal) .step::before{transform:scaleX(1)}\n.chain li .step::after{opacity:0;transition:opacity .3s;transition-delay:calc(var(--d,0s) + .8s)}\n.chain li.in .step::after,.chain li:not(.reveal) .step::after{opacity:1}\n\n\/* hero wordmark shimmer on load *\/\n.hero-text h1 .wordmark{background:linear-gradient(100deg,var(--forest) 30%,var(--leaf) 45%,#8CC08E 50%,var(--leaf) 55%,var(--forest) 70%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 3.5s ease-out .4s 1 both}\n@keyframes shine{from{background-position:100% 0}to{background-position:0 0}}\n\n\/* footer wave *\/\nfooter{position:relative;margin-top:60px;padding-top:34px}\n.footer-wave{position:absolute;left:0;right:0;top:-59px;width:100%;height:60px;display:block}\n.footer-wave path{fill:var(--forest)}\n\n@media (prefers-reduced-motion:reduce){\n  .page-head::before,.hero-text::before,.hero-text h1 .wordmark{animation:none}\n  .reveal{opacity:1;transform:none;transition:none}\n  .card,.slide,.slide .pic img,.btn{transition:none}\n  .card:hover,.slide:hover,.btn:hover{transform:none}\n  .progress{display:none}\n}\n\n\/* NSF RAPID spotlight *\/\n.rapid-head{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start;margin-bottom:34px}\n.rapid-head h2{font-size:clamp(1.7rem,3vw,2.4rem)}\n.facts{margin:0;display:grid;gap:14px;background:var(--mint);border-radius:12px;padding:22px 24px}\n.facts dt{font-size:.8rem;font-weight:700;color:var(--leaf-deep)}\n.facts dd{margin:2px 0 0;font-size:.98rem}\n.rapid-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}\n.video-card video{width:100%;border-radius:12px;display:block;background:var(--ink);aspect-ratio:16\/9}\n.rapid-grid .card p{font-size:.93rem}\n.sub{font-family:var(--serif);font-weight:600;font-size:1.45rem;color:var(--forest);margin:48px 0 16px}\n.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px}\n.gallery .g{margin:0;position:relative;border-radius:12px;overflow:hidden;background:var(--mint)}\n.gallery .g.wide{grid-column:span 2;grid-row:span 2}\n.gallery .g.tall{grid-row:span 2}\n.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.gallery .g:hover img{transform:scale(1.05)}\n.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;font-size:.85rem;line-height:1.4;color:#fff;background:linear-gradient(transparent,rgba(20,38,28,.85))}\n@media (max-width:900px){.rapid-head,.rapid-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:170px}}\n@media (max-width:520px){.gallery{grid-template-columns:1fr;grid-auto-rows:240px}.gallery .g.wide,.gallery .g.tall{grid-column:auto;grid-row:span 1}}\n.gallery .g.face img{object-position:50% 18%}\n.mods{grid-template-columns:repeat(4,1fr);margin-bottom:8px}\n.gallery.two{grid-template-columns:1fr 1fr;grid-auto-rows:auto}\n.gallery.two .g.wide{grid-column:auto;grid-row:auto;aspect-ratio:4\/3}\n@media (max-width:900px){.mods{grid-template-columns:1fr 1fr}}\n@media (max-width:520px){.mods,.gallery.two{grid-template-columns:1fr}}\n.doe-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}\n.doe-grid .gallery.two .g.tall{grid-row:auto;aspect-ratio:3\/4}\n@media (max-width:900px){.doe-grid{grid-template-columns:1fr}}\n\n\/* awards feature with two photos *\/\n.feature-pics{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.feature-pics img{width:100%;height:100%;aspect-ratio:3\/4;object-fit:cover;border-radius:10px;border:1px solid var(--line)}\n.feature{grid-template-columns:440px 1fr}\n@media (max-width:860px){.feature{grid-template-columns:1fr}}\n\n\/* interactive student awards *\/\n.chips{margin-bottom:26px}\n.sa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}\n.sa{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,opacity .35s}\n.sa:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 20px 38px -22px rgba(27,46,34,.5)}\n.sa.hide{display:none}\n.sa.pop{animation:pop .45s cubic-bezier(.2,.7,.2,1) both}\n@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}\n.sa-pic{position:relative;aspect-ratio:4\/3;background:linear-gradient(135deg,#24583A,#8CC08E);overflow:hidden}\n.sa-pic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.sa-pic.face img{object-position:50% 20%}\n.sa:hover .sa-pic img{transform:scale(1.07)}\n.sa-pic .yr{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.92);color:var(--ember);font-weight:700;font-size:.8rem;padding:3px 10px;border-radius:20px}\n.initials{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:3rem;color:#E4F2DE}\n.sa-body{padding:16px 18px 18px}\n.sa .who{margin:0 0 4px;font-size:.82rem;font-weight:700;color:var(--leaf-deep)}\n.sa h3{font-size:1rem;margin:0 0 6px}\n.sa p{margin:0 0 6px;font-size:.9rem;color:var(--muted)}\n.sa .cap{font-style:italic;font-size:.84rem}\n@media (max-width:1000px){.sa-grid{grid-template-columns:repeat(3,1fr)}}\n@media (max-width:760px){.sa-grid{grid-template-columns:1fr 1fr}}\n@media (max-width:480px){.sa-grid{grid-template-columns:1fr}}\n\n\/* team: single current student, larger *\/\n.g1{grid-template-columns:1fr}\n.lead-person .person{grid-template-columns:200px 1fr;gap:32px;align-items:center;padding:28px}\n.lead-person .person img{width:200px;height:200px}\n@media (max-width:600px){.lead-person .person{grid-template-columns:1fr}.lead-person .person img{width:160px;height:160px}}\n\n\/* lab moments: flowing masonry *\/\n.moments{columns:4 240px;column-gap:16px;margin-top:22px}\n.moments figure{break-inside:avoid;margin:0 0 16px;position:relative;border-radius:12px;overflow:hidden;background:var(--mint)}\n.moments img{width:100%;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}\n.moments figure:hover img{transform:scale(1.05)}\n.moments figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;font-size:.84rem;line-height:1.4;color:#fff;background:linear-gradient(transparent,rgba(20,38,28,.85));opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}\n.moments figure:hover figcaption,.moments figure:focus-within figcaption{opacity:1;transform:none}\n@media (hover:none){.moments figcaption{opacity:1;transform:none}}\n.chips{display:flex;flex-wrap:wrap;gap:8px}\n.chips button{font:600 .95rem var(--sans);padding:8px 16px;border-radius:20px;border:1px solid var(--line);background:var(--white);color:var(--forest);cursor:pointer;transition:background .2s,color .2s}\n.chips button:hover{background:var(--mint)}\n.chips button[aria-selected=\"true\"]{background:var(--leaf-deep);border-color:var(--leaf-deep);color:#fff}\n\n\/* flashing news bar *\/\n.flash{display:flex;align-items:center;gap:12px;justify-content:center;padding:9px 20px;background:linear-gradient(90deg,#7A2E12,#B85A2A,#D98A3A,#B85A2A,#7A2E12);background-size:300% 100%;animation:flow 9s linear infinite;color:#fff;text-decoration:none;font-size:.92rem;position:relative;z-index:21}\n.flash:hover .flash-more{text-decoration:underline}\n.flash-dot{width:9px;height:9px;border-radius:50%;background:#FFE7A8;box-shadow:0 0 0 0 rgba(255,231,168,.8);animation:ping 1.6s ease-out infinite;flex:none}\n.flash-tag{font-weight:700;font-size:.78rem;background:#fff;color:#8A3E17;border-radius:20px;padding:2px 10px;animation:blink 1.6s ease-in-out infinite;flex:none}\n.flash-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.flash-more{font-weight:700;flex:none;white-space:nowrap}\n@keyframes flow{to{background-position:300% 0}}\n@keyframes ping{0%{box-shadow:0 0 0 0 rgba(255,231,168,.8)}100%{box-shadow:0 0 0 12px rgba(255,231,168,0)}}\n@keyframes blink{0%,100%{opacity:1}50%{opacity:.55}}\n@media (max-width:700px){.flash{justify-content:flex-start;font-size:.85rem}.flash-more{display:none}}\n@media (prefers-reduced-motion:reduce){.flash,.flash-dot,.flash-tag{animation:none}}\n.pub-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}\n.pub-stats div{background:var(--mint);border-radius:12px;padding:16px 18px}\n.pub-stats b{display:block;font-family:var(--serif);font-size:2rem;color:var(--forest);line-height:1}\n.pub-stats span{font-size:.88rem;color:var(--muted)}\n@media (max-width:760px){.pub-stats{grid-template-columns:1fr 1fr}}\n.lead-person.g2 .person{grid-template-columns:150px 1fr;gap:24px;align-items:start;padding:24px}\n.lead-person.g2 .person img{width:150px;height:150px}\n@media (max-width:860px){.lead-person.g2{grid-template-columns:1fr}}\n@media (max-width:600px){.lead-person.g2 .person{grid-template-columns:1fr}}\n\n\n\/* WordPress \/ Elementor Canvas: let the page run edge to edge *\/\nbody.elementor-template-canvas{margin:0}\nbody.elementor-template-canvas .elementor-section .elementor-container,\nbody.elementor-template-canvas .e-con,body.elementor-template-canvas .e-con-inner{max-width:100%!important;width:100%!important;padding:0!important;gap:0!important}\nbody.elementor-template-canvas .elementor-column-gap-default>.elementor-column>.elementor-element-populated,\nbody.elementor-template-canvas .elementor-widget-wrap{padding:0!important}\nbody.elementor-template-canvas .elementor-widget-html{width:100%}\n.admin-bar .nav{top:32px}@media(max-width:782px){.admin-bar .nav{top:46px}}\n<\/style>\n<div class=\"progress\" aria-hidden=\"true\"><\/div>\n<a class=\"flash\" href=\"https:\/\/www.buffalo.edu\/news\/releases\/2026\/09\/university-at-buffalo-national-science-foundation-wildfire-resilience.html\"><span class=\"flash-dot\" aria-hidden=\"true\"><\/span><span class=\"flash-tag\">New<\/span><span class=\"flash-text\">UB leads a $2 million NSF project, REKINDLE, to help communities prepare for the cascading disasters wildfires unleash<\/span><span class=\"flash-more\">Read more \u203a<\/span><\/a>\n<header class=\"nav\">\n  <div class=\"wrap\">\n    <a class=\"brand\" href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-home\/\"><b>OASIS<\/b><span>University at Buffalo<\/span><\/a>\n    <button class=\"menu-btn\" type=\"button\" aria-expanded=\"false\" aria-controls=\"menu\">Menu<\/button>\n    <nav aria-label=\"Main\"><ul id=\"menu\"><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-home\/\">About<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-news\/\">News<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-director\/\">Director<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-team\/\" aria-current=\"page\">Team<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-research\/\">Research<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-publications\/\">Publications<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-awards\/\">Awards<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-teaching\/\">Teaching<\/a><\/li><\/ul><\/nav>\n  <\/div>\n<\/header>\n<main>\n<div class=\"page-head\"><div class=\"wrap\"><h1>Team<\/h1><p>The students and alumni behind OASIS research.<\/p><\/div><\/div>\n<section><div class=\"wrap\"><h2>Current students<\/h2><div class=\"grid g2 lead-person\" style=\"margin-top:20px\">\n<article class=\"card person\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/poulomee-headshot.jpg\" alt=\"Portrait of Poulomee Roy\"><div><h3>Poulomee Roy<\/h3><p class=\"role\">Ph.D. Student, Industrial and Systems Engineering<\/p><p>Studies critical infrastructure vulnerability under natural hazards, equity-based risk assessment and community resilience using AI and data-driven methods. M.S. in ISE (Data Analytics) from UB; B.Tech in Civil Engineering from NIT Durgapur; previously a decision scientist at ZS Associates.<\/p><p><a href=\"https:\/\/www.linkedin.com\/in\/poulomee-roy-13134a1a6\/\">LinkedIn<\/a><\/p><\/div><\/article>\n<article class=\"card person\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/suramyaa-sarkar.jpg\" alt=\"Portrait of Suramyaa Sarkar\"><div><h3>Suramyaa Sarkar<\/h3><p class=\"role\">Ph.D. Student, Industrial and Systems Engineering<\/p><p>Researches cyber-physical-social systems, IoT, decision support and systems engineering, building on a background in embedded systems and cybersecurity. Previously a Ph.D. researcher at the University of Oklahoma&#8217;s Systems Realization Laboratory, an AI-in-healthcare intern at Northwestern University, and a cybersecurity research fellow at IIT (BHU) Varanasi. B.E., Heritage Institute of Technology.<\/p><p><a href=\"https:\/\/www.linkedin.com\/in\/suramyaa-sarkar-3362351b6\/\">LinkedIn<\/a><\/p><\/div><\/article>\n<\/div><\/div><\/section>\n<section><div class=\"wrap\"><h2>Lab moments<\/h2><p class=\"lead measure\">Conferences, fieldwork and celebrations with the OASIS team.<\/p>\n<div class=\"moments\">\n<figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra2025-starr-1.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra2025-starr-1.jpg\" alt=\"Dr. Mukherjee receives the Chauncey Starr Award, with Poulomee Roy, at SRA 2025 in Washington, DC.\" loading=\"lazy\"><\/a><figcaption>Dr. Mukherjee receives the Chauncey Starr Award, with Poulomee Roy, at SRA 2025 in Washington, DC.<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra2025-zhiyuan-poulomee.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra2025-zhiyuan-poulomee.jpg\" alt=\"Alumnus Dr. Zhiyuan Wei and Poulomee Roy reunite at SRA 2025.\" loading=\"lazy\"><\/a><figcaption>Alumnus Dr. Zhiyuan Wei and Poulomee Roy reunite at SRA 2025.<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/pillars-2025-with-poulomee.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/pillars-2025-with-poulomee.jpg\" alt=\"Celebrating Dr. Mukherjee's 2025 Pillars of Leadership mentorship award.\" loading=\"lazy\"><\/a><figcaption>Celebrating Dr. Mukherjee&#8217;s 2025 Pillars of Leadership mentorship award.<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/seas-award-poulomee.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/seas-award-poulomee.jpg\" alt=\"Poulomee Roy at a UB School of Engineering and Applied Sciences awards ceremony.\" loading=\"lazy\"><\/a><figcaption>Poulomee Roy at a UB School of Engineering and Applied Sciences awards ceremony.<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/pr-field-1.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/pr-field-1.jpg\" alt=\"Fieldwork in Puerto Rico after Hurricane Fiona (2023).\" loading=\"lazy\"><\/a><figcaption>Fieldwork in Puerto Rico after Hurricane Fiona (2023).<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sai-1.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sai-1.jpg\" alt=\"Hosting the NSF wildfire emergency management workshop in Broomfield, CO (2024).\" loading=\"lazy\"><\/a><figcaption>Hosting the NSF wildfire emergency management workshop in Broomfield, CO (2024).<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/doe-poster-2.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/doe-poster-2.jpg\" alt=\"Presenting the DOE Science Synthesis Prize poster.\" loading=\"lazy\"><\/a><figcaption>Presenting the DOE Science Synthesis Prize poster.<\/figcaption><\/figure><figure><a href=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/pr-nhw-2024.jpg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/pr-nhw-2024.jpg\" alt=\"At the 49th Natural Hazards Workshop (2024).\" loading=\"lazy\"><\/a><figcaption>At the 49th Natural Hazards Workshop (2024).<\/figcaption><\/figure>\n<\/div><\/div><\/section>\n<section class=\"tint\"><div class=\"wrap\"><h2>Alumni<\/h2><div class=\"grid g2\" style=\"margin-top:20px\">\n<article class=\"card person\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2024\/12\/zhiyuan.jpeg\" alt=\"Portrait of Zhiyuan Wei, Ph.D.\"><div><h3>Zhiyuan Wei, Ph.D.<\/h3><p class=\"role\">Assistant Professor, Cal Poly San Luis Obispo<\/p><p>Ph.D. in Operations Research (2024). Dissertation on a data-driven mobility framework for equitable access to essential services.<\/p><p><a href=\"https:\/\/www.linkedin.com\/in\/zhiyuan-wei-b43bba1ba\/\">LinkedIn<\/a><\/p><\/div><\/article>\n<article class=\"card person\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2024\/12\/prasangsha.jpeg\" alt=\"Portrait of Prasangsha Ganguly, Ph.D.\"><div><h3>Prasangsha Ganguly, Ph.D.<\/h3><p class=\"role\">Revenue Management, American Airlines<\/p><p>Applied data science and operations research for interdependent infrastructure and wildfire risk. M.Tech, Disaster Mitigation and Management, IIT Roorkee.<\/p><p><a href=\"https:\/\/www.linkedin.com\/in\/prasangsha-ganguly-4b8054104\/\">LinkedIn<\/a><\/p><\/div><\/article>\n<article class=\"card person\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2024\/12\/aishwarya.jpeg\" alt=\"Portrait of Aishwarya Gupta\"><div><h3>Aishwarya Gupta<\/h3><p class=\"role\">Business Intelligence Engineer, Amazon<\/p><p>M.S., Industrial and Systems Engineering, UB. Statistical analysis, predictive modeling and operations research.<\/p><p><a href=\"https:\/\/www.linkedin.com\/in\/aisshwaryagupta\/\">LinkedIn<\/a><\/p><\/div><\/article>\n<article class=\"card person\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2019\/11\/Bryce-1024x992.png\" alt=\"Portrait of Ziyu (Bryce) Zhong\"><div><h3>Ziyu (Bryce) Zhong<\/h3><p class=\"role\">M.S. Security Informatics, Johns Hopkins<\/p><p>B.S., University at Buffalo. Algorithms for real-world problems.<\/p><p><a href=\"https:\/\/www.linkedin.com\/in\/zhong-ziyu-bryce\/\">LinkedIn<\/a><\/p><\/div><\/article>\n<\/div><\/div><\/section>\n<\/main>\n<footer><svg class=\"footer-wave\" viewBox=\"0 0 1440 80\" preserveAspectRatio=\"none\" aria-hidden=\"true\"><path d=\"M0,40 C240,90 480,0 720,30 C960,60 1200,10 1440,40 L1440,80 L0,80 Z\"\/><\/svg><div class=\"wrap\"><span>\u00a9 OASIS Lab \u00b7 Department of Industrial and Systems Engineering, University at Buffalo<\/span><span><a href=\"mailto:sayantim@buffalo.edu\">sayantim@buffalo.edu<\/a><\/span><\/div><\/footer>\n<script>\n(function(){\n  \/\/ mobile menu\n  var mb=document.querySelector('.menu-btn'), ul=document.querySelector('.nav ul');\n  if(mb&&ul){mb.addEventListener('click',function(){var o=ul.classList.toggle('open');mb.setAttribute('aria-expanded',o);});}\n  var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  \/\/ hero video\n  var v=document.getElementById('heroVideo'), b=document.getElementById('vidToggle');\n  if(v&&b){\n    var set=function(p){b.textContent=p?'Pause video':'Play video';};\n    if(!reduce){var pr=v.play(); if(pr&&pr.then){pr.then(function(){set(true)}).catch(function(){set(false)});}} else set(false);\n    b.addEventListener('click',function(){if(v.paused){v.play();set(true);}else{v.pause();set(false);}});\n  }\n  \/\/ sliders\n  document.querySelectorAll('.slider').forEach(function(s){\n    var t=s.querySelector('.track'), prev=s.querySelector('[data-dir=\"-1\"]'), next=s.querySelector('[data-dir=\"1\"]');\n    var step=function(){var c=t.querySelector('.slide');return c?c.getBoundingClientRect().width+20:300;};\n    var go=function(d){\n      var max=t.scrollWidth-t.clientWidth-4;\n      if(d>0&&t.scrollLeft>=max){t.scrollTo({left:0});}\n      else if(d<0&#038;&#038;t.scrollLeft<=0){t.scrollTo({left:t.scrollWidth});}\n      else t.scrollBy({left:d*step()});\n    };\n    if(prev)prev.addEventListener('click',function(){go(-1)});\n    if(next)next.addEventListener('click',function(){go(1)});\n    if(s.dataset.auto!==undefined&#038;&#038;!reduce){\n      var timer=null, start=function(){stop();timer=setInterval(function(){go(1)},5000)}, stop=function(){if(timer)clearInterval(timer)};\n      s.addEventListener('mouseenter',stop);s.addEventListener('mouseleave',start);\n      s.addEventListener('focusin',stop);s.addEventListener('focusout',start);\n      t.addEventListener('touchstart',stop,{passive:true});\n      start();\n    }\n  });\n})();\n(function(){\n  var tabs=document.querySelectorAll('.years button'); if(!tabs.length||!document.getElementById('yearNews')) return;\n  var slides=document.querySelectorAll('#yearNews .slide'), title=document.getElementById('yearTitle'), count=document.getElementById('yearCount'), track=document.querySelector('#yearNews .track');\n  function show(y){\n    var n=0;\n    slides.forEach(function(s){var on=(y==='all'||s.dataset.year===y); s.hidden=!on; if(on)n++;});\n    tabs.forEach(function(t){t.setAttribute('aria-selected',t.dataset.year===y?'true':'false');});\n    title.textContent = y==='all' ? 'All years' : y;\n    count.textContent = n+(n===1?' story':' stories');\n    track.scrollTo({left:0});\n  }\n  tabs.forEach(function(t){t.addEventListener('click',function(){show(t.dataset.year);});});\n  show(tabs[0].dataset.year);\n})();\n(function(){\n  var cats=document.querySelectorAll('.cats button'); if(!cats.length) return;\n  function show(c,push){\n    cats.forEach(function(b){b.setAttribute('aria-selected',b.dataset.cat===c?'true':'false');});\n    document.querySelectorAll('.cat-panel').forEach(function(p){p.hidden=p.id!==c;});\n    if(push) history.replaceState(null,'','#'+c);\n  }\n  cats.forEach(function(b){b.addEventListener('click',function(){show(b.dataset.cat,true);});});\n  var h=location.hash.replace('#','');\n  if(h==='events'||h==='announcements') show(h,false);\n})();\n(function(){\n  var reduce=window.matchMedia&#038;&#038;window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var nav=document.querySelector('.nav'), bar=document.querySelector('.progress');\n  function onScroll(){\n    var y=window.scrollY||0;\n    if(nav) nav.classList.toggle('scrolled',y>40);\n    if(bar){var h=document.documentElement.scrollHeight-window.innerHeight; bar.style.transform='scaleX('+(h>0?Math.min(1,y\/h):0)+')';}\n  }\n  window.addEventListener('scroll',onScroll,{passive:true}); onScroll();\n  if(reduce||!('IntersectionObserver' in window)) return;\n\n  \/\/ scroll reveal with gentle stagger inside groups\n  var groups=['.gallery','.mods','.sa-grid','.moments','.facts','.rapid-grid','.chain','.grid','.stats','.pubs','.tl','.award-list','.jump','.years','.cats'];\n  var singles=document.querySelectorAll('main h2, main .lead, .feature, .dir-top > *, .join > *, .hero-text .wrap > *');\n  var items=[];\n  singles.forEach(function(el){items.push(el);});\n  groups.forEach(function(sel){\n    document.querySelectorAll(sel).forEach(function(g){\n      Array.prototype.forEach.call(g.children,function(c,i){c.style.setProperty('--d',Math.min(i,8)*0.09+'s');items.push(c);});\n    });\n  });\n  var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:.12,rootMargin:'0px 0px -40px 0px'});\n  items.forEach(function(el){\n    if(el.getBoundingClientRect().top<window.innerHeight*0.9){return;} \/\/ already in view: leave static\n    el.classList.add('reveal'); io.observe(el);\n  });\n\n  \/\/ count-up numbers\n  var nums=document.querySelectorAll('[data-count]');\n  var io2=new IntersectionObserver(function(es){es.forEach(function(e){\n    if(!e.isIntersecting) return; io2.unobserve(e.target);\n    var el=e.target,end=+el.dataset.count,pre=el.dataset.prefix||'',suf=el.dataset.suffix||'',t0=null;\n    function step(t){if(!t0)t0=t;var p=Math.min(1,(t-t0)\/1400),dec=(el.dataset.count.split('.')[1]||'').length,v=end*(1-Math.pow(1-p,3));el.textContent=pre+(dec?v.toFixed(dec):Math.round(v).toLocaleString('en-US'))+suf;if(p<1)requestAnimationFrame(step);}\n    requestAnimationFrame(step);\n  });},{threshold:.5});\n  nums.forEach(function(n){io2.observe(n);});\n})();\n(function(){\n  var chips=document.querySelectorAll('.chips button'); if(!chips.length) return;\n  var cards=document.querySelectorAll('.sa');\n  chips.forEach(function(c){c.addEventListener('click',function(){\n    var w=c.dataset.who;\n    chips.forEach(function(x){x.setAttribute('aria-selected',x===c?'true':'false');});\n    cards.forEach(function(k,i){\n      var on=(w==='all'||k.dataset.who===w);\n      k.classList.toggle('hide',!on); k.classList.remove('pop');\n      if(on){void k.offsetWidth; k.style.animationDelay=(i%8)*0.04+'s'; k.classList.add('pop');}\n    });\n  });});\n})();\n\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>NewUB leads a $2 million NSF project, REKINDLE, to help communities prepare for the cascading disasters wildfires unleashRead more \u203a OASISUniversity at Buffalo Menu About News Director Team Research Publications Awards Teaching Team The students and alumni behind OASIS research. Current students Poulomee Roy Ph.D. Student, Industrial and Systems Engineering Studies critical infrastructure vulnerability under<\/p>\n<div class=\"clear\"><\/div>\n<p><a class=\"ReadMore\" href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-team\/\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1630","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/comments?post=1630"}],"version-history":[{"count":1,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1630\/revisions"}],"predecessor-version":[{"id":1631,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1630\/revisions\/1631"}],"wp:attachment":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/media?parent=1630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}