.footer_footer__m2AQy{--blog-blue:#79baff;--blog-ink:#fff;--blog-muted:#9198a1;color:var(--blog-ink);background:#0d1117}.footer_footerBottom__r1ekg,.footer_footerMain__tsRgC{width:100%;max-width:1280px;margin-inline:auto;padding-inline:24px}.footer_footerMain__tsRgC{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);padding-block:72px}.footer_footerIntro___toE8{min-width:0;padding-right:24px}.footer_footerIntro___toE8>a{display:inline-block;font-size:1.875rem;line-height:1;font-weight:700}.footer_footerIntro___toE8 p{color:var(--blog-muted);font-size:.875rem;line-height:1.5;margin-top:24px;max-width:30ch}.footer_footerColumns__6cYbd{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.footer_footerColumns__6cYbd>div{min-width:0;padding-left:24px}.footer_footer__m2AQy .footer_footerColumns__6cYbd h2{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem;line-height:1.5;font-weight:450;letter-spacing:0;margin:0 0 16px}.footer_footerColumns__6cYbd a{display:block;width:fit-content;font-size:.875rem;line-height:1.25;font-weight:400;color:var(--blog-muted);margin:0 0 16px;padding:0;white-space:normal;overflow-wrap:anywhere}.footer_footer__m2AQy :is(a,button):hover{color:var(--blog-blue);text-decoration:underline;text-underline-offset:2px}.footer_footer__m2AQy :is(a,button):focus-visible{outline:3px solid var(--blog-blue);outline-offset:4px;box-shadow:none}.footer_footerBottomBand__1rgJh{background:#151b23}.footer_footerBottom__r1ekg{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;min-height:82px;padding-block:24px;font-size:.75rem;line-height:1.5;color:var(--blog-muted)}.footer_footerLegal__TWh69{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 16px}.footer_footerLegal__TWh69>span{color:var(--blog-ink)}.footer_footerLegal__TWh69 button{font:inherit;padding:0}.footer_footerCompany__Zkg0g{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.footer_footerCompany__Zkg0g svg{width:16px;height:16px}@media (max-width:63.249rem){.footer_footerMain__tsRgC{grid-template-columns:minmax(0,1fr);gap:32px;padding-bottom:104px}.footer_footerIntro___toE8 p{max-width:48ch}.footer_footerColumns__6cYbd>div{padding-left:0;padding-right:16px}}@media (min-width:34rem) and (max-width:63.249rem){.footer_footerBottom__r1ekg,.footer_footerMain__tsRgC{padding-inline:40px}}@media (max-width:33.999rem){.footer_footerColumns__6cYbd{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.footer_footerBottom__r1ekg{align-items:flex-start;flex-direction:column}}@font-face{font-family:Corecorp Mona Sans;src:url(/fonts/mona-sans/mona-sans.woff2) format("woff2");font-weight:200 900;font-stretch:75% 125%;font-style:normal;font-display:swap;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Corecorp Mona Sans;src:url(/fonts/mona-sans/mona-sans-latin-ext.woff2) format("woff2");font-weight:200 900;font-stretch:75% 125%;font-style:normal;font-display:swap;unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Corecorp Mona Sans;src:url(/fonts/mona-sans/mona-sans-italic.woff2) format("woff2");font-weight:200 900;font-stretch:75% 125%;font-style:italic;font-display:swap;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Corecorp Mona Sans;src:url(/fonts/mona-sans/mona-sans-italic-latin-ext.woff2) format("woff2");font-weight:200 900;font-stretch:75% 125%;font-style:italic;font-display:swap;unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}.surface_surface__dCape{--github-blog-font:"Corecorp Mona Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--blog-heading:var(--github-blog-font);--blog-bg:#fff;--blog-panel:#fff;--blog-ink:#1f2328;--blog-muted:#59636e;--blog-blue:#0969da;--blog-border:#d1d9e0;--blog-control:#59636e;--blog-action:#0969da;font-family:var(--github-blog-font);font-size:16px;font-weight:400;line-height:1.5;color:var(--blog-ink);background:var(--blog-bg);isolation:isolate;min-width:0}.surface_surface__dCape *,.surface_surface__dCape :after,.surface_surface__dCape :before{box-sizing:border-box}.surface_surface__dCape :is(h1,h2,h3,h4,h5,h6){font-family:var(--github-blog-font)}.surface_surface__dCape :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--blog-blue);outline-offset:4px}.surface_surface__dCape :is(a,button,summary){-webkit-tap-highlight-color:transparent}.surface_surface__dCape :is(button,summary){cursor:pointer}.surface_surface__dCape button:disabled{cursor:not-allowed}.surface_surface__dCape [id]{scroll-margin-top:calc(var(--blog-viewport-header-height, 75px) + 24px)}.surface_surface__dCape ::selection{color:#fff;background:#0969da}@layer base{.surface_surface__dCape [data-analytics-scope=blog_article_content] a,.surface_surface__dCape a:focus-visible,.surface_surface__dCape a:hover{text-decoration-line:underline!important;text-underline-offset:2px}}.shell_shell__xsBRI.cc-site-shell[data-blog-shell]{--cc-site-header-height:var(--blog-sticky-height,57px);--blog-brand-height:80px;background:var(--blog-bg);min-height:100dvh;display:flex;flex-direction:column}.shell_content__3y8_9{flex:1;min-width:0}html:has(.shell_shell__xsBRI){scroll-padding-block-start:calc(var(--blog-viewport-header-height, 57px) + 8px)}.shell_shell__xsBRI[data-blog-shell] [id]{scroll-margin-top:calc(2rem - 8px)}.shell_content__3y8_9:focus-visible{outline:3px solid var(--blog-blue);outline-offset:-3px}.shell_header__Lc9PO{position:sticky;top:calc(-1 * var(--blog-brand-height));z-index:80;--blog-bg:#0d1117;--blog-ink:#ffffff;--blog-muted:#8b949e;--blog-blue:#79c0ff;--blog-warm:#ffb08a;--blog-border:#30363d;--blog-soft:#212830;color:var(--blog-ink);background:var(--blog-bg);font-family:var(--github-blog-font,"Corecorp Mona Sans",sans-serif);border-bottom:1px solid var(--blog-border)}.shell_shell__xsBRI:has([data-blog-github][data-blog-article-page]) .shell_header__Lc9PO{--blog-bg:#212830}.shell_brandRow__VmQD9,.shell_navigation__1vqN4{width:100%;max-width:1280px;margin-inline:auto;padding-inline:24px}.shell_brandRow__VmQD9{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:0;padding-block:16px}.shell_utilities__vnWye{display:flex;align-items:center;margin-left:24px;font-size:1rem;line-height:16px;font-weight:500}.shell_utilities__vnWye a{padding:8px 24px;white-space:nowrap}.shell_brand__1ZEi0{display:inline-flex;align-items:center;flex-shrink:0;gap:8px;color:var(--blog-ink)}.shell_logo__zoOkb{gap:0}.shell_logo__zoOkb>span:last-child{display:none}.shell_logo__zoOkb .cc-brand-logo__mark{width:32px;height:32px;border-radius:0;background:transparent;color:inherit}.shell_logo__zoOkb .cc-brand-logo__mark svg{width:32px;height:32px}.shell_brandSeparator__eHH0i{font-size:2rem;line-height:44px;font-weight:400;color:#59636e}.shell_wordmark__09A9p{font-size:1.5rem;line-height:36px;font-weight:600}.shell_brandPlaceholder__x5DAt{height:var(--blog-brand-height,74px)}.shell_actions__fGvtt{display:flex;align-items:center;gap:16px;margin-left:auto}.shell_iconButton__solEk{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:42px;border-radius:6px;background:transparent;color:inherit;border:1px solid transparent;cursor:pointer}.shell_iconButton__solEk svg{width:24px;height:24px;stroke-width:1.5}.shell_iconButton__solEk:hover{color:var(--blog-blue);background:var(--blog-soft)}.shell_companyLink__3jr6g{display:inline-flex;align-items:center;gap:8px;min-height:48px;border:2px solid;border-radius:8px;padding:10px 28px;font-size:1rem;line-height:24px;font-weight:600;text-align:center;justify-content:center;white-space:nowrap;transition:box-shadow .2s,background-color .2s}.shell_primaryLink__hmJ5j{background:#fff;color:#0d1117;border-color:#fff}.shell_companyLink__3jr6g:hover{box-shadow:0 0 0 2px #fff}.shell_companyLink__3jr6g svg,.shell_mobileCompany__pt6yc svg{width:16px;height:16px}.shell_navigation__1vqN4{position:relative;display:flex;align-items:stretch;justify-content:space-between;gap:16px;min-height:56px}.shell_navigation__1vqN4>a,.shell_topics__v9YHT>summary{display:flex;align-items:center;gap:6px;padding-block:16px;font-size:1rem;font-weight:600;line-height:24px;white-space:nowrap;cursor:pointer}.shell_topics__v9YHT>summary[aria-current]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:9px}.shell_topics__v9YHT>summary{list-style:none}.shell_topics__v9YHT>summary::-webkit-details-marker{display:none}.shell_topics__v9YHT>summary svg{width:16px;height:16px}.shell_topics__v9YHT[open]>summary{color:var(--blog-blue)}.shell_topics__v9YHT[open]>summary svg{transform:rotate(180deg)}.shell_megaPanel__b9qeQ{position:absolute;top:calc(100% + 8px);left:24px;right:24px;display:grid;grid-template-columns:2fr 1fr;--blog-ink:#25292e;--blog-muted:#59636e;--blog-blue:#005fc4;--blog-border:#d1d9e0;color:var(--blog-ink);border:0;border-radius:12px;overflow:auto;max-height:calc(100dvh - var(--blog-sticky-height, 57px) - 16px);background:#fff;box-shadow:0 8px 24px #01040926;animation:shell_revealTopics__BAoQA .5s ease both}.shell_topicLinks__embkk{padding:48px}.shell_panelHeading__M8_dS{display:block;font-size:1.25rem;line-height:24px;font-weight:600;margin:0 0 4px}.shell_panelDescription__pV7IW{color:var(--blog-muted);font-size:1rem;line-height:24px;margin:0 0 48px}.shell_topicGrid__OMikY{display:grid;grid-template-columns:1fr 1fr}.shell_topicGrid__OMikY>div:first-child{padding-right:48px}.shell_topicGrid__OMikY>div+div{border-left:1px solid var(--blog-border);padding-left:64px}.shell_topicGrid__OMikY a{display:block;margin-bottom:24px}.shell_topicGrid__OMikY a:last-child{margin-bottom:0}.shell_topicGrid__OMikY strong{display:block;font-size:1rem;line-height:24px;font-weight:600}.shell_topicGrid__OMikY span{display:block;font-size:.875rem;line-height:21px;color:var(--blog-muted)}.shell_topicMore__ZxxhK{display:flex;gap:32px;margin-top:24px;font-size:.875rem;line-height:21px;color:var(--blog-blue)}.shell_highlights__MyN3n{padding:48px 64px;background:#f6f8fa}.shell_highlights__MyN3n>a{display:block}.shell_highlights__MyN3n img{display:block;width:100%;aspect-ratio:283/150;height:auto;object-fit:cover;border-radius:6px;margin-bottom:16px}.shell_highlightAudience__7hhDy{display:block;color:var(--blog-muted);font-size:.8125rem;line-height:21px;margin-bottom:4px}.shell_highlights__MyN3n strong{display:block;font-size:1.25rem;line-height:25px;font-weight:600}.shell_highlights__MyN3n p{color:var(--blog-muted);font-size:.875rem;line-height:21px;margin:8px 0 16px}.shell_readMore__kreV_{display:flex;align-items:center;gap:4px;color:var(--blog-blue);font-size:.875rem;line-height:21px}.shell_readMore__kreV_ svg{width:16px;height:16px}@keyframes shell_revealTopics__BAoQA{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.shell_megaPanel__b9qeQ{animation:none}}.shell_menuTrigger__5wqGe{display:none}.shell_mobilePanel__Merl1{--blog-bg:#0d1117;--blog-ink:#ffffff;--blog-muted:#8b949e;--blog-blue:#79c0ff;--blog-warm:#ffb08a;--blog-border:#30363d;--blog-soft:#212830;z-index:120!important;inset:0!important;height:100dvh!important;max-height:100dvh;width:100%;padding:0;gap:0;border:0;overflow:hidden;background:var(--blog-bg);color:var(--blog-ink);font-size:1rem;font-family:var(--github-blog-font,"Corecorp Mona Sans",sans-serif);animation:none!important;transition:none}.shell_mobileTop___DeAZ{flex-shrink:0}.shell_mobileLinks__aaqC7{--blog-ink:#25292e;--blog-muted:#59636e;--blog-blue:#005fc4;--blog-border:#d1d9e0;flex:1;min-height:0;display:flex;flex-direction:column;border-radius:6px 6px 0 0;padding:32px;background:#fff;color:var(--blog-ink);overflow-y:auto;overscroll-behavior:contain}.shell_mobileLinks__aaqC7 .shell_mobileTitle__F01tp{flex-shrink:0;margin:0 0 32px;color:var(--blog-muted);font-family:inherit;font-size:1rem;line-height:24px;font-weight:600}.shell_mobileCategory__nmMQ9,.shell_mobileUtilities__0HYKb a{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;width:100%;margin-bottom:32px;padding:0;border:0;background:none;color:inherit;text-align:left;font-size:1.25rem;line-height:1;font-weight:600;cursor:pointer}.shell_mobileCategory__nmMQ9 svg{width:16px;height:16px;flex-shrink:0;margin-left:12px;color:var(--blog-muted)}.shell_mobileUtilities__0HYKb{flex-shrink:0;border-top:1px solid var(--blog-border);padding-top:32px;margin-top:8px}.shell_mobileCompany__pt6yc{flex-shrink:0;padding-top:16px}.shell_mobileCompany__pt6yc a{display:flex;align-items:center;justify-content:center;margin-bottom:16px;min-height:48px;border:2px solid #25292e;border-radius:8px;padding:10px 16px;font-size:1rem;line-height:24px;font-weight:600;text-align:center}.shell_mobileCompany__pt6yc a:last-child{margin-bottom:0;color:#fff;background:#25292e}.shell_mobileBack__sjrUP{display:flex;align-items:center;gap:8px;border:0;background:none;padding:0;margin:0 0 32px;color:var(--blog-muted);font-size:1rem;font-weight:600;cursor:pointer}.shell_mobileBack__sjrUP svg{width:16px;height:16px}.shell_mobileTopicTitle__S0Eo6{margin:0 0 8px;font-family:inherit;font-size:1.25rem;line-height:24px;font-weight:600}.shell_mobileDescription__WQiOk{margin:0 0 32px;color:var(--blog-muted);font-size:1rem;line-height:24px}.shell_mobileSubLinks__IPmwf a{display:block;margin-bottom:32px}.shell_mobileSubLinks__IPmwf strong{display:block;font-size:1rem;line-height:24px;font-weight:600}.shell_mobileSubLinks__IPmwf span{display:block;color:var(--blog-muted);font-size:.875rem;line-height:21px}.shell_mobilePanel__Merl1 :is(a,button):focus-visible{outline:3px solid var(--blog-blue);outline-offset:4px}@media (max-width:1011.98px){.shell_shell__xsBRI.cc-site-shell[data-blog-shell]{--cc-site-header-height:var(--blog-sticky-height,75px)}.shell_header__Lc9PO{top:0}.shell_brandRow__VmQD9{min-height:74px;padding-block:16px;padding-inline:24px;flex-wrap:wrap;gap:12px}.shell_brand__1ZEi0{gap:8px}.shell_brandSeparator__eHH0i{font-size:1.5rem;line-height:32px}.shell_wordmark__09A9p{font-size:1.5rem;line-height:36px}.shell_actions__fGvtt{gap:8px;margin-left:auto}.shell_companyLink__3jr6g,.shell_navigation__1vqN4,.shell_utilities__vnWye{display:none}.shell_menuTrigger__5wqGe{display:inline-flex}}@media (max-width:360px){.shell_brandRow__VmQD9{gap:8px}.shell_actions__fGvtt{gap:2px}}@media (min-width:544px) and (max-width:1011.98px){.shell_brandRow__VmQD9{padding-inline:40px}}@media (min-width:1012px) and (max-width:1199px){.shell_utilities__vnWye{margin-left:8px}.shell_utilities__vnWye a{padding-inline:12px}.shell_companyLink__3jr6g{padding-inline:16px;white-space:normal}.shell_actions__fGvtt{gap:12px}}.shell_header__Lc9PO :is(a,button,summary):focus-visible{outline:2px solid #0969da;outline-offset:-2px}