@font-face{font-family:DM Sans;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.woff2)format("woff2-variations");font-weight:100 1000;font-style:normal;font-display:swap;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:DM Sans;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.woff2)format("woff2-variations");font-weight:100 1000;font-style:normal;font-display:swap;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:Source Code Pro;src:url(/_astro/source-code-pro-latin-wght-normal.BP8Zz55n.woff2)format("woff2-variations");font-weight:200 900;font-style:normal;font-display:swap;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:Source Code Pro;src:url(/_astro/source-code-pro-latin-ext-wght-normal.0UZNSh4u.woff2)format("woff2-variations");font-weight:200 900;font-style:normal;font-display:swap;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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root,[data-theme=dark]{color-scheme:dark;--surface-canvas:#0a0c0a;--surface-card:#0f110f;--surface-popover:#121412;--surface-overlay:#151715;--surface-top:#1a1c1a;--text-primary:#f8fbf8;--text-secondary:#bbbfbb;--text-tertiary:#909390;--text-disabled:#5a5d5a;--border-hairline:#f8fbf812;--border-overlay:#f8fbf821;--border-strong:#f8fbf821;--border-stronger:#f8fbf82b;--border-control-hover:#f8fbf847;--wash-hover:#f8fbf80a;--wash-selected:#f8fbf812;--field-sunk:#0000001f;--control-raised:#ffffff0a;--scrim:#000000a8;--accent:#80ee64;--accent-ring:#80ee648c;--accent-tint:#80ee6414;--accent-edge:#80ee6473;--highlight:#bff9b4;--plate:#09af58;--plate-hover:#2fbc5b;--plate-pressed:#00a14f;--plate-ink:#071009;--destructive:#b54a46;--destructive-hover:#a3423e;--destructive-ink:#fff;--status-ok-fg:#65d371;--status-ok-bg:#65d37114;--status-ok-border:#65d3714d;--status-warn-fg:#f2af48;--status-warn-bg:#f2af4814;--status-warn-border:#f2af484d;--status-critical-fg:#e2726b;--status-critical-bg:#e2726b14;--status-critical-border:#e2726b4d;--status-neutral-fg:var(--text-tertiary);--status-neutral-bg:#f8fbf80a;--status-neutral-border:#f8fbf821;--flow-observed:var(--status-neutral-fg);--flow-allowed:var(--status-ok-fg);--flow-would-block:var(--status-warn-fg);--flow-blocked:var(--status-critical-fg);--health-synced:var(--status-ok-fg);--health-pending:var(--status-neutral-fg);--health-degraded:var(--status-warn-fg);--health-offline:var(--status-critical-fg);--severity-alert:var(--status-warn-fg);--severity-error:var(--status-critical-fg);--checkbox-on:var(--text-primary);--checkbox-ink:#0a0c0a;--logo-outline:var(--text-secondary);--logo-fill:var(--text-primary);--icon-default:var(--text-secondary);--icon-active:var(--text-primary)}[data-theme=light]{color-scheme:light;--surface-canvas:#f6f7f6;--surface-card:#f9faf9;--surface-popover:#fafbfa;--surface-overlay:#fbfdfb;--surface-top:#fefffe;--text-primary:#171917;--text-secondary:#4a4e4a;--text-tertiary:#666a66;--text-disabled:#a3a6a3;--border-hairline:#17191712;--border-overlay:#17191721;--border-strong:#17191721;--border-stronger:#1719172b;--border-control-hover:#17191747;--wash-hover:#17191709;--wash-selected:#1719170f;--field-sunk:#00000004;--control-raised:#fff;--scrim:#17191752;--accent:#007f35;--accent-ring:#007f35cc;--accent-tint:#007f350f;--accent-edge:#007f35cc;--plate:#007f35;--plate-hover:#006e2b;--plate-pressed:#006125;--plate-ink:#fff;--destructive:#ab413e;--destructive-hover:#9b3734;--status-ok-fg:#137738;--status-ok-bg:#1377381a;--status-ok-border:#1377384d;--status-warn-fg:#dc7b18;--status-warn-bg:#ac58001a;--status-warn-border:#f3ba63;--status-critical-fg:#ab413e;--status-critical-bg:#ab413e1a;--status-critical-border:#ab413e4d;--status-neutral-fg:var(--text-tertiary);--status-neutral-bg:#17191709;--status-neutral-border:#17191721;--flow-observed:var(--status-neutral-fg);--flow-allowed:var(--status-ok-fg);--flow-would-block:var(--status-warn-fg);--flow-blocked:var(--status-critical-fg);--health-synced:var(--status-ok-fg);--health-pending:var(--status-neutral-fg);--health-degraded:var(--status-warn-fg);--health-offline:var(--status-critical-fg);--severity-alert:var(--status-warn-fg);--severity-error:var(--status-critical-fg);--checkbox-on:var(--text-primary);--checkbox-ink:#fff;--logo-outline:var(--text-secondary);--logo-fill:var(--text-primary);--icon-default:var(--text-secondary);--icon-active:var(--text-primary)}:root{--font-sans:"DM Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"Source Code Pro", ui-monospace, SFMono-Regular, Menlo, monospace;--space-050:2px;--space-100:4px;--space-150:6px;--space-200:8px;--space-300:12px;--space-400:16px;--space-500:20px;--space-600:24px;--space-800:32px;--space-1000:40px;--space-1200:48px;--space-1600:64px;--radius-inner:4px;--radius-control:6px;--radius-panel:6px;--radius-full:9999px;--control:26px;--control-sm:34px;--control-md:38px;--chip:22px;--label-chip:20px;--row-pitch:40px;--row-header:32px;--header-strip:48px;--tab-row:40px;--tab-underline:2px;--sidebar-width:232px;--sidebar-width-collapsed:56px;--sidebar-sheet:280px;--sidebar-item:32px;--filter-panel:280px;--popover-width:320px;--popover-account:240px;--content-max:1120px;--icon-size:14px;--icon-stroke:2;--logo-size:22px;--glyph-sm:12px;--glyph-md:14px;--glyph-lg:16px;--avatar:28px;--edge-width:2px;--edge-dash-allowed:none;--edge-dash-would-block:6 4;--edge-dash-blocked:8 3 2 3;--edge-dash-observed:1 4;--opacity-dimmed:.32}.type-page-title{font-family:var(--font-sans);letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:30px}.type-section{font-family:var(--font-sans);letter-spacing:-.01em;font-size:20px;font-weight:600;line-height:28px}.type-dialog-title{font-family:var(--font-sans);letter-spacing:-.01em;font-size:16px;font-weight:600;line-height:22px}.type-card-title{font-family:var(--font-sans);font-size:14px;font-weight:600;line-height:20px}.type-body{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:24px}.type-dense{font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:20px}.type-dense-strong{font-family:var(--font-sans);font-size:14px;font-weight:500;line-height:20px}.type-header-register{font-family:var(--font-sans);font-size:13px;font-weight:500;line-height:20px}.type-control{font-family:var(--font-sans);font-size:12px;font-weight:500;line-height:16px}.type-meta-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:400;line-height:16px}.type-mono-data{font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:20px}.type-mono-sm{font-family:var(--font-mono);font-size:12px;font-weight:400;line-height:16px}.type-mono-xs{font-family:var(--font-mono);font-size:11px;font-weight:400;line-height:16px}.tnum{font-variant-numeric:tabular-nums}:root,[data-theme]{--site-ground:var(--surface-canvas);--site-well:var(--surface-card);--site-panel:var(--surface-overlay);--site-card:var(--surface-top);--site-edge:var(--border-hairline);--site-edge-hover:var(--border-overlay);--code-comment:var(--text-tertiary);--code-plain:var(--text-primary);--fig-line:var(--text-tertiary);--edge-chip-bg:var(--surface-canvas)}:root,[data-theme=dark]{--site-header-bg:#0a0c0ab8;--site-rim:#f8fbf82e;--atmo-wash:#f8fbf80f;--atmo-wash-strong:#f8fbf81c;--accent-atmo:#80ee641a;--plate-mono:#f8fbf8;--plate-mono-hover:#dfe3df;--plate-mono-pressed:#c8ccc8;--plate-mono-ink:#0a0c0a;--display-weight:490;--code-keyword:#f197c2;--code-string:#a4cec9;--code-constant:#e6d08c;--code-function:#8ec1ff}[data-theme=light]{--site-header-bg:#f6f7f6cc;--site-rim:#fefffe00;--atmo-wash:#17191708;--atmo-wash-strong:#1719170e;--accent-atmo:#007f350f;--plate-mono:#171917;--plate-mono-hover:#2d302d;--plate-mono-pressed:#3e413e;--plate-mono-ink:#fff;--display-weight:510;--code-keyword:#af3679;--code-string:#306f6b;--code-constant:#8b6400;--code-function:#2a67bd;--status-warn-fg:#a94f00}:root{--display-dark-weight-offset:-20;--display-tracking:-.022em;--display-tracking-h2:-.018em;--container-max:1200px;--measure-prose:640px;--site-header:64px;--screenshot-max:1440px;--docs-nav-width:240px;--docs-toc-width:200px;--docs-tile:36px;--site-stack-below:768px;--figure-phone-below:1024px;--space-2000:80px;--space-2400:96px;--space-3200:128px;--space-4000:160px;--radius-site-lg:8px;--radius-site-xl:12px;--radius-site-2xl:16px;--site-control:32px;--site-control-lg:40px;--site-pill:28px;--fig-line-width:1px;--fig-edge:1.5px;--fig-edge-observed:2px;--flow-dot:4px;--duration-instant:80ms;--duration-fast:.15s;--duration-base:.24s;--duration-slow:.48s;--duration-reveal:.64s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--reveal-distance:12px;--reveal-distance-sm:6px;--reveal-stagger:60ms;--hover-nudge:2px;--dialog-scale-from:.98;--feedback-hold:1.6s;--duration-flow:3.2s;--flow-rest:1.6s;--beat-hold:.64s;--figure-in-view:.4}.type-site-hero{font-family:var(--font-sans);font-size:64px;line-height:64px;font-weight:var(--display-weight);letter-spacing:var(--display-tracking)}.type-site-h1{font-family:var(--font-sans);font-size:44px;line-height:48px;font-weight:var(--display-weight);letter-spacing:var(--display-tracking)}.type-site-h2{font-family:var(--font-sans);font-size:32px;line-height:36px;font-weight:var(--display-weight);letter-spacing:var(--display-tracking-h2)}.type-site-hero-phone{font-family:var(--font-sans);font-size:40px;line-height:44px;font-weight:var(--display-weight);letter-spacing:-.02em}.type-site-h1-phone{font-family:var(--font-sans);font-size:32px;line-height:36px;font-weight:var(--display-weight);letter-spacing:-.018em}.type-site-h2-phone{font-family:var(--font-sans);font-size:28px;line-height:32px;font-weight:var(--display-weight);letter-spacing:-.016em}.type-site-h3{font-family:var(--font-sans);letter-spacing:-.01em;font-size:20px;font-weight:600;line-height:28px}.type-site-h4{font-family:var(--font-sans);letter-spacing:-.006em;font-size:16px;font-weight:600;line-height:24px}.type-site-lead{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:26px}.type-site-body{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:28px}.type-site-body-landing{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:26px}.type-site-small{font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:22px}.type-site-eyebrow{font-family:var(--font-sans);font-size:13px;font-weight:500;line-height:20px}.type-site-caption{font-family:var(--font-sans);font-size:12px;font-weight:400;line-height:16px}.type-site-pill{font-family:var(--font-sans);font-size:13px;font-weight:400;line-height:20px}.type-site-code{font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:20px}.type-site-code-block{font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:22px}.type-site-version{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:400;line-height:16px}.type-wordmark-1x{font-family:var(--font-sans);letter-spacing:-.01em;font-size:14px;font-weight:600;line-height:20px}.type-wordmark-2x{font-family:var(--font-sans);letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:32px}.type-wordmark-3x{font-family:var(--font-sans);letter-spacing:-.025em;font-size:42px;font-weight:600;line-height:48px}.s-code pre{color:var(--code-plain)}.tok-k{color:var(--code-keyword)}.tok-s{color:var(--code-string)}.tok-n{color:var(--code-constant)}.tok-f{color:var(--code-function)}.tok-c{color:var(--code-comment)}html{background:var(--site-ground)}body{margin:0}.v{background:var(--site-ground);min-height:100%;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:13px;line-height:20px;position:relative;overflow-x:clip}.v *,.v :before,.v :after{box-sizing:border-box}.v-wrap{max-width:calc(var(--container-max) + 2 * var(--space-600));padding:0 var(--space-600);margin:0 auto}.v-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.v-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.iw-icon{width:var(--icon-size);height:var(--icon-size);fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}.v :focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}em,i,cite{font-style:normal}em{font-weight:500}.v-mark{flex:none;display:block}.v-mark-frame{stroke:var(--logo-outline)}.v-mark-bar{fill:var(--logo-fill)}.v-hero{font-size:64px;line-height:64px;font-weight:var(--display-weight);letter-spacing:var(--display-tracking);color:var(--text-primary);hyphens:manual;text-wrap:balance;margin:0}.v-h1{font-size:44px;line-height:48px;font-weight:var(--display-weight);letter-spacing:var(--display-tracking);color:var(--text-primary);text-wrap:balance;margin:0}.v-h2{font-size:32px;line-height:36px;font-weight:var(--display-weight);letter-spacing:var(--display-tracking-h2);color:var(--text-primary);text-wrap:balance;margin:0}.v-h3{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:20px;font-weight:600;line-height:28px}.v-h4{letter-spacing:-.006em;color:var(--text-primary);margin:0;font-size:16px;font-weight:600;line-height:24px}.v-lead{color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:16px;font-weight:400;line-height:26px}.v-body{color:var(--text-primary);margin:0;font-size:16px;font-weight:400;line-height:28px}.v-body-2{color:var(--text-secondary);margin:0;font-size:16px;font-weight:400;line-height:26px}.v-small{color:var(--text-secondary);margin:0;font-size:14px;font-weight:400;line-height:22px}.v-eyebrow{color:var(--text-secondary);margin:0;font-size:13px;font-weight:500;line-height:20px}.v-caption{color:var(--text-tertiary);margin:0;font-size:12px;font-weight:400;line-height:16px}.v-strong{color:var(--text-primary);font-weight:500}.v-ic{font-family:var(--font-mono);border:1px solid var(--border-hairline);border-radius:var(--radius-inner);background:var(--wash-hover);color:var(--text-primary);white-space:nowrap;padding:1px 5px;font-size:13px;line-height:20px}.v-link{color:var(--text-secondary);text-decoration:underline 1px;text-decoration-color:var(--border-control-hover);text-underline-offset:4px;transition:color var(--duration-fast) var(--ease-standard), text-decoration-color var(--duration-fast) var(--ease-standard);border-radius:2px}.v-link:hover{color:var(--text-primary);text-decoration-color:currentColor}.v-btn{justify-content:center;align-items:center;gap:var(--space-200);height:var(--site-control);border:1px solid var(--border-overlay);border-radius:var(--radius-full);background:var(--control-raised);color:var(--text-primary);font:500 13px / 20px var(--font-sans);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);padding:0 14px;text-decoration:none;display:inline-flex}.v-btn:hover{border-color:var(--border-control-hover)}.v-btn:active{background:var(--wash-selected);border-color:var(--border-control-hover)}.v-btn-lg{height:var(--site-control-lg);padding:0 18px;font-size:14px}.v-btn-primary{background:var(--plate-mono);border-color:var(--plate-mono);color:var(--plate-mono-ink)}.v-btn-primary:hover{background:var(--plate-mono-hover);border-color:var(--plate-mono-hover)}.v-btn-primary:active{background:var(--plate-mono-pressed);border-color:var(--plate-mono-pressed)}.v-iconbtn{width:var(--site-control);height:var(--site-control);border:1px solid var(--border-overlay);border-radius:var(--radius-full);background:var(--control-raised);color:var(--icon-default);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;padding:0;display:inline-flex}.v-iconbtn:hover{border-color:var(--border-control-hover);color:var(--icon-active)}.v-kbd{border:1px solid var(--border-hairline);border-radius:var(--radius-inner);background:var(--surface-overlay);min-width:20px;height:20px;font:400 11px / 16px var(--font-mono);color:var(--text-secondary);white-space:nowrap;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.v-pill{align-items:center;gap:var(--space-200);height:var(--site-pill);padding:0 var(--space-200) 0 var(--space-300);border:1px solid var(--border-overlay);border-radius:var(--radius-full);background:var(--control-raised);color:var(--text-secondary);font:400 13px / 20px var(--font-sans);white-space:nowrap;transition:border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);text-decoration:none;display:inline-flex}.v-pill:hover{border-color:var(--border-control-hover);color:var(--text-primary)}.v-pill .iw-icon{transition:transform var(--duration-fast) var(--ease-standard)}.v-pill:hover .iw-icon{transform:translateX(var(--hover-nudge))}.v-header{z-index:10;background:var(--site-header-bg);backdrop-filter:saturate(1.4)blur(20px);transition:border-color var(--duration-fast) var(--ease-standard);border-bottom:1px solid #0000;position:sticky;top:0}.v-header[data-scrolled=true]{border-bottom-color:var(--border-hairline)}.v-header-in{height:var(--site-header);align-items:center;gap:var(--space-800);display:flex}.v-lockup{align-items:center;gap:var(--space-200);color:var(--text-primary);border-radius:var(--radius-inner);text-decoration:none;display:flex}.v-lockup span{letter-spacing:-.01em;font-size:14px;font-weight:600;line-height:20px}.v-nav{align-items:center;gap:var(--space-500);margin-left:auto;display:flex}.v-nav ul{align-items:center;gap:var(--space-500);margin:0;padding:0;list-style:none;display:flex}.v-navlink{color:var(--text-secondary);border-radius:var(--radius-inner);transition:color var(--duration-fast) var(--ease-standard);font-size:14px;line-height:20px;text-decoration:none}.v-navlink:hover,.v-navlink[aria-current=page]{color:var(--text-primary)}.v-code{border:1px solid var(--site-edge);border-radius:var(--radius-site-xl);background:var(--site-panel);position:relative}.v-code pre{padding:var(--space-400) 56px var(--space-400) var(--space-400);font:400 13px / 22px var(--font-mono);color:var(--code-plain);white-space:pre;margin:0;overflow-x:auto}.v-code--nested{border-radius:var(--radius-site-lg);background:var(--site-well)}.v-copy{border-radius:var(--radius-control);min-width:28px;height:28px;color:var(--icon-default);font:500 12px / 16px var(--font-sans);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 7px;display:inline-flex;position:absolute;top:8px;right:8px}.v-copy:hover{background:var(--wash-hover);color:var(--icon-active)}.v-copy[data-copied=true]{background:var(--wash-hover);color:var(--text-primary)}.v-footer{border-top:1px solid var(--border-hairline)}.v-footer .v-wrap{justify-content:space-between;align-items:center;gap:var(--space-400) var(--space-600);padding-top:var(--space-1000);padding-bottom:var(--space-1000);flex-wrap:wrap;display:flex}.v-foot-l,.v-foot-r{align-items:center;gap:var(--space-500);display:flex}.v-name{letter-spacing:-.01em;font-size:13px;font-weight:600;line-height:20px}.v-foot-link{font-size:13px}.v-theme{border:1px solid var(--border-overlay);border-radius:var(--radius-control);height:28px;display:inline-flex}.v-theme-btn{width:28px;height:100%;color:var(--icon-default);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.v-theme-btn:first-child{border-radius:calc(var(--radius-control) - 1px) 0 0 calc(var(--radius-control) - 1px)}.v-theme-btn:last-child{border-radius:0 calc(var(--radius-control) - 1px) calc(var(--radius-control) - 1px) 0}.v-theme-btn+.v-theme-btn{border-left:1px solid var(--border-overlay)}.v-theme-btn:hover{background:var(--wash-hover);color:var(--icon-active)}.v-theme-btn[aria-checked=true]{background:var(--wash-selected);color:var(--icon-active)}.v-theme-btn:focus-visible{z-index:1}@media (width<=767.98px),(pointer:coarse){.v-theme{margin-left:var(--space-100)}.v-theme-btn:after{content:"";z-index:1;height:44px;position:absolute;top:50%;transform:translateY(-50%)}.v-theme-btn:first-child:after{left:-24px;right:8px}.v-theme-btn:nth-child(2):after{left:-8px;right:-8px}.v-theme-btn:nth-child(3):after{left:8px;right:-24px}}.v-reveal{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--duration-reveal) var(--ease-out), transform var(--duration-reveal) var(--ease-out);transition-delay:calc(var(--i,0) * var(--reveal-stagger))}.v-reveal.is-in{opacity:1;transform:none}@keyframes v-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}[data-theme-switching] *,[data-theme-switching] :before,[data-theme-switching] :after{transition:none!important}@media (prefers-reduced-motion:reduce){.v-reveal{opacity:1;transition:none;transform:none}.v-pill .iw-icon{transition:none}.v-pill:hover .iw-icon{transform:none}}@media (width<=767.98px){.v-wrap{padding:0 var(--space-400)}.v-header-in,.v-nav,.v-nav ul{gap:var(--space-400)}.v-hero{letter-spacing:-.02em;font-size:40px;line-height:44px}.v-h1{letter-spacing:-.018em;font-size:32px;line-height:36px}.v-h2{letter-spacing:-.016em;font-size:28px;line-height:32px}.v-footer .v-wrap{padding-top:var(--space-800);padding-bottom:var(--space-800)}}.v-placeholder{padding:var(--space-3200) 0}@media (width<=767.98px){.v-placeholder{padding:var(--space-2000) 0}}.iw-status{font:500 12px / 16px var(--font-sans);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.fg-figs{gap:var(--space-2400);margin-top:var(--space-1600);flex-direction:column;display:flex;container:figs/inline-size}.fg-frame{border:1px solid var(--site-edge);border-radius:var(--radius-site-2xl);isolation:isolate;background:radial-gradient(ellipse 34% 62% at 83% 30%, var(--atmo-wash), transparent 70%), var(--site-well);flex-direction:column;gap:40px;margin:0;padding:40px;display:flex;position:relative;overflow:hidden}.fg-frame:before{content:"";background:linear-gradient(90deg, transparent, var(--site-rim), transparent);height:1px;position:absolute;top:0;left:12%;right:12%}.fg-frame *,.fg-frame :before,.fg-frame :after{box-sizing:border-box}.fg-foot{justify-content:space-between;align-items:flex-end;gap:var(--space-800);display:flex}.fg-cap{flex-direction:column;max-width:600px;display:flex}.fg-figid{margin:0 0 var(--space-300);font:400 12px / 16px var(--font-mono);color:var(--text-tertiary)}.fg-cap-h{letter-spacing:-.006em;color:var(--text-primary);margin:0 0 6px;font-size:16px;font-weight:600;line-height:24px}.fg-cap-p{color:var(--text-secondary);margin:0;font-size:14px;line-height:22px}.fg-legend{justify-content:flex-end;align-items:center;gap:var(--space-200) var(--space-500);flex-wrap:wrap;padding-bottom:3px;display:flex}.fg-legend>span,.fg-legend-item{align-items:center;gap:6px;display:inline-flex}.fg-legend svg{display:block}.fg-stage{--fig-k:1;height:calc(344px * var(--fig-k));position:relative}@container figs (width<1200px){.fg-stage--wide{--fig-k:.8}}@supports (scale:tan(atan2(1px, 1px))){.fg-stage{--fig-k:min(1, tan(atan2(100cqw - 80px, 1120px)))}}.fg-scene{transform-origin:0 0;width:1120px;height:344px;scale:var(--fig-k);position:absolute;top:0;left:0}.fg-stage--narrow{display:none}@container figs (width<976px){.fg-stage--wide{display:none}.fg-stage--narrow{width:calc(326px * var(--fig-k));height:calc(620px * var(--fig-k));margin:0 auto;display:block}.fg-stage--narrow .fg-scene{width:326px;height:620px}.fg-frame{border-radius:var(--radius-site-xl);background:radial-gradient(ellipse 80% 30% at 50% 82%, var(--atmo-wash), transparent 70%), var(--site-well);gap:24px;padding:16px}.fg-foot{align-items:stretch;gap:var(--space-500);flex-direction:column}.fg-legend{justify-content:flex-start;padding-bottom:0}}@container figs (width<358px){.fg-stage--narrow{--fig-k:.75}}@supports (scale:tan(atan2(1px, 1px))){.fg-stage--narrow{--fig-k:min(1, tan(atan2(100cqw - 32px, 326px)))}}@media (width<=767.98px){.fg-figs{gap:var(--space-1200);margin-top:var(--space-1000)}}.fg-lines{fill:none;position:absolute;top:0;left:0;overflow:visible}.fg-conn{stroke:var(--fig-line);stroke-width:var(--fig-line-width);stroke-linecap:round;stroke-linejoin:round;fill:none}.fg-conn-fill{fill:var(--fig-line);stroke:none}.fg-edge{position:absolute}.fg-edge>svg{fill:none;position:absolute;top:0;left:0;overflow:visible}.fg-dot{width:var(--flow-dot);height:var(--flow-dot);border-radius:var(--radius-full);opacity:0;offset-rotate:0deg;pointer-events:none;position:absolute;top:0;left:0}.fg-dotwrap{position:absolute;inset:0}.fg-card{border:1px solid var(--site-edge);border-radius:var(--radius-site-xl);background:var(--site-card);flex-direction:column;gap:4px;padding:6px;display:flex;position:absolute}.fg-row{flex:none;align-items:center;gap:10px;height:44px;padding:0 10px 0 8px;display:flex}.fg-ichip{border:1px solid var(--site-edge);border-radius:var(--radius-control);background:var(--wash-selected);width:28px;height:28px;color:var(--icon-default);flex:none;place-items:center;display:grid}.fg-ichip .iw-icon{width:16px;height:16px}.fg-name{font:500 14px / 20px var(--font-sans);color:var(--text-primary);white-space:nowrap}.fg-sub{font:400 14px / 20px var(--font-sans);color:var(--text-secondary);white-space:nowrap}.fg-meta{font:400 12px / 16px var(--font-mono);color:var(--text-tertiary);white-space:nowrap;margin-left:auto}.fg-meta b{color:var(--text-secondary);font-weight:400}.fg-well{border:1px solid var(--site-edge);border-radius:var(--radius-site-lg);background:var(--site-well);flex-direction:column;gap:4px;padding:4px;display:flex}.fg-well .fg-row{height:44px}.fg-mode{height:var(--chip);border:1px solid var(--border-overlay);border-radius:var(--radius-full);font:500 12px / 16px var(--font-sans);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;margin-left:auto;padding:0 9px 0 7px;display:inline-flex}.fg-mode .iw-icon{width:14px;height:14px}.fg-swap{margin-left:auto;display:inline-flex;position:relative}.fg-swap>*{margin-left:0}.fg-swap>.fg-swap-old{position:absolute;top:0;right:0}.fg-subhead{font:500 12px / 16px var(--font-sans);color:var(--text-tertiary);padding:6px 10px 2px}.fg-rec{height:36px;font:400 12px / 16px var(--font-mono);color:var(--text-primary);white-space:nowrap;flex:none;align-items:center;gap:8px;padding:0 8px;display:flex}.fg-rec .k{color:var(--text-tertiary)}.fg-rec .r{color:var(--text-secondary);margin-left:auto}.fg-rec .w{font:500 12px / 16px var(--font-sans);margin-left:auto}.fg-rec svg{flex:none;display:block}.fg-pchip{height:var(--label-chip);border:1px solid var(--border-hairline);border-radius:var(--radius-inner);background:var(--surface-overlay);font:400 12px / 16px var(--font-mono);color:var(--text-primary);white-space:nowrap;align-items:center;padding:0 6px;display:inline-flex}.fg-pchip .k{color:var(--text-tertiary)}.fg-rec .fg-pchip+.fg-pchip{font-variant-numeric:tabular-nums;background:0 0;margin-left:-2px}.fg-subhead .v-mono{color:var(--text-secondary);font-weight:400}.fg-chip{border:1px solid var(--border-overlay);border-radius:var(--radius-inner);background:var(--edge-chip-bg);justify-content:center;align-items:center;gap:6px;width:96px;height:28px;display:flex;position:absolute}.fg-chip .v-mono{color:var(--text-primary);font-size:12px;line-height:16px}.fg-chip svg{flex:none;display:block}.fg-glyphs{flex:none;width:16px;height:16px;position:relative}.fg-glyphs>svg{position:absolute;top:0;left:0}.fg-lbl{font:400 12px / 16px var(--font-sans);color:var(--text-tertiary);white-space:nowrap;text-align:center;position:absolute}.fg-dim{opacity:var(--opacity-dimmed)}.fg-sub.fg-off{color:var(--text-tertiary)}.fg-tile{border:1px solid var(--site-edge);border-radius:var(--radius-site-xl);background:var(--site-card);flex-direction:column;align-items:center;gap:4px;padding:12px 6px;display:flex;position:absolute}.fg-tile .fg-name{font-size:13px;line-height:20px}.fg-tile .fg-meta{margin-left:0;font-size:11px;line-height:16px}.fg-tone-neu{color:var(--flow-observed)}.fg-tone-ok{color:var(--flow-allowed)}.fg-tone-warn{color:var(--flow-would-block)}.fg-tone-crit{color:var(--flow-blocked)}.fg-fill-neu{fill:var(--flow-observed)}.fg-fill-ok{fill:var(--flow-allowed)}.fg-fill-warn{fill:var(--flow-would-block)}.fg-fill-crit{fill:var(--flow-blocked)}.fg-dot.fg-tone-neu{background:var(--flow-observed)}.fg-dot.fg-tone-ok{background:var(--flow-allowed)}.fg-dot.fg-tone-warn{background:var(--flow-would-block)}.fg-dot.fg-tone-crit{background:var(--flow-blocked)}.fg-e{fill:none}.fg-e--neu{stroke:var(--flow-observed);stroke-width:var(--fig-edge-observed);stroke-dasharray:1 4;stroke-linecap:round}.fg-e--ok{stroke:var(--flow-allowed);stroke-width:var(--fig-edge)}.fg-e--warn{stroke:var(--flow-would-block);stroke-width:var(--fig-edge);stroke-dasharray:6 4}.fg-e--crit{stroke:var(--flow-blocked);stroke-width:var(--fig-edge);stroke-dasharray:8 3 2 3}.fg-stage--wide .fg-edge--fine .fg-dotwrap{translate:0 .5px}.fg-stage--narrow .fg-edge--fine .fg-dotwrap{translate:.5px}.fg-p1,.fg-p2,.fg-p3{width:256px;height:54px;padding:4px;left:0}.fg-p1{top:31px}.fg-p2{top:97px}.fg-p3{top:163px}.fg-wl{width:256px;height:156px;top:40px;left:464px}.fg-cp{width:320px;height:216px;top:40px;left:800px}.fg-wl .fg-well .fg-row{height:40px}.fg-e1,.fg-e2,.fg-e3{width:216px;left:256px}.fg-e1{height:66px;top:46px}.fg-e2{height:24px;top:112px}.fg-e3{height:66px;top:136px}.fg-c1,.fg-c2,.fg-c3{left:280px}.fg-c1{top:44px}.fg-c2{top:110px}.fg-c3{top:176px}.fg-l-flows{width:40px;top:92px;left:740px}.fg-l-ruleset{width:60px;top:324px;left:746px}.fg-swap--start{margin-left:0}.fg-swap>.fg-swap-old--start{left:0;right:auto}.fg-subhead--swap{position:relative}.fg-subhead-old{position:absolute;top:6px;left:10px}.fg-stage--narrow .fg-t1,.fg-stage--narrow .fg-t2,.fg-stage--narrow .fg-t3{width:102px;height:92px;top:0}.fg-stage--narrow .fg-t1{left:0}.fg-stage--narrow .fg-t2{left:112px}.fg-stage--narrow .fg-t3{left:224px}.fg-stage--narrow .fg-wl{width:326px;height:156px;top:176px;left:0}.fg-stage--narrow .fg-cp{width:326px;height:216px;top:404px;left:0}.fg-stage--narrow .fg-e1,.fg-stage--narrow .fg-e2,.fg-stage--narrow .fg-e3{width:24px;height:92px;top:92px}.fg-stage--narrow .fg-e1{left:39px}.fg-stage--narrow .fg-e2{left:151px}.fg-stage--narrow .fg-e3{left:263px}.fg-stage--narrow .fg-c1,.fg-stage--narrow .fg-c2,.fg-stage--narrow .fg-c3{top:116px}.fg-stage--narrow .fg-c1{left:3px}.fg-stage--narrow .fg-c2{left:115px}.fg-stage--narrow .fg-c3{left:227px}.fg-stage--narrow .fg-l-flows{width:auto;top:364px;left:116px}.fg-stage--narrow .fg-l-ruleset{width:auto;top:356px;left:234px}.fg:not(.is-play) .a-only-play{display:none}@media (prefers-reduced-motion:reduce){.fg .a-only-play{display:none}}@media (prefers-reduced-motion:no-preference){:is(.fg.is-pending,.fg.is-play) .a-reveal{animation:fg-rise-12 var(--duration-reveal) var(--ease-out) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-rise{animation:fg-rise-6 var(--duration-slow) var(--ease-out) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-fade{animation:fg-fade var(--duration-fast) var(--ease-out) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-fade-base{animation:fg-fade var(--duration-base) var(--ease-out) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-fade-slow{animation:fg-fade var(--duration-slow) var(--ease-out) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-draw{stroke-dasharray:1 1;animation:fg-draw var(--duration-slow) var(--ease-standard) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-wipe{animation:fg-wipe-r var(--duration-reveal) var(--ease-out) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .fg-stage--narrow .a-wipe{animation-name:fg-wipe-d}:is(.fg.is-pending,.fg.is-play) .a-wipe-l{animation:fg-wipe-l var(--duration-reveal) var(--ease-standard) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-unwipe-l{animation:fg-unwipe-l var(--duration-reveal) var(--ease-standard) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .fg-stage--narrow .a-wipe-l{animation-name:fg-wipe-u}:is(.fg.is-pending,.fg.is-play) .fg-stage--narrow .a-unwipe-l{animation-name:fg-unwipe-u}:is(.fg.is-pending,.fg.is-play) .a-on{animation:fg-on 1ms steps(1, start) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-off{animation:fg-off 1ms steps(1, start) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-undim{animation:fg-undim var(--duration-base) var(--ease-standard) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-out{animation:fg-out var(--duration-fast) var(--ease-in) var(--t,0s) both}:is(.fg.is-pending,.fg.is-play) .a-flow{animation:fg-flow calc(var(--duration-flow) + var(--flow-rest)) linear calc(var(--t,0s) + var(--o,0s)) infinite both}.fg.is-pending :is(.a-reveal,.a-rise,.a-fade,.a-fade-base,.a-fade-slow,.a-draw,.a-wipe,.a-wipe-l,.a-unwipe-l,.a-on,.a-off,.a-undim,.a-out,.a-flow),.fg.is-paused .a-flow{animation-play-state:paused}}.fg-o1{--o:calc((var(--duration-flow) + var(--flow-rest)) / 3)}.fg-o2{--o:calc((var(--duration-flow) + var(--flow-rest)) * 2 / 3)}@keyframes fg-rise-12{0%{opacity:0;transform:translateY(var(--reveal-distance))}to{opacity:1;transform:none}}@keyframes fg-rise-6{0%{opacity:0;transform:translateY(var(--reveal-distance-sm))}to{opacity:1;transform:none}}@keyframes fg-fade{0%{opacity:0}to{opacity:1}}@keyframes fg-out{0%{opacity:1}to{opacity:0}}@keyframes fg-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes fg-wipe-r{0%{clip-path:inset(-16px calc(100% + 16px) -16px -16px)}to{clip-path:inset(-16px)}}@keyframes fg-wipe-l{0%{clip-path:inset(-16px -16px -16px calc(100% + 16px))}to{clip-path:inset(-16px)}}@keyframes fg-unwipe-l{0%{clip-path:inset(-16px)}to{clip-path:inset(-16px calc(100% + 16px) -16px -16px)}}@keyframes fg-wipe-d{0%{clip-path:inset(-16px -16px calc(100% + 16px))}to{clip-path:inset(-16px)}}@keyframes fg-wipe-u{0%{clip-path:inset(calc(100% + 16px) -16px -16px)}to{clip-path:inset(-16px)}}@keyframes fg-unwipe-u{0%{clip-path:inset(-16px)}to{clip-path:inset(-16px -16px calc(100% + 16px))}}@keyframes fg-on{0%{opacity:0}to{opacity:1}}@keyframes fg-off{0%{opacity:1}to{opacity:0}}@keyframes fg-undim{0%{opacity:var(--opacity-dimmed)}to{opacity:1}}@keyframes fg-flow{0%{offset-distance:0%;opacity:0}5%{opacity:1}61%{opacity:1}66.667%{offset-distance:100%;opacity:0}to{offset-distance:100%;opacity:0}}.l main,.l .v-footer{z-index:1;position:relative}.l-atmo{z-index:0;pointer-events:none;background:radial-gradient(ellipse 64% 56% at 50% -8%, var(--accent-atmo), transparent 72%), radial-gradient(ellipse 36% 44% at 10% 0%, var(--atmo-wash), transparent 70%);height:920px;position:absolute;top:0;left:0;right:0}.l-hero{padding:var(--space-4000) 0 var(--space-3200)}.l-hero-title{max-width:960px;margin-top:var(--space-600)}.l-hero-lead{max-width:54ch;margin-top:var(--space-600)}.l-ctas{gap:var(--space-300);margin-top:var(--space-1000);flex-wrap:wrap;display:flex}.l-section{padding:var(--space-3200) 0}.l-head{gap:var(--space-300);flex-direction:column;display:flex}.l-head .v-lead{max-width:600px}.l-head--center{text-align:center;align-items:center;max-width:720px;margin:0 auto}.pv-head{margin-bottom:var(--space-1600)}.pv-rows{gap:var(--space-2400);flex-direction:column;display:flex}.pv-row{column-gap:var(--space-600);grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;display:grid}.pv-row-text{padding-right:var(--space-800);grid-area:1/1/auto/span 4}.pv-cap{margin-top:var(--space-200)}.pv-frame{isolation:isolate;grid-area:1/5/auto/span 8;margin:0;position:relative}.pv-shot{border:1px solid var(--border-overlay);border-radius:var(--radius-site-lg);background:var(--surface-canvas);display:block;overflow:hidden}.pv-shot img{width:100%;height:auto;display:block}[data-theme=dark] .l-for-light,[data-theme=light] .l-for-dark{display:none}.l-split{column-gap:var(--space-600);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.l-split-a{gap:var(--space-300);flex-direction:column;grid-column:1/span 4;align-self:start;display:flex}.l-split-b{grid-column:6/span 7;min-width:0}.l-why{gap:var(--space-1200) var(--space-1000);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.l-why li{gap:var(--space-200);flex-direction:column;display:flex}.l-split-a .l-ctas{margin-top:var(--space-500)}.l-qs{padding:var(--space-800);border:1px solid var(--site-edge);border-radius:var(--radius-site-xl);background:var(--site-card)}.l-steps{gap:var(--space-800);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.l-step{column-gap:var(--space-400);grid-template-columns:24px minmax(0,1fr);align-items:start;display:grid}.l-step-n{border:1px solid var(--border-overlay);border-radius:var(--radius-full);width:24px;height:24px;font:500 12px / 16px var(--font-sans);color:var(--text-secondary);place-items:center;margin-top:2px;display:grid}.l-step .v-code{margin-top:var(--space-300)}.l-step-note{margin-top:var(--space-200)}.l-cap-code{font-family:var(--font-mono);color:var(--text-secondary);font-size:12px;line-height:16px}@media (width<=767.98px){.l-head-cta{display:none}.l-atmo{background:radial-gradient(ellipse 120% 56% at 50% -8%, var(--accent-atmo), transparent 72%);height:720px}.l-hero{padding:var(--space-2000) 0}.l-hero-title,.l-hero-lead{margin-top:var(--space-500)}.l-ctas{margin-top:var(--space-800)}.l-section{padding:var(--space-2000) 0}.pv-head{margin-bottom:var(--space-1000)}.pv-rows{gap:56px}.pv-row{row-gap:var(--space-500);grid-template-columns:minmax(0,1fr)}.pv-row-text,.pv-frame{grid-area:auto/1;padding-right:0}.l-split{row-gap:var(--space-1000);grid-template-columns:minmax(0,1fr)}.l-split-a,.l-split-b{grid-column:1}.l-why{gap:var(--space-800);grid-template-columns:minmax(0,1fr)}.l-qs{padding:var(--space-500)}}@keyframes l-rise-sm{0%{opacity:0;transform:translateY(var(--reveal-distance-sm))}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.l-atmo{animation:v-fade-in var(--duration-slow) var(--ease-out) both}.l-hero .v-wrap>*{animation:l-rise-sm var(--duration-slow) var(--ease-out) both}.l-hero .v-wrap>:nth-child(2){animation-delay:var(--reveal-stagger)}.l-hero .v-wrap>:nth-child(3){animation-delay:calc(2 * var(--reveal-stagger))}.l-hero .v-wrap>:nth-child(4){animation-delay:calc(3 * var(--reveal-stagger))}}
