:root{--bg:#0f1113;--top:#151719;--side:#121416;--panel:#14171a;--line:rgba(255,255,255,.08);--txt:rgba(255,255,255,.92);--muted:rgba(255,255,255,.60);--muted2:rgba(255,255,255,.45);--green:#48bfe3;--cyan:#7cc7da;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--sans:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;--topbarH:56px;--drawerW:330px;--drawerWRight:320px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--txt);font-family:var(--sans);overflow:hidden}html.drawerOpen,html.drawerOpen body{overflow:hidden;overscroll-behavior:none}.topbar{padding-top:env(safe-area-inset-top)}.shell{padding-bottom:env(safe-area-inset-bottom)}a{color:var(--txt);text-decoration:none}a:hover{text-decoration:underline}.hideScroll{scrollbar-width:none;-ms-overflow-style:none}.hideScroll::-webkit-scrollbar{width:0;height:0}.topbar{height:calc(var(--topbarH) + env(safe-area-inset-top));position:sticky;top:0;z-index:120;display:flex;align-items:center;justify-content:space-between;padding-left:16px;padding-right:16px;background:var(--top);border-bottom:1px solid var(--line)}.topLeft{display:flex;align-items:center;gap:12px;min-width:0}.logoBox{width:30px;height:30px;border-radius:6px;display:grid;place-items:center;overflow:hidden;background:#0f1214;border:1px solid var(--line);color:var(--green);font-weight:900;font-size:12px;flex:0 0 auto;user-select:none}.logoBox.hasImage{padding:0;background:#0b0d10}.logoImg{width:100%;height:100%;object-fit:cover;display:block}.brandStack{line-height:1.1;min-width:0}.brandLine1{font-weight:850;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.topRight{display:flex;align-items:center;gap:10px}.topLink{color:var(--muted);font-weight:700;font-size:13px}.topLink:hover{color:var(--txt);text-decoration:none}.iconBtn{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:rgba(255,255,255,.82);display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,background .16s ease,border-color .16s ease}.iconBtn:hover{background:rgba(255,255,255,.06)}.iconBtn:active{transform:translateY(1px) scale(.99)}#btnToc.iconBtn{border-color:rgba(55,214,255,.22);background:rgba(55,214,255,.10);color:rgba(255,255,255,.92)}#btnToc.iconBtn:hover{background:rgba(55,214,255,.16);border-color:rgba(55,214,255,.32)}#btnToc.iconBtn.isActive{background:rgba(55,214,255,.22);border-color:rgba(55,214,255,.46);box-shadow:0 10px 28px rgba(0,0,0,.35)}.searchBtn{display:flex;align-items:center;gap:10px;min-width:340px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--muted);cursor:pointer;transition:background .18s ease,transform .12s ease,color .18s ease,border-color .18s ease}.searchBtn:hover{background:rgba(255,255,255,.06);color:rgba(255,255,255,.72)}.searchBtn:active{transform:translateY(1px) scale(.99)}.searchIcon{opacity:.85}.searchText{flex:1;text-align:left;font-size:13px}.shell{display:grid;grid-template-columns:330px 1fr 300px;height:calc(100dvh - var(--topbarH) - env(safe-area-inset-top));height:calc(100vh - var(--topbarH) - env(safe-area-inset-top))}.sidebar{background:var(--side);border-right:1px solid var(--line);display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebarTop{padding:14px 14px 10px;border-bottom:1px solid var(--line);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebarTitle{font-weight:850;font-size:13px}.sidebarBottom{padding:12px 14px;border-top:1px solid var(--line);flex:0 0 auto}.mutedSmall{color:var(--muted2);font-size:12px}.nav{padding:10px 10px 14px;overflow-y:auto;flex:1 1 auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.main{background:var(--bg);height:100%;overflow-y:auto;padding:18px 0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;will-change:scroll-position}.mainInner{max-width:880px;margin:0 auto;padding:0 22px;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.rail{background:var(--bg);border-left:1px solid var(--line);height:100%;overflow-y:auto;padding:16px 14px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.railHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.navGroup{margin-top:10px}.navGroupTitle{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:900;margin:12px 8px 6px}.navItem{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 10px;border-radius:12px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;color:rgba(255,255,255,.84);transition:background .16s ease,transform .12s ease,color .16s ease,border-color .16s ease}.navItem:hover{background:rgba(255,255,255,.045)}.navItem:active{transform:translateY(1px) scale(.995)}.navItem.active{background:rgba(86,203,224,0.08);color:rgba(255,255,255,.94);position:relative}.navItem.active::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:99px;background:var(--green)}.navLeft{display:flex;align-items:center;gap:10px;min-width:0}.navIcon{width:18px;display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.60);font-size:13px}.navIcon i{font-size:13px;line-height:1}.navItem.active .navIcon{color:var(--green)}.navTitle{font-weight:750;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navRight{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.45);font-size:12px}.chevBtn{width:28px;height:28px;display:grid;place-items:center;border-radius:10px;border:1px solid transparent;background:transparent;color:rgba(255,255,255,.55);cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .14s ease}.chevBtn:hover{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08)}.chevBtn:active{transform:scale(.98)}.chev{display:inline-block;transform:rotate(0deg);transition:transform .14s ease}.chev.open{transform:rotate(90deg)}.navChildren{margin-left:18px;padding-left:12px;border-left:1px solid rgba(255,255,255,.07);transform-origin:top;animation:navDrop .18s ease both}@keyframes navDrop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.crumbs{font-size:12px;color:rgba(255,255,255,.55);margin:8px 0 14px;text-transform:uppercase;letter-spacing:.08em}.pager{margin:10px 0 14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);border-radius:14px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;animation:fadeUp .28s ease both}.pager.one{grid-template-columns:1fr}.pager a{display:flex;align-items:center;gap:10px;padding:12px 12px;min-height:56px;text-decoration:none;transition:background .16s ease,transform .12s ease}.pager a:hover{background:rgba(255,255,255,.05)}.pager a:active{transform:translateY(1px)}.pager .cell{display:flex;flex-direction:column;min-width:0}.pager .label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:900}.pager .title{margin-top:4px;font-size:13px;font-weight:850;color:rgba(255,255,255,.90);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pager .icon{width:26px;height:26px;border-radius:10px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.22);display:grid;place-items:center;color:rgba(255,255,255,.72);flex:0 0 auto}.pager a.prev{border-right:1px solid rgba(255,255,255,.08)}.pager a.next{justify-content:flex-end;text-align:right}.pager a.next .cell{align-items:flex-end}.pager a.next .icon{order:2}.contentStage{position:relative;min-height:240px}.content{line-height:1.6;animation:fadeUp .28s ease both;will-change:opacity,transform,filter}.content.isLeaving{animation:fadeOut .16s ease both}.content.isEntering{animation:fadeUp .28s ease both}@keyframes fadeUp{from{opacity:0;transform:translateY(10px);filter:blur(1.5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes fadeOut{from{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(-6px);filter:blur(1px)}}.content h1{font-size:38px;margin:10px 0 14px;letter-spacing:.2px}.content h2{font-size:20px;margin:26px 0 10px}.content h3{font-size:15px;margin:18px 0 8px;color:rgba(255,255,255,.88)}.content p,.content li{color:rgba(255,255,255,.84);font-size:14px}.content ul{padding-left:18px}.callout{border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);padding:12px 12px;border-radius:12px;margin:14px 0;animation:fadeUp .28s ease both}.callout.good{border-color:rgba(139,222,226,0.22);background:rgba(139,211,226,0.08)}.callout.warn{border-color:rgba(255,232,107,.22);background:rgba(255,232,107,.08)}.docSectionLinks{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0 4px}.docSectionLink{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);color:rgba(255,255,255,.90);text-decoration:none;transition:background .16s ease,border-color .16s ease,transform .12s ease}.docSectionLink:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);text-decoration:none}.docSectionLink:active{transform:translateY(1px) scale(.995)}.docSectionLinkIcon{width:18px;display:grid;place-items:center;color:rgba(139,226,223,0.92);flex:0 0 auto}.docSectionLinkText{flex:1;min-width:0;font-weight:800;font-size:13px}.docSectionLinkArrow{color:rgba(255,255,255,.42);flex:0 0 auto}.ytCard{margin:12px 0 16px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden;animation:fadeUp .28s ease both}.ytCardBtn{display:block;width:100%;border:0;padding:0;background:transparent;cursor:pointer;text-align:left}.ytCardThumbWrap,.ytFrameWrap{position:relative;width:100%;aspect-ratio:var(--yt-aspect,16 / 9);background:#0b0d10}.ytCardThumb{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.96) contrast(1.02)}.ytCardOverlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient( to bottom,rgba(0,0,0,.18),rgba(0,0,0,.28) 45%,rgba(0,0,0,.48) );transition:background .16s ease}.ytCardBtn:hover .ytCardOverlay{background:linear-gradient( to bottom,rgba(0,0,0,.10),rgba(0,0,0,.22) 45%,rgba(0,0,0,.42) )}.ytPlay{width:62px;height:62px;border-radius:999px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.20);background:rgba(0,0,0,.45);color:white;font-size:20px;box-shadow:0 14px 34px rgba(0,0,0,.35);transition:transform .14s ease,background .14s ease}.ytCardBtn:hover .ytPlay{transform:scale(1.03);background:rgba(0,0,0,.56)}.ytCardLabel{color:rgba(255,255,255,.95);font-weight:800;font-size:14px;text-align:center;padding:0 14px;text-shadow:0 1px 10px rgba(0,0,0,.45)}.ytFrame{width:100%;height:100%;border:0;display:block}pre{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:12px;border-radius:12px;overflow:auto;position:relative;-webkit-overflow-scrolling:touch}pre code{font-family:var(--mono);font-size:12.5px;color:rgba(255,255,255,.88)}.copyBtn{position:absolute;top:8px;right:8px;padding:7px 9px;border-radius:9px;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.35);color:rgba(255,255,255,.80);cursor:pointer;font-size:12px;transition:background .14s ease,transform .12s ease}.copyBtn:hover{background:rgba(0,0,0,.55)}.copyBtn:active{transform:translateY(1px) scale(.99)}.footer{margin-top:26px;padding-top:14px;border-top:1px solid var(--line);color:rgba(255,255,255,.55);font-size:12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;animation:fadeUp .28s ease both}.railCard{background:transparent}.railTitle{font-weight:900;font-size:12px;color:rgba(255,255,255,.75);margin-bottom:10px}.toc a{display:block;padding:10px 10px;border-radius:12px;color:rgba(255,255,255,.72);font-size:13px;transition:background .14s ease,transform .12s ease,border-color .14s ease;-webkit-tap-highlight-color:transparent}.toc a:hover{background:rgba(255,255,255,.04);text-decoration:none}.toc a:active{transform:translateY(1px)}.toc a.active{background:rgba(139,226,213,0.08);border:1px solid rgba(139,220,226,0.16);color:rgba(255,255,255,.92)}.toc .tocMuted{color:rgba(255,255,255,.45);font-size:12px;padding:6px 8px}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.68);display:none;align-items:flex-start;justify-content:center;padding:calc(84px + env(safe-area-inset-top)) 16px 16px;z-index:130}.overlay.open{display:flex;animation:overlayIn .16s ease both}@keyframes overlayIn{from{opacity:0}to{opacity:1}}.modal{width:min(860px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;animation:modalIn .18s ease both;max-height:calc(100dvh - 120px - env(safe-area-inset-top))}@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.modalHeader{display:flex;align-items:center;justify-content:space-between;padding:12px 12px;border-bottom:1px solid var(--line)}.modalTitle{font-weight:900}.btnGhost{padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:rgba(255,255,255,.78);cursor:pointer;transition:background .14s ease,transform .12s ease}.btnGhost:hover{background:rgba(255,255,255,.06)}.btnGhost:active{transform:translateY(1px) scale(.99)}.searchInput{width:100%;padding:14px 14px;border:0;outline:none;background:rgba(255,255,255,.04);color:var(--txt);font-size:15px}.results{max-height:460px;overflow:auto;padding:10px;-webkit-overflow-scrolling:touch}.resultItem{padding:12px;border-radius:14px;cursor:pointer;border:1px solid transparent;transition:background .14s ease,border-color .14s ease,transform .12s ease}.resultItem:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07)}.resultItem:active{transform:translateY(1px)}.resultTitle{font-weight:900}.resultPath{margin-top:4px;color:rgba(255,255,255,.52);font-size:12px}.resultSnippet{margin-top:8px;color:rgba(255,255,255,.78);font-size:13px}.cookie{position:fixed;right:16px;bottom:16px;width:min(420px,calc(100vw - 32px));background:rgba(20,22,26,.95);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:12px;z-index:140;animation:fadeUp .24s ease both}.cookieText{color:rgba(255,255,255,.78);font-size:12.5px;line-height:1.45}.cookieText a{color:rgba(255,255,255,.90);text-decoration:underline}.cookieBtns{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.cookieBtn{padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:rgba(255,255,255,.86);cursor:pointer;transition:background .14s ease,transform .12s ease,border-color .14s ease}.cookieBtn:hover{background:rgba(255,255,255,.07)}.cookieBtn:active{transform:translateY(1px) scale(.99)}.cookieBtn.accept{border-color:rgba(139,226,139,.25);background:rgba(139,226,139,.10)}.cookieBtn.reject{border-color:rgba(255,255,255,.12)}body.booting .shell{opacity:0;transform:translateY(10px);filter:blur(1.5px)}body:not(.booting) .shell{animation:bootIn .28s ease}@keyframes bootIn{from{opacity:0;transform:translateY(10px);filter:blur(1.5px)}to{opacity:1;transform:none;filter:none}}.mobileOnly{display:none}.hideOnMobile{display:inline-flex}.drawerBackdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);pointer-events:none;z-index:200;opacity:0;transition:opacity .18s ease}.drawerBackdrop.show{opacity:1;pointer-events:auto}.mobileQuickRow{display:flex;gap:10px;margin:8px 0 12px}.pillBtn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 10px;border-radius:14px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);color:rgba(255,255,255,.86);cursor:pointer;transition:background .14s ease,transform .12s ease}.pillBtn:hover{background:rgba(255,255,255,.06)}.pillBtn:active{transform:translateY(1px) scale(.99)}@media (max-width:1200px){.shell{grid-template-columns:330px 1fr}.rail{display:none}.searchBtn{min-width:260px}}@media (max-width:980px){.searchBtn{min-width:220px}.brandLine1{max-width:36vw}}@media (max-width:860px){.mobileOnly{display:grid}.hideOnMobile{display:none}.topbar{padding-left:12px;padding-right:12px}.brandLine1{max-width:46vw}.searchBtn{min-width:44px;padding:8px 10px}.searchText{display:none}.shell{grid-template-columns:1fr}.sidebar,.rail{touch-action:pan-y}.nav,.toc{touch-action:pan-y}.sidebar{position:fixed;top:calc(var(--topbarH) + env(safe-area-inset-top));left:0;height:calc(100dvh - var(--topbarH) - env(safe-area-inset-top));width:min(var(--drawerW),86vw);transform:translateX(-104%);transition:transform .22s ease;z-index:220;box-shadow:0 18px 60px rgba(0,0,0,.55);border-right:1px solid rgba(255,255,255,.10);pointer-events:none;isolation:isolate}.sidebar.open{transform:translateX(0);pointer-events:auto}.rail{display:block;position:fixed;top:calc(var(--topbarH) + env(safe-area-inset-top));right:0;height:calc(100dvh - var(--topbarH) - env(safe-area-inset-top));width:min(var(--drawerWRight),86vw);transform:translateX(104%);transition:transform .22s ease;z-index:220;box-shadow:0 18px 60px rgba(0,0,0,.55);border-left:1px solid rgba(255,255,255,.10);pointer-events:none;isolation:isolate}.rail.open{transform:translateX(0);pointer-events:auto}.main{padding:14px 0}.mainInner{padding:0 14px;padding-bottom:calc(28px + env(safe-area-inset-bottom))}.content h1{font-size:28px}.content h2{font-size:18px}.content p,.content li{font-size:14px}}@media (max-width:420px){.brandLine1{max-width:44vw;font-size:13px}.pillBtn{font-size:13px}}.pager .title{line-height:1.25}@media (max-width:700px){.pager a{padding:10px 10px;gap:8px;min-height:62px}.pager .label{font-size:10px;letter-spacing:.10em}.pager .title{font-size:12.5px;white-space:normal;overflow:hidden;text-overflow:initial;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;max-width:100%}.pager .icon{width:24px;height:24px;border-radius:8px}}@media (max-width:520px){.pager{grid-template-columns:1fr}.pager a.prev{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.pager a.prev{justify-content:flex-start;text-align:left}.pager a.prev .cell{align-items:flex-start}.pager a.next{justify-content:flex-end;text-align:right}.pager a.next .cell{align-items:flex-end;text-align:right}.pager a.next .icon{order:2}.pager a .cell{min-width:0;flex:1 1 auto}}