.site-header {
  position: relative;
  z-index: 3;
  padding-top: env(safe-area-inset-top);
  color: #fff;
  background: url("/hero-snowflakes.svg") left 12px top -9px / 300px auto repeat-x,
    radial-gradient(ellipse at 85% 0%, #233c59, #12243e 80%);
  font-family: Manjari, Helvetica, Verdana, sans-serif;
  line-height: 1.25;
}

.site-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(72rem, calc(100% - 2rem));
  min-height: 4.5rem;
  margin-inline: auto;
  gap: 1rem;
}

.site-header a { color: inherit; text-decoration: none; }
.site-brand { font-size: 1.25rem; font-weight: 700; }
#site-nav { display: flex; gap: .25rem; }
#site-nav a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .7em .85rem .4em;
  border-radius: .6rem;
}
#site-nav a:hover, #site-nav a:focus-visible, #site-nav a[aria-current="page"] { background: #2e4769; }
#site-nav svg, #site-menu { display: none; }

@media (max-width: 680px) {
  .site-bar { min-height: 56px; gap: .5rem; }

  #site-menu {
    display: grid;
    place-items: center;
    flex: none;
    width: 44px;
    height: 44px;
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: .6rem;
    cursor: pointer;
  }

  #site-menu svg { width: 22px; }
  #site-menu:focus-visible { outline: 2px solid #d8edff; outline-offset: 2px; }

  #site-nav {
    position: absolute;
    top: 100%;
    right: 0;
    display: none;
    min-width: 10rem;
    padding: .5rem;
    background: #12243e;
    border-radius: 0 0 0 .6rem;
  }

  #site-menu[aria-expanded="true"] + #site-nav { display: grid; }
  #site-nav a { gap: .65rem; }
  #site-nav svg { display: block; width: 20px; height: 20px; flex: none; transform: translateY(-.15em); }
}

.site-bar:has(.admin-avatar) .site-brand { margin-inline-end: auto; }

.admin-menu { position: relative; }

.admin-avatar {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  padding: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
  border: 1px solid #6c83a0;
  border-radius: 50%;
}

.admin-avatar svg { width: 23px; height: 23px; }

.admin-avatar:hover,
.admin-avatar:focus-visible { background: #2e4769; }

.admin-avatar[aria-expanded="true"] { background: #2e4769; }

#admin-menu-panel {
  position: absolute;
  inset-block-start: calc(100% + .5rem);
  inset-inline-end: 0;
  display: none;
  min-width: 10rem;
  padding: .4rem;
  background: #12243e;
  border: 1px solid #6c83a0;
  border-radius: .6rem;
  box-shadow: 0 .4rem 1rem #12243e50;
}

.admin-avatar[aria-expanded="true"] + #admin-menu-panel { display: grid; }

#admin-menu-panel :is(a, button) {
  display: flex;
  align-items: center;
  gap: .5rem;
  width: 100%;
  min-height: 44px;
  padding: .7em .75rem .4em;
  border: 0;
  border-radius: .35rem;
  color: inherit;
  background: transparent;
  font: inherit;
  cursor: pointer;
  white-space: nowrap;
}

#admin-menu-panel button { justify-content: center; }
#admin-menu-panel :is(a, button):is(:hover, :focus-visible) { background: #2e4769; }
#admin-menu-panel svg { width: 20px; height: 20px; flex: none; }
