/*-!SIPLDocumentationHeader!-*/

:root{color-scheme:dark;--bg:#0b1120;--surface:#121d30;--line:#2b3d56;--text:#e8edf7;--muted:#a8b7cf;--accent:#7fb5ff;--code:#0c1729;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;scroll-padding-top:86px}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -20%, #24446b 0%, transparent 55%),linear-gradient(145deg,#0c1425,#090e19);background-color:var(--bg);color:var(--text);font-size:15px;line-height:1.75}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration:underline}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,pre:focus-visible,.table-wrap:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}::selection{color:#101827;background:var(--accent)}
.skip{position:fixed;left:12px;top:-80px;z-index:20;background:var(--accent);color:#101827;padding:12px}.skip:focus{top:12px}.topbar{position:sticky;top:0;z-index:10;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#0b1120f5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{font:700 23px/1.15 Consolas,monospace;letter-spacing:-1px;color:var(--text);text-decoration:none}.brand span{color:var(--accent)}.brand small{display:block;margin-top:3px;font:400 .5em/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:0;color:var(--muted)}.top-meta{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:12px}.top-meta a{color:var(--muted);text-decoration:none}.top-meta a:hover{color:var(--accent)}.version{font:11px Consolas,monospace;padding:4px 9px;border:1px solid var(--line);border-radius:3px}.menu-toggle{display:none;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:5px 10px;border-radius:3px}
.layout{display:grid;grid-template-columns:292px minmax(0,1fr);max-width:1500px;margin:auto}.sidebar{position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto;padding:28px 20px 36px;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#36516f transparent}.search-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}.search-row{position:relative}.search-row input{width:100%;padding:10px 35px 10px 12px;background:var(--surface);color:var(--text);border:1px solid #36516f;border-radius:4px;font-size:13px}.search-row kbd{position:absolute;right:12px;top:10px;color:var(--muted);font:12px Consolas,monospace}.search-status{font-size:11px;color:var(--muted);min-height:20px;margin:8px 0}.tree-controls{display:flex;gap:12px;margin:10px 0 22px}.tree-controls button{font-size:11px;padding:0;border:0;background:none;color:var(--muted)}.tree-controls button:hover{color:var(--accent)}.toc-group{margin:0 0 4px}.toc-group>summary{font-size:13px;font-weight:600;padding:8px 4px;cursor:pointer;list-style-position:inside;color:#eaf1fc}.toc-group>summary::marker{color:#8da2bd}.toc-group ul{list-style:none;padding:0 0 8px 15px;margin:0}.toc-group li{margin:0}.toc-group a{display:block;line-height:1.45;font-size:12px;color:var(--muted);text-decoration:none;padding:6px 9px;border-left:1px solid #293c55}.toc-group a.subtopic{font-size:11px;padding-left:20px;color:#8da2bd}.toc-group a:hover{color:var(--text);background:#21324a}.toc-group a[aria-current=location]{color:var(--accent);border-left:2px solid var(--accent);background:#24446b}.search-results{list-style:none;padding:0;margin:8px 0 24px}.search-results li{padding:12px 0;border-bottom:1px solid var(--line)}.search-results a{font-size:12px;color:var(--accent);text-decoration:none;line-height:1.4;display:block}.search-results small{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.5}.sidebar-note{font-size:11px;color:#8193ae;border-top:1px solid var(--line);margin-top:24px;padding-top:16px}
.content{min-width:0;padding:48px clamp(28px,4vw,70px) 100px;max-width:1150px}.intro{padding-bottom:40px;border-bottom:1px solid var(--line);margin-bottom:48px}.eyebrow{color:var(--accent);font:11px Consolas,monospace;letter-spacing:.13em;text-transform:uppercase;margin:0 0 16px}h1{font-size:clamp(38px,5vw,58px);letter-spacing:-.055em;line-height:1.12;font-weight:550;margin:0 0 22px}.intro>p:not(.eyebrow){color:#b3c2d8;max-width:66ch;font-size:16px}.intro-tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:24px}.intro-tags span{font:11px Consolas,monospace;color:#c7d9f8;background:#0c1729;border:1px solid #293c55;padding:5px 9px;border-radius:3px}.quick-start{margin:26px 0 0;display:flex;flex-wrap:wrap;gap:18px;font-size:13px}.chapter{margin-top:64px}.chapter:first-of-type{margin-top:0}.chapter>h2{font-size:32px;letter-spacing:-.035em;padding-top:12px;border-top:1px solid #30415a;margin-top:72px}.chapter h3{font-size:23px;line-height:1.3;margin:42px 0 18px;letter-spacing:-.02em}.chapter h4{font-size:18px;margin:32px 0 14px;line-height:1.4}.chapter h5,.chapter h6{font-size:16px;margin:26px 0 12px}.chapter p{margin:14px 0;max-width:90ch}.chapter ul,.chapter ol{padding-left:24px}.chapter li{padding-left:3px;margin:7px 0}.chapter li>p{margin:4px 0}.chapter strong{color:#eaf1fc;font-weight:650}.permalink{padding-left:10px;color:#85b9ff;text-decoration:none;font:15px Consolas,monospace;opacity:0}.chapter :is(h2,h3,h4,h5,h6):hover .permalink,.permalink:focus{opacity:1}.chapter code{font:12.5px Consolas,"Liberation Mono",monospace;padding:2px 5px;border:1px solid #293c55;background:#21324a;color:#c7d9f8;border-radius:3px;overflow-wrap:anywhere}.code-block{margin:22px 0;border:1px solid var(--line);background:var(--code);border-radius:5px;overflow:hidden}.code-block figcaption{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#121d30;border-bottom:1px solid var(--line);font:10px Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.copy-code{color:#c7d9f8;border:1px solid #36516f;background:transparent;padding:3px 10px;border-radius:3px;letter-spacing:0;text-transform:none;font:11px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.copy-code:hover{background:#24446b}.code-block pre{margin:0;padding:20px;overflow-x:auto;font:12.5px/1.85 Consolas,"Liberation Mono",monospace;tab-size:4;scrollbar-width:thin;scrollbar-color:#36516f transparent}.code-block pre code{font:inherit;border:0;padding:0;background:none;border-radius:0;color:#e8edf7;overflow-wrap:normal}.tok-keyword{color:#7fb5ff}.tok-type{color:#a4efbc}.tok-string{color:#e9c594}.tok-number{color:#bdb7f1}.tok-comment{color:#8da2bd;font-style:italic}.table-wrap{overflow:auto;margin:22px 0;border:1px solid var(--line);border-radius:4px;scrollbar-width:thin;scrollbar-color:#36516f transparent}table{border-collapse:collapse;width:100%;font-size:12px}th{background:#21324a;text-align:left;color:#eaf1fc;font-weight:600}td,th{padding:11px 13px;vertical-align:top;border-bottom:1px solid var(--line);border-right:1px solid #293c55;line-height:1.65}td:last-child,th:last-child{border-right:0}tbody tr:last-child td{border-bottom:0}tbody tr:nth-child(even){background:#0c1729}td code,th code{font-size:11.5px}blockquote{margin:24px 0;padding:2px 20px;border-left:3px solid var(--accent);background:#121d30;color:#b3c2d8}hr{border:0;border-top:1px solid var(--line);margin:36px 0}.repo-file{color:#c7d9f8;border-bottom:1px dotted #8193ae}.doc-footer{border-top:1px solid var(--line);margin-top:70px;padding-top:24px;color:var(--muted);font-size:12px}.back-top{position:fixed;right:24px;bottom:20px;background:#21324a;color:var(--accent);border:1px solid #36516f;border-radius:3px;padding:8px 12px;text-decoration:none;font-size:11px;z-index:5}.no-script{margin:0 0 20px;padding:10px 14px;background:#21324a;border:1px solid var(--line);font-size:12px;color:var(--muted)}
@media(max-width:960px){.layout{grid-template-columns:250px minmax(0,1fr)}.sidebar{padding:24px 14px}.content{padding:36px 28px 80px}.top-meta>a{display:none}.chapter>h2{font-size:28px}.chapter h3{font-size:21px}}
@media(max-width:720px){.topbar{height:58px;padding:0 18px}.top-meta{gap:10px}.menu-toggle{display:block}.layout{display:block}.sidebar{display:none;position:fixed;top:58px;left:0;width:min(340px,90vw);height:calc(100vh - 58px);background:#0b1120;z-index:9;box-shadow:20px 0 60px #0009;padding:24px}.sidebar.is-open{display:block}.content{padding:30px 20px 70px}.intro{padding-bottom:28px;margin-bottom:36px}.intro>p:not(.eyebrow){font-size:15px}.chapter>h2{font-size:26px}.chapter h3{font-size:20px}.chapter code{font-size:12px}.code-block pre{font-size:11.5px;padding:16px}.table-wrap table{min-width:460px}h1{font-size:42px}.back-top{right:14px;bottom:14px}:root{scroll-padding-top:76px}body.menu-open::after{content:"";position:fixed;inset:58px 0 0;background:#0007;z-index:8}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media print{:root{color-scheme:light}body{background:white;color:#111;font-size:10pt}.topbar,.sidebar,.back-top,.copy-code,.permalink,.quick-start,.intro-tags{display:none}.layout{display:block}.content{max-width:none;padding:0}.chapter{break-before:page}.chapter :is(h2,h3,h4){break-after:avoid}.code-block{break-inside:avoid}.code-block,table,th,td,blockquote,.chapter code{background:white!important;color:#111!important}.code-block pre code,.tok-keyword,.tok-type,.tok-string,.tok-number,.tok-comment{color:#111!important}.intro>p:not(.eyebrow),.doc-footer{color:#333}.table-wrap{overflow:visible}.table-wrap table{font-size:8pt;min-width:0}a{color:#111}.permalink{display:none}}

/* Native CMS Blocks retain the reference's separate, editable chapters. */
#si_colorscheme{display:none}
#si_block_SIPLDocumentationHeader{position:sticky;top:0;z-index:20}
#si_block_SIPLDocumentationHeader .topbar{position:static}
#si_block_SIPLDocumentationNavigation{position:fixed;top:64px;left:max(0px,calc((100vw - 1500px)/2));width:292px;height:calc(100vh - 64px);z-index:9}
#si_block_SIPLDocumentationNavigation>.sidebar{position:static;top:auto;width:100%;height:100%}
#si_block_SIPLDocumentationIntroduction,[id^="si_block_SIPLDocumentationChapter_"],#si_block_SIPLDocumentationFooter{min-width:0;max-width:1150px;margin-left:max(292px,calc((100vw - 1500px)/2 + 292px));padding:0 clamp(28px,4vw,70px)}
#si_block_SIPLDocumentationIntroduction{padding-top:48px}
#si_block_SIPLDocumentationFooter{padding-bottom:100px}
#si_block_SIPLDocumentationHeader .company-link{font-size:12px}
@media(max-width:960px){#si_block_SIPLDocumentationNavigation{width:250px}#si_block_SIPLDocumentationIntroduction,[id^="si_block_SIPLDocumentationChapter_"],#si_block_SIPLDocumentationFooter{margin-left:250px;padding-left:28px;padding-right:28px}#si_block_SIPLDocumentationIntroduction{padding-top:36px}}
@media(max-width:720px){#si_block_SIPLDocumentationNavigation{position:static;top:auto;left:auto;width:auto;height:0}#si_block_SIPLDocumentationNavigation>.sidebar{position:fixed;top:58px;left:0;width:min(340px,90vw);height:calc(100vh - 58px)}#si_block_SIPLDocumentationIntroduction,[id^="si_block_SIPLDocumentationChapter_"],#si_block_SIPLDocumentationFooter{margin-left:0;padding-left:20px;padding-right:20px}#si_block_SIPLDocumentationIntroduction{padding-top:30px}#si_block_SIPLDocumentationFooter{padding-bottom:70px}}
@media print{#si_block_SIPLDocumentationHeader,#si_block_SIPLDocumentationNavigation{display:none}#si_block_SIPLDocumentationIntroduction,[id^="si_block_SIPLDocumentationChapter_"],#si_block_SIPLDocumentationFooter{margin:0;max-width:none;padding:0}}

/*-!SIPLDocumentationNavigation!-*/

/*-!SIPLDocumentationIntroduction!-*/

/*-!SIPLDocumentationChapter_language!-*/

/*-!SIPLDocumentationChapter_api!-*/

/*-!SIPLDocumentationChapter_stdlib!-*/

/*-!SIPLDocumentationChapter_logging!-*/

/*-!SIPLDocumentationChapter_identity!-*/

/*-!SIPLDocumentationChapter_images!-*/

/*-!SIPLDocumentationChapter_fonts!-*/

/*-!SIPLDocumentationChapter_web!-*/

/*-!SIPLDocumentationChapter_meetings!-*/

/*-!SIPLDocumentationChapter_pages!-*/

/*-!SIPLDocumentationChapter_http!-*/

/*-!SIPLDocumentationChapter_networking!-*/

/*-!SIPLDocumentationChapter_async!-*/

/*-!SIPLDocumentationChapter_sql!-*/

/*-!SIPLDocumentationChapter_collections!-*/

/*-!SIPLDocumentationChapter_mat!-*/

/*-!SIPLDocumentationChapter_graphics!-*/

/*-!SIPLDocumentationChapter_audio!-*/

/*-!SIPLDocumentationChapter_gamepad!-*/

/*-!SIPLDocumentationChapter_video!-*/

/*-!SIPLDocumentationChapter_pdf!-*/

/*-!SIPLDocumentationChapter_ai!-*/

/*-!SIPLDocumentationChapter_workers!-*/

/*-!SIPLDocumentationChapter_packages!-*/

/*-!SIPLDocumentationChapter_build!-*/

/*-!SIPLDocumentationChapter_macos!-*/

/*-!SIPLDocumentationChapter_testing!-*/

/*-!SIPLDocumentationChapter_debugging!-*/

/*-!SIPLDocumentationChapter_editors!-*/

/*-!SIPLDocumentationChapter_agent!-*/

/*-!SIPLDocumentationChapter_settings!-*/

/*-!SIPLDocumentationChapter_tools!-*/

/*-!SIPLDocumentationChapter_jit!-*/

/*-!SIPLDocumentationFooter!-*/

