/* AstroSense shared motion — Magic-UI-style CTA + reveal animations.
   Loaded via <link rel="stylesheet" href="astro-fx.css?v=1"> in each screen's <helmet>. */

/* ---- Primary gold CTA: shine sweep + lift + press ---- */
.as-cta{position:relative;overflow:hidden;isolation:isolate;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,filter .18s;}
.as-cta::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,0.55) 42%,rgba(255,255,255,0.15) 52%,transparent 70%);
  transform:translateX(-130%);
}
.as-cta:hover{transform:translateY(-2px);filter:saturate(1.08);}
.as-cta:hover::before{transform:translateX(130%);transition:transform .85s cubic-bezier(.2,.7,.2,1);}
.as-cta:active{transform:translateY(0) scale(.985);}
.as-cta > *{position:relative;z-index:2;}

/* continuous slow sheen for hero primary (subtle) */
.as-cta-glow::after{
  content:"";position:absolute;inset:-1px;z-index:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(120px 60px at var(--mx,50%) -20%,rgba(255,255,255,0.35),transparent 70%);
  opacity:0;transition:opacity .3s;
}
.as-cta-glow:hover::after{opacity:1;}

/* ---- Ghost / secondary CTA: border + fill sweep ---- */
.as-ghost{position:relative;overflow:hidden;transition:transform .18s,border-color .2s,color .2s;}
.as-ghost:hover{transform:translateY(-1px);}
.as-ghost:active{transform:translateY(0) scale(.99);}

/* ---- Card hover lift ---- */
.as-lift{transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s,box-shadow .22s;}
.as-lift:hover{transform:translateY(-4px);border-color:rgba(231,195,107,0.5);box-shadow:0 30px 60px -30px rgba(0,0,0,0.6);}

/* ---- Scroll / mount reveal ---- */
@keyframes asRise{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
.as-reveal{animation:asRise .7s cubic-bezier(.2,.7,.2,1) both;}
.as-reveal-2{animation:asRise .7s cubic-bezier(.2,.7,.2,1) .08s both;}
.as-reveal-3{animation:asRise .7s cubic-bezier(.2,.7,.2,1) .16s both;}

/* ---- Gentle pulse for badges/dots ---- */
@keyframes asPulse{0%,100%{opacity:.55;}50%{opacity:1;}}
.as-pulse{animation:asPulse 2.6s ease-in-out infinite;}

/* ---- Arrow nudge inside CTAs ---- */
.as-cta:hover .as-arrow,.as-ghost:hover .as-arrow{transform:translateX(4px);}
.as-arrow{display:inline-block;transition:transform .2s cubic-bezier(.2,.8,.2,1);}

@media (prefers-reduced-motion: reduce){
  .as-cta::before,.as-cta-glow::after,.as-reveal,.as-reveal-2,.as-reveal-3,.as-pulse{animation:none !important;transition:none !important;transform:none !important;}
}
