.src:where(.astro-za4yxs27){flex:none}.how:where(.astro-477lk3b5){padding:7.5rem 0 0}.wrap:where(.astro-477lk3b5){width:min(76rem,100% - 3rem);margin-inline:auto}.eyebrow:where(.astro-477lk3b5){color:var(--accent);margin:0 0 .75rem;font-size:.8125rem;font-weight:600}h2:where(.astro-477lk3b5){letter-spacing:-.035em;text-wrap:balance;max-width:40rem;margin:0 0 3rem;font-size:clamp(1.875rem,3.4vw,2.75rem);font-weight:650;line-height:1.1}code:where(.astro-477lk3b5){font-family:var(--mono)}.arrow:where(.astro-477lk3b5){color:var(--accent);font-weight:550;text-decoration:none}.arrow:where(.astro-477lk3b5):hover{text-decoration:underline}.vs:where(.astro-477lk3b5){grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1rem;display:grid}.col:where(.astro-477lk3b5){border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;min-width:0;padding:1.75rem}.hi:where(.astro-477lk3b5){border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:linear-gradient(180deg, var(--accent-soft), var(--surface) 65%);flex-direction:column;display:flex}.lab:where(.astro-477lk3b5){color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;margin:0 0 1rem;font-size:.75rem;font-weight:600}.hi:where(.astro-477lk3b5) .lab:where(.astro-477lk3b5){color:var(--accent)}.vs:where(.astro-477lk3b5) pre:where(.astro-477lk3b5){font:.8125rem/1.85 var(--mono);margin:0;overflow-x:auto}.vs:where(.astro-477lk3b5) pre:where(.astro-477lk3b5) span:where(.astro-477lk3b5),.vs:where(.astro-477lk3b5) pre:where(.astro-477lk3b5) i:where(.astro-477lk3b5){color:var(--text-3);font-style:normal}.col:where(.astro-477lk3b5):not(.hi) pre:where(.astro-477lk3b5){color:var(--text-2)}.hi:where(.astro-477lk3b5) pre:where(.astro-477lk3b5){font-size:.875rem}.hi:where(.astro-477lk3b5) pre:where(.astro-477lk3b5) span:where(.astro-477lk3b5){color:var(--accent)}.perks:where(.astro-477lk3b5){border-top:1px solid var(--line);gap:.625rem;margin:1.75rem 0;padding:1.5rem 0 0;font-size:.9375rem;list-style:none;display:grid}.perks:where(.astro-477lk3b5) li:where(.astro-477lk3b5){gap:.625rem;display:flex}.perks:where(.astro-477lk3b5) li:where(.astro-477lk3b5):before{content:"✓";color:var(--accent);font-weight:700}.perks:where(.astro-477lk3b5) code:where(.astro-477lk3b5){font-size:.875em}.hi:where(.astro-477lk3b5) .arrow:where(.astro-477lk3b5){margin-top:auto;font-size:.9375rem}@media (width<=60rem){.vs:where(.astro-477lk3b5){grid-template-columns:minmax(0,1fr)}}.gl{color:#d4d4d4;cursor:default;user-select:none;background:#111;display:block;position:relative;container-type:inline-size}.gl .gl-grid{font-family:Iosevka Live,ui-monospace,Menlo,monospace;font-size:calc(100cqw / (var(--cols) * var(--adv,.5)));font-variant-ligatures:none;font-kerning:none;white-space:pre;-webkit-font-smoothing:antialiased;padding:1.25ch;line-height:2.6ch;position:relative}.gl .r{contain:strict;height:2.6ch;overflow:hidden}.gl .r span{vertical-align:top;height:100%;display:inline-block;overflow:hidden}.gl .r .g,.gl .r .rg{overflow:visible}.gl .r .g{text-align:center}.gl .g i{font-style:normal;position:relative}.gl .e i{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:.86em}.gl .g svg{vertical-align:-.14em;width:.95em;height:.95em}.gl .hl{background:linear-gradient(currentColor,currentColor) 0/100% 1px no-repeat}.gl .vl{background:linear-gradient(currentColor,currentColor) 50% 0/1px 100% no-repeat}.gl .c1{background:linear-gradient(currentColor,currentColor) 100%/50% 1px no-repeat,linear-gradient(currentColor,currentColor) 50% 100%/1px 50% no-repeat}.gl .c2{background:linear-gradient(currentColor,currentColor) 0/50% 1px no-repeat,linear-gradient(currentColor,currentColor) 50% 100%/1px 50% no-repeat}.gl .c3{background:linear-gradient(currentColor,currentColor) 100%/50% 1px no-repeat,linear-gradient(currentColor,currentColor) 50% 0/1px 50% no-repeat}.gl .c4{background:linear-gradient(currentColor,currentColor) 0/50% 1px no-repeat,linear-gradient(currentColor,currentColor) 50% 0/1px 50% no-repeat}.gl .td{background:linear-gradient(currentColor,currentColor) 0/100% 1px no-repeat,linear-gradient(currentColor,currentColor) 50% 100%/1px 50% no-repeat}.gl .tu{background:linear-gradient(currentColor,currentColor) 0/100% 1px no-repeat,linear-gradient(currentColor,currentColor) 50% 0/1px 50% no-repeat}.gl .bar{background:linear-gradient(currentColor,currentColor) 0 0/.55ch 100% no-repeat}.gl .b{font-weight:700}.gl .it{font-style:italic}.gl .dim{opacity:.55}.gl .gl-key{color:#1a1a1a;text-align:center;white-space:nowrap;opacity:0;pointer-events:none;background:#f4f4f2;border-radius:.45em;min-width:2.4em;padding:.45em .7em .55em;font:600 clamp(.75rem,1.5cqw,.9375rem)/1 Iosevka Live,ui-monospace,Menlo,monospace;transition:opacity .16s ease-out,transform .16s cubic-bezier(.23,1,.32,1);position:absolute;bottom:9%;right:3%;transform:translateY(.3em)scale(.92);box-shadow:inset 0 -2px #0000002e,0 8px 20px -6px #0009}.gl .gl-key[data-on]{opacity:1;transform:none}.gl .gl-key[data-down]{transform:translateY(1px)scale(.96)}.gl .gl-chapters{gap:3px;display:flex;position:absolute;bottom:0;left:0;right:0}.gl .gl-ch{flex:var(--w) 1 0;cursor:pointer;background:0 0;border:0;height:10px;padding:7px 0 0}.gl .gl-ch i{background:linear-gradient(#48d9be, #48d9be) 0 0 / var(--p,0%) 100% no-repeat, #ffffff1a;height:3px;transition:height .16s ease-out;display:block}.gl .gl-ch:hover i{height:5px;margin-top:-2px}.gl .gl-time{color:#7a7a7a;font-variant-numeric:tabular-nums;pointer-events:none;background:#111111d9;border-radius:999px;padding:.25rem .5rem;font:500 .6875rem/1 Inter,ui-sans-serif,system-ui,sans-serif;position:absolute;top:.5rem;right:.75rem}html[data-theme=light] .gl{color:#2f3337;background:#fbfbfa}html[data-theme=light] .gl .gl-key{background:#fff;box-shadow:inset 0 0 0 1px #00000014,inset 0 -2px #0000001a,0 8px 20px -8px #10201e59}html[data-theme=light] .gl .gl-ch i{background:linear-gradient(#13a090, #13a090) 0 0 / var(--p,0%) 100% no-repeat, #00000014}html[data-theme=light] .gl .gl-time{color:#8a8f95;background:#fbfbfae6}live-dash.gl{color:#cdd6f4}live-dash .pb{color:#6e6e6e}live-dash .dm{color:#6c7086}live-dash .tx{color:#cdd6f4}live-dash .bd{color:#3a4a5e}live-dash .hd{color:#b4c8dc}live-dash .kc{color:#f9e2af}live-dash .in{color:#78e1d5}live-dash .su{color:#a6da95}live-dash .wn{color:#f9e2af}live-dash .dn{color:#ed8796}live-dash .ac{color:#cba6f7}live-dash .cf{color:#f4f8ff}live-dash .Bcr{background-color:#18222e}live-dash .Bhi{background-color:#28303e}live-dash .t{color:#d4d4d4}live-dash .w{color:#f0f0f0}live-dash .d{color:#9b9b9b}live-dash .code{color:#a9c3f2}live-dash .ok{color:#9fd49a}live-dash .sg{color:#e0896d}live-dash .up{color:#b0b0b0}live-dash .rule{color:#4a4a4a}live-dash .pm{color:#e2a2b0}live-dash .Bup{background-color:#262626}live-dash .Bcur{background-color:#c6c6c6}html[data-theme=light] live-dash .pb{color:#b8b8b8}html[data-theme=light] live-dash .dm{color:#8c8fa1}html[data-theme=light] live-dash .tx{color:#4c4f69}html[data-theme=light] live-dash .bd{color:#a0a0af}html[data-theme=light] live-dash .hd{color:#3c4b5f}html[data-theme=light] live-dash .kc{color:#df8e1d}html[data-theme=light] live-dash .in{color:#179299}html[data-theme=light] live-dash .su{color:#40a02b}html[data-theme=light] live-dash .wn{color:#df8e1d}html[data-theme=light] live-dash .dn{color:#d20f39}html[data-theme=light] live-dash .ac{color:#8839ef}html[data-theme=light] live-dash .cf{color:#4c4f69}html[data-theme=light] live-dash .Bcr{background-color:#d7e6d7}html[data-theme=light] live-dash .Bhi{background-color:#c8c8d2}html[data-theme=light] live-dash .t{color:#2f3337}html[data-theme=light] live-dash .w{color:#111418}html[data-theme=light] live-dash .d{color:#6b7076}html[data-theme=light] live-dash .code{color:#2f5fb3}html[data-theme=light] live-dash .ok{color:#2f7d32}html[data-theme=light] live-dash .sg{color:#b4532f}html[data-theme=light] live-dash .up{color:#555a60}html[data-theme=light] live-dash .rule{color:#cfcfcf}html[data-theme=light] live-dash .pm{color:#b4405a}html[data-theme=light] live-dash .Bup{background-color:#ececec}html[data-theme=light] live-dash .Bcur{background-color:#3a3f45}live-side .t{color:#d4d4d4}live-side .w{color:#f0f0f0}live-side .d{color:#9b9b9b}live-side .ok{color:#9fd49a}live-side .sg{color:#e0896d}live-side .rule{color:#4a4a4a}live-side .pm{color:#e2a2b0}live-side .Bcur{background-color:#c6c6c6}live-side .Bag{background-color:#161616}live-side .la{color:#b6d698}live-side .lg{color:#3c3c3c}live-side .ta{color:#c5e8a6}live-side .tg{color:#575757}live-side .stl{color:#b8cc7e}live-side .stw{color:#e8e8e8}live-side .wa{color:#151515}live-side .Bwa{background-color:#aec579}live-side .clk{color:#c3d48f}live-side .lsep{color:#363b47}live-side .sn{color:#e8edf5}live-side .stm{color:#dfe5ee}live-side .sp{color:#6c7383}live-side .sm{color:#727989}live-side .sa{color:#7d917a}live-side .sd{color:#917580}live-side .sa2{color:#b4dca6}live-side .sd2{color:#e2a2b0}live-side .spn{color:#c4aff2}live-side .si{color:#4e4d59}live-side .sk{color:#9addd4}live-side .gh{color:#c9d3e3}live-side .sst{color:#646a78}live-side .Bband{background-color:#1a1e29}live-side .Bsel{background-color:#262c3c}live-side .bw{color:#9addd4}live-side .bq{color:#c4a8f2}live-side .bdn{color:#b3d89a}live-side .bi{color:#6d7186}html[data-theme=light] live-side .t{color:#2f3337}html[data-theme=light] live-side .w{color:#111418}html[data-theme=light] live-side .d{color:#6b7076}html[data-theme=light] live-side .ok{color:#2f7d32}html[data-theme=light] live-side .sg{color:#b4532f}html[data-theme=light] live-side .rule{color:#cfcfcf}html[data-theme=light] live-side .pm{color:#b4405a}html[data-theme=light] live-side .Bcur{background-color:#3a3f45}html[data-theme=light] live-side .Bag{background-color:#f3f3f2}html[data-theme=light] live-side .la{color:#4f7a21}html[data-theme=light] live-side .lg{color:#d6d6d6}html[data-theme=light] live-side .ta{color:#3f6f1a}html[data-theme=light] live-side .tg{color:#b8b8b8}html[data-theme=light] live-side .stl{color:#5a7a1a}html[data-theme=light] live-side .stw{color:#24292f}html[data-theme=light] live-side .clk{color:#5a7a1a}html[data-theme=light] live-side .lsep{color:#d8dce3}html[data-theme=light] live-side .sn{color:#1d2330}html[data-theme=light] live-side .stm{color:#2b3240}html[data-theme=light] live-side .sp{color:#8a909c}html[data-theme=light] live-side .sm{color:#7b8291}html[data-theme=light] live-side .sa{color:#4f7a4a}html[data-theme=light] live-side .sd{color:#9a5363}html[data-theme=light] live-side .sa2{color:#2f7d32}html[data-theme=light] live-side .sd2{color:#b4405a}html[data-theme=light] live-side .spn{color:#7a4fc2}html[data-theme=light] live-side .si{color:#b3b6be}html[data-theme=light] live-side .sk{color:#138a7c}html[data-theme=light] live-side .gh{color:#2b3445}html[data-theme=light] live-side .sst{color:#8a909c}html[data-theme=light] live-side .Bband{background-color:#eef1f5}html[data-theme=light] live-side .Bsel{background-color:#e3e8f3}html[data-theme=light] live-side .bw{color:#13a090}html[data-theme=light] live-side .bq{color:#8a5cd0}html[data-theme=light] live-side .bdn{color:#4f9a2a}html[data-theme=light] live-side .bi{color:#a0a4b0}live-sandbox .t{color:#d4d4d4}live-sandbox .w{color:#f0f0f0}live-sandbox .d{color:#9b9b9b}live-sandbox .code{color:#a9c3f2}live-sandbox .ok{color:#9fd49a}live-sandbox .er{color:#f08b8b}live-sandbox .sg{color:#e0896d}live-sandbox .sv{color:#e59d80}live-sandbox .sv2{color:#f7d2bf}live-sandbox .up{color:#b0b0b0}live-sandbox .pm{color:#e2a2b0}live-sandbox .lr{color:#5a5a5a}live-sandbox .Bup{background-color:#262626}live-sandbox .Bcur{background-color:#c6c6c6}live-sandbox .stl{color:#b8cc7e}live-sandbox .stw{color:#e8e8e8}live-sandbox .wa{color:#151515}live-sandbox .Bwa{background-color:#aec579}live-sandbox .clk{color:#c3d48f}html[data-theme=light] live-sandbox .t{color:#2f3337}html[data-theme=light] live-sandbox .w{color:#111418}html[data-theme=light] live-sandbox .d{color:#6b7076}html[data-theme=light] live-sandbox .code{color:#2f5fb3}html[data-theme=light] live-sandbox .ok{color:#2f7d32}html[data-theme=light] live-sandbox .er{color:#b3261e}html[data-theme=light] live-sandbox .sg{color:#b4532f}html[data-theme=light] live-sandbox .sv{color:#b85c38}html[data-theme=light] live-sandbox .sv2{color:#8a4a2c}html[data-theme=light] live-sandbox .up{color:#555a60}html[data-theme=light] live-sandbox .pm{color:#b4405a}html[data-theme=light] live-sandbox .lr{color:#c8c8c8}html[data-theme=light] live-sandbox .Bup{background-color:#ececec}html[data-theme=light] live-sandbox .Bcur{background-color:#3a3f45}html[data-theme=light] live-sandbox .stl{color:#5a7a1a}html[data-theme=light] live-sandbox .stw{color:#24292f}html[data-theme=light] live-sandbox .clk{color:#5a7a1a}.w-root:where(.astro-4qvgnrze){--canvas:#f6f8f7;--surface:#fff;--sunken:#eef2f0;--text-1:#172325;--text-2:#526465;--text-3:#7d8d8d;--line:#d8e2de;--accent:#087f70;--accent-fill:#087f70;--on-accent:#fff;--accent-soft:#dff3ee;--sans:Inter, ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--ease:cubic-bezier(.23, 1, .32, 1);--shadow:0 1px 2px #10201e0f, 0 24px 60px -24px #10201e47;min-height:100vh;color:var(--text-1);background:var(--canvas);font-family:var(--sans);padding-bottom:5rem;font-size:17px;line-height:1.6}html[data-theme=dark] .w-root:where(.astro-4qvgnrze){--canvas:#0d1213;--surface:#151d1f;--sunken:#11181a;--text-1:#eaf2ef;--text-2:#a1b2b1;--text-3:#6f8281;--line:#253235;--accent:#48d9be;--accent-fill:#48d9be;--on-accent:#06201b;--accent-soft:#0f2e29;--shadow:0 0 0 1px #ffffff08 inset, 0 30px 80px -24px #000000b3}.w-root:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){color:inherit}.w-root:where(.astro-4qvgnrze) :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.w-wrap:where(.astro-4qvgnrze){width:min(76rem,100% - 3rem);margin-inline:auto}.w-nav:where(.astro-4qvgnrze){z-index:10;border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);background:color-mix(in srgb, var(--canvas) 80%, transparent);backdrop-filter:blur(14px)saturate(1.4);position:sticky;top:0}.w-nav-inner:where(.astro-4qvgnrze){align-items:center;gap:2.5rem;height:3.75rem;display:flex}.w-brand:where(.astro-4qvgnrze){letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1rem;font-weight:650;text-decoration:none;display:flex}.w-links:where(.astro-4qvgnrze){gap:1.75rem;font-size:.875rem;display:flex}.w-links:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze),.w-gh:where(.astro-4qvgnrze){text-decoration:none;transition:color .12s ease-out;color:var(--text-2)!important}.w-links:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover,.w-gh:where(.astro-4qvgnrze):hover{color:var(--text-1)!important}.w-nav-right:where(.astro-4qvgnrze){align-items:center;gap:1rem;margin-left:auto;display:flex}.w-gh:where(.astro-4qvgnrze){font-variant-numeric:tabular-nums;align-items:center;gap:.375rem;font-size:.875rem;font-weight:500;display:flex}.w-theme:where(.astro-4qvgnrze){width:2rem;height:2rem;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:.5rem;place-items:center;display:grid}.w-theme:where(.astro-4qvgnrze):hover{background:var(--sunken)}.w-moon:where(.astro-4qvgnrze),html[data-theme=dark] .w-sun:where(.astro-4qvgnrze){display:none}html[data-theme=dark] .w-moon:where(.astro-4qvgnrze){display:block}.w-btn:where(.astro-4qvgnrze){white-space:nowrap;background:var(--accent-fill);border-radius:.625rem;align-items:center;gap:.5rem;height:2.75rem;padding:0 1.125rem;font-size:.9375rem;font-weight:550;text-decoration:none;transition:transform .16s ease-out,background-color .16s ease-out,border-color .16s ease-out;display:inline-flex;box-shadow:inset 0 1px #fff3;color:var(--on-accent)!important}.w-btn:where(.astro-4qvgnrze):hover{background:color-mix(in srgb, var(--accent-fill) 88%, black)}.w-btn-sm:where(.astro-4qvgnrze){border-radius:.5rem;height:2.125rem;padding:0 .875rem;font-size:.8125rem}.w-btn:where(.astro-4qvgnrze):active{transform:scale(.97)}.w-quiet:where(.astro-4qvgnrze){font-size:.875rem;color:var(--text-3)!important}.w-hero:where(.astro-4qvgnrze){background:radial-gradient(60rem 30rem at 70% -10%, var(--accent-soft), transparent 70%), var(--canvas);padding:4.5rem 0 0}.w-pill:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:.625rem;padding:.25rem .75rem .25rem .25rem;font-size:.8125rem;text-decoration:none;transition:border-color .15s ease-out;display:inline-flex;color:var(--text-2)!important}.w-pill:where(.astro-4qvgnrze):hover{border-color:var(--accent)}.w-pill-tag:where(.astro-4qvgnrze){color:var(--accent);background:var(--accent-soft);font-family:var(--mono);border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:500}.w-hero-grid:where(.astro-4qvgnrze){grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start;gap:4rem;margin-top:2rem;display:grid}h1:where(.astro-4qvgnrze){letter-spacing:-.045em;margin:0;font-size:clamp(2.75rem,6vw,4.75rem);font-weight:650;line-height:1.02}h1:where(.astro-4qvgnrze) span:where(.astro-4qvgnrze){color:var(--text-3)}h1:where(.astro-4qvgnrze) .w-the:where(.astro-4qvgnrze){z-index:1;color:var(--text-1);letter-spacing:0;margin-right:.14em;font-family:Mr Dafoe,cursive;font-size:.8em;font-weight:400;display:inline-block;position:relative;transform:rotate(-8deg)}.w-ast:where(.astro-4qvgnrze){color:var(--accent);vertical-align:super;margin-left:.02em;font-size:.5em;font-weight:600;line-height:0;position:relative;top:-.05em}.w-fn:where(.astro-4qvgnrze){color:var(--text-3);margin:1.25rem 0 0;font-size:.8125rem}.w-fn:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){color:var(--text-2);text-decoration-color:var(--line);text-underline-offset:.2em}.w-fn:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover{color:var(--accent)}.w-lede:where(.astro-4qvgnrze){color:var(--text-2);margin:0 0 1.5rem;font-size:1.0625rem}.w-cmd:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--surface);font-family:var(--mono);border-radius:.625rem;align-items:center;gap:.5rem;padding:.375rem .375rem .375rem 1rem;font-size:.8125rem;display:flex}.w-cmd:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze){white-space:nowrap;scrollbar-width:none;flex:1;min-width:0;overflow-x:auto}.w-cmd:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze):before{content:"$ ";color:var(--text-3)}.w-copy:where(.astro-4qvgnrze){width:2rem;height:2rem;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:.375rem;flex:none;place-items:center;display:grid;position:relative}.w-copy:where(.astro-4qvgnrze):hover{background:var(--sunken)}.w-copied:where(.astro-4qvgnrze){color:var(--canvas);background:var(--text-1);font-family:var(--sans);opacity:0;pointer-events:none;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;transition:opacity .15s ease-out,transform .15s ease-out;position:absolute;bottom:calc(100% + .375rem);left:50%;transform:translate(-50%,.25rem)}.w-copy:where(.astro-4qvgnrze)[data-copied] .w-copied:where(.astro-4qvgnrze){opacity:1;transform:translate(-50%)}.w-actions:where(.astro-4qvgnrze){flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.w-actions:where(.astro-4qvgnrze) .w-quiet:where(.astro-4qvgnrze){margin-left:.5rem}.w-showcase:where(.astro-4qvgnrze){width:min(100rem,100% - 2rem,max(56rem,165svh - 18.975rem));margin:4rem auto 0}.w-notes:where(.astro-4qvgnrze){height:3.25rem;margin:0;padding:0;list-style:none;position:relative}.w-notes:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze){left:var(--x);color:var(--text-2);white-space:nowrap;flex-direction:column;align-items:center;font-size:.8125rem;font-weight:500;display:flex;position:absolute;bottom:0;transform:translate(-50%)}.w-notes:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze)[data-for]{opacity:0;transition:opacity .22s ease-out, translate .22s var(--ease);translate:0 .25rem}.w-showcase:where(.astro-4qvgnrze):has(live-tmux[data-win=config]) li:where(.astro-4qvgnrze)[data-for~=config],.w-showcase:where(.astro-4qvgnrze):has(live-tmux[data-win=task]) li:where(.astro-4qvgnrze)[data-for~=task],.w-showcase:where(.astro-4qvgnrze):has(live-tmux[data-win=shell]) li:where(.astro-4qvgnrze)[data-for~=shell],.w-showcase:where(.astro-4qvgnrze):not(:has(live-tmux)) li:where(.astro-4qvgnrze)[data-for~=config]{opacity:1;translate:0}.w-notes:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze):after{content:"";background:linear-gradient(var(--accent), transparent);width:1px;height:1.25rem;margin-top:.375rem}.w-frame:where(.astro-4qvgnrze){border:1px solid var(--line);box-shadow:var(--shadow);background:#141414;border-radius:.875rem;overflow:hidden}.w-frame:where(.astro-4qvgnrze) img:where(.astro-4qvgnrze),.w-frame:where(.astro-4qvgnrze) video:where(.astro-4qvgnrze){width:100%}.w-cap:where(.astro-4qvgnrze){max-width:60rem;color:var(--text-2);text-align:center;text-wrap:balance;margin:1rem auto 0;font-size:.875rem}.w-titlebar:where(.astro-4qvgnrze){background:#1b1b1b;border-bottom:1px solid #222;justify-content:center;align-items:center;height:2.25rem;display:flex;position:relative}.w-lights:where(.astro-4qvgnrze){gap:.5rem;display:flex;position:absolute;left:.875rem}.w-lights:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze){background:#ff5f57;border-radius:50%;width:.75rem;height:.75rem}.w-lights:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze):nth-child(2){background:#febc2e}.w-lights:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze):nth-child(3){background:#28c840}.w-title:where(.astro-4qvgnrze){color:#8a8a8a;font-size:.8125rem}html[data-theme=light] .w-frame:where(.astro-4qvgnrze){background:#fbfbfa}html[data-theme=light] .w-frame:where(.astro-4qvgnrze) .w-titlebar:where(.astro-4qvgnrze){background:#efefed;border-bottom-color:#e2e2e0}html[data-theme=light] .w-frame:where(.astro-4qvgnrze) .w-title:where(.astro-4qvgnrze){color:#6b6b6b}.w-notes:where(.astro-4qvgnrze) .w-note-wm:where(.astro-4qvgnrze){color:var(--accent);font-weight:600}.w-section:where(.astro-4qvgnrze){padding:7.5rem 0 0}.w-root:where(.astro-4qvgnrze)>:is(section:not(.w-hero),footer){content-visibility:auto;contain-intrinsic-size:auto 40rem}.w-eyebrow:where(.astro-4qvgnrze){color:var(--accent);margin:0 0 .75rem;font-size:.8125rem;font-weight:600}h2:where(.astro-4qvgnrze){letter-spacing:-.035em;text-wrap:balance;max-width:40rem;margin:0 0 3rem;font-size:clamp(1.875rem,3.4vw,2.75rem);font-weight:650;line-height:1.1}h3:where(.astro-4qvgnrze){letter-spacing:-.015em;margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.w-flows:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze){background:var(--sunken);font-family:var(--mono);white-space:nowrap;border-radius:.5rem;padding:.625rem .875rem;font-size:.8125rem;display:block;overflow-x:auto}.w-seg:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--sunken);border-radius:.75rem;gap:.125rem;padding:.25rem;display:inline-flex}.w-seg:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze){color:var(--text-2);font:500 .875rem var(--sans);cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.5rem 1rem;transition:color .12s ease-out}.w-seg:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze):hover{color:var(--text-1)}.w-seg:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze)[data-active]{color:var(--text-1);background:var(--surface);box-shadow:0 1px 2px #00000014, 0 0 0 1px var(--line)}.w-seg-sm:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze){padding:.375rem .75rem;font-size:.8125rem}.w-tour-panel:where(.astro-4qvgnrze){grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:center;gap:3.5rem;margin-top:2.5rem;animation:.2s ease-out w-fade;display:grid}@keyframes w-fade{0%{opacity:0}}.w-tour-copy:where(.astro-4qvgnrze) h3:where(.astro-4qvgnrze){letter-spacing:-.025em;font-size:1.5rem}.w-tour-copy:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){color:var(--text-2)}.w-tour-copy:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze){margin:1.5rem 0;padding:0;list-style:none}.w-tour-copy:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze){border-top:1px solid var(--line);align-items:center;gap:.75rem;padding:.5rem 0;font-size:.9375rem;display:flex}.w-tour-copy:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze):before{content:"";background:var(--accent);border-radius:50%;width:.375rem;height:.375rem}.w-arrow:where(.astro-4qvgnrze){font-size:.9375rem;font-weight:550;text-decoration:none;color:var(--accent)!important}.w-arrow:where(.astro-4qvgnrze):hover{text-decoration:underline}.w-duo:where(.astro-4qvgnrze){grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.w-card:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;flex-direction:column;align-items:flex-start;min-width:0;padding:2rem;display:flex}.w-card:where(.astro-4qvgnrze) h3:where(.astro-4qvgnrze){letter-spacing:-.025em;font-size:1.375rem}.w-card:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){color:var(--text-2);margin:0 0 1rem;font-size:.9375rem}.w-card-live:where(.astro-4qvgnrze){box-shadow:none;align-self:stretch;margin-top:1.75rem}.w-yaml:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--sunken);border-radius:.875rem;flex:1;order:1;align-self:stretch;margin-top:1.75rem;overflow:hidden}.w-card:where(.astro-4qvgnrze) .w-file:where(.astro-4qvgnrze){border-bottom:1px solid var(--line);color:var(--text-3);font-family:var(--mono);margin:0;padding:.625rem 1.25rem;font-size:.75rem}.w-yaml:where(.astro-4qvgnrze) pre:where(.astro-4qvgnrze){font-family:var(--mono);margin:0;padding:1rem 1.25rem;font-size:.8125rem;line-height:1.7;overflow-x:auto}.w-card:where(.astro-4qvgnrze) .w-eyebrow:where(.astro-4qvgnrze){color:var(--accent);margin-bottom:.75rem}.w-k:where(.astro-4qvgnrze){color:var(--accent)}.w-split-head:where(.astro-4qvgnrze){grid-template-columns:1fr 1fr;align-items:end;gap:4rem;margin-bottom:3rem;display:grid}.w-split-head:where(.astro-4qvgnrze) h2:where(.astro-4qvgnrze){margin:0}.w-split-head:where(.astro-4qvgnrze)>p:where(.astro-4qvgnrze){color:var(--text-2);margin:0}.w-flows:where(.astro-4qvgnrze){border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:2.5rem;padding-top:2rem;display:grid}.w-flows:where(.astro-4qvgnrze) article:where(.astro-4qvgnrze){flex-direction:column;align-items:flex-start;min-width:0;display:flex}.w-flows:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze){overflow-wrap:anywhere;align-self:stretch;margin-bottom:1rem;white-space:normal!important}.w-flows:where(.astro-4qvgnrze) .w-arrow:where(.astro-4qvgnrze){margin-top:auto;font-size:.875rem}.w-kind:where(.astro-4qvgnrze){border:1px solid var(--line);color:var(--text-2);font-family:var(--sans);letter-spacing:.02em;border-radius:999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.w-kind-skill:where(.astro-4qvgnrze){color:var(--accent);background:var(--accent-soft);border-color:#0000}.w-skills:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--surface);border-radius:1rem;margin-top:3rem;overflow:hidden}.w-skills-head:where(.astro-4qvgnrze){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem 2.5rem;padding:1.5rem 1.75rem;display:flex}.w-skills:where(.astro-4qvgnrze) h3:where(.astro-4qvgnrze){margin:0 0 .25rem;font-size:1rem}.w-skills-head:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){color:var(--text-2);margin:0;font-size:.875rem}.w-skills:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze){border-top:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.w-skills:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze)+li:where(.astro-4qvgnrze){border-left:1px solid var(--line)}.w-skills:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){gap:.25rem;height:100%;padding:1.125rem 1.75rem 1.25rem;text-decoration:none;transition:background-color .15s ease-out;display:grid}.w-skills:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover{background:var(--sunken)}.w-skills:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze){color:var(--accent);font-size:.875rem;font-weight:500}.w-skills:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze) span:where(.astro-4qvgnrze){color:var(--text-2);font-size:.8125rem;line-height:1.45}.w-skills-cmd:where(.astro-4qvgnrze){background:var(--sunken);font-family:var(--mono);white-space:nowrap;border-radius:.625rem;align-items:center;gap:.25rem;padding:.25rem .25rem .25rem .875rem;font-size:.8125rem;display:flex}.w-skills-cmd:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze):before{content:"$ ";color:var(--accent)}.w-flow-n:where(.astro-4qvgnrze){color:var(--text-3);font-family:var(--mono);align-items:center;margin:0 0 1rem;font-size:.8125rem;display:flex}.w-flows:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){color:var(--text-2);font-size:.9375rem}.w-flows:where(.astro-4qvgnrze) code:where(.astro-4qvgnrze) span:where(.astro-4qvgnrze){color:var(--accent)}.w-videos:where(.astro-4qvgnrze){grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.w-videos:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--surface);border-radius:1rem;align-content:start;gap:1rem;height:100%;padding:.625rem .625rem 1.25rem;text-decoration:none;transition:border-color .15s ease-out;display:grid}.w-videos:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover{border-color:var(--accent)}.w-thumb:where(.astro-4qvgnrze){border-radius:.625rem;position:relative;overflow:hidden}.w-thumb:where(.astro-4qvgnrze) img:where(.astro-4qvgnrze){aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .3s var(--ease,ease-out)}.w-videos:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover .w-thumb:where(.astro-4qvgnrze) img:where(.astro-4qvgnrze){transform:scale(1.03)}.w-thumb:where(.astro-4qvgnrze):after{content:"";opacity:0;background:#0000001f;transition:opacity .2s ease-out;position:absolute;inset:0}.w-videos:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover .w-thumb:where(.astro-4qvgnrze):after{opacity:1}.w-thumb:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze){z-index:1;color:#111;width:2.5rem;height:2.5rem;transition:transform .2s var(--ease,ease-out), background-color .2s ease-out, color .2s ease-out;background:#fffffff2;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 4px 14px #0000004d}.w-thumb:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze) svg:where(.astro-4qvgnrze){width:1rem;height:1rem;display:block}.w-videos:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover .w-thumb:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze){color:var(--on-accent);background:var(--accent-fill);transform:scale(1.08)}.w-videos:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):active .w-thumb:where(.astro-4qvgnrze) i:where(.astro-4qvgnrze){transform:scale(.96)}.w-videos:where(.astro-4qvgnrze) span:where(.astro-4qvgnrze):not(.w-thumb){padding:0 .5rem;font-size:.9375rem;display:grid}.w-videos:where(.astro-4qvgnrze) b:where(.astro-4qvgnrze){font-weight:550;line-height:1.35}.w-videos:where(.astro-4qvgnrze) small:where(.astro-4qvgnrze){color:var(--text-3);margin-top:.25rem}.w-install:where(.astro-4qvgnrze){grid-template-columns:minmax(0,1fr);gap:.625rem;display:grid}.w-itabs:where(.astro-4qvgnrze){align-items:center;gap:1rem;display:flex}.w-itabs:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze){color:var(--text-3);font:500 .8125rem var(--sans);cursor:pointer;background:0 0;border:0;border-bottom:1.5px solid #0000;padding:.125rem 0;transition:color .12s ease-out,background-color .12s ease-out}.w-itabs:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze):hover{color:var(--text-1)}.w-itabs:where(.astro-4qvgnrze) button:where(.astro-4qvgnrze)[data-active]{border-color:var(--accent);color:var(--text-1)}.w-ilabel:where(.astro-4qvgnrze){color:var(--text-3);margin-right:.25rem;font-size:.8125rem}.w-qmark:where(.astro-4qvgnrze){padding:7rem 0 0}.w-qmark-inner:where(.astro-4qvgnrze){grid-template-columns:auto minmax(0,52rem);justify-content:center;gap:1.25rem;display:grid}.w-qmark-glyph:where(.astro-4qvgnrze){color:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:5.5rem;line-height:.85}.w-qmark:where(.astro-4qvgnrze) figure:where(.astro-4qvgnrze){margin:0}.w-qmark:where(.astro-4qvgnrze) blockquote:where(.astro-4qvgnrze){letter-spacing:-.03em;text-wrap:pretty;margin:0 0 1.5rem;font-size:clamp(1.5rem,2.8vw,2.125rem);font-weight:550;line-height:1.25}.w-qmark:where(.astro-4qvgnrze) figcaption:where(.astro-4qvgnrze){color:var(--text-3);align-items:center;gap:.5rem;font-size:.9375rem;display:flex}.w-qmark:where(.astro-4qvgnrze) figcaption:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){font-weight:600;text-decoration:none;color:var(--text-1)!important}.w-vmarq:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){align-items:center;gap:.5rem;font-size:.875rem;font-weight:550;text-decoration:none;display:flex;color:var(--text-2)!important}.w-vmarq:where(.astro-4qvgnrze){width:100vw;margin-left:calc(50% - 50vw);display:flex;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.w-vmarq:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze){flex:none;gap:1rem;margin:0;padding:0 .5rem;list-style:none;animation:60s linear infinite w-marq;display:flex}.w-vmarq:where(.astro-4qvgnrze):hover ul:where(.astro-4qvgnrze){animation-play-state:paused}.w-vmarq:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze){border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-direction:column;justify-content:space-between;gap:1.25rem;width:21rem;padding:1.5rem;display:flex}.w-vmarq:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){margin:0;font-size:.9375rem}@keyframes w-marq{to{transform:translate(-100%)}}.w-vhead:where(.astro-4qvgnrze){grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:4rem;margin:5rem 0 1.5rem;display:grid}.w-vhead-top:where(.astro-4qvgnrze){margin-top:0}.w-vsec:where(.astro-4qvgnrze){padding-top:6rem}.w-vhead:where(.astro-4qvgnrze) h3:where(.astro-4qvgnrze){letter-spacing:-.025em;margin:0;font-size:1.5rem}.w-vhead:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){color:var(--text-2);margin:0;font-size:.9375rem}.w-cta:where(.astro-4qvgnrze){border-block:1px solid var(--line);background:var(--surface);margin-top:7.5rem;padding:4.5rem 0}.w-cta-inner:where(.astro-4qvgnrze){grid-template-columns:1fr minmax(0,30rem);align-items:center;gap:4rem;display:grid}.w-cta:where(.astro-4qvgnrze) h2:where(.astro-4qvgnrze){margin:0 0 .5rem}.w-cta:where(.astro-4qvgnrze) p:where(.astro-4qvgnrze){color:var(--text-2);margin:0}.w-cta-side:where(.astro-4qvgnrze){gap:.75rem;display:grid}.w-cta-side:where(.astro-4qvgnrze) .w-seg:where(.astro-4qvgnrze){justify-self:start}.w-foot:where(.astro-4qvgnrze){padding-top:3.5rem}.w-foot-inner:where(.astro-4qvgnrze){justify-content:space-between;gap:3rem;display:flex}.w-foot-brand:where(.astro-4qvgnrze){align-self:start;align-items:center;gap:.5rem;font-weight:650;display:flex}.w-foot-brand:where(.astro-4qvgnrze) small:where(.astro-4qvgnrze){color:var(--text-3);font-weight:400}.w-foot:where(.astro-4qvgnrze) nav:where(.astro-4qvgnrze){gap:4rem;font-size:.875rem;display:flex}.w-foot:where(.astro-4qvgnrze) nav:where(.astro-4qvgnrze) div:where(.astro-4qvgnrze){align-content:start;gap:.5rem;display:grid}.w-foot:where(.astro-4qvgnrze) nav:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze){text-decoration:none;color:var(--text-2)!important}.w-foot:where(.astro-4qvgnrze) nav:where(.astro-4qvgnrze) a:where(.astro-4qvgnrze):hover{color:var(--text-1)!important}@media (width<=60rem){.w-links:where(.astro-4qvgnrze){display:none}.w-hero-grid:where(.astro-4qvgnrze),.w-tour-panel:where(.astro-4qvgnrze),.w-duo:where(.astro-4qvgnrze),.w-split-head:where(.astro-4qvgnrze),.w-cta-inner:where(.astro-4qvgnrze){grid-template-columns:1fr;gap:2rem}.w-notes:where(.astro-4qvgnrze){display:none}.w-flows:where(.astro-4qvgnrze),.w-videos:where(.astro-4qvgnrze),.w-vhead:where(.astro-4qvgnrze),.w-qmark-inner:where(.astro-4qvgnrze){grid-template-columns:1fr}.w-vhead:where(.astro-4qvgnrze){gap:1rem}.w-skills:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze){grid-template-columns:minmax(0,1fr)}.w-skills:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze)+li:where(.astro-4qvgnrze){border-top:1px solid var(--line);border-left:0}.w-qmark-glyph:where(.astro-4qvgnrze){font-size:4.5rem}.w-vmarq:where(.astro-4qvgnrze) li:where(.astro-4qvgnrze){width:17rem}.w-foot-inner:where(.astro-4qvgnrze),.w-foot:where(.astro-4qvgnrze) nav:where(.astro-4qvgnrze){flex-direction:column;gap:2rem}}@media (prefers-reduced-motion:reduce){.w-tour-panel:where(.astro-4qvgnrze){animation:none}.w-vmarq:where(.astro-4qvgnrze){flex-wrap:wrap}.w-vmarq:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze){flex-wrap:wrap;animation:none}.w-vmarq:where(.astro-4qvgnrze) ul:where(.astro-4qvgnrze)+ul:where(.astro-4qvgnrze){display:none}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}img,video{max-width:100%;height:auto;display:block}[hidden]{display:none!important}
