@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.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}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-italic-Q0qr0lrZ.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:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-italic-BEAWuiTz.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}.landing{--ground:#fff;--tint:#faf9f8;--raised:#fff;--panel:#f5f4f2;--sunk:#efeeeb;--line:#ebe9e6;--line-2:#d9d6d1;--text:#17141f;--text-2:#56526a;--text-3:#8a8599;--text-4:#aaa6b5;--button:#17141f;--button-hover:#2f2a3d;--button-text:#fff;--stall:#e03c3c;--flaky:#d9772b;--pass:#0f9f70;--finding-missing:#e03c3c;--finding-ambiguous:#d9772b;--finding-contradictory:#9358ca;--finding-dead-end:#56526a;--lp-display:"Figtree Variable", ui-sans-serif, system-ui, sans-serif;--lp-body:"Figtree Variable", ui-sans-serif, system-ui, sans-serif;--lp-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--lp-frame:1200px;--lp-inset:16px;--lp-margin:0px;background:var(--ground);min-height:100vh;color:var(--text);font-family:var(--lp-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;display:flex;position:relative;overflow-x:clip}@media (width>=768px){.landing{--lp-inset:32px;--lp-margin:24px}}@media (width>=1280px){.landing{--lp-margin:40px}}.lp-band{--band-bg:var(--ground);background:var(--band-bg);position:relative}.lp-band[data-tone=tint]{--band-bg:var(--tint)}.lp-frame,.lp-container{width:min(var(--lp-frame), 100% - 2 * var(--lp-margin));padding-inline:var(--lp-inset);margin-inline:auto;position:relative}.lp-guides{inset-block:0;width:min(var(--lp-frame), 100% - 2 * var(--lp-margin));border-inline:1px solid var(--line);pointer-events:none;position:absolute;left:50%;translate:-50%}@media (width<=767px){.lp-guides{display:none}}.lp-rule{border-top:1px solid var(--line)}.landing ::selection{background:color-mix(in srgb, var(--button) 16%, transparent);color:var(--text)}.lp-display{font-family:var(--lp-display)}.lp-h1,.lp-h2,.lp-h3{font-family:var(--lp-display);text-wrap:balance;font-weight:480}.lp-h1{letter-spacing:-.035em;font-size:clamp(2.375rem,1.4rem + 3vw,4rem);line-height:1.04}.lp-h2{letter-spacing:-.03em;font-size:clamp(1.875rem,1.3rem + 1.8vw,3rem);line-height:1.08}.lp-h3{letter-spacing:-.018em;font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.2}.lp-lead{color:var(--text-2);text-wrap:pretty;font-size:17px;line-height:1.55}@media (width>=768px){.lp-lead{font-size:18px}}.lp-eyebrow{color:var(--text-3);font-size:14px;font-weight:500}.lp-mono{font-family:var(--lp-mono)}.lp-btn{cursor:pointer;white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;height:44px;padding-inline:20px;font-size:15px;font-weight:500;transition:background-color .2s,box-shadow .2s,color .2s;display:inline-flex}.lp-btn:focus-visible,.lp-focus:focus-visible{outline:2px solid var(--button);outline-offset:2px}.lp-btn-sm{height:36px;padding-inline:14px;font-size:14px}.lp-btn-primary{background:var(--button);color:var(--button-text)}.lp-btn-primary:hover{background:var(--button-hover)}.lp-btn-secondary{background:var(--raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.lp-btn-secondary:hover{background:var(--panel)}.lp-link{color:var(--text);align-items:center;gap:6px;font-weight:500;transition:color .2s;display:inline-flex}.lp-link:hover{color:var(--text-2)}.lp-arrow{flex-shrink:0;overflow:visible}.lp-arrow-shaft{opacity:0;transition:opacity .2s cubic-bezier(.25,1,.5,1)}.lp-arrow-head{transition:transform .2s cubic-bezier(.25,1,.5,1)}.group:hover .lp-arrow-shaft,.group:focus-visible .lp-arrow-shaft{opacity:1}.group:hover .lp-arrow-head,.group:focus-visible .lp-arrow-head{transform:translate(3px)}.lp-panel{background:var(--panel);border-radius:24px}@media (width>=768px){.lp-panel{border-radius:28px}}.lp-tabs{border-radius:999px;outline:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;display:grid;position:relative}@property --tabs-fade-start{syntax:"<length>";inherits:false;initial-value:0}@property --tabs-fade-end{syntax:"<length>";inherits:false;initial-value:0}@media (width<=767px){.lp-tabs{scrollbar-width:none;border-radius:inherit;-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--tabs-fade-start), #000 calc(100% - var(--tabs-fade-end)), transparent);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--tabs-fade-start), #000 calc(100% - var(--tabs-fade-end)), transparent);mask-image:linear-gradient(to right, transparent, #000 var(--tabs-fade-start), #000 calc(100% - var(--tabs-fade-end)), transparent);grid-auto-columns:max-content;margin-inline:-6px;padding-inline:10px;transition:--tabs-fade-start .25s,--tabs-fade-end .25s;overflow-x:auto}.lp-tabs[data-more-start]{--tabs-fade-start:40px}.lp-tabs[data-more-end]{--tabs-fade-end:40px}}.lp-tab{z-index:1;cursor:pointer;min-width:0;height:40px;color:var(--text);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding-inline:12px;font-size:14px;font-weight:500;transition:background-color .25s;display:flex;position:relative}.lp-tab:not([aria-selected=true]):hover{background:#17141f0a}.lp-tab-pill{background:var(--raised);pointer-events:none;will-change:transform;border-radius:999px;position:absolute;top:4px;bottom:4px;left:0;box-shadow:0 0 0 1px #17141f0a,0 1px 3px #17141f14}.lp-tab-pill[data-animated]{transition:transform .5s cubic-bezier(.65,0,.35,1),width .5s cubic-bezier(.65,0,.35,1)}.lp-tabs:focus-visible .lp-tab[aria-selected=true]{outline:2px solid var(--button);outline-offset:-2px}.lp-reveal{opacity:0;transition:opacity .8s cubic-bezier(.22,1,.36,1),translate .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0s);translate:0 16px}.lp-reveal[data-shown]{opacity:1;translate:0}[data-paused],[data-paused] *{animation-play-state:paused!important}@keyframes lp-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.lp-pop-in{animation:.5s cubic-bezier(.22,1,.36,1) both lp-pop-in}.lp-dials{contain:inline-size}.lp-marquee{animation:lp-marquee var(--marquee,60s) linear infinite}.lp-marquee:hover{animation-play-state:paused}@keyframes lp-marquee{to{transform:translate(calc(-50% - 6px))}}.lp-dial-fill{transform:scaleX(var(--dial-at,0));transition:transform .9s cubic-bezier(.65,0,.35,1)}.lp-dial-thumb{transform:translateX(calc(var(--dial-at,0) * 100%));transition:transform .9s cubic-bezier(.65,0,.35,1)}.lp-value-in{animation:.4s ease-out both lp-value-in}@keyframes lp-value-in{0%{opacity:0}}@keyframes lp-pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes lp-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--pass) 45%, transparent)}70%,to{box-shadow:0 0 0 6px #0000}}@keyframes lp-drift{0%,to{transform:translate(0,0)rotate(0)}50%{transform:translate(-10px,14px)rotate(-1.2deg)}}.lp-dialog{opacity:0;width:min(1280px,100vw - 32px,177.778svh - 213.333px);max-width:none;max-height:none;transition:opacity .35s ease, transform .45s cubic-bezier(.16, 1, .3, 1), overlay .45s allow-discrete, display .45s allow-discrete;background:0 0;border:0;margin:auto;padding:0;overflow:visible;transform:translateY(12px)scale(.97)}.lp-dialog[open]{opacity:1;transform:none}@starting-style{.lp-dialog[open]{opacity:0;transform:translateY(12px)scale(.97)}}.lp-dialog::backdrop{transition:background-color .35s ease, backdrop-filter .35s ease, overlay .35s allow-discrete, display .35s allow-discrete;background:#12101400}.lp-dialog[open]::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#121014b8}@starting-style{.lp-dialog[open]::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:#12101400}}html:has(.lp-dialog[open]){overflow:hidden}.landing .prose{--tw-prose-body:var(--text-2);--tw-prose-headings:var(--text);--tw-prose-lead:var(--text-2);--tw-prose-links:var(--text);--tw-prose-bold:var(--text);--tw-prose-counters:var(--text-3);--tw-prose-bullets:var(--text-4);--tw-prose-hr:var(--line);--tw-prose-quotes:var(--text-2);--tw-prose-quote-borders:var(--line);--tw-prose-captions:var(--text-3);--tw-prose-code:var(--text);--tw-prose-th-borders:var(--line);--tw-prose-td-borders:var(--line);max-width:680px;font-size:17px;line-height:1.6}@media (width>=768px){.landing .prose{font-size:18px}}.landing .prose :is(h1,h2,h3){font-family:var(--lp-display);letter-spacing:-.024em;font-weight:480}.landing .prose h1{margin:0 0 1.25rem;font-size:clamp(2.25rem,1.45rem + 2.5vw,3.25rem);line-height:1.1}.landing .prose h1+*{margin-top:0}.landing .prose h2{margin-top:3rem;margin-bottom:1rem;font-size:clamp(1.6rem,1.3rem + 1vw,2rem);line-height:1.15}.landing .prose :is(p,li){font-size:inherit;line-height:1.6}.lp-glass{-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);background:#ffffff1f;box-shadow:inset 0 0 0 .5px #ffffffe6,0 0 0 .5px #17141f1a,0 .5px 1px #17141f1f,inset 0 0 8px #ffffff4d,inset 0 3px 1.5px -2px #ffffffe6,inset 0 -3px 1.5px -2px #ffffffe6,0 8px 18px -6px #17141f4d}.lp-bubble{background:#ffffff1f;box-shadow:inset 0 0 0 .5px #ffffffe6,0 0 0 .5px #17141f1f,inset 0 2px 1px -1px #fffc,0 3px 6px -2px #17141f4d}.lp-app{--surface-0:#fafafa;--surface-1:#f3f3f3;--surface-2:#efefee;--surface-3:#e8e8e7;--surface-4:#e0e0df;--surface-5:#d8d8d7;--surface-6:#d0d0cf;--surface-7:#c7c7c6;--surface-8:#bebebd;--label-primary:#171513;--label-secondary:#5f5954;--label-tertiary:#8e8580;--label-quaternary:#aaa19b;--primary:oklch(20.5% 0 0);--utility-success:#16b255;--utility-warning:#ff7a2e;--utility-error:#e91d1d;--phase-green:#0f9f70;--phase-blue:#0075ff;--phase-violet:#9a74ea;--phase-pink:#db5e95;--phase-orange:#de7a2d;--attribute-actor:#0075ff;--attribute-action:#16a34a;--attribute-thing:#844fff;--attribute-channel:#ea580c;--attribute-system:#db2777;--attribute-place:#c19000;--canvas-background:#e7e7e7;--canvas-dot:var(--surface-6);--canvas-node-shell:var(--surface-0);--canvas-node-item:var(--surface-0);--canvas-node-item-selected:var(--surface-2);--boundary-pill-default-bg:var(--surface-5);--boundary-pill-default-text:var(--label-tertiary);--project-flow-spine-stroke:var(--primary);--node-edge:var(--surface-5);--bubble:var(--label-primary);--bubble-text:var(--surface-0);--panel-surface:var(--surface-0);--panel-shadow:var(--surface-4);--editor-ground:#fff;--editor-sidebar:#f7f7f6;--editor-line:#00000012;--editor-text:#3d3b40;--editor-strong:#16151a;--editor-muted:#8a878f;--editor-selected:#0000000f;--editor-code:#b35c1e;--editor-code-bg:#0000000d;--editor-file:#4f7fbf;color:var(--label-primary);font-family:var(--lp-body)}@property --split{syntax:"<number>";inherits:true;initial-value:1}.lp-compare[data-glide]{transition:--split 1.6s cubic-bezier(.65,0,.35,1)}.lp-compare-sources{clip-path:inset(0 calc((1 - var(--split)) * 100%) 0 0)}.lp-compare-divider{left:calc(var(--split) * 100%)}.lp-compare-map{transform:translateX(calc(var(--split) * 640px))}.lp-canvas{background-color:var(--canvas-background);background-image:radial-gradient(circle, var(--canvas-dot) 1px, transparent 1.1px);background-size:16px 16px}.lp-orb{isolation:isolate;background:var(--orb-a);border-radius:999px;position:relative;overflow:hidden}.lp-orb-light{clip-path:circle(31.25%);background:radial-gradient(42% 42% at 30% 32%, var(--orb-a), transparent 70%), radial-gradient(48% 48% at 72% 38%, var(--orb-b), transparent 72%), radial-gradient(46% 46% at 42% 74%, var(--orb-c), transparent 70%), radial-gradient(30% 30% at 66% 72%, var(--orb-a), transparent 72%), var(--orb-b);animation:18s linear infinite lp-orb-turn;animation-delay:var(--orb-delay,0s);will-change:transform;position:absolute;inset:-30%}.lp-orb-light:after{background:radial-gradient(closest-side, var(--orb-c), transparent);content:"";opacity:.55;border-radius:999px;animation:7s ease-in-out infinite lp-orb-breathe;position:absolute;inset:18%}.lp-orb:before,.lp-grain:before{z-index:2;border-radius:inherit;content:"";image-rendering:pixelated;mix-blend-mode:overlay;opacity:.5;background-image:url(/assets/noise-CkEa4YDr.png);background-size:256px;position:absolute;inset:0}@media (resolution>=2x){.lp-orb:before,.lp-grain:before{background-size:128px}}.lp-grain{isolation:isolate;border-radius:inherit}.lp-orb-paint{clip-path:circle(50%);background:var(--orb-paint) center / cover;will-change:auto;animation:none;inset:0}.lp-orb-paint:after{content:none}.lp-orb-face{z-index:1;object-fit:cover;opacity:0;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(closest-side,#000 55%,#0000);mask-image:radial-gradient(closest-side,#000 55%,#0000)}.lp-orb-face[data-loaded]{animation:.9s cubic-bezier(.65,0,.35,1) both lp-face-in}@keyframes lp-face-in{0%{opacity:0}to{opacity:1}}.lp-orb:after{z-index:3;border-radius:inherit;content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 .5px #0000001a}@keyframes lp-orb-turn{to{transform:rotate(360deg)}}@keyframes lp-orb-breathe{0%,to{transform:translate(-8%,6%)scale(.9)}50%{transform:translate(10%,-8%)scale(1.15)}}@media (prefers-reduced-motion:reduce){.landing *,.landing :before,.landing :after{transition-duration:.001ms!important;animation-play-state:paused!important}.lp-reveal{opacity:1;translate:none}.lp-orb-face[data-loaded]{opacity:1;animation:none}.lp-pop-in,.lp-marquee,.lp-value-in{animation:none}.lp-dials{overflow-x:auto}.lp-dial-fill,.lp-dial-thumb{transition:none}[style*=--hold]{--loop-delay:calc(var(--hold) * -1)}}
