
:root{--ub-blue:#005bbb;--ub-blue-dark:#003b71;--navy:#12263a;--gold:#e8aa14;--text:#1f2937;--muted:#5b6574;--bg:#fff;--soft:#f4f7fb;--border:#d7e1ea;--shadow:0 6px 20px rgba(15,23,42,.07);--radius:14px;--container:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.5;color:var(--text);background:var(--bg)}img{max-width:100%;display:block}a{color:var(--ub-blue);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(var(--container),calc(100% - 2rem));margin-inline:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.6rem .9rem;z-index:99}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:50}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem 0}.brand{display:flex;align-items:center;gap:.7rem;color:inherit}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:999px;background:linear-gradient(135deg,var(--ub-blue),var(--ub-blue-dark));color:#fff;font-weight:800}.brand small{display:block;color:var(--muted);font-size:.77rem}.site-nav{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}

.site-nav a{
    padding:.48rem .72rem;
    color:var(--ub-blue-dark);
    font-weight:700;
    background:#f1f7fd;
    border:1px solid #d4e5f5;
    border-radius:9px;
    transition:all .18s ease;
}

.site-nav a:hover{
    background:#dceeff;
    border-color:var(--ub-blue);
    color:var(--ub-blue-dark);
    text-decoration:none;
}

.site-nav a.active{
    background:var(--ub-blue);
    border-color:var(--ub-blue);
    color:#fff;
    box-shadow:0 2px 7px rgba(0,91,187,.22);
}

.menu-toggle{display:none;background:none;border:0;padding:.25rem;cursor:pointer}.menu-toggle span{display:block;width:25px;height:3px;background:var(--navy);margin:5px 0;border-radius:3px}.hero,.page-hero{padding:3.1rem 0 1.8rem;background:linear-gradient(180deg,#f7fbff,white)}.hero-grid,.page-hero-inner,.feature-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:1.6rem;align-items:center}.hero h1,.page-hero h1{font-size:clamp(2rem,3vw,3.25rem);line-height:1.08;margin:.35rem 0 .8rem}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.74rem;color:var(--ub-blue-dark);font-weight:800;margin:0 0 .35rem}.title-stack{color:var(--muted);font-weight:700;font-size:.96rem}.lead{font-size:1.04rem;color:#334155;max-width:70ch}.hero-actions,.button-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.9rem}.button{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.68rem 1rem;border:1px solid var(--border);font-weight:700;font-size:.93rem;text-decoration:none}.button:hover{text-decoration:none;transform:translateY(-1px)}.button-primary{background:var(--ub-blue);color:#fff;border-color:var(--ub-blue)}.button-secondary{background:#fff;color:var(--navy)}.portrait-card,.card,.project-card,.news-card,.person-card,.callout,.metric,.compact-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.portrait-card{overflow:hidden;max-width:470px;margin-left:auto}.portrait-card img{width:100%;aspect-ratio:4/4.65;object-fit:cover}.portrait-caption{padding:.8rem .95rem}.portrait-caption span{display:block;color:var(--muted);font-size:.9rem}.quick-links{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff}.quick-links .container{display:flex;gap:.9rem;flex-wrap:wrap;padding:.7rem 0}.quick-links a{font-weight:700;font-size:.92rem}.section{padding:2.45rem 0}.section-tight{padding:1.7rem 0}.section-soft{background:var(--soft)}.section-blue{background:linear-gradient(135deg,var(--ub-blue-dark),var(--ub-blue));color:#fff}.section-blue h2,.section-blue p,.section-blue .eyebrow{color:#fff}.section-heading{margin-bottom:1rem}.section-heading h2{font-size:clamp(1.5rem,2.1vw,2rem);line-height:1.18;margin:.15rem 0 .35rem}.section-heading p{color:var(--muted);max-width:76ch;margin:.25rem 0}.section-blue .section-heading p{color:#e9f1ff}.grid-4,.grid-3,.grid-2,.project-grid,.metrics,.person-grid,.news-grid,.compact-grid{display:grid;gap:.8rem}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.person-grid,.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.metric,.person-card,.news-card,.compact-card{padding:.9rem}.card h3,.project-card h3,.person-card h3,.news-card h3,.compact-card h3{margin:.05rem 0 .3rem;line-height:1.22;font-size:1.02rem}.card p,.project-card p,.person-card p,.news-card p,.metric span,.compact-card p{color:var(--muted);margin:.3rem 0}.card-icon,.page-hero-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:rgba(0,91,187,.1);color:var(--ub-blue)}.card-icon svg,.page-hero-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.feature-image img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);aspect-ratio:4/3;object-fit:cover}.tag{display:inline-block;background:#e8f1fb;color:var(--ub-blue-dark);font-size:.72rem;font-weight:800;padding:.24rem .5rem;border-radius:999px;margin-bottom:.45rem}.project-card{overflow:hidden}.project-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#eef5fb}.project-content{padding:.85rem .95rem}.project-meta,.role,.news-date,.pub-type{font-size:.81rem;color:var(--ub-blue-dark);font-weight:800}.metric{padding:.85rem;text-align:center}.metric strong{display:block;font-size:1.55rem;color:var(--ub-blue-dark)}.metric span{font-size:.84rem}.anchor-nav{background:#fff;border-bottom:1px solid var(--border)}.anchor-nav .container{display:flex;gap:.9rem;overflow:auto;padding:.58rem 0}.anchor-nav a{white-space:nowrap;font-weight:700;color:var(--navy);font-size:.9rem}.timeline{display:grid;gap:.7rem}.timeline-item{padding-left:.85rem;border-left:3px solid #d9e6f5}.timeline-item .date{display:inline-block;font-size:.8rem;font-weight:800;color:var(--ub-blue-dark);margin-bottom:.1rem}.timeline-item h3{margin:.05rem 0;font-size:1rem}.timeline-item p{margin:.15rem 0;color:var(--muted)}.prose p{margin:.55rem 0}.compact-list,.check-list,.dense-list{padding-left:1.05rem;margin:.45rem 0}.compact-list li,.check-list li,.dense-list li{margin:.22rem 0}.pill-list,.logo-cloud,.filters{display:flex;flex-wrap:wrap;gap:.5rem}.pill,.partner,.filter-button{padding:.36rem .65rem;border-radius:999px;border:1px solid var(--border);background:#fff;font-weight:700;color:#334155;font-size:.88rem}.search-box{width:100%;padding:.75rem .9rem;border:1px solid var(--border);border-radius:12px;margin:.1rem 0 .8rem}.filter-button{cursor:pointer}.filter-button.active{background:var(--ub-blue);border-color:var(--ub-blue);color:#fff}.publication-list{display:grid;gap:.65rem;margin-top:.8rem}.publication{padding:.8rem .9rem;border:1px solid var(--border);border-radius:12px;background:#fff}.publication h3{margin:.18rem 0;font-size:1rem}.publication p{margin:.2rem 0;color:var(--muted)}.no-results{margin-top:.8rem;color:var(--muted)}.editable-note{padding:.7rem .85rem;border-left:4px solid var(--gold);background:#fff8e6;border-radius:10px;color:#6b5b00;font-size:.9rem}.sr-only{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.site-footer{background:#0f172a;color:#d5deea;padding:2.15rem 0 .9rem;margin-top:1.4rem}.site-footer a{color:#e9f1ff}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}.footer-brand .brand-mark{background:rgba(255,255,255,.18)}.footer-note{color:#b4c0d0;font-size:.9rem}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.18);margin-top:.9rem;padding-top:.8rem;font-size:.88rem}.back-to-top{position:fixed;right:1rem;bottom:1rem;width:40px;height:40px;border-radius:999px;border:0;background:var(--ub-blue);color:#fff;box-shadow:var(--shadow);display:none;cursor:pointer}.back-to-top.show{display:block}.person-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:999px;background:#dbeafe;color:var(--ub-blue-dark);font-weight:800;margin-bottom:.55rem}.logo-cloud .partner{background:#f8fbff}.callout{padding:.95rem}.text-link{font-weight:700}.text-link svg,.button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.data-table th,.data-table td{padding:.62rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--border);font-size:.91rem}.data-table th{background:#edf4fb;color:var(--navy);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.data-table tr:last-child td{border-bottom:0}.process-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:.55rem}.process-step{padding:.72rem;border:1px solid var(--border);border-radius:12px;background:#fff}.process-step strong{display:block;color:var(--ub-blue-dark);margin-bottom:.15rem}.process-step span{font-size:.87rem;color:var(--muted)}details.disclosure{border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow);overflow:hidden}details.disclosure summary{cursor:pointer;padding:.78rem .9rem;font-weight:800;color:var(--navy);background:#f8fbff}details.disclosure[open] summary{border-bottom:1px solid var(--border)}details.disclosure .details-body{padding:.85rem}.partner-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.partner-group{padding:.85rem;border:1px solid var(--border);border-radius:12px;background:#fff}.partner-group h3{margin:.05rem 0 .35rem}.role-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.role-item{padding:.8rem;border-left:4px solid var(--ub-blue);background:#fff;border-radius:8px;box-shadow:var(--shadow)}.role-item strong{display:block;color:var(--navy)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.gallery figure{margin:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.gallery figcaption{padding:.55rem .65rem;color:var(--muted);font-size:.85rem}.profile-links{display:flex;flex-wrap:wrap;gap:.55rem}.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.contact-item{padding:.85rem;border:1px solid var(--border);border-radius:12px;background:#fff}.contact-item h3{margin:.05rem 0}.contact-item p{margin:.2rem 0;color:var(--muted)}
@media (max-width:1000px){.metrics{grid-template-columns:repeat(3,1fr)}.compact-grid{grid-template-columns:repeat(2,1fr)}.site-nav{position:fixed;inset:68px 1rem auto 1rem;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:.9rem;display:none;flex-direction:column;align-items:flex-start}.site-nav.open{display:flex}.menu-toggle{display:block}.header-inner{padding:.65rem 0}.hero-grid,.page-hero-inner,.feature-layout,.grid-4,.grid-3,.grid-2,.project-grid,.person-grid,.news-grid,.footer-grid,.partner-groups,.contact-grid{grid-template-columns:1fr 1fr}.process-strip{grid-template-columns:repeat(3,1fr)}}
@media (max-width:680px){.hero-grid,.page-hero-inner,.feature-layout,.grid-4,.grid-3,.grid-2,.project-grid,.person-grid,.news-grid,.metrics,.footer-grid,.compact-grid,.partner-groups,.role-list,.contact-grid,.gallery,.process-strip{grid-template-columns:1fr}.quick-links .container{gap:.6rem}.section{padding:2rem 0}.page-hero-icon{display:none}.data-table{display:block;overflow-x:auto}.portrait-card{margin:0 auto}}

/* Expanded media, research, facilities, and event galleries */
.footer-grid>div:not(:first-child) a{display:block;margin:.28rem 0}.subsection-title{margin:1.4rem 0 .7rem;color:var(--navy)}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.video-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}.video-embed{position:relative;padding-top:56.25%;background:#0f172a}.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-placeholder{aspect-ratio:16/9;background:linear-gradient(135deg,var(--ub-blue-dark),var(--ub-blue));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.video-placeholder span{font-size:1.2rem;font-weight:800}.video-placeholder strong{font-size:1.7rem;margin-top:.3rem}.video-copy{padding:.9rem}.video-copy h3{margin:.05rem 0 .35rem}.video-copy p{color:var(--muted);margin:.3rem 0}
.project-category-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.project-list-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);padding:1rem}.project-list-card h3{margin:.05rem 0 .65rem}.project-name-list{columns:2;column-gap:1.4rem;padding-left:1.1rem;margin:0}.project-name-list li{break-inside:avoid;margin:0 0 .42rem;color:#334155}
.facility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.facility-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}.facility-card>img{width:100%;aspect-ratio:16/10;object-fit:cover}.facility-copy{padding:.9rem}.facility-copy h3{margin:.05rem 0 .35rem}.facility-copy p{margin:.3rem 0;color:var(--muted)}.facility-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3px;background:#dfe8f0}.facility-gallery .gallery-thumb:first-child{grid-row:span 2}.facility-gallery .gallery-thumb img{height:100%}.coming-soon{font-weight:800;color:var(--ub-blue-dark)!important}
.research-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.research-project-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}.research-project-card>img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#eef5fb}.research-project-copy{padding:1rem}.research-project-copy h3{margin:.05rem 0 .45rem}.research-project-copy p{color:var(--muted);margin:.45rem 0}.project-team{border-top:1px solid var(--border);padding-top:.6rem}.student-parenthetical{font-weight:500;font-size:.88rem;color:var(--muted)}

.event-tabs{
    display:flex;
    gap:.55rem;
    overflow-x:auto;
    padding:.45rem .15rem 1rem;
}

.event-tab{
    border:2px solid var(--ub-blue);
    background:#eaf4ff;
    color:var(--ub-blue-dark);
    padding:.62rem .9rem;
    border-radius:999px;
    font-weight:800;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 2px 6px rgba(0,91,187,.12);
    transition:all .18s ease;
}

.event-tab:hover{
    background:#d7ebff;
    transform:translateY(-1px);
    box-shadow:0 4px 10px rgba(0,91,187,.18);
}

.event-tab.active{
    background:var(--ub-blue);
    border-color:var(--ub-blue-dark);
    color:#fff;
    box-shadow:0 4px 12px rgba(0,91,187,.30);
}

.event-panel{border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);padding:1rem}.event-panel[hidden]{display:none}.event-panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.event-panel-head h3{margin:.05rem 0 .3rem;font-size:1.35rem}.event-panel-head p{margin:.25rem 0;color:var(--muted);max-width:75ch}.featured-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.9rem}.gallery-thumb{border:0;padding:0;background:#eef5fb;cursor:pointer;overflow:hidden;border-radius:10px}.gallery-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .2s ease}.gallery-thumb:hover img{transform:scale(1.025)}.event-awards{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.event-awards h4{margin:.05rem 0 .55rem}.award-photo-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.award-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.7rem}.award-item{border-left:4px solid var(--gold);background:#f8fbff;padding:.65rem .75rem;border-radius:8px}.award-item span{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--ub-blue-dark)}.award-item h4{margin:.15rem 0}.award-item p{margin:0;color:var(--muted);font-size:.88rem}
.gallery-dialog,.lightbox-dialog{border:0;border-radius:16px;padding:0;box-shadow:0 20px 60px rgba(0,0,0,.3);background:#fff;color:var(--text)}.gallery-dialog{width:min(1100px,94vw);height:min(88vh,900px)}.gallery-dialog::backdrop,.lightbox-dialog::backdrop{background:rgba(4,14,28,.82)}.dialog-head{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem}.dialog-head h2{margin:.05rem 0}.dialog-close{border:0;background:#e9f1f8;color:var(--navy);width:40px;height:40px;border-radius:999px;font-size:1.7rem;line-height:1;cursor:pointer}.dialog-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;padding:1rem}.dialog-photo-grid button{border:0;padding:0;background:#eef5fb;border-radius:10px;overflow:hidden;cursor:pointer}.dialog-photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}.lightbox-dialog{width:min(1200px,96vw);height:min(94vh,920px);background:#071321}.lightbox-dialog figure{height:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 4.5rem 1rem}.lightbox-dialog img{max-width:100%;max-height:calc(100% - 3rem);object-fit:contain}.lightbox-dialog figcaption{color:#dce8f4;margin-top:.7rem}.lightbox-close{position:absolute;right:.7rem;top:.7rem;z-index:3}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:64px;border:0;border-radius:10px;background:rgba(255,255,255,.15);color:#fff;font-size:2.5rem;cursor:pointer}.lightbox-nav.prev{left:.7rem}.lightbox-nav.next{right:.7rem}
@media(max-width:1000px){.video-grid,.facility-grid{grid-template-columns:1fr 1fr}.research-project-grid{grid-template-columns:1fr}.dialog-photo-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.video-grid,.project-category-grid,.facility-grid,.award-list{grid-template-columns:1fr}.project-name-list{columns:1}.featured-gallery{grid-template-columns:1fr 1fr}.award-photo-strip{grid-template-columns:1fr 1fr}.event-panel-head{display:block}.event-panel-head .button{margin-top:.6rem}.dialog-photo-grid{grid-template-columns:1fr 1fr}.lightbox-dialog figure{padding:3rem .5rem 1rem}.lightbox-nav{top:auto;bottom:.6rem;height:42px}.lightbox-nav.prev{left:30%}.lightbox-nav.next{right:30%}.facility-gallery{grid-template-columns:1fr 1fr}.facility-gallery .gallery-thumb:first-child{grid-column:span 2;grid-row:auto}}

/* Local video preview links avoid embedded-player Error 153 while preserving the current card style. */
.video-preview-link{position:absolute;inset:0;display:block;background:#0f172a}
.video-preview-link img{width:100%;height:100%;object-fit:cover}
.video-preview-link:hover{text-decoration:none;filter:brightness(1.04)}


/* ===== Final visual refinements ===== */

/* Video cards: make it clearer that the previews are clickable */
.video-card{
    transition:transform .2s ease, box-shadow .2s ease;
}

.video-card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(15,23,42,.16);
}

.video-preview-link img{
    transition:transform .25s ease, filter .25s ease;
}

.video-card:hover .video-preview-link img{
    transform:scale(1.025);
    filter:brightness(1.05);
}

.video-preview-link:hover{
    text-decoration:none;
}


/* In-page navigation: clearer but still secondary to main navigation */
.anchor-nav{
    background:#f8fbff;
    border-top:1px solid #e1edf8;
    border-bottom:1px solid #cddff0;
}

.anchor-nav .container{
    display:flex;
    gap:1.15rem;
    overflow:auto;
    padding:.68rem 0;
}

.anchor-nav a{
    white-space:nowrap;
    font-weight:750;
    color:var(--ub-blue-dark);
    font-size:.91rem;
    padding:.28rem .05rem;
    border-bottom:2px solid transparent;
    transition:color .18s ease, border-color .18s ease;
}

.anchor-nav a:hover{
    color:var(--ub-blue);
    border-bottom-color:var(--ub-blue);
    text-decoration:none;
}
