:root{
  --blue:#00a86b; --blue-hover:#008b59; --blue-10:#e8f5ee;
  --g100:#000052; --g90:#17174d; --g80:#30305f; --g70:#55556e; --g60:#77778b;
  --g30:#c9c9c3; --g20:#e1e0da; --g10:#f5f4f0; --white:#fff;
  --sans:'IBM Plex Sans',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',Menlo,Consolas,monospace;
  --mast:56px;
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.masthead{position:sticky;top:0;z-index:240;background:var(--g10);color:var(--g100);border-bottom:1px solid var(--g20);font-family:var(--sans)}
.masthead-inner{height:var(--mast);display:flex;align-items:center;padding:0 20px;gap:10px;max-width:100%}
.icon-btn.menu-toggle{display:none;place-items:center;width:40px;height:40px;border:0;background:transparent;font-size:22px;cursor:pointer;color:var(--g100);flex-shrink:0}
.brand{display:flex;align-items:center;gap:10px;font-size:16px;letter-spacing:.01em;padding:0 8px;white-space:nowrap;color:inherit;text-decoration:none}
.brand b{font-weight:600}
.primary-nav{display:flex;height:100%;margin-left:4px;align-items:stretch}
.primary-nav a,.nav-more{display:flex;align-items:center;gap:6px;height:100%;padding:0 13px;font-size:14px;color:var(--g80);background:none;border:0;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap;text-decoration:none;font-family:var(--sans)}
.primary-nav a:hover,.primary-nav a.is-active,.nav-more:hover,.nav-more[aria-expanded=true]{background:var(--g10);color:var(--g100)}
.primary-nav a:hover,.primary-nav a.is-active{box-shadow:inset 0 -2px 0 var(--blue)}
.nav-more{border-left:1px solid var(--g20);margin-left:4px}
.masthead-tools{margin-left:auto;display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-search-field{display:inline-flex;align-items:center;gap:8px;width:236px;height:36px;padding:0 12px;border:0;border-bottom:2px solid var(--g30);background:var(--g10);color:var(--g70);font:13px/1 var(--sans);cursor:text;text-align:left;transition:background .15s,border-color .15s,box-shadow .15s}
.nav-search-field:hover,.nav-search-field:focus-visible{background:#fff;border-bottom-color:var(--blue);color:var(--g100)}
.nav-search-field .search-icon{color:var(--g60);font-size:16px;line-height:1}
.nav-search-hint{position:relative;flex:1;min-width:0;overflow:hidden;height:18px}
.nav-search-hint span{position:absolute;inset:0;white-space:nowrap;transition:opacity .28s ease,transform .28s ease}
.nav-search-hint span.is-leave{opacity:0;transform:translateY(-8px)}
.nav-search-hint span.is-enter{opacity:0;transform:translateY(8px)}
.nav-search-hint span.is-show{opacity:1;transform:translateY(0)}
.mast-join{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;background:var(--blue);color:#fff;font-size:13px;text-decoration:none;white-space:nowrap}
.mast-join:hover{background:var(--blue-hover)}

.mega{position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - var(--mast));overflow:auto;background:#fff;border-top:1px solid var(--g20);box-shadow:0 18px 42px rgba(0,0,0,.16)}
.mega[hidden]{display:none}
.mega-shell{display:grid;grid-template-columns:1.15fr 2fr auto;gap:24px;padding:24px 32px 28px;max-width:1584px;margin:0 auto}
.mega-feature{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:14px;border:1px solid var(--g20);background:var(--g10)}
.mega-feature-image{overflow:hidden;background:var(--g20);min-height:140px}
.mega-feature-image img{width:100%;height:100%;object-fit:cover;display:block}
.mega-feature-copy{display:flex;flex-direction:column;justify-content:center;gap:10px}
.mega-feature-copy .eyebrow{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--g70)}
.mega-feature-copy h3{font-size:22px;font-weight:400;line-height:1.25;letter-spacing:-.02em;margin:0}
.mega-feature-copy a{color:var(--blue);font-size:14px;text-decoration:none}
.mega-feature-copy a:hover{text-decoration:underline}
.mega-panel-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-top:2px}
.mega-column{display:flex;flex-direction:column;gap:4px}
.mega-column h4{font-family:var(--mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--g60);margin:0 0 8px}
.mega-column a{display:block;padding:9px 10px;border:1px solid transparent;color:var(--g80);font-size:14px;text-decoration:none;transition:background .12s,color .12s,border-color .12s}
.mega-column a:hover{background:var(--blue-10);color:var(--blue);border-color:rgba(0,168,107,.12)}
.mega-column a span{display:block;font-size:12px;color:var(--g60);margin-top:2px}
.mega-actions{display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding-top:8px}
.mega-action-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 16px;background:var(--blue);color:#fff;font-size:14px;white-space:nowrap;text-decoration:none}
.mega-action-btn.secondary{background:transparent;border:1px solid var(--g20);color:var(--g100)}
.mega-action-btn:hover{filter:brightness(.98)}
.menu-backdrop{position:fixed;z-index:230;inset:var(--mast) 0 0;background:rgba(0,0,82,.45)}
.menu-backdrop[hidden]{display:none}

.search-popup{position:fixed;inset:0;z-index:260;display:grid;place-items:center;padding:24px;box-sizing:border-box}
.search-popup[hidden]{display:none}
.search-popup-backdrop{position:absolute;inset:0;background:rgba(17,17,17,.46)}
.search-popup-panel{position:relative;z-index:1;width:min(720px,100%);box-sizing:border-box;max-height:100%;overflow:auto;margin:0;background:#fff;border:1px solid var(--g20);box-shadow:0 28px 80px rgba(0,0,0,.22);padding:20px 20px 14px}
.search-popup-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.search-popup-header .eyebrow{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--g70)}
.search-close{background:transparent;border:1px solid var(--g20);padding:8px 12px;font-size:12px;cursor:pointer;color:var(--g80);font-family:var(--sans)}
.search-close:hover{border-color:var(--blue);color:var(--g100)}
.search-field{display:block}
.search-field input{width:100%;border:0;border-bottom:2px solid var(--g30);background:var(--g10);padding:16px 14px;font-size:18px;letter-spacing:-.02em;color:var(--g100);outline:none;font-family:var(--sans)}
.search-field input::placeholder{color:var(--g60)}
.search-field input:focus{border-bottom-color:var(--blue);background:#fff}
.search-results{max-height:360px;margin-top:12px;overflow:auto}
.search-results[hidden]{display:none}
.search-result{display:flex;flex-direction:column;gap:3px;width:100%;padding:12px 10px;border:0;border-bottom:1px solid var(--g10);text-align:left;background:#fff;color:var(--g100);cursor:pointer;font-family:var(--sans);text-decoration:none}
.search-result:hover,.search-result:focus-visible{background:var(--blue-10);outline:none}
.search-result strong{font-size:14px;font-weight:500}
.search-result span{font-size:12px;color:var(--g70)}
.search-empty,.search-status{padding:16px 4px;color:var(--g70);font-size:13px}

@media (max-width:1100px){
  .primary-nav a:nth-child(n+7){display:none}
  .nav-search-field{width:196px}
}
@media (max-width:960px){
  .icon-btn.menu-toggle{display:grid}
  .primary-nav{display:none}
  .nav-search-field{width:min(180px,32vw)}
  .nav-search-hint{display:none}
  .mega-shell{grid-template-columns:1fr;padding:16px}
  .mega-feature{grid-template-columns:1fr}
  .mega-feature-image{height:140px}
  .mega-panel-group{grid-template-columns:1fr 1fr}
  .mega-actions{flex-direction:row;flex-wrap:wrap}
  .mast-join{display:none}
}
@media (max-width:640px){
  .masthead-inner{padding:0 12px}
  .nav-search-field{width:44px;height:44px;padding:0;justify-content:center;border:1px solid var(--g20);background:#fff}
  .nav-search-field .search-icon{font-size:25px;line-height:1}
  .mega-panel-group{grid-template-columns:1fr}
  .search-popup{padding:16px;place-items:center}
  .search-popup-panel{width:100%;padding:18px 16px 14px}
  .search-field input{font-size:16px}
}
body.nav-lock{overflow:hidden}

@media(max-width:960px){
  .mega{position:fixed;top:var(--mast);left:0;right:auto;bottom:0;width:min(440px,100vw);max-height:none;border-top:0;border-right:1px solid var(--g20);box-shadow:12px 0 36px rgba(0,0,82,.15);overscroll-behavior:contain}
  .mega-shell{display:flex;flex-direction:column;gap:18px;min-height:100%;padding:18px 16px calc(24px + env(safe-area-inset-bottom))}
  .mega-feature{grid-template-columns:1fr;padding:16px;background:#f5f4f0}
  .mega-feature-image{display:none}
  .mega-feature-copy{gap:7px}
  .mega-feature-copy h3{font-size:19px}
  .mega-panel-group{grid-template-columns:1fr;gap:12px;padding:0}
  .mega-column{gap:3px;padding:12px;border:1px solid var(--g20);background:#fff}
  .mega-column h4{margin:0 0 6px;padding:0 8px;color:var(--g100)}
  .mega-column a{min-height:42px;display:flex;align-items:center;padding:9px 8px;border-top:1px solid var(--g10);font-size:15px}
  .mega-column a span{margin-left:auto}
  .mega-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0}
  .mega-action-btn{min-height:44px;padding:8px 10px;text-align:center;white-space:normal}
}

/* Shared researcher roster cards for the homepage and people directory. */
.researcher-card{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:13px;min-width:0;min-height:108px;padding:12px;border:1px solid #d8d8d4;background:#fff;color:#000052;text-align:left;transition:border-color .18s,transform .18s,box-shadow .18s}
.researcher-card:hover{border-color:#00a86b}
.researcher-card-photo{width:80px;height:80px;display:grid;place-items:center;overflow:hidden;background:#e5f2eb;color:#000052;font-size:22px}
.researcher-card-photo img{display:block;width:100%;height:100%;object-fit:cover}
.researcher-card-copy{display:flex;flex-direction:column;min-width:0;align-self:stretch}
.researcher-card-role{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:11px;line-height:1.35;color:#30305f}
.researcher-card-team{overflow:hidden;margin-top:4px;color:#55556e;font-size:10px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.researcher-card-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px}
.researcher-card-name{overflow:hidden;color:#008b59;font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.researcher-linkedin,.researcher-linkedin-placeholder{display:inline-grid;place-items:center;flex:0 0 14px;width:14px;height:14px;color:#008b59}
.researcher-linkedin svg{width:13px;height:13px;fill:currentColor}
.researcher-linkedin:hover,.researcher-card-name:hover{color:#000052}
.researcher-linkedin:focus-visible,.researcher-card-name:focus-visible{outline:2px solid #00a86b;outline-offset:3px}
.sd-meta a.sd-linkedin{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;background:#000052;color:#fff;font-size:12px;border-radius:2px}
.sd-meta a.sd-linkedin:hover{background:#00a86b}
@media(max-width:540px){.researcher-card{grid-template-columns:60px minmax(0,1fr);gap:12px;padding:12px;min-height:0}.researcher-card-photo{width:60px;height:60px;align-self:start}.researcher-card-copy{gap:2px}.researcher-card-role{display:block;overflow:visible;font-size:12px;line-height:1.4}.researcher-card-team{overflow:visible;white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.35}.researcher-card-bottom{align-items:center}.researcher-card-name{white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.35}.researcher-linkedin,.researcher-linkedin-placeholder{flex-basis:28px;width:28px;height:28px}.researcher-linkedin svg{width:17px;height:17px}}

/* Compact product cards shared by the homepage and software catalog. */
.software-card{position:relative;display:flex;min-width:0;min-height:220px;flex-direction:column;align-items:flex-start;padding:20px;background:#fff;border:1px solid #d8d8d4;color:#000052;text-align:left;transition:border-color .18s,box-shadow .18s,transform .18s}
.software-card:hover{border-color:#00a86b}
.software-product-icon{display:grid;width:36px;height:36px;place-items:center;margin-bottom:14px;background:#e5f2eb;color:#000052;font:500 15px 'IBM Plex Mono',monospace}
.software-copy{display:flex;width:100%;min-height:0;flex:1;flex-direction:column;gap:8px;padding:0}
.software-copy .software-category{color:#008b59;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase}
.software-copy h3{margin:0;font-size:19px;font-weight:400;line-height:1.25;letter-spacing:-.02em}
.software-copy p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;min-height:0;flex:1;margin:0;color:#55556e;font-size:13px;line-height:1.5}
.software-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid #e1e0da;color:#55556e;font-size:11px}
.software-card-meta span+span{padding-left:8px;border-left:1px solid #c9c9c3}
.software-card-arrow{position:absolute;right:18px;bottom:14px;color:#00a86b;font-size:18px}
.software-copy .software-card-meta{padding-right:24px}

/* Shared type and calm card interactions across all page families. */
body,button,input,select,textarea{font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-optical-sizing:auto;font-feature-settings:'kern' 1}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body :is(h1,h2,h3,h4,h5,h6):not(.ieee-sheet *){font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
body :is(h1,h2):not(.ieee-sheet *){font-weight:400}
:is(.card,.topic,.person,.team,.capability-card,.software-card,.video-card,.event,.edu,.dir-card,.event-card,.researcher-card,.artifact,.sd-related a,.utility-card,.partner-name):is(:hover,:focus-visible){transform:none!important;box-shadow:none!important}
.card:hover .thumb img,.dir-card:hover .dir-card-photo img,.event-card:hover .event-card-photo img,.video-card:hover .video-thumb img,.b.img:hover img{transform:none!important}
.card:hover .arrow{transform:none!important}
.video-card:hover .play{transform:translate(-50%,-50%)!important}
.researcher-card,.event-card,.software-card{position:relative;isolation:isolate}
:is(.event-card,.researcher-card,.software-card)::before{content:"";position:absolute;z-index:4;inset:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,#00a86b,#000052) top left/0 2px no-repeat,linear-gradient(180deg,#000052,#00a86b) top right/2px 0 no-repeat,linear-gradient(270deg,#00a86b,#000052) bottom right/0 2px no-repeat,linear-gradient(0deg,#000052,#00a86b) bottom left/2px 0 no-repeat;transition:opacity .16s ease}
:is(.event-card,.researcher-card,.software-card):is(:hover,:focus-visible)::before{opacity:1;animation:gl-border-trace .72s ease-out 1 both}
@keyframes gl-border-trace{0%{background-size:0 2px,2px 0,0 2px,2px 0}25%{background-size:100% 2px,2px 0,0 2px,2px 0}50%{background-size:100% 2px,2px 100%,0 2px,2px 0}75%{background-size:100% 2px,2px 100%,100% 2px,2px 0}100%{background-size:100% 2px,2px 100%,100% 2px,2px 100%}}

/* Use a clean white canvas across the static and CMS page families. */
:root{--g10:#fff;--surface:#fff;--utility-surface:#fff;--soft:#fff;--paper:#fff}
html,body{background:#fff!important}
body.paper-page{background:#fff!important}
section{background:#fff!important;color:#000052!important}
.section.alt,.about-locations{background-color:#fff!important}
footer{background:#fff!important;color:#55556e!important}
.hero .lead,.hero .meta-row,.about-hero-copy>p:not(.about-kicker),.promo p,.stats span{color:#55556e!important}
.hero .meta-row b{color:#000052!important}
