/* JARVIS V5 core — hero mount (clone only).
   FIXED to the viewport so it follows the user down the page as they scroll.
   Higher up + smaller than before. Default right side; data-side="left" flips. */
#cx-jarvis{
  position:fixed; top:8vh; right:max(2.5vw,14px);
  width:clamp(170px,19vw,280px); aspect-ratio:1/1;
  z-index:6; pointer-events:none;
  filter:drop-shadow(0 0 46px rgba(14,165,233,.4));
}
#cx-jarvis[data-side="left"]{ right:auto; left:max(2.5vw,14px); }
@media (max-width:1024px){ #cx-jarvis{ width:clamp(150px,30vw,230px); opacity:.55; } }
@media (max-width:680px){  #cx-jarvis{ width:130px; top:5vh; opacity:.4; } }

/* ---- Jarvis loads first; everything else fades in quickly after ---- */
/* #cx-jarvis is injected as the FIRST <body> child so this :not() spares it. */
body.cx-jboot > *:not(#cx-jarvis):not(script){
  animation:cx-pagein .45s cubic-bezier(.16,1,.3,1) .18s both;
}
@keyframes cx-pagein{ from{opacity:0} to{opacity:1} }

@media (prefers-reduced-motion:reduce){
  body.cx-jboot > *:not(#cx-jarvis):not(script){ animation:none; }
  #cx-jarvis{ filter:drop-shadow(0 0 26px rgba(14,165,233,.28)); }
}
