/* Fansoci Points & VIP — icon-only user-profile VIP badge, native emoji. */
.fpv-profile-vip-badge{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:26px;height:27px;min-width:26px;margin-inline:2px;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-decoration:none!important;line-height:1;transition:transform .16s ease;cursor:pointer}
.fpv-profile-vip-badge:hover{transform:scale(1.12);background:transparent!important;box-shadow:none!important}
.fpv-profile-vip-badge:focus-visible{outline:2px solid #9855f7;outline-offset:2px;border-radius:5px!important}
.fpv-profile-vip-badge .fpv-vip-crown{font-size:21px;line-height:1;display:inline-block}
@media(max-width:400px){.fpv-profile-vip-badge{width:24px;height:25px;min-width:24px}.fpv-profile-vip-badge .fpv-vip-crown{font-size:19px}}

/* v2.21: VIP frame for Nova's actual squircle profile avatar.
   The active membership crown link is server-rendered; CSS :has() applies the frame
   immediately, while profile_vip.js adds the class for browser compatibility.
   Never show a frame for expired or non-VIP profiles. */
:is(.profile-avatar-wrapper.fpv-vip-framed,
    section[aria-labelledby="profile-name"]:has(.fpv-profile-vip-badge) .profile-avatar-wrapper) {
  position: relative;
  isolation: isolate;
  /* Overrides Nova's default white ring on the profile avatar only. */
  box-shadow:
    0 0 0 5px #f4c24e,
    0 0 0 9px #a84cf3,
    0 0 23px 11px rgba(168,76,243,.29),
    0 7px 28px rgba(218,149,32,.28) !important;
}
:is(.profile-avatar-wrapper.fpv-vip-framed,
    section[aria-labelledby="profile-name"]:has(.fpv-profile-vip-badge) .profile-avatar-wrapper)::before {
  content: "";
  position: absolute;
  inset: -9px;
  z-index: 18;
  pointer-events: none;
  border: 5px solid transparent;
  border-radius: inherit;
  background: linear-gradient(135deg,#fff3b0 0%,#df9e21 33%,#a54df2 60%,#ffe17d 86%,#fff0a2 100%) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}
:is(.profile-avatar-wrapper.fpv-vip-framed,
    section[aria-labelledby="profile-name"]:has(.fpv-profile-vip-badge) .profile-avatar-wrapper)::after {
  content: "👑";
  position: absolute;
  top: -28px;
  right: -18px;
  z-index: 21;
  pointer-events: none;
  font-size: clamp(25px,3vw,39px);
  line-height: 1;
  filter: drop-shadow(0 2px 3px rgba(91,30,123,.62)) drop-shadow(0 0 5px rgba(242,193,57,.64));
}
@media (max-width:640px) {
  :is(.profile-avatar-wrapper.fpv-vip-framed,
      section[aria-labelledby="profile-name"]:has(.fpv-profile-vip-badge) .profile-avatar-wrapper)::after {
    top: -19px;
    right: -10px;
    font-size: 28px;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .profile-avatar-wrapper.fpv-vip-framed { transition: box-shadow .2s ease; }
}

/* v2.16: use Sngine's native Edit Profile -> Design -> Profile Background feature.
   This plugin no longer applies an automatic cover-wrapper background effect. */
