/* Shared header and footer measurements from the Folium home page. */
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #181818 !important;
  backdrop-filter: none;
  border-bottom: 0 !important;
}

header nav {
  display: flex;
  align-items: center;
  height: 58px;
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
}

.brand {
  display: flex;
  align-items: center;
  flex: none;
  gap: 9px;
  color: #edeff2;
  font-size: 1.02rem;
  font-weight: 600;
  letter-spacing: -.02em;
}

.brand img {
  display: block;
  width: 21px;
  height: 21px;
  object-fit: contain;
}

.nlinks {
  position: absolute;
  left: 50%;
  display: flex;
  gap: 2px;
  margin-left: 0;
  transform: translateX(-50%);
}

.nlinks a {
  padding: .35rem .75rem;
  border-radius: 6px;
  color: #98a0ab;
  font-size: .92rem;
  transition: color .15s;
  text-decoration: none !important;
}

.nlinks a:hover,
.nlinks a.on,
.nlinks a.active {
  color: #edeff2;
  background: transparent;
  text-decoration: none;
}

header .nlinks a:hover,
header .nlinks a:focus,
header .nlinks a:focus-visible,
header .nlinks a.on,
header .nlinks a.active {
  text-decoration: none !important;
}

footer {
  flex: none;
  background: #181818 !important;
  backdrop-filter: none;
  border-top: 0 !important;
}

.foot {
  max-width: 1120px;
  margin: 0 auto;
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.soc {
  display: flex;
  gap: 8px;
}

.soc a {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 8px;
  color: #666d78;
  transition: color .15s, background .15s;
}

.soc a:hover {
  color: #edeff2;
  background: #2a2a2a;
}

.soc svg {
  width: 17px;
  height: 17px;
}

.flinks {
  display: flex;
  gap: 22px;
  font-size: .88rem;
}

.flinks a {
  color: #98a0ab;
  transition: color .15s;
}

.flinks a:hover {
  color: #edeff2;
  text-decoration: none;
}

.cpy {
  margin: 0;
  color: #666d78;
  font-size: .84rem;
}

body {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}

main {
  flex: 1 0 auto;
}

@media (max-width: 860px) {
  .nlinks {
    display: flex;
    gap: 0;
  }

  .nlinks a {
    padding: .35rem .45rem;
    font-size: .82rem;
  }
}

/* Match the home brand independently of each page's typography and layout rules. */
html{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#858990 rgba(255,255,255,.10)}
body header nav{position:static;justify-content:normal;box-sizing:border-box;width:100%;max-width:1120px;height:52px;padding:0 24px;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6}
body header nav a.brand{display:flex;align-items:center;flex:none;gap:9px;margin:0;padding:0;font-family:inherit;font-size:16.32px;font-weight:600;line-height:1.6;letter-spacing:-.3264px;color:#edeff2;text-decoration:none}
body header nav a.brand img{display:block;flex:none;width:21px;height:auto;max-height:none;margin:0;padding:0;object-fit:contain}
@media(max-width:860px){body header nav{gap:12px}body header nav .nlinks{position:static;left:auto;transform:none;flex:1 1 auto;min-width:0;max-width:calc(100vw - 112px);margin-left:auto;overflow-x:auto;white-space:nowrap;scrollbar-width:none}body header nav .nlinks::-webkit-scrollbar{display:none}body header nav .nlinks a{flex:none;padding:.35rem .48rem;font-size:.78rem}}
