.portal_page__tzC7z{--portal-bg:#fff;--portal-card:#fff;--portal-border:#eaecef;--portal-border-light:#d1d5db;--portal-code:#f8f9fa;--portal-thead:#f3f4f6;--portal-inline:#e5e7eb;--txt-primary:#0d0e12;--txt-subtitle:#1e2329;--txt-secondary:#5e6673;--txt-muted:#848e9c;--brand-blue:#0068ff;--brand-blue-hover:#0058d6;width:100%;box-sizing:border-box;background:var(--portal-bg);color:var(--txt-primary);font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.classic-dark .portal_page__tzC7z{--portal-bg:#0d0e12;--portal-card:#181a20;--portal-border:#1f2329;--portal-border-light:#2b2f36;--portal-code:#14161a;--portal-thead:#1a1d22;--portal-inline:#1f2329;--txt-primary:#fff;--txt-subtitle:#b0b8c1;--txt-secondary:#848e9c;--txt-muted:#5e6673}.portal_main__L61dX{max-width:1088px;margin:0 auto;padding:0 20px 64px;box-sizing:border-box;width:100%}@media (min-width:768px){.portal_main__L61dX{padding:0 24px 64px}}.portal_nav__O16YZ{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;box-sizing:border-box;width:100%;position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--portal-bg) 95%,transparent);backdrop-filter:blur(4px)}@media (min-width:768px){.portal_nav__O16YZ{padding:0 32px}}.portal_navLogo__rWvmF{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit}.portal_navLogoImg__ThXG3{width:20px;height:20px}.portal_navLogoText__AaZW9{font-weight:600;font-size:16px;color:var(--txt-primary)}.portal_navActions__N0SEf{display:flex;align-items:center;gap:12px}.portal_themeBtn__PMoW_{padding:8px;border-radius:8px;border:none;background:none;cursor:pointer;color:var(--txt-secondary);transition:all .15s ease;display:flex;align-items:center;justify-content:center}.portal_themeBtn__PMoW_:hover{color:var(--txt-primary);background:color-mix(in srgb,var(--portal-border) 50%,transparent)}.portal_githubLink__HIV5a{color:var(--txt-secondary);transition:color .15s ease;display:flex;align-items:center}.portal_githubLink__HIV5a:hover{color:var(--txt-primary)}.portal_langSelect__e_fyj{padding:4px 8px;border-radius:8px;border:1px solid var(--portal-border);background:transparent;cursor:pointer;color:var(--txt-secondary);transition:color .15s ease,border-color .15s ease;font-size:13px;font-weight:500;outline:none;appearance:auto}.portal_langSelect__e_fyj:focus,.portal_langSelect__e_fyj:hover{color:var(--txt-primary);border-color:var(--txt-muted)}.portal_icon20__0caUz{width:20px;height:20px}.portal_icon16__61Qi4{width:16px;height:16px}.portal_hero__cnV5K{margin-top:24px;border:1px solid var(--portal-border);border-radius:8px;padding:32px;background:linear-gradient(145deg,var(--portal-card) 0,var(--portal-bg) 50%,var(--portal-card) 100%)}.classic-dark .portal_hero__cnV5K{background:linear-gradient(145deg,#1c1f26,#14161a 50%,#1a1d22)}@media (min-width:768px){.portal_hero__cnV5K{padding:40px}}.portal_heroTitle__1dKO_{font-size:36px;font-weight:800;line-height:1.1;letter-spacing:-.025em}@media (min-width:768px){.portal_heroTitle__1dKO_{font-size:52px}}.portal_heroBrand__PVLth{color:var(--brand-blue)}.portal_heroSubtitle__yYzpF{margin-top:20px;font-size:24px;font-weight:700;line-height:1.3;color:var(--txt-primary)}@media (min-width:768px){.portal_heroSubtitle__yYzpF{font-size:32px}}.portal_heroDesc__h5piA{margin-top:20px;font-size:16px;color:var(--txt-secondary);line-height:1.6}.portal_heroNote__9FQCq{margin-top:24px;font-size:14px;color:var(--txt-muted)}.portal_searchWrap__ncBsB{margin-top:32px;position:relative}.portal_searchIcon__VqeV8{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--txt-muted)}.portal_searchInput__r0M7m{width:100%;box-sizing:border-box;background:transparent;border:1px solid var(--portal-border);border-radius:8px;height:48px;padding-left:44px;padding-right:16px;font-size:14px;color:var(--txt-primary);transition:border-color .15s ease;outline:none}.portal_searchInput__r0M7m::placeholder{color:var(--txt-muted)}.portal_searchInput__r0M7m:focus{border-color:var(--brand-blue)}.portal_skillList__CsZS8{margin-top:16px;display:flex;flex-direction:column;gap:12px}.portal_skillRow__b5vnm{display:block;border:1px solid transparent;border-radius:8px;padding:24px;background:#f8f9fa;transition:all .15s ease;text-decoration:none;color:inherit}.portal_skillRow__b5vnm:hover{border-color:#d1d5db;box-shadow:0 2px 8px rgba(0,0,0,.04)}.classic-dark .portal_skillRow__b5vnm{background:#14161a;border-color:transparent}.classic-dark .portal_skillRow__b5vnm:hover{border-color:#2b2f36;box-shadow:0 2px 8px rgba(0,0,0,.2)}.portal_skillRowActive__mpxjc{display:block;border:1px solid var(--brand-blue);border-left-width:3px;border-radius:8px;padding:24px;background:rgba(35,84,230,.06);transition:all .15s ease;text-decoration:none;color:inherit}.portal_skillRowActive__mpxjc:hover{background:rgba(35,84,230,.1);box-shadow:0 2px 8px rgba(35,84,230,.1)}.classic-dark .portal_skillRowActive__mpxjc{background:rgba(35,84,230,.1);border-color:var(--brand-blue)}.classic-dark .portal_skillRowActive__mpxjc:hover{background:rgba(35,84,230,.15);box-shadow:0 2px 8px rgba(35,84,230,.2)}.portal_skillRowInner__Jhk82{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.portal_skillRowContent__UFG23{min-width:0}.portal_skillRowHeader__Vmsl_{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.portal_skillName__dOEG7{font-size:18px;font-weight:700;color:var(--txt-primary)}.portal_skillNameActive__7Yl0m{font-size:18px;font-weight:700;color:var(--brand-blue)}.portal_skillProvider__GpBix{font-size:12px;color:var(--txt-secondary)}.portal_skillDesc__XVn_A{margin-top:8px;font-size:14px;color:var(--txt-secondary);line-height:1.6}.portal_chevron__sz_wj{flex-shrink:0;width:20px;height:20px;color:var(--txt-muted);margin-top:4px;transition:color .15s ease}.portal_skillRowActive__mpxjc:hover .portal_chevron__sz_wj,.portal_skillRow__b5vnm:hover .portal_chevron__sz_wj{color:var(--txt-secondary)}.portal_emptyState__F_vAd{text-align:center;padding:48px 0;color:var(--txt-muted);font-size:14px}.portal_detailHeader__9NUuZ{margin-top:32px}.portal_detailTitle__c6hKR{font-size:24px;font-weight:700;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;color:var(--txt-primary)}@media (min-width:768px){.portal_detailTitle__c6hKR{font-size:28px}}.portal_detailDesc__ZlkyQ{margin-top:12px;font-size:14px;color:var(--txt-secondary);line-height:1.6}.portal_installBar__0vEGL{margin-top:24px;display:flex;align-items:center;box-sizing:border-box;background:var(--portal-code);border:1px solid var(--portal-border);border-radius:8px;overflow:hidden}.portal_installCode__oLO_Q{flex:1;padding:12px 16px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--portal-border) transparent}.portal_installCode__oLO_Q::-webkit-scrollbar{height:4px}.portal_installCode__oLO_Q::-webkit-scrollbar-track{background:transparent}.portal_installCode__oLO_Q::-webkit-scrollbar-thumb{background:var(--portal-border);border-radius:4px}.portal_installCode__oLO_Q::-webkit-scrollbar-thumb:hover{background:var(--txt-muted)}.portal_installCodeText__qjEKg{font-size:14px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;color:var(--txt-subtitle);white-space:nowrap}.portal_installDollar__gNUR8{color:var(--brand-blue)}.portal_copyBtn__4qufq{flex-shrink:0;background:var(--brand-blue);color:#fff;padding:12px;border:none;cursor:pointer;transition:background .15s ease;display:flex;align-items:center;justify-content:center}.portal_copyBtn__4qufq:hover{background:var(--brand-blue-hover)}.portal_copyBtn__4qufq:active{transform:scale(.95)}.portal_docCard__vvx0_{margin-top:24px;border:1px solid var(--portal-border);border-radius:8px;background:var(--portal-card);overflow:hidden}.portal_docCardHeader__IrJ2L{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--portal-border)}.portal_docCardFileName__O8FT9{font-size:14px;font-weight:600;color:var(--txt-primary)}.portal_docCardGithub__RRoUw{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--brand-blue);text-decoration:none}.portal_docCardGithub__RRoUw:hover{text-decoration:underline}.portal_docBody__iRwOM{padding:24px}@media (min-width:768px){.portal_docBody__iRwOM{padding:24px 32px}}.portal_docH2__nwZUV{font-size:24px;font-weight:700;color:var(--txt-primary)}@media (min-width:768px){.portal_docH2__nwZUV{font-size:28px}}.portal_docH3__2DUDv{margin-top:32px;font-size:20px;font-weight:700;color:var(--txt-primary)}.portal_tableWrap__gmJrK{margin-top:16px;overflow-x:auto}.portal_table__XVdVI{width:100%;font-size:14px;border-collapse:collapse}.portal_thead__QMKVd{background:var(--portal-thead)}.portal_th__NuKFG{text-align:left;font-weight:600;border-bottom:1px solid var(--portal-border)}.portal_tdMono__DGhXa,.portal_td__8qe3u,.portal_th__NuKFG{padding:12px 16px;color:var(--txt-secondary)}.portal_tdMono__DGhXa{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.portal_trBorder__GE1hp{border-bottom:1px solid var(--portal-border)}.portal_tbody__IgGJc{color:var(--txt-secondary)}.portal_codeBlock__1KxlM{margin-top:8px;background:var(--portal-code);border:1px solid var(--portal-border);border-radius:6px;padding:12px 16px;overflow-x:auto}.portal_codeText__uWaYK{white-space:nowrap}.portal_codeTextPre__KBCoY,.portal_codeText__uWaYK{font-size:13px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;color:var(--txt-subtitle)}.portal_codeTextPre__KBCoY{white-space:pre}.portal_inlineCode__UafuA{background:var(--portal-inline);border-radius:4px;padding:2px 6px;font-size:13px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;color:var(--txt-subtitle)}.portal_labelSm__6lkG0{font-weight:600}.portal_labelSmNormal__GiEYo,.portal_labelSm__6lkG0{font-size:14px;color:var(--txt-primary)}.portal_mt3__Jl0uX{margin-top:12px}.portal_mt4__UTBw9{margin-top:16px}.portal_mt6__6cGvM{margin-top:24px}.portal_mono__YBwEm{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.portal_orderedList__OIPnx{margin-top:16px;font-size:14px;color:var(--txt-secondary);line-height:1.6;list-style:decimal inside;display:flex;flex-direction:column;gap:8px}.portal_orderedList__OIPnx strong{color:var(--txt-primary)}.portal_footer__n3xIo{margin-top:48px;padding:24px 0;text-align:center}.portal_footerText__qN4Sz{font-size:13px;color:var(--txt-muted)}