@keyframes aiBtnGradientFlow { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes aiRainbowShift { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } } .aiTrigger { position: relative; isolation: isolate; overflow: hidden; z-index: 0; transition: color 0.35s ease, border-color 0.35s ease, background-color 0.35s ease, box-shadow 0.35s ease; } .aiTrigger::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; opacity: 0; background-image: linear-gradient( 135deg, #2dd4bf 0%, #38bdf8 12%, #4338ca 28%, #9333ea 44%, #ec4899 58%, #f97316 72%, #fb923c 86%, #facc15 100% ); background-size: 250% 250%; background-position: 0% 50%; transition: opacity 0.35s ease; animation: aiBtnGradientFlow 4s ease-in-out infinite; animation-play-state: paused; } .aiTrigger:hover:not(:disabled), .aiTrigger:focus-visible:not(:disabled) { color: #fff; border-color: transparent; background-color: transparent; background-image: none; box-shadow: 0 4px 16px rgba(67, 56, 202, 0.28), 0 0 24px rgba(236, 72, 153, 0.16); } .aiTrigger:hover:not(:disabled)::before, .aiTrigger:focus-visible:not(:disabled)::before { opacity: 1; animation-play-state: running; } .aiWorkingBorder { border: 2px solid transparent !important; background-color: #fff; background-image: linear-gradient(#fff, #fff), linear-gradient( 90deg, #ff375f 0%, #ff8a00 14%, #ffd60a 28%, #30d158 42%, #64d2ff 56%, #0a84ff 70%, #bf5af2 84%, #ff375f 100% ); background-size: auto, 200% 100%; background-origin: border-box; background-clip: padding-box, border-box; animation: aiRainbowShift 4s linear infinite; box-shadow: 0 0 0 1px rgba(191, 90, 242, 0.14), 0 0 16px rgba(255, 55, 95, 0.28), 0 0 28px rgba(10, 132, 255, 0.2), 0 0 42px rgba(191, 90, 242, 0.16); outline: none; transition: box-shadow 0.35s ease; } .aiWorkingBorder:focus { border: 2px solid transparent !important; outline: none; }