@charset "UTF-8";
/*
	Legacy support
	Only browsers with >0.1% market share are noted (IE11 is also not noted)

	Optional features (unsupported browsers):
		scrollbar-width (Chrome –112, Safari –17.6, iOS Safari –18.1, Opera Mobile –80–, Android –141–)
		scrollbar-gutter (Safari –17.6, iOS Safari –18.1)
		scrollbar-color (Chrome –112, Safari –26.1–, iOS Safari –26.1–, Opera Mobile –80–, Android –141–)

	Features with fallback mechanisms (unsupported browsers):
		user-select -webkit- for Safari –26.6–
*/
:root {
  --toc-font-size: var(--g-small-font-size);
  --toc-line-height: var(--g-small-line-height);
  --toc-background-color: var(--g-background-color);
  --toc-frame-color: var(--g-table-border-color);
  --toc-scrollbar-color: darkgrey;
  --toc-frame-width: 1px;
  --toc-frame-radius: var(--g-border-radius);
  --toc-padding-v: var(--toc-frame-radius);
  --toc-padding-h: var(--g-pre-padding-h);
  --toc-narrow-negative-margin-h: calc(-1 * var(--g-pre-padding-h) - var(--toc-frame-width));
  --toc-narrow-margin-h-greynav-offset: 2.2rem; /* from size of menu icon in menu.svg */
  --toc-wide-sticky-margin-v: var(--g-small-v);
  --toc-wide-margin-h: var(--g-article-aside-margin-h);
  --toc-wide-offset-v: calc(var(--toc-frame-width) + var(--toc-frame-radius));
  --toc-wide-negative-margin-h: calc(-1 * var(--g-article-aside-margin-h));
  --toc-narrow-width: var(--g-column-width);
  --toc-narrow-max-width: var(--g-main-width);
  --toc-narrow-max-height: calc(100vh - var(--g-small-v));
  --toc-wide-width: var(--g-article-aside-width);
  --toc-wide-min-width: var(--g-article-aside-min-width);
  --toc-wide-max-width: calc((100vw - var(--g-column-width)) / 2 - var(--toc-wide-margin-h) - var(--g-main-margin-h));
  --toc-wide-max-height: calc(100vh + var(--toc-frame-width) + var(--toc-frame-radius) - var(--g-small-v));
  --toc-list-item-margin-h: var(--g-medium-h);
  --toc-opacity: 0.5;
  --toc-focus-opacity: 0.96;
  --toc-blur-radius: var(--g-border-radius);
  --toc-spread-radius: var(--toc-blur-radius);
}

#toc-container {
  display: block;
  position: absolute;
  top: 0;
  z-index: auto;
  height: 100%;
  width: var(--toc-narrow-width);
  max-width: var(--toc-narrow-max-width);
  margin: 0;
  font-size: var(--g-small-font-size);
  line-height: var(--g-small-line-height);
  pointer-events: none;
}
#toc-container #toc-label {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0 var(--toc-narrow-negative-margin-h);
  padding: var(--toc-padding-v) var(--toc-padding-h);
  border-left: var(--toc-frame-width) solid var(--toc-frame-color);
  border-right: var(--toc-frame-width) solid var(--toc-frame-color);
  border-bottom: var(--toc-frame-width) solid var(--toc-frame-color);
  border-bottom-left-radius: var(--toc-frame-radius);
  border-bottom-right-radius: var(--toc-frame-radius);
  background-color: var(--g-background-color);
  opacity: var(--toc-focus-opacity);
  cursor: pointer;
  pointer-events: auto;
}
#toc-container #toc-frame {
  display: none;
  position: sticky;
  top: 0;
  margin: 0 var(--toc-narrow-negative-margin-h);
  max-height: var(--toc-narrow-max-height);
  background-color: var(--toc-background-color);
  border-left: var(--toc-frame-width) solid var(--toc-frame-color);
  border-right: var(--toc-frame-width) solid var(--toc-frame-color);
  border-bottom: var(--toc-frame-width) solid var(--toc-frame-color);
  border-bottom-left-radius: var(--toc-frame-radius);
  border-bottom-right-radius: var(--toc-frame-radius);
  overflow: hidden;
  pointer-events: auto;
}
#toc-container #toc-main {
  box-sizing: border-box;
  max-height: inherit;
  padding: var(--toc-padding-v) var(--toc-padding-h);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-gutter: stable;
  scrollbar-color: var(--toc-scrollbar-color) var(--toc-background-color);
  pointer-events: auto;
}
#toc-container #toc-main > h2 {
  margin-top: 0;
  margin-bottom: 0;
  font-size: var(--toc-font-size);
  line-height: var(--toc-line-height);
}
#toc-container #toc {
  margin-top: 0;
  margin-bottom: 0;
}
#toc-container #toc ul, #toc-container #toc menu, #toc-container #toc ol {
  margin-top: 0;
  margin-bottom: 0;
}
#toc-container #toc li {
  margin-left: var(--toc-list-item-margin-h);
}
#toc-container #toc li.toc-current {
  font-weight: bolder;
}
#toc-container #toc li.toc-current abbr, #toc-container #toc li.toc-current .g-abbr, #toc-container #toc li.toc-current abbr::first-letter, #toc-container #toc li.toc-current .g-abbr::first-letter {
  font-weight: bolder;
}
#toc-container #toc li.toc-current li {
  font-weight: lighter;
}
#toc-container #toc li.toc-current li abbr, #toc-container #toc li.toc-current li .g-abbr, #toc-container #toc li.toc-current li abbr::first-letter, #toc-container #toc li.toc-current li .g-abbr::first-letter {
  font-weight: lighter;
}
#toc-container:focus, #toc-container:focus-within, #toc-container:active {
  z-index: 1;
  opacity: var(--toc-focus-opacity);
}
#toc-container:focus #toc-label, #toc-container:focus-within #toc-label, #toc-container:active #toc-label {
  height: 0;
  padding: 0;
  border: none;
  overflow: hidden;
  -webkit-user-select: none;
  user-select: none;
}
#toc-container:focus #toc-frame, #toc-container:focus-within #toc-frame, #toc-container:active #toc-frame {
  display: block;
}

#toc-spacer {
  display: block;
  border-bottom: var(--toc-frame-width) solid transparent;
}

@media (max-width: 816px) {
  /* media-tablet from greynav.scss */
  /* Avoid collision with greynav menu */
  #toc-container #toc-label {
    margin-left: calc(var(--toc-narrow-margin-h-greynav-offset) + var(--toc-narrow-negative-margin-h));
  }
  #toc-container #toc-main {
    margin-left: var(--toc-narrow-margin-h-greynav-offset);
  }
}
@media (min-width: 1480px) {
  /* from larger <aside> media query in typography.css, overriding gargoyle.css */
  #toc-container {
    top: unset;
    width: var(--toc-wide-width);
    min-width: var(--toc-wide-min-width);
    max-width: var(--toc-wide-max-width);
    margin: 0;
    margin-left: var(--toc-wide-negative-margin-h);
    opacity: var(--toc-opacity);
    transform: translateX(-100%);
  }
  #toc-container #toc-label {
    display: none;
  }
  #toc-container #toc-frame {
    display: block;
    margin: 0;
    margin-top: calc(-1 * var(--toc-wide-sticky-margin-v));
    max-height: var(--toc-wide-max-height);
    background-color: var(--toc-background-color);
    border: var(--toc-frame-width) solid transparent;
    border-radius: var(--toc-frame-radius);
    transform: translateY(calc(-1 * var(--toc-wide-offset-v)));
  }
  #toc-container #toc-main {
    padding-top: calc(var(--toc-wide-sticky-margin-v) + var(--toc-padding-v) - var(--toc-wide-offset-v));
    border-top: var(--toc-wide-offset-v) solid transparent;
  }
  #toc-container:hover, #toc-container:focus, #toc-container:focus-within, #toc-container:active {
    z-index: 1;
    opacity: var(--toc-focus-opacity);
  }
  #toc-container:hover #toc-frame {
    box-shadow: 0 0 var(--toc-blur-radius) var(--toc-spread-radius) var(--toc-background-color);
  }
  #toc-container:focus #toc-frame, #toc-container:focus-within #toc-frame, #toc-container:active #toc-frame {
    border-color: var(--toc-frame-color);
  }
  #toc-container:focus:hover #toc-frame, #toc-container:focus-within:hover #toc-frame, #toc-container:active:hover #toc-frame {
    box-shadow: none;
  }
  #toc-spacer {
    display: none;
  }
}

/*# sourceMappingURL=contents.css.map */