@keyframes framework-headline-signal{0%,10%{background-position:100%}23%,to{background-position:0}}.framework-signal{color:var(--signal-ink)}.framework-signal .icon-library{width:0;height:0;position:absolute;overflow:hidden}.framework-signal .icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}@supports ((-webkit-background-clip:text) or (background-clip:text)){.framework-signal .headline-accent{background-image:linear-gradient(105deg,var(--signal-light) 0%,var(--signal-light) 43%,var(--accent-foreground) 50%,var(--signal-light) 57%,var(--signal-light) 100%);color:#0000;background-position:100%;background-size:240% 100%;-webkit-background-clip:text;background-clip:text;width:fit-content;max-width:100%;animation:14s ease-in-out infinite paused framework-headline-signal}.framework-signal:has(.signal-atmosphere[data-motion=running]) .headline-accent[data-visible=true]{animation-play-state:running}}.framework-signal .signal-demo{aspect-ratio:1400/470;isolation:isolate;margin-top:max(-99px,178.971px - 19.2857vw);position:relative}.framework-signal .signal-routes{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.framework-signal .route-base{stroke:#694997;stroke-width:2px}.framework-signal .route-lit{stroke:var(--signal-light);stroke-width:2.5px}.framework-signal .route-arrows{stroke:var(--signal-light);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.framework-signal .route-ticks{stroke:#675876;stroke-width:1px;stroke-dasharray:3 3}.framework-signal .waveform{stroke:var(--signal-light);stroke-width:2px;stroke-linejoin:round;opacity:.55;transition:opacity .2s}.framework-signal .glow-wave{stroke:var(--signal-light);stroke-width:5px;opacity:0}.framework-signal .signal-demo[data-state=running] .waveform{opacity:1}.framework-signal .signal-demo[data-state=running] .glow-wave{opacity:.65}.framework-signal .pulse-point{fill:#faf7ff;opacity:0}.framework-signal .pulse-glow{fill:var(--signal-light);opacity:0}.framework-signal .junction circle:first-child{stroke:var(--signal-light);stroke-width:2px;fill:var(--signal-ground)}.framework-signal .junction circle:last-child{fill:var(--signal-light)}.framework-signal .demo-control{z-index:2;flex-direction:column;align-items:flex-start;gap:10px;display:flex;position:absolute;top:calc(57.4468% - 142px);left:0}.framework-signal .demo-label{color:var(--signal-muted);font-size:12px}.framework-signal .run-button{background:var(--signal-ground);border:1px solid #7753a5;border-radius:4px;align-items:center;gap:9px;min-height:44px;padding:10px 15px;font-size:13px;transition:border-color .18s,background .18s;display:flex}.framework-signal .run-button .icon{width:15px;height:15px;color:var(--signal-light)}.framework-signal .run-button:hover:not(:disabled){border-color:var(--signal-light);background:var(--secondary)}.framework-signal .run-button:disabled{color:var(--signal-muted);border-color:#4c365f}.framework-signal .flow-node{text-align:center;background:0 0;border:0;border-radius:5px;flex-direction:column;align-items:center;width:190px;padding:0;display:flex;position:absolute;top:calc(57.4468% - 14.5px);transform:translate(-50%)}.framework-signal .agent-node{left:11.43%}.framework-signal .database-node{left:34.29%}.framework-signal .subscription-node{left:57.86%}.framework-signal .stage-label{color:var(--signal-detail);white-space:nowrap;font-size:12px;line-height:16px}.framework-signal .flow-node>.stage-label{position:absolute;top:-36px}.framework-signal .node-ring{background:var(--signal-ground);border:1.5px solid #af89df;border-radius:50%;place-items:center;width:29px;height:29px;margin-top:0;transition:border-color .18s,background .18s;display:grid;position:relative}.framework-signal .node-ring>span{width:14px;height:14px;transition:background .18s,transform .18s var(--signal-ease);background:#eee6f7;border:1px solid #b59bce;border-radius:50%}.framework-signal .node-ring:after{content:"";border:1px solid var(--signal-light);opacity:0;transition:opacity .2s,transform .25s var(--signal-ease);border-radius:50%;position:absolute;inset:-7px;transform:scale(.8)}.framework-signal .flow-node:hover .node-ring:after,.framework-signal .flow-node:focus-visible .node-ring:after,.framework-signal .flow-node[aria-pressed=true] .node-ring:after{opacity:.6;transform:scale(1)}.framework-signal .flow-node.visited .node-ring>span{background:var(--signal-light);border-color:var(--signal-light)}.framework-signal .flow-node.active .node-ring{background:#422163;border-color:#dac4ff}.framework-signal .flow-node.active .node-ring>span{transform:scale(.65)}.framework-signal .node-name{white-space:nowrap;margin-top:23px;font-size:17px;font-weight:500;line-height:24px}.framework-signal .node-subtitle{color:var(--signal-detail);white-space:nowrap;margin-top:4px;font-size:11px}.framework-signal .payload{color:var(--signal-detail);text-align:left;white-space:nowrap;align-self:flex-start;margin:17px 0 0 9px;font-family:ui-monospace,monospace;font-size:11px;line-height:1.8;display:block}.framework-signal .payload span{color:var(--accent-foreground)}.framework-signal .node-icon{width:44px;height:44px;color:var(--signal-light);stroke-width:1.4px;transition:transform .24s var(--signal-ease);margin-top:17px}.framework-signal .flow-node:hover .node-icon{transform:translateY(-3px)}.framework-signal .node-caption{color:var(--signal-detail);margin-top:11px;font-size:11px}.framework-signal .node-detail{color:#e7dcef;pointer-events:none;opacity:0;width:210px;transition:opacity .15s,transform .2s var(--signal-ease);z-index:3;background:#21162e;border:1px solid #694a80;border-radius:5px;padding:10px 12px;font-size:12px;line-height:1.45;position:absolute;bottom:calc(100% + 15px);left:50%;transform:translate(-50%,5px)}.framework-signal .flow-node:hover .node-detail,.framework-signal .flow-node:focus-visible .node-detail,.framework-signal .flow-node[aria-pressed=true] .node-detail{opacity:1;transform:translate(-50%)}.framework-signal .update-stage{position:absolute;top:calc(57.4468% - 50.5px);left:77.86%;transform:translate(-50%)}.framework-signal .client-previews{pointer-events:none;position:absolute;inset:0}.framework-signal .client{pointer-events:auto;width:16%;position:absolute;left:84%}.framework-signal .client-a{top:0}.framework-signal .client-b{top:68%}.framework-signal .client-label{white-space:nowrap;justify-content:space-between;align-items:center;gap:7px;margin-bottom:10px;font-size:15px;display:flex}.framework-signal .client-status{color:var(--signal-muted);align-items:center;gap:5px;font-size:9px;display:flex}.framework-signal .client-status:before{content:"";background:var(--signal-light);border-radius:50%;width:3px;height:3px}.framework-signal .client-window{background:var(--signal-ground);border:1px solid #746980;border-radius:7px;transition:border-color .2s;overflow:hidden}.framework-signal .client:hover .client-window{border-color:#ba9cde}.framework-signal .window-bar{border-bottom:1px solid #4d4258;align-items:center;gap:10px;height:23px;padding:0 9px;display:flex}.framework-signal .window-dots{gap:4px;display:flex}.framework-signal .window-dots i{background:#7d708a;border-radius:50%;width:4px;height:4px}.framework-signal .address-line{border:1px solid #4f415e;border-radius:3px;flex:1;height:8px}.framework-signal .window-menu{border-block:1px solid #80728f;width:9px;height:6px}.framework-signal .client-body{padding:13px 13px 16px}.framework-signal .route-title{color:var(--signal-detail);justify-content:space-between;align-items:center;font-size:12px;display:flex}.framework-signal .client-check{opacity:0;width:13px;height:13px;transition:opacity .15s}.framework-signal .post{border-top:1px solid #3a2e46;flex-direction:column;gap:11px;min-height:63px;margin-top:12px;padding-top:15px;display:flex}.framework-signal .post-title{letter-spacing:-.02em;font-size:15px}.framework-signal .post-time{color:var(--signal-muted);font-size:10px}.framework-signal .client.updated .client-window{border-color:var(--signal-light)}.framework-signal .client.updated .client-check{opacity:1}.framework-signal .demo-footnote{color:var(--signal-muted);justify-content:space-between;align-items:center;gap:15px;margin-top:69px;font-size:12px;display:flex}.framework-signal .sequence-status{align-items:center;gap:8px;display:flex}.framework-signal .sequence-status:before{content:"";background:var(--signal-light);border-radius:50%;width:4px;height:4px}.framework-signal .simulation-note{color:var(--signal-muted);font-size:10px}.framework-signal .motion-toggle{min-height:44px;color:var(--signal-muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:11px;transition:color .15s;display:flex}.framework-signal .motion-toggle:hover,.framework-signal .motion-toggle:focus-visible{color:var(--signal-light)}.framework-signal .motion-toggle .icon{width:14px;height:14px}@media (width>=1600px){.framework-signal .signal-demo{margin-top:-110px}.framework-signal .demo-footnote{margin-top:78px}}@media (width<=1150px){.framework-signal .signal-demo{margin-top:max(-40px,172.8px - 19.2857vw)}.framework-signal .flow-node{width:160px}.framework-signal .node-ring{margin-top:0}.framework-signal .node-name{margin-top:19px;font-size:15px}.framework-signal .payload{margin-left:0;font-size:10px}.framework-signal .client-label{font-size:13px}.framework-signal .client-status{display:none}.framework-signal .client-body{padding:10px}.framework-signal .post-title{font-size:13px}.framework-signal .post{min-height:55px;padding-top:10px}.framework-signal .node-subtitle{font-size:10px}}@media (width<=760px){.framework-signal .signal-demo{aspect-ratio:auto;min-height:0;margin-top:42px}.framework-signal .signal-routes{display:none}.framework-signal .demo-control{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;margin-bottom:27px;position:relative;top:auto;left:auto}.framework-signal .demo-label{font-size:11px}.framework-signal .run-button{min-height:44px;padding-inline:12px;font-size:12px}.framework-signal .flow-stages{flex-direction:column;gap:0;padding-left:0;display:flex;position:relative}.framework-signal .flow-stages:before{content:"";background:#6d479a;width:1.5px;position:absolute;top:32px;bottom:-27px;left:16px}.framework-signal .flow-node{text-align:left;grid-template-rows:22px 30px 1fr;grid-template-columns:1fr 58px;align-items:flex-start;column-gap:8px;width:100%;min-height:174px;padding:0 0 24px 53px;display:grid;position:relative;top:auto;left:auto;transform:none}.framework-signal .flow-node>.stage-label{position:static}.framework-signal .database-node,.framework-signal .subscription-node{min-height:135px}.framework-signal .stage-label{grid-column:1;font-size:11px;line-height:18px}.framework-signal .node-ring{width:29px;height:29px;margin:0;position:absolute;top:20px;left:2px}.framework-signal .node-name{white-space:normal;grid-column:1;margin:0;font-size:18px;line-height:26px}.framework-signal .node-subtitle{grid-column:1;margin-top:3px;font-size:10px}.framework-signal .node-icon{grid-area:2/2/4;place-self:start end;width:38px;height:38px;margin:0 6px 0 0}.framework-signal .node-caption{grid-column:1;align-self:start;margin-top:3px;font-size:12px}.framework-signal .payload{grid-column:1;margin:9px 0 0;font-size:11px}.framework-signal .node-detail{width:230px;inset:2px 0 auto auto;transform:translateY(-7px)}.framework-signal .flow-node:hover .node-detail,.framework-signal .flow-node:focus-visible .node-detail,.framework-signal .flow-node[aria-pressed=true] .node-detail{transform:translateY(-12px)}.framework-signal .update-stage{padding:0 0 19px 53px;font-size:11px;display:block;position:relative;top:auto;left:auto;transform:none}.framework-signal .update-stage:before{content:"";border:2px solid var(--signal-light);background:var(--signal-ground);border-radius:50%;width:11px;height:11px;position:absolute;top:0;left:11px}.framework-signal .client-previews{grid-template-columns:1fr 1fr;gap:12px;padding-top:23px;display:grid;position:relative;inset:auto}.framework-signal .client-previews:before{content:"";border-top:1.5px solid #6d479a;border-right:1.5px solid #6d479a;height:17px;position:absolute;top:0;left:16px;right:22%}.framework-signal .client-previews:after{content:"";border-left:1.5px solid #6d479a;height:41px;position:absolute;top:-24px;left:16px}.framework-signal .client{width:100%;position:relative;top:auto;left:auto}.framework-signal .client-label{margin-bottom:8px;font-size:13px}.framework-signal .client-status{display:none}.framework-signal .client-body{padding:10px}.framework-signal .client-window{border-radius:6px}.framework-signal .window-bar{gap:7px;height:21px;padding:0 7px}.framework-signal .window-dots{gap:3px}.framework-signal .window-dots i{width:3px;height:3px}.framework-signal .route-title{font-size:11px}.framework-signal .post-title{overflow-wrap:anywhere;font-size:12px}.framework-signal .post{gap:8px;min-height:54px}.framework-signal .post-time{font-size:9px}.framework-signal .demo-footnote{flex-direction:column;align-items:flex-start;gap:10px;margin-top:8px;font-size:11px}.framework-signal .simulation-note{padding-left:12px;font-size:9px}.framework-signal .signal-atmosphere{background:radial-gradient(ellipse at 100% 8%,var(--signal-field-a) 0%,transparent 39%),radial-gradient(ellipse at 0% 57%,var(--signal-field-b) 0%,transparent 45%),var(--signal-field-base)}.framework-signal .field-contours{opacity:.75;width:1000px;top:28px;right:-235px}.framework-signal .field-light{inset:25% -40% 15%}}@media (prefers-reduced-motion:reduce){.framework-signal .field-ribbons,.framework-signal .field-ambient-trace,.framework-signal .headline-accent{animation:none}.framework-signal .field-ribbons{opacity:1;transform:none}.framework-signal .field-ambient-trace{opacity:0}.framework-signal .headline-accent{color:var(--signal-light);background-image:none}.framework-signal .field-light{transition:opacity .1s}.framework-signal:has(.signal-demo[data-state=running]) .field-highlight{animation:none}.framework-signal .node-icon,.framework-signal .node-detail,.framework-signal .node-ring:after{transition:opacity .1s,color .1s;transform:none}.framework-signal .flow-node:hover .node-icon{transform:none}}.framework-signal .signal-hero-close{border-top:1px solid var(--signal-line);justify-content:space-between;align-items:center;gap:20px;margin-top:32px;padding:20px 0 36px;font-size:12px;display:flex}.framework-signal .signal-hero-close .signal-text-link svg{width:16px;height:16px}
