/* VidNexa — first-like celebration layer (shared: watch page + Vidlets feed).
   Companion to assets/js/vx-first-like.js. The banner uses the estate's
   theme tokens (--text on --bg, inverted pill) so it matches light, dark
   and grey themes; surfaces without those tokens fall back to the dark
   pill from the reference design. Loaded as a real stylesheet because
   the site's CSP blocks JS-injected <style> elements. */
.vxfl-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:90;border-radius:inherit;}
.vxfl-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}
.vxfl-banner{position:absolute;top:14px;left:50%;transform:translateX(-50%);max-width:calc(100% - 28px);
  padding:11px 20px;border-radius:999px;background:var(--text,#151515);color:var(--bg,#ffffff);
  border:1px solid var(--border,rgba(128,128,128,.35));box-shadow:0 12px 32px rgba(0,0,0,.38);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;font-weight:600;line-height:1.25;
  letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;
  animation:vxflIn .38s cubic-bezier(.21,1.35,.36,1) .02s forwards;}
.vxfl-banner.vxfl-out{animation:vxflOut .32s ease-in forwards;}
@keyframes vxflIn{from{opacity:0;transform:translate(-50%,-12px) scale(.9);}to{opacity:1;transform:translate(-50%,0) scale(1);}}
@keyframes vxflOut{from{opacity:1;transform:translate(-50%,0) scale(1);}to{opacity:0;transform:translate(-50%,-8px) scale(.96);}}
