@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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}:root{color-scheme:dark;--palette-accent:#a40e4c;--palette-ok:#669bbc;--palette-warn:#f3a712;--palette-dim:#2c2c54;--bg:#07070a;--bg-raised:#0d0d12;--bg-inset:#0a0a0e;--line:#ececff12;--line-strong:#ececff21;--text:#ededf2;--text-2:#a3a3b2;--text-3:#7c7c8d;--accent:var(--palette-accent);--accent-text:oklch(from var(--palette-accent) max(l, .7) c h);--ok:var(--palette-ok);--warn:var(--palette-warn);--t-dim:var(--palette-dim);--t-line:#808092;--t-text:#e3e3ec;--t-accent:oklch(from var(--palette-accent) max(l, .55) c h);--t-accentBright:var(--accent-text);--t-ok:var(--palette-ok);--t-okDim:color-mix(in oklab, var(--palette-ok) 45%, var(--bg));--t-warn:var(--palette-warn);--t-blue:#7cb6ff;--t-red:#f08080;--sans:"Archivo Variable", "Archivo", system-ui, sans-serif;--display-width:116%;--mono:"Geist Mono Variable", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-s:3px;--radius-m:4px;--radius-l:6px;--gutter:24px;--shell:1200px;--header-h:60px}.t-dim{color:var(--t-dim)}.t-line{color:var(--t-line)}.t-text{color:var(--t-text)}.t-accent{color:var(--t-accent)}.t-accentBright{color:var(--t-accentBright)}.t-ok{color:var(--t-ok)}.t-okDim{color:var(--t-okDim)}.t-warn{color:var(--t-warn)}.t-blue{color:var(--t-blue)}.t-red{color:var(--t-red)}body:after{z-index:1000;opacity:.05;content:"";pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}*,:before,:after{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%}body{min-width:320px;color:var(--text-2);background:var(--bg);font:400 15px/1.6 var(--sans);font-feature-settings:"cv05", "ss03";font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:clip}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}h1,h2,h3{color:var(--text);font-family:var(--sans);text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-decoration:none}a,button,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px;border-radius:2px}code,kbd,pre{font-family:var(--mono)}::selection{color:oklch(from var(--accent) clamp(0, (.65 - l) * 1000, 1) 0 0);background:var(--accent)}.shell{width:min(var(--shell), 100% - 2 * var(--gutter));margin-inline:auto}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border-radius:var(--radius-m);color:var(--bg);background:var(--text);padding:10px 14px;font-weight:560;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.display{font-size:clamp(38px,5.6vw,70px);font-stretch:var(--display-width);letter-spacing:-.03em;background:linear-gradient(#fff 20%,#b8b8c8 110%);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:620;line-height:1.02}.title{font-size:clamp(28px,3.3vw,42px);font-stretch:var(--display-width);letter-spacing:-.024em;font-weight:600;line-height:1.08}.lead{max-width:34em;color:var(--text-2);letter-spacing:-.006em;font-size:clamp(16px,1.35vw,18px);line-height:1.55}h3{letter-spacing:-.012em;font-size:16px;font-weight:570;line-height:1.35}.mono{font-family:var(--mono)}.ink{color:var(--text)}p code,li code,dd code{border:1px solid var(--line);color:var(--text);background:var(--bg-raised);white-space:nowrap;border-radius:2px;padding:1px 5px;font-size:.86em}.btn{border-radius:var(--radius-m);height:40px;font:540 14px/1 var(--sans);letter-spacing:-.01em;white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;transition:background-color .14s,border-color .14s,color .14s;display:inline-flex}.btn-primary{color:#09090c;background:var(--text);box-shadow:inset 0 -1px #0000002e,0 0 0 1px #ffffff0f}.btn-primary:hover{background:#fff}.btn-ghost{border-color:var(--line-strong);color:var(--text);background:#ffffff05}.btn-ghost:hover{background:#ffffff0d;border-color:#ececff38}.btn-small{height:32px;padding:0 12px;font-size:13px}.btn svg{flex:none;width:15px;height:15px}.cmd{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--bg-inset);max-width:100%;height:40px;font:13px/1 var(--mono);align-items:center;gap:4px;padding:0 4px 0 12px;display:inline-flex}.cmd code{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cmd code:before{color:var(--text-3);content:"$";margin-right:10px}.copy{border-radius:var(--radius-s);width:32px;height:32px;color:var(--text-3);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;margin-left:6px;padding:0;display:grid}.copy:hover{color:var(--text);background:#ffffff0f}.copy svg{width:15px;height:15px}.copy .done{color:var(--ok);display:none}.copy[data-copied] .idle{display:none}.copy[data-copied] .done{display:block}.site-header{z-index:40;border-bottom:1px solid var(--line);backdrop-filter:blur(14px)saturate(150%);background:#07070abd;position:sticky;top:0}.nav{height:var(--header-h);align-items:center;gap:32px;display:flex}.brand{color:var(--text);font:600 13px/1 var(--mono);letter-spacing:.18em;align-items:center;gap:10px;display:inline-flex}.logo-mark{object-fit:contain;flex:none;width:24px;height:24px}.nav-links{gap:4px;margin-right:auto;display:flex}.nav-links a{border-radius:var(--radius-s);color:var(--text-2);letter-spacing:-.008em;padding:6px 10px;font-size:14px;transition:color .14s,background-color .14s}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--text)}.nav-links a:hover{background:#ffffff0a}.nav-actions{align-items:center;gap:8px;display:flex}.nav-github{border-radius:var(--radius-s);height:32px;color:var(--text-2);align-items:center;gap:8px;padding:0 10px;font-size:14px;transition:color .14s,background-color .14s;display:inline-flex}.nav-github:hover{color:var(--text);background:#ffffff0a}.nav-github svg{width:16px;height:16px}.menu{display:none}.menu summary{border:1px solid var(--line-strong);border-radius:var(--radius-m);width:36px;height:36px;color:var(--text);cursor:pointer;place-items:center;list-style:none;display:grid}.menu summary::-webkit-details-marker{display:none}.menu summary svg{width:16px;height:16px}.menu .icon-close,.menu[open] .icon-open{display:none}.menu[open] .icon-close{display:block}.menu-panel{inset:var(--header-h) 0 auto;max-height:calc(100dvh - var(--header-h));overscroll-behavior:contain;padding:8px var(--gutter) 24px;border-bottom:1px solid var(--line);background:var(--bg);position:fixed;overflow-y:auto}.menu-panel a{border-bottom:1px solid var(--line);color:var(--text);letter-spacing:-.01em;justify-content:space-between;padding:14px 0;font-size:17px;display:flex}.menu-panel .btn{width:100%;height:44px;margin-top:20px;font-size:15px}.hero{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);align-items:center;gap:48px;padding-block:96px 24px;display:grid;position:relative}.hero:before{z-index:-1;aspect-ratio:1;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 16%, transparent), transparent 72%);content:"";pointer-events:none;width:70%;position:absolute;top:-10%;right:max(-12%,50% - 50vw)}.hero-copy{flex-direction:column;align-items:flex-start;display:flex}.hero .lead{margin-top:24px}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:36px;display:flex}.hero .cmd{margin-top:14px}.hero-visual{min-width:0}.hero-visual .ascii{-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.page-hero{padding-block:88px 56px}.page-hero .lead{margin-top:20px}.section{padding-block:128px 0}.section-head{gap:16px;max-width:720px;margin-bottom:56px;display:grid}.section-head p{max-width:36em;font-size:16px}.section-head.split{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:end;gap:48px;max-width:none}.panel{border:1px solid var(--line);border-radius:var(--radius-l);background:linear-gradient(180deg, #ffffff04, transparent 40%), var(--bg-raised);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,0 24px 48px -24px #0009}.panel-bar{border-bottom:1px solid var(--line);min-height:42px;color:var(--text-3);font:12px/1 var(--mono);align-items:center;gap:12px;padding:0 8px 0 16px;display:flex}.panel-dots{gap:6px;display:flex}.panel-dots i{background:#ffffff17;border-radius:1px;width:9px;height:9px}.panel-title{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.panel-aside{align-items:center;gap:8px;margin-left:auto;display:flex}.panel-body{padding:24px}.panel .panel-body.flush{padding:0}.panel-foot{border-top:1px solid var(--line);color:var(--text-3);font:12px/1.5 var(--mono);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:14px 20px;display:flex}.replay{border:1px solid var(--line);border-radius:var(--radius-s);height:28px;color:var(--text-2);font:12px/1 var(--mono);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.replay:hover{border-color:var(--line-strong);color:var(--text)}.replay svg{width:12px;height:12px}.ascii{justify-content:center;width:100%;display:flex;position:relative;overflow:hidden;container-type:inline-size}.ascii pre{width:max-content;color:var(--t-dim);font-family:var(--mono);font-size:max(var(--ascii-min,0px), min(calc(100cqi / (var(--cols) * .6)), var(--ascii-max,16px)));font-variant-ligatures:none;white-space:normal;flex:none;margin:0;line-height:1;overflow:hidden}@supports (width:round(down, 1px, 1px)){.ascii pre{font-size:max(var(--ascii-min,0px), min(calc(round(down, 100cqi / var(--cols), 1px) / .6), var(--ascii-max,16px)));line-height:round(1em,1px)}}.ascii pre>div{white-space:pre;min-height:1em}.ascii>script{display:none}.ascii pre{text-shadow:0 0 .55em color-mix(in srgb, currentColor 50%, transparent)}.ascii:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 2px,#00000047 2px 3px);position:absolute;inset:0}.ascii.reveal pre>div{animation:.64s cubic-bezier(.2,.7,.2,1) both ascii-rise;animation-delay:calc(var(--r,0) * 13ms + .12s)}@keyframes ascii-rise{0%{opacity:0;transform:translateY(.6em)}}.only-narrow{display:none}.panel-body,.hero-visual,.page-hero-visual,.pipeline-band{container:twins/inline-size}@container twins (width<=559px){.only-wide{display:none}.ascii.only-narrow{display:flex}}@container twins (width<=759px){.only-wide.tier-l{display:none}.ascii.only-narrow.tier-l{display:flex}}.release .panel-body{padding:40px 32px}.steps{border-top:1px solid var(--line);counter-reset:step;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:40px;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;padding:28px 32px 0 0}.steps li+li{border-left:1px solid var(--line);padding-left:32px}.steps h3:before{color:var(--accent-text);font:12px/1 var(--mono);content:"0" counter(step);margin-bottom:14px;display:block}.steps p{margin-top:8px;font-size:15px}.repo{grid-template-columns:minmax(0,.82fr) minmax(0,1fr);align-items:center;gap:64px;display:grid}.repo-copy .check-list{margin-top:28px}.term{background:linear-gradient(90deg, var(--bg-raised) 40%, #0d0d1200) left / 32px 100% no-repeat local, linear-gradient(270deg, var(--bg-raised) 40%, #0d0d1200) right / 32px 100% no-repeat local, linear-gradient(90deg, color-mix(in srgb, var(--accent-text) 14%, transparent), transparent) left / 12px 100% no-repeat scroll, linear-gradient(270deg, color-mix(in srgb, var(--accent-text) 14%, transparent), transparent) right / 12px 100% no-repeat scroll;color:var(--text-2);font:13px/1.75 var(--mono);white-space:pre;tab-size:2;margin:0;padding:22px 24px;overflow-x:auto}.term .p{color:var(--text-3);user-select:none}.term .c{color:var(--text)}.term .ok{color:var(--ok)}.term .warn{color:var(--warn)}.term .dim{color:var(--text-3)}.term .k{color:var(--t-accentBright)}.term .s{color:color-mix(in oklab, var(--palette-ok), white 25%)}.term .add{color:var(--ok)}.term .del{color:var(--t-red)}.tabs{flex-direction:column;display:flex}.tab-strip{border-bottom:1px solid var(--line);scrollbar-width:none;gap:2px;padding:0 8px;display:flex;overflow-x:auto}.tab-radio{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.tab-label{color:var(--text-3);font:12px/1 var(--mono);white-space:nowrap;cursor:pointer;padding:13px 10px 12px;transition:color .14s;position:relative}.tab-label:hover{color:var(--text-2)}.tab-radio:checked+.tab-label{color:var(--text)}.tab-radio:checked+.tab-label:after{background:var(--accent);content:"";height:1px;position:absolute;inset:auto 10px -1px}.tab-radio:focus-visible+.tab-label{outline:2px solid var(--accent-text);outline-offset:-4px;border-radius:var(--radius-s)}.tab-pane{display:none}.tabs:has(.tab-radio:first-of-type:checked) .tab-pane[data-pane="0"],.tabs:has(.tab-radio:nth-of-type(2):checked) .tab-pane[data-pane="1"],.tabs:has(.tab-radio:nth-of-type(3):checked) .tab-pane[data-pane="2"],.tabs:has(.tab-radio:nth-of-type(4):checked) .tab-pane[data-pane="3"]{display:block}.check-list{gap:10px;padding:0;list-style:none;display:grid}.check-list li{padding-left:26px;font-size:15px;position:relative}.check-list li:before{color:var(--accent-text);font:13px/1.6 var(--mono);content:"[+]";letter-spacing:-.08em;position:absolute;top:.05em;left:0}.delivery-stage{padding:40px 28px 36px}.repo-copy .lead{margin-top:16px}.delivery{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);align-items:center;gap:64px;display:grid}.url-anatomy{font:12.5px/1.5 var(--mono);gap:0;display:grid}.url-anatomy div{border-top:1px solid var(--line);grid-template-columns:8em minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:12px 24px;display:grid}.url-anatomy small{color:var(--text-3);font:inherit;text-align:right}.url-anatomy dt{color:var(--text-3)}.url-anatomy dd{color:var(--text);overflow-wrap:anywhere}.url-anatomy .hl{color:var(--t-accentBright)}.caps{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.cap{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 32px 36px;transition:background-color .16s}.cap:hover{background:#ffffff04}.cap-glyph{height:4em;color:var(--t-accent);font:13px/1 var(--mono);white-space:pre;text-shadow:0 0 .55em color-mix(in srgb, currentColor 40%, transparent);margin:0 0 28px;transition:text-shadow .2s}.cap:hover .cap-glyph{text-shadow:0 0 .6em color-mix(in srgb, currentColor 75%, transparent)}.cap-glyph b{color:var(--t-accentBright);font-weight:400}.cap-glyph i{color:var(--t-line);font-style:normal}.cap p{margin-top:8px;font-size:15px}.roles{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.role{border:1px solid var(--line);border-radius:var(--radius-l);background:var(--bg-inset);grid-template-rows:auto 1fr;gap:28px;padding:32px;display:grid}.role .title{font-size:clamp(24px,2.4vw,30px)}.role p{max-width:30em;margin-top:12px}.role .term{align-self:end;padding:0;font-size:12.5px}.selfhost-teaser{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;gap:64px;display:grid}.selfhost-teaser .lead{margin-top:16px}.selfhost-teaser .check-list{margin-top:28px}.selfhost .panel-body{padding:36px 28px}.cta{border:1px solid var(--line);border-radius:var(--radius-l);background:radial-gradient(60% 120% at 100% 100%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%), var(--bg-raised);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px 48px;margin-top:160px;padding:56px;display:grid}.cta-copy .lead{margin-top:16px}.cta-actions{justify-items:start;gap:12px;display:grid}.cta .hero-actions{margin-top:0}.page-hero.split{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;gap:56px;display:grid}.page-hero.split .display{font-size:clamp(40px,5vw,64px)}.page-hero-visual{min-width:0}.session-foot{justify-content:flex-end;min-height:28px;margin-top:12px;display:flex}.more{color:var(--text);font:13px/1 var(--mono);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:6px;align-items:baseline;gap:2px;margin-top:16px;padding-block:12px;transition:text-decoration-color .14s;display:inline-flex}.more:hover{text-decoration-color:var(--accent)}.more-tick{color:var(--accent);opacity:0}.more:hover .more-tick,.more:focus-visible .more-tick{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:1}}.step-no{color:var(--accent-text);font:13px/1 var(--mono);margin-bottom:18px}.ref{border-collapse:collapse;table-layout:fixed;width:100%;font-size:15px}.ref th,.ref td{border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline;padding:14px 16px 14px 0}.ref thead th{color:var(--text-3);font:12px/1 var(--mono);padding-top:0}.ref tbody th{overflow-wrap:anywhere;width:40%;padding-right:32px;font-weight:400}.ref tbody th code,.ref .ref-env code{color:var(--text);overflow-wrap:anywhere;font-size:13px}.ref .ref-env{width:30%;padding-right:32px}.ref .ref-env code{color:var(--t-accentBright)}.ref:has(.ref-env) tbody th{width:22%}.ref tr:last-child>*{border-bottom:0}.ref-block{border-top:1px solid var(--line);grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:48px;padding-block:64px;display:grid}.ref-block:first-of-type{border-top:0}.ref-block h2,.ref-block h3{letter-spacing:-.02em;font-size:20px;font-weight:570}.ref-block>div>p{margin-top:10px;font-size:15px}.quick{counter-reset:quick;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:0;list-style:none;display:grid}.quick li{border:1px solid var(--line);border-radius:var(--radius-l);background:var(--bg-inset);counter-increment:quick;align-content:start;gap:14px;padding:24px;display:grid}.quick li:before{color:var(--accent-text);font:12px/1 var(--mono);content:"0" counter(quick)}.quick code{overflow-wrap:anywhere;color:var(--text);font-size:13px}.quick p{font-size:14px}.glossary{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.glossary div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px}.glossary dt{color:var(--text);font:15px/1.3 var(--mono)}.glossary dd{margin-top:10px;font-size:15px}.limits dt:before{color:var(--warn);content:"[-]";letter-spacing:-.08em;margin-right:8px}.tool-groups{gap:40px;display:grid}.tool-groups .ref-block{border-top:0;padding-block:0}.feature-ref{margin-top:28px}.pipeline-band{padding-block:8px 24px}.timeline{margin-top:64px;padding:0;list-style:none}.timeline-step{border-top:1px solid var(--line);grid-template-columns:56px minmax(0,.85fr) minmax(0,1fr);align-items:start;gap:0 40px;padding-block:56px;display:grid;position:relative}.timeline-no{color:var(--accent-text);font:13px/2.6 var(--mono)}.timeline-copy .title{font-size:clamp(26px,2.6vw,34px)}.timeline-copy p{margin-top:14px;font-size:16px}.page-hero .hero-actions{align-items:center}.toc{z-index:30;top:var(--header-h);border-block:1px solid var(--line);backdrop-filter:blur(14px);background:#07070ad1;position:sticky}.toc ol{scrollbar-width:none;gap:2px;padding:0;list-style:none;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.toc a{color:var(--text-3);font:13px/1 var(--mono);white-space:nowrap;padding:14px 12px;transition:color .14s;display:block}.toc a:hover{color:var(--text)}.toc a:focus-visible{outline-offset:-2px}.feature{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:center;gap:64px;padding-block:112px;display:grid}.feature:last-of-type{border-bottom:0}.feature.duo{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.feature-copy p{margin-top:16px;font-size:16px}.feature-copy .check-list{margin-top:28px}.feature-visual{min-width:0}.feature-visual .panel-body{padding:28px 24px}.matrix{border-collapse:collapse;width:100%;font:12.5px/1.4 var(--mono)}.matrix th,.matrix td{border-bottom:1px solid var(--line);text-align:center;padding:12px 14px}.matrix thead th{color:var(--text-3);font-weight:400}.matrix tbody th{color:var(--text);text-align:left;white-space:nowrap;font-weight:400}.matrix tr:last-child>*{border-bottom:0}.matrix .y{color:var(--ok)}.matrix .n{color:var(--text-3)}.footer{border-top:1px solid var(--line);margin-top:128px}.footer-top{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px;padding-block:56px 48px;display:grid}.footer-brand p{max-width:24em;color:var(--text-3);margin-top:16px;font-size:14px}.footer-col{align-content:start;gap:10px;display:grid}.footer-col strong{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:560}.footer-col a{width:fit-content;color:var(--text-3);font-size:14px;transition:color .14s}.footer-col a:hover{color:var(--text)}.footer-bottom{border-top:1px solid var(--line);color:var(--text-3);font:12px/1.5 var(--mono);justify-content:space-between;gap:16px;padding-block:20px 40px;display:flex}@media (width<=1080px){.nav-links a{padding-inline:8px}.term{font-size:12px}.hero{gap:24px}.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=920px){:root{--header-h:56px}.nav-links,.nav-github{display:none}.nav{justify-content:space-between}.menu{display:block}.hero{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:64px 32px}.hero:before{top:30%;right:calc(-1 * var(--gutter));width:calc(100% + 2 * var(--gutter))}.hero-visual{width:100%;max-width:620px;margin-inline:auto}.section{padding-top:96px}.section-head{margin-bottom:40px}.section-head.split,.page-hero.split,.selfhost-teaser,.repo,.delivery,.feature,.cta{grid-template-columns:minmax(0,1fr);gap:32px}.feature{padding-block:80px}.release .panel-body{padding:28px 16px}.steps li{padding-right:20px}.steps li+li{padding-left:20px}.roles{grid-template-columns:minmax(0,1fr)}.cta{margin-top:112px;padding:40px 28px}.footer-top{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-brand{grid-column:1/-1}.ref-block{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:48px}.quick,.glossary{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-step{grid-template-columns:40px minmax(0,1fr);gap:24px 16px;padding-block:40px}.timeline-step>.panel{grid-column:1/-1}}@media (width<=640px){:root{--gutter:16px}.hero-visual{width:auto;max-width:none;margin-inline:calc(-1 * var(--gutter))}.steps{grid-template-columns:minmax(0,1fr)}.steps li,.steps li+li{border-left:0;padding:24px 0}.steps li+li{border-top:1px solid var(--line)}body{font-size:15px}.hero{padding-top:48px}.hero-actions{width:100%}.hero-actions .btn{flex:1 1 0}.hero .cmd{width:100%}.hero .cmd code{flex:1}.caps{grid-template-columns:minmax(0,1fr)}.cap{padding:28px 24px 30px}.panel-body,.feature-visual .panel-body{padding:20px 16px}.term{padding:18px 16px;font-size:12px}.url-anatomy div{grid-template-columns:minmax(0,1fr);gap:2px;padding:12px 16px}.url-anatomy small{text-align:left}.role{padding:24px}.matrix th,.matrix td{padding:10px 6px;font-size:11.5px}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}.footer-bottom{flex-direction:column}.quick,.glossary{grid-template-columns:minmax(0,1fr)}.ref tbody th,.ref .ref-env{padding-right:16px}.ref.stack tr{border-bottom:1px solid var(--line);gap:4px;padding:12px 0;display:grid}.ref.stack th,.ref.stack td{white-space:normal;border:0;width:auto;padding:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}.ascii.reveal pre>div{animation:none}}.docs{grid-template-columns:216px minmax(0,1fr) 196px;align-items:start;gap:56px;padding-block:40px 112px;display:grid}.docs-side,.docs-toc{top:calc(var(--header-h) + 32px);max-height:calc(100dvh - var(--header-h) - 56px);overscroll-behavior:contain;scrollbar-width:thin;position:sticky;overflow-y:auto}.docs-tree{gap:22px;font-size:14px;display:grid}.docs-tree h2{color:var(--text-3);font-family:var(--mono);letter-spacing:0;margin-bottom:6px;font-size:12px;font-weight:450}.docs-tree ul{margin:0;padding:0;list-style:none}.docs-tree li{padding-left:20px;position:relative}.docs-tree li:before,.docs-tree li:after{border:0 solid var(--line-strong);content:"";position:absolute;left:4px}.docs-tree li:before{border-left-width:1px;top:0;bottom:0}.docs-tree li:last-child:before{bottom:calc(100% - 15px)}.docs-tree li:after{border-top-width:1px;width:10px;top:15px}.docs-tree li:has(>a[aria-current=page]):after{border-color:var(--accent)}.docs-tree a{color:var(--text-2);padding:4px 0;line-height:1.4;transition:color .15s;display:block}.docs-tree a:hover,.docs-tree a[aria-current=page]{color:var(--text)}.docs-main{min-width:0;max-width:760px}.docs-head{margin-bottom:28px}.docs-crumb{color:var(--text-3);margin-bottom:14px;font-size:12px}.docs-head h1{letter-spacing:-.028em;font-size:clamp(30px,3.4vw,40px);font-weight:580;line-height:1.1}.docs-head .lead{margin-top:14px}.docs-toc p{color:var(--text-3);margin-bottom:10px;font-size:12px}.docs-toc ul,.docs-toc-inline ul{border-left:1px solid var(--line-strong);margin:0;padding:0;list-style:none}.docs-toc li a,.docs-toc-inline li a{color:var(--text-3);border-left:1px solid #0000;margin-left:-1px;padding:4px 0 4px 12px;font-size:13px;line-height:1.4;transition:color .15s,border-color .15s;display:block}.docs-toc li.d3 a,.docs-toc-inline li.d3 a{padding-left:24px}.docs-toc li a:hover,.docs-toc-inline li a:hover{border-left-color:var(--accent);color:var(--text)}.docs-menu,.docs-toc-inline{border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--bg-raised);margin-bottom:24px;display:none}.docs-menu summary,.docs-toc-inline summary{color:var(--text);cursor:pointer;align-items:baseline;gap:8px;padding:12px 16px;font-size:14px;list-style:none;display:flex}.docs-menu summary::-webkit-details-marker,.docs-toc-inline summary::-webkit-details-marker{display:none}.docs-menu summary .mono{color:var(--text-3);font-size:12px}.docs-menu summary:after,.docs-toc-inline summary:after{color:var(--text-3);font-family:var(--mono);content:"+";margin-left:auto;font-size:12px}.docs-menu[open] summary:after,.docs-toc-inline[open] summary:after{content:"-"}.docs-menu>nav{padding:4px 16px 18px}.docs-toc-inline ul{margin:0 16px 16px}.prose{color:var(--text-2);font-size:16px;line-height:1.7}.prose>*+*{margin-top:1.1em}.prose>p:first-child{color:var(--text);letter-spacing:-.006em;font-size:18px;line-height:1.6}.prose h2,.prose h3{scroll-margin-top:calc(var(--header-h) + 24px);position:relative}.prose h2{border-top:1px solid var(--line);letter-spacing:-.02em;margin-top:2.2em;padding-top:1em;font-size:22px;font-weight:570;line-height:1.25}.prose h3{margin-top:2em;font-size:17px}.prose h2+*,.prose h3+*{margin-top:.7em}.prose .anchor{color:var(--text-3);font-family:var(--mono);opacity:0;margin-left:.4em;font-weight:400;transition:opacity .15s}.prose :is(h2,h3):hover .anchor,.prose .anchor:focus-visible{opacity:1}.prose a:not(.anchor){color:var(--text);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-underline-offset:3px;transition:text-decoration-color .15s}.prose a:not(.anchor):hover{text-decoration-color:var(--accent)}.prose strong{color:var(--text);font-weight:560}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--text-3)}.prose :not(pre)>code{border:1px solid var(--line);background:var(--bg-raised);color:var(--text);overflow-wrap:anywhere;border-radius:2px;padding:.12em .36em;font-size:.86em}.prose blockquote{border-left:2px solid var(--accent);color:var(--text-2);margin-inline:0;padding:2px 0 2px 18px}.prose hr{border:0;border-top:1px dashed var(--line-strong)}.prose table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.5;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 16px 10px 0}.prose th{color:var(--text-3);border-bottom-color:var(--line-strong);font-weight:500}.prose td:first-child{color:var(--text)}.prose td:first-child code{white-space:nowrap;overflow-wrap:normal}.code-block{position:relative}.prose pre{border:1px solid var(--line-strong);border-radius:var(--radius-m);scrollbar-width:thin;margin:0;padding:16px 18px;font-size:13.5px;line-height:1.6;overflow-x:auto;background:var(--bg-inset)!important}.prose pre[data-language]:not([data-language=plaintext],[data-language=text]):before{color:var(--text-3);content:attr(data-language);margin-bottom:10px;font-size:11px;display:block}.code-copy{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--bg-raised);color:var(--text-3);font-family:var(--mono);cursor:pointer;opacity:0;padding:3px 8px;font-size:11px;transition:opacity .15s,color .15s;position:absolute;top:10px;right:10px}.code-block:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy:hover{color:var(--text)}@media (hover:none){.code-copy{opacity:1}}.docs-foot{border-top:1px solid var(--line);gap:28px;margin-top:64px;padding-top:24px;display:grid}.docs-edit{color:var(--text-3);font-size:14px;transition:color .15s}.docs-edit:hover{color:var(--text)}.docs-pager{grid-template-columns:1fr 1fr;gap:12px;display:grid}.docs-pager a{border:1px solid var(--line-strong);border-radius:var(--radius-m);color:var(--text);gap:4px;padding:14px 16px;font-size:15px;transition:border-color .15s,background .15s;display:grid}.docs-pager a .mono{color:var(--text-3);font-size:12px}.docs-pager a.next{text-align:right;grid-column:2}.docs-pager a:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--bg-raised)}@media (width<=1180px){.docs{grid-template-columns:200px minmax(0,1fr);gap:48px}.docs-toc{display:none}.docs-toc-inline{display:block}}@media (width<=920px){.docs{grid-template-columns:minmax(0,1fr);padding-top:24px}.docs-side,.docs-crumb{display:none}.docs-menu{display:block}}@media (width<=640px){.prose>p:first-child{font-size:17px}.prose pre{padding:14px;font-size:12px}.docs-pager{grid-template-columns:1fr}.docs-pager a.next{grid-column:1}}
