/* game18 — рамки аватаров. Переработка дизайн-сессии: чёткая градация по цене.
   Ступени (цена 💎):
   T0  0        — бесплатные: чистые кольца, без анимации и свечения
   T1  15–55    — сдержанные: 2–3 кольца, слабое статичное свечение
   T2  70–260   — средние: 3 кольца, заметное свечение, медленный пульс фона
   T3  300–650  — дорогие: сильное свечение, мерцание, вращающийся ореол
   T4  760–2000 — премиум: 4 кольца, двойное свечение, ореол, частицы, «дыхание» фото
   Ключи классов (avatar-frame-slot--<key>) хранятся в users.frame — не переименовывать. */

.avatar-frame-slot{
  position: relative;
  border-radius: inherit;
  isolation: isolate;
  /* --afu — масштаб рамки: все толщины/свечения в box-shadow умножаются на него,
     чтобы на мелких аватарах (чат, списки топов) рамка не съедала соседей */
  --afu: 1;
}
.avatar-frame-slot.afs-xs{ --afu: 0.42; }
.avatar-frame-slot.afs-sm{ --afu: 0.55; }
.avatar-frame-slot.afs-md{ --afu: 0.72; }
.avatar-frame-slot.afs-seat{ --afu: 0.8; }
/* на xs/sm ореолы, частицы и пульс фона — только шум: глушим */
.avatar-frame-slot.afs-xs .avatar-frame-slot__fg::before,
.avatar-frame-slot.afs-xs .avatar-frame-slot__fg::after,
.avatar-frame-slot.afs-sm .avatar-frame-slot__fg::before,
.avatar-frame-slot.afs-sm .avatar-frame-slot__fg::after{
  display: none;
}
.avatar-frame-slot.afs-xs .avatar-frame-slot__bg,
.avatar-frame-slot.afs-sm .avatar-frame-slot__bg,
.avatar-frame-slot.afs-xs .player-card__photo,
.avatar-frame-slot.afs-sm .player-card__photo{
  animation: none;
}
.avatar-frame-slot__bg,
.avatar-frame-slot__fg{
  pointer-events: none;
}
.avatar-frame-slot__bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
}
.avatar-frame-slot__fg{
  z-index: 2;
  box-sizing: border-box;
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

/* ===== Анимации ===== */
@keyframes afBgPulse{
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50%      { opacity: 0.88; transform: scale(1.045); }
}
@keyframes afFlicker{
  0%, 100% { opacity: 0.72; transform: scale(1); }
  40%      { opacity: 0.94; transform: scale(1.05); }
  70%      { opacity: 0.78; transform: scale(1.02); }
}
@keyframes afFgShimmer{
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.82; }
}
@keyframes afPhotoBreath{
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.024); }
}
@keyframes afHaloSpin{
  to { transform: rotate(360deg); }
}
@keyframes afHaloSpinRev{
  to { transform: rotate(-360deg); }
}
@keyframes afTwinkle{
  0%, 100% { opacity: 0.3; }
  50%      { opacity: 0.55; }
}
@keyframes afRise{
  0%   { opacity: 0;   transform: translateY(24%); }
  8%   { opacity: 0.55; transform: translateY(18%); }
  62%  { opacity: 0.55; transform: translateY(-30%); }
  78%  { opacity: 0;   transform: translateY(-38%); }
  100% { opacity: 0;   transform: translateY(-40%); }
}

/* доступность: без движения — рамки статичны */
@media (prefers-reduced-motion: reduce){
  .avatar-frame-slot__bg,
  .avatar-frame-slot__fg,
  .avatar-frame-slot__fg::before,
  .avatar-frame-slot__fg::after,
  .avatar-frame-slot .player-card__photo,
  .avatar-frame-slot .fi__frame-preview-photo{
    animation: none !important;
  }
}

/* ═════════ T0 — бесплатные (0 💎): чисто и спокойно ═════════ */

.avatar-frame-slot--rose-quartz .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-rsq-line),
    0 0 0 calc(5px*var(--afu)) var(--af-rsq-ring),
    0 0 calc(10px*var(--afu)) calc(2px*var(--afu)) var(--af-rsq-bloom),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-highlight-strong),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-rsq-deep);
}

.avatar-frame-slot--sapphire-bevel .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-sap-line),
    0 0 0 calc(5px*var(--afu)) var(--af-sap-outer),
    0 0 calc(10px*var(--afu)) calc(2px*var(--afu)) var(--af-sap-glint),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-highlight-strong),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-sap-deep);
}

/* ═════════ T1 — 15–55 💎: сдержанные, без анимации ═════════ */

.avatar-frame-slot--tide-glass .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-tdg-line),
    0 0 0 calc(5px*var(--afu)) var(--af-tdg-depth),
    0 0 calc(12px*var(--afu)) calc(2px*var(--afu)) var(--af-tdg-sea),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-tdg-glass),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-tdg-depth);
}

.avatar-frame-slot--juniper-mist .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-jum-line),
    0 0 0 calc(5px*var(--afu)) var(--af-jum-depth),
    0 0 calc(12px*var(--afu)) calc(2px*var(--afu)) var(--af-jum-needle),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-highlight-soft),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-jum-outer);
}

.avatar-frame-slot--frost-signal .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-fsg-line),
    0 0 0 calc(5px*var(--afu)) var(--af-fsg-depth),
    0 0 calc(12px*var(--afu)) calc(2px*var(--afu)) var(--af-fsg-signal),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-fsg-ice),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-fsg-depth);
}

/* от 35 💎 — третье кольцо: ступень видна рядом с соседями */
.avatar-frame-slot--moss-grove .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-mss-line),
    0 0 0 calc(5px*var(--afu)) var(--af-mss-moss),
    0 0 0 calc(8px*var(--afu)) var(--af-mss-earth),
    0 0 calc(12px*var(--afu)) calc(2px*var(--afu)) var(--af-mss-leaf),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-highlight-soft),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-mss-earth);
}

.avatar-frame-slot--arctic-rime .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-arc-line),
    0 0 0 calc(5px*var(--afu)) var(--af-arc-ice),
    0 0 0 calc(8px*var(--afu)) var(--af-arc-depth),
    0 0 calc(14px*var(--afu)) calc(2px*var(--afu)) var(--af-arc-ice),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-arc-frost),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-arc-depth);
}

.avatar-frame-slot--graphite-shell .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-gts-line),
    0 0 0 calc(5px*var(--afu)) var(--af-gts-ink),
    0 0 0 calc(8px*var(--afu)) var(--af-gts-outer),
    0 0 calc(14px*var(--afu)) calc(2px*var(--afu)) var(--af-gts-mist),
    inset 0 0 0 calc(1px*var(--afu)) var(--af-highlight-soft),
    inset 0 calc(-6px*var(--afu)) calc(14px*var(--afu)) var(--af-vignette-deep);
}

/* ═════════ T2 — 70–260 💎: свечение + медленный пульс фона ═════════ */

.avatar-frame-slot--amber-circuit .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 95% 65% at 50% 0%, var(--af-acr-amber) 0%, transparent 46%),
    radial-gradient(ellipse 85% 70% at 50% 100%, var(--af-acr-honey) 0%, transparent 54%);
  opacity: 0.75;
  animation: afBgPulse 5.2s ease-in-out infinite;
}
.avatar-frame-slot--amber-circuit .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-acr-line),
    0 0 0 calc(6px*var(--afu)) var(--af-acr-coal),
    0 0 0 calc(9px*var(--afu)) var(--af-acr-outer),
    0 0 calc(18px*var(--afu)) calc(4px*var(--afu)) var(--af-acr-amber),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-acr-honey),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-acr-amber),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-gla-shadow);
}

.avatar-frame-slot--ruby-facet .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 85% 70% at 22% 22%, var(--af-rbf-ruby) 0%, transparent 48%),
    radial-gradient(ellipse 80% 65% at 82% 78%, var(--af-rbf-garnet) 0%, transparent 50%);
  opacity: 0.75;
  animation: afBgPulse 4.6s ease-in-out infinite;
}
.avatar-frame-slot--ruby-facet .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-rbf-line),
    0 0 0 calc(6px*var(--afu)) var(--af-rbf-garnet),
    0 0 0 calc(9px*var(--afu)) var(--af-rbf-deep),
    0 0 calc(18px*var(--afu)) calc(4px*var(--afu)) var(--af-rbf-ruby),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-rbf-line),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-rbf-ruby),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-rbf-garnet);
}

/* «Алые сердца»: фирменные сердечки — тихое мерцание у нижнего края */
.avatar-frame-slot--crimson-hearts .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 85% at 50% 100%, var(--af-hrt-rose-mist) 0%, transparent 55%),
    radial-gradient(ellipse 90% 60% at 50% 0%, var(--af-hrt-ruby) 0%, transparent 44%);
  opacity: 0.78;
  animation: afBgPulse 4.4s ease-in-out infinite;
}
.avatar-frame-slot--crimson-hearts .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-hrt-pink),
    0 0 0 calc(6px*var(--afu)) var(--af-hrt-ruby),
    0 0 0 calc(9px*var(--afu)) var(--af-hrt-deep),
    0 0 calc(20px*var(--afu)) calc(4px*var(--afu)) var(--af-hrt-glow),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-hrt-pink),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-hrt-glow),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-hrt-deep);
}
.avatar-frame-slot--crimson-hearts .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='24' viewBox='0 0 62 24'%3E%3Cg fill='%23FB7185'%3E%3Cpath transform='translate(6,8)' d='M0 3.2C0 1.4 1.3 0 3 0c1 0 1.9.5 2.5 1.4C6.1.5 7 0 8 0c1.7 0 3 1.4 3 3.2 0 3-3.9 5.4-5.5 6.8C3.9 8.6 0 6.2 0 3.2z' opacity='.55'/%3E%3Cpath transform='translate(26,12) scale(.7)' d='M0 3.2C0 1.4 1.3 0 3 0c1 0 1.9.5 2.5 1.4C6.1.5 7 0 8 0c1.7 0 3 1.4 3 3.2 0 3-3.9 5.4-5.5 6.8C3.9 8.6 0 6.2 0 3.2z' opacity='.45'/%3E%3Cpath transform='translate(42,7) scale(.85)' d='M0 3.2C0 1.4 1.3 0 3 0c1 0 1.9.5 2.5 1.4C6.1.5 7 0 8 0c1.7 0 3 1.4 3 3.2 0 3-3.9 5.4-5.5 6.8C3.9 8.6 0 6.2 0 3.2z' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afTwinkle 3.6s ease-in-out infinite;
}

.avatar-frame-slot--prism-shift .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 70% 55% at 20% 30%, var(--af-prs-cyan) 0%, transparent 46%),
    radial-gradient(ellipse 65% 50% at 85% 25%, var(--af-prs-rose) 0%, transparent 44%),
    radial-gradient(ellipse 75% 60% at 50% 85%, var(--af-prs-violet) 0%, transparent 50%);
  opacity: 0.78;
  animation: afBgPulse 4.8s ease-in-out infinite;
}
.avatar-frame-slot--prism-shift .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-prs-line),
    0 0 0 calc(6px*var(--afu)) var(--af-prs-deep),
    0 0 0 calc(9px*var(--afu)) var(--af-prs-violet),
    0 0 calc(18px*var(--afu)) calc(4px*var(--afu)) var(--af-prs-cyan),
    0 0 calc(32px*var(--afu)) 0 var(--af-prs-rose),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-prs-cyan),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-prs-violet),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-prs-deep);
}

.avatar-frame-slot--borealis-ring .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 90% 50% at 50% 0%, var(--af-bor-teal) 0%, transparent 40%),
    radial-gradient(ellipse 95% 70% at 50% 100%, var(--af-bor-forest) 0%, transparent 58%);
  opacity: 0.78;
  animation: afBgPulse 5s ease-in-out infinite;
}
.avatar-frame-slot--borealis-ring .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-bor-line),
    0 0 0 calc(6px*var(--afu)) var(--af-bor-night),
    0 0 0 calc(9px*var(--afu)) var(--af-bor-outer),
    0 0 calc(22px*var(--afu)) calc(4px*var(--afu)) var(--af-bor-teal),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-highlight-strong),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-bor-teal),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-bor-forest);
}

.avatar-frame-slot--ion-storm .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 85% 60% at 50% 15%, var(--af-ios-bolt) 0%, transparent 42%),
    radial-gradient(ellipse 55% 45% at 12% 60%, var(--af-ios-plasma) 0%, transparent 46%),
    radial-gradient(ellipse 50% 40% at 88% 40%, var(--af-ios-outer) 0%, transparent 44%);
  opacity: 0.8;
  animation: afBgPulse 2.8s ease-in-out infinite;
}
.avatar-frame-slot--ion-storm .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-ios-line),
    0 0 0 calc(6px*var(--afu)) var(--af-ios-deep),
    0 0 0 calc(9px*var(--afu)) var(--af-ios-outer),
    0 0 calc(22px*var(--afu)) calc(5px*var(--afu)) var(--af-ios-plasma),
    0 0 calc(36px*var(--afu)) 0 var(--af-ios-outer),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-ios-bolt),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-ios-plasma),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-ios-deep);
}

.avatar-frame-slot--chrome-vector .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 85% 70% at 50% 0%, var(--af-chv-mirror) 0%, transparent 48%),
    radial-gradient(ellipse 50% 40% at 75% 40%, var(--af-chv-cyan) 0%, transparent 42%);
  opacity: 0.75;
  animation: afBgPulse 4s ease-in-out infinite;
}
.avatar-frame-slot--chrome-vector .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-chv-mirror),
    0 0 0 calc(6px*var(--afu)) var(--af-chv-core),
    0 0 0 calc(9px*var(--afu)) var(--af-chv-steel),
    0 0 calc(22px*var(--afu)) calc(5px*var(--afu)) var(--af-chv-cyan),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-chv-mirror),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-chv-cyan),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-ring-shadow);
}

.avatar-frame-slot--platinum-axis .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 90% at 50% 50%, var(--af-plt-steel) 0%, transparent 58%),
    radial-gradient(ellipse 40% 35% at 30% 25%, var(--af-outer-bloom) 0%, transparent 50%);
  opacity: 0.72;
  animation: afBgPulse 4.8s ease-in-out infinite;
}
.avatar-frame-slot--platinum-axis .avatar-frame-slot__fg{
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-plt-silver),
    0 0 0 calc(6px*var(--afu)) var(--af-plt-ink),
    0 0 0 calc(9px*var(--afu)) var(--af-ring-shadow),
    0 0 calc(24px*var(--afu)) calc(5px*var(--afu)) var(--af-plt-steel),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-plt-pearl),
    inset 0 calc(5px*var(--afu)) calc(14px*var(--afu)) var(--af-plt-steel),
    inset 0 calc(-8px*var(--afu)) calc(18px*var(--afu)) var(--af-vignette-deep);
}

/* ═════════ T3 — 300–650 💎: объём, мерцание, ореол ═════════ */

.avatar-frame-slot--midnight-flux .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 95% 65% at 50% 0%, var(--af-mdf-electric) 0%, transparent 46%),
    radial-gradient(ellipse 100% 70% at 50% 100%, var(--af-mdf-deep) 0%, transparent 56%),
    radial-gradient(ellipse 50% 40% at 10% 50%, var(--af-mdf-indigo) 0%, transparent 42%);
  opacity: 0.83;
  animation: afBgPulse 3.4s ease-in-out infinite;
}
.avatar-frame-slot--midnight-flux .avatar-frame-slot__fg{
  animation: afFgShimmer 2.6s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-mdf-line),
    0 0 0 calc(7px*var(--afu)) var(--af-mdf-deep),
    0 0 0 calc(11px*var(--afu)) var(--af-mdf-outer),
    0 0 calc(26px*var(--afu)) calc(7px*var(--afu)) var(--af-mdf-indigo),
    0 0 calc(44px*var(--afu)) calc(2px*var(--afu)) var(--af-mdf-electric),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-mdf-electric),
    inset 0 calc(6px*var(--afu)) calc(18px*var(--afu)) var(--af-mdf-indigo),
    inset 0 calc(-10px*var(--afu)) calc(24px*var(--afu)) var(--af-mdf-deep);
}

.avatar-frame-slot--velvet-noir .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 95% 80% at 50% 100%, var(--af-vln-wine) 0%, transparent 52%),
    radial-gradient(ellipse 70% 55% at 20% 15%, var(--af-vln-plum) 0%, transparent 48%),
    radial-gradient(ellipse 55% 45% at 85% 30%, var(--af-vln-deep) 0%, transparent 45%);
  opacity: 0.8;
  animation: afBgPulse 4.2s ease-in-out infinite;
}
.avatar-frame-slot--velvet-noir .avatar-frame-slot__fg{
  animation: afFgShimmer 3s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-vln-line),
    0 0 0 calc(7px*var(--afu)) var(--af-vln-deep),
    0 0 0 calc(11px*var(--afu)) var(--af-vln-outer),
    0 0 calc(28px*var(--afu)) calc(7px*var(--afu)) var(--af-vln-wine),
    0 0 calc(48px*var(--afu)) calc(4px*var(--afu)) var(--af-vln-plum),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-highlight-soft),
    inset 0 calc(6px*var(--afu)) calc(18px*var(--afu)) var(--af-vln-wine),
    inset 0 calc(-10px*var(--afu)) calc(24px*var(--afu)) var(--af-vignette-deep);
}

.avatar-frame-slot--ember-forge .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 75% at 50% 100%, var(--af-emb-glow) 0%, transparent 52%),
    radial-gradient(ellipse 65% 50% at 50% 0%, var(--af-emb-ash) 0%, transparent 42%),
    radial-gradient(ellipse 45% 35% at 80% 30%, var(--af-emb-glow) 0%, transparent 40%);
  opacity: 0.85;
  animation: afFlicker 2.6s ease-in-out infinite;
}
.avatar-frame-slot--ember-forge .avatar-frame-slot__fg{
  animation: afFgShimmer 1.8s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(3px*var(--afu)) var(--af-emb-copper),
    0 0 0 calc(8px*var(--afu)) var(--af-emb-coal),
    0 0 0 calc(12px*var(--afu)) var(--af-emb-outer),
    0 0 calc(30px*var(--afu)) calc(8px*var(--afu)) var(--af-emb-glow),
    0 0 calc(52px*var(--afu)) calc(4px*var(--afu)) var(--af-emb-glow),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-highlight-strong),
    inset 0 calc(7px*var(--afu)) calc(22px*var(--afu)) var(--af-emb-glow),
    inset 0 calc(-12px*var(--afu)) calc(28px*var(--afu)) var(--af-emb-coal);
}
.avatar-frame-slot--ember-forge .player-card__photo,
.avatar-frame-slot--ember-forge .fi__frame-preview-photo{
  animation: afPhotoBreath 2.8s ease-in-out infinite;
}

.avatar-frame-slot--solar-halo .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 55% at 50% 0%, var(--af-sol-amber) 0%, transparent 44%),
    radial-gradient(ellipse 80% 55% at 50% 20%, var(--af-sol-honey) 0%, transparent 48%),
    radial-gradient(ellipse 100% 70% at 50% 100%, var(--af-sol-core) 0%, transparent 55%);
  opacity: 0.9;
  animation: afBgPulse 4s ease-in-out infinite;
}
.avatar-frame-slot--solar-halo .avatar-frame-slot__fg{
  animation: afFgShimmer 2.2s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-sol-line),
    0 0 0 calc(7px*var(--afu)) var(--af-sol-core),
    0 0 0 calc(11px*var(--afu)) var(--af-sol-amber),
    0 0 calc(30px*var(--afu)) calc(8px*var(--afu)) var(--af-sol-honey),
    0 0 calc(56px*var(--afu)) calc(6px*var(--afu)) var(--af-sol-amber),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-sol-amber),
    inset 0 calc(7px*var(--afu)) calc(22px*var(--afu)) var(--af-sol-honey),
    inset 0 calc(-11px*var(--afu)) calc(26px*var(--afu)) var(--af-vignette-soft);
}
.avatar-frame-slot--solar-halo .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 90deg,
    transparent 0%,
    var(--af-sol-honey) 8%,
    transparent 18%,
    transparent 40%,
    var(--af-sol-amber) 52%,
    var(--af-sol-line) 62%,
    transparent 78%,
    transparent 100%
  );
  opacity: 0.4;
  animation: afHaloSpinRev 20s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 74% at 50% 42%, transparent 50%, #000 76%);
  mask-image: radial-gradient(ellipse 70% 74% at 50% 42%, transparent 50%, #000 76%);
}
.avatar-frame-slot--solar-halo .player-card__photo,
.avatar-frame-slot--solar-halo .fi__frame-preview-photo{
  animation: afPhotoBreath 4s ease-in-out infinite;
}

.avatar-frame-slot--nebula-drift .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 70% at 50% 30%, var(--af-neb-violet) 0%, transparent 50%),
    radial-gradient(ellipse 80% 60% at 15% 75%, var(--af-neb-magenta) 0%, transparent 48%),
    radial-gradient(ellipse 70% 55% at 88% 20%, var(--af-neb-deep) 0%, transparent 45%);
  opacity: 0.86;
  animation: afBgPulse 5s ease-in-out infinite;
}
.avatar-frame-slot--nebula-drift .avatar-frame-slot__fg{
  animation: afFgShimmer 2s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-neb-line),
    0 0 0 calc(7px*var(--afu)) var(--af-neb-deep),
    0 0 0 calc(11px*var(--afu)) var(--af-neb-outer),
    0 0 calc(32px*var(--afu)) calc(8px*var(--afu)) var(--af-neb-violet),
    0 0 calc(58px*var(--afu)) calc(6px*var(--afu)) var(--af-neb-magenta),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-neb-magenta),
    inset 0 calc(7px*var(--afu)) calc(22px*var(--afu)) var(--af-neb-violet),
    inset 0 calc(-11px*var(--afu)) calc(26px*var(--afu)) var(--af-neb-deep);
}
.avatar-frame-slot--nebula-drift .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 0deg,
    transparent 0%,
    var(--af-neb-violet) 14%,
    var(--af-neb-magenta) 24%,
    transparent 36%,
    transparent 58%,
    var(--af-neb-line) 70%,
    var(--af-neb-violet) 82%,
    transparent 100%
  );
  opacity: 0.36;
  animation: afHaloSpinRev 22s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 68% 72% at 50% 45%, transparent 48%, #000 76%);
  mask-image: radial-gradient(ellipse 68% 72% at 50% 45%, transparent 48%, #000 76%);
}
.avatar-frame-slot--nebula-drift .player-card__photo,
.avatar-frame-slot--nebula-drift .fi__frame-preview-photo{
  animation: afPhotoBreath 3.8s ease-in-out infinite;
}

.avatar-frame-slot--aurora-crown .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 55% at 50% 0%, var(--af-aur-mint) 0%, transparent 44%),
    radial-gradient(ellipse 90% 65% at 20% 70%, var(--af-aur-teal) 0%, transparent 48%),
    radial-gradient(ellipse 100% 40% at 50% 100%, var(--af-aur-night) 0%, transparent 50%);
  opacity: 0.84;
  animation: afBgPulse 5.6s ease-in-out infinite;
}
.avatar-frame-slot--aurora-crown .avatar-frame-slot__fg{
  animation: afFgShimmer 2.4s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-aur-line),
    0 0 0 calc(7px*var(--afu)) var(--af-aur-night),
    0 0 0 calc(11px*var(--afu)) var(--af-aur-outer),
    0 0 calc(34px*var(--afu)) calc(9px*var(--afu)) var(--af-aur-mint),
    0 0 calc(60px*var(--afu)) calc(6px*var(--afu)) var(--af-aur-teal),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-aur-teal),
    inset 0 calc(7px*var(--afu)) calc(22px*var(--afu)) var(--af-aur-mint),
    inset 0 calc(-11px*var(--afu)) calc(26px*var(--afu)) var(--af-aur-night);
}
.avatar-frame-slot--aurora-crown .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 60deg,
    transparent 0%,
    var(--af-aur-mint) 12%,
    var(--af-aur-line) 22%,
    transparent 36%,
    transparent 58%,
    var(--af-aur-teal) 72%,
    var(--af-aur-mint) 84%,
    transparent 100%
  );
  opacity: 0.4;
  animation: afHaloSpin 15s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 67% 71% at 50% 42%, transparent 47%, #000 75%);
  mask-image: radial-gradient(ellipse 67% 71% at 50% 42%, transparent 47%, #000 75%);
}
.avatar-frame-slot--aurora-crown .player-card__photo,
.avatar-frame-slot--aurora-crown .fi__frame-preview-photo{
  animation: afPhotoBreath 3.6s ease-in-out infinite;
}

/* ═════════ T4 — 760–2000 💎: премиум, «хочу» ═════════ */

/* «Звёздное небо» (760): серебро, лёд и восходящие звёзды */
.avatar-frame-slot--celestial-stars .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 85% at 50% 100%, var(--af-cst-ice) 0%, transparent 54%),
    radial-gradient(ellipse 70% 55% at 12% 18%, var(--af-cst-frost) 0%, transparent 48%),
    radial-gradient(ellipse 65% 50% at 88% 22%, var(--af-cst-silver) 0%, transparent 46%),
    radial-gradient(ellipse 90% 55% at 50% 0%, var(--af-cst-outer) 0%, transparent 42%);
  opacity: 0.84;
  animation: afBgPulse 5.2s ease-in-out infinite;
}
.avatar-frame-slot--celestial-stars .avatar-frame-slot__fg{
  animation: afFgShimmer 2.6s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-cst-rim),
    0 0 0 calc(6px*var(--afu)) var(--af-cst-frost),
    0 0 0 calc(11px*var(--afu)) var(--af-cst-silver),
    0 0 0 calc(15px*var(--afu)) var(--af-cst-deep),
    0 0 calc(34px*var(--afu)) calc(10px*var(--afu)) var(--af-cst-ice),
    0 0 calc(56px*var(--afu)) calc(8px*var(--afu)) var(--af-cst-frost),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-cst-line),
    inset 0 0 0 calc(6px*var(--afu)) var(--af-cst-deep),
    inset 0 calc(8px*var(--afu)) calc(26px*var(--afu)) var(--af-cst-ice),
    inset 0 calc(-12px*var(--afu)) calc(30px*var(--afu)) var(--af-cst-deep);
}
.avatar-frame-slot--celestial-stars .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 200deg,
    transparent 0%,
    var(--af-cst-line) 7%,
    transparent 14%,
    transparent 46%,
    var(--af-cst-ice) 54%,
    var(--af-cst-silver) 62%,
    transparent 74%,
    transparent 90%,
    var(--af-cst-frost) 96%,
    transparent 100%
  );
  opacity: 0.3;
  animation: afHaloSpinRev 27s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 74% at 50% 48%, transparent 52%, #000 78%);
  mask-image: radial-gradient(ellipse 70% 74% at 50% 48%, transparent 52%, #000 78%);
}
.avatar-frame-slot--celestial-stars .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='56' viewBox='0 0 62 56'%3E%3Cg fill='%23ffffff'%3E%3Cpath d='M11 6l1.7 3.6 3.6 1.4-3.6 1.4L11 16l-1.4-3.6L6 11l3.6-1.4z' opacity='.95'/%3E%3Cpath d='M31 20l1.3 2.7 2.7 1.3-2.7 1.3-1.3 2.7-1.3-2.7-2.7-1.3 2.7-1.3z' opacity='.7'/%3E%3Cpath d='M49 7l1.5 3.2 3.2 1.5-3.2 1.5-1.5 3.2-1.5-3.2-3.2-1.5 3.2-1.5z' opacity='.85'/%3E%3Ccircle cx='21' cy='33' r='1.4' opacity='.8'/%3E%3Ccircle cx='43' cy='30' r='1.2' opacity='.6'/%3E%3Ccircle cx='55' cy='42' r='1.5' opacity='.75'/%3E%3Ccircle cx='9' cy='45' r='1.2' opacity='.6'/%3E%3Ccircle cx='33' cy='48' r='1.3' opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afRise 5.2s ease-in-out infinite;
  will-change: transform, opacity;
}
.avatar-frame-slot--celestial-stars .player-card__photo,
.avatar-frame-slot--celestial-stars .fi__frame-preview-photo{
  animation: afPhotoBreath 3.4s ease-in-out infinite;
}

/* «Золотые короны» (900): золото и восходящие короны */
.avatar-frame-slot--gilded-crowns .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 88% at 50% 100%, var(--af-gcr-mist) 0%, transparent 56%),
    radial-gradient(ellipse 72% 58% at 14% 16%, var(--af-gcr-honey) 0%, transparent 48%),
    radial-gradient(ellipse 68% 52% at 86% 20%, var(--af-gcr-amber) 0%, transparent 46%),
    radial-gradient(ellipse 92% 58% at 50% 0%, var(--af-gcr-gold) 0%, transparent 44%);
  opacity: 0.88;
  animation: afBgPulse 5s ease-in-out infinite;
}
.avatar-frame-slot--gilded-crowns .avatar-frame-slot__fg{
  animation: afFgShimmer 2.5s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-gcr-rim),
    0 0 0 calc(6px*var(--afu)) var(--af-gcr-honey),
    0 0 0 calc(11px*var(--afu)) var(--af-gcr-amber),
    0 0 0 calc(15px*var(--afu)) var(--af-gcr-deep),
    0 0 calc(36px*var(--afu)) calc(10px*var(--afu)) var(--af-gcr-gold),
    0 0 calc(58px*var(--afu)) calc(8px*var(--afu)) var(--af-gcr-honey),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-gcr-line),
    inset 0 0 0 calc(6px*var(--afu)) var(--af-gcr-deep),
    inset 0 calc(8px*var(--afu)) calc(26px*var(--afu)) var(--af-gcr-amber),
    inset 0 calc(-12px*var(--afu)) calc(30px*var(--afu)) var(--af-gcr-deep);
}
.avatar-frame-slot--gilded-crowns .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 30deg,
    transparent 0%,
    var(--af-gcr-honey) 8%,
    transparent 16%,
    transparent 42%,
    var(--af-gcr-amber) 50%,
    var(--af-gcr-line) 58%,
    transparent 70%,
    transparent 88%,
    var(--af-gcr-gold) 94%,
    transparent 100%
  );
  opacity: 0.34;
  animation: afHaloSpin 24s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 74% at 50% 48%, transparent 52%, #000 78%);
  mask-image: radial-gradient(ellipse 70% 74% at 50% 48%, transparent 52%, #000 78%);
}
.avatar-frame-slot--gilded-crowns .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='52' viewBox='0 0 62 52'%3E%3Cg fill='%23FDE047'%3E%3Cpath transform='translate(5,8) scale(.9)' d='M0 10L3 2l4.5 4L10 0l2.5 6L17 2l3 8zM0 12h20v1.8H0z' opacity='.9'/%3E%3Cpath transform='translate(36,4) scale(.8)' d='M0 10L3 2l4.5 4L10 0l2.5 6L17 2l3 8zM0 12h20v1.8H0z' opacity='.75'/%3E%3Cpath transform='translate(22,30) scale(.6)' d='M0 10L3 2l4.5 4L10 0l2.5 6L17 2l3 8zM0 12h20v1.8H0z' opacity='.6'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afRise 5s ease-in-out infinite;
  will-change: transform, opacity;
}
.avatar-frame-slot--gilded-crowns .player-card__photo,
.avatar-frame-slot--gilded-crowns .fi__frame-preview-photo{
  animation: afPhotoBreath 3.4s ease-in-out infinite;
}

/* «Обсидиан» (1050): чёрное стекло и острый серебряный блик */
.avatar-frame-slot--obsidian-edge .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 95% at 50% 100%, var(--af-obs-mist) 0%, transparent 55%),
    radial-gradient(ellipse 70% 50% at 50% 0%, var(--af-ring-shadow) 0%, transparent 50%),
    radial-gradient(ellipse 55% 45% at 82% 30%, var(--af-obs-halo) 0%, transparent 46%);
  opacity: 0.82;
  animation: afBgPulse 4.4s ease-in-out infinite;
}
.avatar-frame-slot--obsidian-edge .avatar-frame-slot__fg{
  animation: afFgShimmer 2.8s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-obs-blade),
    0 0 0 calc(6px*var(--afu)) var(--af-obs-core),
    0 0 0 calc(11px*var(--afu)) var(--af-obs-outer),
    0 0 0 calc(15px*var(--afu)) var(--af-ring-shadow),
    0 0 calc(30px*var(--afu)) calc(8px*var(--afu)) var(--af-obs-mist),
    0 0 calc(52px*var(--afu)) calc(4px*var(--afu)) var(--af-obs-halo),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-obs-rim),
    inset 0 0 0 calc(5px*var(--afu)) var(--af-ring-shadow),
    inset 0 calc(6px*var(--afu)) calc(20px*var(--afu)) var(--af-obs-mist),
    inset 0 calc(-10px*var(--afu)) calc(26px*var(--afu)) var(--af-vignette-deep);
}
.avatar-frame-slot--obsidian-edge .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -8px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 0deg,
    transparent 0%,
    var(--af-obs-blade) 5%,
    transparent 11%,
    transparent 50%,
    var(--af-obs-line) 56%,
    transparent 63%,
    transparent 100%
  );
  opacity: 0.5;
  animation: afHaloSpin 10s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 70% 74% at 50% 50%, transparent 52%, #000 78%);
  mask-image: radial-gradient(ellipse 70% 74% at 50% 50%, transparent 52%, #000 78%);
}
.avatar-frame-slot--obsidian-edge .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='48' viewBox='0 0 62 48'%3E%3Cg fill='%23E2E8F0'%3E%3Cpath d='M12 6l2.4 8-4-2z' opacity='.6'/%3E%3Cpath d='M46 12l1.8 6.4-3.2-1.6z' opacity='.5'/%3E%3Cpath d='M28 26l1.6 5.6-2.8-1.4z' opacity='.45'/%3E%3Ccircle cx='20' cy='38' r='1.1' opacity='.5'/%3E%3Ccircle cx='52' cy='32' r='1.2' opacity='.45'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afRise 6s ease-in-out infinite;
  will-change: transform, opacity;
}
.avatar-frame-slot--obsidian-edge .player-card__photo,
.avatar-frame-slot--obsidian-edge .fi__frame-preview-photo{
  animation: afPhotoBreath 4.4s ease-in-out infinite;
}

/* «Затмение» (1250): чёрный диск в золотой короне */
.avatar-frame-slot--onyx-eclipse .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 100% 50% at 50% 0%, var(--af-oxe-gold) 0%, transparent 40%),
    radial-gradient(ellipse 90% 75% at 50% 100%, var(--af-oxe-eclipse) 0%, transparent 58%),
    radial-gradient(ellipse 60% 45% at 50% 50%, var(--af-oxe-halo) 0%, transparent 48%);
  opacity: 0.84;
  animation: afBgPulse 4.4s ease-in-out infinite;
}
.avatar-frame-slot--onyx-eclipse .avatar-frame-slot__fg{
  animation: afFgShimmer 3.2s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-oxe-rim),
    0 0 0 calc(6px*var(--afu)) var(--af-oxe-eclipse),
    0 0 0 calc(11px*var(--afu)) var(--af-oxe-outer),
    0 0 0 calc(15px*var(--afu)) var(--af-oxe-halo),
    0 0 calc(36px*var(--afu)) calc(10px*var(--afu)) var(--af-oxe-gold),
    0 0 calc(60px*var(--afu)) calc(6px*var(--afu)) var(--af-oxe-halo),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-oxe-line),
    inset 0 0 0 calc(6px*var(--afu)) var(--af-oxe-eclipse),
    inset 0 calc(7px*var(--afu)) calc(24px*var(--afu)) var(--af-oxe-halo),
    inset 0 calc(-12px*var(--afu)) calc(28px*var(--afu)) var(--af-oxe-outer);
}
.avatar-frame-slot--onyx-eclipse .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 250deg,
    transparent 0%,
    var(--af-oxe-gold) 10%,
    var(--af-oxe-line) 20%,
    var(--af-oxe-gold) 30%,
    transparent 42%,
    transparent 100%
  );
  opacity: 0.5;
  animation: afHaloSpin 30s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 68% 72% at 50% 48%, transparent 50%, #000 76%);
  mask-image: radial-gradient(ellipse 68% 72% at 50% 48%, transparent 50%, #000 76%);
}
.avatar-frame-slot--onyx-eclipse .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='44' viewBox='0 0 62 44'%3E%3Cg fill='%23FACC15'%3E%3Ccircle cx='12' cy='8' r='1.5' opacity='.75'/%3E%3Ccircle cx='34' cy='16' r='1.1' opacity='.55'/%3E%3Ccircle cx='50' cy='6' r='1.3' opacity='.65'/%3E%3Ccircle cx='22' cy='28' r='1' opacity='.5'/%3E%3Ccircle cx='44' cy='34' r='1.4' opacity='.6'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afRise 5.6s ease-in-out infinite;
  will-change: transform, opacity;
}
.avatar-frame-slot--onyx-eclipse .player-card__photo,
.avatar-frame-slot--onyx-eclipse .fi__frame-preview-photo{
  animation: afPhotoBreath 4s ease-in-out infinite;
}

/* «Гала-золото» (1500): шампанское сияние и золотая пыль */
.avatar-frame-slot--gala-gold .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 95% 55% at 50% 0%, var(--af-gla-gold) 0%, transparent 45%),
    radial-gradient(ellipse 100% 75% at 50% 100%, var(--af-gla-champagne) 0%, transparent 58%),
    radial-gradient(ellipse 60% 40% at 50% 50%, var(--af-gla-amber) 0%, transparent 55%);
  opacity: 0.9;
  animation: afBgPulse 4.2s ease-in-out infinite;
}
.avatar-frame-slot--gala-gold .avatar-frame-slot__fg{
  animation: afFgShimmer 2.4s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-gla-line),
    0 0 0 calc(6px*var(--afu)) var(--af-gla-amber),
    0 0 0 calc(11px*var(--afu)) var(--af-gla-shadow),
    0 0 0 calc(15px*var(--afu)) var(--af-gla-champagne),
    0 0 calc(40px*var(--afu)) calc(10px*var(--afu)) var(--af-gla-gold),
    0 0 calc(66px*var(--afu)) calc(8px*var(--afu)) var(--af-gla-champagne),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-gla-champagne),
    inset 0 0 0 calc(6px*var(--afu)) var(--af-gla-shadow),
    inset 0 calc(8px*var(--afu)) calc(26px*var(--afu)) var(--af-gla-amber),
    inset 0 calc(-12px*var(--afu)) calc(30px*var(--afu)) var(--af-gla-shadow);
}
.avatar-frame-slot--gala-gold .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -10px;
  transform-origin: center;
  border-radius: inherit;
  background: conic-gradient(
    from 120deg,
    transparent 0%,
    var(--af-gla-gold) 9%,
    var(--af-gla-line) 16%,
    transparent 26%,
    transparent 50%,
    var(--af-gla-champagne) 60%,
    var(--af-gla-gold) 70%,
    transparent 82%,
    transparent 100%
  );
  opacity: 0.45;
  animation: afHaloSpin 18s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 68% 72% at 50% 46%, transparent 49%, #000 76%);
  mask-image: radial-gradient(ellipse 68% 72% at 50% 46%, transparent 49%, #000 76%);
}
.avatar-frame-slot--gala-gold .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='50' viewBox='0 0 62 50'%3E%3Cg fill='%23FDE68A'%3E%3Cpath d='M12 4l2 4 4 2-4 2-2 4-2-4-4-2 4-2z' opacity='.9'/%3E%3Ccircle cx='34' cy='12' r='1.6' opacity='.8'/%3E%3Cpath d='M50 18l1.5 3 3 1.5-3 1.5-1.5 3-1.5-3-3-1.5 3-1.5z' opacity='.75'/%3E%3Ccircle cx='20' cy='30' r='1.3' opacity='.65'/%3E%3Ccircle cx='44' cy='36' r='1.8' opacity='.7'/%3E%3Ccircle cx='8' cy='42' r='1.2' opacity='.6'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afRise 4.6s ease-in-out infinite;
  will-change: transform, opacity;
}
.avatar-frame-slot--gala-gold .player-card__photo,
.avatar-frame-slot--gala-gold .fi__frame-preview-photo{
  animation: afPhotoBreath 3.4s ease-in-out infinite;
}

/* «Владыка бездны» (2000): вершина каталога — фиолетовая плазма и руны */
.avatar-frame-slot--void-ascendant .avatar-frame-slot__bg{
  background:
    radial-gradient(ellipse 90% 60% at 50% 0%, var(--af-voa-purple) 0%, transparent 42%),
    radial-gradient(ellipse 100% 75% at 50% 100%, var(--af-voa-deep) 0%, transparent 56%),
    radial-gradient(ellipse 55% 45% at 12% 55%, var(--af-voa-void) 0%, transparent 48%),
    radial-gradient(ellipse 50% 40% at 90% 40%, var(--af-voa-purple) 0%, transparent 42%);
  opacity: 0.9;
  animation: afFlicker 5.2s ease-in-out infinite;
}
.avatar-frame-slot--void-ascendant .avatar-frame-slot__fg{
  animation: afFgShimmer 2.1s ease-in-out infinite;
  box-shadow:
    0 0 0 calc(2px*var(--afu)) var(--af-voa-rim),
    0 0 0 calc(7px*var(--afu)) var(--af-voa-void),
    0 0 0 calc(12px*var(--afu)) var(--af-voa-deep),
    0 0 0 calc(16px*var(--afu)) var(--af-voa-outer),
    0 0 calc(44px*var(--afu)) calc(12px*var(--afu)) var(--af-voa-purple),
    0 0 calc(76px*var(--afu)) calc(8px*var(--afu)) var(--af-voa-outer),
    inset 0 0 0 calc(2px*var(--afu)) var(--af-voa-purple),
    inset 0 0 0 calc(6px*var(--afu)) var(--af-voa-deep),
    inset 0 calc(8px*var(--afu)) calc(28px*var(--afu)) var(--af-voa-purple),
    inset 0 calc(-14px*var(--afu)) calc(32px*var(--afu)) var(--af-voa-void);
}
.avatar-frame-slot--void-ascendant .avatar-frame-slot__fg::before{
  content: '';
  position: absolute;
  inset: -12px;
  transform-origin: center;
  border-radius: inherit;
  /* двойная дуга в одном конусе — читается как два встречных ореола */
  background: conic-gradient(
    from 200deg,
    transparent 0%,
    var(--af-voa-line) 8%,
    var(--af-voa-purple) 16%,
    transparent 26%,
    transparent 46%,
    var(--af-voa-purple) 56%,
    var(--af-voa-line) 66%,
    transparent 78%,
    transparent 100%
  );
  opacity: 0.42;
  animation: afHaloSpinRev 24s linear infinite;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 66% 70% at 50% 48%, transparent 46%, #000 74%);
  mask-image: radial-gradient(ellipse 66% 70% at 50% 48%, transparent 46%, #000 74%);
}
.avatar-frame-slot--void-ascendant .avatar-frame-slot__fg::after{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='62' height='52' viewBox='0 0 62 52'%3E%3Cg fill='%23C4B5FD'%3E%3Cpath d='M10 4l1.6 3.4 3.4 1.6-3.4 1.6L10 14l-1.6-3.4L5 9l3.4-1.6z' opacity='.85'/%3E%3Cpath d='M30 18h2v3h3v2h-3v3h-2v-3h-3v-2h3z' opacity='.6'/%3E%3Cpath d='M48 8l1.4 3 3 1.4-3 1.4-1.4 3-1.4-3-3-1.4 3-1.4z' opacity='.75'/%3E%3Ccircle cx='18' cy='32' r='1.3' opacity='.6'/%3E%3Ccircle cx='44' cy='38' r='1.5' opacity='.65'/%3E%3Ccircle cx='8' cy='44' r='1.1' opacity='.5'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  pointer-events: none;
  animation: afRise 4.4s ease-in-out infinite;
  will-change: transform, opacity;
}
.avatar-frame-slot--void-ascendant .player-card__photo,
.avatar-frame-slot--void-ascendant .fi__frame-preview-photo{
  animation: afPhotoBreath 4.2s ease-in-out infinite;
}
