/* Phones: logo, Sign in and a menu button. The menu opens a full-screen list of the pages (site.js builds the button). */
.menuBtn,.nav.wrap .tabs .menuJoin,.snav .tabs .menuJoin{display:none}
@media(max-width:860px){
  .nav.wrap,.snav{flex-wrap:nowrap!important;align-items:center;min-height:64px!important;padding-top:6px!important;padding-bottom:6px!important}
  .nav.wrap .acts .navjoin,.snav .acts .navjoin{display:none!important}
  .nav.wrap .acts,.snav .acts{gap:6px;font-size:15px}
  .menuBtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .menuBtn i{position:relative;display:block;width:20px;height:10px}
  .menuBtn i::before,.menuBtn i::after{content:"";position:absolute;left:0;width:20px;height:1.5px;border-radius:1px;background:currentColor;transition:transform .24s cubic-bezier(.2,.8,.2,1),top .24s cubic-bezier(.2,.8,.2,1)}
  .menuBtn i::before{top:0}.menuBtn i::after{top:8.5px}
  .menuOpen .menuBtn i::before{top:4.25px;transform:rotate(45deg)}
  .menuOpen .menuBtn i::after{top:4.25px;transform:rotate(-45deg)}

  .nav.wrap .tabs,.snav .tabs{position:fixed!important;inset:var(--navh,64px) 0 0 0;z-index:-1;transform:none!important;order:0;width:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;
    padding:20px clamp(20px,4vw,56px) calc(28px + env(safe-area-inset-bottom));
    background:#0B0B0B url(/assets/brand/night-grain.png) repeat;background-size:192px 192px;overflow-y:auto;overscroll-behavior:contain;
    white-space:normal;font-size:15px;visibility:hidden;opacity:0;transition:opacity .18s ease,visibility 0s linear .18s}
  .menuOpen .tabs{visibility:visible!important;opacity:1!important;transition:opacity .24s ease!important}
  .nav.wrap .tabs a,.snav .tabs a{display:flex;align-items:center;min-height:64px;border-bottom:1px solid rgba(255,255,255,.08);
    font:300 clamp(32px,9vw,42px)/1.1 Newsreader,Georgia,serif;letter-spacing:-.02em;color:#F4F2EE;opacity:1;
    transform:translateY(8px);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
  .menuOpen .tabs a{transform:none}
  .nav.wrap .tabs a[aria-current=page],.snav .tabs a[aria-current=page]{color:#C4C4DE}
  .nav.wrap .tabs a:hover,.snav .tabs a:hover{opacity:.68}
  .nav.wrap .tabs .menuJoin,.snav .tabs .menuJoin{display:inline-flex;justify-content:center;align-self:stretch;margin-top:28px;min-height:52px;border:0;border-radius:999px;
    background:#F4F2EE;color:#0B0B0B;font:500 16px/1 Inter,system-ui,sans-serif;letter-spacing:0}
  .nav.wrap .tabs .menuJoin[hidden],.snav .tabs .menuJoin[hidden]{display:none}
  .nav.wrap .tabs .menuJoin:hover,.snav .tabs .menuJoin:hover{opacity:.86}
  html.menuLock,html.menuLock body{overflow:hidden}
  .nav.wrap.menuOpen::before,.snav.menuOpen::before{background:#0B0B0B url(/assets/brand/night-grain.png) repeat;background-size:192px 192px;border-color:rgba(255,255,255,.08);-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(max-width:860px) and (prefers-reduced-motion:reduce){
  .menuBtn i::before,.menuBtn i::after,.nav.wrap .tabs,.snav .tabs,.nav.wrap .tabs a,.snav .tabs a{transition:none!important}
  .nav.wrap .tabs a,.snav .tabs a{transform:none}
}

/* Grouped nav (11-07): Product / Research / Company drop-downs + Community. Desktop: small panel under each label. */
.ng{position:static;display:inline-flex}
.ngb{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ngb::after{content:"";width:5px;height:5px;border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7;transition:transform .2s ease}
.ng.open .ngb::after{transform:translateY(1px) rotate(-135deg)}
.ngb:hover,.ng.open .ngb{opacity:1}
.tabs:has(.ng.open) .ngb:not([aria-expanded=true]),.tabs:has(.ng.open) .ntop{opacity:.55}
.ngb:focus-visible,.ngp a:focus-visible{outline:2px solid #C4C4DE;outline-offset:4px;border-radius:2px}
/* Desktop: the panel hangs from the bar's bottom line, full width, same dark glass as the bar, so bar + panel read as one surface. */
.ngp{--pad:clamp(20px,4vw,56px);position:absolute;top:var(--ddtop,66px);left:50%;z-index:2;width:100vw;transform:translateX(-50%);
  display:grid;grid-template-columns:minmax(0,3fr) repeat(4,minmax(0,2fr));column-gap:24px;align-items:start;
  padding:30px max(var(--pad),calc((100vw - 1360px)/2 + var(--pad))) 40px;
  background:rgba(11,11,11,.86);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.08);
  visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .2s cubic-bezier(.4,0,.2,1),visibility 0s linear .2s}
.ngp::before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px}
.ng.open .ngp{visibility:visible;clip-path:inset(0 0 -1px 0);transition:clip-path .28s cubic-bezier(.2,.8,.2,1)}
.ngl{display:block;grid-row:1/span 2;margin:0;padding-top:14px;font:400 12.5px/1.5 "Geist Mono",monospace;letter-spacing:0;color:#8C93A8}
.nav.wrap .ngp a,.snav .ngp a{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:0;padding:14px 0 4px;border-top:1px solid rgba(255,255,255,.12);white-space:normal;font-size:16px;line-height:1.25;color:#F4F2EE;
  opacity:0;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease}
.ng.open .ngp a{opacity:1;transform:none;transition:opacity .26s ease .06s,transform .3s cubic-bezier(.2,.8,.2,1) .06s}
.ngp a span{font-size:13.5px;line-height:1.4;color:#8C93A8}
.nav.wrap .ngp a:hover,.snav .ngp a:hover{opacity:1}
.ngp a:hover span{color:#C9CBD2}
.nav.wrap .ngp a[aria-current=page],.snav .ngp a[aria-current=page]{color:#C4C4DE}
/* the bar goes dark while a panel is open, with no line under it (the line sits under the panel) */
.nav.wrap.ddOpen::before,.snav.ddOpen::before{background:rgba(11,11,11,.86)!important;-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;border-color:transparent!important}
@media(prefers-reduced-motion:reduce){.ngp,.ng.open .ngp,.ngb::after,.nav.wrap .ngp a,.snav .ngp a,.ng.open .ngp a{transition:none}}

/* Phones: the burger menu lists every group open, with a small heading over each. */
@media(max-width:860px){
  .ngb{display:none}
  .ng{display:block}
  .ngp,.ng.open .ngp{position:static;display:block;width:auto;min-width:0;padding:0;border:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;opacity:1;visibility:inherit;transform:none;transition:none;clip-path:none}
  .nav.wrap .ngp a,.snav .ngp a{opacity:1!important;transform:none!important;transition:none!important}
  .tabs .ngb,.tabs .ntop{opacity:1!important}
  .ngp::before{display:none}
  .ngl{display:block;grid-row:auto;padding-top:0;margin:26px 0 2px;font:400 12.5px/1.5 "Geist Mono",monospace;letter-spacing:0;color:#8C93A8}
  .ng:first-child .ngl{margin-top:0}
  .nav.wrap .ngp a,.snav .ngp a,.nav.wrap .tabs .ntop,.snav .tabs .ntop{display:flex;flex-direction:row;align-items:center;min-height:54px;padding:0;border-top:0;border-bottom:1px solid rgba(255,255,255,.08);
    font:300 clamp(28px,7.6vw,34px)/1.1 Newsreader,Georgia,serif;letter-spacing:-.02em;color:#F4F2EE}
  .nav.wrap .tabs .ntop,.snav .tabs .ntop{margin-top:18px}
  .nav.wrap .tabs .ntop+.ntop,.snav .tabs .ntop+.ntop{margin-top:0}
  .ngp a span{display:none}
}
