{"id":1628,"date":"2026-10-25T09:19:09","date_gmt":"2026-10-25T01:19:09","guid":{"rendered":"https:\/\/oasis.eng.buffalo.edu\/?page_id=1628"},"modified":"2026-10-25T10:02:37","modified_gmt":"2026-10-25T02:02:37","slug":"lab-director","status":"publish","type":"page","link":"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-director\/","title":{"rendered":"Lab Director"},"content":{"rendered":"\n<!-- OASIS site: 3-Lab-Director -- 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\/\" aria-current=\"page\">Director<\/a><\/li><li><a href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-team\/\">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>Director<\/h1><p>Sayanti Mukherjee, Ph.D.<\/p><\/div><\/div>\n<section><div class=\"wrap dir-top\">\n  <img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2019\/07\/UB-Headshots-1.jpg\" alt=\"Portrait of Dr. Sayanti Mukherjee\">\n  <div>\n    <h2>Sayanti Mukherjee, Ph.D.<\/h2>\n    <p class=\"role\">Associate Professor, Industrial and Systems Engineering, University at Buffalo<\/p>\n    <p>Dr. Mukherjee&#8217;s research is multidisciplinary. She builds quantitative models of systemic impacts on critical infrastructure and communities, conducts risk-informed decision analysis, and proposes adaptation strategies that make the built environment and communities more sustainable and resilient.<\/p>\n    <p>She is also Adjunct Associate Professor in Electrical and Computer Engineering and Affiliate Faculty of UB&#8217;s Institute for Artificial Intelligence and Data Science.<\/p>\n    <div class=\"links\">\n      <a class=\"btn btn-primary\" href=\"mailto:sayantim@buffalo.edu\">Email<\/a>\n      <a class=\"btn btn-line\" href=\"https:\/\/scholar.google.com\/citations?hl=en&#038;user=7yewQVsAAAAJ\">Google Scholar<\/a>\n      <a class=\"btn btn-line\" href=\"http:\/\/www.linkedin.com\/in\/sayantimukherjee\">LinkedIn<\/a>\n    <\/div>\n  <\/div>\n<\/div><\/section>\n\n<section class=\"tint\"><div class=\"wrap grid g2\">\n  <div><h2>Education<\/h2><ul class=\"tl\">\n    <li><span class=\"when\">2017<\/span><strong>Ph.D., Civil Engineering, Purdue University<\/strong>Dissertation on risk-based decision analysis for severe weather-induced power outages. Advisor: Dr. Makarand Hastak.<\/li>\n    <li><span class=\"when\">2016<\/span><strong>M.S., Economics (Econometrics), Purdue University<\/strong><\/li>\n    <li><span class=\"when\">2011<\/span><strong>M.S., Civil Engineering, Iowa State University<\/strong>Advisor: Dr. Jennifer Shane.<\/li>\n    <li><span class=\"when\">2008<\/span><strong>B.S., Construction Engineering and Management, Jadavpur University<\/strong>First rank and University Gold Medal.<\/li>\n  <\/ul><\/div>\n  <div><h2>Appointments<\/h2><ul class=\"tl\">\n    <li><span class=\"when\">2024\u2013present<\/span><strong>Affiliate Faculty, Institute for AI and Data Science, UB<\/strong><\/li>\n    <li><span class=\"when\">2023\u20132026<\/span><strong>Adjunct Assistant Professor, Electrical and Computer Engineering, UB<\/strong><\/li>\n    <li><span class=\"when\">Sep 2026\u2013present<\/span><strong>Associate Professor, Industrial and Systems Engineering, UB<\/strong><\/li>\n    <li><span class=\"when\">Sep 2026\u2013present<\/span><strong>Adjunct Associate Professor, Electrical and Computer Engineering, UB<\/strong><\/li>\n    <li><span class=\"when\">2018\u20132026<\/span><strong>Assistant Professor, Industrial and Systems Engineering, UB<\/strong><\/li>\n    <li><span class=\"when\">2018<\/span><strong>Visiting Assistant Professor, Industrial Engineering, Purdue<\/strong><\/li>\n    <li><span class=\"when\">2017\u20132018<\/span><strong>Postdoctoral Research Assistant, Civil Engineering, Purdue<\/strong><\/li>\n  <\/ul><\/div>\n<\/div><\/section>\n\n<section><div class=\"wrap\">\n  <h2>Service and leadership<\/h2>\n  <div class=\"grid g3\" style=\"margin-top:20px\">\n    <div class=\"card svc\"><div class=\"svc-pic dark\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2026\/10\/sra-chauncey-starr-award.jpg\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><h3>Society for Risk Analysis<\/h3><p>Chair, Risk Science Committee (2021\u2013present). Chair (2021\u201322) and Vice Chair (2019\u201320), Engineering and Infrastructure Specialty Group. Symposium chair on wildfire, grid resilience and data-driven risk (2019\u20132024).<\/p><\/div>\n    <div class=\"card svc\"><div class=\"svc-pic \"><img decoding=\"async\" src=\"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/Aerial%20photography%20of%20big%20white%20fire%20smoke%20from%20forest%20fire.jpg?width=800\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><h3>Workshops and conferences<\/h3><p>Lead organizer, NSF-funded workshop on equitable wildfire emergency management and critical infrastructure (Natural Hazards Conference, 2024). Session moderator, DOE Cybersecurity and Technology Innovation Conference (2022). Track chair, IISE DAIS (2022).<\/p><\/div>\n    <div class=\"card svc\"><div class=\"svc-pic \"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2021\/09\/Screen-Shot-2021-09-16-at-1.02.59-PM-1024x772.png\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><h3>Reviewing and editorial<\/h3><p>NSF panelist (HDBE, NSF-NIST Disaster Resilience). Guest editor, Socio-Economic Planning Sciences. Review editor, Frontiers in Sustainable Cities. 60+ journal reviews.<\/p><\/div>\n    <div class=\"card svc\"><div class=\"svc-pic \"><img decoding=\"async\" src=\"https:\/\/commons.wikimedia.org\/wiki\/Special:FilePath\/Bukit%20Batok%20Transmission%20Towers.jpg?width=800\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><h3>Industry and consulting<\/h3><p>Peer reviewer for the U.S. EPA Climate Change Indicators Report (via Versar, 2020). Energy demand forecasting advice for Customer Care Network and the New York Power Authority (2018\u201319).<\/p><\/div>\n    <div class=\"card svc\"><div class=\"svc-pic face\"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2019\/07\/UB-Headshots-1.jpg\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><h3>University at Buffalo<\/h3><p>Founder and faculty adviser, SRA UB Student Chapter. Graduate Affairs Committee. SEAS energy systems expert for NYPA renewable goals (2023).<\/p><\/div>\n    <div class=\"card svc\"><div class=\"svc-pic \"><img decoding=\"async\" src=\"https:\/\/oasis.eng.buffalo.edu\/wp-content\/uploads\/2023\/03\/natural_disaster_1_.5481cd754500a.jpg\" alt=\"\" loading=\"lazy\" onerror=\"this.remove()\"><\/div><h3>Outreach<\/h3><p>Speaker, International Visitor Leadership Program on critical infrastructure (2023). WiSE panelist (2023). Tech Savvy workshop chair for girls in grades 6\u201312 (2019). American Red Cross disaster relief volunteer.<\/p><\/div>\n  <\/div>\n<\/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 Director Sayanti Mukherjee, Ph.D. Sayanti Mukherjee, Ph.D. Associate Professor, Industrial and Systems Engineering, University at Buffalo Dr. Mukherjee&#8217;s research is multidisciplinary. She builds<\/p>\n<div class=\"clear\"><\/div>\n<p><a class=\"ReadMore\" href=\"https:\/\/oasis.eng.buffalo.edu\/index.php\/lab-director\/\">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-1628","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1628","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=1628"}],"version-history":[{"count":1,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1628\/revisions"}],"predecessor-version":[{"id":1629,"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/pages\/1628\/revisions\/1629"}],"wp:attachment":[{"href":"https:\/\/oasis.eng.buffalo.edu\/index.php\/wp-json\/wp\/v2\/media?parent=1628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}