.sl-markdown-content img.circuit-diagram {
  background: #fff;
  padding: 12px;
  box-sizing: content-box;
  max-width: calc(100% - 24px);
  height: auto;
  border-radius: 6px;
}

.video-frame { aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--sl-color-gray-5); border-radius: .75rem; background: var(--sl-color-bg-sidebar); }
.video-frame iframe { width: 100%; height: 100%; border: 0; }

.gallery-slots { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.gallery-slots > div { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--sl-color-gray-5); border-radius: .65rem; color: var(--sl-color-gray-3); font-size: .85rem; background: var(--sl-color-bg-sidebar); }
.gallery-slots > div > span { display: block; width: 100%; padding: .45rem .65rem; text-align: center; box-sizing: border-box; }
.gallery-slots > div > img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; margin: 0; border-radius: 0; background: var(--sl-color-gray-6); }

@media (max-width: 50rem) { .gallery-slots { grid-template-columns: 1fr; } }

/* PDF-only temporary content. JS inserts/removes these nodes around window.print(). */
.ld-print-version,
.ld-print-video-qr,
.ld-print-notice { display: none; }

@media print {
  .ld-print-notice { display: block !important; margin: .75rem 0 1rem; padding: .75rem 1rem; border: 1px solid #c9a227; border-radius: .45rem; background: #fffdf2 !important; color: #111 !important; break-inside: avoid; page-break-inside: avoid; }
  .ld-print-notice p { margin: .35rem 0 0 !important; }

  .ld-print-version { display: block !important; margin: 0 0 1.25rem; break-inside: avoid; page-break-inside: avoid; }
  .ld-print-version h2 { margin-top: 0 !important; }
  .ld-print-version table { width: 100%; border-collapse: collapse; }
  .ld-print-version th,
  .ld-print-version td { padding: .42rem .6rem; border: 1px solid #bbb; text-align: left; }

  .video-frame { aspect-ratio: auto !important; min-height: 0 !important; overflow: visible !important; border: 0 !important; background: transparent !important; break-inside: avoid; page-break-inside: avoid; }
  .video-frame iframe { display: none !important; }
  .ld-print-video-qr { display: flex !important; flex-direction: row; align-items: center; gap: .8rem; padding: .75rem; border: 1px solid #bbb; border-radius: .5rem; background: #fff !important; color: #111 !important; }
  .ld-print-video-qr img { width: 112px !important; height: 112px !important; max-width: 112px !important; margin: 0 !important; image-rendering: pixelated; }
}
html[data-theme="dark"]{--sl-color-accent-low:#123d47;--sl-color-accent:#53d6c7;--sl-color-accent-high:#c7f7f1;--sl-color-bg:#191a1f;--sl-color-bg-nav:#17181d;--sl-color-bg-sidebar:#191a1f;--sl-nav-height:58px;color-scheme:dark}
html[data-theme="light"]{--sl-color-accent-low:#d9f7f2;--sl-color-accent:#168f84;--sl-color-accent-high:#0d5f58;--sl-color-bg:#ffffff;--sl-color-bg-nav:#ffffff;--sl-color-bg-sidebar:#f7f8fa;--sl-nav-height:58px;color-scheme:light}
header.header{height:58px;padding:0;background:#17181d;border-bottom:1px solid #292b31}
.ld-doc-header{width:100%;height:58px;background:#17181d;color:#d9dce5;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
.ld-doc-nav-inner{height:100%;max-width:1160px;padding:0 20px;margin:auto;display:flex;align-items:center;justify-content:space-between}
.ld-doc-brand{display:flex;align-items:center;gap:8px;color:#f1f2f5;text-decoration:none;font-size:15px;font-weight:700}
.ld-doc-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid #3a3d46}
.ld-doc-header nav{display:flex;align-items:center;gap:28px;height:100%;font-size:13px;color:#d3d5dc}
.ld-doc-header nav a{height:100%;display:flex;align-items:center;color:inherit;text-decoration:none;border-bottom:2px solid transparent;padding-top:2px}
.ld-doc-header nav a:hover{color:#63ded0;border-bottom-color:#63ded0}
.ld-doc-bili{gap:5px}.ld-doc-bili img{width:19px;height:19px;display:block}
@media(max-width:50rem){.ld-doc-header nav{gap:15px}.ld-doc-header nav a:nth-child(2){display:none}.ld-doc-nav-inner{padding-left:52px}.ld-doc-brand span{display:inline}}
@media(max-width:30rem){.ld-doc-header nav a:nth-child(3){display:none}.ld-doc-header nav{gap:12px}}

.ld-theme-toggle{width:34px;height:34px;flex:0 0 34px;border:1px solid #343740;border-radius:50%;background:#202127;color:#d9dce5;display:grid;place-items:center;cursor:pointer;padding:0;font-size:17px;line-height:1}.ld-theme-toggle:hover{border-color:#53d6c7}.ld-theme-sun{display:none}.ld-theme-moon{display:block}html[data-theme="light"] .ld-theme-toggle{background:#f3f4f6;border-color:#d9dce2;color:#32363e}html[data-theme="light"] .ld-theme-sun{display:block}html[data-theme="light"] .ld-theme-moon{display:none}html[data-theme="light"] .ld-doc-header{background:#fff;color:#30343b}html[data-theme="light"] .ld-doc-brand{color:#20232a}html[data-theme="light"] header.header{background:#fff;border-bottom-color:#e5e7eb}

/* Unified top navigation: icon + text. Brand icons keep their own colors. */
.ld-doc-header .ld-nav-item{display:flex;align-items:center;gap:6px}.ld-nav-icon{width:18px;height:18px;display:block;flex:0 0 18px}.ld-nav-icon-ui{color:currentColor}.ld-nav-icon-oshw{border-radius:4px}.ld-nav-icon-chip{width:20px;height:20px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:0 0 20px}.ld-nav-icon-chip .ld-nav-icon-github{width:17px;height:17px}

/* Starlight footer + site visit statistics (Busuanzi) */
.ld-doc-footer{max-width:1160px;margin:36px auto 0;padding:24px 20px 34px;border-top:1px solid #2d2f36;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;color:#777d89;font:12px/1.6 Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}.ld-visit-stats{display:inline-flex;align-items:center;gap:8px}.ld-visit-stats strong{font-weight:600;color:#aeb4c0}.ld-stat-sep{opacity:.55}html[data-theme="light"] .ld-doc-footer{border-top-color:#e1e4e8;color:#7b8089}html[data-theme="light"] .ld-visit-stats strong{color:#555b65}@media(max-width:560px){.ld-doc-footer{flex-direction:column;gap:6px}.ld-visit-stats{gap:6px}}

/* Keep UI navigation icons readable on the dark documentation header. */
:root:not([data-theme="light"]) .ld-nav-icon-ui{filter:brightness(0) invert(1);opacity:.9}


/* PDF export */
.ld-pdf-export{height:32px;display:none;align-items:center;gap:5px;padding:0 9px;border:1px solid #343740;border-radius:8px;background:#202127;color:#d9dce5;cursor:pointer;font:600 12px/1 Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;white-space:nowrap}.ld-pdf-export:hover{border-color:#53d6c7;color:#63ded0}.ld-pdf-icon{font-size:10px;letter-spacing:.3px}.ld-pdf-text{font-size:12px}html[data-theme="light"] .ld-pdf-export{background:#f3f4f6;border-color:#d9dce2;color:#32363e}html[data-theme="light"] .ld-pdf-export:hover{border-color:#168f84;color:#168f84}
@media(max-width:50rem){.ld-pdf-export{width:32px;padding:0;justify-content:center}.ld-pdf-text{display:none}.ld-pdf-icon{font-size:9px}}

@media print{
  @page{size:auto;margin:0}
  html,body{background:#fff!important;color:#111!important;color-scheme:light!important} body{padding:14mm 13mm!important}
  header.header,.ld-doc-header,.sidebar-pane,.right-sidebar-container,.right-sidebar,.mobile-preferences,.pagination-links,.ld-doc-footer,.ld-pdf-export,video,iframe,.ld-print-hide{display:none!important}
  main,.main-pane,.content-panel,.sl-container,.sl-markdown-content{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  .sl-markdown-content{font-size:11pt!important;line-height:1.65!important;color:#111!important}
  .sl-markdown-content h1,.sl-markdown-content h2,.sl-markdown-content h3,.sl-markdown-content strong{color:#111!important}
  .sl-markdown-content a{color:#075db3!important;text-decoration:underline!important}
  .sl-markdown-content img{max-width:100%!important;height:auto!important;break-inside:avoid;page-break-inside:avoid}
  .sl-markdown-content details,.sl-markdown-content figure,.sl-markdown-content pre,.sl-markdown-content table,.sl-markdown-content aside{break-inside:avoid;page-break-inside:avoid}
  .sl-markdown-content details{background:#fff!important;color:#111!important;border-color:#bbb!important}
  .sl-markdown-content pre{white-space:pre-wrap!important;overflow:visible!important}
}

/* Only expose the PDF export control when the page is opened with ?pdf=1. */
html.ld-pdf-mode .ld-pdf-export{display:flex}

/* Mobile documentation header: match the homepage's compact icon-only navigation. */
@media(max-width:620px){
  header.header,.ld-doc-header{height:56px}
  .ld-doc-nav-inner{padding:0 10px 0 50px;gap:6px}
  .ld-doc-brand{gap:0;flex:0 0 auto}
  .ld-doc-avatar{width:30px;height:30px}
  .ld-doc-brand span{display:none}
  .ld-doc-header nav{display:flex;flex:1;justify-content:flex-end;gap:3px;min-width:0;font-size:0}
  .ld-doc-header nav a:nth-child(2),.ld-doc-header nav a:nth-child(3){display:flex}
  .ld-doc-header .ld-nav-item{width:34px;height:56px;padding:0;display:flex;align-items:center;justify-content:center;gap:0;border-bottom-width:2px;flex:0 0 34px}
  .ld-doc-header .ld-nav-icon{width:20px;height:20px;flex-basis:20px}
  .ld-doc-header .ld-nav-icon-oshw{width:22px;height:22px;flex-basis:22px}
  .ld-doc-header .ld-nav-icon-chip{width:23px;height:23px;flex:0 0 23px}
  .ld-doc-header .ld-nav-icon-chip .ld-nav-icon-github{width:19px;height:19px}
  .ld-theme-toggle{width:34px;height:34px;flex:0 0 34px;margin-left:1px}
  html.ld-pdf-mode .ld-pdf-export{width:32px;flex:0 0 32px}
}
@media(max-width:390px){
  .ld-doc-nav-inner{padding-right:6px;gap:3px}
  .ld-doc-header nav{gap:1px}
  .ld-doc-header .ld-nav-item{width:31px;flex-basis:31px}
  .ld-theme-toggle{width:32px;height:32px;flex-basis:32px}
}

/* Mobile docs v13 fix: reserve Starlight's fixed menu button and keep the TOC flush with the header. */
@media(max-width:620px){
  html{--sl-nav-height:56px}
  header.header{height:56px!important;border-bottom:0!important}
  .ld-doc-header{height:56px!important;border-bottom:1px solid #292b31}
  html[data-theme="light"] .ld-doc-header{border-bottom-color:#e5e7eb}

  /* Starlight's hamburger is fixed at the right edge and is not part of Header flex layout. */
  .ld-doc-nav-inner{padding-left:12px!important;padding-right:62px!important;gap:4px!important}
  .ld-doc-header nav{gap:1px!important}
  .ld-doc-header .ld-nav-item{width:30px!important;flex-basis:30px!important}
  .ld-theme-toggle{width:32px!important;height:32px!important;flex-basis:32px!important;margin-left:0!important}

}


/* Mobile docs v18: use the homepage mobile navigation measurements exactly.
   The only extra item on docs is Starlight's hamburger, so reserve its right-side space. */
@media(max-width:620px){
  .ld-doc-nav-inner{padding:0 62px 0 12px!important;gap:8px!important}
  .ld-doc-brand{gap:0!important;flex:0 0 auto!important}
  .ld-doc-avatar{width:34px!important;height:34px!important}
  .ld-doc-brand span{display:none!important}

  .ld-doc-header nav{display:flex!important;flex:1!important;justify-content:flex-end!important;gap:5px!important;font-size:0!important;min-width:0!important}
  .ld-doc-header nav a:nth-child(2),.ld-doc-header nav a:nth-child(3){display:flex!important}
  .ld-doc-header .ld-nav-item{width:39px!important;height:56px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;border-bottom-width:2px!important;flex:0 0 39px!important}
  .ld-doc-header .ld-nav-icon{width:21px!important;height:21px!important;flex-basis:21px!important}
  .ld-doc-header .ld-nav-icon-chip{width:24px!important;height:24px!important;flex:0 0 24px!important}
  .ld-doc-header .ld-nav-icon-chip .ld-nav-icon-github{width:20px!important;height:20px!important}
  .ld-doc-header .ld-nav-icon-oshw{width:23px!important;height:23px!important;flex-basis:23px!important}
  .ld-theme-toggle{width:38px!important;height:38px!important;margin-left:3px!important;flex:0 0 38px!important}
}
@media(max-width:390px){
  .ld-doc-nav-inner{padding-left:8px!important;padding-right:58px!important}
  .ld-doc-header nav{gap:2px!important}
  .ld-doc-header .ld-nav-item{width:36px!important;flex-basis:36px!important}
  .ld-theme-toggle{width:36px!important;height:36px!important;flex-basis:36px!important}
}

.ld-footer-motto{font-weight:600;letter-spacing:.02em}.ld-footer-heart{color:#ff5f73;margin:0 .12em}

/* Mobile documentation: keep code blocks free of copy controls and feedback. */
@media (max-width: 50rem) {
  .sl-markdown-content .expressive-code .copy {
    display: none !important;
  }
  .sl-markdown-content .expressive-code .ec-line:first-child .code {
    padding-inline-end: var(--ec-codePadInl) !important;
  }
}

/* v20: keep documentation footer visually consistent with the compact site footer. */
.ld-doc-footer{margin:18px auto 0;min-height:48px;padding:10px 20px 12px;gap:10px}
@media(max-width:560px){.ld-doc-footer{margin-top:12px;min-height:44px;padding:8px 12px 10px;gap:6px}}

/* v22: mobile documentation footer — ICP filing gets its own centered row. */
@media(max-width:560px){
  .ld-doc-footer{
    flex-direction:row;
    flex-wrap:wrap;
    justify-content:center;
    align-content:center;
    column-gap:7px;
    row-gap:3px;
    min-height:58px;
    padding:7px 10px 9px;
    line-height:1.35;
  }
  .ld-doc-footer>span:last-child{
    flex:0 0 100%;
    width:100%;
    text-align:center;
    white-space:nowrap;
  }
}

/* vPDF-CAN: professional print layout for documentation export. Web layout is unchanged. */
.ld-print-cover{display:none}
@media print{
  @page{size:A4;margin:15mm 16mm 17mm}
  html,body{font-family:Inter,"PingFang SC","Microsoft YaHei",Arial,sans-serif!important}
  body{padding:0!important}
  .sl-markdown-content{font-size:10.5pt!important;line-height:1.68!important}

  .ld-print-cover{display:flex!important;min-height:252mm;box-sizing:border-box;flex-direction:column;justify-content:space-between;break-after:page;page-break-after:always;padding:7mm 3mm 5mm;color:#111!important}
  .ld-print-cover-brand{font-size:10pt;font-weight:700;letter-spacing:.12em;border-bottom:1px solid #222;padding-bottom:4mm}
  .ld-print-cover-main{margin:auto 0}
  .ld-print-cover-kicker{font-size:9.5pt;font-weight:700;letter-spacing:.16em;margin-bottom:7mm}
  .ld-print-cover h1{font-size:31pt!important;line-height:1.15!important;letter-spacing:.02em;margin:0!important;color:#111!important;border:0!important}
  .ld-print-cover-subtitle{font-size:16pt!important;font-weight:600;margin:4mm 0 0!important}
  .ld-print-cover-rule{width:22mm;border-top:3px solid #111;margin:10mm 0 6mm}
  .ld-print-cover-desc{font-size:10.5pt!important;margin:0!important;color:#444!important}
  .ld-print-cover-meta{display:flex;justify-content:space-between;font-size:9pt;color:#555}

  .ld-print-version{margin:0 0 10mm!important;padding:0!important}
  .ld-print-version h2{font-size:15pt!important;border-bottom:2px solid #222!important;padding-bottom:2.5mm!important;margin:0 0 4mm!important}
  .ld-print-version table{font-size:9.5pt!important}
  .ld-print-version th{font-weight:700!important;background:#f2f2f2!important}

  .sl-markdown-content>h2{font-size:17pt!important;line-height:1.25!important;margin:10mm 0 5mm!important;padding:0 0 2.5mm!important;border-bottom:2px solid #222!important;break-after:avoid;page-break-after:avoid}
  .sl-markdown-content>h3,.sl-markdown-content h3{font-size:13pt!important;line-height:1.3!important;margin:7mm 0 3mm!important;break-after:avoid;page-break-after:avoid}
  .sl-markdown-content h4{font-size:11pt!important;margin:5mm 0 2mm!important;break-after:avoid;page-break-after:avoid}
  .sl-markdown-content p{orphans:3;widows:3;margin:.55em 0!important}
  .sl-markdown-content ul,.sl-markdown-content ol{margin:.55em 0 .8em 1.25em!important}
  .sl-markdown-content li{margin:.18em 0!important}

  .sl-markdown-content table{width:auto!important;max-width:100%!important;border-collapse:collapse!important;font-size:9.5pt!important;margin:4mm 0 6mm!important}
  .sl-markdown-content th,.sl-markdown-content td{padding:2.1mm 3mm!important;border:1px solid #b8b8b8!important;vertical-align:top!important}
  .sl-markdown-content th{background:#f2f2f2!important;font-weight:700!important}
  .sl-markdown-content thead{display:table-header-group}
  .sl-markdown-content tr{break-inside:avoid;page-break-inside:avoid}

  .sl-markdown-content pre{font-size:9pt!important;line-height:1.45!important;padding:3mm 4mm!important;margin:3mm 0 5mm!important;border:1px solid #c8c8c8!important;border-left:3px solid #555!important;border-radius:0!important;background:#f7f7f7!important;color:#111!important;box-shadow:none!important}
  .sl-markdown-content code{color:#111!important}
  .sl-markdown-content blockquote{margin:4mm 0 6mm!important;padding:3mm 4mm!important;border-left:3px solid #555!important;background:#f6f6f6!important;color:#111!important;break-inside:avoid;page-break-inside:avoid}

  .sl-markdown-content img{display:block!important;max-width:150mm!important;max-height:105mm!important;width:auto!important;height:auto!important;margin:5mm auto 7mm!important;object-fit:contain!important}
  .sl-markdown-content a{color:#111!important;text-decoration:underline!important;text-underline-offset:2px}
  .sl-markdown-content hr{border:0!important;border-top:1px solid #d5d5d5!important;margin:7mm 0!important}

  /* Avoid awkward page starts/ends around headings and media. */
  .sl-markdown-content h2+img,.sl-markdown-content h3+img{break-before:avoid;page-break-before:avoid}
  .sl-markdown-content h2+table,.sl-markdown-content h3+table,.sl-markdown-content h3+pre,.sl-markdown-content h4+pre{break-before:avoid;page-break-before:avoid}
  .sl-markdown-content img,.sl-markdown-content pre,.sl-markdown-content blockquote{break-inside:avoid;page-break-inside:avoid}

  /* Comments and interactive-only elements do not belong in the manual. */
  .sl-markdown-content iframe[src*="echo"],.sl-markdown-content [class*="echo-thread"],.sl-markdown-content [id*="echo-thread"]{display:none!important}
}

/* vPDF-CAN-2: refinements after checking the real Chrome PDF output. */
@media print {
  /* The cover must always be page 1. Version history follows it, not precedes it. */
  .ld-print-cover + .ld-print-version { margin-top: 0 !important; }

  /* Keep chapter headings with useful content instead of leaving a heading alone at page bottom. */
  .sl-markdown-content > h2 { break-after: avoid-page !important; page-break-after: avoid !important; }
  .sl-markdown-content > h2 + h3,
  .sl-markdown-content > h2 + p,
  .sl-markdown-content > h2 + table,
  .sl-markdown-content > h2 + img { break-before: avoid-page !important; page-break-before: avoid !important; }
  .sl-markdown-content h3 { break-after: avoid-page !important; page-break-after: avoid !important; }

  /* Tables may continue onto another page; rows themselves remain intact. This avoids large blank areas. */
  .sl-markdown-content table { break-inside: auto !important; page-break-inside: auto !important; }
  .sl-markdown-content tr { break-inside: avoid !important; page-break-inside: avoid !important; }

  /* Slightly denser long command/reference sections. */
  .sl-markdown-content table td code,
  .sl-markdown-content table th code { font-size: 8.8pt !important; }
}
@layer starlight.base, starlight.reset, starlight.core, starlight.content, starlight.components, starlight.utils;
@layer starlight.base {
	:root,
	::backdrop {
		/* Colors (dark mode) */
		--sl-color-white: hsl(0, 0%, 100%); /* “white” */
		--sl-color-gray-1: hsl(224, 20%, 94%);
		--sl-color-gray-2: hsl(224, 6%, 77%);
		--sl-color-gray-3: hsl(224, 6%, 56%);
		--sl-color-gray-4: hsl(224, 7%, 36%);
		--sl-color-gray-5: hsl(224, 10%, 23%);
		--sl-color-gray-6: hsl(224, 14%, 16%);
		--sl-color-black: hsl(224, 10%, 10%);

		--sl-hue-orange: 41;
		--sl-color-orange-low: hsl(var(--sl-hue-orange), 39%, 22%);
		--sl-color-orange: hsl(var(--sl-hue-orange), 82%, 63%);
		--sl-color-orange-high: hsl(var(--sl-hue-orange), 82%, 87%);
		--sl-hue-green: 101;
		--sl-color-green-low: hsl(var(--sl-hue-green), 39%, 22%);
		--sl-color-green: hsl(var(--sl-hue-green), 82%, 63%);
		--sl-color-green-high: hsl(var(--sl-hue-green), 82%, 80%);
		--sl-hue-blue: 234;
		--sl-color-blue-low: hsl(var(--sl-hue-blue), 54%, 20%);
		--sl-color-blue: hsl(var(--sl-hue-blue), 100%, 60%);
		--sl-color-blue-high: hsl(var(--sl-hue-blue), 100%, 87%);
		--sl-hue-purple: 281;
		--sl-color-purple-low: hsl(var(--sl-hue-purple), 39%, 22%);
		--sl-color-purple: hsl(var(--sl-hue-purple), 82%, 63%);
		--sl-color-purple-high: hsl(var(--sl-hue-purple), 82%, 89%);
		--sl-hue-red: 339;
		--sl-color-red-low: hsl(var(--sl-hue-red), 39%, 22%);
		--sl-color-red: hsl(var(--sl-hue-red), 82%, 63%);
		--sl-color-red-high: hsl(var(--sl-hue-red), 82%, 87%);

		--sl-color-accent-low: hsl(224, 54%, 20%);
		--sl-color-accent: hsl(224, 100%, 60%);
		--sl-color-accent-high: hsl(224, 100%, 85%);

		--sl-color-text: var(--sl-color-gray-2);
		--sl-color-text-accent: var(--sl-color-accent-high);
		--sl-color-text-invert: var(--sl-color-accent-low);
		--sl-color-bg: var(--sl-color-black);
		--sl-color-bg-nav: var(--sl-color-gray-6);
		--sl-color-bg-sidebar: var(--sl-color-gray-6);
		--sl-color-bg-inline-code: var(--sl-color-gray-5);
		--sl-color-bg-accent: var(--sl-color-accent-high);
		--sl-color-hairline-light: var(--sl-color-gray-5);
		--sl-color-hairline: var(--sl-color-gray-6);
		--sl-color-hairline-shade: var(--sl-color-black);

		--sl-color-backdrop-overlay: hsla(223, 13%, 10%, 0.66);

		/* Shadows (dark mode) */
		--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, 0.12), 0px 2px 1px hsla(0, 0%, 0%, 0.24);
		--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, 0.08), 0px 5px 2px hsla(0, 0%, 0%, 0.08),
			0px 3px 2px hsla(0, 0%, 0%, 0.12), 0px 1px 1px hsla(0, 0%, 0%, 0.15);
		--sl-shadow-lg: 0px 25px 7px hsla(0, 0%, 0%, 0.03), 0px 16px 6px hsla(0, 0%, 0%, 0.1),
			0px 9px 5px hsla(223, 13%, 10%, 0.33), 0px 4px 4px hsla(0, 0%, 0%, 0.75),
			0px 4px 2px hsla(0, 0%, 0%, 0.25);

		/* Text size and line height */
		--sl-text-2xs: 0.75rem; /* 12px */
		--sl-text-xs: 0.8125rem; /* 13px */
		--sl-text-sm: 0.875rem; /* 14px */
		--sl-text-base: 1rem; /* 16px */
		--sl-text-lg: 1.125rem; /* 18px */
		--sl-text-xl: 1.25rem; /* 20px */
		--sl-text-2xl: 1.5rem; /* 24px */
		--sl-text-3xl: 1.8125rem; /* 29px */
		--sl-text-4xl: 2.1875rem; /* 35px */
		--sl-text-5xl: 2.625rem; /* 42px */
		--sl-text-6xl: 4rem; /* 64px */

		--sl-text-body: var(--sl-text-base);
		--sl-text-body-sm: var(--sl-text-xs);
		--sl-text-code: var(--sl-text-sm);
		--sl-text-code-sm: var(--sl-text-xs);
		--sl-text-h1: var(--sl-text-4xl);
		--sl-text-h2: var(--sl-text-3xl);
		--sl-text-h3: var(--sl-text-2xl);
		--sl-text-h4: var(--sl-text-xl);
		--sl-text-h5: var(--sl-text-lg);

		--sl-line-height: 1.75;
		--sl-line-height-headings: 1.2;

		/*
			Although technically superseded by the `system-ui` font-family, we use `-apple-system` and
			`BlinkMacSystemFont` because `system-ui` causes issues on Windows computers in some languages.
			See: https://github.com/withastro/starlight/issues/3721
		*/
		--sl-font-system: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
			'Noto Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
			'Noto Color Emoji';
		--sl-font-system-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
			'Courier New', monospace;
		--__sl-font: var(--sl-font, var(--sl-font-system)), var(--sl-font-system);
		--__sl-font-mono: var(--sl-font-mono, var(--sl-font-system-mono)), var(--sl-font-system-mono);

		/** Key layout values */
		--sl-nav-height: 3.5rem;
		--sl-nav-pad-x: 1rem;
		--sl-nav-pad-y: 0.75rem;
		--sl-mobile-toc-height: 3rem;
		--sl-sidebar-width: 18.75rem;
		--sl-sidebar-pad-x: 1rem;
		--sl-content-width: 45rem;
		--sl-content-pad-x: 1rem;
		--sl-content-gap-y: 1rem;
		--sl-main-pad: 0 0 3vh 0;
		--sl-menu-button-size: 2rem;
		--sl-nav-gap: var(--sl-content-pad-x);
		/* Offset required to show outline inside an element instead of round the outside */
		--sl-outline-offset-inside: -0.1875rem;

		/* Global z-index values */
		--sl-z-index-toc: 4;
		--sl-z-index-menu: 5;
		--sl-z-index-navbar: 10;
		--sl-z-index-skiplink: 20;
	}

	:root[data-theme='light'],
	[data-theme='light'] ::backdrop {
		/* Colours (light mode) */
		--sl-color-white: hsl(224, 10%, 10%);
		--sl-color-gray-1: hsl(224, 14%, 16%);
		--sl-color-gray-2: hsl(224, 10%, 23%);
		--sl-color-gray-3: hsl(224, 7%, 36%);
		--sl-color-gray-4: hsl(224, 6%, 56%);
		--sl-color-gray-5: hsl(224, 6%, 77%);
		--sl-color-gray-6: hsl(224, 20%, 94%);
		--sl-color-gray-7: hsl(224, 19%, 97%);
		--sl-color-black: hsl(0, 0%, 100%);

		--sl-color-orange-high: hsl(var(--sl-hue-orange), 80%, 25%);
		--sl-color-orange: hsl(var(--sl-hue-orange), 90%, 60%);
		--sl-color-orange-low: hsl(var(--sl-hue-orange), 90%, 88%);
		--sl-color-green-high: hsl(var(--sl-hue-green), 80%, 22%);
		--sl-color-green: hsl(var(--sl-hue-green), 90%, 46%);
		--sl-color-green-low: hsl(var(--sl-hue-green), 85%, 90%);
		--sl-color-blue-high: hsl(var(--sl-hue-blue), 80%, 30%);
		--sl-color-blue: hsl(var(--sl-hue-blue), 90%, 60%);
		--sl-color-blue-low: hsl(var(--sl-hue-blue), 88%, 90%);
		--sl-color-purple-high: hsl(var(--sl-hue-purple), 90%, 30%);
		--sl-color-purple: hsl(var(--sl-hue-purple), 90%, 60%);
		--sl-color-purple-low: hsl(var(--sl-hue-purple), 80%, 90%);
		--sl-color-red-high: hsl(var(--sl-hue-red), 80%, 30%);
		--sl-color-red: hsl(var(--sl-hue-red), 90%, 60%);
		--sl-color-red-low: hsl(var(--sl-hue-red), 80%, 90%);

		--sl-color-accent-high: hsl(234, 80%, 30%);
		--sl-color-accent: hsl(234, 90%, 60%);
		--sl-color-accent-low: hsl(234, 88%, 90%);

		--sl-color-text-accent: var(--sl-color-accent);
		--sl-color-text-invert: var(--sl-color-black);
		--sl-color-bg-nav: var(--sl-color-gray-7);
		--sl-color-bg-sidebar: var(--sl-color-bg);
		--sl-color-bg-inline-code: var(--sl-color-gray-6);
		--sl-color-bg-accent: var(--sl-color-accent);
		--sl-color-hairline-light: var(--sl-color-gray-6);
		--sl-color-hairline-shade: var(--sl-color-gray-6);

		--sl-color-backdrop-overlay: hsla(225, 9%, 36%, 0.66);

		/* Shadows (light mode) */
		--sl-shadow-sm: 0px 1px 1px hsla(0, 0%, 0%, 0.06), 0px 2px 1px hsla(0, 0%, 0%, 0.06);
		--sl-shadow-md: 0px 8px 4px hsla(0, 0%, 0%, 0.03), 0px 5px 2px hsla(0, 0%, 0%, 0.03),
			0px 3px 2px hsla(0, 0%, 0%, 0.06), 0px 1px 1px hsla(0, 0%, 0%, 0.06);
		--sl-shadow-lg: 0px 25px 7px rgba(0, 0, 0, 0.01), 0px 16px 6px hsla(0, 0%, 0%, 0.03),
			0px 9px 5px hsla(223, 13%, 10%, 0.08), 0px 4px 4px hsla(0, 0%, 0%, 0.16),
			0px 4px 2px hsla(0, 0%, 0%, 0.04);
	}

	@media (min-width: 50em) {
		:root {
			--sl-nav-height: 4rem;
			--sl-nav-pad-x: 1.5rem;
			--sl-text-h1: var(--sl-text-5xl);
			--sl-text-h2: var(--sl-text-4xl);
			--sl-text-h3: var(--sl-text-3xl);
			--sl-text-h4: var(--sl-text-2xl);
		}
	}

	@media (min-width: 72rem) {
		:root {
			--sl-content-pad-x: 1.5rem;
			--sl-mobile-toc-height: 0rem;
		}
	}
}
@layer starlight.reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	* {
		margin: 0;
	}

	html {
		color-scheme: dark;
		accent-color: var(--sl-color-accent);
		-webkit-text-size-adjust: 100%;
		text-size-adjust: 100%;
	}

	html[data-theme='light'] {
		color-scheme: light;
	}

	body {
		font-family: var(--__sl-font);
		line-height: var(--sl-line-height);
		-webkit-font-smoothing: antialiased;
		color: var(--sl-color-text);
		background-color: var(--sl-color-bg);
	}

	/* :lang(zh, ja) has not been supported by Chromium-based browsers at the time of writing (2026-05) */
	[lang]:where(:lang(zh), :lang(ja)) {
		text-autospace: normal;
	}

	[lang]:where(:not(:lang(zh), :lang(ja))) {
		text-autospace: initial;
	}

	pre,
	code,
	samp,
	kbd {
		text-autospace: no-autospace;
	}

	input,
	button,
	textarea,
	select {
		font: inherit;
	}

	p,
	h1,
	h2,
	h3,
	h4,
	h5,
	h6,
	code {
		overflow-wrap: break-word;
	}

	code {
		font-family: var(--__sl-font-mono);
	}
}
@layer starlight.components {
	.starlight-aside {
		padding: 1rem;
		border-inline-start: 0.25rem solid var(--sl-color-asides-border);
		color: var(--sl-color-white);
	}
	.starlight-aside--note {
		--sl-color-asides-text-accent: var(--sl-color-blue-high);
		--sl-color-asides-border: var(--sl-color-blue);
		background-color: var(--sl-color-blue-low);
	}
	.starlight-aside--tip {
		--sl-color-asides-text-accent: var(--sl-color-purple-high);
		--sl-color-asides-border: var(--sl-color-purple);
		background-color: var(--sl-color-purple-low);
	}
	.starlight-aside--caution {
		--sl-color-asides-text-accent: var(--sl-color-orange-high);
		--sl-color-asides-border: var(--sl-color-orange);
		background-color: var(--sl-color-orange-low);
	}
	.starlight-aside--danger {
		--sl-color-asides-text-accent: var(--sl-color-red-high);
		--sl-color-asides-border: var(--sl-color-red);
		background-color: var(--sl-color-red-low);
	}

	.starlight-aside__title {
		display: flex;
		gap: 0.5rem;
		align-items: center;
		font-size: var(--sl-text-h5);
		font-weight: 600;
		line-height: var(--sl-line-height-headings);
		color: var(--sl-color-asides-text-accent);
	}

	.starlight-aside__icon {
		font-size: 1.333em;
		width: 1em;
		height: 1em;
	}

	.starlight-aside__title + .starlight-aside__content {
		margin-top: 0.5rem;
	}

	.starlight-aside__content:empty {
		display: none;
	}

	.starlight-aside__content a {
		color: var(--sl-color-asides-text-accent);
	}
}
@layer starlight.utils {
	.sr-only {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border-width: 0;
	}

	.sl-hidden {
		display: none;
	}
	.sl-flex {
		display: flex;
	}
	.sl-block {
		display: block;
	}
	@media (min-width: 50rem) {
		.md\:sl-hidden {
			display: none;
		}
		.md\:sl-flex {
			display: flex;
		}
		.md\:sl-block {
			display: block;
		}
	}
	@media (min-width: 72rem) {
		.lg\:sl-hidden {
			display: none;
		}
		.lg\:sl-flex {
			display: flex;
		}
		.lg\:sl-block {
			display: block;
		}
	}
	[data-theme='light'] .light\:sl-hidden {
		display: none;
	}
	[data-theme='dark'] .dark\:sl-hidden {
		display: none;
	}

	/**
	 * Flip an element around the y-axis when in an RTL context.
	 * Primarily useful for things where we can’t rely on writing direction like icons.
	 *
	 * <Icon name="right-arrow" class="rtl:flip" />
	 *
	 * In a LTR context: →					In a RTL context: ←
	 */
	[dir='rtl'] .rtl\:flip:not(:where([dir='rtl'] [dir='ltr'] *)) {
		transform: matrix(-1, 0, 0, 1, 0, 0);
	}
}
/* 
How does anchor link placement work?

Because anchor links need to placed inline at the end of a heading, but are not children of the
heading element itself, positioning them to behave in a desirable way is a tiny bit tricky. Here’s
how we do it.

1. We wrap the heading and anchor link in a div and make the heading element inline:
   <div class="sl-heading-wrapper">
     <h2>...</h2><a class="sl-anchor-link">...</a>
   </a>

2. We need to avoid the anchor link wrapping onto a new line by itself like this because it looks
   broken:

   Some heading text
   ⛓

3. To achieve this we add an area of padding to the end of the heading and move the link over this
   padding using negative margin:

                        padding-inline-end creates space at the end of the line
                         ↓
      Some heading text[   ]⛓

                        margin-inline-start then pulls the anchor link into that space
                         ↓
      Some heading text[ ⛓ ]

   This ensures that when the anchor link wraps, the final word in the heading will wrap with it.

*/
@layer starlight.content {
	/* ======================================================
   WRAPPER
   ====================================================== */
	.sl-markdown-content .sl-heading-wrapper {
		/* The size of the SVG icon. */
		--sl-anchor-icon-size: 0.8275em;
		/* The horizontal space between the SVG icon and the end of the heading text. */
		--sl-anchor-icon-gap: 0.25em;
		/* The end of line space required to accommodate the anchor link. */
		--sl-anchor-icon-space: calc(var(--sl-anchor-icon-size) + var(--sl-anchor-icon-gap));

		line-height: var(--sl-line-height-headings);
	}

	/* We need to apply the same rule we use for heading spacing to the parent wrapper. */
	.sl-markdown-content
		:not(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper)
		+ :is(.sl-heading-wrapper) {
		margin-top: 1.5em;
	}

	/* These font sizes are set in `markdown.css` for heading elements, but we need them one level higher on the wrapper. */
	.sl-markdown-content .sl-heading-wrapper.level-h1 {
		font-size: var(--sl-text-h1);
	}
	.sl-markdown-content .sl-heading-wrapper.level-h2 {
		font-size: var(--sl-text-h2);
	}
	.sl-markdown-content .sl-heading-wrapper.level-h3 {
		font-size: var(--sl-text-h3);
	}
	.sl-markdown-content .sl-heading-wrapper.level-h4 {
		font-size: var(--sl-text-h4);
	}
	.sl-markdown-content .sl-heading-wrapper.level-h5 {
		font-size: var(--sl-text-h5);
	}
	.sl-markdown-content .sl-heading-wrapper.level-h6 {
		font-size: var(--sl-text-h6);
	}

	/* ======================================================
   HEADING
   ====================================================== */
	.sl-markdown-content .sl-heading-wrapper > :first-child {
		display: inline;
		/* Apply end-of-line padding to the heading element. */
		padding-inline-end: var(--sl-anchor-icon-space);
	}

	/* ======================================================
   LINK
   ====================================================== */
	.sl-markdown-content .sl-anchor-link {
		position: relative;
		/* Move the anchor link over the heading element’s end-of-line padding. */
		margin-inline-start: calc(-1 * var(--sl-anchor-icon-size));
		/* Prevent double or triple clicks from potentially selecting the anchor link a11y text. */
		-webkit-user-select: none;
		user-select: none;
		/* Prevent double clicks on the last word (or single word) of a heading to include an extra new
     line in Chrome and Safari. */
		display: inline-flex;
	}

	/* Increase clickable area for anchor links with a pseudo element that doesn’t impact layout. */
	.sl-markdown-content .sl-anchor-link::after {
		content: '';
		position: absolute;
		/* While most icon spacing is done with `em` to be relative to the heading font-size, increasing
     the touch area is most important for smaller headings like h5/h6, so we use absolute units,
     which have a diminishing impact at larger font-sizes. */
		inset: -0.25rem -0.5rem;
	}

	/* Size and position the SVG icon inside the link. */
	.sl-markdown-content .sl-anchor-icon > svg {
		display: inline;
		width: var(--sl-anchor-icon-size);
		/* Center the link icon SVG vertically in the line. */
		vertical-align: top;
		transform: translateY(
			calc((var(--sl-line-height-headings) * 1em - var(--sl-anchor-icon-size)) / 2)
		);
	}

	/* On devices with hover capability, hide the anchor link icons and show only show them when focused
   or when the heading is hovered. */
	@media (hover: hover) {
		.sl-markdown-content .sl-anchor-link {
			opacity: 0;
		}
		.sl-markdown-content .sl-anchor-link:focus,
		.sl-markdown-content .sl-heading-wrapper:hover .sl-anchor-link {
			opacity: 1;
		}
	}
}
@layer starlight.core {
  .sl-banner:where(.astro-y5d7njgm) {
    --__sl-banner-text: var(--sl-color-banner-text, var(--sl-color-text-invert));
    padding: var(--sl-nav-pad-y) var(--sl-nav-pad-x);
    background-color: var(--sl-color-banner-bg, var(--sl-color-bg-accent));
    color: var(--__sl-banner-text);
    line-height: var(--sl-line-height-headings);
    text-align: center;
    text-wrap: balance;
    box-shadow: var(--sl-shadow-sm);
  }

  .sl-banner:where(.astro-y5d7njgm) a {
    color: var(--__sl-banner-text);
  }
}
@layer starlight.core {
  .content-panel:where(.astro-oil7k7jf) {
    padding: 1.5rem var(--sl-content-pad-x);
  }

  .content-panel:where(.astro-oil7k7jf) + .content-panel:where(.astro-oil7k7jf) {
    border-top: 1px solid var(--sl-color-hairline);
  }

  .sl-container:where(.astro-oil7k7jf) {
    max-width: var(--sl-content-width);
  }

  .sl-container:where(.astro-oil7k7jf) > * + * {
    margin-top: 1.5rem;
  }

  @media (width >= 72rem) {
    .sl-container:where(.astro-oil7k7jf) {
      margin-inline: var(--sl-content-margin-inline, auto);
    }
  }
}
@layer starlight.core {
  p:where(.astro-3rf4otau) {
    border: 1px solid var(--sl-color-orange);
    padding: .75em 1em;
    background-color: var(--sl-color-orange-low);
    color: var(--sl-color-orange-high);
    width: max-content;
    max-width: 100%;
    align-items: center;
    gap: .75em;
    font-size: var(--sl-text-body-sm);
    line-height: var(--sl-line-height-headings);
    text-align: start;
  }
}
@layer starlight.components {
  .sl-link-button:where(.astro-hlbqph7b) {
    align-items: center;
    border: 1px solid #0000;
    border-radius: 999rem;
    display: inline-flex;
    font-size: var(--sl-text-sm);
    gap: .5em;
    line-height: 1.1875;
    outline-offset: .25rem;
    padding: .4375rem 1.125rem;
    text-decoration: none;
  }

  .sl-link-button:where(.astro-hlbqph7b).primary {
    background: var(--sl-color-text-accent);
    border-color: var(--sl-color-text-accent);
    color: var(--sl-color-black);
  }

  .sl-link-button:where(.astro-hlbqph7b).primary:hover {
    color: var(--sl-color-black);
  }

  .sl-link-button:where(.astro-hlbqph7b).secondary {
    border-color: inherit;
    color: var(--sl-color-white);
  }

  .sl-link-button:where(.astro-hlbqph7b).minimal {
    color: var(--sl-color-white);
    padding-inline: 0;
  }

  .sl-link-button:where(.astro-hlbqph7b) svg {
    flex-shrink: 0;
  }

  @media (width >= 50rem) {
    .sl-link-button:where(.astro-hlbqph7b) {
      font-size: var(--sl-text-base);
      padding: .9375rem 1.25rem;
    }
  }

  .sl-markdown-content .sl-link-button:where(.astro-hlbqph7b) {
    margin-inline-end: 1rem;
  }

  .sl-markdown-content .sl-link-button:where(.astro-hlbqph7b):not(:where(p *)) {
    margin-block: 1rem;
  }
}
@layer starlight.core {
  .hero:where(.astro-q2ezz3gc) {
    display: grid;
    grid-template-columns: 100%;
    align-items: center;
    gap: 1rem;
    padding-bottom: 1rem;
  }

  .hero:where(.astro-q2ezz3gc) > img:where(.astro-q2ezz3gc), .hero:where(.astro-q2ezz3gc) > .hero-html:where(.astro-q2ezz3gc) {
    object-fit: contain;
    width: min(70%, 20rem);
    height: auto;
    margin-inline: auto;
  }

  .stack:where(.astro-q2ezz3gc) {
    flex-direction: column;
    gap: clamp(1.5rem, 1.5rem + 1vw, 2rem);
    text-align: center;
  }

  .copy:where(.astro-q2ezz3gc) {
    flex-direction: column;
    gap: 1rem;
    align-items: center;
  }

  .copy:where(.astro-q2ezz3gc) > :where(.astro-q2ezz3gc) {
    max-width: 50ch;
  }

  h1:where(.astro-q2ezz3gc) {
    font-size: clamp(var(--sl-text-3xl), calc(.25rem + 5vw), var(--sl-text-6xl));
    line-height: var(--sl-line-height-headings);
    font-weight: 600;
    color: var(--sl-color-white);
  }

  .tagline:where(.astro-q2ezz3gc) {
    font-size: clamp(var(--sl-text-base), calc(.0625rem + 2vw), var(--sl-text-xl));
    color: var(--sl-color-gray-2);
  }

  .actions:where(.astro-q2ezz3gc) {
    gap: 1rem 2rem;
    flex-wrap: wrap;
    justify-content: center;
  }

  @media (width >= 50rem) {
    .hero:where(.astro-q2ezz3gc) {
      grid-template-columns: 7fr 4fr;
      gap: 3%;
      padding-block: clamp(2.5rem, 1rem + 10vmin, 10rem);
    }

    .hero:where(.astro-q2ezz3gc) > img:where(.astro-q2ezz3gc), .hero:where(.astro-q2ezz3gc) > .hero-html:where(.astro-q2ezz3gc) {
      order: 2;
      width: min(100%, 25rem);
    }

    .stack:where(.astro-q2ezz3gc) {
      text-align: start;
    }

    .copy:where(.astro-q2ezz3gc) {
      align-items: flex-start;
    }

    .actions:where(.astro-q2ezz3gc) {
      justify-content: flex-start;
    }
  }
}
@layer starlight.content {
	.sl-markdown-content
		:not(a, strong, em, del, span, input, code, br)
		+ :not(a, strong, em, del, span, input, code, br, :where(.not-content *)) {
		margin-top: var(--sl-content-gap-y);
	}

	/* Vertical spacing between Markdown content blocks and UI Framework components using client directives. */
	.sl-markdown-content
		:not(a, strong, em, del, span, input, code, br)
		+ :is(astro-island, astro-slot)
		> :not(a, strong, em, del, span, input, code, br, :where(.not-content *)):first-child {
		margin-top: var(--sl-content-gap-y);
	}

	/* Headings after non-headings have more spacing. */
	.sl-markdown-content
		:not(h1, h2, h3, h4, h5, h6)
		+ :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
		margin-top: 1.5em;
	}

	.sl-markdown-content li + li:not(:where(.not-content *)),
	.sl-markdown-content dt + dt:not(:where(.not-content *)),
	.sl-markdown-content dt + dd:not(:where(.not-content *)),
	.sl-markdown-content dd + dd:not(:where(.not-content *)) {
		margin-top: 0.25rem;
	}

	.sl-markdown-content li:not(:where(.not-content *)) {
		overflow-wrap: anywhere;
	}

	/*
	 * This complex selector manages spacing inside lists.
	 *
	 * - Finds all lists containing items with non-inline direct children (e.g.
	 *   ul > li > p)
	 * - Applies a bottom margin to the last non-inline child of each list item
	 *   in this list
	 *
	 * This ensures that even if only one list item contains a block element
	 * (most commonly a paragraph), siblings of that list item are spaced
	 * consistently.
	 */
	.sl-markdown-content
	 :is(ol, ul):has(> li > :not(a, strong, em, del, span, input, code, br, script, ol, ul))
	 > li
	 > :is(
			:last-child:not(a, strong, em, del, span, input, code, br, script, :where(.not-content *)),
			/*
			 * For list items ending with 1 or multiple script elements (`:has(~
			 * script:last-child)`), we need to style the last non-script
			 * element (`:not(script)`) that doesn't have a subsequent sibling
			 * that is not a script (`:not(:has(~ :not(script)))`).
			 */
			:not(script):has(~ script:last-child):not(:has(~ :not(script)))
	 ) {
		margin-bottom: 1.25rem;
	}

	.sl-markdown-content dt:not(:where(.not-content *)) {
		font-weight: 700;
	}
	.sl-markdown-content dd:not(:where(.not-content *)) {
		padding-inline-start: 1rem;
	}

	.sl-markdown-content :is(h1, h2, h3, h4, h5, h6):not(:where(.not-content *)) {
		color: var(--sl-color-white);
		line-height: var(--sl-line-height-headings);
		font-weight: 600;
	}

	.sl-markdown-content :is(img, picture, video, canvas, svg, iframe):not(:where(.not-content *)) {
		display: block;
		max-width: 100%;
		height: auto;
	}

	.sl-markdown-content h1:not(:where(.not-content *)) {
		font-size: var(--sl-text-h1);
	}
	.sl-markdown-content h2:not(:where(.not-content *)) {
		font-size: var(--sl-text-h2);
	}
	.sl-markdown-content h3:not(:where(.not-content *)) {
		font-size: var(--sl-text-h3);
	}
	.sl-markdown-content h4:not(:where(.not-content *)) {
		font-size: var(--sl-text-h4);
	}
	.sl-markdown-content h5:not(:where(.not-content *)) {
		font-size: var(--sl-text-h5);
	}
	.sl-markdown-content h6:not(:where(.not-content *)) {
		font-size: var(--sl-text-h6);
	}

	.sl-markdown-content a:not(:where(.not-content *)) {
		color: var(--sl-color-text-accent);
	}
	.sl-markdown-content a:hover:not(:where(.not-content *)) {
		color: var(--sl-color-white);
	}

	.sl-markdown-content code:not(:where(.not-content *)) {
		background-color: var(--sl-color-bg-inline-code);
		margin-block: -0.125rem;
		padding: 0.125rem 0.375rem;
		font-size: var(--sl-text-code-sm);
	}
	.sl-markdown-content :is(h1, h2, h3, h4, h5, h6) code {
		font-size: inherit;
	}

	.sl-markdown-content pre:not(:where(.not-content *)) {
		border: 1px solid var(--sl-color-gray-5);
		padding: 0.75rem 1rem;
		font-size: var(--sl-text-code);
		tab-size: 2;
	}

	.sl-markdown-content pre code:not(:where(.not-content *)) {
		all: unset;
		font-family: var(--__sl-font-mono);
	}

	.sl-markdown-content blockquote:not(:where(.not-content *)) {
		border-inline-start: 1px solid var(--sl-color-gray-5);
		padding-inline-start: 1rem;
	}

	/* Table styling */
	.sl-markdown-content table:not(:where(.not-content *)) {
		display: block;
		overflow: auto;
		border-spacing: 0;
	}
	.sl-markdown-content :is(th, td):not(:where(.not-content *)) {
		border-bottom: 1px solid var(--sl-color-gray-5);
		padding: 0.5rem 1rem;
		/* Align text to the top of the row in multiline tables. */
		vertical-align: baseline;
	}
	.sl-markdown-content :is(th:first-child, td:first-child):not(:where(.not-content *)) {
		padding-inline-start: 0;
	}
	.sl-markdown-content :is(th:last-child, td:last-child):not(:where(.not-content *)) {
		padding-inline-end: 0;
	}
	.sl-markdown-content th:not(:where(.not-content *)) {
		color: var(--sl-color-white);
		font-weight: 600;
	}
	/* Align headings to the start of the line unless set by the `align` attribute. */
	.sl-markdown-content th:not([align]):not(:where(.not-content *)) {
		text-align: start;
	}
	/* <table>s, <hr>s, and <blockquote>s inside asides */
	.sl-markdown-content .starlight-aside :is(th, td, hr, blockquote):not(:where(.not-content *)) {
		border-color: var(--sl-color-gray-4);
	}
	@supports (
		border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent)
	) {
		.sl-markdown-content .starlight-aside :is(th, td, hr, blockquote):not(:where(.not-content *)) {
			border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 30%, transparent);
		}
	}

	/* <code> inside asides */
	@supports (
		border-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent)
	) {
		.sl-markdown-content .starlight-aside code:not(:where(.not-content *)) {
			background-color: color-mix(in srgb, var(--sl-color-asides-text-accent) 12%, transparent);
		}
	}

	.sl-markdown-content hr:not(:where(.not-content *)) {
		border: 0;
		border-bottom: 1px solid var(--sl-color-hairline);
	}

	/* <details> and <summary> styles */
	.sl-markdown-content details:not(:where(.not-content *)) {
		--sl-details-border-color: var(--sl-color-gray-5);
		--sl-details-border-color--hover: var(--sl-color-text-accent);

		border-inline-start: 2px solid var(--sl-details-border-color);
		padding-inline-start: 1rem;
	}
	.sl-markdown-content details:not([open]):hover:not(:where(.not-content *)),
	.sl-markdown-content details:has(> summary:hover):not(:where(.not-content *)) {
		border-color: var(--sl-details-border-color--hover);
	}
	.sl-markdown-content summary:not(:where(.not-content *)) {
		color: var(--sl-color-white);
		cursor: pointer;
		display: block; /* Needed to hide the default marker in some browsers. */
		font-weight: 600;
		/* Expand the outline so that the marker cannot distort it. */
		margin-inline-start: -0.5rem;
		padding-inline-start: 0.5rem;
	}
	.sl-markdown-content details[open] > summary:not(:where(.not-content *)) {
		margin-bottom: 1rem;
	}

	/* <summary> marker styles */
	.sl-markdown-content summary:not(:where(.not-content *))::marker,
	.sl-markdown-content summary:not(:where(.not-content *))::-webkit-details-marker {
		display: none;
	}
	.sl-markdown-content summary:not(:where(.not-content *))::before {
		--sl-details-marker-size: 1.25rem;

		background-color: currentColor;
		content: '';
		display: inline-block;
		height: var(--sl-details-marker-size);
		width: var(--sl-details-marker-size);
		margin-inline: calc((var(--sl-details-marker-size) / 4) * -1) 0.25rem;
		vertical-align: middle;
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.8 11.3 10.6 7a1 1 0 1 0-1.4 1.5l3.5 3.5-3.5 3.5a1 1 0 0 0 0 1.4 1 1 0 0 0 .7.3 1 1 0 0 0 .7-.3l4.2-4.2a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E%0A");
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
	}
	@media (prefers-reduced-motion: no-preference) {
		.sl-markdown-content summary:not(:where(.not-content *))::before {
			transition: transform 0.2s ease-in-out;
		}
	}
	.sl-markdown-content details[open] > summary:not(:where(.not-content *))::before {
		transform: rotateZ(90deg);
	}
	[dir='rtl'] .sl-markdown-content summary:not(:where(.not-content *))::before,
	.sl-markdown-content [dir='rtl'] summary:not(:where(.not-content *))::before {
		transform: rotateZ(180deg);
	}
	/* <summary> with only a paragraph automatically added when using MDX */
	.sl-markdown-content summary:not(:where(.not-content *)) p:only-child {
		display: inline;
	}

	/* <details> styles inside asides */
	.sl-markdown-content .starlight-aside details:not(:where(.not-content *)) {
		--sl-details-border-color: var(--sl-color-asides-border);
		--sl-details-border-color--hover: var(--sl-color-asides-text-accent);
	}
}
@layer starlight.core {
  button:where(.astro-vvx7mffu) {
    position: fixed;
    top: calc((var(--sl-nav-height) - var(--sl-menu-button-size)) / 2);
    inset-inline-end: var(--sl-nav-pad-x);
    z-index: var(--sl-z-index-navbar);
    border: 0;
    border-radius: 50%;
    width: var(--sl-menu-button-size);
    height: var(--sl-menu-button-size);
    padding: .5rem;
    background-color: var(--sl-color-white);
    color: var(--sl-color-black);
    box-shadow: var(--sl-shadow-md);
    cursor: pointer;
  }

  :where(.astro-vvx7mffu)[aria-expanded="true"] button:where(.astro-vvx7mffu) {
    background-color: var(--sl-color-gray-2);
    box-shadow: none;
  }

  :where(.astro-vvx7mffu)[aria-expanded="true"] button:where(.astro-vvx7mffu) .open-menu:where(.astro-vvx7mffu) {
    display: none;
  }

  :where(.astro-vvx7mffu):not([aria-expanded="true"]) button:where(.astro-vvx7mffu) .close-menu:where(.astro-vvx7mffu) {
    display: none;
  }

  [data-theme="light"] button:where(.astro-vvx7mffu) {
    background-color: var(--sl-color-black);
    color: var(--sl-color-white);
  }

  [data-theme="light"] :where(.astro-vvx7mffu)[aria-expanded="true"] button:where(.astro-vvx7mffu) {
    background-color: var(--sl-color-gray-5);
  }
}
@layer starlight.core {
		[data-mobile-menu-expanded] {
			overflow: hidden;
		}

		@media (min-width: 50rem) {
			[data-mobile-menu-expanded] {
				overflow: auto;
			}
		}
	}@layer starlight.core {
  .page:where(.astro-gqpr5s5a) {
    flex-direction: column;
    min-height: 100vh;
  }

  .header:where(.astro-gqpr5s5a) {
    z-index: var(--sl-z-index-navbar);
    position: fixed;
    inset-inline-start: 0;
    inset-block-start: 0;
    width: 100%;
    height: var(--sl-nav-height);
    border-bottom: 1px solid var(--sl-color-hairline-shade);
    padding: var(--sl-nav-pad-y) var(--sl-nav-pad-x);
    padding-inline-end: var(--sl-nav-pad-x);
    background-color: var(--sl-color-bg-nav);
  }

  [data-has-sidebar] .header:where(.astro-gqpr5s5a) {
    padding-inline-end: calc(var(--sl-nav-gap) + var(--sl-nav-pad-x) + var(--sl-menu-button-size));
  }

  .sidebar-pane:where(.astro-gqpr5s5a) {
    visibility: var(--sl-sidebar-visibility, hidden);
    position: fixed;
    z-index: var(--sl-z-index-menu);
    inset-block: var(--sl-nav-height) 0;
    inset-inline-start: 0;
    width: 100%;
    background-color: var(--sl-color-black);
    overflow-y: auto;
    scrollbar-gutter: stable;
  }

  [aria-expanded="true"] ~ .sidebar-pane:where(.astro-gqpr5s5a) {
    --sl-sidebar-visibility: visible;
  }

  .sidebar-content:where(.astro-gqpr5s5a) {
    height: 100%;
    min-height: max-content;
    padding: 1rem var(--sl-sidebar-pad-x) 0;
    flex-direction: column;
    gap: 1rem;
  }

  @media (width >= 50rem) {
    .sidebar-content:where(.astro-gqpr5s5a):after {
      content: "";
      padding-bottom: 1px;
    }
  }

  .main-frame:where(.astro-gqpr5s5a) {
    padding-top: calc(var(--sl-nav-height) + var(--sl-mobile-toc-height));
    padding-inline-start: var(--sl-content-inline-start);
  }

  @media (width >= 50rem) {
    [data-has-sidebar] .header:where(.astro-gqpr5s5a) {
      padding-inline-end: var(--sl-nav-pad-x);
    }

    .sidebar-pane:where(.astro-gqpr5s5a) {
      --sl-sidebar-visibility: visible;
      width: var(--sl-sidebar-width);
      background-color: var(--sl-color-bg-sidebar);
      border-inline-end: 1px solid var(--sl-color-hairline-shade);
    }
  }
}
@layer starlight.core {
  ul:where(.astro-cxyftcne) {
    padding: 0;
    list-style: none;
  }

  a:where(.astro-cxyftcne) {
    --pad-inline: .5rem;
    display: block;
    border-radius: .25rem;
    padding-block: .25rem;
    padding-inline: calc(1rem * var(--depth) + var(--pad-inline)) var(--pad-inline);
    line-height: 1.25;
  }

  a:where(.astro-cxyftcne)[aria-current="true"] {
    color: var(--sl-color-text-accent);
  }

  .isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne) {
    --pad-inline: 1rem;
    display: flex;
    justify-content: space-between;
    gap: var(--pad-inline);
    border-top: 1px solid var(--sl-color-gray-6);
    border-radius: 0;
    padding-block: .5rem;
    color: var(--sl-color-text);
    font-size: var(--sl-text-sm);
    text-decoration: none;
    outline-offset: var(--sl-outline-offset-inside);
  }

  .isMobile:where(.astro-cxyftcne):first-child > li:where(.astro-cxyftcne):first-child > a:where(.astro-cxyftcne) {
    border-top: 0;
  }

  .isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current="true"], .isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current="true"]:hover, .isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current="true"]:focus {
    color: var(--sl-color-white);
    background-color: unset;
  }

  .isMobile:where(.astro-cxyftcne) a:where(.astro-cxyftcne)[aria-current="true"]:after {
    content: "";
    width: 1rem;
    background-color: var(--sl-color-text-accent);
    -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==");
    mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNCAxNCc+PHBhdGggZD0nTTEwLjkxNCA0LjIwNmEuNTgzLjU4MyAwIDAgMC0uODI4IDBMNS43NCA4LjU1NyAzLjkxNCA2LjcyNmEuNTk2LjU5NiAwIDAgMC0uODI4Ljg1N2wyLjI0IDIuMjRhLjU4My41ODMgMCAwIDAgLjgyOCAwbDQuNzYtNC43NmEuNTgzLjU4MyAwIDAgMCAwLS44NTdaJy8+PC9zdmc+Cg==");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    flex-shrink: 0;
  }
}
@layer starlight.core {
  .right-sidebar-panel:where(.astro-q5mffni3) {
    padding: 1rem var(--sl-sidebar-pad-x);
  }

  .sl-container:where(.astro-q5mffni3) {
    width: calc(var(--sl-sidebar-width) - 2 * var(--sl-sidebar-pad-x));
  }

  .right-sidebar-panel:where(.astro-q5mffni3) h2 {
    color: var(--sl-color-white);
    font-size: var(--sl-text-h5);
    font-weight: 600;
    line-height: var(--sl-line-height-headings);
    margin-bottom: .5rem;
  }

  .right-sidebar-panel:where(.astro-q5mffni3) :where(a) {
    display: block;
    font-size: var(--sl-text-xs);
    text-decoration: none;
    color: var(--sl-color-gray-3);
    overflow-wrap: anywhere;
  }

  .right-sidebar-panel:where(.astro-q5mffni3) :where(a):hover {
    color: var(--sl-color-white);
  }

  @media (width >= 72rem) {
    .sl-container:where(.astro-q5mffni3) {
      max-width: calc((
						(
								100vw - var(--sl-sidebar-width) - 2 * var(--sl-content-pad-x) - 2 *
									var(--sl-sidebar-pad-x)
							) * .25 /* MAGIC NUMBER 🥲 */
					));
    }
  }
}
@layer starlight.core {
  h1:where(.astro-2sm4b3ln) {
    margin-top: 1rem;
    font-size: var(--sl-text-h1);
    line-height: var(--sl-line-height-headings);
    font-weight: 600;
    color: var(--sl-color-white);
  }
}
.document-views:where(.astro-wuv23ryy) {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  margin-top: .75rem;
  color: var(--sl-color-gray-2);
  font-size: .875rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.document-views:where(.astro-wuv23ryy)[hidden] {
  display: none;
}

.document-views:where(.astro-wuv23ryy) svg:where(.astro-wuv23ryy) {
  flex: none;
}

@media print {
  .document-views:where(.astro-wuv23ryy) {
    display: none;
  }
}
@layer starlight.core {
  label:where(.astro-r2p65idu) {
    --sl-label-icon-size: .875rem;
    --sl-caret-size: 1.25rem;
    --sl-inline-padding: .5rem;
    position: relative;
    display: flex;
    align-items: center;
    gap: .25rem;
    color: var(--sl-color-gray-2);
  }

  label:where(.astro-r2p65idu):hover {
    color: var(--sl-color-white);
  }

  .icon:where(.astro-r2p65idu) {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
  }

  select:where(.astro-r2p65idu) {
    border: 0;
    padding-block: .625rem;
    padding-inline: calc(var(--sl-label-icon-size) + var(--sl-inline-padding) + .25rem)
				calc(var(--sl-caret-size) + var(--sl-inline-padding) + .25rem);
    margin-inline: calc(var(--sl-inline-padding) * -1);
    width: calc(var(--sl-select-width) + var(--sl-inline-padding) * 2);
    background-color: #0000;
    text-overflow: ellipsis;
    color: inherit;
    cursor: pointer;
    appearance: none;
  }

  option:where(.astro-r2p65idu) {
    background-color: var(--sl-color-bg-nav);
    color: var(--sl-color-gray-1);
  }

  @media (width >= 50rem) {
    select:where(.astro-r2p65idu) {
      font-size: var(--sl-text-sm);
    }
  }
}

@layer starlight.components {
  .label-icon:where(.astro-r2p65idu) {
    font-size: var(--sl-label-icon-size);
    inset-inline-start: 0;
  }

  .caret:where(.astro-r2p65idu) {
    font-size: var(--sl-caret-size);
    inset-inline-end: 0;
  }
}
@layer starlight.core {
  a:where(.astro-cg55etiy) {
    color: var(--sl-color-text-accent);
    padding: .5em;
    margin: -.5em;
  }

  a:where(.astro-cg55etiy):hover {
    color: var(--sl-color-white);
  }
}
@layer starlight.core {
  .social-icons:where(.astro-b5gddk54) {
    display: flex;
    margin-inline-end: auto;
    gap: 1rem;
    align-items: center;
    padding-block: 1rem;
  }

  .social-icons:where(.astro-b5gddk54):empty {
    display: none;
  }

  .mobile-preferences:where(.astro-b5gddk54) {
    justify-content: space-between;
    flex-wrap: wrap;
    border-top: 1px solid var(--sl-color-gray-6);
    column-gap: 1rem;
    padding: .5rem 0;
  }
}
@layer starlight.core {
  sl-sidebar-state-persist:where(.astro-f5yvicm7) {
    display: contents;
  }
}
@layer starlight.components {
  :root {
    --sl-badge-default-border: var(--sl-color-accent);
    --sl-badge-default-bg: var(--sl-color-accent-low);
    --sl-badge-default-text: #fff;
    --sl-badge-note-border: var(--sl-color-blue);
    --sl-badge-note-bg: var(--sl-color-blue-low);
    --sl-badge-note-text: #fff;
    --sl-badge-danger-border: var(--sl-color-red);
    --sl-badge-danger-bg: var(--sl-color-red-low);
    --sl-badge-danger-text: #fff;
    --sl-badge-success-border: var(--sl-color-green);
    --sl-badge-success-bg: var(--sl-color-green-low);
    --sl-badge-success-text: #fff;
    --sl-badge-caution-border: var(--sl-color-orange);
    --sl-badge-caution-bg: var(--sl-color-orange-low);
    --sl-badge-caution-text: #fff;
    --sl-badge-tip-border: var(--sl-color-purple);
    --sl-badge-tip-bg: var(--sl-color-purple-low);
    --sl-badge-tip-text: #fff;
  }

  [data-theme="light"]:root {
    --sl-badge-default-bg: var(--sl-color-accent-high);
    --sl-badge-note-bg: var(--sl-color-blue-high);
    --sl-badge-danger-bg: var(--sl-color-red-high);
    --sl-badge-success-bg: var(--sl-color-green-high);
    --sl-badge-caution-bg: var(--sl-color-orange-high);
    --sl-badge-tip-bg: var(--sl-color-purple-high);
  }

  .sl-badge:where(.astro-7hkzaclv) {
    display: inline-block;
    border: 1px solid var(--sl-color-border-badge);
    border-radius: .25rem;
    font-family: var(--sl-font-system-mono);
    line-height: normal;
    color: var(--sl-color-text-badge);
    background-color: var(--sl-color-bg-badge);
    overflow-wrap: anywhere;
  }

  .sidebar-content .sl-badge:where(.astro-7hkzaclv) {
    line-height: 1;
    font-size: var(--sl-text-xs);
    padding: .125rem .375rem;
  }

  .sidebar-content a[aria-current="page"] > .sl-badge:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: transparent;
    --sl-color-border-badge: currentColor;
    color: inherit;
  }

  .default:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: var(--sl-badge-default-bg);
    --sl-color-border-badge: var(--sl-badge-default-border);
    --sl-color-text-badge: var(--sl-badge-default-text);
  }

  .note:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: var(--sl-badge-note-bg);
    --sl-color-border-badge: var(--sl-badge-note-border);
    --sl-color-text-badge: var(--sl-badge-note-text);
  }

  .danger:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: var(--sl-badge-danger-bg);
    --sl-color-border-badge: var(--sl-badge-danger-border);
    --sl-color-text-badge: var(--sl-badge-danger-text);
  }

  .success:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: var(--sl-badge-success-bg);
    --sl-color-border-badge: var(--sl-badge-success-border);
    --sl-color-text-badge: var(--sl-badge-success-text);
  }

  .tip:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: var(--sl-badge-tip-bg);
    --sl-color-border-badge: var(--sl-badge-tip-border);
    --sl-color-text-badge: var(--sl-badge-tip-text);
  }

  .caution:where(.astro-7hkzaclv) {
    --sl-color-bg-badge: var(--sl-badge-caution-bg);
    --sl-color-border-badge: var(--sl-badge-caution-border);
    --sl-color-text-badge: var(--sl-badge-caution-text);
  }

  .small:where(.astro-7hkzaclv) {
    font-size: var(--sl-text-xs);
    padding: .125rem .25rem;
  }

  .medium:where(.astro-7hkzaclv) {
    font-size: var(--sl-text-sm);
    padding: .175rem .35rem;
  }

  .large:where(.astro-7hkzaclv) {
    font-size: var(--sl-text-base);
    padding: .225rem .45rem;
  }

  .sl-markdown-content :is(h1, h2, h3, h4, h5, h6) .sl-badge:where(.astro-7hkzaclv) {
    vertical-align: middle;
  }
}
@layer starlight.core {
  ul:where(.astro-ojxuodky) {
    --sl-sidebar-item-padding-inline: .5rem;
    list-style: none;
    padding: 0;
  }

  li:where(.astro-ojxuodky) {
    overflow-wrap: anywhere;
  }

  ul:where(.astro-ojxuodky) ul:where(.astro-ojxuodky) li:where(.astro-ojxuodky) {
    margin-inline-start: var(--sl-sidebar-item-padding-inline);
    border-inline-start: 1px solid var(--sl-color-hairline-light);
    padding-inline-start: var(--sl-sidebar-item-padding-inline);
  }

  .large:where(.astro-ojxuodky) {
    font-size: var(--sl-text-lg);
    font-weight: 600;
    color: var(--sl-color-white);
  }

  .top-level:where(.astro-ojxuodky) > li:where(.astro-ojxuodky) + li:where(.astro-ojxuodky) {
    margin-top: .75rem;
  }

  summary:where(.astro-ojxuodky) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .2em var(--sl-sidebar-item-padding-inline);
    line-height: 1.4;
    cursor: pointer;
    user-select: none;
  }

  summary:where(.astro-ojxuodky)::marker, summary:where(.astro-ojxuodky)::-webkit-details-marker {
    display: none;
  }

  .caret:where(.astro-ojxuodky) {
    transition: transform .2s ease-in-out;
    flex-shrink: 0;
  }

  [dir="rtl"] .caret:where(.astro-ojxuodky) {
    transform: rotateZ(180deg);
  }

  :where(.astro-ojxuodky)[open] > summary:where(.astro-ojxuodky) .caret:where(.astro-ojxuodky) {
    transform: rotateZ(90deg);
  }

  a:where(.astro-ojxuodky) {
    display: block;
    border-radius: .25rem;
    text-decoration: none;
    color: var(--sl-color-gray-2);
    padding: .3em var(--sl-sidebar-item-padding-inline);
    line-height: 1.4;
  }

  a:where(.astro-ojxuodky):hover, a:where(.astro-ojxuodky):focus {
    color: var(--sl-color-white);
  }

  :where(.astro-ojxuodky)[aria-current="page"], :where(.astro-ojxuodky)[aria-current="page"]:hover, :where(.astro-ojxuodky)[aria-current="page"]:focus {
    font-weight: 600;
    color: var(--sl-color-text-invert);
    background-color: var(--sl-color-text-accent);
  }

  a:where(.astro-ojxuodky) > :where(.astro-ojxuodky):not(:last-child), .group-label:where(.astro-ojxuodky) > :where(.astro-ojxuodky):not(:last-child) {
    margin-inline-end: .25em;
  }

  @media (width >= 50rem) {
    .top-level:where(.astro-ojxuodky) > li:where(.astro-ojxuodky) + li:where(.astro-ojxuodky) {
      margin-top: .5rem;
    }

    .large:where(.astro-ojxuodky) {
      font-size: var(--sl-text-base);
    }

    a:where(.astro-ojxuodky) {
      font-size: var(--sl-text-sm);
    }
  }
}
@layer starlight.core {
  a:where(.astro-vxeigawq) {
    clip: rect(0, 0, 0, 0);
    position: fixed;
    top: .75rem;
    inset-inline-start: .75rem;
  }

  a:where(.astro-vxeigawq):focus {
    clip: unset;
    z-index: var(--sl-z-index-skiplink);
    display: block;
    padding: .5rem 1rem;
    text-decoration: none;
    color: var(--sl-color-text-invert);
    background-color: var(--sl-color-text-accent);
    box-shadow: var(--sl-shadow-lg);
  }
}
@layer starlight.core {
  .main-pane:where(.astro-abfeecmu) {
    isolation: isolate;
  }

  @media (width >= 72rem) {
    .right-sidebar-container:where(.astro-abfeecmu) {
      order: 2;
      position: relative;
      width: max(var(--sl-sidebar-width),
					calc(var(--sl-sidebar-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2));
    }

    .right-sidebar:where(.astro-abfeecmu) {
      position: fixed;
      top: 0;
      border-inline-start: 1px solid var(--sl-color-hairline);
      padding-top: var(--sl-nav-height);
      width: 100%;
      height: 100vh;
      overflow-y: auto;
      scrollbar-width: none;
    }

    .main-pane:where(.astro-abfeecmu) {
      width: 100%;
    }

    [data-has-sidebar][data-has-toc] .main-pane:where(.astro-abfeecmu) {
      --sl-content-margin-inline: auto 0;
      order: 1;
      width: min(calc(100% - var(--sl-sidebar-width)),
					calc(var(--sl-content-width) + (100% - var(--sl-content-width) - var(--sl-sidebar-width)) / 2));
    }
  }
}
html:not([data-has-toc]) {
  --sl-mobile-toc-height: 0rem;
}

html:not([data-has-sidebar]) {
  --sl-content-width: 67.5rem;
}

html {
  scroll-padding-top: calc(1.5rem + var(--sl-nav-height) + var(--sl-mobile-toc-height));
}

main:where(.astro-vdxcvpsm) {
  padding: var(--sl-main-pad);
}

@media (width >= 50em) {
  :where(.astro-vdxcvpsm)[data-has-sidebar] {
    --sl-content-inline-start: var(--sl-sidebar-width);
  }
}

@media (width >= 72em) {
  html {
    scroll-padding-top: calc(1.5rem + var(--sl-nav-height));
  }
}
