/* Full-bleed header/footer surfaces while their content keeps the theme's max width. */
.page-progress { background: transparent; }
.site-header,
.login-header,
.site-footer {
  isolation: isolate;
}

.site-header,
.login-header {
  background: transparent !important;
  border-bottom-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.site-header::before,
.login-header::before,
.site-footer::before {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  content: "";
  pointer-events: none;
}

.site-header::before {
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}

.site-header.is-stuck::before {
  background: rgba(10,10,15,.88);
  border-bottom-color: rgba(168,85,255,.25);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
}

.login-header::before {
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}

.login-header.is-stuck::before {
  background: rgba(10,10,15,.88);
  border-bottom-color: rgba(168,85,255,.25);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
}

.site-footer {
  position: relative;
  background: transparent;
  border-top-color: transparent !important;
}

.site-footer::before {
  background: var(--void);
  border-top: 1px solid var(--line);
}

@media (max-width: 760px) {
  .site-header:not(.is-stuck),
  .login-header:not(.is-stuck) {
    background: none !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
  }
  .site-header:not(.is-stuck)::before,
  .login-header:not(.is-stuck)::before {
    display: none;
  }
  .site-header:not(.is-stuck) .main-nav:not(.is-open) {
    background: none;
    border: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}
