/* Animated Generate Button by moazamtrade / Jessi (21st.dev), from the
   user-supplied source. Native DOM adaptation; navy/cyan theme + pill geometry.
   https://21st.dev/@moazamtrade/components/animated-generate-button-shadcn-tailwind
   Busy text is controlled by the request, never by keyboard focus. */
button.ui-anim-btn.evolve-cta.component-generate {
  --highlight-hue:200deg; --highlight:hsl(200 100% 70%);
  --highlight-30:hsl(200 100% 70% / .3); --highlight-80:hsl(200 100% 70% / .8);
  overflow:visible; isolation:isolate; border-radius:60px; gap:12px;
  background:linear-gradient(110deg,#092447,#103a65 50%,#062444);
  color:#fff; border:1px solid #6488a355;
  box-shadow:inset 0 1px 1px #ffffff33,inset 0 2px 2px #ffffff26,inset 0 4px 4px #ffffff1a,inset 0 8px 8px #ffffff0d,inset 0 16px 16px #ffffff0d,0 -2px 4px #0624440d;
  transition:box-shadow .4s,border-color .4s,transform .2s;
}
button.ui-anim-btn.evolve-cta.component-generate::before {
  display:block; content:""; position:absolute; inset:-4px; border-radius:inherit;
  pointer-events:none; z-index:-1; translate:0; transform:none; animation:none;
  background:linear-gradient(0deg,#06244444,#06244488); opacity:1; filter:none;
  box-shadow:0 -8px 8px -6px #0000 inset,0 -16px 16px -8px #0000 inset,1px 1px 1px #fff2,2px 2px 2px #fff1,-1px -1px 1px #0002,-2px -2px 2px #0001;
  transition:box-shadow .4s,filter .4s;
}
button.ui-anim-btn.evolve-cta.component-generate::after {
  display:block; content:""; position:absolute; inset:0; border-radius:inherit;
  pointer-events:none; translate:0; transform:none; animation:none; opacity:0; filter:none;
  background:linear-gradient(0deg,#fff 0%,var(--highlight) 2%,var(--highlight-30) 5%,transparent 15%);
  transition:opacity .4s,filter .4s;
}
button.ui-anim-btn.evolve-cta.component-generate>.ui-anim-btn-svg {
  display:block; width:24px; height:24px; fill:#e8e8e8; transform:none;
  filter:drop-shadow(0 0 2px #fff9); animation:evo-btn-flicker 2s .5s linear infinite;
  transition:fill .4s,filter .4s,opacity .4s;
}
button.ui-anim-btn.evolve-cta.component-generate .ui-anim-txt-wrapper {min-width:6.4em;transform:none;transition:none}
button.ui-anim-btn.evolve-cta.component-generate>.cta-arrow {display:none}
button.ui-anim-btn.evolve-cta.component-generate .ui-anim-letter {
  color:#d0dfeb; text-shadow:none; filter:none;
  animation:evo-btn-letter 2s ease-in-out infinite; animation-delay:var(--letter-delay);
  transition:color .4s,text-shadow .4s;
}
button.ui-anim-btn.evolve-cta.component-generate:is(:hover,:focus-visible):not(:disabled) {
  border-color:hsl(200 100% 80% / .4); transform:none;
  background:linear-gradient(110deg,#092447,#103a65 50%,#062444);
  box-shadow:inset 0 1px 1px #ffffff33,inset 0 2px 2px #ffffff26,inset 0 4px 4px #ffffff1a,inset 0 8px 8px #ffffff0d,inset 0 16px 16px #ffffff0d;
}
button.ui-anim-btn.evolve-cta.component-generate:is(:hover,:focus-visible):not(:disabled)::before {
  box-shadow:0 -8px 8px -6px #fffa inset,0 -16px 16px -8px var(--highlight-30) inset,1px 1px 1px #fff2,2px 2px 2px #fff1,-1px -1px 1px #0002,-2px -2px 2px #0001;
}
button.ui-anim-btn.evolve-cta.component-generate:is(:hover,:focus-visible):not(:disabled)::after {opacity:1;transform:none;filter:none}
button.ui-anim-btn.evolve-cta.component-generate:is(:hover,:focus-visible):not(:disabled) .ui-anim-btn-svg {fill:#fff;filter:drop-shadow(0 0 3px var(--highlight)) drop-shadow(0 -4px 6px #0009);animation:none;transform:none}
button.ui-anim-btn.evolve-cta.component-generate:is(:hover,:focus-visible):not(:disabled) .ui-anim-txt-wrapper {transform:none}
button.ui-anim-btn.evolve-cta.component-generate:active:not(:disabled) {transform:scale(.99);border-color:hsl(200 100% 80% / .7)}
button.ui-anim-btn.evolve-cta.component-generate:active:not(:disabled)::before {box-shadow:0 -8px 12px -6px #fffa inset,0 -16px 16px -8px var(--highlight-80) inset,1px 1px 1px #fff4,2px 2px 2px #fff2,-1px -1px 1px #0002,-2px -2px 2px #0001}
button.ui-anim-btn.evolve-cta.component-generate:active:not(:disabled)::after {filter:brightness(1.5)}
button.ui-anim-btn.evolve-cta.component-generate:focus-visible {outline:2px solid #00a7e7;outline-offset:7px}
button.ui-anim-btn.evolve-cta.component-generate[data-generating=true] .ui-anim-txt-2 .ui-anim-letter {animation:evo-btn-focused 1s ease-in-out both,evo-btn-letter 1.2s 1s ease-in-out infinite;animation-delay:var(--letter-delay),calc(1s + var(--letter-delay))}
button.ui-anim-btn.evolve-cta.component-generate[data-generating=true] .ui-anim-btn-svg {animation:evo-btn-flicker 1.2s .2s linear infinite}
button.ui-anim-btn.evolve-cta.component-generate[data-generating=true]::after {opacity:.6}
button.ui-anim-btn.evolve-cta.component-generate:disabled:not([data-generating=true]) {background:#edf1f5;border-color:#e2e9f0;color:#8c9bab;box-shadow:none}
button.ui-anim-btn.evolve-cta.component-generate:disabled:not([data-generating=true])::before,button.ui-anim-btn.evolve-cta.component-generate:disabled:not([data-generating=true])::after {display:none}
button.ui-anim-btn.evolve-cta.component-generate:disabled:not([data-generating=true]) .ui-anim-letter,button.ui-anim-btn.evolve-cta.component-generate:disabled:not([data-generating=true]) .ui-anim-btn-svg {animation:none;filter:none;color:inherit;fill:currentColor}
/* Independent implementation of the public Glow Button description: cyan glow,
   crossing glare and soft press. The protected 21st component source was not used. */
.task .button.social-glow {
  position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(180deg,#12b6ed,#0096d7);
  color:white;border:1px solid #00a8e4;border-radius:12px;
  box-shadow:inset 0 1px 0 #ffffff66,inset 0 -2px 3px #006aa92e,0 3px 8px #009fe222,0 0 15px #00a7e715;
  transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .3s,border-color .3s;
}
.task .button.social-glow::before {
  content:"";position:absolute;inset:-60% -40%;border-radius:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 38%,#ffffff85 50%,transparent 62%);
  transform:translateX(-85%);opacity:.8;transition:transform .65s cubic-bezier(.22,1,.36,1);
}
.task .button.social-glow::after {display:none}
.task .button.social-glow:is(:hover,:focus-visible):not(:disabled){background:linear-gradient(180deg,#12b6ed,#0096d7);border-color:#71dfff;transform:translateY(-2px);box-shadow:inset 0 1px 0 #ffffff99,inset 0 -2px 3px #006aa92e,0 5px 15px #009fe240,0 0 20px #00a7e730}
.task .button.social-glow:is(:hover,:focus-visible):not(:disabled)::before{transform:translateX(85%)}
.task .button.social-glow:active:not(:disabled){transform:translateY(1px) scale(.96);box-shadow:inset 0 2px 5px #00629a45,0 0 8px #00a7e725;transition-duration:.1s}
.task .button.social-glow:focus-visible{outline:2px solid #008bd1;outline-offset:4px}
.task .button.social-glow.is-visited{background:linear-gradient(180deg,#e6f7ff,#d4eeff);border-color:#a8d9f1;color:#155d83;box-shadow:inset 0 1px 0 #fff,0 2px 6px #009fe215}
@media(prefers-reduced-motion:reduce){button.ui-anim-btn.evolve-cta.component-generate,button.ui-anim-btn.evolve-cta.component-generate *,button.ui-anim-btn.evolve-cta.component-generate::before,button.ui-anim-btn.evolve-cta.component-generate::after,.task .button.social-glow,.task .button.social-glow::before{animation:none!important;transition:none!important}}
