@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.patchr{--font-display:"Inter Variable", system-ui, sans-serif;--font-body:"Inter Variable", system-ui, sans-serif;--display-weight:800;--display-tracking:-.04em;--bg:light-dark(#f4f2fa,#0e0c1a);--bg-2:light-dark(#ece9f6,#141126);--surface:light-dark(#fff,#17142b);--text:light-dark(#17142b,#f4f2fa);--text-2:light-dark(#615d7a,#bdb7d9);--line:light-dark(#17142b1a,#bdb7d924);--line-strong:light-dark(#17142b38,#bdb7d94d);--hover-wash:light-dark(#17142b0d,#f4f2fa12);--accent:#ff5e8a;--accent-hover:#ff7ea1;--on-accent:#17142b;--accent-text:light-dark(#c81e57,#ff5e8a);--focus:light-dark(#c81e57,#ff5e8a);--glow-pink:light-dark(#ff5e8a29,#ff5e8a33);--glow-lilac:light-dark(#8b7cff29,#8b7cff38);--shadow:light-dark(#17142b38,#0000008c);--screen-radius:20px}:root[data-theme=light] .patchr{--grain:.03}.p-display,.p-h2{font-family:var(--font-display);letter-spacing:-.045em;font-weight:800}.p-display{font-size:clamp(2.75rem,4.8vw,4.25rem);line-height:1.02}.p-h2{max-width:18ch;font-size:clamp(2.1rem,4.2vw,3.5rem);line-height:1.06}.p-lead{color:var(--text-2);max-width:42ch;font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.5}.wordmark{letter-spacing:-.04em;align-items:center;gap:.55rem;font-size:1.4rem;font-weight:800;line-height:1;display:inline-flex}.wordmark__mark{width:30px}.nav__brand{margin-right:auto;text-decoration:none}.nav__cta{margin-left:.5rem}@media (width<=899px){.nav__sections{display:none}}@media (width<=420px){.nav__cta .icon{display:none}}.phero{isolation:isolate;padding-block:calc(var(--nav-h) + clamp(3rem, 9vh, 6rem)) clamp(3rem, 7vw, 5rem);position:relative;overflow:clip}.phero__glow{z-index:-1;pointer-events:none;background:radial-gradient(45% 55% at 85% 20%, var(--glow-pink), transparent 70%), radial-gradient(40% 50% at 55% 90%, var(--glow-lilac), transparent 70%);position:absolute;inset:0}.phero__grid{align-items:center;gap:clamp(3rem,6vw,5rem);display:grid}.phero__sub{margin-top:1.5rem}.phero__actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.phero__visual{justify-self:center;width:min(100%,520px);margin:0}.phero__caption{text-align:center;color:var(--text-2);margin-top:.9rem;font-size:.8125rem}.pfacts{border-top:1px solid var(--line);color:var(--text-2);flex-wrap:wrap;gap:.5rem 2.5rem;margin-top:clamp(3rem,6vw,4.5rem);padding:1.5rem 0 0;font-weight:550;list-style:none;display:flex}.pfacts li:first-child{color:var(--text)}@media (width>=960px){.phero__grid{grid-template-columns:7fr 5fr}}@media (prefers-reduced-motion:no-preference){.phero__copy>*{animation:p-fade .9s var(--ease-out) both}.phero__sub{animation-delay:80ms}.phero__actions{animation-delay:.16s}}@keyframes p-fade{0%{opacity:0;transform:translateY(14px)}}.dc{--dc-bg:#313338;--dc-card:#2b2d31;--dc-text:#dbdee1;--dc-strong:#f2f3f5;--dc-muted:#949ba4;--dc-link:#00a8fc;--dc-accent:#ff5e8a;border-radius:var(--screen-radius);background:var(--dc-bg);color:var(--dc-text);text-align:left;box-shadow:0 0 0 1px #ffffff0f, 0 40px 90px -30px var(--shadow);padding:1rem 1.25rem 1.25rem;font-size:15px;line-height:1.375}.dc--pulled{--dc-accent:#80848e}.dc__channel{color:var(--dc-strong);border-bottom:1px solid #ffffff12;margin-bottom:1rem;padding-bottom:.75rem;font-weight:600}.dc__channel span{color:var(--dc-muted);margin-right:.2rem;font-size:1.2em}.dc__msg{grid-template-columns:40px minmax(0,1fr);gap:14px;display:grid}.dc__avatar{border-radius:50%;width:40px;height:40px}.dc__head{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.4rem;display:flex}.dc__name{color:var(--dc-strong);font-weight:600}.dc__app{color:#fff;letter-spacing:.02em;background:#5865f2;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.dc__time{color:var(--dc-muted);font-size:12px}.dc__card{border-left:4px solid var(--dc-accent);background:var(--dc-card);border-radius:8px;padding:12px 16px 14px;transition:border-color .3s}.dc__sub{color:var(--dc-muted);font-size:12px}.dc__link,.dc__hash{color:var(--dc-link)}.dc__title{color:var(--dc-strong);margin-top:2px;font-size:20px;font-weight:700;line-height:1.25}.dc__pulled{margin-top:6px}.dc__pulled strong{color:var(--dc-strong)}.dc__sep{border:0;border-top:1px solid #ffffff14;margin:10px 0}.dc__h{color:var(--dc-strong);align-items:center;gap:6px;margin-top:8px;font-size:16px;font-weight:700;display:flex}.dc__h img{width:20px;height:20px}.dc__list{margin:4px 0 0;padding-left:1.2rem}.dc__list li+li{margin-top:2px}.dc__list li::marker{color:var(--dc-muted)}.dc__foot{color:var(--dc-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:12px;display:flex}.dc__foot img{border-radius:4px;width:16px;height:16px}.dc__buttons{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.dc__btn{color:#fff;background:#4e5058;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;font-weight:500;display:inline-flex}.dc__btn .icon{width:14px;height:14px}.dc--compact{padding:1rem;font-size:14px}.dc--compact .dc__channel{display:none}.dc--compact .dc__title{font-size:18px}@media (prefers-reduced-motion:no-preference){.dc--animate{animation:dc-arrive .9s var(--ease-out) .2s both}.dc--animate [style*=--i]{animation:dc-line .6s var(--ease-out) both;animation-delay:calc(.55s + var(--i) * 80ms)}}@keyframes dc-arrive{0%{opacity:0;transform:translateY(28px)scale(.98)}}@keyframes dc-line{0%{opacity:0;filter:blur(2px);transform:translateY(6px)}}.how__title{margin-bottom:clamp(2rem,5vw,4rem)}.how__grid{gap:2rem;display:grid}.how__stage{border-radius:var(--radius-card);background:radial-gradient(60% 60% at 80% 10%, var(--glow-pink), transparent 70%), radial-gradient(60% 60% at 10% 100%, var(--glow-lilac), transparent 70%), var(--bg-2);place-items:center;min-height:420px;padding:clamp(1.25rem,4vw,3rem);display:grid;position:relative;overflow:clip}.how__visual{opacity:0;filter:blur(4px);width:min(100%,440px);transition:opacity .45s var(--ease-out), transform .45s var(--ease-out), filter .45s var(--ease-out);grid-area:1/1;transform:translateY(12px)scale(.98)}.how__visual.is-active{opacity:1;filter:none;transform:none}.how__steps{gap:2rem;margin:0;padding:0;list-style:none;display:grid}.how__step-title{letter-spacing:-.03em;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:750;line-height:1.15}.how__step-text{color:var(--text-2);max-width:38ch;margin-top:.75rem}.how__step{position:relative}.is-live .how__step-title{color:var(--text-2);transition:color .3s}.is-live .how__step.is-active .how__step-title{color:var(--text)}.is-live .how__step:before{content:"";background:var(--accent);width:3px;height:4.5rem;transition:transform .35s var(--ease-out);border-radius:3px;margin-top:-2.25rem;position:absolute;top:50%;left:calc(-1*clamp(1rem,2vw,1.5rem));transform:scaleY(0)}.is-live .how__step.is-active:before{transform:scaleY(1)}@media (width>=900px){.how__grid{grid-template-columns:6fr 5fr;gap:clamp(3rem,6vw,6rem)}.how__grid.is-live .how__stage{top:calc(var(--nav-h) + 6vh);height:min(76svh,620px);position:sticky}.is-live .how__steps{gap:0}.is-live .how__step{flex-direction:column;justify-content:center;min-height:72svh;display:flex}}@media (width<=899px){.is-live .how__step:before{height:2.2rem;margin-top:0;top:2.1rem;left:-.7rem}.how__grid.is-live .how__stage{top:calc(var(--nav-h) + .5rem);z-index:2;height:50svh;min-height:0;box-shadow:0 0 0 12px var(--bg);position:sticky}.is-live .how__step{min-height:45svh;padding-top:2rem}.how__stage .dc{font-size:13px}}@media (prefers-reduced-motion:reduce){.how__visual{filter:none;transform:none}}.gh{border-radius:var(--screen-radius);border:1px solid var(--line);background:var(--surface);width:100%;box-shadow:0 40px 90px -30px var(--shadow);padding:1.5rem}.gh__repo{color:var(--text-2);align-items:center;gap:.5rem;font-size:.9375rem;font-weight:550;display:flex}.gh__tag{letter-spacing:-.04em;margin-top:.75rem;font-size:2.25rem;font-weight:800;line-height:1.1}.gh__status{color:var(--text-2);align-items:center;gap:.5rem;margin-top:.35rem;font-size:.9375rem;display:flex}.gh__latest{border:1px solid var(--line-strong);color:var(--text);border-radius:999px;padding:.05rem .6rem;font-size:.75rem;font-weight:650}.gh__notes{border-top:1px solid var(--line);color:var(--text-2);gap:.4rem;margin-top:1.25rem;padding-top:1rem;font-size:.9375rem;display:grid}.gh__h{color:var(--text);font-weight:700}.bento{gap:1rem;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.cell{border-radius:var(--radius-card);border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:.6rem;min-height:340px;padding:clamp(1.5rem,3vw,2.25rem);display:flex;position:relative;overflow:clip}.cell h3{letter-spacing:-.025em;font-size:1.375rem;font-weight:750;line-height:1.2}.cell p{color:var(--text-2);max-width:46ch}.cell__art{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:.75rem;min-height:140px;margin-bottom:1rem;display:flex}.cell--releases{background:radial-gradient(70% 90% at 90% 0%, var(--glow-pink), transparent 65%), var(--surface)}.cell--patch{color:#f4f2fa;background:radial-gradient(80% 80% at 100% 0,#ff5e8a38,#0000 60%),#17142b;border-color:#0000}.cell--patch p{color:#bdb7d9}.cell--announce{background:radial-gradient(70% 100% at 0% 100%, var(--glow-lilac), transparent 65%), var(--surface)}@media (width>=900px){.bento{grid-template-columns:repeat(3,minmax(0,1fr))}.cell--wide{grid-column:span 2}}.chip{border-radius:var(--radius-chip);border:1px solid var(--line);background:var(--bg);white-space:nowrap;align-items:center;gap:.5rem;padding:.6rem .95rem;font-size:.9375rem;font-weight:600;display:inline-flex}.chip--channel span{color:var(--text-2)}.flow{background:linear-gradient(90deg, var(--line-strong), var(--accent));border-radius:2px;flex:0 140px;height:2px;position:relative}.flow__dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 14px var(--accent);opacity:0;border-radius:50%;margin-top:-5px;position:absolute;top:50%;left:0}@media (width<=599px){.cell--releases .cell__art{flex-direction:column}.flow{flex:none;width:56px;margin-block:1.5rem;transform:rotate(90deg)}}.cell--patch .cell__art{flex-direction:column}.slash{border-radius:var(--radius-chip);color:#dbdee1;background:#383a40;align-items:center;gap:.6rem;width:min(100%,320px);padding:.75rem 1rem;font-size:.9375rem;display:flex}.slash__cmd{color:#fff;font-weight:700}.private{color:#bdb7d9;font-size:.8125rem}.badges{gap:1.5rem}.badge{justify-items:center;gap:.5rem;font-size:.9375rem;font-weight:600;display:grid}.badge img{width:56px;height:56px}.role{border-radius:var(--radius-chip);background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-text);padding:.45rem .8rem;font-weight:650}.chip--follow .icon{color:var(--accent-text)}.commands__inner{gap:clamp(2rem,5vw,4rem);display:grid}.commands__intro .p-lead{margin-top:1.25rem}.commands__list{gap:.75rem;margin:0;display:grid}.command{border-radius:var(--radius-card);border:1px solid var(--line);background:var(--surface);align-content:start;gap:.6rem;padding:1.35rem;display:grid}.command dt{flex-wrap:wrap;gap:.4rem;display:flex}.command code{border-radius:var(--radius-chip);background:color-mix(in srgb, var(--accent) 13%, transparent);color:var(--accent-text);padding:.3rem .6rem;font-family:ui-monospace,Cascadia Code,SF Mono,Consolas,monospace;font-size:.875rem;font-weight:600}.command dd{color:var(--text-2);margin:0}@media (width>=640px){.commands__list{grid-template-columns:1fr 1fr}.command:first-child{grid-column:1/-1}}@media (width>=900px){.commands__inner{grid-template-columns:5fr 7fr;align-items:start}.commands__intro{top:calc(var(--nav-h) + 2rem);position:sticky}}.selfhost__grid{align-items:center;gap:2.5rem;display:grid}.selfhost .p-lead{margin-top:1.25rem}.selfhost .text-link{margin-top:1.25rem;display:inline-block}.code{border-radius:var(--screen-radius);color:#f4f2fa;box-shadow:0 40px 90px -30px var(--shadow);background:#17142b;overflow:clip}.code__bar{color:#bdb7d9;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.6rem .6rem .6rem 1.25rem;font-size:.875rem;font-weight:550;display:flex}.code__copy{color:#f4f2fa;min-height:36px;transition:background-color .2s ease, transform .16s var(--ease-out);background:#ffffff12;border-radius:999px;grid-template-columns:16px auto;align-items:center;gap:.45rem;padding:0 .85rem;font-size:.875rem;font-weight:600;display:inline-grid}.code__copy:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.code__copy:hover{background:#ffffff21}}.code__icon{width:16px;height:16px;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), filter .2s var(--ease-out);grid-area:1/1}.code__icon--done,.is-copied .code__icon--copy{opacity:0;filter:blur(2px);transform:scale(.8)}.is-copied .code__icon--done{opacity:1;filter:none;color:var(--accent);transform:none}.code pre{margin:0;padding:1.25rem;font-family:ui-monospace,Cascadia Code,SF Mono,Consolas,monospace;font-size:.8125rem;line-height:1.8;overflow-x:auto}.code__line{white-space:pre;display:block}@media (width>=900px){.selfhost__grid{grid-template-columns:5fr 7fr}}.faq__inner{gap:2rem;display:grid}.faq__list{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;padding:1.25rem 0;font-size:1.125rem;font-weight:650;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq__icon{width:20px;height:20px;color:var(--text-2);transition:transform .25s var(--ease-out)}.faq details[open] .faq__icon{transform:rotate(45deg)}.faq__answer{max-width:60ch;color:var(--text-2);padding-bottom:1.35rem}.faq__answer a{color:var(--accent-text)}@media (prefers-reduced-motion:no-preference){.faq details[open] .faq__answer{animation:faq-in .3s var(--ease-out)}}@keyframes faq-in{0%{opacity:0;transform:translateY(-6px)}}@media (width>=900px){.faq__inner{grid-template-columns:5fr 7fr;align-items:start}}.cta{padding-top:0}.cta__band{padding:clamp(3.5rem, 8vw, 6.5rem) var(--gutter);border-radius:var(--radius-card);text-align:center;color:#f4f2fa;background:radial-gradient(55% 80% at 15% 0,#8b7cff66,#0000 65%),radial-gradient(55% 80% at 85% 100%,#ff5e8a61,#0000 65%),#17142b;justify-items:center;gap:1.75rem;display:grid;overflow:clip}.cta__band .p-h2{max-width:14ch}.cta__mark{width:84px}.cta__mark svg{overflow:visible}.pfooter{border-top:1px solid var(--line);padding-block:clamp(3rem,7vw,5rem) 2.5rem}.pfooter__inner{gap:2rem;display:grid}.pfooter__brand p{color:var(--text-2);margin-top:.6rem}.pfooter__links{flex-wrap:wrap;gap:.25rem 1.5rem;padding:0;font-weight:550;list-style:none;display:flex}.pfooter__links a{align-items:center;min-height:44px;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.pfooter__links a:hover{color:var(--accent-text)}}.pfooter__fine{color:var(--text-2);font-size:.875rem}@media (width>=900px){.pfooter__inner{grid-template-columns:1fr auto;align-items:start}.pfooter__fine{grid-column:1/-1}}
