@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.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 Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.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 Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.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 Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.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 Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.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}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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}@font-face{font-family:"Jersey 10";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jersey-10-latin-ext-400-normal.uIKqQSaG.woff2)format("woff2"),url(/_astro/jersey-10-latin-ext-400-normal.ByMh3OYd.woff)format("woff");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:"Jersey 10";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jersey-10-latin-400-normal.DrL73VYW.woff2)format("woff2"),url(/_astro/jersey-10-latin-400-normal.B8YT2i2g.woff)format("woff");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}.dg-fig{margin:2.2em 0}.dg-fig figcaption{font:400 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:0;color:var(--muted);margin-top:10px}.dg-scroll{border:1px solid var(--fg);background-color:color-mix(in srgb, var(--bg) 60%, transparent);background-image:radial-gradient(var(--line-soft) 1px, transparent 1.2px);background-size:28px 28px;overflow-x:auto}.dg{width:100%;min-width:640px;height:auto;display:block}.dg text{font-family:var(--sans);fill:var(--fg);letter-spacing:-.02em;font-size:16px}.dg text.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:0;font-size:11.5px}.dg text.code{font-family:var(--mono);text-transform:none;letter-spacing:0;font-size:12px}.dg text.mid{text-anchor:middle}.dg text.end{text-anchor:end}.dg text.halo{paint-order:stroke;stroke:var(--bg);stroke-width:5px;stroke-linejoin:round}.dg .muted{fill:var(--muted)}.dg .bad{fill:var(--danger)}.dg .ok{fill:var(--ok)}.dg .zone{fill:none;stroke:var(--fg);stroke-width:1px;stroke-dasharray:3 5;opacity:.55}.dg .boundary{stroke:var(--fg);stroke-width:1.4px;stroke-dasharray:7 6}.dg .box{fill:var(--bg);stroke:var(--fg);stroke-width:1.3px}.dg .lane{stroke:var(--line-soft);stroke-width:1.4px;fill:none}.dg .head{fill:var(--line-soft)}.dg .fl{stroke-width:2.2px;stroke-dasharray:6 6;fill:none;animation:.9s linear infinite dg-march}.dg .fl.bad{stroke:var(--danger)}.dg .fl.ok{stroke:var(--ok)}.dg .fl.neutral{stroke:var(--fg)}.dg .dot.bad{fill:var(--danger)}.dg .dot.ok{fill:var(--ok)}.dg .dot.neutral{fill:var(--fg)}@keyframes dg-march{to{stroke-dashoffset:-24px}}.dg-fig.is-offscreen .dg,.dg-fig.is-offscreen .dg *{animation-play-state:paused}.dg-acp{--dur:10s}.dg-guard{--dur:11s}.dg-git{--dur:12s}@keyframes acp-f1{0%,2.8%{opacity:0}4%,30%{opacity:1}31.2%,to{opacity:0}}@keyframes acp-f1d{0%,5%{transform:translate(0)}28%,to{transform:translate(300px)}}@keyframes acp-f2{0%,28.8%{opacity:0}30%,44%{opacity:1}45.2%,to{opacity:0}}@keyframes acp-f2d{0%,31%{transform:translateY(0)}42%,to{transform:translateY(58px)}}@keyframes acp-f3{0%,46.8%{opacity:0}48%,76%{opacity:1}77.2%,to{opacity:0}}@keyframes acp-f3d{0%,49%{transform:translate(0)}74%,to{transform:translate(-300px)}}@keyframes acp-run{0%,40.5%{stroke:var(--fg);fill:var(--bg)}42%,90%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}91.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes acp-runoff{0%,40.5%{opacity:1}42%,90%{opacity:0}91.5%,to{opacity:1}}@keyframes acp-runon{0%,40.5%{opacity:0}42%,90%{opacity:1}91.5%,to{opacity:0}}@keyframes g-a{0%,1.8%{opacity:0}3%,26%{opacity:1}27.2%,to{opacity:0}}@keyframes g-ad{0%,4%{transform:translate(0)}24%,to{transform:translate(300px)}}@keyframes g-b{0%,30.8%{opacity:0}32%,50%{opacity:1}51.2%,to{opacity:0}}@keyframes g-bd{0%,33%{transform:translate(0)}48%,to{transform:translate(172px)}}@keyframes g-flash{0%,46.5%{stroke:var(--fg);fill:var(--bg)}48%,62%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}63.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes g-x{0%,46.8%{opacity:0}48%,62%{opacity:1}63.2%,to{opacity:0}}@keyframes g-c{0%,50.8%{opacity:0}52%,70%{opacity:1}71.2%,to{opacity:0}}@keyframes g-cd{0%,53%{transform:translate(0)}68%,to{transform:translate(-182px)}}@keyframes g-d{0%,68.8%{opacity:0}70%,84%{opacity:1}85.2%,to{opacity:0}}@keyframes g-dd{0%,71%{transform:translateY(0)}82%,to{transform:translateY(58px)}}@keyframes g-vm{0%,80.5%{stroke:var(--fg);fill:var(--bg)}82%,96%{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 12%, var(--bg))}97.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes g-vmoff{0%,80.5%{opacity:1}82%,96%{opacity:0}97.5%,to{opacity:1}}@keyframes g-vmon{0%,80.5%{opacity:0}82%,96%{opacity:1}97.5%,to{opacity:0}}@keyframes g-hoff{0%,48.5%{opacity:1}50%,96%{opacity:0}97.5%,to{opacity:1}}@keyframes g-hon{0%,48.5%{opacity:0}50%,96%{opacity:1}97.5%,to{opacity:0}}@keyframes s-f1{0%,2.8%{opacity:0}4%,24%{opacity:1}25.2%,to{opacity:0}}@keyframes s-f1d{0%,5%{transform:translate(0)}22%,to{transform:translate(157px)}}@keyframes s-gitA{0%,22%{opacity:1}24%,94%{opacity:0}96%,to{opacity:1}}@keyframes s-gitB{0%,22%{opacity:0}24%,94%{opacity:1}96%,to{opacity:0}}@keyframes s-gitbox{0%,22%{stroke:var(--fg);fill:var(--bg)}24%,94%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}96%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes s-f2{0%,42.8%{opacity:0}44%,60%{opacity:1}61.2%,to{opacity:0}}@keyframes s-f2d{0%,45%{transform:translate(0)}58%,to{transform:translate(-157px)}}@keyframes s-f3{0%,58.8%{opacity:0}60%,70%{opacity:1}71.2%,to{opacity:0}}@keyframes s-f3d{0%,61%{transform:translateY(0)}68%,to{transform:translateY(56px)}}@keyframes s-run{0%,66.5%{stroke:var(--fg);fill:var(--bg)}68%,92%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}93.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes s-runoff{0%,66.5%{opacity:1}68%,92%{opacity:0}93.5%,to{opacity:1}}@keyframes s-runon{0%,66.5%{opacity:0}68%,92%{opacity:1}93.5%,to{opacity:0}}@keyframes b-f1{0%,2.8%{opacity:0}4%,16%{opacity:1}17.2%,to{opacity:0}}@keyframes b-f1d{0%,5%{transform:translate(0)}15%,to{transform:translate(157px)}}@keyframes b-f2{0%,18.8%{opacity:0}20%,32%{opacity:1}33.2%,to{opacity:0}}@keyframes b-f2d{0%,21%{transform:translate(0)}31%,to{transform:translate(157px)}}@keyframes b-f3{0%,34.8%{opacity:0}36%,48%{opacity:1}49.2%,to{opacity:0}}@keyframes b-f3d{0%,37%{transform:translate(0)}47%,to{transform:translate(157px)}}@keyframes b-cbox{0%,13.8%{stroke:var(--fg);fill:var(--bg)}15%,94%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}95.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes b-ebox{0%,32.8%{stroke:var(--fg);fill:var(--bg)}34%,94%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}95.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes b-abox{0%,48.8%{stroke:var(--fg);fill:var(--bg)}50%,94%{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}95.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes b-runoff{0%,48.8%{opacity:1}50%,94%{opacity:0}95.5%,to{opacity:1}}@keyframes b-runon{0%,48.8%{opacity:0}50%,94%{opacity:1}95.5%,to{opacity:0}}.dg-bad{--dur:9s}.dg-bad .f1{animation:b-f1 var(--dur) linear infinite;opacity:0}.dg-bad .f1 .dot{animation:b-f1d var(--dur) linear infinite}.dg-bad .f2{animation:b-f2 var(--dur) linear infinite;opacity:0}.dg-bad .f2 .dot{animation:b-f2d var(--dur) linear infinite}.dg-bad .f3{animation:b-f3 var(--dur) linear infinite;opacity:0}.dg-bad .f3 .dot{animation:b-f3d var(--dur) linear infinite}.dg-bad .credbox{animation:b-cbox var(--dur) linear infinite}.dg-bad .egbox{animation:b-ebox var(--dur) linear infinite}.dg-bad .atkbox{animation:b-abox var(--dur) linear infinite}.dg-bad .run-off{animation:b-runoff var(--dur) linear infinite;opacity:1}.dg-bad .run-on{animation:b-runon var(--dur) linear infinite;opacity:0}@keyframes k-f1{0%,2.8%{opacity:0}4%,16%{opacity:1}17.2%,to{opacity:0}}@keyframes k-f1d{0%,5%{transform:translate(0)}15%,to{transform:translate(157px)}}@keyframes k-f2{0%,18.8%{opacity:0}20%,32%{opacity:1}33.2%,to{opacity:0}}@keyframes k-f2d{0%,21%{transform:translate(0)}31%,to{transform:translate(157px)}}@keyframes k-f3{0%,33.8%{opacity:0}35%,48%{opacity:1}49.2%,to{opacity:0}}@keyframes k-f3d{0%,36%{transform:translate(0)}47%,to{transform:translate(157px)}}@keyframes k-f4{0%,52.8%{opacity:0}54%,62%{opacity:1}63.2%,to{opacity:0}}@keyframes k-f4d{0%,55%{transform:translate(0)}61%,to{transform:translate(66px)}}@keyframes k-cbox{0%,13.8%{stroke:var(--fg);fill:var(--bg)}15%,94%{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 12%, var(--bg))}95.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes k-ebox{0%,31.8%{stroke:var(--fg);fill:var(--bg)}33%,94%{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 12%, var(--bg))}95.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes k-abox{0%,46.8%{stroke:var(--fg);fill:var(--bg)}48%,94%{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 12%, var(--bg))}95.5%,to{stroke:var(--fg);fill:var(--bg)}}@keyframes k-blk{0%,61.8%{opacity:0}63%,94%{opacity:1}95.5%,to{opacity:0}}.dg-good{--dur:12s}.dg-good .f1{animation:k-f1 var(--dur) linear infinite;opacity:0}.dg-good .f1 .dot{animation:k-f1d var(--dur) linear infinite}.dg-good .f2{animation:k-f2 var(--dur) linear infinite;opacity:0}.dg-good .f2 .dot{animation:k-f2d var(--dur) linear infinite}.dg-good .f3{animation:k-f3 var(--dur) linear infinite;opacity:0}.dg-good .f3 .dot{animation:k-f3d var(--dur) linear infinite}.dg-good .f4{animation:k-f4 var(--dur) linear infinite;opacity:0}.dg-good .f4 .dot{animation:k-f4d var(--dur) linear infinite}.dg-good .credbox{animation:k-cbox var(--dur) linear infinite}.dg-good .egbox{animation:k-ebox var(--dur) linear infinite}.dg-good .apibox{animation:k-abox var(--dur) linear infinite}.dg-good .blk{animation:k-blk var(--dur) linear infinite;opacity:0}.dg .xmark{stroke:var(--danger);stroke-width:2.4px;stroke-linecap:round}.dg .zone.boundary{stroke-width:1.6px;stroke-dasharray:7 6;opacity:1}.dg .zone.none{stroke:var(--danger);opacity:.75}.dg .box.ghost{stroke-dasharray:4 4}.dg-map{--dur:1s}.dg .ring{fill:none;stroke:var(--line-soft);stroke-width:1px}.dg .ring.outer{stroke:var(--fg);stroke-dasharray:3 5;opacity:.55}.dg .spoke{stroke:var(--line-soft);stroke-width:1px}.dg .radar{stroke-width:2.2px;stroke-linejoin:round}.dg .radar.fg{stroke:var(--fg);fill:color-mix(in srgb, var(--fg) 10%, transparent)}.dg .radar.bad{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 14%, transparent)}.dg .radar.ok{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 14%, transparent)}.dg .radar.cmp{fill:none;stroke:var(--muted);stroke-dasharray:6 5;stroke-width:1.8px}.dg .cmpkey{stroke:var(--muted);stroke-dasharray:6 5;stroke-width:1.8px}.dg .rdot.fg{fill:var(--fg)}.dg .rdot.bad{fill:var(--danger)}.dg .rdot.ok{fill:var(--ok)}.dg .seg{fill:none;stroke:var(--line-soft);stroke-width:1.2px}.dg .seg.on{stroke:none}.dg .seg.on.fg{fill:var(--fg)}.dg .seg.on.bad{fill:var(--danger)}.dg .seg.on.ok{fill:var(--ok)}.dg text.big{letter-spacing:-.04em;font-size:44px}.dg text.tick{font-size:10px}.dg-acp .f1{animation:acp-f1 var(--dur) linear infinite;opacity:0}.dg-acp .f1 .dot{animation:acp-f1d var(--dur) linear infinite}.dg-acp .f2{animation:acp-f2 var(--dur) linear infinite;opacity:0}.dg-acp .f2 .dot{animation:acp-f2d var(--dur) linear infinite}.dg-acp .f3{animation:acp-f3 var(--dur) linear infinite;opacity:0}.dg-acp .f3 .dot{animation:acp-f3d var(--dur) linear infinite}.dg-acp .runbox{animation:acp-run var(--dur) linear infinite}.dg-acp .run-off{animation:acp-runoff var(--dur) linear infinite;opacity:1}.dg-acp .run-on{animation:acp-runon var(--dur) linear infinite;opacity:0}.dg-guard .fa{animation:g-a var(--dur) linear infinite;opacity:0}.dg-guard .fa .dot{animation:g-ad var(--dur) linear infinite}.dg-guard .fb{animation:g-b var(--dur) linear infinite;opacity:0}.dg-guard .fb .dot{animation:g-bd var(--dur) linear infinite}.dg-guard .guardbox{animation:g-flash var(--dur) linear infinite}.dg-guard .blocked{animation:g-x var(--dur) linear infinite;opacity:0}.dg-guard .fc{animation:g-c var(--dur) linear infinite;opacity:0}.dg-guard .fc .dot{animation:g-cd var(--dur) linear infinite}.dg-guard .fd{animation:g-d var(--dur) linear infinite;opacity:0}.dg-guard .fd .dot{animation:g-dd var(--dur) linear infinite}.dg-guard .vmbox{animation:g-vm var(--dur) linear infinite}.dg-guard .vm-off{animation:g-vmoff var(--dur) linear infinite;opacity:1}.dg-guard .vm-on{animation:g-vmon var(--dur) linear infinite;opacity:0}.dg-guard .host-off{animation:g-hoff var(--dur) linear infinite;opacity:1}.dg-guard .host-on{animation:g-hon var(--dur) linear infinite;opacity:0}.dg-git .f1{animation:s-f1 var(--dur) linear infinite;opacity:0}.dg-git .f1 .dot{animation:s-f1d var(--dur) linear infinite}.dg-git .gitA{animation:s-gitA var(--dur) linear infinite;opacity:1}.dg-git .gitB{animation:s-gitB var(--dur) linear infinite;opacity:0}.dg-git .gitbox{animation:s-gitbox var(--dur) linear infinite}.dg-git .f2{animation:s-f2 var(--dur) linear infinite;opacity:0}.dg-git .f2 .dot{animation:s-f2d var(--dur) linear infinite}.dg-git .f3{animation:s-f3 var(--dur) linear infinite;opacity:0}.dg-git .f3 .dot{animation:s-f3d var(--dur) linear infinite}.dg-git .runbox{animation:s-run var(--dur) linear infinite}.dg-git .run-off{animation:s-runoff var(--dur) linear infinite;opacity:1}.dg-git .run-on{animation:s-runon var(--dur) linear infinite;opacity:0}@media (prefers-reduced-motion:reduce){.dg,.dg *{animation:none!important}.dg-acp .f1{opacity:1}.dg-acp .f1 .dot{display:none}.dg-acp .f2{opacity:1}.dg-acp .f2 .dot{display:none}.dg-acp .f3{opacity:1}.dg-acp .f3 .dot{display:none}.dg-acp .runbox{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}.dg-acp .run-off{opacity:0}.dg-acp .run-on,.dg-guard .fa{opacity:1}.dg-guard .fa .dot{display:none}.dg-guard .fb{opacity:1}.dg-guard .fb .dot{display:none}.dg-guard .guardbox{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}.dg-guard .blocked,.dg-guard .fc{opacity:1}.dg-guard .fc .dot{display:none}.dg-guard .fd{opacity:1}.dg-guard .fd .dot{display:none}.dg-guard .vmbox{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 12%, var(--bg))}.dg-guard .vm-off{opacity:0}.dg-guard .vm-on{opacity:1}.dg-guard .host-off{opacity:0}.dg-guard .host-on,.dg-git .f1{opacity:1}.dg-git .f1 .dot{display:none}.dg-git .gitA{opacity:0}.dg-git .gitB{opacity:1}.dg-git .gitbox{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}.dg-git .f2{opacity:1}.dg-git .f2 .dot{display:none}.dg-git .f3{opacity:1}.dg-git .f3 .dot{display:none}.dg-git .runbox{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}.dg-git .run-off{opacity:0}.dg-git .run-on{opacity:1}.dg-guard .fa{opacity:0!important}.dg-bad .f1,.dg-bad .f2,.dg-bad .f3{opacity:1}.dg-bad .dot,.dg-good .dot{display:none}.dg-bad .credbox,.dg-bad .egbox,.dg-bad .atkbox{stroke:var(--danger);fill:color-mix(in srgb, var(--danger) 12%, var(--bg))}.dg-bad .run-off{opacity:0}.dg-bad .run-on,.dg-good .f1,.dg-good .f2,.dg-good .f3,.dg-good .f4,.dg-good .blk{opacity:1}.dg-good .credbox,.dg-good .egbox,.dg-good .apibox{stroke:var(--ok);fill:color-mix(in srgb, var(--ok) 12%, var(--bg))}}:root{--bg:#f6f5f2;--fg:#181818;--muted:#6b6a68;--line:#181818;--line-soft:#1818182e;--chip:#18181812;--glow-a:#f1e8f6;--glow-b:#e6f1ea;--danger:#c8341f;--ok:#1f7a4d;--warn:#b7791f;--warn-bg:#eab30829;--sans:"Inter Tight Variable", "Inter Tight", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--pixel:"Jersey 10", var(--mono);--pad:clamp(16px, 2vw, 32px);color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#121211;--fg:#f1f0ec;--muted:#9a9993;--line:#f1f0ec;--line-soft:#f1f0ec33;--chip:#f1f0ec17;--glow-a:#231b2b;--glow-b:#16231c;--danger:#ff6b55;--ok:#4ecb8d;--warn:#e5b53d;--warn-bg:#eab30824}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font:300 17px/1.3 var(--sans);letter-spacing:-.02em;-webkit-font-smoothing:antialiased;min-height:100vh;margin:0}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(1100px 700px at 85% 0%, var(--glow-a), transparent 65%), radial-gradient(900px 700px at 0% 100%, var(--glow-b), transparent 65%);position:fixed;inset:0}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}h1,h2,h3,p{margin:0}::selection{background:var(--fg);color:var(--bg)}:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.page{padding:72px var(--pad) 0;max-width:1800px;margin:0 auto;position:relative}.skip{position:absolute;left:-999px}.skip:focus{z-index:20;background:var(--bg);padding:6px 10px;top:8px;left:8px}.mono,.label,.chip,.kbd{font-family:var(--mono);text-transform:uppercase;letter-spacing:0;font-weight:400}.label{border-bottom:1px solid var(--line);justify-content:space-between;margin-bottom:20px;padding-bottom:8px;font-size:12px;display:flex}.label:before{content:"/ ";white-space:pre}.label>span:first-child{flex:1}.chip{background:var(--chip);border:1px solid var(--line-soft);border-radius:3px;padding:1px 6px;font-size:11.5px;line-height:1.5;display:inline-block}.tagrow{flex-wrap:wrap;gap:4px;display:flex}.topbar{z-index:10;top:16px;left:var(--pad);right:var(--pad);pointer-events:none;justify-content:space-between;display:flex;position:fixed}.topbar nav{pointer-events:auto;flex-wrap:wrap;gap:4px;display:flex}.kbd{background:var(--chip);-webkit-backdrop-filter:blur(10px);border-radius:4px;padding:5px 9px;font-size:12px}.kbd:hover,.kbd[aria-current=page]{background:var(--fg);color:var(--bg)}.topbar .right{pointer-events:auto}.logo-chip{place-items:center;width:34px;padding:0;display:grid}.logo-chip svg{fill:currentColor;width:14px;height:14px}.hero{padding:24px 0 72px;position:relative}.hero h1{letter-spacing:-.065em;margin-left:-.04em;font-size:clamp(3.6rem,14.5vw,14rem);font-weight:400;line-height:.86}.hero h1 .px{font-family:var(--pixel);letter-spacing:-.02em;font-size:1.04em;font-weight:400}.hero p.lead{letter-spacing:-.055em;max-width:25em;margin-top:clamp(24px,4vw,56px);font-size:clamp(1.5rem,3.6vw,3.1rem);line-height:.98}.xh{font:400 14px var(--mono);pointer-events:none;justify-content:space-between;padding:0 2px;display:flex;position:absolute;left:0;right:0}.xh span:nth-child(2){margin-left:18%}.xh span:nth-child(3){margin-left:auto;margin-right:6%}.xh.top{top:0}.xh.bottom{bottom:0}.globe{display:flex;position:absolute;top:24px;right:0}.globe span{border:1.5px solid var(--fg);width:44px;height:44px;font:400 11px var(--mono);border-radius:50%;place-items:center;margin-left:-2px;display:grid}section{margin-top:clamp(40px,6vw,88px)}.big{letter-spacing:-.065em;align-items:flex-start;margin-bottom:clamp(24px,3vw,44px);font-size:clamp(3.2rem,11vw,9rem);font-weight:400;line-height:.9;display:flex}.big sup{letter-spacing:-.02em;margin:.5em 0 0 .3em;font-size:.16em;line-height:1}.pill{border:1px solid var(--fg);letter-spacing:-.03em;height:36px;color:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:0 20px;font-size:14px;font-weight:500;display:flex}.pill:hover{background:var(--fg);color:var(--bg)}.arrow:after{content:"↗";margin-left:.25em;font-weight:400}.fig{border:1px solid var(--fg);background:color-mix(in srgb, var(--bg) 70%, transparent);width:100%}.fig .bar{font:400 9.5px var(--mono);text-transform:uppercase;background:var(--chip);border-bottom:1px solid var(--fg);justify-content:space-between;align-items:center;padding:2px 6px;display:flex}.fig .bar svg{stroke:currentColor;fill:none;stroke-width:1.3px;width:12px;height:12px}.fig .canvas{border:1px solid var(--fg);aspect-ratio:1;background-image:radial-gradient(var(--line-soft) 1px, transparent 1.2px);background-position:14px 14px;background-size:28px 28px;margin:4px}.fig .canvas svg{width:100%;height:100%}.fig path{fill:none;stroke:var(--fg);stroke-width:.6px;vector-effect:non-scaling-stroke;stroke-width:1px}.featured{grid-template-columns:1fr 1fr;display:grid}.featured>div{padding:0 var(--pad) 40px 0}.featured>div+div{padding:0 0 40px var(--pad);border-left:1px dotted var(--fg)}.feat{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.feat h3{letter-spacing:-.055em;font-size:clamp(1.5rem,2.4vw,2.2rem);font-weight:400;line-height:1.02}.feat p{letter-spacing:-.045em;-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:18px 0 16px;font-size:1.15rem;line-height:1.05;display:-webkit-box;overflow:hidden}.feat .tagrow{margin-bottom:16px}.ticker{border-bottom:0;overflow:hidden}.ticker .track{width:max-content;font:400 12px var(--mono);text-transform:uppercase;white-space:nowrap;animation:40s linear infinite tick;display:flex}.ticker .item{border-right:1px dotted var(--fg);align-items:center;gap:8px;padding:0 18px;display:flex}@keyframes tick{to{transform:translate(-50%)}}.directory{grid-template-columns:minmax(220px,24%) 1fr;align-items:start;gap:clamp(24px,4vw,80px);display:grid}.filters .cols{grid-template-columns:1fr 1fr;gap:16px;font-size:14px;display:grid}.filters h4{font:400 14px var(--sans);margin:0 0 8px}.filters label{color:var(--muted);cursor:pointer;align-items:center;gap:8px;padding:2px 0;font-size:13.5px;display:flex}.filters label:has(input:checked){color:var(--fg)}.filters input{appearance:none;border:1px solid var(--muted);border-radius:2px;flex:none;width:12px;height:12px;margin:0}.filters input:checked{background:var(--fg);border-color:var(--fg)}.clear{color:inherit;cursor:pointer;font:inherit;text-transform:uppercase;background:0 0;border:0;padding:0}.filters .fig{max-width:360px;margin-top:32px}.rows{border-top:1px solid var(--fg);margin:0;padding:0;list-style:none}.rows .head{font:400 12px var(--mono);text-transform:uppercase;border-bottom:0;grid-template-columns:110px 1fr 90px 40px;padding:0 0 8px;display:grid}.row a{border-bottom:1px solid var(--fg);grid-template-columns:110px 1fr 90px 40px;align-items:center;gap:8px;padding:12px 0;display:grid}.row .date{font:400 12px var(--mono);align-items:center;gap:8px;display:flex}.row .date:before{content:"";background:var(--fg);flex:none;width:7px;height:7px}.row .name{letter-spacing:-.05em;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.15rem,2vw,1.75rem);line-height:1.05;overflow:hidden}.row .plus{text-align:right;font:400 16px var(--mono)}.row a:hover{background:var(--chip)}.row[hidden]{display:none}.empty{font:400 12px var(--mono);text-transform:uppercase;color:var(--muted);padding:24px 0}.help{grid-template-columns:1fr 1fr;gap:0 clamp(24px,6vw,96px);display:grid}.help>div,.help .label{margin-bottom:36px}.help p{letter-spacing:-.055em;max-width:14em;margin-bottom:28px;font-size:clamp(1.5rem,2.6vw,2.3rem);line-height:1}.help strong{font-weight:600}.help .eg{font:400 12px var(--mono);text-transform:uppercase;border-bottom:1px dotted var(--fg);white-space:nowrap;align-items:center;gap:8px;margin-bottom:20px;padding:0 0 12px;display:flex;overflow:hidden}.help .eg:before{content:"";background:var(--fg);flex:none;width:7px;height:7px}.help .eg b{background:linear-gradient(90deg, var(--fg) 50%, transparent 50%) right / 8px 1em repeat-x;font-weight:400}.article-grid>*,.directory>*{min-width:0}.article-head{padding:24px 0 40px}.article-head h1{letter-spacing:-.06em;max-width:14em;margin:20px 0;font-size:clamp(2.6rem,8vw,7rem);font-weight:400;line-height:.92}.article-head p.lead{max-width:28em;color:var(--muted);font-size:clamp(1.2rem,2vw,1.8rem);line-height:1.05}.article-grid{grid-template-columns:minmax(200px,24%) minmax(0,720px);gap:clamp(24px,4vw,80px);padding-bottom:96px;display:grid}.prose{letter-spacing:-.015em;font-size:1.15rem;line-height:1.5}.prose>*+*{margin-top:1.1em}.prose h2{letter-spacing:-.05em;margin-top:1.8em;font-size:2rem;font-weight:400;line-height:1}.prose h3{font-size:1.3rem;font-weight:500}.prose a{text-underline-offset:3px;text-decoration:underline}.prose code:not(pre code){font:.86em var(--mono);background:var(--chip);border:1px solid var(--line-soft);border-radius:3px;padding:.08em .35em}.prose pre{border:1px solid var(--fg);font:13px/1.6 var(--mono);letter-spacing:0;padding:16px 18px;overflow-x:auto}.prose blockquote{border-left:1px solid var(--fg);color:var(--muted);margin-left:0;padding-left:20px}.prose img{border:1px solid var(--fg)}.prose h3{margin-top:1.6em}.prose table{border-collapse:collapse;width:100%;font-size:.92rem;line-height:1.3;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line-soft);padding:8px 12px 8px 0}.prose th{font:400 11.5px var(--mono);text-transform:uppercase;border-bottom:1px solid var(--fg);white-space:nowrap}.prose ul.contains-task-list{padding-left:0;list-style:none}.prose li.task-list-item input{accent-color:var(--fg);margin-right:.6em}.prose li+li{margin-top:.5em}.astro-code{background-color:color-mix(in srgb, var(--bg) 60%, transparent)!important}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important}}.prose :is(h2,h3){scroll-margin-top:84px}.toc-col{position:relative}.toc{scrollbar-width:none;max-height:calc(100vh - 110px);padding-bottom:24px;position:sticky;top:76px;overflow-y:auto}.toc::-webkit-scrollbar{display:none}.toc ol,.toc ul,.toc-inline ol,.toc-inline ul{margin:0;padding:0;list-style:none}.toc .label{margin-bottom:12px}.toc a,.toc-inline a{color:var(--muted);letter-spacing:-.02em;line-height:1.2;display:block}.toc a{border-left:1px solid var(--line-soft);margin-left:0;padding:5px 0 5px 14px;font-size:14px}.toc a:hover,.toc-inline a:hover{color:var(--fg)}.toc a[data-active]{color:var(--fg);border-left:2px solid var(--fg);padding-left:13px}.toc .h3 a{padding-left:28px;font-size:13px}.toc .h3 a[data-active]{padding-left:27px}.toc.js li.h2>ul{display:none}.toc.js li.h2[data-open]>ul{display:block}.toc-inline{border:1px solid var(--fg);background:color-mix(in srgb, var(--bg) 60%, transparent);margin:0 0 32px}.toc-inline summary{cursor:pointer;font:400 12px var(--mono);text-transform:uppercase;justify-content:space-between;padding:10px 12px;list-style:none;display:flex}.toc-inline summary::-webkit-details-marker{display:none}.toc-inline summary:before{content:"/ ";white-space:pre}.toc-inline summary span{flex:1}.toc-inline summary:after{content:"+"}.toc-inline[open] summary:after{content:"−"}.toc-inline nav{border-top:1px solid var(--line-soft);padding:0 12px 12px}.toc-inline a{padding:6px 0;font-size:15px}.toc-inline .h3 a{padding-left:16px;font-size:14px}@media (width>=1180px){.article-grid.has-toc{grid-template-columns:minmax(180px,20%) minmax(0,720px) minmax(170px,240px)}.toc-inline{display:none}}@media (width<=1179px){.toc-col{display:none}}dl.meta{font:400 12px var(--mono);text-transform:uppercase;gap:14px;margin:0;display:grid}dl.meta dt{color:var(--muted)}dl.meta dd{margin:2px 0 0}.alert{background:var(--warn-bg);border:1px solid var(--warn);border-left-width:4px;border-radius:3px;margin:0 0 32px;padding:14px 18px 16px}.alert-label{font:400 12px var(--mono);text-transform:uppercase;color:var(--warn);margin-bottom:6px;display:block}.alert-label:before{content:"/ ";white-space:pre}.alert p{margin:0;font-size:16px;line-height:1.4}.footer{margin-top:clamp(64px,9vw,140px);padding-bottom:28px;position:relative}.footer .xh{justify-content:space-between;margin-bottom:4px;display:flex;position:static}.footer .xh span{margin:0!important}.footer .cols{border-top:1px solid var(--fg);font:400 12px var(--mono);text-transform:uppercase;grid-template-columns:1fr 1fr 1fr;gap:16px;padding-top:10px;display:grid}.footer .cols a:hover{text-decoration:underline}.footer .cols div{flex-direction:column;gap:4px;display:flex}.footer .cols div>span:first-child:before{content:"/ "}.footer .cols div>span:first-child{margin-bottom:8px}@media (width<=900px){.featured,.directory,.help,.article-grid{grid-template-columns:minmax(0,1fr)}.featured>div,.featured>div+div{border-left:0;padding:0 0 32px}.feat{grid-template-columns:1fr}.feat .fig{max-width:420px}.globe{display:none}.row a,.rows .head{grid-template-columns:84px 1fr 28px}.row .type,.rows .head span:nth-child(3),.topbar .right{display:none}.footer .cols{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.ticker .track{animation:none}html{scroll-behavior:auto}}
