.kh{--g:40px;--pad:var(--ke-pad);--btn:1;background-color:var(--ke-bg);background-image:linear-gradient(var(--ke-scene) 1px,transparent 1px),linear-gradient(90deg,var(--ke-scene) 1px,transparent 1px);background-size:var(--g) var(--g);background-position:max(var(--pad), 50% + var(--g) / 2 - 600px) 0;border-bottom:1px solid var(--ke-line)}@media (width<=1279px){.kh{--g:24px;--btn:2}}@media (width<=719px){.kh{--g:min(22px, (100vw - 2 * var(--pad)) / 15)}}.kh-in{max-width:1200px;padding:calc(2*var(--g)) var(--pad);box-sizing:content-box;margin:0 auto;container-type:inline-size}.kh-row{justify-content:space-between;align-items:center;column-gap:var(--g);row-gap:calc(2*var(--g));flex-wrap:wrap;display:flex}.kh-text{flex:0 0 calc(15*var(--g));flex-direction:column;align-items:flex-start;max-width:100%;display:flex}.kh-badge{box-sizing:border-box;height:var(--g);width:calc(13*var(--g));border:1px solid var(--ke-line-green);background:var(--ke-bg);max-width:100%;font-family:var(--ke-font-mono);font-size:min(13px,calc(.55*var(--g)));color:var(--ke-text-2);white-space:nowrap;align-items:center;gap:10px;margin:0;padding:0 14px;display:flex;overflow:hidden}.kh-badge svg{flex:none}@media (width<=1279px){.kh-badge{height:auto;min-height:calc(2*var(--g));white-space:normal;width:auto;line-height:calc(var(--g) - 3px);padding:2px 12px}}.kh-h1{margin:var(--g) 0 0;height:calc(4*var(--g));width:calc(15*var(--g));max-width:100%;font-size:inherit;font-weight:inherit;flex-direction:column;display:flex}.kh-k{font-family:var(--ke-font-display);font-weight:300;font-size:calc(var(--g) * 2 / .7);letter-spacing:.1925em;text-transform:uppercase;color:var(--ke-text-strong);margin:-.1475em -.2745em 0 -.082em;line-height:1;display:block}.kh-e{font-family:var(--ke-font-display);font-weight:300;font-size:calc(var(--g) / .7);margin:calc(.3536*var(--g)) -.074em 0 -.084em;text-transform:uppercase;color:var(--ke-text-engine);justify-content:space-between;line-height:1;display:flex}.kh-sub{margin:var(--g) 0 0;font-size:max(16px,calc(.65*var(--g)));line-height:var(--g);max-width:calc(15*var(--g));color:var(--ke-text)}.kh-sub .green{color:var(--ke-green)}.kh-sub .gold{color:var(--ke-gold)}.kh-tag{margin:calc(.5*var(--g)) 0 0;font-size:max(15px,calc(.425*var(--g)));line-height:var(--g);color:var(--ke-text-muted)}.kh-ctas{margin-top:calc(.5*var(--g));gap:var(--g);flex-wrap:wrap;display:flex}.kh-btn{box-sizing:border-box;height:calc(var(--btn)*var(--g));justify-content:center;align-items:center;gap:10px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.kh-btn1{width:calc(4*var(--g));background:var(--ke-green);color:var(--ke-bg)}.kh-btn1:hover{background:var(--ke-green-hover);color:var(--ke-bg)}@media (width<=1279px){.kh-btn1{width:calc(7*var(--g))}}.kh-fig{flex:0 0 calc(10*var(--g));width:calc(10*var(--g));max-width:100%;margin:0}@media (width>=720px) and (width<=1279px){.kh-fig{margin-top:calc(3*var(--g));align-self:flex-start}}@container (width<572px){.kh-row{flex-direction:column;align-items:flex-start;row-gap:0}.kh-text{display:contents}.kh-text>*{max-width:min(100%,calc(15*var(--g)))}.kh-fig{margin-top:calc(1.5*var(--g));flex:none;order:1}.kh-ctas{margin-top:var(--g);order:2}}.kh-stage{aspect-ratio:1;border:1px solid var(--ke-line);cursor:crosshair;box-sizing:border-box;touch-action:pan-y pinch-zoom;background:0 0;width:100%;position:relative}.kh-stage svg{width:100%;height:100%;display:block}@media (width<=639px){.kh-fig:where(.astro-qmrutqly){display:none}}.wrap:where(.astro-6zltmgwx){flex-direction:column;gap:28px;padding-block:80px;display:flex}.head:where(.astro-6zltmgwx){max-width:640px}.text:where(.astro-6zltmgwx){color:var(--ke-text-muted);margin:0}.frame:where(.astro-6zltmgwx){aspect-ratio:16/10;background:var(--ke-bg);width:100%;position:relative;overflow:hidden;container-type:size}.state:where(.astro-6zltmgwx){position:absolute;inset:0}.state:where(.astro-6zltmgwx)[hidden]{display:none}.center:where(.astro-6zltmgwx){text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.center:where(.astro-6zltmgwx) p:where(.astro-6zltmgwx){margin:0}.shot:where(.astro-6zltmgwx){outline:1px solid var(--ke-green);outline-offset:-1px;opacity:.25;width:min(100cqw,133.333cqh);height:min(100cqh,75cqw);margin:auto;display:block;position:absolute;inset:0}.poster:where(.astro-6zltmgwx) .center:where(.astro-6zltmgwx){gap:22px;padding:24px}.play:where(.astro-6zltmgwx){background:var(--ke-green);min-height:56px;color:var(--ke-bg);font:600 17px var(--ke-font-sans);cursor:pointer;border:0;border-radius:0;align-items:center;gap:12px;padding:0 30px 0 24px;display:inline-flex}.play:where(.astro-6zltmgwx):hover{background:var(--ke-green-hover)}.mono:where(.astro-6zltmgwx){font-family:var(--ke-font-mono);gap:14px}.loading-title:where(.astro-6zltmgwx){font-size:15px}.progress:where(.astro-6zltmgwx){box-sizing:border-box;border:1px solid var(--ke-line-green);width:300px;max-width:70%;height:8px;position:relative;overflow:hidden}.fill:where(.astro-6zltmgwx){background:var(--ke-green);width:45%;animation:1.4s ease-in-out infinite slide;position:absolute;inset:0 auto 0 0}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(225%)}}@media (prefers-reduced-motion:reduce){.fill:where(.astro-6zltmgwx){animation:none}}.size:where(.astro-6zltmgwx){color:var(--ke-text-muted);font-size:13px}.frame:where(.astro-6zltmgwx) iframe{visibility:hidden;border:0;width:100%;height:100%;position:absolute;inset:0}.frame:where(.astro-6zltmgwx)[data-state=playing] iframe{visibility:visible}.stop:where(.astro-6zltmgwx)[hidden]{display:none}.stop:where(.astro-6zltmgwx){z-index:1;border:1px solid var(--ke-line-green);background:var(--ke-bg);min-height:40px;color:var(--ke-text);font:500 13px var(--ke-font-mono);cursor:pointer;border-radius:0;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:absolute;top:12px;right:12px}.stop:where(.astro-6zltmgwx):hover{border-color:var(--ke-green)}.message:where(.astro-6zltmgwx){gap:14px;padding:32px}.message-title:where(.astro-6zltmgwx){font-family:var(--ke-font-display);font-size:28px;font-weight:400}.message-text:where(.astro-6zltmgwx){max-width:42ch;color:var(--ke-text-2)}.message-text:where(.astro-6zltmgwx).wide{max-width:46ch}.notice:where(.astro-6zltmgwx){max-width:24ch;font-size:28px;line-height:1.3}.source:where(.astro-6zltmgwx){align-items:center;min-height:44px;font-weight:600;display:inline-flex}.hint:where(.astro-6zltmgwx){font-family:var(--ke-font-mono);color:var(--ke-text-muted);align-items:center;gap:10px;margin:0;font-size:13px;display:flex}.hint:where(.astro-6zltmgwx) svg{flex:none}.touch:where(.astro-6zltmgwx){display:none}@media not (any-pointer:fine){.play:where(.astro-6zltmgwx),.hint:where(.astro-6zltmgwx){display:none}.touch:where(.astro-6zltmgwx){display:block}.poster:where(.astro-6zltmgwx) .center:where(.astro-6zltmgwx){padding:32px 24px}}@media (width<=639px){.wrap:where(.astro-6zltmgwx){padding-block:64px}.frame:where(.astro-6zltmgwx){aspect-ratio:1}.message-title:where(.astro-6zltmgwx){font-size:24px;line-height:1.2}.message-text:where(.astro-6zltmgwx){max-width:30ch;font-size:15px;line-height:1.5}.notice:where(.astro-6zltmgwx){max-width:18ch;font-size:22px;line-height:1.35}}.wrap:where(.astro-rrdbrpeg){flex-direction:column;gap:36px;padding-block:80px;display:flex}.pipeline:where(.astro-rrdbrpeg){border:1px solid var(--ke-line);background:var(--ke-bg);margin:0;padding:28px 32px}.pipeline:where(.astro-rrdbrpeg) svg{width:100%;height:auto;display:block}.row-label:where(.astro-rrdbrpeg){font-family:var(--ke-font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ke-text-muted);margin:0 0 -20px;font-size:12px}.grid:where(.astro-rrdbrpeg){background:var(--ke-line);border:1px solid var(--ke-line);grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1px;display:grid}.card:where(.astro-rrdbrpeg){background:var(--ke-bg);flex-direction:column;gap:12px;padding:28px;display:flex}.card:where(.astro-rrdbrpeg)>svg{flex:none;display:block}h3:where(.astro-rrdbrpeg){font-family:var(--ke-font-display);margin:0;font-size:21px;font-weight:500}.body:where(.astro-rrdbrpeg){max-width:34ch;color:var(--ke-text-muted);flex-direction:column;flex:auto;justify-content:center;gap:10px;padding:4px 0 20px;line-height:1.5;display:flex}.body:where(.astro-rrdbrpeg) p:where(.astro-rrdbrpeg){text-wrap:pretty;margin:0}.gold:where(.astro-rrdbrpeg){color:var(--ke-gold)}.well:where(.astro-rrdbrpeg){box-sizing:border-box;border:1px solid var(--ke-line);background:var(--ke-panel);flex-direction:column;justify-content:center;gap:10px;height:160px;margin:auto 0 0;padding:12px;display:flex}.mono-10:where(.astro-rrdbrpeg),.mono-9:where(.astro-rrdbrpeg){font-family:var(--ke-font-mono);color:var(--ke-text-muted);font-size:10px;line-height:1.6}.mono-9:where(.astro-rrdbrpeg){font-size:9px}.nowrap:where(.astro-rrdbrpeg){white-space:nowrap}.primitives:where(.astro-rrdbrpeg){grid-template-columns:repeat(6,1fr);gap:4px;display:grid}.primitives:where(.astro-rrdbrpeg)>.item:where(.astro-rrdbrpeg){grid-column:span 2}.primitives:where(.astro-rrdbrpeg):first-child>.item:where(.astro-rrdbrpeg):first-child{grid-column:2/span 2}.prims:where(.astro-rrdbrpeg){gap:4px;padding:6px 12px}.item:where(.astro-rrdbrpeg){flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.item:where(.astro-rrdbrpeg) .mono-10:where(.astro-rrdbrpeg){line-height:14px}.item:where(.astro-rrdbrpeg) svg,.labelled:where(.astro-rrdbrpeg) svg,.svg-flow:where(.astro-rrdbrpeg)>svg{display:block}.platforms:where(.astro-rrdbrpeg){padding:12px 16px;list-style:none}.platform:where(.astro-rrdbrpeg){align-items:center;gap:10px;display:flex}.platform-label:where(.astro-rrdbrpeg){font-family:var(--ke-font-mono);color:var(--ke-text);flex:auto;font-size:13px}.platform:where(.astro-rrdbrpeg) svg{flex:none;display:block}.soon:where(.astro-rrdbrpeg) .platform-label:where(.astro-rrdbrpeg){color:var(--ke-text-muted)}.soon-tag:where(.astro-rrdbrpeg){font-family:var(--ke-font-mono);color:var(--ke-text-muted);font-size:12px}.svg-flow:where(.astro-rrdbrpeg){justify-content:center;align-items:center;gap:8px;display:flex}.labelled:where(.astro-rrdbrpeg){flex-direction:column;align-items:center;gap:6px;display:flex}.sizes:where(.astro-rrdbrpeg){justify-content:center;align-items:flex-end;gap:16px;display:flex}.well:where(.astro-rrdbrpeg) .full{width:100%;height:auto;display:block}.agent:where(.astro-rrdbrpeg){padding:12px 14px}.frames:where(.astro-rrdbrpeg){justify-content:space-between;gap:6px;display:flex}.pipeline:where(.astro-rrdbrpeg) .tall,.pager:where(.astro-rrdbrpeg){display:none}@media (width<=639px){.wrap:where(.astro-rrdbrpeg){padding-block:64px}.pipeline:where(.astro-rrdbrpeg){padding:20px}.pipeline:where(.astro-rrdbrpeg) .wide{display:none}.pipeline:where(.astro-rrdbrpeg) .tall{display:block}.grid:where(.astro-rrdbrpeg){margin-inline:calc(-1 * var(--ke-pad));padding:0 var(--ke-pad) 4px;scroll-snap-type:x mandatory;scroll-padding-inline:var(--ke-pad);scrollbar-width:none;background:0 0;border:0;gap:12px;display:flex;overflow-x:auto}.grid:where(.astro-rrdbrpeg)::-webkit-scrollbar{display:none}.grid:where(.astro-rrdbrpeg).paged{scroll-snap-type:none;touch-action:pan-y;overflow-x:hidden}.grid:where(.astro-rrdbrpeg).dragging{user-select:none;cursor:grabbing}.grid:where(.astro-rrdbrpeg):after{content:"";flex:0 0 calc(var(--ke-pad) - 12px)}.card:where(.astro-rrdbrpeg){box-sizing:border-box;border:1px solid var(--ke-line);scroll-snap-align:start;flex:0 0 314px;padding:20px 16px}.well:where(.astro-rrdbrpeg):not(.platforms,.agent){padding:12px 8px}.well:where(.astro-rrdbrpeg).prims{padding:6px 8px}.svg-flow:where(.astro-rrdbrpeg){gap:4px}.sizes:where(.astro-rrdbrpeg){gap:12px}.pager:where(.astro-rrdbrpeg){justify-content:center;align-items:center;gap:20px;margin-top:-24px;display:flex}.dots:where(.astro-rrdbrpeg){gap:8px;display:flex}.arrow:where(.astro-rrdbrpeg){border:1px solid var(--ke-line-green);background:var(--ke-bg);width:44px;height:44px;color:var(--ke-green);cursor:pointer;border-radius:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.arrow:where(.astro-rrdbrpeg):hover{border-color:var(--ke-green)}.arrow:where(.astro-rrdbrpeg):disabled{border-color:var(--ke-line);color:var(--ke-line-green);cursor:default}.arrow:where(.astro-rrdbrpeg) svg{display:block}.dots:where(.astro-rrdbrpeg) span:where(.astro-rrdbrpeg){background:var(--ke-line-green);width:6px;height:6px}.dots:where(.astro-rrdbrpeg) span:where(.astro-rrdbrpeg).on{background:var(--ke-green)}}.wrap:where(.astro-uiwhh4gg){flex-direction:column;gap:36px;padding-block:80px;display:flex}.grid:where(.astro-uiwhh4gg){background:var(--ke-line);border:1px solid var(--ke-line);grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1px;display:grid}.card:where(.astro-uiwhh4gg){background:var(--ke-bg);color:var(--ke-text);flex-direction:column;gap:12px;padding:28px;text-decoration:none;display:flex}.card:where(.astro-uiwhh4gg):hover{color:var(--ke-text)}.card:where(.astro-uiwhh4gg):hover .name:where(.astro-uiwhh4gg){color:var(--ke-green-hover)}.top:where(.astro-uiwhh4gg){justify-content:space-between;align-items:center;gap:12px;display:flex}.icon:where(.astro-uiwhh4gg){width:40px;height:40px;color:var(--ke-green);justify-content:center;align-items:center;display:flex}.icon:where(.astro-uiwhh4gg) svg{display:block}.ext:where(.astro-uiwhh4gg){color:var(--ke-text-muted);flex:none}.names:where(.astro-uiwhh4gg){flex-direction:column;gap:4px;display:flex}.name:where(.astro-uiwhh4gg){font-family:var(--ke-font-display);font-size:21px;font-weight:500;line-height:1.2}.handle:where(.astro-uiwhh4gg){font-family:var(--ke-font-mono);color:var(--ke-green);font-size:13px}.line:where(.astro-uiwhh4gg){color:var(--ke-text-muted);font-size:15px;line-height:1.5}@media (width<=639px){.wrap:where(.astro-uiwhh4gg){padding-block:64px}}.wrap:where(.astro-7fiedewa){flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-block:64px;display:flex}.copy:where(.astro-7fiedewa){flex-direction:column;flex:460px;gap:8px;display:flex}.title:where(.astro-7fiedewa){font-family:var(--ke-font-display);margin:0;font-size:32px;font-weight:400;line-height:1.15}.text:where(.astro-7fiedewa){color:var(--ke-text-muted);margin:0}.hl:where(.astro-7fiedewa){color:var(--ke-text)}.hl:where(.astro-7fiedewa):hover{color:var(--ke-green-hover)}.actions:where(.astro-7fiedewa){flex-wrap:wrap;align-items:center;gap:12px;display:flex}.compare:where(.astro-7fiedewa){border:1px solid var(--ke-green);min-height:48px;color:var(--ke-green);align-items:center;padding:0 22px;font-weight:600;text-decoration:none;display:inline-flex}.compare:where(.astro-7fiedewa):hover{border-color:var(--ke-green-hover);color:var(--ke-green-hover)}@media (width<=639px){.wrap:where(.astro-7fiedewa){padding-block:56px}}.wrap:where(.astro-tl37l22n){flex-direction:column;gap:32px;padding-block:72px 88px;display:flex}.head:where(.astro-tl37l22n){flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.all:where(.astro-tl37l22n){align-items:center;min-height:44px;font-weight:600;display:inline-flex}.sheet:where(.astro-tl37l22n){color:var(--ke-text);flex-wrap:wrap;align-items:center;gap:20px 40px;text-decoration:none;display:flex}.sheet:where(.astro-tl37l22n):hover{color:var(--ke-text)}.sheet:where(.astro-tl37l22n):hover .title:where(.astro-tl37l22n){color:var(--ke-green-hover)}.cover:where(.astro-tl37l22n){aspect-ratio:16/9;border:1px solid var(--ke-line);background-color:var(--ke-bg);background-image:linear-gradient(var(--ke-scene) 1px, transparent 1px), linear-gradient(90deg, var(--ke-scene) 1px, transparent 1px);background-position:-1px -1px;background-size:20px 20px;flex:360px;max-width:480px}.cover:where(.astro-tl37l22n) svg{width:100%;height:100%;display:block}.body:where(.astro-tl37l22n){flex-direction:column;flex:280px;gap:14px;display:flex}.kind:where(.astro-tl37l22n){font-family:var(--ke-font-mono);color:var(--ke-text-muted);font-size:13px}.text:where(.astro-tl37l22n){flex-direction:column;gap:4px;display:flex}.title:where(.astro-tl37l22n){font-family:var(--ke-font-display);font-size:21px;font-weight:500;line-height:1.2}.summary:where(.astro-tl37l22n){max-width:46ch;color:var(--ke-text-muted);font-size:15px;line-height:1.5}@media (width<=639px){.wrap:where(.astro-tl37l22n){padding-block:64px 72px}}
