badged-icon[data-astro-cid-lib4bup5] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.badge[data-astro-cid-lib4bup5] {
  position: absolute;
  right: -4px;
  top: -4px;
  font-family: system-ui, -apple-system, sans-serif;
  font-size: .625rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  min-width: 14px;
  height: 14px;
  padding: 2px 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--badge-fg, #fff);
  background: var(--badge-bg, #1976d2);
  border-radius: 10px;
  box-shadow: 0 1px 3px #0000004d,
      0 0 0 1.5px var(--badge-ring, #fff);
  will-change: transform;
  z-index: 2;
  transition: transform .2s cubic-bezier(.34, 1.56, .64, 1);
}

badged-icon[data-astro-cid-lib4bup5]:hover .badge[data-astro-cid-lib4bup5] {
  transform: scale(1.1);
}

@media (prefers-reduced-motion: reduce) {
  .badge[data-astro-cid-lib4bup5] {
    transition: none;
  }

  badged-icon[data-astro-cid-lib4bup5]:hover .badge[data-astro-cid-lib4bup5] {
    transform: none;
  }
}
menu-button[data-astro-cid-jkphbzk7] {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  cursor: pointer;
  border-radius: 12px;
  background: #ffffff1a;
  transition: all .35s cubic-bezier(.34, 1.56, .64, 1);
  overflow: hidden;
}

menu-button[data-astro-cid-jkphbzk7]:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #ffffff26;
  border-radius: 12px;
  transform: scale(0);
  transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
}

menu-button[data-astro-cid-jkphbzk7]:hover {
  background: #fff3;
  transform: scale(1.05);
}

menu-button[data-astro-cid-jkphbzk7]:hover:before {
  transform: scale(1);
}

menu-button[data-astro-cid-jkphbzk7]:active {
  transform: scale(.95);
}

menu-button[data-astro-cid-jkphbzk7] span[data-astro-cid-jkphbzk7] {
  position: relative;
  z-index: 1;
  transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
}

menu-button[data-astro-cid-jkphbzk7]:hover span[data-astro-cid-jkphbzk7] {
  transform: rotate(90deg);
}

@media (width >= 641px) {
  menu-button[data-astro-cid-jkphbzk7] {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  menu-button[data-astro-cid-jkphbzk7], menu-button[data-astro-cid-jkphbzk7] span[data-astro-cid-jkphbzk7] {
    transition: none;
  }

  menu-button[data-astro-cid-jkphbzk7]:hover span[data-astro-cid-jkphbzk7] {
    transform: none;
  }
}
@font-face {
  font-family: Material Symbols Rounded;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/material-symbols-rounded.woff2") format("woff2");
}

@keyframes slideInFromTop {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes slideInFromLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }

  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes menuItemFadeIn {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.skip-link[data-astro-cid-drgz4ef6] {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 999;
  padding: 12px 20px;
  background: var(--app-primary-color, #3d4b7e);
  color: #fff;
  font-weight: 600;
  border-radius: 0 0 8px;
  transform: translateY(-120%);
  transition: transform .2s;
}

.skip-link[data-astro-cid-drgz4ef6]:focus {
  transform: translateY(0);
  outline: 3px solid #fff;
  outline-offset: -6px;
}

body {
  --toolbar-height: 64px;
  --menu-width: 320px;
  display: grid;
  grid-template: var(--toolbar-height) 1fr auto / 1fr;
  grid-template-areas: "head head"
                       "main main"
                       "footer footer";
}

body[menu] {
  grid-template-areas: "head head"
                       "menu menu"
                       "footer footer";
}

body[menu] main[data-astro-cid-drgz4ef6] {
  display: none;
}

body[menu] .drawer-content[data-astro-cid-drgz4ef6] {
  display: flex;
}

.toolbar[data-astro-cid-drgz4ef6] {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 64px;
  grid-area: head;
  display: flex;
  gap: 4px;
  padding: 0 8px;
  align-items: center;
  line-height: 100%;
  background: linear-gradient(135deg,
          var(--app-primary-color) 0%,
          #2a3652 100%);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 20px;
  z-index: 100;
  box-shadow: 0 4px 20px #00000026;
  animation: .4s cubic-bezier(.34, 1.56, .64, 1) slideInFromTop;

  & a {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    color: #ffffffe6;
    text-decoration: none;
    padding: 6px 8px;
    border-radius: 12px;
    transition: all .35s cubic-bezier(.34, 1.56, .64, 1);
    overflow: hidden;
    flex-shrink: 0;

    &:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: #ffffff1a;
      border-radius: 12px;
      transform: scale(0);
      transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
    }

    &:hover {
      color: #fff;
      transform: translateY(-2px);
    }

    &:hover:before {
      transform: scale(1);
    }

    & div {
      font-size: .65rem;
      font-weight: 500;
      letter-spacing: .2px;
      position: relative;
      z-index: 1;
      display: none;
    }

    & span {
      position: relative;
      z-index: 1;
      font-size: 22px;
    }

    & img {
      width: 28px;
      height: 28px;
    }
  }
}

.drawer-content[data-astro-cid-drgz4ef6] {
  position: fixed;
  top: var(--toolbar-height);
  bottom: 0;
  display: none;
  grid-area: menu;
  flex-flow: column;
  justify-content: space-between;
  padding: 24px 0;
  width: var(--menu-width);
  box-sizing: border-box;
  background: linear-gradient(#fff 0%, #f8f9fa 100%);
  overflow: auto;
  box-shadow: 4px 0 20px #0000001a;
  animation: .4s cubic-bezier(.34, 1.56, .64, 1) slideInFromLeft;
  scrollbar-width: thin;
  scrollbar-color: rgb(var(--app-primary-rgb) / .3) transparent;

  &::-webkit-scrollbar {
    width: 6px;
  }

  &::-webkit-scrollbar-track {
    background: none;
  }

  &::-webkit-scrollbar-thumb {
    background: rgb(var(--app-primary-rgb) / .3);
    border-radius: 3px;
  }

  &::-webkit-scrollbar-thumb:hover {
    background: rgb(var(--app-primary-rgb) / .5);
  }

  & nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 0 12px;
  }

  & a {
    position: relative;
    display: grid;
    grid-gap: 16px;
    grid-template-columns: 32px 1fr;
    align-items: center;
    padding: 12px 16px;
    line-height: 1.5;
    text-decoration: none;
    color: var(--app-secondary-color);
    border-radius: 12px;
    text-align: left;
    font-weight: 500;
    letter-spacing: .3px;
    transition: all .35s cubic-bezier(.34, 1.56, .64, 1);
    overflow: hidden;
    animation: .4s cubic-bezier(.34, 1.56, .64, 1) backwards menuItemFadeIn;

    &:first-child {
      animation-delay: 50ms;
    }

    &:nth-child(2) {
      animation-delay: .1s;
    }

    &:nth-child(3) {
      animation-delay: .15s;
    }

    &:nth-child(4) {
      animation-delay: .2s;
    }

    &:nth-child(5) {
      animation-delay: .25s;
    }

    &:nth-child(6) {
      animation-delay: .3s;
    }

    &:nth-child(7) {
      animation-delay: .35s;
    }

    &:nth-child(8) {
      animation-delay: .4s;
    }

    &:nth-child(9) {
      animation-delay: .45s;
    }

    &:nth-child(10) {
      animation-delay: .5s;
    }

    &:nth-child(11) {
      animation-delay: .55s;
    }

    &:before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 4px;
      background: linear-gradient(180deg,
              var(--app-accent-color),
              var(--app-primary-light-color));
      border-radius: 0 4px 4px 0;
      transform: scaleY(0);
      transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
    }

    &:after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: linear-gradient(135deg,
              rgb(var(--app-primary-rgb) / .08),
              rgb(var(--app-primary-light-rgb) / .06));
      border-radius: 12px;
      transform: scale(.95);
      opacity: 0;
      transition: all .35s cubic-bezier(.34, 1.56, .64, 1);
      z-index: -1;
    }

    & img, & span {
      position: relative;
      z-index: 1;
      transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
    }
  }

  & a[selected] {
    color: var(--app-primary-color);
    font-weight: 700;
    background: linear-gradient(135deg,
            #ff9f4326,
            rgb(var(--app-primary-rgb) / .1));
    box-shadow: 0 4px 12px rgb(var(--app-primary-rgb) / .15);
    view-transition-name: menu-selected;

    &:before {
      transform: scaleY(1);
    }

    & img {
      filter: brightness(1.1) saturate(1.2);
    }
  }

  & a:hover {
    color: var(--app-primary-color);
    transform: translateX(4px);
    box-shadow: 0 6px 16px rgb(var(--app-primary-rgb) / .12);

    &:before {
      transform: scaleY(1);
    }

    &:after {
      opacity: 1;
      transform: scale(1);
    }

    & img, & span {
      transform: scale(1.05);
    }
  }

  & a:active {
    transform: translateX(2px) scale(.98);
  }

  & a:focus {
    outline: 2px solid #0000;
    box-shadow: 0 0 0 3px rgb(var(--app-primary-rgb) / .2),
            0 6px 16px rgb(var(--app-primary-rgb) / .12);
  }
}

.title[data-astro-cid-drgz4ef6] {
  flex: 1;
  text-align: center;
  margin: 0;
  color: #fff;
  text-shadow: 0 2px 8px #0000004d;
  font-weight: 700;
  font-size: 0;
  letter-spacing: .5px;
  position: relative;
  padding: 0;
  overflow: hidden;
  min-width: 0;

  & span {
    display: none;
    background: linear-gradient(90deg, #fffffff2, #ffffffd9);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

main[data-astro-cid-drgz4ef6] {
  grid-area: main;
  width: 100%;
  overflow: hidden;
}

.footer[data-astro-cid-drgz4ef6] {
  grid-area: footer;
}

@media (width >= 641px) {
  body {
    grid-template: var(--toolbar-height) 1fr auto / var(--menu-width) 1fr;
    grid-template-areas: "head head"
                         "menu main"
                         "menu footer";
  }

  menu-button[data-astro-cid-drgz4ef6] {
    display: none;
  }

  .drawer-content[data-astro-cid-drgz4ef6] {
    display: flex;
    animation: none;
  }

  main[data-astro-cid-drgz4ef6] {
    padding: 1vw;
  }

  .toolbar[data-astro-cid-drgz4ef6] {
    gap: 12px;
    padding: 0 16px;

    & a {
      padding: 8px 12px;
      gap: 4px;

      & div {
        display: block;
        font-size: .7rem;
      }

      & span {
        font-size: inherit;
      }

      & img {
        width: 32px;
        height: 32px;
      }
    }
  }

  .title[data-astro-cid-drgz4ef6] {
    margin: 16px 0;
    padding: 0 1rem;
    font-size: clamp(.85rem, 2vw, 2rem);
    line-height: 1.3;
  }
}

@media (width >= 768px) {
  .title[data-astro-cid-drgz4ef6] {
    & span {
      display: block;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  .toolbar[data-astro-cid-drgz4ef6], .drawer-content[data-astro-cid-drgz4ef6], .drawer-content[data-astro-cid-drgz4ef6] a[data-astro-cid-drgz4ef6] {
    animation: none !important;
  }

  .toolbar[data-astro-cid-drgz4ef6] a[data-astro-cid-drgz4ef6], .drawer-content[data-astro-cid-drgz4ef6] a[data-astro-cid-drgz4ef6] {
    transition: none !important;
  }
}

@media print {
  body {
    grid-template-areas: "main";
  }

  .toolbar[data-astro-cid-drgz4ef6], .drawer-content[data-astro-cid-drgz4ef6] {
    display: none;
  }
}
