/* ==========================================================================
   AgencyFix Motion layer (afx-motion.css) — v0.6.3
   Activates the .reveal scroll system (base lives in afx.css) and powers the
   floating Jessica launcher. Loads site-wide after afx.css.
   ========================================================================== */

/* Floating Jessica: entrance + a soft "live" pulse ring so she invites a tap. */
.afx .jfab{animation:afxFabIn .5s ease both;}
.afx .jfab::before{content:"";position:absolute;inset:0;border-radius:999px;
  box-shadow:0 0 0 0 rgba(99,102,241,.55);animation:afxFabPulse 2.6s ease-out infinite;pointer-events:none;}
.afx .jfab:hover::before{animation-play-state:paused;}

@keyframes afxFabPulse{0%{box-shadow:0 0 0 0 rgba(99,102,241,.55);}70%{box-shadow:0 0 0 18px rgba(99,102,241,0);}100%{box-shadow:0 0 0 0 rgba(99,102,241,0);}}
@keyframes afxFabIn{from{opacity:0;transform:translateY(16px) scale(.92);}to{opacity:1;transform:none;}}

/* ---- Jessica launcher dock (CSS-only expand via <details>) ---- */
.afx .jdock{position:fixed;right:18px;bottom:18px;z-index:60;}
.afx .jdock .jfab{position:relative;right:auto;bottom:auto;list-style:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--ac,#6366f1),var(--ac-d,#4f46e5));
  color:#fff;font-weight:600;font-size:.92rem;padding:.72rem 1.1rem;border-radius:999px;
  box-shadow:0 16px 36px -8px var(--glow,rgba(99,102,241,.45));}
.afx .jdock .jfab::-webkit-details-marker{display:none;}
.afx .jdock .jfab .d{width:8px;height:8px;border-radius:50%;background:var(--ok2,#34d399);}
.afx .jdock[open] .jfab{box-shadow:0 10px 24px -10px var(--glow,rgba(99,102,241,.5));}
.afx .jpanel{position:absolute;right:0;bottom:calc(100% + 12px);width:min(330px,86vw);background:#fff;
  border:1px solid var(--line,#e7eaf1);border-radius:18px;overflow:hidden;
  box-shadow:0 30px 70px -20px rgba(13,16,23,.45);transform-origin:bottom right;animation:afxJpop .22s ease both;}
.afx .jpanel-hd{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;background:linear-gradient(135deg,#0e1326,#0a0e1a);color:#fff;}
.afx .jpanel-av{width:34px;height:34px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--ac,#6366f1),var(--ac2,#22d3ee));display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;}
.afx .jpanel-id b{display:block;font-size:.95rem;line-height:1.15;}
.afx .jpanel-id small{color:#9aa3b8;font-size:.74rem;}
.afx .jpanel-body{padding:1rem;display:flex;flex-direction:column;gap:.55rem;background:#f7f8fc;}
.afx .jb{font-size:.9rem;line-height:1.45;padding:.6rem .8rem;border-radius:13px;max-width:92%;}
.afx .jb-bot{background:#fff;border:1px solid var(--line,#e7eaf1);color:var(--ink,#0a0c10);align-self:flex-start;}
.afx .jb-typing{display:inline-flex;gap:4px;align-self:flex-start;background:#fff;border:1px solid var(--line,#e7eaf1);}
.afx .jb-typing span{width:6px;height:6px;border-radius:50%;background:#9aa3b8;animation:afxType 1.2s infinite;}
.afx .jb-typing span:nth-child(2){animation-delay:.2s;}
.afx .jb-typing span:nth-child(3){animation-delay:.4s;}
.afx .jpanel-cta{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;}
.afx .jpanel-cta .btn{width:100%;justify-content:center;}
.afx .jpanel-alt{text-align:center;font-size:.82rem;color:var(--muted,#5d6573);}
.afx .jpanel-alt:hover{color:var(--ac,#6366f1);}

@keyframes afxJpop{from{opacity:0;transform:translateY(10px) scale(.96);}to{opacity:1;transform:none;}}
@keyframes afxType{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}

/* Reveal smoothing (the opacity/transform + .in transition live in afx.css). */
.afx.afx-anim .reveal{will-change:opacity,transform;}

@media(prefers-reduced-motion:reduce){
  .afx .jfab,.afx .jfab::before,.afx .jpanel,.afx .jb-typing span{animation:none;}
}
