.explain-canvas{--ease-explain-morph: cubic-bezier(.16, 1, .3, 1);--dur-explain-morph: .47s}.explain-canvas[data-morphing=true] .react-flow__node{transition:transform var(--dur-explain-morph) var(--ease-explain-morph)}.explain-canvas[data-morphing=true] .react-flow__edge{transition:opacity var(--dur-explain-morph) var(--ease-explain-morph)}.explain-morph-transition{transition-property:all;transition-duration:var(--dur-explain-morph, .47s);transition-timing-function:var(--ease-explain-morph, cubic-bezier(.16, 1, .3, 1))}@keyframes explain-scan-breathe{0%,to{box-shadow:0 0 color-mix(in srgb,var(--color-info) 0%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--color-info) 22%,transparent)}}.explain-scan-running{animation:explain-scan-breathe 1.8s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.explain-scan-running{animation:none}}@keyframes explain-flower-spin{to{transform:rotate(360deg)}}.explain-flower-spin{animation:explain-flower-spin 1.6s cubic-bezier(.45,0,.55,1) infinite;transform-origin:center}@media (prefers-reduced-motion: reduce){.explain-flower-spin{animation:none}}@keyframes explain-edge-dash{to{stroke-dashoffset:-22}}.explain-edge-running .react-flow__edge-path{animation:explain-edge-dash 2.4s linear infinite}.explain-edge-receiving .react-flow__edge-path{animation:explain-edge-dash .7s linear infinite}.explain-edge-streaming .react-flow__edge-path{animation:explain-edge-dash .4s linear infinite}.explain-edge-finalizing .react-flow__edge-path{animation:explain-edge-dash 3.6s linear infinite}@media (prefers-reduced-motion: reduce){.explain-edge-running .react-flow__edge-path,.explain-edge-receiving .react-flow__edge-path,.explain-edge-streaming .react-flow__edge-path,.explain-edge-finalizing .react-flow__edge-path{animation:none}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shimmer{animation:shimmer 2s infinite}.animate-delayed-show{visibility:hidden;animation:delayed-show 0s .1s forwards}.first-letter-uppercase:first-letter{text-transform:uppercase}@keyframes delayed-show{to{visibility:visible}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.animate-shake{animation:shake .35s ease-in-out}@keyframes dash-flow{to{stroke-dashoffset:-1000}}@keyframes cell-glow{0%{box-shadow:0 0 0 0 transparent}30%{box-shadow:0 0 12px 4px color-mix(in srgb,var(--color-brand-400) 40%,transparent)}to{box-shadow:0 0 0 0 transparent}}.animate-cell-glow{animation:cell-glow 1.5s ease-in-out}.ai-border-glow{position:relative;border-radius:.5rem;border:none}.cell-actions-reveal>*{opacity:0;transform:translate(8px);transition:opacity .15s cubic-bezier(.23,1,.32,1),transform .15s cubic-bezier(.23,1,.32,1)}@media (prefers-reduced-motion: reduce){.cell-actions-reveal>*{transform:none;transition:opacity .15s ease-out}}.group:hover .cell-actions-reveal>*{opacity:1;transform:translate(0)}.group:hover .cell-actions-reveal>*:nth-last-child(2){transition-delay:40ms}.group:hover .cell-actions-reveal>*:nth-last-child(3){transition-delay:80ms}.group:hover .cell-actions-reveal>*:nth-last-child(4){transition-delay:.12s}.group:hover .cell-actions-reveal>*:nth-last-child(5){transition-delay:.16s}.group:hover .cell-actions-reveal>*:nth-last-child(6){transition-delay:.2s}
