/* is:global */
[data-search-modal-open] {
  overflow: hidden;
}

#qs_search {
  --search-result-spacing: calc(1.25rem * var(--pagefind-ui-scale));
  --search-result-pad-inline-start: calc(3.75rem * var(--pagefind-ui-scale));
  --search-result-pad-inline-end: calc(1.25rem * var(--pagefind-ui-scale));
  --search-result-pad-block: calc(0.9375rem * var(--pagefind-ui-scale));
  --search-result-nested-pad-block: calc(0.625rem * var(--pagefind-ui-scale));
  --search-corners: calc(0.3125rem * var(--pagefind-ui-scale));
  --search-page-icon-size: calc(1.875rem * var(--pagefind-ui-scale));
  --search-page-icon-inline-start: calc(
    (var(--search-result-pad-inline-start) - var(--search-page-icon-size)) / 2
  );
  --search-tree-diagram-size: calc(2.5rem * var(--pagefind-ui-scale));
  --search-tree-diagram-inline-start: calc(
    (var(--search-result-pad-inline-start) - var(--search-tree-diagram-size)) /
      2
  );
}

#qs_search .pagefind-ui__form::before {
  --pagefind-ui-text: hsl(0deg 0% 65%);
  opacity: 1;
  outline: unset;
}

#qs_search
  .pagefind-ui--reset
  *:where(:not(html, iframe, canvas, img, svg, video):not(svg *, symbol *)) {
  outline: unset;
}

#qs_search .pagefind-ui__search-input {
  color: hsl(0 0 100);
  font-weight: 400;
  width: calc(100% - var(--search-cancel-space));
}

#qs_search input:focus {
  --pagefind-ui-border: hsl(var(--accent-500));
}

#qs_search .pagefind-ui__search-clear {
  inset-inline-end: var(--search-cancel-space);
  width: calc(60px * var(--pagefind-ui-scale));
  padding: 0;
  background-color: transparent;
  overflow: hidden;
}

#qs_search .pagefind-ui__search-clear:focus {
  outline: 1px solid hsl(var(--accent-600));
}

#qs_search .pagefind-ui__search-clear::before {
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.41 12 6.3-6.29a1 1 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1 1 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 .33 1.64 1 1 0 0 0 1.09-.22l6.29-6.3 6.29 6.3a1 1 0 0 0 1.64-.33 1 1 0 0 0-.22-1.09L13.41 12Z'/%3E%3C/svg%3E")
    center / 50% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.41 12 6.3-6.29a1 1 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1 1 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 .33 1.64 1 1 0 0 0 1.09-.22l6.29-6.3 6.29 6.3a1 1 0 0 0 1.64-.33 1 1 0 0 0-.22-1.09L13.41 12Z'/%3E%3C/svg%3E")
    center / 50% no-repeat;
  background-color: hsl(0deg 25% 45%);
  display: block;
  width: 100%;
  height: 100%;
}

#qs_search .pagefind-ui__results > * + * {
  margin-top: var(--search-result-spacing);
}

#qs_search .pagefind-ui__result {
  border: 0;
  padding: 0;
}

#qs_search .pagefind-ui__result-nested {
  position: relative;
  padding: var(--search-result-nested-pad-block)
    var(--search-result-pad-inline-end);
  padding-inline-start: var(--search-result-pad-inline-start);
}

#qs_search
  .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)),
#qs_search .pagefind-ui__result-nested {
  position: relative;
  background-color: hsl(0deg 0% 10%);
}

#qs_search
  .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):hover,
#qs_search
  .pagefind-ui__result-title:not(
    :where(.pagefind-ui__result-nested *)
  ):focus-within,
#qs_search .pagefind-ui__result-nested:hover,
#qs_search .pagefind-ui__result-nested:focus-within {
  outline: 1px solid hsl(var(--accent-600));
}

#qs_search
  .pagefind-ui__result-title:not(
    :where(.pagefind-ui__result-nested *)
  ):focus-within,
#qs_search .pagefind-ui__result-nested:focus-within {
  background-color: hsl(var(--accent-400));
}

#qs_search .pagefind-ui__result-thumb,
#qs_search .pagefind-ui__result-inner {
  margin-top: 0;
}

#qs_search .pagefind-ui__result-inner > :first-child {
  border-radius: var(--search-corners) var(--search-corners) 0 0;
}

#qs_search .pagefind-ui__result-inner > :last-child {
  border-radius: 0 0 var(--search-corners) var(--search-corners);
}

#qs_search .pagefind-ui__result-inner > .pagefind-ui__result-title {
  padding: var(--search-result-pad-block) var(--search-result-pad-inline-end);
  padding-inline-start: var(--search-result-pad-inline-start);
}

#qs_search .pagefind-ui__result-inner > .pagefind-ui__result-title::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: var(--search-page-icon-inline-start);
  width: var(--search-page-icon-size);
  background: hsl(var(--blue) 15% 33%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M9 10h1a1 1 0 1 0 0-2H9a1 1 0 0 0 0 2Zm0 2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9Zm11-3V8l-6-6a1 1 0 0 0-1 0H7a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V9Zm-6-4 3 3h-2a1 1 0 0 1-1-1V5Zm4 14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5v3a3 3 0 0 0 3 3h3v9Zm-3-3H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2Z'/%3E%3C/svg%3E")
    center no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24'%3E%3Cpath d='M9 10h1a1 1 0 1 0 0-2H9a1 1 0 0 0 0 2Zm0 2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9Zm11-3V8l-6-6a1 1 0 0 0-1 0H7a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V9Zm-6-4 3 3h-2a1 1 0 0 1-1-1V5Zm4 14a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5v3a3 3 0 0 0 3 3h3v9Zm-3-3H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2Z'/%3E%3C/svg%3E")
    center no-repeat;
}

#qs_search .pagefind-ui__result-inner {
  align-items: stretch;
  gap: 1px;
}

#qs_search .pagefind-ui__result-link {
  position: unset;
  --pagefind-ui-text: hsl(0deg 0% 85%);
  font-weight: 600;
}

#qs_search .pagefind-ui__result-link:hover {
  text-decoration: none;
}

#qs_search .pagefind-ui__result-nested .pagefind-ui__result-link::before {
  content: unset;
}

#qs_search .pagefind-ui__result-nested::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: var(--search-tree-diagram-inline-start);
  width: var(--search-tree-diagram-size);
  background: hsl(var(--blue) 10% 30%);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m6-988H8'/%3E%3C/svg%3E")
    0% 0% / 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m6-988H8'/%3E%3C/svg%3E")
    0% 0% / 100% no-repeat;
}

#qs_search .pagefind-ui__result-nested:last-child::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 16 16'%3E%3Cpath d='M8 0v12m6 0H8'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 16 16'%3E%3Cpath d='M8 0v12m6 0H8'/%3E%3C/svg%3E");
}

#qs_search .pagefind-ui__result-link::after {
  content: "";
  position: absolute;
  inset: 0;
}

#qs_search .pagefind-ui__result-excerpt {
  font-size: calc(1rem * var(--pagefind-ui-scale));
  overflow-wrap: anywhere;
}

#qs_search .pagefind-ui__result-inner > .pagefind-ui__result-excerpt {
  display: inline-block;
  position: relative;
  background: hsl(0deg 0% 10%);
  padding: var(--search-result-nested-pad-block)
    var(--search-result-pad-inline-end);
  padding-inline-start: var(--search-result-pad-inline-start);
  margin-top: unset;

  &::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: var(--search-tree-diagram-inline-start);
    width: var(--search-tree-diagram-size);
    background: hsl(var(--blue) 10% 30%);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m'/%3E%3C/svg%3E")
      0% 0% / 100% no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' viewBox='0 0 16 1000' preserveAspectRatio='xMinYMin slice'%3E%3Cpath d='M8 0v1000m'/%3E%3C/svg%3E")
      0% 0% / 100% no-repeat;
  }
}

#qs_search mark {
  color: hsl(var(--blue) 15% 60%);
  background-color: transparent;
  font-weight: 600;
}

/* default styles */
site-search {
  --shadow-lg: 0px 25px 7px hsl(0deg, 0%, 0%, 0.03),
    0px 16px 6px hsl(0deg, 0%, 0%, 0.1), 0px 9px 5px hsl(223deg, 13%, 10%, 0.33),
    0px 4px 4px hsl(0deg, 0%, 0%, 0.75), 0px 4px 2px hsl(0deg, 0%, 0%, 0.25);
  display: contents;
}

.search-label {
  /* >720px block */
  display: none;
}

.search-kbd {
  /* >720px flex */
  display: none;
}

.search-dialog {
  padding: 0;

  & .dialog-frame {
    display: flex;
  }

  & .search-cancel {
    /* >720px none */
    display: flex;
  }
}

/* --- */

button[data-open-modal] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border: 0;
  background-color: transparent;
  color: hsl(var(--blue) 40% 65%);
  cursor: pointer;
  height: 2.5rem;
  font-size: 1.1rem;

  & svg {
    width: 21px;
    height: 21px;
  }
}

button > kbd {
  border-radius: 0.25rem;
  font-size: 0.75rem;
  gap: 0.25em;
  padding-inline: 0.375rem;
  background-color: hsl(var(--blue) 15% 80%);
}

html.dark button > kbd {
  background-color: hsl(var(--blue) 5% 20% / 0.5);
}

dialog {
  margin: 0;
  background-color: hsl(var(--blue) 10% 15%);
  border: 1px solid hsl(var(--blue) 15% 25%);
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  box-shadow: var(--shadow-lg);
}

dialog[open] {
  display: flex;
}

dialog::backdrop {
  background-color: hsl(var(--blue) 15% 6% / 0.66);
  -webkit-backdrop-filter: blur(0.25rem);
  backdrop-filter: blur(0.25rem);
}

.dialog-frame {
  flex-direction: column;
  flex-grow: 1;
  gap: 1rem;
  padding: 1rem;
}

button[data-close-modal] {
  position: absolute;
  z-index: 11;
  align-items: center;
  align-self: flex-end;
  height: calc(64px * var(--pagefind-ui-scale));
  padding: 0.25rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: hsla(var(--accent-600));
}

#qs_search {
  --pagefind-ui-primary: hsla(var(--accent-400));
  --pagefind-ui-text: hsl(0deg 0% 60%);
  --pagefind-ui-background: hsl(var(--blue) 10% 15%);
  --pagefind-ui-border: hsl(var(--blue) 30% 25%);
  --pagefind-ui-border-width: 1px;
  --search-cancel-space: 5rem;
}

@media (min-width: 40rem) {
  /* default styles */
  .search-label {
    display: block;
  }

  .search-kbd {
    display: flex;
  }

  .search-dialog {
    & .search-cancel {
      display: none;
    }
  }

  /* --- */
  button[data-open-modal] {
    border-radius: 6px;
    padding-inline-start: 0.75rem;
    padding-inline-end: 0.5rem;
    background-color: hsl(var(--blue) 15% 90%);
    color: hsl(var(--blue) 40% 45%);
    font-size: 0.875rem;
    width: 100%;
    max-width: 15rem;
    transition:
      color 0.23s,
      border-color 0.23s;

    &:hover {
      color: hsl(var(--blue) 50% 30%);
    }

    & > :last-child {
      margin-inline-start: auto;
    }
  }

  html.dark button[data-open-modal] {
    background-color: hsla(var(--blue) 15% 15% / 0.5);
    color: hsl(var(--blue) 40% 65%);

    &:hover {
      color: hsl(var(--blue) 60% 85%);
    }
  }

  #qs_search {
    --search-cancel-space: 0px;
  }

  dialog {
    margin: 4rem auto auto;
    border-radius: 0.5rem;
    width: 90%;
    max-width: 40rem;
    height: max-content;
    min-height: 15rem;
    max-height: calc(100% - 8rem);
  }

  .dialog-frame {
    padding: 1.5rem;
  }
}
