@font-face {
  font-family: "BabelStone Tibetan Slim";
  src: url("/fonts/BabelStoneTibetanSlim.ttf") format("truetype");
  unicode-range: U+0F00-0FFF;
  size-adjust: 140%;
  descent-override: 50%;
  letter-spacing: 1.1px;
  font-display: swap; }

@font-face {
  font-family: 'Noto Serif';
  src: url("/fonts/Noto_Serif/NotoSerif-VariableFont_wdth,wght.ttf") format("truetype");
  font-weight: 100 900;
  font-feature-settings: "liga" 0;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Libre Baskerville';
  src: url("/fonts/Libre_Baskerville/LibreBaskerville-Bold.ttf") format("truetype");
  font-feature-settings: "liga" 0;
  font-weight: bold;
  font-display: swap; }

@font-face {
  font-family: 'Libre Baskerville';
  src: url("/fonts/Libre_Baskerville/LibreBaskerville-Regular.ttf") format("truetype");
  font-weight: normal;
  font-display: swap; }

:root {
  --font-heading: 'Libre Baskerville';
  --font-tibetan: 'BabelStone Tibetan Slim';
  --font-latin: 'Noto Serif';
  --font-body: --font-tibetan, --font-latin;
  --black-dark: #151515;
  --black-medium: #242424;
  --black-light: #363636;
  --color-dark-400: #363636;
  --color-dark-500: #363636;
  --white-dark: #E9E9E9;
  --white-medium: #F6F7F8;
  --white-light: #FFFFFF;
  --color-light: #f6f7f8;
  --color-accent: #b90808;
  --color-accent-2: #F6CD51;
  --line-height-base: 1.5;
  --measure-xs: 20ch;
  --measure-s: 35ch;
  --measure-m: 55ch;
  --measure-l: 75ch;
  --measure-xl: 96ch;
  --measure-2xl: 125ch;
  --content-s: 600px;
  --content-m: 900px;
  --content-l: 1200px;
  --content-xl: 1600px;
  --step--2: clamp(0.7901rem, 0.7558rem + 0.1718vw, 0.8889rem);
  --step--1: clamp(0.8889rem, 0.8502rem + 0.1932vw, 1rem);
  --step-0: clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem);
  --step-1: clamp(1.125rem, 1.0761rem + 0.2446vw, 1.2656rem);
  --step-2: clamp(1.2656rem, 1.2106rem + 0.2751vw, 1.4238rem);
  --step-3: clamp(1.4238rem, 1.3619rem + 0.3095vw, 1.6018rem);
  --step-4: clamp(1.6018rem, 1.5322rem + 0.3482vw, 1.802rem);
  --step-5: clamp(1.802rem, 1.7237rem + 0.3917vw, 2.0273rem);
  --step-900: calc(clamp(1.85em, 1.8395rem + 1.1704vw, 2.5rem));
  --step-1000: calc(clamp(2.3rem, 2.1597rem + 1.6433vw, 3rem));
  --step-2000: calc(clamp(3rem, 2.8691rem + 2.4507vw, 4rem));
  --space-3xs: clamp(0.25rem, 0.2065rem + 0.2174vw, 0.375rem);
  --space-2xs: clamp(0.3125rem, 0.2473rem + 0.3261vw, 0.5rem);
  --space-xs: clamp(0.5rem, 0.413rem + 0.4348vw, 0.75rem);
  --space-s: clamp(0.625rem, 0.4946rem + 0.6522vw, 1rem);
  --space-m: clamp(0.9375rem, 0.7418rem + 0.9783vw, 1.5rem);
  --space-l: clamp(1.25rem, 0.9891rem + 1.3043vw, 2rem);
  --space-xl: clamp(1.875rem, 1.4837rem + 1.9565vw, 3rem);
  --space-2xl: clamp(2.5rem, 1.9783rem + 2.6087vw, 4rem);
  --space-3xl: clamp(3.75rem, 2.9674rem + 3.913vw, 6rem);
  --body-margin: var(--space-xs);
  --body-padding: var(--space-2xs);
  --media-medium: 1024px;
  --color-primary: #2d3436;
  --color-secondary: #636e72;
  --color-text: #2d3436;
  --color-hover: #f1f2f6;
  --color-focus: #74b9ff;
  --border-grid: #5d7782;
  --border-light: 1px solid rgba(0, 0, 0, 0.16);
  --border-medium: 1px solid rgba(0, 0, 0, 0.35);
  --border-dark: 1px solid rgba(0, 0, 0, 0.65);
  --card-background-color: #fff;
  --card-border-color: #ddd;
  --card-border-radius: 5px;
  --card-padding: 1rem;
  --card-gap: 0.5rem;
  --card-hover-transform: translateY(-2px);
  --card-hover-box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  --card-title-font-size: var(--step-1);
  --card-description-color: #333;
  --card-number-color: #555;
  --card-transition: transform 0.3s ease, box-shadow 0.3s ease;
  --card-vertical-height: 210px;
  --card-vertical-image-width: 180px;
  --card-vertical-image-height: 190px;
  --card-vertical-image-border-radius: 4px;
  --card-vertical-content-flex: 5;
  --card-vertical-image-flex: 2;
  --z-index-card: 1;
  --z-index-cloud: 1;
  --z-index-image: 3;
  --z-index-tooltip: 20;
  --z-index-def: 20;
  --z-index-toc: 98;
  --z-index-nav: 99;
  --z-index-logo: 100;
  --sidebar-main-width: 120rem;
  --sidebar-body-width: 65rem;
  --sidebar-toc-width: 25rem;
  --focus-outline: 3px solid var(--color-focus);
  --sidebar-width: 300px;
  --nav-height: 60px; }

.document__main {
  margin-left: var(--body-margin);
  margin-right: var(--body-margin);
  padding-left: var(--body-padding);
  padding-right: var(--body-padding);
  position: relative;
  margin-top: var(--nav-height); }

.document__toc {
  position: -webkit-sticky;
  position: fixed;
  top: var(--nav-height);
  height: 100dvh;
  height: 100vh;
  display: flex;
  width: 300px;
  flex-direction: column;
  overflow: hidden;
  transform: translateX(-110%);
  transition: transform 0.3s ease-in-out;
  z-index: var(--z-index-toc);
  box-shadow: 6px 0 10px -4px rgba(0, 0, 0, 0.1);
  position: fixed;
  background-color: var(--white-medium); }

.document__toc.active {
  transform: translateX(0%); }

.document__body {
  max-width: 75ch;
  margin: 0 auto;
  padding-top: var(--space-xl); }

@media (min-width: 1024px) {
  .document__main {
    display: grid;
    grid-template-columns: minmax(18rem, 1fr) minmax(45rem, 3fr) minmax(10rem, 1fr);
    gap: var(--space-l);
    max-width: 90rem;
    margin: 0 auto;
    padding-top: var(--space-xl); }
  .document__toc {
    overflow: hidden;
    position: sticky;
    left: auto;
    transform: none;
    width: 100%;
    bottom: 22vh;
    max-height: calc(100vh - 20vh);
    box-shadow: none;
    background: transparent;
    border-right: 1px solid transparent;
    transition: color 0.2s ease, transform 0.3s ease-in-out, border-right 0.2s ease;
    padding-left: 0; }
  .document__body {
    grid-column: 2;
    padding: 0 var(--space-s);
    max-width: 65ch; }
  .document__body article {
    min-height: 70%; }
  .sidebar-toggle {
    display: none; } }

@font-face {
  font-family: "BabelStone Tibetan Slim";
  src: url("/fonts/BabelStoneTibetanSlim.ttf") format("truetype");
  unicode-range: U+0F00-0FFF;
  size-adjust: 140%;
  descent-override: 50%;
  letter-spacing: 1.1px;
  font-display: swap; }

@font-face {
  font-family: 'Noto Serif';
  src: url("/fonts/Noto_Serif/NotoSerif-VariableFont_wdth,wght.ttf") format("truetype");
  font-weight: 100 900;
  font-feature-settings: "liga" 0;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Libre Baskerville';
  src: url("/fonts/Libre_Baskerville/LibreBaskerville-Bold.ttf") format("truetype");
  font-feature-settings: "liga" 0;
  font-weight: bold;
  font-display: swap; }

@font-face {
  font-family: 'Libre Baskerville';
  src: url("/fonts/Libre_Baskerville/LibreBaskerville-Regular.ttf") format("truetype");
  font-weight: normal;
  font-display: swap; }

:root {
  --font-heading: 'Libre Baskerville';
  --font-tibetan: 'BabelStone Tibetan Slim';
  --font-latin: 'Noto Serif';
  --font-body: --font-tibetan, --font-latin;
  --black-dark: #151515;
  --black-medium: #242424;
  --black-light: #363636;
  --color-dark-400: #363636;
  --color-dark-500: #363636;
  --white-dark: #E9E9E9;
  --white-medium: #F6F7F8;
  --white-light: #FFFFFF;
  --color-light: #f6f7f8;
  --color-accent: #b90808;
  --color-accent-2: #F6CD51;
  --line-height-base: 1.5;
  --measure-xs: 20ch;
  --measure-s: 35ch;
  --measure-m: 55ch;
  --measure-l: 75ch;
  --measure-xl: 96ch;
  --measure-2xl: 125ch;
  --content-s: 600px;
  --content-m: 900px;
  --content-l: 1200px;
  --content-xl: 1600px;
  --step--2: clamp(0.7901rem, 0.7558rem + 0.1718vw, 0.8889rem);
  --step--1: clamp(0.8889rem, 0.8502rem + 0.1932vw, 1rem);
  --step-0: clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem);
  --step-1: clamp(1.125rem, 1.0761rem + 0.2446vw, 1.2656rem);
  --step-2: clamp(1.2656rem, 1.2106rem + 0.2751vw, 1.4238rem);
  --step-3: clamp(1.4238rem, 1.3619rem + 0.3095vw, 1.6018rem);
  --step-4: clamp(1.6018rem, 1.5322rem + 0.3482vw, 1.802rem);
  --step-5: clamp(1.802rem, 1.7237rem + 0.3917vw, 2.0273rem);
  --step-900: calc(clamp(1.85em, 1.8395rem + 1.1704vw, 2.5rem));
  --step-1000: calc(clamp(2.3rem, 2.1597rem + 1.6433vw, 3rem));
  --step-2000: calc(clamp(3rem, 2.8691rem + 2.4507vw, 4rem));
  --space-3xs: clamp(0.25rem, 0.2065rem + 0.2174vw, 0.375rem);
  --space-2xs: clamp(0.3125rem, 0.2473rem + 0.3261vw, 0.5rem);
  --space-xs: clamp(0.5rem, 0.413rem + 0.4348vw, 0.75rem);
  --space-s: clamp(0.625rem, 0.4946rem + 0.6522vw, 1rem);
  --space-m: clamp(0.9375rem, 0.7418rem + 0.9783vw, 1.5rem);
  --space-l: clamp(1.25rem, 0.9891rem + 1.3043vw, 2rem);
  --space-xl: clamp(1.875rem, 1.4837rem + 1.9565vw, 3rem);
  --space-2xl: clamp(2.5rem, 1.9783rem + 2.6087vw, 4rem);
  --space-3xl: clamp(3.75rem, 2.9674rem + 3.913vw, 6rem);
  --body-margin: var(--space-xs);
  --body-padding: var(--space-2xs);
  --media-medium: 1024px;
  --color-primary: #2d3436;
  --color-secondary: #636e72;
  --color-text: #2d3436;
  --color-hover: #f1f2f6;
  --color-focus: #74b9ff;
  --border-grid: #5d7782;
  --border-light: 1px solid rgba(0, 0, 0, 0.16);
  --border-medium: 1px solid rgba(0, 0, 0, 0.35);
  --border-dark: 1px solid rgba(0, 0, 0, 0.65);
  --card-background-color: #fff;
  --card-border-color: #ddd;
  --card-border-radius: 5px;
  --card-padding: 1rem;
  --card-gap: 0.5rem;
  --card-hover-transform: translateY(-2px);
  --card-hover-box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  --card-title-font-size: var(--step-1);
  --card-description-color: #333;
  --card-number-color: #555;
  --card-transition: transform 0.3s ease, box-shadow 0.3s ease;
  --card-vertical-height: 210px;
  --card-vertical-image-width: 180px;
  --card-vertical-image-height: 190px;
  --card-vertical-image-border-radius: 4px;
  --card-vertical-content-flex: 5;
  --card-vertical-image-flex: 2;
  --z-index-card: 1;
  --z-index-cloud: 1;
  --z-index-image: 3;
  --z-index-tooltip: 20;
  --z-index-def: 20;
  --z-index-toc: 98;
  --z-index-nav: 99;
  --z-index-logo: 100;
  --sidebar-main-width: 120rem;
  --sidebar-body-width: 65rem;
  --sidebar-toc-width: 25rem;
  --focus-outline: 3px solid var(--color-focus);
  --sidebar-width: 300px;
  --nav-height: 60px; }

.sidebar-header {
  flex-shrink: 0;
  margin: var(--body-margin);
  z-index: 10;
  font-weight: 700; }

#sidebar-links {
  flex: 1;
  overflow-y: auto;
  padding-right: 0.5rem;
  padding-top: 0;
  line-height: 1.3; }

.sidebar-header a {
  text-decoration: none; }

#sidebar-links:hover {
  color: var(--black-medium);
  border-right: var(--border-light); }

#sidebar-links a {
  display: block;
  padding: var(--space-3xs) var(--space-2xs);
  margin: 1px 0;
  text-decoration: none;
  border-radius: 0.25rem;
  transition: background-color 0.2s;
  border: 1px solid transparent;
  border-radius: 4px; }

#sidebar-links a:hover,
#sidebar-links a:focus {
  border: var(--border-dark);
  outline: none;
  background-color: rgba(0, 0, 0, 0.05); }

#sidebar-links a:focus-visible {
  outline: var(--focus-outline);
  outline-offset: -2px; }

#sidebar-links a.current {
  background-color: rgba(0, 0, 0, 0.08);
  font-weight: 500;
  color: var(--black-dark); }

#sidebar-links ul {
  list-style: none; }

.sidebar-level-1 {
  margin-top: 0px;
  padding-left: 0;
  font-size: var(--step--1); }

.sidebar-level-1 > li {
  margin-bottom: 0.25rem; }

.sidebar-level-1 > li:last-child {
  margin-bottom: 0; }

.sidebar-level-2 {
  margin-left: 1rem;
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  padding-left: 0; }

.sidebar-level-2 > li {
  margin-bottom: 0.125rem; }

.sidebar-level-2 > li:last-child {
  margin-bottom: 0; }

.sidebar-level-2 {
  overflow: hidden;
  transition: max-height 0.3s ease-in-out; }

/* additional support levels */
.sidebar-level-3 {
  margin-left: 1rem;
  font-size: var(--step--1); }

@font-face {
  font-family: "BabelStone Tibetan Slim";
  src: url("/fonts/BabelStoneTibetanSlim.ttf") format("truetype");
  unicode-range: U+0F00-0FFF;
  size-adjust: 140%;
  descent-override: 50%;
  letter-spacing: 1.1px;
  font-display: swap; }

@font-face {
  font-family: 'Noto Serif';
  src: url("/fonts/Noto_Serif/NotoSerif-VariableFont_wdth,wght.ttf") format("truetype");
  font-weight: 100 900;
  font-feature-settings: "liga" 0;
  font-style: normal;
  font-display: swap; }

@font-face {
  font-family: 'Libre Baskerville';
  src: url("/fonts/Libre_Baskerville/LibreBaskerville-Bold.ttf") format("truetype");
  font-feature-settings: "liga" 0;
  font-weight: bold;
  font-display: swap; }

@font-face {
  font-family: 'Libre Baskerville';
  src: url("/fonts/Libre_Baskerville/LibreBaskerville-Regular.ttf") format("truetype");
  font-weight: normal;
  font-display: swap; }

:root {
  --font-heading: 'Libre Baskerville';
  --font-tibetan: 'BabelStone Tibetan Slim';
  --font-latin: 'Noto Serif';
  --font-body: --font-tibetan, --font-latin;
  --black-dark: #151515;
  --black-medium: #242424;
  --black-light: #363636;
  --color-dark-400: #363636;
  --color-dark-500: #363636;
  --white-dark: #E9E9E9;
  --white-medium: #F6F7F8;
  --white-light: #FFFFFF;
  --color-light: #f6f7f8;
  --color-accent: #b90808;
  --color-accent-2: #F6CD51;
  --line-height-base: 1.5;
  --measure-xs: 20ch;
  --measure-s: 35ch;
  --measure-m: 55ch;
  --measure-l: 75ch;
  --measure-xl: 96ch;
  --measure-2xl: 125ch;
  --content-s: 600px;
  --content-m: 900px;
  --content-l: 1200px;
  --content-xl: 1600px;
  --step--2: clamp(0.7901rem, 0.7558rem + 0.1718vw, 0.8889rem);
  --step--1: clamp(0.8889rem, 0.8502rem + 0.1932vw, 1rem);
  --step-0: clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem);
  --step-1: clamp(1.125rem, 1.0761rem + 0.2446vw, 1.2656rem);
  --step-2: clamp(1.2656rem, 1.2106rem + 0.2751vw, 1.4238rem);
  --step-3: clamp(1.4238rem, 1.3619rem + 0.3095vw, 1.6018rem);
  --step-4: clamp(1.6018rem, 1.5322rem + 0.3482vw, 1.802rem);
  --step-5: clamp(1.802rem, 1.7237rem + 0.3917vw, 2.0273rem);
  --step-900: calc(clamp(1.85em, 1.8395rem + 1.1704vw, 2.5rem));
  --step-1000: calc(clamp(2.3rem, 2.1597rem + 1.6433vw, 3rem));
  --step-2000: calc(clamp(3rem, 2.8691rem + 2.4507vw, 4rem));
  --space-3xs: clamp(0.25rem, 0.2065rem + 0.2174vw, 0.375rem);
  --space-2xs: clamp(0.3125rem, 0.2473rem + 0.3261vw, 0.5rem);
  --space-xs: clamp(0.5rem, 0.413rem + 0.4348vw, 0.75rem);
  --space-s: clamp(0.625rem, 0.4946rem + 0.6522vw, 1rem);
  --space-m: clamp(0.9375rem, 0.7418rem + 0.9783vw, 1.5rem);
  --space-l: clamp(1.25rem, 0.9891rem + 1.3043vw, 2rem);
  --space-xl: clamp(1.875rem, 1.4837rem + 1.9565vw, 3rem);
  --space-2xl: clamp(2.5rem, 1.9783rem + 2.6087vw, 4rem);
  --space-3xl: clamp(3.75rem, 2.9674rem + 3.913vw, 6rem);
  --body-margin: var(--space-xs);
  --body-padding: var(--space-2xs);
  --media-medium: 1024px;
  --color-primary: #2d3436;
  --color-secondary: #636e72;
  --color-text: #2d3436;
  --color-hover: #f1f2f6;
  --color-focus: #74b9ff;
  --border-grid: #5d7782;
  --border-light: 1px solid rgba(0, 0, 0, 0.16);
  --border-medium: 1px solid rgba(0, 0, 0, 0.35);
  --border-dark: 1px solid rgba(0, 0, 0, 0.65);
  --card-background-color: #fff;
  --card-border-color: #ddd;
  --card-border-radius: 5px;
  --card-padding: 1rem;
  --card-gap: 0.5rem;
  --card-hover-transform: translateY(-2px);
  --card-hover-box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  --card-title-font-size: var(--step-1);
  --card-description-color: #333;
  --card-number-color: #555;
  --card-transition: transform 0.3s ease, box-shadow 0.3s ease;
  --card-vertical-height: 210px;
  --card-vertical-image-width: 180px;
  --card-vertical-image-height: 190px;
  --card-vertical-image-border-radius: 4px;
  --card-vertical-content-flex: 5;
  --card-vertical-image-flex: 2;
  --z-index-card: 1;
  --z-index-cloud: 1;
  --z-index-image: 3;
  --z-index-tooltip: 20;
  --z-index-def: 20;
  --z-index-toc: 98;
  --z-index-nav: 99;
  --z-index-logo: 100;
  --sidebar-main-width: 120rem;
  --sidebar-body-width: 65rem;
  --sidebar-toc-width: 25rem;
  --focus-outline: 3px solid var(--color-focus);
  --sidebar-width: 300px;
  --nav-height: 60px; }

.pager {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 1rem;
  margin-top: var(--space-l);
  border-top: var(--border-light); }

.pager__prev,
.pager__next {
  text-decoration: 2px solid transparent;
  color: #333;
  transition: all 0.2s ease;
  position: relative;
  display: flex;
  align-items: center; }

.pager__prev {
  padding-left: 2rem;
  padding-bottom: 0.5rem; }

.pager__next {
  padding-top: 0.5rem;
  padding-right: 2rem;
  justify-content: flex-end; }

.pager__prev:hover,
.pager__next:hover {
  color: var(--black-dark); }

.pager__prev::before,
.pager__next::after {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  border-style: solid;
  border-width: 2px 2px 0 0; }

.pager__prev::before {
  left: 0.75rem;
  transform: rotate(-135deg); }

.pager__next::after {
  right: 0.75rem;
  transform: rotate(45deg); }
