.article-page,.blog-page{--fig-ok:#2d6a45;--fig-ok-soft:#e7f1ea;--fig-bad:#a8331f;--fig-bad-soft:#f8e6e1;--fig-blue:#3d6a99;--tok-keyword:#a44826;--tok-string:#3f6b35;--tok-number:#8a5600;--tok-function:#2f5b8a;--tok-type:#7a4a8c;--tok-comment:#6c675e}.dark .article-page,.dark .blog-page{--fig-ok:#9fd0ac;--fig-ok-soft:#1f2b23;--fig-bad:#ffb4a6;--fig-bad-soft:#35211d;--fig-blue:#9cc2ea;--tok-keyword:#edb89c;--tok-string:#b2d49a;--tok-number:#e6c27a;--tok-function:#a6c8ee;--tok-type:#d8b6e6;--tok-comment:#a3a297}.article-page .article-category{flex-wrap:wrap;gap:0 .375rem;font-weight:500;display:flex}.article-page .blog-meta-quiet{color:var(--muted-foreground);font-weight:400}.article-page .page-title{text-wrap:balance;font-size:clamp(1.875rem,4.5vw,2.375rem);line-height:1.15}.article-page .article-summary{text-wrap:pretty;font-size:1.0625rem;line-height:1.7}.article-page .article-byline p{font-size:.75rem}.article-page .article-reading-layout .prose{color:var(--secondary-copy);font-size:1.0625rem;line-height:1.75}.article-page .article-reading-layout .prose>*+*{margin-top:1.375rem}.article-page .article-reading-layout .prose h2{margin-top:3.75rem;font-size:1.5rem;line-height:1.3}.article-page .article-reading-layout .prose h3{margin-top:2.5rem;font-size:1.1875rem}.article-page .article-reading-layout .prose :is(h2,h3)+*{margin-top:1rem}.article-page .article-reading-layout .prose em{color:var(--foreground);font-style:italic}.article-page .article-reading-layout .prose :not(pre)>code{overflow-wrap:anywhere;font-size:.84em}.article-page .article-reading-layout .prose li+li{margin-top:.625rem}.article-page .prose>.blog-code{margin-block:1.75rem}.article-page .blog-code{background:var(--card);border-radius:.75rem}.article-page .blog-code .code-language{text-transform:lowercase;padding:.25rem .5rem .25rem 1rem}.article-page .blog-code pre{tab-size:2;padding:1rem 1.125rem 1.125rem;font-size:.8125rem;line-height:1.7}.article-page .blog-code pre:focus-visible{outline:2px solid var(--focus-color);outline-offset:-2px}.tok-keyword{color:var(--tok-keyword)}.tok-string{color:var(--tok-string)}.tok-number{color:var(--tok-number)}.tok-function{color:var(--tok-function)}.tok-type{color:var(--tok-type)}.tok-comment{color:var(--tok-comment);font-style:italic}.article-page .prose>.blog-figure{margin-block:2.5rem}.blog-figure figcaption{color:var(--muted-foreground);text-wrap:pretty;margin-top:.75rem;font-size:.8125rem;line-height:1.6}.blog-figure figcaption b{color:var(--foreground);font-weight:600}.blog-figure-body{border:1px solid var(--border);background:var(--card);color:var(--foreground);border-radius:.875rem;padding:clamp(.875rem,3vw,1.5rem);font-size:.875rem;line-height:1.5;container:figure/inline-size}.blog-figure-image .blog-figure-body{background:var(--secondary);padding:0;overflow:hidden}.blog-figure-image img{width:100%;height:auto;display:block}.article-page .blog-figure :is(ol,ul){padding-left:0;list-style:none}.article-page .blog-figure li+li{margin-top:0}.article-page .blog-figure li::marker{content:none}.fig-compare{gap:1rem;display:grid}@container figure (min-width:34rem){.fig-compare{grid-template-columns:repeat(2,minmax(0,1fr))}}.fig-panel{border:1px solid var(--border);background:var(--background);border-radius:.625rem;flex-direction:column;gap:.75rem;min-width:0;padding:1rem;display:flex}.fig-panel-title{letter-spacing:-.01em;font-weight:600}.fig-panel-foot{border-radius:.5rem;margin-top:auto;padding:.5rem .75rem;font-size:.8125rem;font-weight:550}.fig-panel-foot.is-ok{background:var(--fig-ok-soft);color:var(--fig-ok)}.fig-panel-foot.is-bad{background:var(--fig-bad-soft);color:var(--fig-bad)}.fig-steps{counter-reset:fig-step;gap:.5rem;display:grid}.fig-steps li{border-radius:.5rem;justify-items:start;gap:.25rem;padding:.5rem .625rem;display:grid}.fig-steps li>span:last-child{min-width:0}.fig-steps small{color:var(--muted-foreground);margin-top:.125rem;font-size:.75rem;display:block}.fig-steps li.is-bad{background:var(--fig-bad-soft)}.fig-steps li.is-bad small{color:var(--fig-bad)}.fig-steps li.is-ok{background:var(--fig-ok-soft)}.fig-steps li.is-ok small{color:var(--fig-ok)}.fig-steps li.is-quiet{color:var(--muted-foreground)}.fig-place{border:1px solid var(--border);background:var(--card);color:var(--muted-foreground);font-family:var(--font-mono);white-space:nowrap;border-radius:999px;justify-self:start;padding:.125rem .5rem;font-size:.6875rem}.fig-place-device{color:var(--fig-ok);border-color:color-mix(in srgb, var(--fig-ok) 35%, transparent)}.fig-place-server{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 35%, transparent)}.fig-pipeline{gap:.625rem;display:grid}.fig-pipeline li{border:1px solid var(--border);background:var(--background);border-radius:.625rem;grid-template-columns:1.75rem minmax(0,1fr);gap:.25rem .75rem;padding:.75rem;display:grid}@container figure (min-width:36rem){.fig-pipeline li{grid-template-columns:1.75rem minmax(0,1.25fr) minmax(0,1fr);align-items:center}}.fig-pipeline-index{background:var(--accent);width:1.75rem;height:1.75rem;color:var(--accent-foreground);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:.75rem;font-weight:600;display:grid}.fig-pipeline-main{min-width:0}.fig-pipeline-lane{color:var(--muted-foreground);font-family:var(--font-mono);font-size:.6875rem}.fig-pipeline-title{font-weight:600}.fig-pipeline-main code{color:var(--accent-foreground);font-family:var(--font-mono);overflow-wrap:anywhere;margin-top:.25rem;font-size:.75rem;display:block}.fig-pipeline-memory{color:var(--secondary-copy);grid-column:2;font-size:.8125rem}@container figure (min-width:36rem){.fig-pipeline-memory{grid-column:3}}.fig-pipeline-memory span{color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;display:block}.fig-page{border:1px solid var(--border);background:#fff;border-radius:.375rem;gap:.5rem;padding:1rem;display:grid;box-shadow:0 1px 2px #0000000a}.fig-page>span{background:#e3e0d9;border-radius:999px;height:.4rem}.fig-page>.is-short{width:62%}.fig-page>.fig-page-heading{background:#c9c5bc;width:45%;height:.6rem}.fig-page .fig-page-redacted{background:0 0;align-items:center;gap:.5rem;height:auto;display:flex}.fig-page-label{color:#6c675e;font-family:var(--font-mono);font-size:.6875rem}.fig-page-bar{background:#111;border-radius:2px;flex:1;height:.875rem}.fig-extract-label{color:var(--muted-foreground);font-size:.75rem}.fig-extract{margin-top:-.375rem}.fig-extract code{font-family:var(--font-mono);border-radius:.375rem;padding:.5rem .625rem;font-size:.8125rem;display:block}.fig-extract.is-bad code{background:var(--fig-bad-soft);color:var(--fig-bad)}.fig-extract.is-ok code{background:var(--fig-ok-soft);color:var(--fig-ok)}.fig-note{color:var(--secondary-copy);font-size:.8125rem}.fig-table-scroll{overflow-x:auto}.fig-matrix{border-collapse:separate;border-spacing:.25rem;width:100%;font-size:.75rem}.fig-matrix thead th{vertical-align:bottom;height:5.5rem;color:var(--muted-foreground);padding:0;font-weight:500}.fig-matrix thead th span{writing-mode:vertical-rl;white-space:nowrap;display:inline-block;transform:rotate(180deg)}.fig-matrix tbody th{text-align:left;min-width:6.5rem;padding-right:.5rem;font-weight:500;line-height:1.3}.fig-matrix td{text-align:center;width:1.25rem;padding:0}.fig-cell{border:1px dashed var(--border);border-radius:.3rem;width:1.125rem;height:1.125rem;margin-inline:auto;display:block}.fig-cell.is-built{background:var(--fig-ok);border:0}.fig-matrix .is-later th{color:var(--muted-foreground);font-weight:400}.fig-later{color:var(--muted-foreground);font-style:italic;text-align:left!important;padding-left:.25rem!important}.fig-scope{gap:.75rem;display:grid}.fig-scope-step{border:1px solid var(--border);background:var(--background);border-radius:.625rem;padding:.75rem 1rem}.fig-scope-step.is-promise{border-color:color-mix(in srgb, var(--primary) 45%, var(--border));background:var(--accent);color:var(--foreground);font-weight:500}.fig-scope-kicker{color:var(--muted-foreground);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.6875rem}.fig-scope-columns{gap:.75rem;display:grid}@container figure (min-width:34rem){.fig-scope-columns{grid-template-columns:repeat(3,minmax(0,1fr))}}.fig-scope-columns>div{border:1px solid var(--border);border-radius:.625rem;padding:.75rem 1rem}.fig-scope-columns>.is-now{border-color:color-mix(in srgb, var(--fig-ok) 45%, var(--border));background:var(--fig-ok-soft)}.fig-scope-columns>.is-now .fig-scope-kicker{color:var(--fig-ok)}.fig-scope-columns>.is-quiet{color:var(--muted-foreground)}.fig-scope-columns ul{gap:.375rem;font-size:.8125rem;display:grid}.fig-scope-columns li{text-indent:-.875rem;padding-left:.875rem}.fig-scope-columns li:before{content:"– ";color:var(--muted-foreground)}.fig-flow{gap:.75rem;display:grid}.fig-flow-row{gap:1.25rem;display:grid}@container figure (min-width:36rem){.fig-flow-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}}.fig-flow-row li{border:1px solid var(--border);background:var(--background);border-radius:.625rem;flex-direction:column;gap:.125rem;padding:.75rem;display:flex;position:relative}.fig-flow-row li.is-source{border-color:color-mix(in srgb, var(--fig-ok) 50%, var(--border));background:var(--fig-ok-soft)}.fig-flow-row li+li:before{content:"↓";color:var(--muted-foreground);font-size:.875rem;line-height:1;position:absolute;top:-1.2rem;left:50%;transform:translate(-50%)}@container figure (min-width:36rem){.fig-flow-row li+li:before{content:"→";top:50%;left:-.9rem;transform:translateY(-50%)}}.fig-flow-row small{color:var(--secondary-copy);font-size:.75rem;line-height:1.45}.fig-flow-where{color:var(--muted-foreground);font-family:var(--font-mono);font-size:.6875rem}.fig-flow-copies{border:1px dashed color-mix(in srgb, var(--primary) 50%, var(--border));color:var(--secondary-copy);border-radius:.625rem;padding:.75rem;font-size:.8125rem}.gui-window{border:1px solid var(--border);background:var(--background);border-radius:.75rem;overflow:hidden;box-shadow:0 18px 40px -28px #00000073}.gui-chrome{border-bottom:1px solid var(--border);background:var(--secondary);align-items:center;gap:.75rem;padding:.55rem .75rem;display:flex}.gui-dots{gap:.35rem;display:flex}.gui-dots i{background:#e86a5f;border-radius:50%;width:.6rem;height:.6rem}.gui-dots i:nth-child(2){background:#e9b949}.gui-dots i:nth-child(3){background:#5ec26a}.gui-url{background:var(--background);min-width:0;color:var(--muted-foreground);font-family:var(--font-mono);text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:.4rem;flex:1;padding:.2rem .6rem;font-size:.6875rem;overflow:hidden}.gui-chip{white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.625rem;font-weight:600}.gui-chip.is-ok{background:var(--fig-ok-soft);color:var(--fig-ok)}.gui-chip.is-warn{background:var(--accent);color:var(--accent-foreground)}.gui-body{gap:.6rem;padding:.9rem;display:grid}.gui-lane{border:1px solid var(--border);background:var(--card);border-radius:.5rem;padding:.6rem .75rem}.gui-lane p{color:var(--secondary-copy);font-size:.75rem;line-height:1.5}.gui-lane .gui-lane-title{color:var(--foreground);font-family:var(--font-mono);font-size:.6875rem;font-weight:600}.gui-lane.is-store{border-style:dashed}.gui-lane.is-out{border-color:color-mix(in srgb, var(--fig-ok) 45%, var(--border));background:var(--fig-ok-soft)}.gui-flow{color:var(--muted-foreground);font-family:var(--font-mono);text-align:center;font-size:.6875rem}.gui-grid,.gui-row{gap:.5rem;display:grid}@container figure (min-width:30rem){.gui-grid,.gui-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.gui-block{border:1px solid var(--border);background:var(--card);border-radius:.5rem;gap:.1rem;padding:.6rem .75rem;display:grid}.gui-block b{color:var(--foreground);font-size:.8125rem;font-weight:600}.gui-block span{color:var(--primary);font-size:.75rem}.gui-block small{color:var(--muted-foreground);font-size:.6875rem;line-height:1.45}.gui-network{border-top:1px solid var(--border);background:var(--secondary);gap:.35rem;padding:.7rem .9rem;display:grid}.gui-network p{color:var(--secondary-copy);flex-wrap:wrap;align-items:center;gap:.25rem .6rem;font-size:.75rem;display:flex}.gui-badge{font-family:var(--font-mono);border-radius:.3rem;padding:.1rem .45rem;font-size:.625rem;font-weight:600}.gui-badge.is-in{background:var(--accent);color:var(--accent-foreground)}.gui-badge.is-none{background:var(--fig-ok-soft);color:var(--fig-ok)}.gui-states{gap:.75rem;padding:.9rem;display:grid}@container figure (min-width:30rem){.gui-states{grid-template-columns:repeat(2,minmax(0,1fr))}}.gui-state-tag{color:var(--muted-foreground);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem;font-size:.625rem}.gui-state-tag.is-ok{color:var(--fig-ok)}.gui-state-tag.is-bad{color:var(--fig-bad)}.gui-state-tag.is-warn{color:var(--accent-foreground)}.gui-screen{border:1px solid var(--border);background:var(--card);border-radius:.5rem;align-content:start;gap:.35rem;min-height:8.5rem;padding:.75rem;display:grid}.gui-screen.is-centered{text-align:center;place-content:center;justify-items:center}.gui-strong{color:var(--foreground);font-size:.8125rem;font-weight:600;line-height:1.35}.gui-muted{color:var(--muted-foreground);font-size:.6875rem;line-height:1.45}.gui-line{border-bottom:1px dashed var(--border);color:var(--secondary-copy);font-variant-numeric:tabular-nums;justify-content:space-between;gap:.5rem;padding-block:.15rem;font-size:.6875rem;display:flex}.gui-line.is-total{color:var(--foreground);border-bottom:0;font-weight:600}.gui-button{border:1px solid var(--border);background:var(--background);color:var(--foreground);border-radius:.4rem;justify-self:start;margin-top:.3rem;padding:.25rem .6rem;font-size:.6875rem;font-weight:600}.gui-screen.is-centered .gui-button{justify-self:center}.gui-button.is-primary{border-color:var(--foreground);background:var(--foreground);color:var(--background)}.gui-icon{background:var(--secondary);width:1.75rem;height:1.75rem;color:var(--secondary-copy);border-radius:50%;place-items:center;font-size:.875rem;font-weight:700;display:grid}.gui-icon.is-ok{background:var(--fig-ok-soft);color:var(--fig-ok)}.gui-icon.is-bad{background:var(--fig-bad-soft);color:var(--fig-bad)}.gui-icon.is-warn{background:var(--accent);color:var(--accent-foreground)}.gui-phones{scroll-snap-type:x mandatory;scrollbar-width:none;gap:.75rem;padding:.25rem;display:flex;overflow-x:auto}.gui-phone:first-child{margin-left:auto}.gui-phone:last-child{margin-right:auto}.gui-phone{scroll-snap-align:center;text-align:center;border:1px solid var(--border);background:var(--background);min-height:15rem;box-shadow:inset 0 0 0 4px var(--card), 0 14px 30px -24px #00000080;border-radius:1.6rem;flex:0 0 10.5rem;align-content:center;justify-items:center;gap:.45rem;padding:2rem .9rem 1.25rem;display:grid;position:relative}.gui-phone.is-unknown{border-color:color-mix(in srgb, var(--primary) 50%, var(--border))}.gui-notch{background:#000;border-radius:999px;width:3rem;height:.7rem;position:absolute;top:.6rem;left:50%;transform:translate(-50%)}.gui-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:1.6rem;height:1.6rem;animation:.9s linear infinite gui-spin}@keyframes gui-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.gui-spinner{animation:none}}.fig-svg{width:100%;height:auto;margin-inline:auto;display:block;overflow:visible}.fig-svg-tall{max-width:26rem}.fig-svg-square,.fig-svg-wide{max-width:30rem}.fig-svg text{fill:var(--foreground);font-family:var(--font-sans)}.fig-svg .fig-svg-muted{fill:var(--muted-foreground)}.fig-svg .fig-svg-ok{fill:var(--fig-ok)}.fig-svg .fig-svg-bad{fill:var(--fig-bad)}.fig-svg-box{fill:var(--background);stroke:var(--border);stroke-width:1.25px}.fig-svg-box.is-ok{fill:var(--fig-ok-soft);stroke:var(--fig-ok)}.fig-svg-box.is-bad{fill:var(--fig-bad-soft);stroke:var(--fig-bad)}.fig-svg-box.is-accent{fill:var(--accent);stroke:var(--primary)}.fig-svg-line{stroke:var(--border)}.fig-svg-rule{stroke:var(--border);stroke-width:1px}.fig-svg-guide{stroke:var(--border);stroke-width:1px;stroke-dasharray:3 4}.fig-svg-ink-stroke{stroke:var(--muted-foreground)}.fig-svg-ok-stroke{stroke:var(--fig-ok)}.fig-svg-bad-stroke{stroke:var(--fig-bad)}.fig-svg-ink-fill{fill:var(--muted-foreground)}.fig-svg-ok-fill{fill:var(--fig-ok)}.fig-svg-bad-fill{fill:var(--fig-bad)}.fig-svg-accent-fill{fill:var(--primary)}.fig-svg-blue-fill{fill:var(--fig-blue)}.blog-article-footer{border-top:1px solid var(--border);margin-top:3.5rem;padding-top:2rem}.blog-share{color:var(--secondary-copy);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;font-size:.875rem;display:flex}.blog-share>div{flex-wrap:wrap;gap:0 1.25rem;display:flex}.blog-share .text-action{font-size:.8125rem}.article-page .blog-author{border:1px solid var(--border);background:var(--card);border-radius:.875rem;align-items:flex-start;margin-top:2rem;padding:1.25rem}.article-page .blog-author>img{flex-shrink:0;width:3rem;height:3rem}.article-page .blog-author p:not(.eyebrow){color:var(--secondary-copy);margin-top:.375rem;font-size:.875rem;line-height:1.6}.article-page .blog-author p a{color:var(--primary);text-underline-offset:.2em;text-decoration:underline}.blog-author-links{flex-wrap:wrap;gap:0 1rem;margin-top:.25rem;display:flex}.article-page .blog-author-links a{color:var(--secondary-copy);margin-top:0;font-weight:500;display:inline-flex}.article-page .blog-author p a{margin-top:0;font-weight:500;display:inline}.blog-author-links .text-action{font-size:.8125rem}.blog-page .blog-heading>p:last-child{max-width:36rem}.blog-archive{gap:.75rem;margin-top:1.5rem;display:grid}.blog-card-link{border:1px solid #0000;border-radius:1rem;gap:1rem;padding:.75rem;transition:border-color .16s,background-color .16s;display:grid}.blog-card-link:hover{border-color:var(--border);background:var(--card)}.blog-card-link:focus-visible{outline:2px solid var(--focus-color);outline-offset:2px}.blog-card-image{aspect-ratio:1200/630;border:1px solid var(--border);background:var(--secondary);border-radius:.75rem;position:relative;overflow:hidden}.blog-card-copy{min-width:0}.blog-card-meta{color:var(--muted-foreground);flex-wrap:wrap;gap:0 .375rem;font-size:.75rem;display:flex}.blog-card-category{color:var(--primary);font-weight:500}.blog-card h2{color:var(--foreground);letter-spacing:-.02em;text-wrap:balance;margin-top:.5rem;font-size:1.125rem;font-weight:600;line-height:1.35}.blog-card.is-featured h2{font-size:clamp(1.375rem,3.5vw,1.625rem);line-height:1.25}.blog-card-excerpt{color:var(--secondary-copy);text-wrap:pretty;margin-top:.5rem;font-size:.9375rem;line-height:1.65}.blog-card-read{color:var(--secondary-copy);align-items:center;gap:.375rem;margin-top:.75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.blog-card-read svg{width:.875rem;height:.875rem;transition:transform .16s}.blog-card-link:hover h2,.blog-card-link:hover .blog-card-read{color:var(--primary)}.blog-card-link:hover .blog-card-read svg{transform:translate(2px)}@media (min-width:36rem){.blog-card:not(.is-featured) .blog-card-link{grid-template-columns:14rem minmax(0,1fr);align-items:start;gap:1.25rem}}.blog-page .journal-colophon a{color:var(--primary);text-underline-offset:.2em;text-decoration:underline}@media (prefers-reduced-motion:reduce){.blog-card-link,.blog-card-read svg{transition:none}.blog-card-link:hover .blog-card-read svg{transform:none}}@media print{.blog-share,.blog-author-links{display:none}.blog-figure{break-inside:avoid}}
