.github_home__YP3z_{--blog-bg:#fff;--blog-panel:#fff;--blog-ink:#1f2328;--blog-muted:#59636e;--blog-blue:#0969da;--blog-focus:#0969da;--blog-border:#d1d9e0;--blog-control:#59636e;--blog-action:#0969da;font-family:var(--github-blog-font);color:var(--blog-ink);background:var(--blog-bg);font-weight:450}.github_container__xAtmE{width:100%;max-width:1280px;padding-inline:24px;margin-inline:auto}.github_srOnly__Je3Vn{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.github_dark__3_eKs{--blog-ink:#fff;--blog-muted:#9198a1;--blog-border:#3d444d;--blog-blue:#79c0ff;--blog-focus:#1f6feb;color:var(--blog-ink)}.github_hero__YyiOF{background:#0d1117;padding-block:48px 80px;position:relative;overflow:hidden}.github_hero__YyiOF:before{content:"";position:absolute;inset:auto -14.5% -44px;height:244px;filter:blur(120px);opacity:.6;background:linear-gradient(93.23deg,#f778ba 2.35%,#79c0ff 76.99%)}.github_hero__YyiOF>*{position:relative}.github_heroGrid__8u0eR{display:grid;gap:48px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:min-content min-content 1fr}.github_heroGrid__8u0eR>:first-child{grid-row:span 3}.github_heroNewsletter__EmZ5H{margin-top:64px}.github_card__VW7s_{min-width:0;position:relative;align-self:start}.github_card__VW7s_:before{content:"";border-bottom:1px solid var(--blog-border);position:absolute;inset:calc(100% + 24px) 0 auto}.github_card__VW7s_:last-child:before,.github_engineeringLead__nVRex:before,.github_lead__e0EXw:before{display:none}.github_image__hb8qi{display:block;position:relative;border-radius:6px;overflow:hidden;aspect-ratio:1200/637}.github_image__hb8qi img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1) translateZ(0);transition:transform .6s cubic-bezier(.165,.84,.44,1);backface-visibility:hidden;transform-style:preserve-3d}.github_card__VW7s_:has(.github_cardLink__7dGuB:hover,.github_cardLink__7dGuB:focus) .github_image__hb8qi img,.github_image__hb8qi:is(:hover,:focus) img{transform:scale(1.02) translateZ(0)}.github_cardTitle__Qm6MB{margin:0 0 8px;font-size:20px;line-height:24px;font-weight:600;letter-spacing:-.01em;overflow-wrap:break-word}.github_cardLink__7dGuB{color:inherit}.github_cardLink__7dGuB:before{content:"";position:absolute;inset:0;z-index:1}.github_byline__fcI14 p a:hover,.github_cardLink__7dGuB:hover,.github_collectionsGrid__72J6B h3 a:is(:hover,:focus),.github_timelineAll__4O_dV:hover,.github_timeline__WITAo h3 a:hover{color:var(--blog-blue)}.github_home__YP3z_[data-blog-home] :is(.github_card__VW7s_,.github_timeline__WITAo) a:focus-visible{outline:2px solid var(--blog-focus);outline-offset:-2px;box-shadow:none}.github_home__YP3z_[data-blog-home] .github_collectionsGrid__72J6B a:focus-visible{outline:2px solid var(--blog-focus);outline-offset:0;box-shadow:none}@layer base{.github_byline__fcI14 p a:hover,.github_cardLink__7dGuB:hover,.github_collectionsGrid__72J6B h3 a:hover,.github_sectionHeading__DlvoM>a:is(:hover,:focus-visible),.github_timelineAll__4O_dV:hover,.github_timeline__WITAo h3 a:hover,.github_topic__S7moP:hover{text-decoration-line:underline!important;text-underline-offset:auto}}.github_topic__S7moP{display:block;position:relative;z-index:2;width:fit-content;color:var(--blog-blue);background:linear-gradient(160deg,#8250df,#d42a32);background-clip:text;-webkit-text-fill-color:transparent;-webkit-box-decoration-break:clone;box-decoration-break:clone;margin-bottom:4px;font-size:14px;font-weight:600;line-height:21px}.github_dark__3_eKs .github_topic__S7moP{background:linear-gradient(140deg,#d2a8ff 12.09%,#f778ba 42.58%,#ff7b72 84.96%);background-clip:text;-webkit-text-fill-color:transparent}.github_excerpt__gSfF9{font-size:16px;font-weight:450;line-height:24px;color:var(--blog-muted);margin:0 0 10px}.github_byline__fcI14{display:flex;align-items:center;gap:16px;margin-top:8px;margin-bottom:6px;font-size:14px;line-height:21px}.github_byline__fcI14 p{margin:0}.github_byline__fcI14 a{position:relative;z-index:2;font-weight:600}.github_byline__fcI14 span,.github_byline__fcI14 time{color:var(--blog-muted)}.github_byline__fcI14 time{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:14px;font-weight:400;white-space:nowrap}.github_avatar__6upFF{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:1px solid var(--blog-border);border-radius:50%;background:#fff;color:#0d1117}.github_avatar__6upFF svg{width:25px;height:25px}.github_engineeringLead__nVRex .github_image__hb8qi,.github_lead__e0EXw .github_image__hb8qi{margin-bottom:24px}.github_engineeringLead__nVRex .github_cardTitle__Qm6MB,.github_lead__e0EXw .github_cardTitle__Qm6MB{font-size:48px;line-height:52px;letter-spacing:-.03em;font-weight:800}.github_engineeringLead__nVRex .github_byline__fcI14,.github_lead__e0EXw .github_byline__fcI14{margin-top:8px}.github_row__SpIea{display:grid;grid-template-columns:168px minmax(0,1fr);gap:28px}.github_row__SpIea .github_image__hb8qi{aspect-ratio:1}.github_row__SpIea .github_cardBody__6NKYq{padding-right:10.6667px}.github_grid__2oQY1 .github_image__hb8qi{margin-bottom:16px}.github_grid__2oQY1 .github_byline__fcI14{margin-top:8px}.github_discovery__v5e75{padding-block:80px}.github_twoColumns__heETK{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.github_sectionHeading__DlvoM{border-top:5px solid var(--blog-ink);border-bottom:1px solid var(--blog-border);padding-block:12px 16px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:59px}.github_sectionHeading__DlvoM h2{font-size:20px;line-height:25px;font-weight:600;margin:0;letter-spacing:0}.github_sectionHeading__DlvoM>a{position:relative;display:inline-flex;align-items:center;flex-shrink:0;padding-right:16px;font-size:14px;line-height:21px;font-weight:500}.github_sectionHeading__DlvoM>a:is(:hover,:focus-visible){color:var(--blog-blue)}.github_home__YP3z_[data-blog-home] .github_sectionHeading__DlvoM>a:focus-visible{outline:0}.github_sectionHeading__DlvoM>a:after,.github_sectionHeading__DlvoM>a:before{content:"";position:absolute;inset:.3rem 0 0 auto;width:1rem;height:1rem;margin-block:auto;background-color:currentColor;mask-position:right center;mask-repeat:no-repeat;mask-size:.66rem;pointer-events:none;transform:translate(-.25em,-.1em);transition:transform .2s ease}.github_sectionHeading__DlvoM>a:before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='16' fill='none'%3E%3Cpath fill='%23000' d='M9.92.83a1.125 1.125 0 0 0-1.59 1.59L9.92.83ZM15.5 8l.796.794a1.125 1.125 0 0 0 0-1.59L15.5 8Zm-7.17 5.58a1.125 1.125 0 1 0 1.59 1.59l-1.59-1.59Zm0-11.16 6.376 6.374 1.59-1.59L9.92.83 8.33 2.42Zm6.376 4.784L8.33 13.58l1.59 1.59 6.375-6.375-1.59-1.59Z'/%3E%3C/svg%3E")}.github_sectionHeading__DlvoM>a:after{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='16' fill='none'%3E%3Cpath fill='%23000' d='M.5 8c0-.621.504-1.125 1.125-1.125H15.5a1.125 1.125 0 0 1 0 2.25H1.625A1.125 1.125 0 0 1 .5 8Z'/%3E%3C/svg%3E");transform:translate(-.25em,-.1em) scaleX(0);transform-origin:right center}.github_sectionHeading__DlvoM>a:is(:hover,:focus-visible):after,.github_sectionHeading__DlvoM>a:is(:hover,:focus-visible):before{transform:translate(-.1em,-.1em)}.github_rows__ju9hd{display:grid;grid-template-columns:minmax(0,1fr);gap:48px}.github_recommendedRows__FxGzM{gap:72px}.github_recommendedRows__FxGzM .github_card__VW7s_:before{inset-block-start:calc(100% + 36px)}.github_timeline__WITAo{position:relative;margin:80px 0 0;padding:40px;background:#f6f8fa;border-radius:12px}.github_timeline__WITAo>h2{display:flex;align-items:center;gap:8px;margin:0 0 32px;font-size:24px;line-height:28px;font-weight:800}.github_timeline__WITAo ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;list-style:none;padding:0;margin:0;position:relative}.github_timeline__WITAo ol:before{content:"";position:absolute;top:4px;left:0;right:0;height:4px;background:linear-gradient(90deg,#ea6cb6 2.2%,#7a87ff 96.97%)}.github_timeline__WITAo li{position:relative;padding:32px 24px 0 0}.github_timeline__WITAo li:before{content:"";position:absolute;top:0;left:0;width:12px;height:12px;border-radius:6px;border:2px solid #ea6cb6;background:#f6f8fa}.github_timeline__WITAo li:nth-child(2):before{border-color:#cb74cb}.github_timeline__WITAo li:nth-child(3):before{border-color:#ae7cdf}.github_timeline__WITAo li:nth-child(4):before{border-color:#8f83f3}.github_timeline__WITAo time{display:block;margin-top:16px;font-size:12px;line-height:18px;color:var(--blog-muted)}.github_timeline__WITAo h3{margin:0;font-size:20px;line-height:24px;font-weight:600;overflow-wrap:anywhere}.github_timelineAll__4O_dV{position:absolute;right:40px;top:44px;display:inline-flex;align-items:center;gap:4px;font-size:14px;line-height:21px;font-weight:600}.github_timelineAll__4O_dV svg{width:1em;height:1em;transform:translateX(0);transition:transform .2s ease}.github_timelineAll__4O_dV svg path:last-child{stroke-dasharray:10;stroke-dashoffset:10;transition:stroke-dashoffset .2s ease}.github_engineering__nXiwY{background:#212830;padding-block:48px 80px}.github_engineeringGrid__lWPU4{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:min-content 1fr;gap:48px}.github_engineeringGrid__lWPU4>:first-child{grid-row:span 2}.github_engineeringLead__nVRex .github_image__hb8qi{aspect-ratio:1}.github_engineeringGrid__lWPU4>:nth-last-child(-n+2):before{display:none}.github_spotlightBand__Q0nGp{background:#f6f8fa;padding-block:80px}.github_spotlightGrid__ByjsN{display:grid;grid-template-columns:7fr 5fr;grid-auto-rows:min-content 1fr;gap:48px;padding-top:24px}.github_spotlightGrid__ByjsN>:first-child{grid-row:span 2}.github_spotlightLead__m8ch9 .github_image__hb8qi,.github_spotlight__ZjQGJ .github_image__hb8qi{aspect-ratio:16/9;margin-bottom:20px}.github_spotlightLead__m8ch9 .github_cardTitle__Qm6MB,.github_spotlight__ZjQGJ .github_cardTitle__Qm6MB{font-weight:700}.github_spotlightLead__m8ch9 .github_cardTitle__Qm6MB{font-size:48px;line-height:1.2;font-weight:800;letter-spacing:-.03em}.github_spotlightLead__m8ch9 .github_cardLink__7dGuB:before,.github_spotlightLead__m8ch9:before,.github_spotlight__ZjQGJ .github_cardLink__7dGuB:before,.github_spotlight__ZjQGJ:before{display:none}.github_spotlightLead__m8ch9:is(:hover,:focus-within) .github_image__hb8qi img,.github_spotlight__ZjQGJ:is(:hover,:focus-within) .github_image__hb8qi img{transform:scale(1.02) translateZ(0)}.github_spotlightLead__m8ch9 .github_excerpt__gSfF9,.github_spotlight__ZjQGJ .github_excerpt__gSfF9{margin:0;color:var(--blog-ink)}.github_collections__ECNCy{margin-top:80px}.github_collectionsGrid__72J6B{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px;padding-top:24px}.github_collectionsGrid__72J6B article{position:relative;min-width:0}.github_collectionImage__ssoqm{display:block;overflow:hidden;aspect-ratio:16/9;border-radius:6px;margin-bottom:12px}.github_collectionImage__ssoqm img{width:100%;height:100%;object-fit:cover;backface-visibility:hidden;transform:scale(1) translateZ(0);transform-style:preserve-3d;transition:transform .6s cubic-bezier(.165,.84,.44,1)}.github_collectionsGrid__72J6B article:focus-within img,.github_collectionsGrid__72J6B article:hover img{transform:scale(1.02) translateZ(0)}.github_collectionsGrid__72J6B h3{font-size:20px;line-height:32px;font-weight:600;margin:0;letter-spacing:-.01em}.github_collectionsGrid__72J6B h3 a:after{content:"";position:absolute;inset:0}.github_collectionsGrid__72J6B p{margin:0;font-size:16px;line-height:24px;color:var(--blog-muted)}.github_news__gjqfR{padding-block:80px}.github_newsGrid__VxEbu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.github_newsGrid__VxEbu>:nth-last-child(-n+2):before{display:none}.github_results__NmHnf{padding-block:48px 80px}.github_results__NmHnf h1{font-size:48px;line-height:52px;font-weight:800;letter-spacing:-.03em;margin:0 0 16px}.github_resultSummary__kyd5v{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:40px;color:var(--blog-muted)}.github_resultSummary__kyd5v p{margin:0}.github_resultSummary__kyd5v button{color:var(--blog-blue)}.github_resultGrid__FKUvc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.github_resultGrid__FKUvc .github_card__VW7s_:before{display:none}.github_empty__5tz5N{padding-block:40px}.github_empty__5tz5N h2{font-size:24px;font-weight:600;margin-bottom:16px}.github_pagination__9C0Rc{display:flex;justify-content:space-between;gap:24px;margin-top:48px}@media (min-width:544px) and (max-width:1011px){.github_container__xAtmE{padding-inline:40px}}@media (max-width:1011px){.github_heroGrid__8u0eR,.github_newsGrid__VxEbu,.github_twoColumns__heETK{grid-template-columns:minmax(0,1fr)}.github_heroGrid__8u0eR{grid-auto-rows:auto}.github_heroGrid__8u0eR>:first-child{grid-row:auto}.github_heroGrid__8u0eR>.github_lead__e0EXw:before{display:block}.github_hero__YyiOF:before{bottom:-106px;height:360px;left:-11%;right:-11%}.github_engineeringLead__nVRex .github_cardTitle__Qm6MB,.github_lead__e0EXw .github_cardTitle__Qm6MB{font-size:40px;line-height:44px;letter-spacing:-.01em}.github_twoColumns__heETK{gap:80px}.github_engineering__nXiwY>.github_container__xAtmE,.github_feedSection__EfRqi,.github_news__gjqfR{position:relative;padding-bottom:64px}.github_sectionHeading__DlvoM>a{position:absolute;bottom:0;right:0}.github_engineering__nXiwY>.github_container__xAtmE>.github_sectionHeading__DlvoM>a,.github_news__gjqfR>.github_sectionHeading__DlvoM>a{right:40px}.github_news__gjqfR>.github_sectionHeading__DlvoM>a{bottom:48px}.github_news__gjqfR{padding-bottom:112px}.github_sectionHeading__DlvoM{position:static}.github_recommendedRows__FxGzM{gap:48px}.github_recommendedRows__FxGzM .github_card__VW7s_:before{inset-block-start:calc(100% + 24px)}.github_timeline__WITAo{padding:24px}.github_timelineAll__4O_dV{position:static;margin-top:32px}.github_timeline__WITAo ol{grid-template-columns:minmax(0,1fr)}.github_timeline__WITAo ol:before{inset:8px auto 0 4px;height:calc(100% - 8px);width:4px;background:linear-gradient(180deg,#ea6cb6 2.2%,#7a87ff 96.97%)}.github_timeline__WITAo li{padding:0 0 32px 36px}.github_timeline__WITAo li:before{top:4px}.github_timeline__WITAo li:last-child{padding-bottom:0}.github_engineeringGrid__lWPU4{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}.github_engineeringGrid__lWPU4>:first-child{grid-column:span 2;grid-row:auto}.github_engineeringGrid__lWPU4>.github_engineeringLead__nVRex:before{display:block}.github_engineeringLead__nVRex .github_image__hb8qi{aspect-ratio:1200/637}.github_spotlightGrid__ByjsN{grid-template-columns:minmax(0,1fr);padding-top:24px}.github_spotlightGrid__ByjsN>:first-child{grid-row:auto}.github_spotlightLead__m8ch9 .github_cardTitle__Qm6MB{font-size:20px;line-height:24px;letter-spacing:-.01em;font-weight:700}.github_collections__ECNCy,.github_spotlightSection__xGy0T{position:relative;padding-bottom:64px}.github_newsGrid__VxEbu>:nth-last-child(2):before{display:block}.github_resultGrid__FKUvc{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1012px){.github_collectionsGrid__72J6B{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.github_collectionsGrid__72J6B{grid-template-columns:minmax(0,1fr)}.github_collectionsGrid__72J6B article:not(:last-child){padding-bottom:24px;border-bottom:1px solid var(--blog-border)}}@media (max-width:767px){.github_engineeringLead__nVRex .github_image__hb8qi,.github_lead__e0EXw .github_image__hb8qi{margin-bottom:16px}.github_engineeringLead__nVRex .github_cardTitle__Qm6MB,.github_lead__e0EXw .github_cardTitle__Qm6MB{font-size:28px;line-height:32px}.github_engineeringGrid__lWPU4,.github_resultGrid__FKUvc{grid-template-columns:minmax(0,1fr)}.github_engineeringGrid__lWPU4>:first-child{grid-column:auto}.github_engineeringGrid__lWPU4>:nth-last-child(2):before{display:block}.github_results__NmHnf h1{font-size:28px;line-height:32px;letter-spacing:-.01em}}@media (max-width:543px){.github_row__SpIea{grid-template-columns:minmax(0,1fr);gap:16px}.github_row__SpIea .github_image__hb8qi{aspect-ratio:1200/637}.github_row__SpIea .github_cardBody__6NKYq{padding:0}.github_engineering__nXiwY>.github_container__xAtmE>.github_sectionHeading__DlvoM>a,.github_news__gjqfR>.github_sectionHeading__DlvoM>a{right:24px}.github_byline__fcI14{gap:12px}.github_pagination__9C0Rc,.github_resultSummary__kyd5v{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.github_collectionImage__ssoqm img,.github_image__hb8qi img,.github_sectionHeading__DlvoM>a:after,.github_sectionHeading__DlvoM>a:before,.github_timelineAll__4O_dV svg,.github_timelineAll__4O_dV svg path:last-child{transition:none}}@media (prefers-reduced-motion:no-preference){.github_timelineAll__4O_dV:is(:hover,:focus) svg{transform:translateX(4px)}.github_timelineAll__4O_dV:is(:hover,:focus) svg path:last-child{stroke-dashoffset:20}.github_timelineAll__4O_dV:active svg{transform:translateX(6px)}}