@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.code-cobalt{--code-cobalt-foreground: #e4e8f5;--code-cobalt-background: #0b1430;--code-cobalt-token-comment: #6c7a9e;--code-cobalt-token-keyword: #ff7a57;--code-cobalt-token-string: #f0c27a;--code-cobalt-token-string-expression: #f0c27a;--code-cobalt-token-function: #8fb2ff;--code-cobalt-token-constant: #c9c6ea;--code-cobalt-token-parameter: #f6d6a8;--code-cobalt-token-punctuation: #97a3c4;--code-cobalt-token-link: #8fb2ff;--code-cobalt-line: rgb(255 255 255 / .12);--code-cobalt-chrome: rgb(255 255 255 / .16);--code-cobalt-muted: rgb(228 232 245 / .6);margin-block:32px;padding:40px;border-radius:var(--site-card-radius);background:linear-gradient(140deg,#032455,#2c5fc1 38%,#c1c4dd 68%,#ebb769,#e54823)}.code-cobalt-window{overflow:hidden;margin:0;border:0;border-radius:12px;background:var(--code-cobalt-background);color:var(--code-cobalt-foreground);box-shadow:0 0 0 1px var(--code-cobalt-line),0 2.8px 2.2px #00000009,0 6.7px 5.3px #0000000c,0 12.5px 10px #0000000f,0 22.3px 17.9px #00000012,0 41.8px 33.4px #00000016}.code-cobalt-window>:has(>figcaption){display:grid;grid-template-columns:72px 1fr 72px;align-items:center;height:40px;padding:0 12px 0 16px;border-bottom:0;background:transparent}.code-cobalt-window>:has(>figcaption):before{content:"";width:12px;height:12px;border-radius:50%;background:var(--code-cobalt-chrome);box-shadow:20px 0 0 var(--code-cobalt-chrome),40px 0 0 var(--code-cobalt-chrome)}.code-cobalt-window figcaption{text-align:center;color:var(--code-cobalt-muted);font:500 12px/1 var(--site-font);letter-spacing:.02em}.code-cobalt-window>:has(>figcaption)>:last-child{justify-self:end;margin:0}.code-cobalt-window>:has(>figcaption) button{color:var(--code-cobalt-muted);font:500 12px/1 var(--site-font);transition:color .15s ease,background-color .15s ease}.code-cobalt-window>:has(>figcaption) button:hover{color:var(--code-cobalt-foreground);background:var(--code-cobalt-chrome)}.code-cobalt-window>:has(>figcaption) button:focus-visible{outline:2px solid var(--code-cobalt-token-function);outline-offset:0}.code-cobalt pre{color:var(--code-cobalt-foreground);font:400 13px/1.7 "IBM Plex Mono",var(--font-mono);font-variant-ligatures:none;tab-size:2}.code-cobalt pre :is(code,button){font:inherit}.code-cobalt :is(pre,[role=region]){scrollbar-width:thin;scrollbar-color:var(--code-cobalt-chrome) transparent}.code-cobalt :is(pre,[role=region]):focus-visible{outline:2px solid var(--code-cobalt-token-function);outline-offset:-2px}@media(max-width:480px){.code-cobalt{padding:16px}}.blog-index-heading{padding:40px;border-bottom:1px solid var(--home-line)}.keiki-site .blog-index-heading .home-feature-intro{margin:0}.blog-categories{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}.blog-article-heading h1{font:600 24px/1.4 var(--site-font);letter-spacing:-.025em;margin:0}.blog-posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.blog-feature{min-width:0;border-inline-end:1px solid var(--home-line)}.blog-feature:nth-child(2n){border-inline-end:0}.blog-feature-link{display:block;height:100%;color:inherit}.keiki-site .blog-feature-link:focus-visible{outline-offset:-4px}.blog-feature-art{overflow:hidden}.blog-feature-art img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:center 42%}.blog-feature-copy{padding:24px 32px 32px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.blog-feature-copy h2{font:600 24px/1.4 var(--site-font);letter-spacing:-.025em;margin:0}.blog-feature-copy>p{font-size:16px;font-weight:450;line-height:1.5;color:var(--home-muted);max-width:54ch}.blog-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--home-muted);font-size:13px}.blog-meta>span:first-child{color:var(--home-foreground)}.blog-back{padding:20px 40px}.blog-back a{display:inline-flex;align-items:center;gap:8px;min-height:32px}.blog-article-heading{padding:16px 40px 40px;display:grid;gap:8px}.blog-article-heading .blog-meta{margin-bottom:8px}.blog-description{color:var(--home-muted);font-size:16px;font-weight:450;line-height:1.5;max-width:65ch}.blog-cover{border-block:1px solid var(--home-line)}.blog-cover img{width:100%;height:clamp(280px,40vw,560px);object-fit:cover;object-position:center 40%;display:block;outline:1px solid oklch(0 0 0 / .1);outline-offset:-1px}.blog-prose{width:100%;max-width:78ch;margin-inline:auto;min-width:0;padding:48px 40px 64px;font-size:16px;line-height:1.65;overflow-wrap:break-word}.blog-prose p{margin-block:0 24px}.blog-prose h2{border-top:1px solid var(--home-line);padding-top:32px;margin-block:40px 20px;font-size:24px;line-height:1.4;font-weight:500;letter-spacing:-.025em;text-wrap:balance}.blog-prose h3{margin-block:32px 16px;font-size:20px;line-height:1.4;font-weight:500;letter-spacing:-.02em}.blog-prose strong{font-weight:600}.blog-prose a{text-decoration:underline;text-underline-offset:4px;color:var(--text-color-kumo-brand)}.blog-prose img:not(.blog-embed *){display:block;width:100%;height:auto;margin-block:0 24px}.blog-prose ul{list-style:disc;padding-inline-start:24px;margin-block:0 24px}.blog-prose ol{list-style:decimal;padding-inline-start:24px;margin-block:0 24px}.blog-prose li+li{margin-top:8px}.blog-prose video:not(.blog-embed *){display:block;width:100%;margin-block:32px 12px;background:var(--home-foreground);aspect-ratio:16 / 9}.blog-prose video+p{font-size:13px;color:var(--home-muted)}.blog-code.code-cobalt{--code-cobalt-background: var(--home-surface);--code-cobalt-foreground: var(--home-foreground);--code-cobalt-token-constant: var(--home-foreground);--code-cobalt-token-parameter: var(--home-foreground);--code-cobalt-token-punctuation: var(--home-muted);--code-cobalt-token-function: var(--site-palette-ember-deep);--code-cobalt-token-string: var(--site-palette-teal);--code-cobalt-token-string-expression: var(--site-palette-teal);--code-cobalt-token-link: var(--site-palette-teal);--code-cobalt-token-keyword: var(--home-subtle);--code-cobalt-token-comment: var(--home-subtle);--code-cobalt-line: var(--home-line);--code-cobalt-chrome: var(--home-selected);--code-cobalt-muted: var(--home-subtle);padding:0;background:none}.blog-code .code-cobalt-window{border-radius:var(--site-card-radius);box-shadow:0 0 0 1px var(--code-cobalt-line)}.blog-code .code-cobalt-window>:has(>figcaption){display:flex;justify-content:space-between;height:44px;padding:0 8px 0 20px;border-bottom:1px solid var(--code-cobalt-line)}.blog-code .code-cobalt-window>:has(>figcaption):before{content:none}.blog-code .copy-button-feedback{justify-items:center;text-align:center}.blog-code pre{max-width:100%;margin:0;padding:16px 20px 20px}.blog-code pre code{display:block}.blog-code .line{display:block;white-space:pre-wrap;overflow-wrap:anywhere}.blog-code-copy-error{padding:0 20px 16px;color:var(--code-cobalt-token-string);font:13px/1.5 var(--site-font)}@media(max-width:480px){.blog-code{margin-inline:-20px;border-radius:0}}.blog-table{max-width:100%;margin-block:0 24px;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--home-line);border-radius:12px}.blog-table:focus-visible{outline:2px solid var(--text-color-kumo-brand);outline-offset:2px}.blog-table table{width:100%;min-width:520px;border-collapse:collapse;font-size:14px;line-height:1.5}.blog-table th{text-align:start;font-weight:600;background:var(--home-soft, #f7f8fb)}.blog-table :is(th,td){padding:10px 16px;vertical-align:top;border-bottom:1px solid var(--home-line)}.blog-table tr:last-child td{border-bottom:0}.blog-table td+td,.blog-table th+th{border-inline-start:1px solid var(--home-line)}.blog-prose :not(pre)>code{font-size:.875em;background:var(--home-selected);padding:2px 4px;border-radius:3px}.blog-prose blockquote{margin-block:0 24px;padding-inline-start:16px;border-inline-start:2px solid var(--home-line);color:var(--home-foreground)}.blog-prose blockquote p{margin-block:0 8px}.blog-prose blockquote p+p{font-size:14px;color:var(--home-muted)}.blog-prose[style*=--quote-avatar] blockquote p+p{display:flex;align-items:center;min-height:24px;padding-inline-start:32px;background:var(--quote-avatar) left center / 24px 24px no-repeat}.blog-customer{display:flex;flex-wrap:wrap;align-items:center;gap:20px 40px;margin-block:0 40px;padding-block:20px;border-block:1px solid var(--home-line)}.blog-customer-identity{display:flex;gap:12px;align-items:center;margin-inline-end:auto}.blog-customer img{display:block;flex-shrink:0;outline:1px solid oklch(0 0 0 / .1);outline-offset:-1px}.blog-customer-identity img{width:40px;height:40px;border-radius:10px;background:var(--home-soft)}.blog-customer-identity strong{display:block;font-size:15px;font-weight:600;line-height:20px;color:var(--home-foreground)}.blog-customer-identity p{margin:0;color:var(--home-muted);font-size:14px;line-height:20px}.blog-customer dl{display:flex;gap:32px;margin:0}.blog-customer dl>div{display:grid;gap:4px}.blog-customer dt{font-size:12px;line-height:16px;color:var(--home-muted)}.blog-customer dd{margin:0;display:flex;align-items:center;height:20px;font-size:14px;font-weight:500;line-height:20px;white-space:nowrap;color:var(--home-foreground)}.blog-customer dd img{width:20px;height:20px;border-radius:5px}.blog-prose .blog-customer dd a{color:inherit}.blog-stats{margin:8px 0 40px}.blog-stats dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0}.blog-stats dl>div{display:flex;flex-direction:column;gap:8px;padding:4px 24px 4px 0}.blog-stats dl>div+div{padding-inline-start:24px;border-inline-start:1px solid var(--home-line)}.blog-stats dd{order:-1;position:relative;margin:0;padding-top:14px;font-size:36px;font-weight:600;line-height:1.05;letter-spacing:-.035em;font-variant-numeric:tabular-nums;color:var(--home-foreground)}.blog-stats dd:before{content:"";position:absolute;top:0;left:0;width:24px;height:2px;border-radius:1px;background:var(--site-brand-gradient)}.blog-stats dt{font-size:14px;line-height:20px;color:var(--home-muted)}.blog-prose .blog-stats-source{margin-top:auto;font-size:12px;line-height:16px;color:var(--home-subtle);text-decoration:none}@media(hover:hover){.blog-prose .blog-stats-source:hover{color:var(--home-foreground);text-decoration:underline}}.blog-compare{margin:32px 0 40px}.blog-compare table{width:100%;border-collapse:collapse;font-size:14px;line-height:20px}.blog-compare thead th{padding:0 16px 12px;text-align:start;font-size:13px;font-weight:600;color:var(--home-muted)}.blog-compare thead th{padding-top:12px}.blog-compare thead th:last-child{color:var(--home-foreground);background:var(--home-soft);border-radius:12px 12px 0 0}.blog-compare tbody tr:last-child td:nth-of-type(2){border-radius:0 0 12px 12px}.blog-compare tbody th{width:96px;padding:14px 16px 14px 0;text-align:start;vertical-align:top;font-size:12px;font-weight:500;line-height:20px;color:var(--home-muted)}.blog-compare tbody td{padding:14px 16px;vertical-align:top;border-top:1px solid var(--home-line)}.blog-compare tbody td:nth-of-type(1){color:var(--home-muted)}.blog-compare tbody td:nth-of-type(2){color:var(--home-foreground);font-weight:500;background:var(--home-soft)}.blog-compare tbody th{border-top:1px solid var(--home-line)}.blog-stats figcaption{margin-top:12px;font-size:13px;line-height:18px;color:var(--home-muted)}.blog-phone-demo{margin:48px 0}.blog-phone-stage{display:grid;place-items:center;padding:40px 24px;border-radius:20px;background:#032455 url(/blog/veeza-mesh.jpg) center / cover;overflow:hidden}.blog-phone{width:min(280px,100%);filter:drop-shadow(0 24px 48px oklch(.2 .08 260 / .35))}@media(hover:hover){.blog-frame a:not(.blog-feature-link):hover{text-decoration:underline;text-underline-offset:4px}}@media(max-width:800px){.blog-posts{grid-template-columns:1fr}.blog-feature{border-inline-end:0}.blog-feature+.blog-feature{border-top:1px solid var(--home-line)}}@media(max-width:480px){.blog-index-heading,.blog-article-heading{padding:32px 20px}.blog-categories{gap:4px}.blog-feature-copy{padding:20px}.blog-back{padding:16px 20px}.blog-prose{padding:32px 20px}.blog-prose h2{font-size:22px}.blog-stats dl{grid-template-columns:1fr 1fr;row-gap:24px}.blog-stats dl>div:nth-child(odd){padding-inline-start:0;border-inline-start:0}.blog-compare thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.blog-compare tbody tr{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--home-line);padding-block:12px}.blog-compare tbody th{grid-column:1 / -1;width:auto;padding:0 0 8px;border:0}.blog-compare tbody td{padding:0 12px 0 0;border:0}.blog-compare tbody td:nth-of-type(2){padding:8px;margin-top:-8px;border-radius:8px}.blog-compare tbody td:before{content:attr(data-label);display:block;margin-bottom:4px;font-size:11px;font-weight:500;color:var(--home-subtle)}.blog-customer dl{flex-wrap:wrap;gap:16px 24px}}
