/* ──────────────────────────────────────────────────────────────────────────
   Bought identity, charter of 2026-10-05: the rank line, the name's colour,
   the clan tag's colour, the drawn companion, the paid tier «Мифы Кендалла»
   and the migrated goods. Loaded after game.css and profile.css so a name
   colour wins over a name effect's own colour. Every class here is set from
   an allowlist in game.js / profile.js / clans.js / shop.js.
   ────────────────────────────────────────────────────────────────────────── */

/* ── Rank: the line above the name, colour from the category file ─────── */
.fighter-rank { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 800 8px/1.15 var(--font-display); letter-spacing: .08em; text-transform: uppercase; opacity: .92; }
.pf-paid-rank { margin: 0 0 2px; font: 800 11px/1.2 var(--font-display); letter-spacing: .1em; text-transform: uppercase; opacity: .95; }
.shop-preview-rank { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 800 11px/1.2 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }
.fighter-rank.rank-legendary, .pf-paid-rank.rank-legendary, .shop-preview-rank.rank-legendary { text-shadow: 0 0 8px currentColor; }
.fighter-rank.rank-mythic, .pf-paid-rank.rank-mythic, .shop-preview-rank.rank-mythic { color: #fff1c9 !important; background: linear-gradient(90deg, #fff6d8, #e9b949, #fff, #b48cff, #e9b949, #fff6d8) 0/300% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: idMythShimmer 4s linear infinite; }
.fighter-rank.rank-mythic::before, .pf-paid-rank.rank-mythic::before { content: ""; }

/* ── Name colours (palette + mythic prism). The class sits on the name
      element itself: .fighter-name, .pf-name, .shop-preview-name. ───────── */
.namecolor-ruby { color: #ff5c7a !important; }
.namecolor-amber { color: #ffb347 !important; }
.namecolor-emerald { color: #58e39a !important; }
.namecolor-teal { color: #5cf0e0 !important; }
.namecolor-sky { color: #8fd3ff !important; }
.namecolor-azure { color: #5aa8ff !important; }
.namecolor-amethyst { color: #b88cff !important; }
.namecolor-fuchsia { color: #ff6ad9 !important; }
.namecolor-rose { color: #ff9ecb !important; }
.namecolor-silver { color: #e6e9f2 !important; }
.namecolor-graphite { color: #9aa3b5 !important; }
.namecolor-lime { color: #c6ff5a !important; }
[class*="namecolor-"] { -webkit-text-fill-color: currentColor; }
.namecolor-sunset, .namecolor-aurora, .namecolor-deep, .namecolor-lava, .namecolor-jade, .namecolor-midnight, .namecolor-sakura, .namecolor-copper,
.namecolor-neon, .namecolor-pulse, .namecolor-chameleon, .namecolor-glitch, .namecolor-fire, .namecolor-wave,
.namecolor-kendall-gold, .namecolor-platinum, .namecolor-galaxy, .namecolor-phantom, .namecolor-kendall-myth { color: #fff !important; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.namecolor-sunset { background-image: linear-gradient(90deg, #ff8a3d, #ff4fa3); }
.namecolor-aurora { background-image: linear-gradient(90deg, #5cf6a8, #4fb6ff); }
.namecolor-deep { background-image: linear-gradient(90deg, #4a64ff, #5ff0ff); }
.namecolor-lava { background-image: linear-gradient(90deg, #ff3b3b, #ffd23b); }
.namecolor-jade { background-image: linear-gradient(90deg, #3ddc84, #f1c152); }
.namecolor-midnight { background-image: linear-gradient(90deg, #a06cff, #4c8dff); }
.namecolor-sakura { background-image: linear-gradient(90deg, #ff8fc8, #fff0f6); }
.namecolor-copper { background-image: linear-gradient(90deg, #c9743a, #ffd37a); }
.namecolor-neon { background-image: linear-gradient(90deg, #5bffd6, #ff5cf0, #5bffd6) ; background-size: 200% 100%; animation: idNeonHue 3s linear infinite; }
.namecolor-pulse { background-image: linear-gradient(90deg, #ffffff, #7cf5ff); animation: idPulse 1.8s ease-in-out infinite; }
.namecolor-chameleon { background-image: linear-gradient(90deg, #ff7b7b, #ffd36b, #7bff9f, #7bd0ff, #c57bff); background-size: 400% 100%; animation: idChameleon 7s linear infinite; }
.namecolor-glitch { background-image: linear-gradient(90deg, #ff4dc8, #4bdbff); animation: idGlitch 1.6s steps(2) infinite; }
.namecolor-fire { background-image: linear-gradient(0deg, #ff4e1f, #ffd14d 60%, #fff3b0); background-size: 100% 200%; animation: idFire .9s ease-in-out infinite alternate; }
.namecolor-wave { background-image: linear-gradient(90deg, #2bd4ff, #ffffff, #2bd4ff); background-size: 200% 100%; animation: idWave 2.4s linear infinite; }
.namecolor-kendall-gold { background-image: linear-gradient(100deg, #8a5d12, #ffe08a 35%, #fff7d1 50%, #ffd45a 65%, #8a5d12); background-size: 250% 100%; animation: idSheen 3.2s ease-in-out infinite; }
.namecolor-platinum { background-image: linear-gradient(100deg, #8d93a3, #ffffff 40%, #dfe6f5 55%, #ffffff 70%, #8d93a3); background-size: 250% 100%; animation: idSheen 3.6s ease-in-out infinite; }
.namecolor-galaxy { background-image: radial-gradient(circle at 20% 40%, #fff 1px, transparent 1.6px), radial-gradient(circle at 70% 60%, #fff 1px, transparent 1.6px), linear-gradient(90deg, #6a3cff, #ff5cc8, #2bd4ff); background-size: 40px 12px, 56px 14px, 300% 100%; animation: idGalaxy 6s linear infinite; }
.namecolor-phantom { background-image: linear-gradient(90deg, #cde8ff, #ffffff); animation: idPhantom 2.6s ease-in-out infinite; }
.namecolor-kendall-myth { background-image: linear-gradient(100deg, #fff6d8, #e9b949 20%, #ffffff 40%, #b48cff 55%, #e9b949 75%, #fff6d8); background-size: 300% 100%; animation: idMythShimmer 4s linear infinite; filter: drop-shadow(0 0 4px rgba(233, 185, 73, .55)); }

/* ── Clan tag colours. The class sits on .pf-clan and .cl-hero-tag. ────── */
.clancolor-scarlet { color: #ff5c5c !important; border-color: rgba(255, 92, 92, .55) !important; }
.clancolor-gold { color: #ffd45a !important; border-color: rgba(255, 212, 90, .55) !important; }
.clancolor-emerald { color: #58e39a !important; border-color: rgba(88, 227, 154, .55) !important; }
.clancolor-azure { color: #5aa8ff !important; border-color: rgba(90, 168, 255, .55) !important; }
.clancolor-violet { color: #c08cff !important; border-color: rgba(192, 140, 255, .55) !important; }
.clancolor-silver { color: #eef1f7 !important; border-color: rgba(238, 241, 247, .5) !important; }
.clancolor-flame, .clancolor-polar, .clancolor-cosmos, .clancolor-kendall-myth { color: #fff !important; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; background-color: transparent !important; }
.clancolor-flame { background-image: linear-gradient(90deg, #ff4e1f, #ffd14d); border-color: rgba(255, 140, 60, .6) !important; }
.clancolor-polar { background-image: linear-gradient(90deg, #5cf6a8, #4fb6ff, #c08cff); background-size: 200% 100%; animation: idNeonHue 4s linear infinite; border-color: rgba(92, 246, 168, .55) !important; }
.clancolor-cosmos { background-image: linear-gradient(90deg, #6a3cff, #ff5cc8, #2bd4ff); background-size: 300% 100%; animation: idGalaxy 6s linear infinite; border-color: rgba(106, 60, 255, .6) !important; }
.clancolor-kendall-myth { background-image: linear-gradient(100deg, #fff6d8, #e9b949 25%, #fff 45%, #b48cff 60%, #e9b949 80%, #fff6d8); background-size: 300% 100%; animation: idMythShimmer 4s linear infinite; border-color: rgba(233, 185, 73, .7) !important; }

/* ── Companions: a drawn picture at the avatar that moves by grade ─────── */
.fighter-familiar.is-art { width: 30px; height: 30px; right: -12px; bottom: -10px; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.fighter-familiar-art, .pf-paid-familiar-art { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .7)); }
.pf-paid-familiar.is-art { width: 46px; height: 46px; right: -16px; bottom: -14px; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.familiar-shape-medallion { border-radius: 50%; overflow: hidden; border: 1px solid rgba(233, 185, 73, .7); box-shadow: 0 0 12px rgba(233, 185, 73, .35); background: #0b0e16; }
.familiar-shape-medallion .fighter-familiar-art, .familiar-shape-medallion .pf-paid-familiar-art { object-fit: cover; transform: scale(1.25); filter: none; }
.familiar-motion-drift { animation: idFamDrift 3.4s ease-in-out infinite; }
.familiar-motion-bob { animation: idFamBob 2.2s ease-in-out infinite; }
.familiar-motion-pulse { animation: idFamPulse 2.6s ease-in-out infinite; }
.familiar-motion-blaze { animation: idFamBlaze 2.8s ease-in-out infinite; }
.familiar-motion-blaze .fighter-familiar-art, .familiar-motion-blaze .pf-paid-familiar-art { filter: drop-shadow(0 0 6px rgba(233, 185, 73, .8)) drop-shadow(0 2px 3px rgba(0, 0, 0, .7)); }
.shop-pet-preview { display: block; width: 72%; max-width: 160px; aspect-ratio: 1; margin: 6px auto; object-fit: contain; filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .6)); }
.shop-detail-art.is-pet { object-fit: contain; background: radial-gradient(circle at 50% 60%, rgba(108, 255, 218, .12), transparent 60%), #0b0e16; }

/* ── Sample name in the shop (palette, ranks, mythic colours) ──────────── */
.shop-preview-name { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 900 clamp(15px, 4.4vw, 22px)/1.1 var(--font-display); letter-spacing: .02em; }
.shop-preview-clantag { display: inline-block; padding: 3px 8px; border: 1px solid rgba(var(--t-gold), .45); border-radius: 7px; font: 800 14px/1 var(--font-mono); color: rgb(var(--t-gold)); }
.shop-preview-identity { display: grid; place-items: center; gap: 6px; min-height: 86px; padding: 10px; }
.shop-preview-identity .shop-preview-sub { font: 600 9px/1.2 var(--font-mono); color: var(--text-faint); letter-spacing: .06em; text-transform: uppercase; }

/* ── «Мифы Кендалла»: board, army, card, backdrop, victory, entrance ───── */
.cg-board.skin-kendall-myth cg-board { background: repeating-conic-gradient(rgba(233, 185, 73, 0) 0 25%, rgba(233, 185, 73, .26) 0 50%) 0 0/25% 25%, url("../../assets/season/kendall_myth/myth_board.webp") center/100% 100%; box-shadow: inset 0 0 0 3px #d9b45e, inset 0 0 34px rgba(180, 140, 255, .35); }
.cg-board.skin-kendall-myth square.last-move { background-color: rgba(255, 226, 150, .42); }
.cg-board.white-pieces-kendall-myth piece.white::before, .cg-board.black-pieces-kendall-myth piece.black::before { content: none; }
.cg-board.white-pieces-kendall-myth piece.white, .cg-board.black-pieces-kendall-myth piece.black { background-size: 88% 88% !important; background-position: center; background-repeat: no-repeat; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .75)); }
.cg-board.white-pieces-kendall-myth piece.white.king { background-image: url("../../assets/season/kendall_myth/pieces/wk.webp") !important; }
.cg-board.white-pieces-kendall-myth piece.white.queen { background-image: url("../../assets/season/kendall_myth/pieces/wq.webp") !important; }
.cg-board.white-pieces-kendall-myth piece.white.rook { background-image: url("../../assets/season/kendall_myth/pieces/wr.webp") !important; }
.cg-board.white-pieces-kendall-myth piece.white.bishop { background-image: url("../../assets/season/kendall_myth/pieces/wb.webp") !important; }
.cg-board.white-pieces-kendall-myth piece.white.knight { background-image: url("../../assets/season/kendall_myth/pieces/wn.webp") !important; }
.cg-board.white-pieces-kendall-myth piece.white.pawn { background-image: url("../../assets/season/kendall_myth/pieces/wp.webp") !important; }
.cg-board.black-pieces-kendall-myth piece.black.king { background-image: url("../../assets/season/kendall_myth/pieces/bk.webp") !important; }
.cg-board.black-pieces-kendall-myth piece.black.queen { background-image: url("../../assets/season/kendall_myth/pieces/bq.webp") !important; }
.cg-board.black-pieces-kendall-myth piece.black.rook { background-image: url("../../assets/season/kendall_myth/pieces/br.webp") !important; }
.cg-board.black-pieces-kendall-myth piece.black.bishop { background-image: url("../../assets/season/kendall_myth/pieces/bb.webp") !important; }
.cg-board.black-pieces-kendall-myth piece.black.knight { background-image: url("../../assets/season/kendall_myth/pieces/bn.webp") !important; }
.cg-board.black-pieces-kendall-myth piece.black.pawn { background-image: url("../../assets/season/kendall_myth/pieces/bp.webp") !important; }
.fighter.matchcard-kendall-myth { background: linear-gradient(90deg, rgba(6, 5, 10, .86), rgba(6, 5, 10, .55)), url("../../assets/season/kendall_myth/myth_card.webp") center/cover no-repeat; border-color: rgba(233, 185, 73, .85); box-shadow: 0 0 28px rgba(233, 185, 73, .25), inset 0 0 22px rgba(180, 140, 255, .2); }
.fighter.backdrop-kendall-myth::after { background: url("../../assets/season/kendall_myth/myth_backdrop.webp") center 40%/cover no-repeat; opacity: .5; }
.pf-console.paid-backdrop-kendall-myth .pf-id-head::before { opacity: .55; background: url("../../assets/season/kendall_myth/myth_backdrop.webp") center 42%/cover no-repeat; }
.pf-console.paid-backdrop-root-prompt .pf-id-head::before { opacity: .4; background: url("../../assets/season/sudo_masquerade/profile_terminal.webp") center 45%/cover no-repeat; }
.fighter.backdrop-root-prompt::after { background: url("../../assets/season/sudo_masquerade/profile_terminal.webp") center/cover no-repeat; opacity: .35; }
.prestige-fx.has-art { display: grid; grid-auto-flow: row; place-items: center; gap: 4px; }
.prestige-fx-art { width: min(42%, 180px); aspect-ratio: 1; object-fit: contain; filter: drop-shadow(0 0 18px rgba(233, 185, 73, .6)); animation: idVictoryArt 2.6s ease both; }
.prestige-fx.victory-kendall-myth { color: #fff1c9; background: radial-gradient(circle, rgba(233, 185, 73, .45), rgba(40, 20, 70, .7) 48%, transparent 74%); text-shadow: 0 0 14px #e9b949, 0 0 30px #b48cff; }
.prestige-fx.victory-ratified, .prestige-fx.victory-organic-traffic, .prestige-fx.victory-root-crown, .prestige-fx.victory-signal-received { color: #fff6d8; background: radial-gradient(circle, rgba(60, 40, 90, .78), rgba(10, 14, 22, .65) 55%, transparent 76%); text-shadow: 0 0 12px #d9b45e; }
.fighter.entrance-kendall-myth { animation: idMythEntrance 1.9s cubic-bezier(.16, .85, .2, 1); }
.fighter.entrance-kendall-myth::before { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; border-radius: inherit; background: url("../../assets/season/kendall_myth/myth_entrance.webp") center/contain no-repeat; animation: idMythGate 1.9s ease both; }
.fighter.entrance-board-convened { filter: drop-shadow(0 0 14px rgba(217, 180, 94, .7)); }
.fighter.presence-carrier-rings, .fighter.presence-carrier { box-shadow: 0 0 0 2px rgba(104, 255, 218, .35), 0 0 26px rgba(104, 255, 218, .3); animation: idRings 3s ease-in-out infinite; }
.pf-console.paid-presence-carrier-rings .pf-avatar, .pf-console.paid-presence-carrier .pf-avatar { box-shadow: 0 0 0 3px rgba(104, 255, 218, .35), 0 0 30px rgba(104, 255, 218, .35); animation: idRings 3s ease-in-out infinite; }
.fighter.statusfx-model-collapse .fighter-paid-status, .pf-paid-status.paid-statusfx-model-collapse { animation: idCollapse 2.2s steps(2) infinite; }
.fighter.statusfx-human-verification .fighter-paid-status, .pf-paid-status.paid-statusfx-human-verification { background: linear-gradient(90deg, #f3efe4, #52dfea, #b7ff2a, #f3efe4) 0/220% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: idNeonHue 2.8s linear infinite; }
.fighter.statusfx-sudo-granted .fighter-paid-status, .pf-paid-status.paid-statusfx-sudo-granted { color: #7dffb0; text-shadow: 0 0 8px #2fdc7a; animation: idPulse 1.6s ease-in-out infinite; }
.fighter.statusfx-readonly-throne .fighter-paid-status, .pf-paid-status.paid-statusfx-readonly-throne { color: #ffe39a; text-shadow: 0 0 8px #d9b45e; letter-spacing: .12em; }
.fighter.badgefx-executive .fighter-paid-badge { color: #fff; border-color: #e9b949; background: linear-gradient(120deg, #3a2a08, #1b1430); box-shadow: 0 0 10px rgba(233, 185, 73, .5); }

/* ── The twelve Sudo Masquerade boards that sold without a rule ────────── */
.cg-board.skin-root-filesystem cg-board { background: repeating-conic-gradient(rgba(0, 0, 0, .0) 0 25%, rgba(85, 245, 157, .22) 0 50%) 0 0/25% 25%, url("../../assets/season/sudo_masquerade/board_root_filesystem.webp") center/100% 100%; box-shadow: inset 0 0 0 3px #55f59d; }
.cg-board.skin-permission-palace cg-board { background: repeating-conic-gradient(#0d1a12 0 25%, #7fc893 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 3px #d9b45e, inset 0 0 26px rgba(85, 245, 157, .3); }
.cg-board.skin-localhost-rooftop cg-board { background: repeating-conic-gradient(#121826 0 25%, #8aa0c2 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 30px rgba(255, 214, 120, .25); }
.cg-board.skin-cron-ballroom cg-board { background: repeating-conic-gradient(#1a1024 0 25%, #c99be0 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 3px #a56bff; }
.cg-board.skin-kernel-garden cg-board { background: repeating-conic-gradient(#07140d 0 25%, #4fbf77 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 36px rgba(85, 245, 157, .4); }
.cg-board.skin-merge-chamber cg-board { background: repeating-conic-gradient(#101522 0 25%, #6f87d9 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 3px #55f59d; }
.cg-board.skin-regex-maze cg-board { background: repeating-conic-gradient(#1b1710 0 25%, #d2b48c 0 50%) 0 0/25% 25%, repeating-linear-gradient(45deg, transparent 0 6px, rgba(0, 0, 0, .18) 6px 7px); }
.cg-board.skin-yaml-estate cg-board { background: repeating-conic-gradient(#14181c 0 25%, #a7b9c9 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 2px #ff9d66; }
.cg-board.skin-daemon-orchard cg-board { background: repeating-conic-gradient(#120c14 0 25%, #c46a8a 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 30px rgba(255, 92, 122, .35); }
.cg-board.skin-tty-salon cg-board { background: repeating-conic-gradient(#0b0f0b 0 25%, #8fb28f 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 3px #7dffb0; }
.cg-board.skin-sudo-balcony cg-board { background: repeating-conic-gradient(#171208 0 25%, #d1a951 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 3px #55f59d, inset 0 0 26px rgba(233, 185, 73, .3); }
.cg-board.skin-production-floor cg-board { background: repeating-conic-gradient(#0c0f14 0 25%, #5e6b7d 0 50%) 0 0/25% 25%; box-shadow: inset 0 0 0 3px #ff5c5c; }

/* ── Clan page: the mythic banner and hall ─────────────────────────────── */
.cl-hero.has-myth-clan-banner { border-color: rgba(233, 185, 73, .75); box-shadow: 0 0 30px rgba(233, 185, 73, .25); }
.cl-paid-banner-myth { opacity: .42; mix-blend-mode: normal; }
.cl-paid-hall-myth { opacity: .34; mix-blend-mode: normal; object-position: center 40%; }

@keyframes idMythShimmer { to { background-position: 300% 0; } }
@keyframes idNeonHue { to { background-position: 200% 0; } }
@keyframes idChameleon { to { background-position: 400% 0; } }
@keyframes idGalaxy { to { background-position: 40px 0, -56px 0, 300% 0; } }
@keyframes idWave { to { background-position: 200% 0; } }
@keyframes idSheen { 0%, 100% { background-position: 0 0; } 50% { background-position: 100% 0; } }
@keyframes idPulse { 50% { opacity: .55; } }
@keyframes idPhantom { 50% { opacity: .25; filter: blur(.6px); } }
@keyframes idGlitch { 50% { transform: translateX(1px); } }
@keyframes idFire { to { background-position: 0 100%; } }
@keyframes idFamDrift { 50% { transform: translateY(-3px) rotate(-3deg); } }
@keyframes idFamBob { 50% { transform: translateY(-4px) scale(1.06); } }
@keyframes idFamPulse { 50% { transform: translateY(-3px); filter: drop-shadow(0 0 8px rgba(255, 255, 255, .7)); } }
@keyframes idFamBlaze { 50% { transform: translateY(-4px) scale(1.08); filter: drop-shadow(0 0 12px rgba(233, 185, 73, 1)); } }
@keyframes idRings { 50% { box-shadow: 0 0 0 5px rgba(104, 255, 218, .15), 0 0 34px rgba(104, 255, 218, .45); } }
@keyframes idCollapse { 50% { transform: translateX(1px) skewX(-6deg); opacity: .75; } }
@keyframes idVictoryArt { 0% { opacity: 0; transform: scale(.5) translateY(10px); } 20%, 75% { opacity: 1; transform: none; } 100% { opacity: 0; transform: scale(1.1); } }
@keyframes idMythEntrance { 0% { filter: brightness(2.2) drop-shadow(0 0 22px rgba(233, 185, 73, 1)); } 100% { filter: none; } }
@keyframes idMythGate { 0% { opacity: 1; transform: scale(1.1); } 70% { opacity: .6; } 100% { opacity: 0; transform: scale(1.3); } }
@media (prefers-reduced-motion: reduce) {
  [class*="namecolor-"], [class*="clancolor-"], [class*="familiar-motion-"], .fighter-rank.rank-mythic, .pf-paid-rank.rank-mythic, .shop-preview-rank.rank-mythic,
  .fighter.presence-carrier-rings, .fighter.presence-carrier, .fighter[class*="statusfx-"] .fighter-paid-status, .pf-paid-status[class*="paid-statusfx-"], .prestige-fx-art, .fighter.entrance-kendall-myth, .fighter.entrance-kendall-myth::before { animation: none; }
}

/* ── The earned sigil as a picture: the champion ladder and the cup podium ── */
.fighter-sigil-art { width: 20px; height: 20px; flex: 0 0 auto; object-fit: contain; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .8)) drop-shadow(0 0 5px rgba(233, 185, 73, .45)); }
.fighter-sigil-art.hidden { display: none; }
.pf-sigil-art { width: 30px; height: 30px; flex: 0 0 auto; align-self: center; object-fit: contain; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .8)) drop-shadow(0 0 7px rgba(233, 185, 73, .45)); }
.pf-sigil-art.hidden { display: none; }
.gear-sigil-art { width: 22px; height: 22px; vertical-align: middle; object-fit: contain; filter: drop-shadow(0 0 5px rgba(233, 185, 73, .45)); }
.ta-ladder { border-color: rgba(233, 185, 73, .35); }
.ta-ladder-lede { font-size: 11px; line-height: 1.5; color: var(--text-soft); margin: 4px 0 8px; text-wrap: pretty; }
.ta-ladder-wins { font: 800 13px/1.2 var(--font-display); color: #ffe39a; margin-bottom: 8px; }
.ta-ladder-rungs { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 8px; }
.ta-ladder-rung { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 6px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .025); text-align: center; }
.ta-ladder-rung.is-held { border-color: rgba(233, 185, 73, .6); background: rgba(233, 185, 73, .08); }
.ta-ladder-rung.is-next { border-color: rgba(104, 255, 218, .5); box-shadow: 0 0 14px rgba(104, 255, 218, .18); }
.ta-ladder-rung.is-far { opacity: .62; }
.ta-ladder-art { width: 64px; height: 64px; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .7)); }
.ta-ladder-rung.is-far .ta-ladder-art { filter: grayscale(.7) drop-shadow(0 2px 4px rgba(0, 0, 0, .7)); }
.ta-ladder-name { font: 800 11px/1.2 var(--font-display); }
.ta-ladder-req { font: 700 9.5px/1.2 var(--font-mono); color: var(--text-faint); }
.ta-ladder-state { font: 800 9px/1.2 var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--gold); }
.ta-ladder-rung.is-next .ta-ladder-state { color: #7dffd6; }
