.rcn__btn[data-astro-cid-ny2ehs3r]{position:fixed;top:50%;transform:translateY(-50%);z-index:60;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1px solid rgba(197,160,40,.35);background:rgba(12,11,11,.55);color:#f4e4b0;backdrop-filter:blur(4px);cursor:pointer;transition:background .15s,transform .15s,border-color .15s}.rcn__btn[data-astro-cid-ny2ehs3r]:hover{background:rgba(197,160,40,.85);color:#0c0b0b;border-color:rgba(197,160,40,.85)}.rcn__btn[data-astro-cid-ny2ehs3r]:active{transform:translateY(-50%) scale(.92)}.rcn__btn--prev[data-astro-cid-ny2ehs3r]{left:18px}.rcn__btn--next[data-astro-cid-ny2ehs3r]{right:18px}.rcn__icon--flip[data-astro-cid-ny2ehs3r]{transform:scaleX(-1)}@media (max-width: 768px){.rcn__btn[data-astro-cid-ny2ehs3r]{width:40px;height:40px}.rcn__btn--prev[data-astro-cid-ny2ehs3r]{left:8px}.rcn__btn--next[data-astro-cid-ny2ehs3r]{right:8px}.rcn__icon[data-astro-cid-ny2ehs3r],.rcn__icon--flip[data-astro-cid-ny2ehs3r]{width:18px;height:18px}}.rcn-preloader[data-astro-cid-ny2ehs3r]{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--clr-bg, #F7F3EC);visibility:hidden}.rcn-spinner[data-astro-cid-ny2ehs3r]{width:42px;height:42px;border-radius:50%;border:3px solid rgba(197,160,40,.22);border-top-color:var(--clr-primary, #C5A028);animation:rcn-spin .8s linear infinite}@keyframes rcn-spin{to{transform:rotate(360deg)}}/* Hides the whole page while the saved scroll offset is being applied —
     prevents the visible jump/jitter of scrolling a page that already painted
     at the top. Removed by RandomCollabNav's script once positioning is done. */
  html.rcn-restoring {
    visibility: hidden;
  }
  html.rcn-restoring .rcn-preloader {
    visibility: visible;
  }.dp-page[data-astro-cid-6ir6zstd]{padding:2rem 0 4rem}.dp-breadcrumb[data-astro-cid-6ir6zstd]{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.8rem;margin-bottom:1.5rem}.dp-breadcrumb__link[data-astro-cid-6ir6zstd]{color:var(--clr-muted);text-decoration:none;transition:color var(--transition)}.dp-breadcrumb__link[data-astro-cid-6ir6zstd]:hover{color:var(--clr-text)}.dp-breadcrumb__sep[data-astro-cid-6ir6zstd]{color:var(--clr-border);font-size:.72rem}.dp-header[data-astro-cid-6ir6zstd]{margin-bottom:2rem}.dp-title[data-astro-cid-6ir6zstd]{font-size:clamp(1.3rem,4vw,2rem);font-weight:900;margin:0 0 .6rem}.dp-meta[data-astro-cid-6ir6zstd]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.dp-creator-tag[data-astro-cid-6ir6zstd]{font-size:.78rem;color:var(--clr-muted)}.dp-draw-badge[data-astro-cid-6ir6zstd]{font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.2em .55em;border-radius:4px;background:var(--clr-surface2, #F0EDE5);color:var(--clr-muted)}.dp-rc-badge[data-astro-cid-6ir6zstd]{display:inline-flex;align-items:center;gap:4px;padding:.2em .65em;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgba(127,119,221,.14);color:#7F77DD;border:1px solid rgba(127,119,221,.3);white-space:nowrap}.dp-relevant-badge[data-astro-cid-6ir6zstd]{display:inline-flex;align-items:center;gap:4px;padding:.2em .65em;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgba(29,158,117,.14);color:#1D9E75;border:1px solid rgba(29,158,117,.3);white-space:nowrap}.dp-dates[data-astro-cid-6ir6zstd]{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.78rem;color:var(--clr-muted)}.dp-arena[data-astro-cid-6ir6zstd]{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:start;margin-bottom:2rem}.dp-fighter[data-astro-cid-6ir6zstd]{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding-top:2rem;position:relative;transition:opacity .3s}.dp-fighter--loser[data-astro-cid-6ir6zstd]{opacity:.45}.dp-fighter--voted[data-astro-cid-6ir6zstd]{animation:dp-voted-pulse .8s ease}@keyframes dp-voted-pulse{0%{transform:scale(1)}30%{transform:scale(1.04)}100%{transform:scale(1)}}.dp-crown[data-astro-cid-6ir6zstd]{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:1.4rem;line-height:1}.dp-fighter__profile[data-astro-cid-6ir6zstd]{text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:.4rem}.dp-fighter__profile[data-astro-cid-6ir6zstd]:hover .dp-fighter__name[data-astro-cid-6ir6zstd]{color:var(--clr-accent)}.dp-avatar-wrap[data-astro-cid-6ir6zstd]{position:relative}.dp-avatar[data-astro-cid-6ir6zstd]{width:clamp(72px,16vw,110px);height:clamp(72px,16vw,110px);border-radius:50%;object-fit:cover;border:3px solid var(--clr-border);display:block}.dp-avatar--winner[data-astro-cid-6ir6zstd]{border-color:var(--clr-primary);box-shadow:0 0 0 3px rgba(197,160,40,.25)}.dp-official-badge[data-astro-cid-6ir6zstd]{position:absolute;bottom:2px;right:2px;background:var(--clr-primary);color:#fff;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;border:2px solid var(--clr-bg)}.dp-avatar--hidden[data-astro-cid-6ir6zstd]{width:clamp(72px,16vw,110px);height:clamp(72px,16vw,110px);border-radius:50%;border:3px dashed var(--clr-border);background:var(--clr-surface2, #F0EDE5);display:flex;align-items:center;justify-content:center;color:var(--clr-muted)}.dp-avatar--hidden[data-astro-cid-6ir6zstd] svg[data-astro-cid-6ir6zstd]{width:40%;height:40%;opacity:.4}.dp-fighter__name[data-astro-cid-6ir6zstd]{font-size:clamp(.9rem,3vw,1.15rem);font-weight:800;text-align:center;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;transition:color var(--transition)}.dp-fighter__handle[data-astro-cid-6ir6zstd]{font-size:.78rem;margin:0;text-align:center;display:flex;align-items:center;justify-content:center;gap:.25rem}.dp-fighter__net-icon[data-astro-cid-6ir6zstd]{display:inline-flex;align-items:center;flex-shrink:0}.dp-vote-count[data-astro-cid-6ir6zstd]{text-align:center}.dp-votes-total[data-astro-cid-6ir6zstd]{font-size:clamp(1.4rem,4vw,2rem);font-weight:900;display:block;letter-spacing:-.02em}.dp-votes-meta[data-astro-cid-6ir6zstd]{font-size:.75rem;color:var(--clr-muted);display:flex;align-items:center;justify-content:center;gap:.3rem}.dp-votes-gold[data-astro-cid-6ir6zstd]{color:var(--clr-primary);font-weight:600}.dp-votes-sep[data-astro-cid-6ir6zstd]{opacity:.4}.dp-vote-actions[data-astro-cid-6ir6zstd]{display:flex;flex-direction:column;gap:.5rem;width:100%}.dp-vote-actions[data-astro-cid-6ir6zstd] .btn[data-astro-cid-6ir6zstd]{width:100%;justify-content:center;font-size:.82rem}.dp-center[data-astro-cid-6ir6zstd]{display:flex;align-items:center;padding-top:calc(2rem + clamp(36px,8vw,55px))}.dp-vs[data-astro-cid-6ir6zstd]{font-size:1rem;font-style:italic;color:var(--clr-muted);letter-spacing:.1em;user-select:none}.dp-bar-row[data-astro-cid-6ir6zstd]{margin-bottom:2rem}.dp-bar-labels[data-astro-cid-6ir6zstd]{display:flex;justify-content:space-between;margin-bottom:.4rem}.dp-bar-label[data-astro-cid-6ir6zstd]{font-size:.72rem;font-weight:700;color:var(--clr-muted)}.dp-bar[data-astro-cid-6ir6zstd]{height:8px;border-radius:4px;background:var(--clr-surface2, #F0EDE5);overflow:hidden;position:relative}.dp-bar__a[data-astro-cid-6ir6zstd]{height:100%;background:var(--clr-primary);border-radius:4px;transition:width .4s ease}.dp-notice[data-astro-cid-6ir6zstd]{padding:.5rem 1rem;margin-bottom:1rem;background:rgba(197,160,40,.07);border:1px solid rgba(197,160,40,.18);border-radius:var(--radius-sm, .375rem);font-size:.82rem;color:var(--clr-muted)}.dp-winner-banner[data-astro-cid-6ir6zstd]{background:linear-gradient(135deg,rgba(197,160,40,.1),rgba(197,160,40,.04));border:1px solid rgba(197,160,40,.25);border-radius:var(--radius, .5rem);padding:1.25rem 1.5rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.dp-winner-banner__text[data-astro-cid-6ir6zstd]{display:flex;flex-direction:column;gap:.2rem}.dp-winner-banner__label[data-astro-cid-6ir6zstd]{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--clr-primary)}.dp-winner-banner__name[data-astro-cid-6ir6zstd]{font-size:1.1rem;font-weight:800}.dp-winner-banner__date[data-astro-cid-6ir6zstd]{font-size:.78rem;color:var(--clr-muted)}.dp-gold-hint[data-astro-cid-6ir6zstd]{text-align:center;font-size:.8rem;color:var(--clr-muted);margin:0 0 2rem}.dp-sponsors[data-astro-cid-6ir6zstd]{margin-top:2.5rem}.dp-sponsors__title[data-astro-cid-6ir6zstd]{font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--clr-muted);margin-bottom:1rem}.dp-sponsors__grid[data-astro-cid-6ir6zstd]{display:flex;flex-wrap:wrap;gap:1rem}.dp-poster[data-astro-cid-6ir6zstd]{margin-top:2rem}.dp-poster__img[data-astro-cid-6ir6zstd]{width:100%;max-width:540px;border-radius:.75rem;display:block}.dp-poster__video[data-astro-cid-6ir6zstd]{width:100%;max-width:540px;border-radius:.75rem;display:block;background:#000}@media (max-width: 600px){.dp-poster__img[data-astro-cid-6ir6zstd]{max-width:100%}.dp-poster__video[data-astro-cid-6ir6zstd]{max-width:100%}}.dp-event-partners[data-astro-cid-6ir6zstd]{margin-top:2rem}.dp-event-partners__grid[data-astro-cid-6ir6zstd]{display:flex;flex-wrap:wrap;gap:1rem 1.25rem;margin-top:1rem}.dp-ig-post[data-astro-cid-6ir6zstd]{margin-top:2.5rem}.dp-ig-post__wrap[data-astro-cid-6ir6zstd]{max-width:540px}.dp-ig-post__wrap[data-astro-cid-6ir6zstd] .instagram-media[data-astro-cid-6ir6zstd]{min-width:0!important;width:100%!important;max-width:100%!important}@media (max-width: 600px){.dp-ig-post__wrap[data-astro-cid-6ir6zstd]{max-width:100%}}.dp-live-toast[data-astro-cid-6ir6zstd]{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(2rem);background:var(--clr-text);color:var(--clr-bg);padding:.55rem 1.1rem;border-radius:2rem;font-size:.82rem;font-weight:600;opacity:0;transition:opacity .25s,transform .25s;z-index:200;pointer-events:none;white-space:nowrap}.dp-live-toast--in[data-astro-cid-6ir6zstd]{opacity:1;transform:translateX(-50%) translateY(0)}.dp-ripple[data-astro-cid-6ir6zstd]{position:absolute;inset:0;border-radius:50%;border:2px solid var(--clr-primary);opacity:0;animation:dp-ripple .9s ease-out forwards;pointer-events:none}@keyframes dp-ripple{0%{transform:scale(.85);opacity:.6}100%{transform:scale(1.4);opacity:0}}.dp-plus-one[data-astro-cid-6ir6zstd]{position:absolute;top:-1.5rem;left:50%;transform:translateX(-50%);font-size:.85rem;font-weight:800;color:var(--clr-primary);animation:dp-plus-one .9s ease forwards;pointer-events:none}@keyframes dp-plus-one{0%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-1.5rem)}}@media (max-width: 540px){.dp-arena[data-astro-cid-6ir6zstd]{grid-template-columns:1fr auto 1fr;gap:.75rem}.dp-fighter__name[data-astro-cid-6ir6zstd]{max-width:110px;font-size:.85rem}}@media (max-width: 360px){.dp-arena[data-astro-cid-6ir6zstd]{grid-template-columns:1fr}.dp-center[data-astro-cid-6ir6zstd]{display:none}.dp-fighter[data-astro-cid-6ir6zstd]{padding-top:1rem}}.gv-modal-overlay[data-astro-cid-6ir6zstd]{position:fixed;inset:0;background:rgba(20,18,16,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.gv-modal[data-astro-cid-6ir6zstd]{background:var(--clr-surface, #fff);border:1px solid var(--clr-border);border-radius:var(--radius-lg, 1rem);padding:2rem 1.75rem 1.75rem;max-width:420px;width:100%;position:relative;display:flex;flex-direction:column;gap:1rem;box-shadow:0 20px 60px rgba(0,0,0,.18);animation:gv-modal-in .2s ease}@keyframes gv-modal-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}.gv-modal__close[data-astro-cid-6ir6zstd]{position:absolute;top:1rem;right:1rem;background:none;border:none;padding:.25rem;cursor:pointer;color:var(--clr-muted);border-radius:.25rem;display:flex;align-items:center;justify-content:center;transition:color var(--transition)}.gv-modal__close[data-astro-cid-6ir6zstd]:hover{color:var(--clr-text)}.gv-modal__icon[data-astro-cid-6ir6zstd]{display:flex;align-items:center;justify-content:center;color:var(--clr-primary);width:64px;height:64px;background:rgba(197,160,40,.1);border-radius:50%;align-self:center}.gv-modal__title[data-astro-cid-6ir6zstd]{font-size:1.2rem;font-weight:900;margin:0;text-align:center;color:var(--clr-primary)}.gv-modal__for[data-astro-cid-6ir6zstd]{text-align:center;font-size:.9rem;color:var(--clr-muted);margin:-.25rem 0 0}.gv-modal__for[data-astro-cid-6ir6zstd] strong[data-astro-cid-6ir6zstd]{color:var(--clr-text)}.gv-modal__label[data-astro-cid-6ir6zstd]{font-size:.78rem;font-weight:600;color:var(--clr-muted);display:block;margin-bottom:.3rem;letter-spacing:.03em;text-transform:uppercase}.gv-modal__qty-row[data-astro-cid-6ir6zstd]{display:flex;flex-direction:column;gap:.35rem}.gv-modal__qty-ctrl[data-astro-cid-6ir6zstd]{display:flex;align-items:center;gap:.5rem}.gv-qty-dec[data-astro-cid-6ir6zstd],.gv-qty-inc[data-astro-cid-6ir6zstd]{width:36px;height:36px;border-radius:.375rem;border:1px solid var(--clr-border);background:var(--clr-surface);font-size:1.1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--clr-text);flex-shrink:0;transition:background .15s,border-color .15s}.gv-qty-dec[data-astro-cid-6ir6zstd]:hover,.gv-qty-inc[data-astro-cid-6ir6zstd]:hover{background:var(--clr-surface2, #F0EDE5);border-color:var(--clr-primary)}.gv-qty-input[data-astro-cid-6ir6zstd]{flex:1;height:36px;border:1px solid var(--clr-border);border-radius:.375rem;padding:0 .5rem;font-size:1rem;font-weight:700;text-align:center;background:var(--clr-bg);color:var(--clr-text);min-width:0}.gv-qty-input[data-astro-cid-6ir6zstd]:focus{outline:2px solid var(--clr-primary);outline-offset:1px}.gv-modal__price-row[data-astro-cid-6ir6zstd]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:rgba(197,160,40,.07);border-radius:.5rem;border:1px solid rgba(197,160,40,.15);font-size:.9rem}.gv-modal__total[data-astro-cid-6ir6zstd]{font-size:1.15rem;color:var(--clr-primary)}.gv-modal__email-row[data-astro-cid-6ir6zstd]{display:flex;flex-direction:column;gap:.35rem}.gv-email-input[data-astro-cid-6ir6zstd]{width:100%;height:38px;border:1px solid var(--clr-border);border-radius:.375rem;padding:0 .75rem;font-size:.9rem;background:var(--clr-bg);color:var(--clr-text);box-sizing:border-box}.gv-email-input[data-astro-cid-6ir6zstd]:focus{outline:2px solid var(--clr-primary);outline-offset:1px}.gv-modal__hint[data-astro-cid-6ir6zstd]{font-size:.75rem;color:var(--clr-muted);text-align:center;margin:-.25rem 0 0}.gv-modal__submit[data-astro-cid-6ir6zstd]{width:100%;justify-content:center;font-size:.95rem}.gv-modal__error[data-astro-cid-6ir6zstd]{font-size:.82rem;color:var(--clr-danger, #c0392b);text-align:center;margin:-.25rem 0 0}@media (max-width: 480px){.gv-modal[data-astro-cid-6ir6zstd]{padding:1.5rem 1.25rem}}/* ═══════════════════════════════════════════════════════════════════════
     Video-mode animation engine — active only when <html data-video="1">.
     Variant classes (igv-av-N / igv-vs-N / igv-sh-N / igv-fx-N / igv-pr-N /
     igv-tx-N) are assigned to #ig-card at runtime by the seeded picker below.
     ═══════════════════════════════════════════════════════════════════════ */

  /* Registered angle property for the conic border chase (FX-5) */
  @property --igv-a {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
  }

  /* ── Shared setup ───────────────────────────────────────────────────────── */
  html[data-video="1"] #ig-card .arena .creator {
    transform-origin: 50% 60%;
    /* --igv-dir is set inline by JS: 1 for fighter A (left), -1 for B (right) */
    --igv-dir: 1;
  }
  html[data-video="1"] #ig-card .vs,
  html[data-video="1"] #ig-card .igv-vsbadge {
    position: relative;
    transform-origin: 50% 50%;
  }
  .igv-shine, .igv-fx, .igv-amb {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
  }
  .igv-shine { z-index: 9; }
  .igv-fx    { z-index: 8; }
  .igv-amb   { z-index: 7; }

  /* ═══ AV — fighter motion (6 variants, A/B mirrored via --igv-dir) ═══════ */

  /* AV-1: lunge-strike — wind up away, strike toward the opponent, recoil */
  html[data-video="1"] #ig-card.igv-av-1 .arena .creator {
    animation: igvLunge 2000ms cubic-bezier(.36,.07,.19,.97) infinite;
  }
  @keyframes igvLunge {
    0%, 100% { translate: 0 0;                                scale: 1; }
    14%      { translate: calc(var(--igv-dir) * -16px) 2px;   scale: .98; }
    32%      { translate: calc(var(--igv-dir) * 30px) -4px;   scale: 1.06; }
    46%      { translate: calc(var(--igv-dir) * 6px) 0;       scale: 1.005; }
    64%      { translate: calc(var(--igv-dir) * 14px) -2px;   scale: 1.025; }
  }

  /* AV-2: power-pump — aggressive scale punches with a tilt */
  html[data-video="1"] #ig-card.igv-av-2 .arena .creator {
    animation: igvPump 4000ms ease-in-out infinite;
  }
  @keyframes igvPump {
    0%, 100% { scale: 1;    rotate: 0deg; }
    18%      { scale: 1.07; rotate: calc(var(--igv-dir) * 3.5deg); }
    38%      { scale: .985; rotate: 0deg; }
    58%      { scale: 1.09; rotate: calc(var(--igv-dir) * -3deg); }
    80%      { scale: 1.01; rotate: 0deg; }
  }

  /* AV-3: float-duel — counter-phased vertical bob with a slight lean */
  html[data-video="1"] #ig-card.igv-av-3 .arena .creator {
    animation: igvFloat 4000ms ease-in-out infinite;
  }
  html[data-video="1"] #ig-card.igv-av-3 .arena .creator:last-of-type {
    animation-delay: -2000ms;
  }
  @keyframes igvFloat {
    0%, 100% { translate: 0 0;     rotate: 0deg; }
    25%      { translate: 0 -16px; rotate: calc(var(--igv-dir) * 2.5deg); }
    50%      { translate: 0 -24px; rotate: 0deg; }
    75%      { translate: 0 -9px;  rotate: calc(var(--igv-dir) * -2deg); }
  }

  /* AV-4: rage-shake — two short fury bursts per loop, mirrored phases */
  html[data-video="1"] #ig-card.igv-av-4 .arena .creator {
    animation: igvShake 4000ms linear infinite;
  }
  html[data-video="1"] #ig-card.igv-av-4 .arena .creator:last-of-type {
    animation-delay: -500ms;
  }
  @keyframes igvShake {
    0%, 8%, 20%, 58%, 70%, 100% { translate: 0 0;                              scale: 1; }
    10% { translate: calc(var(--igv-dir) * -7px) -2px;                         scale: 1.02; }
    12% { translate: calc(var(--igv-dir) *  8px)  2px;                         scale: 1.035; }
    14% { translate: calc(var(--igv-dir) * -7px) -1px;                         scale: 1.02; }
    16% { translate: calc(var(--igv-dir) *  6px)  1px;                         scale: 1.01; }
    18% { translate: calc(var(--igv-dir) * -3px)  0;                           scale: 1.005; }
    60% { translate: calc(var(--igv-dir) *  7px) -2px;                         scale: 1.02; }
    62% { translate: calc(var(--igv-dir) * -8px)  2px;                         scale: 1.035; }
    64% { translate: calc(var(--igv-dir) *  7px) -1px;                         scale: 1.02; }
    66% { translate: calc(var(--igv-dir) * -6px)  1px;                         scale: 1.01; }
    68% { translate: calc(var(--igv-dir) *  3px)  0;                           scale: 1.005; }
  }

  /* AV-5: zoom-sway — deep breathe with a lateral sway */
  html[data-video="1"] #ig-card.igv-av-5 .arena .creator {
    animation: igvZoom 4000ms ease-in-out infinite;
  }
  html[data-video="1"] #ig-card.igv-av-5 .arena .creator:last-of-type {
    animation-delay: -2000ms;
  }
  @keyframes igvZoom {
    0%, 100% { scale: 1;    rotate: 0deg;                          translate: 0 0; }
    30%      { scale: 1.06; rotate: calc(var(--igv-dir) * 2.5deg); translate: calc(var(--igv-dir) * 7px) 0; }
    50%      { scale: 1.08; rotate: 0deg;                          translate: 0 -5px; }
    70%      { scale: 1.05; rotate: calc(var(--igv-dir) * -2deg);  translate: calc(var(--igv-dir) * -6px) 0; }
  }

  /* AV-6: collide-bounce — fighters slam into the center and rebound with squash */
  html[data-video="1"] #ig-card.igv-av-6 .arena .creator {
    animation: igvCollide 2000ms cubic-bezier(.3,.9,.4,1.1) infinite;
  }
  @keyframes igvCollide {
    0%, 100% { translate: 0 0;                              scale: 1 1; }
    20%      { translate: calc(var(--igv-dir) * 32px) 0;    scale: 1.05 .95; }
    32%      { translate: calc(var(--igv-dir) * 6px) 0;     scale: .96 1.05; }
    46%      { translate: calc(var(--igv-dir) * 18px) 0;    scale: 1.02 .98; }
    64%      { translate: calc(var(--igv-dir) * 3px) 0;     scale: .99 1.01; }
    82%      { translate: calc(var(--igv-dir) * 8px) 0;     scale: 1 1; }
  }

  /* ═══ VS — badge effects (5 variants) ════════════════════════════════════ */

  /* VS-1: heartbeat — four beats per loop */
  html[data-video="1"] #ig-card.igv-vs-1 .vs,
  html[data-video="1"] #ig-card.igv-vs-1 .igv-vsbadge {
    animation: igvHeartbeat 1000ms ease-in-out infinite;
  }
  @keyframes igvHeartbeat {
    0%, 100% { scale: 1; }
    30%      { scale: 1.18; }
    45%      { scale: .97; }
    60%      { scale: 1.09; }
  }

  /* VS-2: spin-pop — a single full 360° pop, then a mid-loop pulse */
  html[data-video="1"] #ig-card.igv-vs-2 .vs,
  html[data-video="1"] #ig-card.igv-vs-2 .igv-vsbadge {
    animation: igvSpinPop 4000ms cubic-bezier(.34,1.4,.64,1) infinite;
  }
  @keyframes igvSpinPop {
    0%        { rotate: 0deg;   scale: 1; }
    10%       { rotate: 200deg; scale: 1.24; }
    20%       { rotate: 360deg; scale: 1; }
    55%       { rotate: 360deg; scale: 1.12; }
    70%, 100% { rotate: 360deg; scale: 1; }
  }

  /* VS-3: mega-slam — one heavy elastic slam mid-loop */
  html[data-video="1"] #ig-card.igv-vs-3 .vs,
  html[data-video="1"] #ig-card.igv-vs-3 .igv-vsbadge {
    animation: igvSlam 4000ms ease-in-out infinite;
  }
  @keyframes igvSlam {
    0%, 42%, 100% { scale: 1;    rotate: 0deg; }
    48%           { scale: 1.45; rotate: -6deg; }
    55%           { scale: .93;  rotate: 3deg; }
    62%           { scale: 1.16; rotate: -1deg; }
    70%           { scale: 1;    rotate: 0deg; }
  }

  /* VS-4: wobble — angry rocking */
  html[data-video="1"] #ig-card.igv-vs-4 .vs,
  html[data-video="1"] #ig-card.igv-vs-4 .igv-vsbadge {
    animation: igvWobble 2000ms ease-in-out infinite;
  }
  @keyframes igvWobble {
    0%, 100% { rotate: 0deg;  scale: 1; }
    25%      { rotate: 9deg;  scale: 1.06; }
    50%      { rotate: 0deg;  scale: 1.02; }
    75%      { rotate: -9deg; scale: 1.06; }
  }

  /* VS-5: flash-zoom — strobing bright pops, twice per second */
  html[data-video="1"] #ig-card.igv-vs-5 .vs,
  html[data-video="1"] #ig-card.igv-vs-5 .igv-vsbadge {
    animation: igvFlashZoom 1000ms ease-in-out infinite;
  }
  @keyframes igvFlashZoom {
    0%, 100% { scale: 1;    filter: brightness(1); }
    22%      { scale: 1.2;  filter: brightness(1.65); }
    45%      { scale: .96;  filter: brightness(1); }
    70%      { scale: 1.06; filter: brightness(1.2); }
  }

  /* VS shockwave rings — optional layer, appended inside the badge by JS */
  .igv-ring {
    position: absolute;
    left: 50%; top: 50%;
    width: 110%; aspect-ratio: 1 / 1;
    translate: -50% -50%;
    border: 4px solid rgba(255, 255, 255, .6);
    border-radius: 50%;
    pointer-events: none;
    animation: igvRing 2000ms ease-out infinite;
  }
  @keyframes igvRing {
    0%   { scale: .55; opacity: .85; }
    100% { scale: 2.5; opacity: 0; }
  }

  /* ═══ SW — light sweep (4 variants; element appended by JS) ══════════════ */

  .igv-shine::before,
  .igv-shine::after {
    content: '';
    position: absolute;
    pointer-events: none;
  }

  /* SW-1: diagonal L→R */
  .igv-shine--1::before {
    top: -20%; bottom: -20%; width: 34%; left: -45%;
    background: linear-gradient(105deg,
      transparent 0%, rgba(255,255,255,.12) 42%,
      rgba(255,255,255,.28) 50%, rgba(255,255,255,.12) 58%, transparent 100%);
    transform: skewX(-12deg);
    animation: igvSweepLR 4000ms linear infinite;
  }
  @keyframes igvSweepLR {
    0%        { left: -45%; }
    55%, 100% { left: 115%; }
  }

  /* SW-2: steeper diagonal R→L */
  .igv-shine--2::before {
    top: -25%; bottom: -25%; width: 28%; left: 115%;
    background: linear-gradient(75deg,
      transparent 0%, rgba(255,255,255,.14) 42%,
      rgba(255,255,255,.32) 50%, rgba(255,255,255,.14) 58%, transparent 100%);
    transform: skewX(16deg);
    animation: igvSweepRL 4000ms linear infinite;
  }
  @keyframes igvSweepRL {
    0%        { left: 115%; }
    55%, 100% { left: -45%; }
  }

  /* SW-3: dual bars — a wide leader and a thin chaser */
  .igv-shine--3::before {
    top: -20%; bottom: -20%; width: 30%; left: -40%;
    background: linear-gradient(105deg,
      transparent 0%, rgba(255,255,255,.10) 42%,
      rgba(255,255,255,.26) 50%, rgba(255,255,255,.10) 58%, transparent 100%);
    transform: skewX(-12deg);
    animation: igvSweepA 2000ms linear infinite;
  }
  .igv-shine--3::after {
    top: -20%; bottom: -20%; width: 10%; left: -40%;
    background: linear-gradient(105deg,
      transparent 0%, rgba(255,255,255,.22) 50%, transparent 100%);
    transform: skewX(-12deg);
    animation: igvSweepA 2000ms linear infinite;
    animation-delay: -1700ms;
  }
  @keyframes igvSweepA {
    0%        { left: -40%; }
    70%, 100% { left: 115%; }
  }

  /* SW-4: vertical beam falling through the card */
  .igv-shine--4::before {
    left: -10%; right: -10%; height: 22%; top: -30%;
    background: linear-gradient(180deg,
      transparent 0%, rgba(255,255,255,.10) 40%,
      rgba(255,255,255,.22) 50%, rgba(255,255,255,.10) 60%, transparent 100%);
    animation: igvBeam 4000ms ease-in-out infinite;
  }
  @keyframes igvBeam {
    0%        { top: -30%; }
    60%, 100% { top: 118%; }
  }

  /* ═══ SH — accent shapes motion (4 variants) ═════════════════════════════ */

  html[data-video="1"] #ig-card.igv-sh-1 .shapes .sh { animation: igvDrift 4000ms ease-in-out infinite; }
  html[data-video="1"] #ig-card.igv-sh-2 .shapes .sh { animation: igvOrbit 4000ms ease-in-out infinite; }
  html[data-video="1"] #ig-card.igv-sh-3 .shapes .sh { animation: igvSpin  4000ms linear      infinite; }
  html[data-video="1"] #ig-card.igv-sh-4 .shapes .sh { animation: igvShapePulse 2000ms ease-in-out infinite; }

  /* Phase splits shared by all shape variants */
  html[data-video="1"] #ig-card .shapes .sh:nth-child(odd) { animation-delay: -2000ms; }
  html[data-video="1"] #ig-card .shapes .sh:nth-child(3n)  { animation-delay: -1000ms; }

  @keyframes igvDrift {
    0%, 100% { translate: 0 0; }
    50%      { translate: 11px -16px; }
  }
  @keyframes igvOrbit {
    0%, 100% { translate: 0 0; }
    25%      { translate: 14px -10px; }
    50%      { translate: 0 -20px; }
    75%      { translate: -14px -10px; }
  }
  @keyframes igvSpin {
    0%   { rotate: 0deg;   translate: 0 0; }
    50%  { rotate: 180deg; translate: 0 -9px; }
    100% { rotate: 360deg; translate: 0 0; }
  }
  @keyframes igvShapePulse {
    0%, 100% { scale: 1;    opacity: .85; }
    50%      { scale: 1.25; opacity: .5; }
  }

  /* ═══ FX — energy layer (5 variants; element appended by JS) ═════════════ */

  /* FX-1: radial speedline bursts flashing twice per loop */
  .igv-fx--1 {
    background: repeating-conic-gradient(from 8deg,
      transparent 0deg 7deg, rgba(255,255,255,.09) 7deg 8.4deg);
    -webkit-mask-image: radial-gradient(60% 60% at 50% 48%, transparent 34%, #000 72%);
    mask-image: radial-gradient(60% 60% at 50% 48%, transparent 34%, #000 72%);
    opacity: 0;
    animation: igvBurst 2000ms ease-out infinite;
  }
  @keyframes igvBurst {
    0%, 34%, 78%, 100% { opacity: 0;  scale: .96; }
    44%                { opacity: .9; scale: 1; }
    58%                { opacity: 0;  scale: 1.04; }
  }

  /* FX-2: rising particles (spans generated by JS with seeded vars) */
  .igv-p {
    position: absolute;
    left: var(--px);
    top: var(--py);
    width: var(--ps);
    height: var(--ps);
    border-radius: 50%;
    background: var(--pc);
    opacity: 0;
    animation: igvParticle 4000ms ease-in-out infinite;
    animation-delay: var(--pd);
  }
  @keyframes igvParticle {
    0%   { translate: 0 0;              opacity: 0; }
    18%  { opacity: .9; }
    82%  { opacity: .8; }
    100% { translate: var(--pdx) -58px; opacity: 0; }
  }

  /* FX-3: corner spark flares (spans generated by JS) */
  .igv-spark {
    position: absolute;
    left: var(--px);
    top: var(--py);
    width: var(--ps);
    height: var(--ps);
    border-radius: 50%;
    background: radial-gradient(circle,
      rgba(255,255,255,.85) 0%, var(--pc) 30%, transparent 70%);
    opacity: 0;
    animation: igvSpark 2000ms ease-in-out infinite;
    animation-delay: var(--pd);
    mix-blend-mode: screen;
  }
  @keyframes igvSpark {
    0%, 100% { opacity: 0;   scale: .4; }
    20%      { opacity: .95; scale: 1.15; }
    45%      { opacity: 0;   scale: 1.5; }
  }

  /* FX-4: soft scan band falling through the frame */
  .igv-fx--4::before {
    content: '';
    position: absolute;
    left: 0; right: 0; height: 14%;
    top: -18%;
    background: linear-gradient(180deg,
      transparent, rgba(255,255,255,.10) 50%, transparent);
    mix-blend-mode: overlay;
    animation: igvScan 4000ms linear infinite;
  }
  @keyframes igvScan {
    0%   { top: -18%; }
    100% { top: 118%; }
  }

  /* FX-5: conic border chase — accent light running around the card edge */
  .igv-fx--5::before {
    content: '';
    position: absolute;
    inset: 0;
    padding: 12px;
    background: conic-gradient(from var(--igv-a),
      transparent 0deg,  var(--acc,  rgba(255,255,255,.8)) 42deg,  transparent 84deg,
      transparent 180deg, var(--acc2, rgba(255,255,255,.8)) 222deg, transparent 264deg);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    mask-composite: exclude;
    opacity: .9;
    animation: igvBorderChase 4000ms linear infinite;
  }
  @keyframes igvBorderChase {
    0%   { --igv-a: 0deg; }
    100% { --igv-a: 360deg; }
  }

  /* ═══ AMB — ambience (3 variants; element appended by JS) ════════════════ */

  /* AMB-1: pulsing dark vignette */
  .igv-amb--1 {
    background: radial-gradient(120% 120% at 50% 50%,
      transparent 58%, rgba(0,0,0,.18) 100%);
    animation: igvVignette 4000ms ease-in-out infinite;
  }
  @keyframes igvVignette {
    0%, 100% { opacity: .35; }
    50%      { opacity: .8; }
  }

  /* AMB-2: accent corner glow breathing in the palette colors */
  .igv-amb--2 {
    background:
      radial-gradient(45% 45% at 12% 16%, color-mix(in srgb, var(--acc2, #fff) 40%, transparent), transparent 72%),
      radial-gradient(42% 42% at 88% 84%, color-mix(in srgb, var(--acc,  #fff) 38%, transparent), transparent 72%);
    mix-blend-mode: soft-light;
    animation: igvCornerGlow 4000ms ease-in-out infinite;
  }
  @keyframes igvCornerGlow {
    0%, 100% { opacity: .3; }
    50%      { opacity: .9; }
  }

  /* AMB-3: full-card accent color pulse, twice per loop */
  .igv-amb--3 {
    background: linear-gradient(var(--ang, 135deg), var(--acc, #fff), var(--acc2, #fff));
    mix-blend-mode: soft-light;
    opacity: 0;
    animation: igvColorPulse 2000ms ease-in-out infinite;
  }
  @keyframes igvColorPulse {
    0%, 100% { opacity: 0; }
    50%      { opacity: .3; }
  }

  /* ═══ PR — promo strips (4 variants) ═════════════════════════════════════
     PR-1 / PR-2: the burned-in CTA strips become seamless running lines.
     JS moves the strip's <span> into a duplicated .igv-marquee train; a −50%
     translate over one 4000 ms loop lands on an identical frame.
     PR-2 runs the bottom strip in the opposite direction.
     PR-3: CTA pulse on the whole strip text. PR-4: static (no motion). */

  html[data-video="1"] #ig-card.igv-pr-1 .promo-strip,
  html[data-video="1"] #ig-card.igv-pr-2 .promo-strip {
    overflow: hidden;
    justify-content: flex-start;
    text-align: left;
  }
  .igv-marquee {
    display: inline-flex;
    align-items: center;
    width: max-content;
    animation: igvMarquee 4000ms linear infinite;
  }
  .igv-marquee > span {
    white-space: nowrap;
    margin-right: 3em;
  }
  .igv-marquee--rev { animation-name: igvMarqueeRev; }
  @keyframes igvMarquee {
    0%   { translate: 0 0; }
    100% { translate: -50% 0; }
  }
  @keyframes igvMarqueeRev {
    0%   { translate: -50% 0; }
    100% { translate: 0 0; }
  }

  html[data-video="1"] #ig-card.igv-pr-3 .promo-strip > span {
    display: inline-block;
    animation: igvStripPulse 2000ms ease-in-out infinite;
  }
  html[data-video="1"] #ig-card.igv-pr-3 .promo-strip--bottom > span {
    animation-delay: -1000ms;
  }
  @keyframes igvStripPulse {
    0%, 100% { scale: 1;    filter: brightness(1); }
    50%      { scale: 1.045; filter: brightness(1.3); }
  }

  /* ═══ TX — typography energy (3 variants) ════════════════════════════════ */

  /* TX-1: fighter name pop, counter-phased */
  html[data-video="1"] #ig-card.igv-tx-1 .creator .cname {
    display: inline-block;
    animation: igvNamePop 2000ms ease-in-out infinite;
  }
  html[data-video="1"] #ig-card.igv-tx-1 .creator:last-of-type .cname {
    animation-delay: -1000ms;
  }
  @keyframes igvNamePop {
    0%, 100% { scale: 1; }
    50%      { scale: 1.06; }
  }

  /* TX-2: promo CTA pulse — the burned-in call to action throbs */
  html[data-video="1"] #ig-card.igv-tx-2 .promo-hl {
    display: inline-block;
    animation: igvPromoPulse 1000ms ease-in-out infinite;
  }
  @keyframes igvPromoPulse {
    0%, 100% { scale: 1;    filter: brightness(1); }
    50%      { scale: 1.07; filter: brightness(1.35); }
  }

  /* TX-3: kicker blink + date pill bob */
  html[data-video="1"] #ig-card.igv-tx-3 .kicker {
    animation: igvKicker 2000ms ease-in-out infinite;
  }
  html[data-video="1"] #ig-card.igv-tx-3 .datepill {
    animation: igvDateBob 4000ms ease-in-out infinite;
  }
  @keyframes igvKicker {
    0%, 100% { opacity: 1; }
    50%      { opacity: .55; }
  }
  @keyframes igvDateBob {
    0%, 100% { translate: 0 0; }
    50%      { translate: 0 -5px; }
  }