
@font-face {
    font-family: 'Franklin';
    src: url('../assets/fonts/franklin.ttf') format('truetype');
}

@font-face {
    font-family: 'Pedra';
    src: url('../assets/fonts/pedra.ttf') format('truetype');
}

body {
    font-family: 'Franklin', sans-serif;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
}

body.app-loading-selection .skillviewer,
body.app-loading-selection .slot-list,
body.app-loading-selection .player-card,
body.app-loading-selection .selected-character-slot-list,
body.app-loading-selection .button-container,
body.app-loading-selection .sound-controller,
body.app-loading-ingame .game-hud,
body.app-loading-ingame .player-characters,
body.app-loading-ingame .enemy-characters,
body.app-loading-ingame .skillinformation,
body.app-loading-ingame .bottomrender,
body.app-loading-ingame .bottomgame,
body.app-loading-ingame .ChakraChooseEndTurn,
body.app-loading-ingame .exchange_chakra,
body.app-loading-ingame .surrender-confirm,
body.app-loading-ingame .battle-end-overlay,
body.app-loading-ingame .class-choice-popup {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

@keyframes selection-bubble-pop {
    0% {
        opacity: 0;
        transform: scale(0.68) translateY(16px);
    }
    45% {
        opacity: 1;
        transform: scale(1.13) translateY(-7px);
    }
    65% {
        transform: scale(0.94) translateY(3px);
    }
    82% {
        transform: scale(1.04) translateY(-2px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes selection-bubble-pop-flat {
    0% {
        opacity: 0;
        transform: scale(0.68);
    }
    45% {
        opacity: 1;
        transform: scale(1.13);
    }
    65% {
        transform: scale(0.94);
    }
    82% {
        transform: scale(1.04);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes selection-bubble-pop-inverted {
    0% {
        opacity: 0;
        transform: scaleY(-1) scale(0.68);
    }
    45% {
        opacity: 1;
        transform: scaleY(-1) scale(1.13);
    }
    65% {
        transform: scaleY(-1) scale(0.94);
    }
    82% {
        transform: scaleY(-1) scale(1.04);
    }
    100% {
        opacity: 1;
        transform: scaleY(-1) scale(1);
    }
}

body:not(.app-loading-selection) .selectionscroll,
body:not(.app-loading-selection) .selectionpage,
body:not(.app-loading-selection) .player-card,
body:not(.app-loading-selection) .selected-character-slot,
body:not(.app-loading-selection) .button-container,
body:not(.app-loading-selection) .selection-mode-controls,
body:not(.app-loading-selection) .sound-controller,
body:not(.app-loading-selection) .nextpage,
body:not(.app-loading-selection) .lastpage {
    animation: selection-bubble-pop 0.62s cubic-bezier(0.18, 0.9, 0.22, 1.25) both;
}

body:not(.app-loading-selection) .selectionpage {
    animation-delay: 0.04s;
}

body:not(.app-loading-selection) .slot-item {
    animation: selection-bubble-pop-flat 0.5s cubic-bezier(0.18, 0.9, 0.22, 1.25) both;
    animation-delay: calc(var(--slot-pop-index, 0) * 22ms + 0.08s);
}

body:not(.app-loading-selection) .player-card {
    animation-delay: 0.14s;
}

body:not(.app-loading-selection) .selected-character-slot {
    animation-delay: calc(var(--selected-pop-index, 0) * 55ms + 0.18s);
}

body:not(.app-loading-selection) .button-container {
    animation-delay: 0.25s;
}

body:not(.app-loading-selection) .selection-mode-controls {
    animation-delay: 0.3s;
}

body:not(.app-loading-selection) .selected-slot-image {
    animation: selection-bubble-pop-flat 0.48s cubic-bezier(0.18, 0.9, 0.22, 1.25) both;
}

.bubble-pop-replay {
    animation: selection-bubble-pop-flat 0.48s cubic-bezier(0.18, 0.9, 0.22, 1.25) both !important;
}

.skill-image.bubble-pop-replay {
    animation: selection-bubble-pop-flat 0.48s cubic-bezier(0.18, 0.9, 0.22, 1.25) both !important;
}

@media (prefers-reduced-motion: reduce) {
    body:not(.app-loading-selection) .selectionscroll,
    body:not(.app-loading-selection) .selectionpage,
    body:not(.app-loading-selection) .player-card,
    body:not(.app-loading-selection) .selected-character-slot,
    body:not(.app-loading-selection) .button-container,
    body:not(.app-loading-selection) .selection-mode-controls,
    body:not(.app-loading-selection) .sound-controller,
    body:not(.app-loading-selection) .nextpage,
    body:not(.app-loading-selection) .lastpage,
    body:not(.app-loading-selection) .slot-item,
    body:not(.app-loading-selection) .selected-slot-image,
    body:not(.app-loading-selection) .character-portrait,
    body:not(.app-loading-selection) .skill-image,
    .searching-backdrop.visible .searchingscroll,
    .private-match-backdrop.visible .private-match-modal,
    .battle-bot-choice-popup.visible .battle-bot-choice-panel,
    .bubble-pop-replay {
        animation: none;
    }
}

@keyframes selection-scroll-unfurl {
    0% {
        opacity: 0;
        transform: scaleX(0.06);
        clip-path: inset(0 0 0 94%);
    }
    48% {
        opacity: 1;
        transform: scaleX(1.035);
        clip-path: inset(0 0 0 0);
    }
    72% {
        transform: scaleX(0.985);
    }
    100% {
        opacity: 1;
        transform: scaleX(1);
        clip-path: inset(0 0 0 0);
    }
}

@keyframes selection-scroll-content-unfurl {
    0% {
        opacity: 0;
        clip-path: inset(0 0 0 100%);
        transform: translateX(28px);
    }
    55% {
        opacity: 0.85;
    }
    100% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
        transform: translateX(0);
    }
}

@keyframes selection-scroll-ravel {
    0% {
        opacity: 1;
        transform: scaleX(1);
        clip-path: inset(0 0 0 0);
    }
    35% {
        transform: scaleX(1.025);
    }
    100% {
        opacity: 1;
        transform: scaleX(0.06);
        clip-path: inset(0 0 0 100%);
    }
}

@keyframes selection-scroll-content-ravel {
    0% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
        transform: translateX(0);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 100%);
        transform: translateX(28px);
    }
}

body.custom-game-cursor,
body.custom-game-cursor * {
    cursor: url('../assets/images/cursor.png') 0 0, auto !important;
}

body.custom-game-cursor.cursor-clicking,
body.custom-game-cursor.cursor-clicking * {
    cursor: url('../assets/images/cursor_click.png') 0 0, auto !important;
}

h1, h2, h3 {
    font-family: 'Petra', serif;
}

.background {
    background-image: url('../assets/images/selectionbg.png');
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    width: 770px;
    height: 560px;
    position: relative;
}

body.arena-mode-pokemon .background {
    background-image: var(--pokemon-selection-background, url('../assets/images/PokemonArena/newcharacterselectpics/1783126094113.png')) !important;
}

.background:fullscreen .selectionpage,
.background:-webkit-full-screen .selectionpage {
    left: calc(50% - 310px);
}

.background:fullscreen .selectionscroll,
.background:-webkit-full-screen .selectionscroll {
    left: calc(50% - 386px);
}

.sound-controller {
    position: absolute;
    left: 8px;
    top: 8px;
    right: auto;
    z-index: 7000;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 112px;
    padding: 5px 8px;
}

.mute-button, .ingame-mute-button, .effects-mute-button, .ingame-effects-mute-button, .skill-effects-toggle, .ingame-skill-effects-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-right: 8px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #c41e3a;
    font-size: 18px;
    transition: transform 0.1s ease;
}

.mute-button:active, .ingame-mute-button:active, .effects-mute-button:active, .ingame-effects-mute-button:active, .skill-effects-toggle:active, .ingame-skill-effects-toggle:active {
    transform: scale(0.9);
}

.mute-button::before, .ingame-mute-button::before {
    content: '♪';
}

.mute-button.muted::before, .ingame-mute-button.muted::before {
    content: '♪̸';
}

.effects-mute-button::before, .ingame-effects-mute-button::before {
    content: 'SFX';
    font-size: 10px;
    font-weight: 800;
}

.effects-mute-button.muted::before, .ingame-effects-mute-button.muted::before {
    content: 'SFX̸';
}

.skill-effects-toggle,
.ingame-skill-effects-toggle {
    width: 54px;
}

.skill-effects-toggle::before,
.ingame-skill-effects-toggle::before {
    content: 'SKILL FX';
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1;
}

.skill-effects-toggle.muted::before,
.ingame-skill-effects-toggle.muted::before {
    content: 'FX OFF';
}

body.skill-effects-muted .skill-cast-projectile,
body.skill-effects-muted .status-apply-burst,
body.skill-effects-muted .combat-energy-beam,
body.skill-effects-muted .damage-impact,
body.skill-effects-muted .heal-impact,
body.skill-effects-muted .storm-lightning-strike-enhanced,
body.skill-effects-muted .storm-wind-gust-enhanced,
body.skill-effects-muted .blood-splatter-enhanced,
body.skill-effects-muted .explosion-enhanced,
body.skill-effects-muted .muzzle-flash-enhanced,
body.skill-effects-muted .pixel-impact-fx,
body.skill-effects-muted .pixel-portal-fx,
body.skill-effects-muted .pixel-status-fx,
body.skill-effects-muted .targeting-alert-enhanced,
body.skill-effects-muted .energy-charge-enhanced,
body.skill-effects-muted .superman-solar-flare-screen-fx,
body.skill-effects-muted .andrea-sniper-board-fx,
body.skill-effects-muted .bullet-hole-impact-fx,
body.skill-effects-muted .negan-lucille-swing-fx,
body.skill-effects-muted .knife-wound-fx,
body.skill-effects-muted .aquaman-tidal-wave-screen-fx,
body.skill-effects-muted .aquaman-sea-shark-projectile,
body.skill-effects-muted .aquaman-sea-shark-splash,
body.skill-effects-muted .storm-lightning-fx,
body.skill-effects-muted .storm-wind-fx,
body.skill-effects-muted .superman-frost-impact-fx,
body.skill-effects-muted .smartgun-lock-cast-fx,
body.skill-effects-muted .predator-bleeder-spear-projectile,
body.skill-effects-muted .carnage-blood-tendril,
body.skill-effects-muted .carnage-blood-slash-impact-fx,
body.skill-effects-muted .carnage-wide-cut-impact-fx,
body.skill-effects-muted .carnage-brain-devour-impact-fx,
body.skill-effects-muted .flash-red-speed-aura,
body.skill-effects-muted .flash-lightning-rush-hit-fx,
body.skill-effects-muted .flash-infinite-run-screen-fx,
body.skill-effects-muted .flash-infinite-punch-impact-fx,
body.skill-effects-muted .flash-speed-steal-cast-fx,
body.skill-effects-muted .flash-speed-steal-pressure-fx,
body.skill-effects-muted .scorpion-tail-sting-fx,
body.skill-effects-muted .scorpion-tail-laser-beam,
body.skill-effects-muted .scorpion-tail-laser-impact-fx,
body.skill-effects-muted .scorpion-tail-ready-fx,
body.skill-effects-muted .venom-bite-crunch-fx,
body.skill-effects-muted .venom-symbiote-tendril,
body.skill-effects-muted .venom-tendril-latch-fx,
body.skill-effects-muted .venom-web-cocoon-fx,
body.skill-effects-muted .ghost-rider-skull-surge,
body.skill-effects-muted .ghost-rider-hellfire-breath,
body.skill-effects-muted .ghost-rider-hellfire-breath-move,
body.skill-effects-muted .ghost-rider-hellfire-aura,
body.skill-effects-muted .ghost-rider-chainsaw-slice,
body.skill-effects-muted .ghost-rider-infernal-ride-cast,
body.skill-effects-muted .ghost-rider-infernal-ride-impact,
body.skill-effects-muted .negan-iron-slam-fx,
body.skill-effects-muted .negan-iron-rip-away-fx,
body.skill-effects-muted .xenomorph-facehugger-overlay,
body.skill-effects-muted .venom-ally-symbiosis-marker,
body.skill-effects-muted .negan-iron-overlay,
body.skill-effects-muted .negan-iron-glow,
body.skill-effects-muted .negan-iron-steam,
body.skill-effects-muted .negan-iron-smoke,
body.skill-effects-muted .parasite-drain-tendril,
body.skill-effects-muted .parasite-life-leech-enemy-fx,
body.skill-effects-muted .parasite-life-leech-ally-fx,
body.skill-effects-muted .parasite-metabolic-collapse-fx,
body.skill-effects-muted .parasite-metabolic-screen-flash,
body.skill-effects-muted .parasite-energy-transfer-fx,
body.skill-effects-muted .parasite-host-mutation-cast-fx,
body.skill-effects-muted .parasite-overload-screen-fx,
body.skill-effects-muted .pokemon-evolution-aura,
body.skill-effects-muted .pokemon-solar-beam-charge-fx,
body.skill-effects-muted .pokemon-solar-beam-travel,
body.skill-effects-muted .pokemon-solar-beam-impact-fx,
body.skill-effects-muted .pokemon-thunder-impact-fx,
body.skill-effects-muted .pokemon-flamethrower-stream,
body.skill-effects-muted .pokemon-flamethrower-impact-fx,
body.skill-effects-muted .pokemon-water-gun-stream,
body.skill-effects-muted .pokemon-water-gun-impact-fx,
body.skill-effects-muted .pokemon-leech-seed-vine,
body.skill-effects-muted .pokemon-leech-seed-impact-fx,
body.skill-effects-muted .pokemon-supersonic-fx,
body.skill-effects-muted .pokemon-future-sight-fx,
body.skill-effects-muted .pokemon-x-cutter-fx,
body.skill-effects-muted .pokemon-center-healing-fx,
body.skill-effects-muted .pokemon-smog-fx,
body.skill-effects-muted .pokemon-koffing-team-fog-fx,
body.skill-effects-muted .pokemon-koffing-screen-explosion-fx,
body.skill-effects-muted .pokemon-ekans-poison-fang-fx,
body.skill-effects-muted .pokemon-ekans-toxic-stream,
body.skill-effects-muted .pokemon-ekans-toxic-impact-fx,
body.skill-effects-muted .pokemon-ekans-toxic-status,
body.skill-effects-muted .pokemon-ekans-shed-skin-fx,
body.skill-effects-muted .pokemon-ekans-crunch-fx,
body.skill-effects-muted .pokemon-machop-brick-break-fx,
body.skill-effects-muted .pokemon-machop-counter-fx,
body.skill-effects-muted .pokemon-machop-bulk-up-cast-fx,
body.skill-effects-muted .pokemon-machop-bulk-up-status,
body.skill-effects-muted .pokemon-machop-taunt-fx,
body.skill-effects-muted .pokemon-psybeam-stream,
body.skill-effects-muted .pokemon-psybeam-impact-fx,
body.skill-effects-muted .pokemon-powder-stream,
body.skill-effects-muted .pokemon-powder-impact-fx,
body.skill-effects-muted .pokemon-whirlwind-fx,
body.skill-effects-muted .pokemon-trainer-ball-projectile,
body.skill-effects-muted .pokemon-trainer-ball-impact-fx,
body.skill-effects-muted .pokemon-x-stats-fx,
body.skill-effects-muted .pokemon-rare-candy-fx,
body.skill-effects-muted .pokemon-psychic-stream,
body.skill-effects-muted .pokemon-psychic-impact-fx,
body.skill-effects-muted .pokemon-calm-mind-fx,
body.skill-effects-muted .pokemon-teleport-fx,
body.skill-effects-muted .pokemon-leech-life-stream,
body.skill-effects-muted .pokemon-leech-life-impact-fx,
body.skill-effects-muted .pokemon-bite-fx,
body.skill-effects-muted .storm-rain-weather::before,
body.skill-effects-muted .storm-hail-weather::before {
    display: none !important;
    animation: none !important;
}

.sound-volume {
    order: -1;
    flex: 0 0 100%;
    width: 88px;
    margin-bottom: 4px;
    accent-color: #c41e3a;
}

.ingame-sound-controller {
    position: absolute;
    top: 525px;
    left: 40px;
    z-index: 7000;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 5px 8px;
    width: 164px;
}

.ingame-sound-volume {
    order: -1;
    flex: 0 0 100%;
    width: 150px;
    margin-bottom: 4px;
    accent-color: #c41e3a;
}

.ingame-ui-options-toggle,
.ingame-fullscreen-toggle,
.ingame-status-reveal-toggle {
    min-height: 24px;
    border: 1px solid #000;
    background: #f8f3e4;
    padding: 3px 7px;
    font: 700 11px 'Libre Franklin', Arial, sans-serif;
    text-transform: uppercase;
    cursor: pointer;
}

.ingame-fullscreen-toggle,
.ingame-status-reveal-toggle {
    margin-left: 4px;
}

.ingame-ui-options-toggle.active,
.ingame-fullscreen-toggle.active,
.ingame-status-reveal-toggle.active {
    background: #111;
    color: #f7de9d;
}

.ingame-ui-options-panel {
    left: 170px;
    top: 28px;
}

.ingame-sound-controller .match-chat {
    position: static;
    flex: 0 0 150px;
    width: 150px;
    margin-top: 6px;
}

.ingame-sound-controller .match-chat-toggle {
    min-height: 26px;
    padding: 5px 8px;
    font-size: 12px;
}

.ingame-sound-controller .match-chat-panel {
    position: absolute;
    left: 8px;
    top: 88px;
    width: 300px;
}

.match-chat {
    position: absolute;
    right: 28px;
    bottom: 32px;
    z-index: 7200;
    width: 300px;
    font-family: 'Libre Franklin', Arial, sans-serif;
    color: #111;
}

.match-chat-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #000;
    background: #f8f3e4;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.45);
    padding: 7px 10px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.match-chat-unread {
    display: none;
    min-width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #b61313;
    color: #fff;
    font-size: 11px;
    line-height: 18px;
    text-align: center;
}

.match-chat.has-unread.collapsed .match-chat-unread {
    display: inline-block;
}

.match-chat-panel {
    margin-top: 6px;
    border: 1px solid #000;
    background: rgba(244, 239, 224, 0.96);
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.45);
    padding: 8px;
}

.match-chat-tools {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 6px;
}

.match-chat-mute {
    border: 1px solid #000;
    background: #fff;
    padding: 4px 8px;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.match-chat-mute.muted {
    background: #ece0e0;
    color: #9b1212;
}

.match-chat.collapsed .match-chat-panel {
    display: none;
}

.match-chat-messages {
    height: 150px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding-right: 3px;
}

.match-chat-message {
    border: 1px solid rgba(0, 0, 0, 0.35);
    background: #fff;
    padding: 5px 6px;
    font-size: 12px;
    line-height: 1.25;
}

.match-chat-message.own {
    background: #e3f0df;
}

.match-chat-message-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 2px;
}

.match-chat-message-name {
    color: #9b1212;
    font-size: 11px;
    font-weight: 700;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.match-chat-message-time {
    color: #5d554b;
    flex: 0 0 auto;
    font-size: 10px;
}

.match-chat-emojis {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-top: 7px;
}

.match-chat-emoji {
    width: 27px;
    height: 25px;
    border: 1px solid #000;
    background: #fff;
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
}

.match-chat-form {
    display: flex;
    gap: 6px;
    margin-top: 8px;
}

.match-chat-input {
    min-width: 0;
    flex: 1 1 auto;
    border: 1px solid #000;
    padding: 6px;
    font: inherit;
    font-size: 12px;
}

.match-chat-send {
    flex: 0 0 auto;
    border: 1px solid #000;
    background: #fff;
    padding: 6px 9px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.match-chat-status {
    min-height: 14px;
    margin: 5px 0 0;
    color: #9b1212;
    font-size: 11px;
}

.selection-missions {
    position: absolute;
    left: 28px;
    top: 228px;
    z-index: 9300;
    width: 640px;
    font-family: 'Libre Franklin', Arial, sans-serif;
    color: #111;
    pointer-events: none;
}

.selection-missions-toggle.active {
    background: #111;
    color: #f7de9d;
}

.roster-filter-tab.selection-missions-toggle {
    min-width: 52px;
    padding-left: 4px;
    padding-right: 4px;
    font-size: 9px;
}

.arena-mode-switch {
    display: flex;
    gap: 5px;
    justify-content: center;
    align-items: center;
    margin-bottom: 6px;
}

.arena-mode-button {
    min-height: 24px;
    border: 2px solid #1b120b;
    background: #f1d79b;
    color: #1b120b;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.72);
    padding: 3px 8px;
    cursor: pointer;
    font: 700 10px 'Franklin', Arial, sans-serif;
    text-transform: uppercase;
}

.arena-mode-button.active {
    background: #111;
    color: #f7de9d;
}

.selection-missions-panel {
    position: absolute;
    right: 0;
    bottom: 48px;
    width: 340px;
    border: 1px solid #000;
    background: rgba(244, 239, 224, 0.96);
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.45);
    padding: 8px;
    pointer-events: auto;
}

.selection-missions.collapsed .selection-missions-panel {
    display: none;
}

.selection-missions-list {
    max-height: 280px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding-right: 3px;
}

.selection-mission-card {
    border: 1px solid rgba(0, 0, 0, 0.45);
    background: #fff;
    padding: 7px;
    font-size: 12px;
    line-height: 1.3;
}

.selection-section-title {
    margin: 4px 0 0;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #523520;
}

.selection-unlock-wallet {
    border: 1px solid #1f160d;
    background: linear-gradient(135deg, #1f160d, #55351a);
    color: #f7de9d;
    padding: 8px;
    font-size: 12px;
    line-height: 1.3;
    box-shadow: inset 0 0 0 1px rgba(247, 222, 157, 0.32);
}

.selection-unlock-wallet strong,
.selection-unlock-wallet span {
    display: block;
}

.selection-unlock-wallet span {
    margin-top: 3px;
    color: #f8ead0;
    font-size: 11px;
}

.selection-mission-head {
    display: flex;
    gap: 8px;
    align-items: center;
}

.selection-mission-image {
    width: 42px;
    height: 42px;
    object-fit: cover;
    border: 1px solid #000;
    background: #ddd;
    flex: 0 0 auto;
}

.selection-mission-title {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #9b1212;
}

.selection-mission-reward,
.selection-mission-progress {
    margin: 4px 0 0;
}

.selection-mission-progress {
    color: #443b34;
    font-size: 11px;
}

.selection-mission-buy {
    margin-top: 7px;
    border-top: 1px dashed rgba(0, 0, 0, 0.28);
    padding-top: 7px;
    color: #2b2118;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.selection-mission-action {
    margin-top: 7px;
    border: 1px solid #000;
    background: #f1e2bd;
    padding: 6px 9px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.selection-mission-action:disabled {
    opacity: 0.55;
    cursor: default;
}

.selection-mission-buy-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    white-space: nowrap;
}

.selection-mission-eevee-choices {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.selection-missions-status {
    min-height: 14px;
    margin: 6px 0 0;
    color: #9b1212;
    font-size: 11px;
}

.login {
        background-image: url('../assets/images/loginscroll.png');
            width: 391px;
    height: 290px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.logintext {
    font-family: 'Franklin';
    font-size: 16px;
    position: absolute;
    top: 25px;
    left: 50px;
    text-align: center;
    width: 300px;
    left: 18%;
}

.login-form {
    position: absolute;
    top: 100px;
    left: 45px;
    width: 300px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-wrap: wrap;
    gap: 10px;
}

.login-form input {
    width: 170px;
    height: 20px;
}

.password-input {
    left: -1px;
    position: relative;
}

.ok-button {
    background-color: #fbe9b800;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    min-width: 88px;
    width: auto;
    padding: 0 10px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
    cursor: pointer;
}


.ok-buttonendturn {
    position: absolute;
    top: 230px;
    left: 120px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.cancel-buttonendturn {
    position: absolute;
    top: 230px;
    left: 230px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.end-turn-status {
    position: absolute;
    top: 212px;
    left: 0;
    width: 391px;
    min-height: 14px;
    margin: 0;
    color: #9b1212;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0.02em;
}

.end-turn-status.is-info {
    color: #7a4b00;
}



.ok-button:focus {
    outline: none;
}

.ok-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.login-status {
    flex-basis: 100%;
    font-size: 16px;
    color: #c41e3a;
    min-height: 18px;
    margin-top: 6px;
    text-align: center
}

.login-status[data-variant="info"] {
    color: #333333;
}

.login-status[data-variant="success"] {
    color: #0f8a1f;
}

.selectionscroll {
    background-image: url('../assets/images/selectionscroll.png');
    width: 46px;
    height: 239px;
    position: absolute;
    left: 3%;
    top: 55%;
        z-index: 2;
}

body.arena-mode-pokemon .selectionscroll {
    content: url('../assets/images/PokemonArena/selectionscroll-pokeball.png');
}

.selectionpage {
    background-image: url('../assets/images/selectionpage.png');
    width: 697px;
    height: 222px;
    position: absolute;
    left: 7%;
    top: 56.5%;
    z-index: 1;
}

.slot-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(7, 50px);
    gap: 10px;
    left: 5.5%;
    top: 11.5%;
    position: relative;
    z-index: 2;
}

.roster-filter-panel {
    position: absolute;
    left: 28px;
    top: 228px;
    width: 640px;
    min-height: 42px;
    z-index: 4;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 145px;
    gap: 5px 8px;
    align-items: center;
    font-family: 'Franklin', Arial, sans-serif;
    text-transform: uppercase;
    color: #1b120b;
}

.roster-filter-panel.options-panel-open {
    z-index: 9500;
}

.roster-filter-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.roster-filter-tab,
.roster-filter-select {
    border: 2px solid #1b120b;
    background: #f1d79b;
    color: #1b120b;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.72);
    font: 700 10px 'Franklin', Arial, sans-serif;
    text-transform: uppercase;
}

.roster-filter-tab {
    min-height: 20px;
    padding: 2px 6px;
    cursor: pointer;
}

.roster-filter-tab.active {
    background: #111;
    color: #f7de9d;
}

.roster-filter-tab.ui-options-toggle.active,
.roster-filter-tab.selection-fullscreen-toggle.active {
    background: #111;
    color: #f7de9d;
}

.roster-filter-select {
    width: 145px;
    min-height: 27px;
    padding: 2px 5px;
}

.roster-filter-status {
    grid-column: 1 / -1;
    min-height: 12px;
    font-size: 10px;
    font-weight: 700;
    color: #4e3624;
}

.ui-options-panel {
    position: absolute;
    z-index: 9400;
    width: 238px;
    border: 2px solid #1b120b;
    background: rgba(244, 239, 224, 0.98);
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.58);
    padding: 8px;
    font: 700 11px 'Libre Franklin', Arial, sans-serif;
    color: #1b120b;
    text-transform: none;
}

.ui-options-panel[hidden] {
    display: none;
}

.selection-ui-options-panel {
    right: 0;
    bottom: 48px;
}

.ui-options-panel label {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 25px;
    border-bottom: 1px solid rgba(27, 18, 11, 0.18);
    cursor: pointer;
}

.ui-options-panel label:last-child {
    border-bottom: 0;
}

.ui-options-panel input {
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: #9b1212;
}

.slot-item {
    width: 50px;
    height: 50px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    box-sizing: border-box;
    cursor: grab;
    user-select: none;
    touch-action: none;
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.slot-item::before {
    content: attr(data-character-initial);
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #fffdf2, #d9d4c5);
    color: #5d1d22;
    font: 800 22px 'Libre Franklin', Arial, sans-serif;
    pointer-events: none;
}

.slot-item.slot-locked,
.slot-image.slot-locked {
    opacity: 0.6;
}

.slot-item.slot-locked {
    cursor: not-allowed;
}

.slot-image.slot-locked {
    cursor: not-allowed;
}

.slot-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    cursor: grab;
    user-select: none;
    touch-action: none;
    position: relative;
    z-index: 1;
    pointer-events: none;
    background: transparent;
}

.slot-image.load-failed {
    visibility: hidden;
}

.slot-image.drag-hidden,
.selected-slot-image.drag-hidden,
.drag-hidden {
    visibility: hidden;
}

.selection-drag-image {
    position: fixed;
    z-index: 5000;
    pointer-events: none;
    object-fit: cover;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.45);
    transform: scale(1.08);
}

.player-card {
    display: flex;
    box-sizing: border-box;
    color: #000000;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 12px;
    padding: 5px;
    width: 210px;
    left: 475px;
    top: 85px;
    bottom: auto;
    position: absolute;
    text-transform: uppercase;
    z-index: 5;
}


.player-avatar {
    width: 75px;
    height: 75px;
    border: 1px solid #000000;
    margin-right: 10px;
}

.player-info {
    display: flex;
    flex-direction: column;
    position:relative;
        max-width: 183px;
      min-width: 183px;
    left: -66px;
        align-items: flex-end;
}

.player-inforight {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position:relative;
    left: -4px;
    top: 1px;
}


.player-stat {
    margin-bottom: 2px;
}

.selected-character-slot-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 10px;
    position: relative;
    z-index: 3;
}

.selected-character-slot {
    width: 50px;
    height: 50px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Pedra', Arial, sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #262834;
    position: relative;
    bottom: 140px;
    left: 480px;
    cursor: pointer;
    transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.selected-character-slot.drag-over {
    box-shadow: 0 0 0 2px #c41e3a inset, 0 0 6px rgba(0, 0, 0, 0.3);
    transform: translateY(-2px);
}

.selected-slot-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.selected-slot-placeholder-image {
    width: 72%;
    height: 72%;
    object-fit: contain;
    display: block;
    pointer-events: none;
}

.button-container {
    display: flex;
    gap: 15px;
    align-items: center;
    position: absolute;
    left: -50px;
    top: -70px;
    width: max-content;
    z-index: 5;
}

.selection-team-status {
    min-height: 16px;
    margin: 8px 0 0;
    color: #7a4b00;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.selection-mode-controls {
    position: absolute;
    right: 18px;
    bottom: 504px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    z-index: 1500;
}

.battle-bot-check-wrap,
.draft-mode-check-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.battle-bot-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px 4px 6px;
    border: 1px solid #000;
    background: linear-gradient(180deg, #ffffff 0%, #dedede 100%);
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.35);
    cursor: pointer;
    font-family: 'Libre Franklin', Arial, sans-serif;
    text-transform: uppercase;
    color: #000;
    min-width: 108px;
    transform: skew(-10deg);
    transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}

.battle-bot-check-box {
    width: 14px;
    height: 14px;
    border: 1px solid #000;
    background: #fff;
    position: relative;
    flex: 0 0 14px;
}

.battle-bot-check.enabled .battle-bot-check-box::after {
    content: '';
    position: absolute;
    left: 3px;
    top: -1px;
    width: 6px;
    height: 10px;
    border-right: 2px solid #167a28;
    border-bottom: 2px solid #167a28;
    transform: rotate(40deg);
}

.battle-bot-check-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.battle-bot-check.enabled .battle-bot-check-label {
    color: #167a28;
}

.battle-bot-check.disabled .battle-bot-check-label {
    color: #8a1616;
}

.battle-bot-check:hover {
    transform: translateY(-1px);
}

.battle-bot-check:active {
    transform: translateY(1px);
    box-shadow: 0 1px 0 #000;
}

.battle-bot-check-status {
    min-height: 15px;
    margin: 0;
    font-size: 11px;
    font-family: 'Libre Franklin', Arial, sans-serif;
    color: #6a180e;
    text-align: center;
}

.draft-mode-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px 4px 6px;
    border: 1px solid #000;
    background: linear-gradient(180deg, #ffffff 0%, #dedede 100%);
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.35);
    cursor: pointer;
    font-family: 'Libre Franklin', Arial, sans-serif;
    text-transform: uppercase;
    color: #000;
    min-width: 142px;
    transform: skew(-10deg);
}

.draft-mode-check-box {
    width: 14px;
    height: 14px;
    border: 1px solid #000;
    background: #fff;
    position: relative;
    flex: 0 0 14px;
}

.draft-mode-check.enabled .draft-mode-check-box::after {
    content: '';
    position: absolute;
    left: 3px;
    top: -1px;
    width: 6px;
    height: 10px;
    border-right: 2px solid #167a28;
    border-bottom: 2px solid #167a28;
    transform: rotate(40deg);
}

.draft-mode-check-label {
    font-size: 12px;
    font-weight: 700;
}

.draft-mode-check-status {
    width: 190px;
    min-height: 15px;
    margin: 0;
    font-size: 10px;
    line-height: 1.2;
    font-family: 'Libre Franklin', Arial, sans-serif;
    color: #6a180e;
    text-align: center;
}

.private-draft-note {
    position: absolute;
    left: 50%;
    bottom: 62px;
    width: 210px;
    transform: translateX(-50%);
    color: #6a180e;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
    pointer-events: none;
    text-align: center;
    text-transform: uppercase;
}

.draft-backdrop {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.78);
    z-index: 5000;
}

.draft-backdrop.visible {
    display: flex;
}

.draft-modal {
    width: min(760px, calc(100vw - 28px));
    max-height: min(720px, calc(100vh - 28px));
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #e8e4d7;
    border: 2px solid #000;
    box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.55);
    padding: 14px;
    font-family: 'Libre Franklin', Arial, sans-serif;
}

.draft-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.draft-title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    text-transform: uppercase;
}

.draft-subtitle,
.draft-instruction,
.draft-status {
    margin: 0;
    font-size: 13px;
}

.draft-timer {
    min-width: 58px;
    padding: 6px 8px;
    border: 1px solid #000;
    background: #fff;
    text-align: center;
    font-size: 24px;
    font-weight: 700;
}

.draft-selected-row {
    min-height: 44px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.draft-selected-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 180px;
    border: 1px solid #000;
    background: #fff;
    padding: 3px 6px;
    font-size: 11px;
    font-weight: 700;
}

.draft-selected-chip img {
    width: 28px;
    height: 28px;
    object-fit: cover;
}

.draft-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(66px, 1fr));
    gap: 7px;
    overflow: auto;
    padding: 2px;
}

.draft-character {
    min-height: 82px;
    border: 1px solid #000;
    background: #f7f5ee;
    cursor: pointer;
    padding: 4px;
    font: inherit;
}

.draft-character img {
    width: 48px;
    height: 48px;
    display: block;
    object-fit: cover;
    margin: 0 auto 4px;
}

.draft-character span {
    display: block;
    font-size: 10px;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.draft-character.selected {
    background: #dbeed8;
    outline: 2px solid #167a28;
}

.draft-character.banned,
.draft-character.locked {
    filter: grayscale(1);
    opacity: 0.45;
    cursor: not-allowed;
}

.draft-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.draft-submit,
.draft-cancel {
    border: 1px solid #000;
    background: #fff;
    padding: 7px 14px;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.draft-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.battle-bot-choice-popup {
    position: fixed;
    inset: 0;
    width: 770px;
    height: 560px;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.72);
    z-index: 4000;
            top: -316px;
    left: -54px;
}

.battle-bot-choice-popup.visible {
    display: flex;
}

.battle-bot-choice-panel {
    width: min(320px, calc(100vw - 24px));
    background: linear-gradient(180deg, #efefef 0%, #efefef 100%);
    border: 1px solid #000;
    padding: 14px 16px 16px;
    text-align: center;
}

.battle-bot-choice-title {
    margin: 0 0 8px;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: #000;
}

.battle-bot-choice-copy {
    margin: 0 0 14px;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: #1f1b14;
}

.battle-bot-choice-options {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.battle-bot-choice-option,
.battle-bot-choice-close {
    border: 1px solid #000;
    background: #fefefe;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    padding: 6px 12px;
}

.battle-bot-choice-option:hover,
.battle-bot-choice-close:hover {
    background: #efefef;
}

.game-button {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    bottom: auto;
    right: auto;
    position: relative;
}

.game-button img {
    display: block;
    width: 192px;
    height: 57px;
}

.logout-button img{
        display: block;
    width: 118px;
    height: 57px;
}

.game-button:hover {
    opacity: 0.9;
}

.game-button:active {
    opacity: 0.8;
}

.skillviewer {
    position: absolute;
    bottom: 280px;
    left: 80px;
    transition: transform 0.58s cubic-bezier(0.42, 0, 0.2, 1), opacity 0.58s ease;
    transform-origin: right center;
}

body.arena-mode-pokemon .skillviewer::before,
body.arena-mode-pokemon .skillviewer::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 3;
}

body.arena-mode-pokemon .skillviewer::before {
    left: 517px;
    top: 74px;
    width: 82px;
    height: 82px;
    border-radius: 999px;
    background: #fffdf7;
    box-shadow: 0 0 0 3px #fffdf7;
}

body.arena-mode-pokemon .skillviewer::after {
    left: 522px;
    top: 79px;
    width: 72px;
    height: 72px;
    background: url('../assets/images/PokemonArena/found-pokeball.png') center / contain no-repeat;
}

.skillscroll {
    z-index: 2;
    position: relative;
    left: 520px;
    cursor: pointer;
    transition: transform 0.58s cubic-bezier(0.42, 0, 0.2, 1);
}

.skillpage {
    background-image: url('../assets/images/skillpage.png');
    width: 530px;
    height: 222px;
    position: absolute;
    z-index: 1;
    top: 9px;
    left: 10px;
    overflow: hidden;
    transform-origin: right center;
    transition:
        clip-path 0.58s cubic-bezier(0.42, 0, 0.2, 1),
        opacity 0.36s ease,
        transform 0.58s cubic-bezier(0.42, 0, 0.2, 1);
}

.skillviewer:not(.collapsed) .skillpage {
    animation: selection-scroll-unfurl 0.68s cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.skillviewer:not(.collapsed) .skill-card {
    animation: selection-scroll-content-unfurl 0.58s ease both;
    animation-delay: 0.12s;
}

.skillviewer.raveling {
    transform: translateX(-210px);
    opacity: 1;
    pointer-events: none;
}

.skillviewer.raveling .skillscroll {
    transform: translateX(-290px) rotate(-10deg) scaleX(0.76);
}

.skillviewer.raveling .skillpage {
    animation: selection-scroll-ravel 0.62s cubic-bezier(0.42, 0, 0.2, 1) both;
}

.skillviewer.raveling .skill-card {
    animation: selection-scroll-content-ravel 0.45s ease both;
}

.skillviewer.collapsed {
    transform: translateX(-210px);
    opacity: 0;
    pointer-events: none;
}

.skillviewer.collapsed .skillscroll {
    transform: translateX(-290px) rotate(-10deg) scaleX(0.76);
}

.skillviewer.collapsed .skillpage {
    clip-path: inset(0 0 0 100%);
    transform: scaleX(0.06);
    opacity: 0;
}

.skill-card {
    font-family: 'Franklin', Arial, sans-serif;
    position: relative;
    top: 12px;
    left: 30px;
    width: 460px;
}

.skill-header {
    display: flex;
    gap: 10px;
    margin-bottom: 8px;
}

.character-info {
    display: flex;
    flex-direction: column;
}

.character-title-line {
    display: flex;
    align-items: baseline;
    gap: 8px;
    width: 300px;
    min-height: 19px;
    margin-bottom: 5px;
}

.character-name {
    color: #ca1414;
    flex: 0 1 auto;
    font-size: 16px;
    margin-bottom: 0;
    max-width: 180px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.character-role {
    color: #ca1414;
    flex: 1 1 auto;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.character-portrait {
    width: 75px;
    height: 75px;
    border: 1px solid #000;
    transition: opacity 90ms ease;
}

.skill-images {
    display: flex;
    gap: 8px;
    top: 0px;
    position: relative;
    margin-left: -182px;
    max-width: 332px;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    padding-bottom: 2px;
    scrollbar-width: thin;
    scrollbar-color: rgba(45, 21, 7, 0.65) transparent;
    transform: scaleY(-1);
}

.skill-images > * {
    transform: scaleY(-1);
}

.skill-images::-webkit-scrollbar {
    height: 6px;
}

.skill-images::-webkit-scrollbar-track {
    background: transparent;
}

.skill-images::-webkit-scrollbar-thumb {
    background: rgba(45, 21, 7, 0.65);
    border-radius: 999px;
}

.skill-images::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
}

.skill-image {
    width: 75px;
    height: 75px;
    border: 1px solid #000;
    transition: opacity 90ms ease;
}

.character-portrait.is-loading,
.skill-image.is-loading {
    opacity: 0;
}

.character-portrait.load-failed,
.skill-image.load-failed {
    opacity: 0.28;
}

.skill-title-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.skill-name {
    font-size: 16px;
    color: #c41e3a;
    text-transform: uppercase;
}

.energy-bar {
    display: flex;
    align-items: center;
    gap: 5px;
}

.energy-label {
    font-size: 10px;
        color: #666;
    text-transform: uppercase;
}

.energy-pip {
    width: 8px;
    height: 8px;
    border: 1px solid #000;
    background-color: #fff;
    margin-left: -1px;
}

.energy-pip.filled {
    background-color: #00a651;
}

.energy-pip.filled.energy-ninjutsu {
    background-color: #56b0ff;
}

body.arena-mode-pokemon .energy-pip.filled.energy-ninjutsu {
    background-color: #3498db;
}

.energy-pip.filled.energy-bloodline {
    background-color: #e74c3c;
}

body.arena-mode-pokemon .energy-pip.filled.energy-bloodline {
    background-color: #e74c3c;
}

.energy-pip.filled.energy-random {
    background-color: #000000;
}

.energy-pip.filled.energy-genjutsu {
    background-color: #ffffff;
}

body.arena-mode-pokemon .energy-pip.filled.energy-genjutsu {
    background-color: #e0b100;
}

.energy-pip.filled.energy-taijutsu {
    background-color: #0fec7a;
}

body.arena-mode-pokemon .energy-pip.filled.energy-taijutsu {
    background-color: #4caf50;
}

.skill-description {
    font-size: 12px;
    height: 60px;
    margin-toP: -7px;
    text-transform: uppercase;
    overflow: auto;
}

.skill-footer {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    justify-content: space-between;
    font-size: 10px;
    line-height: 12px;
    text-transform: uppercase;
}

.skill-classes {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 3px 5px;
    min-width: 0;
}

.classes-label,
.cooldown-label {
        color: #666;
}

.class-type {
    color: #666;
    margin-left: 0;
}

.skill-cooldown {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 5px;
}

.cooldown-value {
    color: #666;
}

.cooldown-icon {
    width: 16px;
    height: 16px;
}

.hidden {
    display: none !important;
}

.searching-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 6000;
    display: none;
    align-items: center;
    justify-content: center;
        width: 770px;
    height: 560px;
        top: -316px;
    left: -54px;
}

.searching-backdrop.visible {
    display: flex;
}

.private-match-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 6000;
    display: none;
    align-items: center;
    justify-content: center;
    width: 770px;
    height: 560px;
        top: -316px;
    left: -54px;
}

.private-match-backdrop.visible {
    display: flex;
}

.private-match-modal {
    background: url("../assets/images/searchingscroll.png") no-repeat;
    width: 391px;
    height: 290px;
    position: relative;
    top: -30px;
    left: -10px;
    z-index: 6;
}

.private-match-title {
    margin-top: 50px;
    margin-left: 125px;
    width: 200px;
    text-align: center;
}

.private-match-input {
    position: absolute;
    top: 120px;
    left: 120px;
    width: 200px;
    height: 24px;
    padding: 2px 6px;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 14px;
    text-transform: none;
    box-sizing: border-box;
    text-align: center;
}

.private-match-error {
    position: absolute;
    top: 136px;
    left: 48px;
    width: 295px;
    min-height: 18px;
    margin: 0;
    color: #c41e3a;
    font-size: 12px;
    text-align: center;
    text-transform: none;
}

.private-match-ok,
.private-match-cancel {
    position: absolute;
    top: 215px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.private-match-ok {
    left: 120px;
}

.private-match-cancel {
    left: 230px;
}

.searchingscroll {
    background: url("../assets/images/searchingscroll.png") no-repeat;
    width: 391px;
    height: 290px;
    position: relative;
    top: -30px;
    left: -10px;
    z-index: 6;
}

body.arena-mode-pokemon .searchingscroll::before,
body.arena-mode-pokemon .searchingscroll::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 7;
}

body.arena-mode-pokemon .searchingscroll::before {
    left: 3px;
    top: 113px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #fffdf7;
}

body.arena-mode-pokemon .searchingscroll::after {
    left: 6px;
    top: 116px;
    width: 50px;
    height: 50px;
    background: url('../assets/images/PokemonArena/found-pokeball.png') center / contain no-repeat;
}

.searching {
    margin-top: 50px;
    margin-left: 125px;
    width: 200px;
    text-align: center;
}

.sasukesearch {
    visibility: hidden;
}

.sharingan {
    position: absolute;
    margin-top: 30px;
    margin-left: 188px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
.cancel-button {
    position: absolute;
    text-transform: uppercase;
    top: 220px;
    left: 175px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.player-infoselection {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    overflow-wrap: anywhere;
}

.backgroundingame {
    background-image: url('../assets/images/newingamebgCA.png');
    background-size: 100% 100%;
    background-position: center;
    background-repeat: no-repeat;
    width: 770px;
    height: 560px;
    position: relative;
}

.ingame-stage {
    position: relative;
    width: 770px;
    height: 560px;
    flex: 0 0 770px;
}

.backgroundingame:fullscreen,
.backgroundingame:-webkit-full-screen {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    margin: 0;
    transform: none;
    background-color: #050505;
    background-size: cover;
    overflow: hidden;
}

.battle-intro-overlay {
    position: absolute;
    inset: 0;
    z-index: 9000;
    display: none;
    pointer-events: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 18px;
    background:
        linear-gradient(180deg, rgba(22, 11, 8, 0.94), rgba(76, 17, 14, 0.9) 48%, rgba(22, 11, 8, 0.94)),
        var(--battle-intro-background-image, url('../assets/images/newingamebgCA.png')) center / cover;
    font-family: 'Pedra', 'Libre Franklin', serif;
    overflow: hidden;
}

.battle-intro-overlay.visible {
    display: flex;
    animation: battle-intro-fade-out 3000ms ease both;
}

.battle-intro-row {
    width: 650px;
    display: flex;
    align-items: center;
    gap: 18px;
}

.battle-intro-row-top {
    animation: battle-intro-top-row 760ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.battle-intro-row-bottom {
    animation: battle-intro-bottom-row 760ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
    animation-delay: 250ms;
}

.battle-intro-avatar {
    width: 64px;
    height: 64px;
    border: 2px solid #050100;
    object-fit: cover;
    background: #f0d7a5;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.55);
}

.battle-intro-team-block {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.battle-intro-name {
    color: #f7d271;
    font-size: 24px;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 2px 2px 0 #000;
}

.battle-intro-name-bottom {
    margin-top: 1px;
}

.battle-intro-team {
    display: flex;
    gap: 12px;
}

.battle-intro-character {
    width: 78px;
    text-align: center;
    opacity: 0;
    transform: scale(0.72) translateY(18px);
    animation: battle-intro-character-pop 520ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.battle-intro-character img {
    width: 74px;
    height: 74px;
    display: block;
    border: 2px solid #050100;
    object-fit: cover;
    background: #f0d7a5;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.62);
}

.battle-intro-character span {
    display: block;
    margin-top: 4px;
    color: #fff5cc;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 10px;
    line-height: 1.05;
    text-transform: uppercase;
    text-shadow: 1px 1px 0 #000;
}

.battle-intro-vs {
    color: #c41e3a;
    font-size: 70px;
    line-height: 0.9;
    text-shadow: 3px 3px 0 #000, 0 0 12px rgba(255, 212, 80, 0.78);
    opacity: 0;
    transform: scale(0.58);
    animation: battle-intro-vs-pop 700ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
    animation-delay: 1200ms;
}

.battle-intro-stats {
    position: absolute;
    right: 26px;
    top: 135px;
    width: 150px;
    display: flex;
    flex-direction: column;
    gap: 86px;
    text-transform: uppercase;
    text-align: left;
    pointer-events: none;
}

.battle-intro-stat-block {
    opacity: 0;
    transform: translateX(24px);
    animation: battle-intro-stats-pop 620ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
    animation-delay: 800ms;
}

.battle-intro-stat-label {
    color: #f7d271;
    font-family: 'Libre Franklin', Arial, sans-serif;
    font-size: 11px;
    line-height: 1;
    letter-spacing: 0;
    text-shadow: 1px 1px 0 #000;
}

.battle-intro-record,
.battle-intro-streak {
    color: #fff;
    font-size: 32px;
    line-height: 0.95;
    text-shadow: 2px 2px 0 #000;
}

.battle-intro-streak {
    margin-top: 6px;
}

.battle-intro-streak.positive {
    color: #43ef72;
}

.battle-intro-streak.negative {
    color: #ff4242;
}

.battle-intro-streak.neutral {
    color: #fff;
}

@keyframes battle-intro-top-row {
    from {
        opacity: 0;
        transform: translateX(-90px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes battle-intro-bottom-row {
    from {
        opacity: 0;
        transform: translateX(90px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes battle-intro-character-pop {
    0% {
        opacity: 0;
        transform: scale(0.72) translateY(18px);
    }
    70% {
        opacity: 1;
        transform: scale(1.08) translateY(-2px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes battle-intro-stats-pop {
    from {
        opacity: 0;
        transform: translateX(24px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes battle-intro-vs-pop {
    0% {
        opacity: 0;
        transform: scale(0.58) rotate(-7deg);
    }
    70% {
        opacity: 1;
        transform: scale(1.14) rotate(2deg);
    }
    100% {
        opacity: 1;
        transform: scale(1) rotate(0);
    }
}

@keyframes battle-intro-fade-out {
    0%, 75% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.game-hud {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 20px;
    font-family: 'Franklin', Arial, sans-serif;
    text-transform: uppercase;
    position:relative
}

.player-left {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
    left: 77px;
    top: -12px;
}

.player-info {
    display: flex;
    flex-direction: column;
}

.player-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-direction: row;
    position:relative;
    left: -68px;
    top: -12px;
            max-width: 183px;
      min-width: 183px;
    left: -61px;
}

.player-name {
    font-size: 19px;
    position: relative;
    top: 7px;
    left: 1px;
}


.player-name.red {
    color: #c41e3a;
}

.player-status {
    font-size: 16px;
    left: 2px;
    top: 6px;
    position:relative;
    color: #000;
}

.player-avatar-left,
.player-avatar-right {
    width: 48px;
    height:48px;
    border: 1px solid #000;
}

.player-avatar-left {
    left: 126px;
    position: absolute
}

.ready-section {
    text-align: center;
    top: 20px;
    left: 330px;
}

.ready-text {
    color: #000000;
    font-size: 16px;
    margin-bottom: 8px;
}

.chakra-display {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: center;
    margin-bottom: 5px;
    margin-toP: 5px;
    margin-left: 5px;
}

.chakra-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.chakra-box {
    width: 8px;
    height: 8px;
    border: 1px solid #000;
}

.chakra-box.red {
    background-color: #e74c3c;
}

body.arena-mode-pokemon .chakra-box.red {
    background-color: #e74c3c;
}

.chakra-box.blue {
    background-color: #3498db;
}

body.arena-mode-pokemon .chakra-box.blue {
    background-color: #3498db;
}

.chakra-box.green {
    background-color: #2ecc71;
}

body.arena-mode-pokemon .chakra-box.green {
    background-color: #4caf50;
}

.chakra-box.white {
    background-color: #ecf0f1;
}

body.arena-mode-pokemon .chakra-box.white {
    background-color: #e0b100;
}
.chakra-box.black {
    background-color: #000;
}

.chakra-icon {
    font-weight: bold;
    font-size: 16px;
    color: #000;
}

.chakra-count {
    font-size: 13px;
    color: #000;
}

.exchange-label {
    font-size: 12px;
    color: #000;
    position:relative;
    top: -5px;
    left: 5px;
}

.timer-track {
    width: 191px;
    height: 10px;
    background: #fff;
    border: 1px solid #000;
    margin-top: -8px;
    margin-left: 8px;
    position: relative;
    overflow: hidden;
}

.timer-bar {
    width: 191px;
    height: 100%;
    background-color: #c41e3a;
    position: absolute;
    top: 0;
    left: 0;
}

.timer-countdown {
    position: absolute;
    inset: -3px 0 0;
    z-index: 2;
    display: grid;
    place-items: center;
    color: #ffffff;
    font-family: 'Pedra', 'Libre Franklin', serif;
    font-size: 13px;
    line-height: 1;
    text-shadow: 1px 1px 0 #000, -1px -1px 0 #000;
    pointer-events: none;
}

.character-card {
    width: 75px;
    height: 92px;
    flex: 0 0 92px;
    position: relative;
    z-index: 1;
}

.character-face {
    width: 75px;
    height: 75px;
    border: 1px solid #000;
    display: block;
    position: relative;
    z-index: 8;
    pointer-events: auto;
    cursor: pointer;
}

.character-card.taunted-fx .character-face {
    border-color: #ff1f1f;
    box-shadow: 0 0 0 2px rgba(255, 234, 72, 0.95), 0 0 13px rgba(255, 31, 31, 0.92);
    animation: taunted-face-pulse 980ms ease-in-out infinite;
}

.taunt-callout {
    position: absolute;
    left: 50%;
    top: -23px;
    z-index: 46;
    min-width: 76px;
    transform: translateX(-50%);
    display: grid;
    place-items: center;
    pointer-events: none;
}

.taunt-callout span {
    display: block;
    padding: 3px 7px 2px;
    border: 2px solid #1a0b05;
    background: linear-gradient(180deg, #fff04f 0%, #ff3b22 72%, #9f0d0d 100%);
    color: #ffffff;
    font-family: 'Pedra', 'Libre Franklin', serif;
    font-size: 13px;
    line-height: 1;
    letter-spacing: 0;
    text-shadow: 1px 1px 0 #000, -1px -1px 0 #000;
    box-shadow: 0 2px 0 #000, 0 0 10px rgba(255, 55, 35, 0.82);
    animation: taunt-callout-flash 740ms steps(2, end) infinite;
}

.character-card {
    margin-left: 32px;
    margin-top: 0;
    touch-action: manipulation;
}

.target-overlay {
    position: absolute;
    top: 0;
    left: 1px;
    width: 75px;
    height: 75px;
    background: rgba(255, 215, 0, 0.32);
    border: 2px solid rgba(255, 235, 90, 0.9);
    pointer-events: none;
    animation: target-blink 1.2s ease-in-out infinite;
    box-sizing: border-box;
    z-index: 2;
}

.target-lock-marker {
    position: absolute;
    top: -4px;
    left: -3px;
    width: 83px;
    height: 83px;
    border: 2px solid rgba(255, 66, 30, 0.95);
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(255, 226, 75, 0.65), 0 0 12px rgba(255, 66, 30, 0.75);
    pointer-events: none;
    z-index: 3;
    animation: target-lock-pulse 760ms ease-out both;
}

.character-card.blind-random-target .target-overlay {
    background: rgba(116, 78, 255, 0.24);
    border-color: rgba(177, 142, 255, 0.95);
}

.target-lock-marker.blind-random-target {
    border-style: dashed;
    border-color: rgba(177, 142, 255, 0.98);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45), 0 0 15px rgba(177, 142, 255, 0.85);
}

.target-lock-marker.blind-random-target::after {
    content: "?";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    color: #ffffff;
    font-family: 'Pedra', 'Libre Franklin', serif;
    font-size: 42px;
    line-height: 1;
    text-shadow: 1px 1px 0 #000, -1px -1px 0 #000;
}

.skilltooltipimage.blind-potential-skill-icon {
    border-color: rgba(177, 142, 255, 0.98);
    box-shadow: 0 0 0 1px #111, 0 0 8px rgba(177, 142, 255, 0.9);
}

.skilltooltipimage.active-target-skill-icon {
    width: 28px;
    height: 28px;
    border-color: #ffd94d;
    box-shadow: 0 0 0 1px #111, 0 0 10px rgba(255, 217, 77, 0.9);
    animation: queued-target-icon-pulse 1.35s ease-in-out infinite;
    z-index: 21;
}

body.ui-stable-ingame .skillimage,
body.ui-stable-ingame .skilltooltipimage,
body.ui-stable-ingame .character-face,
body.ui-stable-ingame .character-card,
body.ui-stable-ingame .skillscrollingame,
body.ui-stable-ingame .skillqueue,
body.ui-stable-ingame .game-button,
body.ui-stable-ingame .ok-button,
body.ui-stable-ingame .ok-buttonendturn,
body.ui-stable-ingame .cancel-buttonendturn,
body.ui-stable-ingame .ok-buttonexchange,
body.ui-stable-ingame .cancel-buttonexchange,
body.ui-stable-ingame .cancel-button,
body.ui-stable-ingame .surrenderbutton,
body.ui-stable-ingame .battle-end-continue,
body.ui-stable-ingame .battle-bot-check,
body.ui-stable-ingame .battle-bot-choice-option,
body.ui-stable-ingame .battle-bot-choice-close,
body.ui-stable-ingame .private-match-ok,
body.ui-stable-ingame .private-match-cancel,
body.ui-stable-ingame .surrender-confirm-ok,
body.ui-stable-ingame .surrender-confirm-cancel {
    transition-duration: 0ms !important;
    transition-property: none !important;
}

body.ui-stable-ingame .character-card.low-hp-danger .character-face,
body.ui-stable-ingame .skillimage.skill-cast-pulse,
body.ui-stable-ingame .skillimage.skill-blocked-shake,
body.ui-stable-ingame .skillqueue.skill-queue-fade-in,
body.ui-stable-ingame .skillimage.skill-queue-fade-out,
body.ui-stable-ingame .skilltooltipimage.status-icon-turn-pop,
body.ui-stable-ingame .skilltooltipimage.passive-trigger-flash,
body.ui-stable-ingame .skilltooltipimage.active-target-skill-icon,
body.ui-stable-ingame .skilltooltipimage.dynamic-queued-target-icon,
body.ui-stable-ingame .player-characters.turn-start-sweep::after,
body.ui-stable-ingame .enemy-characters.turn-start-sweep::after,
body.ui-stable-ingame .target-overlay,
body.ui-stable-ingame .target-lock-marker,
body.ui-stable-ingame .skillscrollingame.not-turn {
    animation: none !important;
}

body.ui-stable-ingame .character-card.targetable .character-face,
body.ui-stable-ingame .character-card.targetable:hover .character-face,
body.ui-stable-ingame .skillimage.selected-target {
    transform: none !important;
    filter: none !important;
}

body.ui-stable-ingame .character-card.target-invalid,
body.ui-stable-ingame .character-card.low-hp-danger .character-face,
body.ui-stable-ingame .skillimage.queued-skill-locked {
    transition: none !important;
}

body.ui-stable-ingame .skillimage.skill-queue-fade-out {
    opacity: 1 !important;
}

body.ui-stable-ingame .game-button:active,
body.ui-stable-ingame .skillscroll:active,
body.ui-stable-ingame .slot-item:not(.slot-locked):active,
body.ui-stable-ingame .slot-image:not(.slot-locked):active,
body.ui-stable-ingame .selected-character-slot:active,
body.ui-stable-ingame .skillimage:active,
body.ui-stable-ingame .character-card:active,
body.ui-stable-ingame .character-face:active,
body.ui-stable-ingame .skilltooltipimage:active,
body.ui-stable-ingame .exchange_chakra_choice:active,
body.ui-stable-ingame .minus-button:active,
body.ui-stable-ingame .plus-button:active,
body.ui-stable-ingame .ok-button:active,
body.ui-stable-ingame .ok-buttonendturn:active,
body.ui-stable-ingame .cancel-buttonendturn:active,
body.ui-stable-ingame .ok-buttonexchange:active,
body.ui-stable-ingame .cancel-buttonexchange:active,
body.ui-stable-ingame .cancel-button:active,
body.ui-stable-ingame .surrenderbutton:active,
body.ui-stable-ingame .battle-end-continue:active,
body.ui-stable-ingame .battle-bot-check:active,
body.ui-stable-ingame .battle-bot-choice-option:active,
body.ui-stable-ingame .battle-bot-choice-close:active,
body.ui-stable-ingame .private-match-ok:active,
body.ui-stable-ingame .private-match-cancel:active,
body.ui-stable-ingame .surrender-confirm-ok:active,
body.ui-stable-ingame .surrender-confirm-cancel:active {
    transform: none !important;
    filter: none !important;
}

.revolver-cylinder {
    display: none;
    position: absolute;
    width: 30px;
    height: 30px;
    right: -5px;
    top: -7px;
    border: 2px solid #1b1712;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 50%, #15120f 0 13%, transparent 14%),
        radial-gradient(circle at 50% 50%, #68645a 0 34%, #28231d 35% 61%, #100d0b 62% 100%);
    box-shadow: 0 2px 0 rgba(0, 0, 0, 0.85), inset 0 0 8px rgba(255, 255, 255, 0.16);
    z-index: 12;
    pointer-events: none;
    transition: transform 260ms ease;
}

.character-card.has-revolver-cylinder .revolver-cylinder {
    display: block;
}

.revolver-bullet {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 5px;
    margin: -2.5px 0 0 -2.5px;
    border-radius: 50%;
    background: #e5c45d;
    border: 1px solid #1c1508;
    box-sizing: border-box;
    box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.45);
}

.revolver-bullet.empty {
    background: #17130f;
    border-color: #050403;
    box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.85);
}

.revolver-bullet:nth-child(1) {
    transform: rotate(0deg) translateY(-10px);
}

.revolver-bullet:nth-child(2) {
    transform: rotate(60deg) translateY(-10px);
}

.revolver-bullet:nth-child(3) {
    transform: rotate(120deg) translateY(-10px);
}

.revolver-bullet:nth-child(4) {
    transform: rotate(180deg) translateY(-10px);
}

.revolver-bullet:nth-child(5) {
    transform: rotate(240deg) translateY(-10px);
}

.revolver-bullet:nth-child(6) {
    transform: rotate(300deg) translateY(-10px);
}

.aquaman-sea-shark-ring {
    position: absolute;
    left: -8px;
    top: -8px;
    width: 92px;
    height: 92px;
    z-index: 46;
    pointer-events: none;
    animation: aquaman-shark-orbit 3.4s linear infinite;
}

.aquaman-sea-shark-fin {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 18px;
    height: 19px;
    margin: -9px 0 0 -9px;
    transform:
        rotate(var(--fin-angle, 0deg))
        translateY(-42px)
        rotate(18deg);
}

.aquaman-sea-shark-fin::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 0;
    width: 12px;
    height: 15px;
    background: linear-gradient(135deg, #143849 0%, #2a7b93 58%, #d8f7ff 59% 66%, #0d2a38 67% 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 78%);
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.75));
}

.aquaman-sea-shark-fin::after {
    content: "";
    position: absolute;
    left: 0;
    top: 12px;
    width: 22px;
    height: 8px;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(112, 225, 255, 0.72), rgba(21, 118, 158, 0.42) 48%, transparent 70%);
    filter: blur(0.4px);
}

.aquaman-sea-shark-projectile {
    position: absolute;
    left: -75px;
    top: 5px;
    width: 80px;
    height: 80px;
    z-index: 82;
    pointer-events: none;
    object-fit: contain;
    filter: drop-shadow(0 0 8px rgba(99, 226, 255, 0.95)) drop-shadow(2px 3px 2px rgba(0, 0, 0, 0.55));
    animation: aquaman-shark-attack 920ms cubic-bezier(0.14, 0.82, 0.2, 1) both;
}

.aquaman-sea-shark-splash {
    position: absolute;
    left: -6px;
    top: -3px;
    width: 88px;
    height: 88px;
    z-index: 81;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(223, 252, 255, 0.9) 0 10%, rgba(67, 194, 238, 0.58) 11% 28%, transparent 52%);
    animation: aquaman-shark-splash 820ms ease-out both;
}

.aquaman-sea-shark-splash span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 28px;
    border-radius: 999px;
    background: rgba(207, 249, 255, 0.88);
    box-shadow: 0 0 8px rgba(82, 214, 255, 0.92);
    transform-origin: 50% 100%;
}

.aquaman-sea-shark-splash span:nth-child(1) { transform: translate(-50%, -100%) rotate(-38deg); }
.aquaman-sea-shark-splash span:nth-child(2) { transform: translate(-50%, -100%) rotate(0deg); }
.aquaman-sea-shark-splash span:nth-child(3) { transform: translate(-50%, -100%) rotate(42deg); }

.evade-percent-badge {
    display: none;
    position: absolute;
    left: 50%;
    top: 37px;
    transform: translate(-50%, -50%);
    z-index: 39;
    min-width: 38px;
    padding: 2px 5px;
    border: 1px solid #000;
    background: rgba(0, 0, 0, 0.68);
    color: #fff16b;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    line-height: 15px;
    text-align: center;
    pointer-events: none;
    text-shadow: 1px 1px 0 #000;
    box-shadow: 0 0 8px rgba(255, 241, 107, 0.42);
}

.character-card.has-evade-percent .evade-percent-badge {
    display: block;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.92), 0 0 12px rgba(88, 255, 240, 0.42);
}

.enemy-characters .evade-percent-badge {
    transform: translate(-50%, -50%) scaleX(-1);
}

.queued-target-marker-host {
    position: absolute;
    right: -16px;
    top: 3px;
    z-index: 54;
    pointer-events: none;
}

.queued-target-marker-stack {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.queued-target-card-icon,
.queued-target-card-overflow {
    width: 22px;
    height: 22px;
    border: 2px solid #ffd84c;
    border-radius: 5px;
    background: rgba(10, 10, 14, 0.96);
    box-shadow: 0 0 0 1px #000, 0 0 10px rgba(255, 216, 76, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
}

.queued-target-card-icon img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 2px;
}

.queued-target-card-overflow {
    color: #fff5c2;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
}

.health-cap-icon {
    position: absolute;
    left: -6px;
    top: 56px;
    z-index: 42;
    min-width: 32px;
    padding: 1px 4px;
    border: 1px solid #000;
    border-radius: 4px;
    background: linear-gradient(180deg, #ff7171 0%, #8f1111 100%);
    color: #fff5ea;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 9px;
    line-height: 1.1;
    text-align: center;
    box-shadow: 0 0 0 1px rgba(255, 214, 214, 0.16), 0 0 10px rgba(197, 38, 38, 0.5);
    pointer-events: auto;
}

.health-cap-marker {
    position: absolute;
    top: -1px;
    width: 4px;
    height: 15px;
    border-radius: 2px;
    background: #fff3ee;
    box-shadow: 0 0 0 1px #000, 0 0 8px rgba(255, 104, 104, 0.75);
    z-index: 3;
    pointer-events: auto;
}

.skill-queue-flight {
    position: fixed;
    z-index: 10002;
    pointer-events: none;
    border-radius: 6px;
    box-shadow: 0 0 0 2px rgba(255, 216, 76, 0.92), 0 10px 24px rgba(0, 0, 0, 0.42);
    transition: transform 320ms cubic-bezier(0.2, 0.72, 0.24, 1), opacity 320ms ease;
    will-change: transform, opacity;
}

@keyframes target-lock-pulse {
    0% {
        opacity: 0;
        transform: scale(1.35) rotate(-18deg);
    }
    45% {
        opacity: 1;
        transform: scale(0.96) rotate(0deg);
    }
    100% {
        opacity: 0.78;
        transform: scale(1.04) rotate(0deg);
    }
}

@keyframes aquaman-shark-orbit {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes aquaman-shark-attack {
    0% {
        opacity: 0;
        transform: translate(-30px, -30px) rotate(-20deg) scale(0.65);
    }
    18% {
        opacity: 1;
    }
    72% {
        opacity: 1;
        transform: translate(110px, 18px) rotate(11deg) scale(1.15);
    }
    100% {
        opacity: 0;
        transform: translate(135px, 22px) rotate(18deg) scale(0.4);
    }
}

@keyframes aquaman-shark-splash {
    0% {
        opacity: 0;
        transform: scale(0.28) rotate(-8deg);
    }
    24% {
        opacity: 1;
        transform: scale(1.06) rotate(4deg);
    }
    100% {
        opacity: 0;
        transform: scale(1.56) rotate(12deg);
    }
}

.character-card.targetable .character-face {
    filter: brightness(1.15) saturate(1.16);
    box-shadow: 0 0 10px rgba(255, 226, 75, 0.9);
}

.character-card.targetable:hover .character-face {
    transform: translateY(-2px) scale(1.06);
}

.character-card.target-invalid {
    opacity: 0.48;
    filter: grayscale(0.25);
}

body.ui-disable-target-fade .character-card.target-invalid {
    opacity: 1;
    filter: none;
}

.character-card.low-hp-danger .character-face {
    animation: low-hp-danger-pulse 1.15s ease-in-out infinite;
}

body.ui-disable-low-hp-pulse .character-card.low-hp-danger .character-face {
    animation: none;
}

body.ui-disable-queued-target-markers .skilltooltipimage.dynamic-queued-target-icon {
    display: none !important;
}

.skilltooltipimage.dynamic-queued-target-icon {
    width: 26px;
    height: 26px;
    border: 2px solid #ffd94d;
    border-radius: 4px;
    background: #111;
    box-shadow: 0 0 0 1px #000, 0 0 10px rgba(255, 217, 77, 0.9);
    animation: queued-target-icon-pulse 1s ease-in-out infinite;
}

.skill-queue-order-label {
    position: absolute;
    top: -4px;
    right: -4px;
    background: #ffd700;
    color: #000;
    border: 1px solid #000;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    font-size: 11px;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 200;
    pointer-events: none;
    box-shadow: 0 0 4px rgba(0,0,0,0.5);
}

body.ui-disable-skill-cast-animations .skill-cast-pulse,
body.ui-disable-skill-cast-animations .skill-queue-trail,
body.ui-disable-skill-cast-animations .skill-cast-projectile,
body.ui-disable-skill-cast-animations .status-apply-burst,
body.ui-disable-skill-cast-animations .combat-energy-beam,
body.ui-disable-skill-cast-animations .superman-solar-flare-screen-fx,
body.ui-disable-skill-cast-animations .andrea-sniper-board-fx,
body.ui-disable-skill-cast-animations .bullet-hole-impact-fx,
body.ui-disable-skill-cast-animations .negan-lucille-swing-fx,
body.ui-disable-skill-cast-animations .knife-wound-fx,
body.ui-disable-skill-cast-animations .aquaman-tidal-wave-screen-fx,
body.ui-disable-skill-cast-animations .aquaman-sea-shark-projectile,
body.ui-disable-skill-cast-animations .aquaman-sea-shark-splash,
body.ui-disable-skill-cast-animations .storm-lightning-fx,
body.ui-disable-skill-cast-animations .storm-wind-fx,
body.ui-disable-skill-cast-animations .superman-frost-impact-fx,
body.ui-disable-skill-cast-animations .smartgun-lock-cast-fx,
body.ui-disable-skill-cast-animations .predator-bleeder-spear-projectile,
body.ui-disable-skill-cast-animations .carnage-blood-tendril,
body.ui-disable-skill-cast-animations .carnage-blood-slash-impact-fx,
body.ui-disable-skill-cast-animations .carnage-wide-cut-impact-fx,
body.ui-disable-skill-cast-animations .carnage-brain-devour-impact-fx,
body.ui-disable-skill-cast-animations .flash-red-speed-aura,
body.ui-disable-skill-cast-animations .flash-lightning-rush-hit-fx,
body.ui-disable-skill-cast-animations .flash-infinite-run-screen-fx,
body.ui-disable-skill-cast-animations .flash-infinite-punch-impact-fx,
body.ui-disable-skill-cast-animations .flash-speed-steal-cast-fx,
body.ui-disable-skill-cast-animations .flash-speed-steal-pressure-fx,
body.ui-disable-skill-cast-animations .scorpion-tail-sting-fx,
body.ui-disable-skill-cast-animations .scorpion-tail-laser-beam,
body.ui-disable-skill-cast-animations .scorpion-tail-laser-impact-fx,
body.ui-disable-skill-cast-animations .scorpion-tail-ready-fx,
body.ui-disable-skill-cast-animations .venom-bite-crunch-fx,
body.ui-disable-skill-cast-animations .venom-symbiote-tendril,
body.ui-disable-skill-cast-animations .venom-tendril-latch-fx,
body.ui-disable-skill-cast-animations .venom-web-cocoon-fx,
body.ui-disable-skill-cast-animations .negan-iron-slam-fx,
body.ui-disable-skill-cast-animations .negan-iron-rip-away-fx,
body.ui-disable-skill-cast-animations .xenomorph-facehugger-overlay,
body.ui-disable-skill-cast-animations .venom-ally-symbiosis-marker,
body.ui-disable-skill-cast-animations .negan-iron-overlay,
body.ui-disable-skill-cast-animations .negan-iron-glow,
body.ui-disable-skill-cast-animations .negan-iron-steam,
body.ui-disable-skill-cast-animations .negan-iron-smoke,
body.ui-disable-skill-cast-animations .parasite-drain-tendril,
body.ui-disable-skill-cast-animations .parasite-life-leech-enemy-fx,
body.ui-disable-skill-cast-animations .parasite-life-leech-ally-fx,
body.ui-disable-skill-cast-animations .parasite-metabolic-collapse-fx,
body.ui-disable-skill-cast-animations .parasite-metabolic-screen-flash,
body.ui-disable-skill-cast-animations .parasite-energy-transfer-fx,
body.ui-disable-skill-cast-animations .parasite-host-mutation-cast-fx,
body.ui-disable-skill-cast-animations .parasite-overload-screen-fx,
body.ui-disable-skill-cast-animations .pokemon-evolution-aura,
body.ui-disable-skill-cast-animations .pokemon-solar-beam-charge-fx,
body.ui-disable-skill-cast-animations .pokemon-solar-beam-travel,
body.ui-disable-skill-cast-animations .pokemon-solar-beam-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-thunder-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-flamethrower-stream,
body.ui-disable-skill-cast-animations .pokemon-flamethrower-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-water-gun-stream,
body.ui-disable-skill-cast-animations .pokemon-water-gun-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-leech-seed-vine,
body.ui-disable-skill-cast-animations .pokemon-leech-seed-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-supersonic-fx,
body.ui-disable-skill-cast-animations .pokemon-future-sight-fx,
body.ui-disable-skill-cast-animations .pokemon-x-cutter-fx,
body.ui-disable-skill-cast-animations .pokemon-center-healing-fx,
body.ui-disable-skill-cast-animations .pokemon-smog-fx,
body.ui-disable-skill-cast-animations .pokemon-koffing-team-fog-fx,
body.ui-disable-skill-cast-animations .pokemon-koffing-screen-explosion-fx,
body.ui-disable-skill-cast-animations .pokemon-ekans-poison-fang-fx,
body.ui-disable-skill-cast-animations .pokemon-ekans-toxic-stream,
body.ui-disable-skill-cast-animations .pokemon-ekans-toxic-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-ekans-toxic-status,
body.ui-disable-skill-cast-animations .pokemon-ekans-shed-skin-fx,
body.ui-disable-skill-cast-animations .pokemon-ekans-crunch-fx,
body.ui-disable-skill-cast-animations .pokemon-machop-brick-break-fx,
body.ui-disable-skill-cast-animations .pokemon-machop-counter-fx,
body.ui-disable-skill-cast-animations .pokemon-machop-bulk-up-cast-fx,
body.ui-disable-skill-cast-animations .pokemon-machop-bulk-up-status,
body.ui-disable-skill-cast-animations .pokemon-machop-taunt-fx,
body.ui-disable-skill-cast-animations .pokemon-psybeam-stream,
body.ui-disable-skill-cast-animations .pokemon-psybeam-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-powder-stream,
body.ui-disable-skill-cast-animations .pokemon-powder-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-whirlwind-fx,
body.ui-disable-skill-cast-animations .pokemon-trainer-ball-projectile,
body.ui-disable-skill-cast-animations .pokemon-trainer-ball-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-x-stats-fx,
body.ui-disable-skill-cast-animations .pokemon-rare-candy-fx,
body.ui-disable-skill-cast-animations .pokemon-psychic-stream,
body.ui-disable-skill-cast-animations .pokemon-psychic-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-calm-mind-fx,
body.ui-disable-skill-cast-animations .pokemon-teleport-fx,
body.ui-disable-skill-cast-animations .pokemon-leech-life-stream,
body.ui-disable-skill-cast-animations .pokemon-leech-life-impact-fx,
body.ui-disable-skill-cast-animations .pokemon-bite-fx,
body.ui-disable-skill-cast-animations .seraphina-med-plus-overlay,
body.ui-disable-skill-cast-animations .seraphina-buckshot-impact-fx,
body.ui-disable-skill-cast-animations .seraphina-buckshot-pattern,
body.ui-disable-skill-cast-animations .seraphina-road-flare,
body.ui-disable-skill-cast-animations .storm-rain-weather::before,
body.ui-disable-skill-cast-animations .storm-hail-weather::before {
    display: none !important;
    animation: none !important;
}

body.ui-disable-skill-icon-projectiles .skill-cast-projectile {
    display: none !important;
    animation: none !important;
}

.character-card.character-defeated .character-face {
    filter: grayscale(1) brightness(0.58);
}

.character-card.death-crack .character-face {
    animation: death-crack 620ms cubic-bezier(0.22, 0.85, 0.28, 1) both;
}

.character-card.death-crack::after {
    content: "";
    position: absolute;
    left: -4px;
    top: -4px;
    width: 84px;
    height: 84px;
    z-index: 42;
    pointer-events: none;
    background:
        linear-gradient(34deg, transparent 0 43%, rgba(255, 255, 255, 0.92) 44% 46%, transparent 47% 100%),
        linear-gradient(118deg, transparent 0 49%, rgba(20, 20, 20, 0.86) 50% 52%, transparent 53% 100%),
        linear-gradient(74deg, transparent 0 58%, rgba(255, 255, 255, 0.78) 59% 60%, transparent 61% 100%);
    animation: death-shatter-flash 640ms ease-out both;
}

.character-death-shatter {
    position: absolute;
    left: 0;
    top: 0;
    width: 75px;
    height: 75px;
    z-index: 90;
    pointer-events: none;
    perspective: 320px;
    contain: layout paint;
}

.character-death-shatter::before {
    content: "";
    position: absolute;
    left: -6px;
    top: -6px;
    width: 87px;
    height: 87px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 248, 178, 0.82) 0 12%, rgba(255, 51, 38, 0.45) 13% 38%, transparent 70%);
    filter: blur(1px);
    animation: death-impact-ring 2100ms ease-out both;
}

.death-slice {
    position: absolute;
    top: 0;
    width: 38px;
    height: 75px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    background-size: 75px 75px;
    background-repeat: no-repeat;
    box-shadow: 0 0 12px rgba(255, 38, 28, 0.75), 0 4px 12px rgba(0, 0, 0, 0.85);
    overflow: hidden;
}

.death-slice-left {
    left: 0;
    background-position: left top;
    clip-path: polygon(0 0, 100% 0, 74% 100%, 0 100%);
    animation: death-slice-left 2250ms cubic-bezier(0.16, 0.8, 0.22, 1) both;
}

.death-slice-right {
    left: 37px;
    background-position: right top;
    clip-path: polygon(25% 0, 100% 0, 100% 100%, 0 100%);
    animation: death-slice-right 2250ms cubic-bezier(0.16, 0.8, 0.22, 1) both;
}

.death-shards {
    position: absolute;
    inset: 0;
}

.death-shards span {
    position: absolute;
    left: 37px;
    top: 37px;
    width: 18px;
    height: 18px;
    background-size: 75px 75px;
    background-repeat: no-repeat;
    border: 1px solid rgba(255, 238, 188, 0.58);
    box-shadow: 0 0 8px rgba(255, 42, 30, 0.52);
    opacity: 0;
    animation: death-shard-scatter 2300ms cubic-bezier(0.12, 0.8, 0.2, 1) both;
    animation-delay: calc(120ms + var(--piece) * 26ms);
}

.death-shards span:nth-child(1) { --x: -42px; --y: -50px; --r: -62deg; background-position: 0 0; }
.death-shards span:nth-child(2) { --x: -16px; --y: -62px; --r: 34deg; background-position: -18px 0; }
.death-shards span:nth-child(3) { --x: 34px; --y: -52px; --r: 74deg; background-position: -36px 0; }
.death-shards span:nth-child(4) { --x: -54px; --y: -6px; --r: 28deg; background-position: 0 -26px; }
.death-shards span:nth-child(5) { --x: 0px; --y: -18px; --r: 128deg; background-position: -28px -26px; }
.death-shards span:nth-child(6) { --x: 48px; --y: -2px; --r: -45deg; background-position: -52px -26px; }
.death-shards span:nth-child(7) { --x: -38px; --y: 34px; --r: -132deg; background-position: 0 -52px; }
.death-shards span:nth-child(8) { --x: 12px; --y: 48px; --r: 58deg; background-position: -28px -52px; }
.death-shards span:nth-child(9) { --x: 54px; --y: 31px; --r: 142deg; background-position: -52px -52px; }
.death-shards span:nth-child(10) { --x: -60px; --y: -38px; --r: 96deg; background-position: -8px -8px; }
.death-shards span:nth-child(11) { --x: -30px; --y: -74px; --r: -118deg; background-position: -30px -8px; }
.death-shards span:nth-child(12) { --x: 8px; --y: -82px; --r: 172deg; background-position: -48px -8px; }
.death-shards span:nth-child(13) { --x: 62px; --y: -40px; --r: -96deg; background-position: -56px -10px; }
.death-shards span:nth-child(14) { --x: -68px; --y: 18px; --r: 154deg; background-position: -8px -34px; }
.death-shards span:nth-child(15) { --x: -18px; --y: 16px; --r: -176deg; background-position: -34px -34px; }
.death-shards span:nth-child(16) { --x: 32px; --y: 18px; --r: 112deg; background-position: -50px -34px; }
.death-shards span:nth-child(17) { --x: -18px; --y: 66px; --r: 204deg; background-position: -20px -56px; }
.death-shards span:nth-child(18) { --x: 68px; --y: 58px; --r: -164deg; background-position: -50px -56px; }

.death-kill-label {
    position: absolute;
    left: 50%;
    top: -5px;
    transform: translateX(-50%);
    min-width: 86px;
    color: #ffe27a;
    font-family: 'Pedra', 'Libre Franklin', serif;
    font-size: 27px;
    line-height: 1;
    text-align: center;
    letter-spacing: 0;
    text-shadow: 2px 2px 0 #000, -1px -1px 0 #000, 0 0 8px rgba(255, 32, 20, 0.95);
    animation: death-kill-label 2200ms ease-out both;
}

.enemy-characters .death-kill-label {
    transform: translateX(-50%) scaleX(-1);
}

@keyframes low-hp-danger-pulse {
    0%, 100% {
        box-shadow: 0 0 0 rgba(255, 40, 28, 0);
    }
    50% {
        box-shadow: 0 0 12px rgba(255, 40, 28, 0.95);
    }
}

@keyframes death-crack {
    0% {
        transform: translate(0, 0) rotate(0deg);
        filter: grayscale(0) brightness(1);
    }
    18% {
        transform: translate(-4px, 2px) rotate(-2deg);
        filter: grayscale(0.3) brightness(1.25);
    }
    36% {
        transform: translate(4px, -2px) rotate(2deg);
    }
    72% {
        transform: translate(0, 0) rotate(0deg);
        filter: grayscale(1) brightness(0.72);
    }
    100% {
        transform: translate(0, 0) rotate(0deg);
        filter: grayscale(1) brightness(0.58);
    }
}

@keyframes death-shatter-flash {
    0% {
        opacity: 0;
        transform: scale(0.72) rotate(-6deg);
    }
    22% {
        opacity: 1;
        transform: scale(1.04) rotate(2deg);
    }
    100% {
        opacity: 0;
        transform: scale(1.18) rotate(7deg);
    }
}

@keyframes target-blink {
    0% {
        opacity: 0.2;
    }
    50% {
        opacity: 0.9;
    }
    100% {
        opacity: 0.2;
    }
}

.health-bar-container {
    position: relative;
    z-index: 9;
    width: 75px;
    height: 13px;
    top: 2px;
    overflow: visible;
    background-color: #ffffff;
    border: 1px solid #000;
    box-sizing: content-box;
}

.health-protection-bar {
    position: absolute;
    left: 0;
    height: 2px;
    z-index: 0;
    pointer-events: none;
    opacity: 0.9;
    transition: width 260ms cubic-bezier(0.2, 0.82, 0.24, 1);
    display: none !important;
}

.health-shield-bar {
    top: -4px;
    background: linear-gradient(90deg, #79d9ff 0%, #45a8ff 100%);
}

.health-forcefield-bar {
    bottom: -4px;
    background: linear-gradient(90deg, #ff8fd2 0%, #ff4fb2 100%);
}

.rage-bar-container {
    display: none;
    position: absolute;
    left: 0;
    top: 62px;
    z-index: 10;
    width: 75px;
    height: 13px;
    background-color: #1d2a11;
    border: 1px solid #000;
    box-sizing: content-box;
}

.character-card.has-rage-meter .rage-bar-container {
    display: block;
}

.rage-bar {
    width: 0;
    height: 13px;
    background: linear-gradient(90deg, #d9ff4b 0%, #a8e22d 58%, #6fbd23 100%);
    position: static;
    transition: width 260ms cubic-bezier(0.2, 0.82, 0.24, 1);
}

.rage-text {
    position: absolute;
    width: 75px;
    left: 0;
    top: 0.4px;
    line-height: 13px;
    text-align: center;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 12px;
    color: #000000;
    z-index: 2;
}

.health-bar {
    background-color: #1eee5d;
    width: 75px;
    height: 13px;
    position: relative;
    z-index: 1;
    transition: width 260ms cubic-bezier(0.2, 0.82, 0.24, 1);
}

.health-bar.hp-mid {
    background-color: #f1d424;
}

.health-bar.hp-low {
    background-color: #e53030;
}

.health-text {
    position: absolute;
    width: 75px;
    left: 0;
    top: 0.4px;
    line-height: 13px;
    text-align: center;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 12px;
    color: #000000;
    z-index: 2;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
}

.player-characters {
    gap: 34px;
    display: flex;
    position:relative;
    left: -2px;
    flex-direction: column;
}

.skillholder {
    z-index: 2;
    position: absolute;
    top: 19px;
    left: 50px;
    pointer-events: auto;
    overflow: visible;
}

.ingamescrollbehind {
    pointer-events: none;
    position: relative;
    z-index: 0;
    image-rendering: auto;
}

.skillscrollingame {
    background-image: url('../assets/images/ingameskillscroll.png');
    width: 381px;
    height: 79px;
    position: absolute;
    z-index: 2;
    left: 24px;
    top: 4px;
    gap: 6px;
    display: flex;
    clip-path: inset(0 0 0 0);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    transform: translateZ(0);
    backface-visibility: hidden;
    contain: layout paint;
    transition: clip-path 0.2s cubic-bezier(0.2, 0.82, 0.24, 1), left 0.2s cubic-bezier(0.2, 0.82, 0.24, 1);
}

body.arena-mode-pokemon .skillscrollingame {
    background-image: url('../assets/images/PokemonArena/ingameskillscroll-pokeball.png');
    padding: 12px 0 0 88px;
    box-sizing: border-box;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        inset 0 -1px 0 rgba(41, 26, 12, 0.22),
        0 6px 18px rgba(18, 14, 10, 0.16);
}

body.arena-mode-pokemon .ingamescrollbehind {
    image-rendering: auto;
    filter: drop-shadow(0 2px 4px rgba(18, 14, 10, 0.16));
    transform: translate(-4px, -2px) scale(1.18);
    transform-origin: center;
}

body.arena-mode-pokemon .skillqueue {
    position: absolute;
    top: 12px;
    left: 18px;
}

body.arena-mode-pokemon .skillimage {
    top: 0;
    left: 0;
}

.skillqueue {
    position: relative;
    z-index: 5;
}

.skillimage.selected-target {
    position: relative;
    z-index: 7;
    transition: transform 0.14s ease, opacity 0.14s ease;
    outline: 2px solid #ffd94d;
    outline-offset: -1px;
    box-shadow: 0 0 12px rgba(255, 217, 77, 0.95), 0 0 4px rgba(0, 0, 0, 0.8);
}

.skillimage.queued-skill-locked {
    filter: grayscale(0.85) brightness(0.58);
    opacity: 0.45 !important;
}

.skillimage.skill-cast-pulse {
    animation: skill-cast-pulse 620ms cubic-bezier(0.2, 0.85, 0.22, 1) both;
}

.skillimage.skill-cast-taijutsu {
    box-shadow: 0 0 14px rgba(75, 225, 95, 0.95);
}

.skillimage.skill-cast-ninjutsu {
    box-shadow: 0 0 14px rgba(40, 190, 255, 0.95);
}

.skillimage.skill-cast-bloodline {
    box-shadow: 0 0 14px rgba(255, 64, 58, 0.95);
}

.skillimage.skill-cast-genjutsu {
    box-shadow: 0 0 14px rgba(190, 95, 255, 0.95);
}

.skillimage.skill-cast-random {
    box-shadow: 0 0 14px rgba(255, 236, 89, 0.95);
}

.skillimage.skill-blocked-shake {
    animation: skill-blocked-shake 520ms ease both;
}

.skillimage.skill-queue-fade-out {
    opacity: 0 !important;
    transition: opacity 0.32s ease !important;
}

.skillqueue.skill-queue-fade-in {
    animation: skill-queue-fade-in 0.45s ease forwards;
}

@keyframes skill-queue-fade-in {
    0% {
        opacity: 0;
        scale: 0.85;
        filter: brightness(1.5);
    }
    100% {
        opacity: 1;
        scale: 1;
        filter: brightness(1);
    }
}

.skillimage.skill-queue-trail {
    transition: transform 0.48s cubic-bezier(0.18, 0.89, 0.32, 1.28);
    box-shadow: 0 0 18px rgba(255, 236, 89, 0.95), 0 0 30px rgba(255, 91, 46, 0.65);
    z-index: 1000;
}

.character-face.skill-caster-surge {
    animation: skill-caster-surge 1050ms cubic-bezier(0.2, 0.85, 0.22, 1) both;
}

.skill-cast-projectile {
    position: fixed;
    width: 34px;
    height: 34px;
    z-index: 400;
    pointer-events: none;
    border: 1px solid #000;
    box-shadow: 0 0 12px rgba(255, 236, 89, 0.92), 0 0 22px rgba(255, 75, 35, 0.62);
    animation: skill-cast-projectile-flight 1300ms cubic-bezier(0.2, 0.82, 0.18, 1) both;
}

.combat-energy-beam {
    position: fixed;
    height: 8px;
    z-index: 430;
    pointer-events: none;
    transform-origin: 0 50%;
    border-radius: 999px;
    opacity: 0;
    background: linear-gradient(90deg, transparent 0%, #ffffff 8%, var(--beam-core) 23%, var(--beam-hot) 52%, var(--beam-core) 82%, transparent 100%);
    box-shadow:
        0 0 7px var(--beam-glow),
        0 0 18px var(--beam-glow),
        0 0 28px var(--beam-glow);
    animation: combat-energy-beam-fire 820ms cubic-bezier(0.12, 0.8, 0.18, 1) both;
}

.combat-energy-beam::before,
.combat-energy-beam::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    border-radius: inherit;
    background: rgba(255, 255, 255, 0.95);
    transform: translateY(-50%);
    box-shadow: 0 0 9px #fff;
}

.combat-energy-beam::after {
    height: 18px;
    background: linear-gradient(90deg, transparent, var(--beam-glow), transparent);
    opacity: 0.42;
    filter: blur(5px);
}

.combat-energy-beam.red {
    --beam-core: #ff2118;
    --beam-hot: #ffefe9;
    --beam-glow: rgba(255, 26, 18, 0.92);
}

.combat-energy-beam.yellow {
    --beam-core: #ffd326;
    --beam-hot: #fff8bd;
    --beam-glow: rgba(255, 211, 38, 0.92);
}

.combat-energy-beam.empowered {
    height: 14px;
    animation-duration: 1080ms;
    box-shadow:
        0 0 10px var(--beam-glow),
        0 0 25px var(--beam-glow),
        0 0 44px var(--beam-glow),
        0 0 8px #fff inset;
}

.combat-energy-beam.empowered::before {
    height: 4px;
}

.combat-energy-beam.empowered::after {
    height: 30px;
    opacity: 0.62;
}

.combat-energy-beam.frost {
    height: 28px;
    background: linear-gradient(90deg, transparent 0%, rgba(225, 249, 255, 0.42) 8%, rgba(180, 235, 255, 0.9) 36%, rgba(255, 255, 255, 0.96) 58%, rgba(126, 215, 255, 0.65) 84%, transparent 100%);
    box-shadow:
        0 0 12px rgba(165, 232, 255, 0.82),
        0 0 26px rgba(76, 190, 255, 0.54);
    filter: blur(0.2px);
    animation: superman-frost-breath-beam 1120ms ease-out both;
}

.combat-energy-beam.frost::before,
.combat-energy-beam.frost::after {
    display: none;
}

.combat-energy-beam.frost span {
    position: absolute;
    left: 4%;
    top: 50%;
    width: 26px;
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 0 10px rgba(203, 244, 255, 0.86);
    animation: superman-frost-particle 980ms ease-out both;
}

.combat-energy-beam.frost span:nth-child(2) {
    top: 22%;
    animation-delay: 70ms;
}

.combat-energy-beam.frost span:nth-child(3) {
    top: 72%;
    animation-delay: 120ms;
}

.combat-energy-beam.frost span:nth-child(4) {
    top: 42%;
    animation-delay: 180ms;
}

.combat-energy-beam.frost.empowered {
    height: 42px;
    animation-duration: 1350ms;
    box-shadow:
        0 0 18px rgba(204, 247, 255, 0.98),
        0 0 38px rgba(88, 204, 255, 0.72),
        0 0 54px rgba(255, 255, 255, 0.48);
}

.superman-frost-impact-fx {
    position: absolute;
    left: -7px;
    top: -7px;
    width: 89px;
    height: 89px;
    z-index: 61;
    pointer-events: none;
    border-radius: 9px;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.9) 0 2px, transparent 3px 24px, rgba(213,246,255,0.75) 25px 27px, transparent 28px),
        radial-gradient(circle at 28% 18%, rgba(255,255,255,0.95), transparent 20%),
        radial-gradient(circle at 65% 72%, rgba(168,230,255,0.65), transparent 38%),
        rgba(120, 207, 255, 0.22);
    box-shadow:
        inset 0 0 18px rgba(255, 255, 255, 0.9),
        inset 0 0 34px rgba(83, 184, 255, 0.72),
        0 0 18px rgba(144, 230, 255, 0.86);
    animation: superman-frost-impact 1650ms ease-out both;
}

.superman-frost-impact-fx.empowered {
    left: -11px;
    top: -11px;
    width: 97px;
    height: 97px;
    background:
        linear-gradient(135deg, rgba(255,255,255,1) 0 3px, transparent 4px 19px, rgba(196,244,255,0.95) 20px 23px, transparent 24px),
        radial-gradient(circle at 26% 20%, rgba(255,255,255,1), transparent 24%),
        radial-gradient(circle at 70% 66%, rgba(142,224,255,0.82), transparent 42%),
        rgba(107, 202, 255, 0.34);
    box-shadow:
        inset 0 0 24px rgba(255, 255, 255, 0.98),
        inset 0 0 44px rgba(50, 170, 255, 0.84),
        0 0 28px rgba(160, 238, 255, 0.96);
    animation-duration: 2150ms;
}

.superman-frost-impact-fx span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 3px;
    height: 72px;
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.92);
    transform-origin: 50% 50%;
    animation: superman-frost-crack 1450ms ease-out both;
}

.superman-frost-impact-fx span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(28deg);
}

.superman-frost-impact-fx span:nth-child(2) {
    transform: translate(-50%, -50%) rotate(94deg);
    animation-delay: 90ms;
}

.superman-frost-impact-fx span:nth-child(3) {
    transform: translate(-50%, -50%) rotate(145deg);
    animation-delay: 150ms;
}

.superman-solar-flare-screen-fx {
    position: fixed;
    left: 50%;
    top: 50%;
    width: 18px;
    height: 18px;
    z-index: 520;
    pointer-events: none;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0 8%, #fff3a5 9% 18%, #ffb22a 19% 42%, rgba(255, 68, 18, 0.72) 43% 64%, transparent 72%);
    box-shadow:
        0 0 24px rgba(255, 244, 151, 0.98),
        0 0 58px rgba(255, 122, 26, 0.88),
        0 0 100px rgba(255, 46, 18, 0.62);
    animation: superman-solar-core 1750ms ease-out both;
}

.superman-solar-flare-screen-fx::before,
.superman-solar-flare-screen-fx::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 160vmax;
    height: 160vmax;
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(0.02);
    background:
        repeating-conic-gradient(from 7deg, rgba(255,255,255,0.92) 0deg 6deg, rgba(255,186,40,0.62) 7deg 13deg, transparent 14deg 24deg),
        radial-gradient(circle, rgba(255,255,255,0.72) 0 5%, rgba(255,215,66,0.52) 6% 18%, rgba(255,91,24,0.34) 19% 36%, transparent 52%);
    mix-blend-mode: screen;
    animation: superman-solar-wave 1750ms ease-out both;
}

.superman-solar-flare-screen-fx::after {
    width: 110vmax;
    height: 110vmax;
    background: radial-gradient(circle, transparent 0 18%, rgba(255,255,255,0.88) 19% 21%, rgba(255,183,30,0.55) 22% 28%, transparent 42%);
    animation-delay: 180ms;
}

.superman-solar-flare-screen-fx span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 110vmax;
    height: 6px;
    transform-origin: 0 50%;
    background: linear-gradient(90deg, rgba(255,255,255,0.95), rgba(255,204,56,0.68), transparent);
    box-shadow: 0 0 18px rgba(255, 214, 69, 0.78);
    animation: superman-solar-ray 1350ms ease-out both;
}

.superman-solar-flare-screen-fx span:nth-child(2) { transform: rotate(42deg); animation-delay: 55ms; }
.superman-solar-flare-screen-fx span:nth-child(3) { transform: rotate(96deg); animation-delay: 105ms; }
.superman-solar-flare-screen-fx span:nth-child(4) { transform: rotate(151deg); animation-delay: 155ms; }

.andrea-sniper-board-fx {
    position: fixed;
    inset: 0;
    z-index: 610;
    pointer-events: none;
    --scope-size: 132px;
    background: radial-gradient(circle var(--scope-size) at var(--scope-x) var(--scope-y), transparent 0 48%, rgba(0,0,0,0.2) 49% 51%, rgba(0,0,0,0.86) 52% 100%);
    animation: andrea-sniper-board 1650ms ease both;
}

.sniper-scope-ring {
    position: absolute;
    left: var(--scope-x);
    top: var(--scope-y);
    width: calc(var(--scope-size) * 2);
    height: calc(var(--scope-size) * 2);
    border: 3px solid rgba(255, 52, 42, 0.92);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 0 2px rgba(255,255,255,0.58), 0 0 24px rgba(255, 36, 28, 0.85), inset 0 0 18px rgba(255, 36, 28, 0.34);
    animation: andrea-sniper-scope-lock 1500ms ease both;
}

.sniper-scope-line {
    position: absolute;
    left: var(--scope-x);
    top: var(--scope-y);
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 0 12px rgba(255, 42, 32, 0.95);
    transform: translate(-50%, -50%);
}

.sniper-scope-line-h {
    width: calc(var(--scope-size) * 2.25);
    height: 2px;
}

.sniper-scope-line-v {
    width: 2px;
    height: calc(var(--scope-size) * 2.25);
}

.bullet-hole-impact-fx {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 82px;
    height: 82px;
    transform: translate(-50%, -50%);
    z-index: 72;
    pointer-events: none;
    animation: bullet-hole-impact-pop 1450ms ease-out both;
}

.bullet-hole-impact-fx.sniper {
    width: 94px;
    height: 94px;
    animation-duration: 2100ms;
}

.bullet-hole-core {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, #050505 0 34%, #2b130d 35% 52%, rgba(255, 226, 145, 0.9) 53% 61%, rgba(0,0,0,0.12) 62% 100%);
    box-shadow: 0 0 12px rgba(255, 218, 125, 0.72), inset 0 0 5px #000;
}

.bullet-hole-impact-fx.sniper .bullet-hole-core {
    width: 24px;
    height: 24px;
    box-shadow: 0 0 18px rgba(255, 226, 140, 0.9), 0 0 26px rgba(255, 30, 20, 0.58), inset 0 0 7px #000;
}

.bullet-hole-impact-fx.revolver .bullet-hole-core {
    width: 12px;
    height: 12px;
}

.bullet-hole-crack {
    position: absolute;
    inset: 4px;
    background:
        linear-gradient(18deg, transparent 0 47%, rgba(20,20,20,0.82) 48% 51%, transparent 52%),
        linear-gradient(96deg, transparent 0 49%, rgba(20,20,20,0.68) 50% 52%, transparent 53%),
        linear-gradient(138deg, transparent 0 49%, rgba(255,238,186,0.6) 50% 51%, transparent 52%);
    opacity: 0.9;
    animation: bullet-hole-crack-spread 1250ms ease-out both;
}

.bullet-hole-impact-fx.sniper .bullet-hole-crack {
    inset: -2px;
}

.seraphina-buckshot-impact-fx,
.seraphina-buckshot-pattern {
    position: absolute;
    inset: 8px;
    z-index: 83;
    pointer-events: none;
}

.seraphina-buckshot-impact-fx {
    animation: seraphina-buckshot-hit 1200ms ease-out both;
}

.seraphina-buckshot-pellet {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, #050505 0 38%, #351c13 39% 58%, rgba(255, 206, 120, 0.86) 59% 68%, rgba(0, 0, 0, 0.18) 69% 100%);
    box-shadow: 0 0 7px rgba(255, 205, 112, 0.72), inset 0 0 3px #000;
}

.seraphina-buckshot-impact-fx .seraphina-buckshot-pellet {
    animation: seraphina-buckshot-pellet-pop 900ms ease-out both;
}

.seraphina-buckshot-pellet::after {
    content: "";
    position: absolute;
    left: -8px;
    top: 3px;
    width: 25px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(20, 20, 20, 0.62), transparent);
    transform: rotate(var(--crack-angle, 0deg));
    opacity: 0.76;
}

.seraphina-buckshot-pellet.pellet-1 { left: 45%; top: 25%; --crack-angle: 14deg; }
.seraphina-buckshot-pellet.pellet-2 { left: 60%; top: 31%; --crack-angle: -28deg; }
.seraphina-buckshot-pellet.pellet-3 { left: 34%; top: 43%; --crack-angle: 62deg; }
.seraphina-buckshot-pellet.pellet-4 { left: 51%; top: 48%; --crack-angle: -8deg; }
.seraphina-buckshot-pellet.pellet-5 { left: 69%; top: 50%; --crack-angle: 36deg; }
.seraphina-buckshot-pellet.pellet-6 { left: 42%; top: 64%; --crack-angle: -50deg; }
.seraphina-buckshot-pellet.pellet-7 { left: 58%; top: 70%; --crack-angle: 22deg; }
.seraphina-buckshot-pellet.pellet-8 { left: 74%; top: 66%; --crack-angle: -16deg; }
.seraphina-buckshot-pellet.pellet-9 { left: 27%; top: 59%; --crack-angle: 44deg; }

.seraphina-med-plus-overlay {
    position: absolute;
    inset: 6px 10px 18px;
    z-index: 82;
    pointer-events: none;
    overflow: hidden;
}

.seraphina-med-plus-overlay span {
    position: absolute;
    left: 50%;
    bottom: 2px;
    color: #70ff8e;
    font-size: 22px;
    font-weight: 900;
    line-height: 1;
    text-shadow: 0 0 6px rgba(112, 255, 142, 0.92), 0 0 11px rgba(17, 148, 70, 0.72);
    animation: seraphina-heal-plus-rise 1450ms ease-out infinite;
}

.seraphina-med-plus-overlay span:nth-child(1) { left: 22%; animation-delay: 0ms; }
.seraphina-med-plus-overlay span:nth-child(2) { left: 41%; animation-delay: 160ms; font-size: 17px; }
.seraphina-med-plus-overlay span:nth-child(3) { left: 66%; animation-delay: 310ms; }
.seraphina-med-plus-overlay span:nth-child(4) { left: 31%; animation-delay: 520ms; font-size: 19px; }
.seraphina-med-plus-overlay span:nth-child(5) { left: 78%; animation-delay: 710ms; font-size: 16px; }
.seraphina-med-plus-overlay span:nth-child(6) { left: 52%; animation-delay: 930ms; font-size: 20px; }
.seraphina-med-plus-overlay span:nth-child(7) { left: 14%; animation-delay: 1120ms; font-size: 15px; }

.pokemon-evolution-aura {
    position: absolute;
    inset: 2px;
    z-index: 82;
    pointer-events: none;
    overflow: hidden;
    border-radius: 10px;
}

.pokemon-evolution-aura span,
.pokemon-evolution-aura::before,
.pokemon-evolution-aura::after {
    pointer-events: none;
}

.pokemon-evolution-aura-kadabra {
    filter: drop-shadow(0 0 8px rgba(255, 110, 235, 0.55));
}

.pokemon-evolution-aura-kadabra .psychic-ring,
.pokemon-evolution-aura-kadabra .psychic-orb {
    position: absolute;
}

.pokemon-evolution-aura-kadabra .psychic-ring {
    inset: 12px;
    border: 2px solid rgba(255, 160, 246, 0.82);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(255, 102, 224, 0.7);
}

.pokemon-evolution-aura-kadabra .psychic-ring.ring-a { animation: pokemon-kadabra-psi-spin 3.1s linear infinite; }
.pokemon-evolution-aura-kadabra .psychic-ring.ring-b { inset: 6px 18px; animation: pokemon-kadabra-psi-spin-reverse 2.5s linear infinite; opacity: 0.7; }
.pokemon-evolution-aura-kadabra .psychic-orb {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0%, #ff9df4 38%, rgba(255, 92, 221, 0.18) 100%);
    box-shadow: 0 0 8px rgba(255, 112, 236, 0.8);
    animation: pokemon-kadabra-orbit 2.2s ease-in-out infinite;
}

.pokemon-evolution-aura-kadabra .orb-a { left: 12px; top: 16px; animation-delay: 0ms; }
.pokemon-evolution-aura-kadabra .orb-b { right: 11px; top: 30px; animation-delay: 720ms; }
.pokemon-evolution-aura-kadabra .orb-c { left: 28px; bottom: 10px; animation-delay: 1320ms; }

.pokemon-evolution-aura-ivysaur .leaf {
    position: absolute;
    width: 15px;
    height: 24px;
    background: linear-gradient(180deg, #c9ff84 0%, #63be45 58%, #2f7c26 100%);
    border-radius: 70% 0 70% 0;
    box-shadow: 0 0 7px rgba(117, 216, 96, 0.58);
    transform-origin: center;
    animation: pokemon-ivysaur-leaf-drift 3s ease-in-out infinite;
}

.pokemon-evolution-aura-ivysaur .leaf::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 2px;
    width: 2px;
    height: 18px;
    background: rgba(233, 255, 230, 0.7);
    transform: translateX(-50%);
}

.pokemon-evolution-aura-ivysaur .leaf-a { left: 8px; top: 12px; animation-delay: 0ms; }
.pokemon-evolution-aura-ivysaur .leaf-b { right: 10px; top: 8px; animation-delay: 500ms; }
.pokemon-evolution-aura-ivysaur .leaf-c { left: 28px; top: 2px; animation-delay: 950ms; }
.pokemon-evolution-aura-ivysaur .leaf-d { left: 15px; bottom: 10px; animation-delay: 1350ms; }
.pokemon-evolution-aura-ivysaur .leaf-e { right: 16px; bottom: 16px; animation-delay: 1760ms; }
.pokemon-evolution-aura-ivysaur .leaf-f { left: 36px; top: 24px; animation-delay: 2240ms; }

.pokemon-evolution-aura-blissey .heal-plus,
.pokemon-evolution-aura-blissey .heal-bloom {
    position: absolute;
}

.pokemon-evolution-aura-blissey .heal-plus {
    left: 50%;
    bottom: 4px;
    color: #87ff8f;
    font-size: 18px;
    font-weight: 900;
    line-height: 1;
    text-shadow: 0 0 7px rgba(122, 255, 138, 0.95), 0 0 11px rgba(25, 140, 60, 0.7);
    animation: pokemon-blissey-plus-rise 1.6s ease-out infinite;
}

.pokemon-evolution-aura-blissey .plus-a { left: 26%; animation-delay: 0ms; }
.pokemon-evolution-aura-blissey .plus-b { left: 40%; animation-delay: 280ms; font-size: 16px; }
.pokemon-evolution-aura-blissey .plus-c { left: 54%; animation-delay: 520ms; }
.pokemon-evolution-aura-blissey .plus-d { left: 66%; animation-delay: 840ms; font-size: 17px; }
.pokemon-evolution-aura-blissey .plus-e { left: 49%; animation-delay: 1160ms; font-size: 20px; }
.pokemon-evolution-aura-blissey .heal-bloom {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid rgba(133, 255, 149, 0.45);
    opacity: 0;
    animation: pokemon-blissey-bloom 1.6s ease-out infinite;
}

.pokemon-evolution-aura-blissey .bloom-a { left: 12px; top: 8px; animation-delay: 220ms; }
.pokemon-evolution-aura-blissey .bloom-b { left: 26px; top: 2px; animation-delay: 660ms; }
.pokemon-evolution-aura-blissey .bloom-c { right: 12px; top: 10px; animation-delay: 1080ms; }

.pokemon-evolution-aura-charmeleon {
    inset: -2px;
}

.pokemon-evolution-aura-charmeleon .flame,
.pokemon-evolution-aura-charmeleon .ember {
    position: absolute;
}

.pokemon-evolution-aura-charmeleon .flame {
    bottom: -6px;
    width: 28px;
    height: 42px;
    background: radial-gradient(circle at 50% 75%, rgba(255, 247, 194, 0.96) 0%, rgba(255, 152, 39, 0.95) 35%, rgba(255, 84, 20, 0.88) 70%, rgba(255, 52, 0, 0.08) 100%);
    border-radius: 55% 55% 45% 45%;
    filter: blur(1px) drop-shadow(0 0 10px rgba(255, 94, 32, 0.8));
    animation: pokemon-charmeleon-flame 1.35s ease-in-out infinite;
}

.pokemon-evolution-aura-charmeleon .flame-a { left: -3px; animation-delay: 0ms; }
.pokemon-evolution-aura-charmeleon .flame-b { left: 22px; height: 46px; animation-delay: 300ms; }
.pokemon-evolution-aura-charmeleon .flame-c { right: -2px; height: 40px; animation-delay: 680ms; }
.pokemon-evolution-aura-charmeleon .ember {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #ffd27a;
    box-shadow: 0 0 8px rgba(255, 160, 51, 0.85);
    animation: pokemon-charmeleon-ember 1.8s linear infinite;
}

.pokemon-evolution-aura-charmeleon .ember-a { left: 15px; bottom: 14px; animation-delay: 0ms; }
.pokemon-evolution-aura-charmeleon .ember-b { left: 33px; bottom: 6px; animation-delay: 700ms; }
.pokemon-evolution-aura-charmeleon .ember-c { right: 14px; bottom: 12px; animation-delay: 1200ms; }

.pokemon-evolution-aura-haunter .ghost {
    position: absolute;
    width: 18px;
    height: 22px;
    background: radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.98) 0%, rgba(243, 243, 255, 0.9) 62%, rgba(255, 255, 255, 0.08) 100%);
    border-radius: 50% 50% 38% 38%;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.78);
    animation: pokemon-haunter-ghost-float 2.5s ease-in-out infinite;
}

.pokemon-evolution-aura-haunter .ghost::before,
.pokemon-evolution-aura-haunter .ghost::after {
    content: "";
    position: absolute;
    top: 7px;
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: #67568a;
}

.pokemon-evolution-aura-haunter .ghost::before { left: 6px; }
.pokemon-evolution-aura-haunter .ghost::after { right: 6px; }
.pokemon-evolution-aura-haunter .ghost-a { left: 7px; top: 10px; animation-delay: 0ms; }
.pokemon-evolution-aura-haunter .ghost-b { right: 10px; top: 14px; animation-delay: 640ms; }
.pokemon-evolution-aura-haunter .ghost-c { left: 30px; top: 0; animation-delay: 1180ms; }
.pokemon-evolution-aura-haunter .ghost-d { left: 22px; bottom: 9px; animation-delay: 1720ms; }

.pokemon-evolution-aura-weezing .gas {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(221, 136, 255, 0.68) 0%, rgba(135, 76, 170, 0.48) 55%, rgba(102, 51, 127, 0.06) 100%);
    filter: blur(2px);
    animation: pokemon-weezing-gas-drift 3s ease-in-out infinite;
}

.pokemon-evolution-aura-weezing .gas-a { left: -2px; top: 10px; width: 26px; height: 20px; animation-delay: 0ms; }
.pokemon-evolution-aura-weezing .gas-b { right: 0; top: 6px; width: 24px; height: 18px; animation-delay: 600ms; }
.pokemon-evolution-aura-weezing .gas-c { left: 16px; bottom: 8px; width: 28px; height: 20px; animation-delay: 1160ms; }
.pokemon-evolution-aura-weezing .gas-d { left: 35px; top: 24px; width: 22px; height: 16px; animation-delay: 1680ms; }
.pokemon-evolution-aura-weezing .gas-e { left: 8px; top: 30px; width: 18px; height: 14px; animation-delay: 2140ms; }

.pokemon-evolution-aura-pidgeotto .tornado {
    position: absolute;
    width: 15px;
    height: 24px;
    border-radius: 50%;
    border-top: 3px solid rgba(218, 245, 255, 0.95);
    border-bottom: 2px solid rgba(126, 203, 235, 0.65);
    border-left: 2px solid transparent;
    border-right: 2px solid transparent;
    box-shadow: 0 0 7px rgba(149, 226, 255, 0.72);
    animation: pokemon-pidgeotto-tornado 1.45s linear infinite;
}

.pokemon-evolution-aura-pidgeotto .tornado::before,
.pokemon-evolution-aura-pidgeotto .tornado::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 50%;
    border-top: 2px solid rgba(232, 250, 255, 0.9);
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
}

.pokemon-evolution-aura-pidgeotto .tornado::before { top: 6px; width: 11px; height: 8px; }
.pokemon-evolution-aura-pidgeotto .tornado::after { top: 12px; width: 7px; height: 6px; }
.pokemon-evolution-aura-pidgeotto .tornado-tl { left: 0; top: 0; animation-delay: 0ms; }
.pokemon-evolution-aura-pidgeotto .tornado-tr { right: 0; top: 0; animation-delay: 320ms; }
.pokemon-evolution-aura-pidgeotto .tornado-bl { left: 0; bottom: 2px; animation-delay: 720ms; }
.pokemon-evolution-aura-pidgeotto .tornado-br { right: 0; bottom: 2px; animation-delay: 1040ms; }

.pokemon-evolution-aura-wartortle .bubble {
    position: absolute;
    bottom: -8px;
    border-radius: 50%;
    border: 2px solid rgba(199, 242, 255, 0.95);
    background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.82) 0%, rgba(189, 240, 255, 0.35) 48%, rgba(120, 200, 255, 0.08) 100%);
    box-shadow: 0 0 7px rgba(137, 221, 255, 0.6);
    animation: pokemon-wartortle-bubbles 2.7s ease-in infinite;
}

.pokemon-evolution-aura-wartortle .bubble-a { left: 8px; width: 10px; height: 10px; animation-delay: 0ms; }
.pokemon-evolution-aura-wartortle .bubble-b { left: 21px; width: 14px; height: 14px; animation-delay: 520ms; }
.pokemon-evolution-aura-wartortle .bubble-c { right: 16px; width: 9px; height: 9px; animation-delay: 940ms; }
.pokemon-evolution-aura-wartortle .bubble-d { right: 7px; width: 16px; height: 16px; animation-delay: 1380ms; }
.pokemon-evolution-aura-wartortle .bubble-e { left: 38px; width: 7px; height: 7px; animation-delay: 1780ms; }
.pokemon-evolution-aura-wartortle .bubble-f { left: 30px; width: 12px; height: 12px; animation-delay: 2200ms; }

.pokemon-evolution-aura-golbat .bat {
    position: absolute;
    width: 18px;
    height: 10px;
    background: #181118;
    clip-path: polygon(0 60%, 12% 22%, 28% 48%, 50% 0, 72% 48%, 88% 22%, 100% 60%, 72% 88%, 50% 62%, 28% 88%);
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.48);
    animation: pokemon-golbat-bat-flutter 2.1s ease-in-out infinite;
}

.pokemon-evolution-aura-golbat .bat-a { left: 6px; top: 13px; animation-delay: 0ms; }
.pokemon-evolution-aura-golbat .bat-b { right: 8px; top: 11px; animation-delay: 560ms; }
.pokemon-evolution-aura-golbat .bat-c { left: 24px; bottom: 13px; animation-delay: 1080ms; }
.pokemon-evolution-aura-golbat .bat-d { right: 18px; bottom: 7px; animation-delay: 1540ms; }

.pokemon-evolution-aura-kingler {
    inset: -2px;
    filter: drop-shadow(0 0 8px rgba(116, 220, 255, 0.45));
}

.pokemon-evolution-aura-kingler .kingler-claw,
.pokemon-evolution-aura-kingler .kingler-bubble {
    position: absolute;
}

.pokemon-evolution-aura-kingler .kingler-claw {
    width: 22px;
    height: 22px;
    animation: pokemon-kingler-claw-sway 2.3s ease-in-out infinite;
}

.pokemon-evolution-aura-kingler .claw-arm {
    position: absolute;
    left: 7px;
    top: 8px;
    width: 10px;
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffa65d 0%, #e55e22 85%);
    box-shadow: 0 0 6px rgba(255, 128, 54, 0.6);
}

.pokemon-evolution-aura-kingler .claw-pincer {
    position: absolute;
    width: 11px;
    height: 9px;
    background: linear-gradient(180deg, #ffba6f 0%, #f1702d 78%);
    box-shadow: 0 0 5px rgba(255, 144, 79, 0.52);
}

.pokemon-evolution-aura-kingler .pincer-a {
    left: 0;
    top: 2px;
    border-radius: 80% 20% 75% 28%;
    transform-origin: 100% 100%;
    animation: pokemon-kingler-pincer-top 1s ease-in-out infinite alternate;
}

.pokemon-evolution-aura-kingler .pincer-b {
    left: 0;
    bottom: 1px;
    border-radius: 75% 28% 80% 20%;
    transform-origin: 100% 0;
    animation: pokemon-kingler-pincer-bottom 1s ease-in-out infinite alternate;
}

.pokemon-evolution-aura-kingler .claw-tl { left: -2px; top: -2px; transform: rotate(-8deg); animation-delay: 0ms; }
.pokemon-evolution-aura-kingler .claw-tr { right: -2px; top: -2px; transform: scaleX(-1) rotate(-8deg); animation-delay: 420ms; }
.pokemon-evolution-aura-kingler .claw-bl { left: -2px; bottom: -2px; transform: rotate(12deg); animation-delay: 820ms; }
.pokemon-evolution-aura-kingler .claw-br { right: -2px; bottom: -2px; transform: scaleX(-1) rotate(12deg); animation-delay: 1280ms; }

.pokemon-evolution-aura-kingler .kingler-bubble {
    bottom: -8px;
    border-radius: 50%;
    border: 2px solid rgba(205, 245, 255, 0.92);
    background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.78) 0%, rgba(178, 233, 255, 0.38) 52%, rgba(118, 198, 255, 0.06) 100%);
    box-shadow: 0 0 6px rgba(133, 221, 255, 0.5);
    animation: pokemon-kingler-bubble-rise 2.5s ease-in infinite;
}

.pokemon-evolution-aura-kingler .bubble-a { left: 6px; width: 7px; height: 7px; animation-delay: 0ms; }
.pokemon-evolution-aura-kingler .bubble-b { left: 18px; width: 10px; height: 10px; animation-delay: 540ms; }
.pokemon-evolution-aura-kingler .bubble-c { right: 18px; width: 8px; height: 8px; animation-delay: 960ms; }
.pokemon-evolution-aura-kingler .bubble-d { right: 6px; width: 12px; height: 12px; animation-delay: 1460ms; }
.pokemon-evolution-aura-kingler .bubble-e { left: 31px; width: 6px; height: 6px; animation-delay: 1960ms; }

.pokemon-evolution-aura-arbok {
    inset: -1px;
    filter: drop-shadow(0 0 10px rgba(186, 88, 255, 0.45));
}

.pokemon-evolution-aura-arbok .arbok-snake,
.pokemon-evolution-aura-arbok .arbok-venom-drip,
.pokemon-evolution-aura-arbok .arbok-venom-drop,
.pokemon-evolution-aura-machoke .machoke-force,
.pokemon-evolution-aura-machoke .machoke-pulse,
.pokemon-evolution-aura-gyarados .gyarados-wave,
.pokemon-evolution-aura-gyarados .gyarados-foam {
    position: absolute;
}

.pokemon-evolution-aura-arbok .arbok-snake {
    top: 6px;
    bottom: 6px;
    width: 10px;
    background: linear-gradient(180deg, rgba(206, 137, 255, 0.96) 0%, rgba(131, 56, 198, 0.96) 55%, rgba(76, 21, 125, 0.88) 100%);
    border-radius: 999px;
    box-shadow: 0 0 8px rgba(169, 92, 255, 0.55);
    animation: pokemon-arbok-snake-climb 2.8s ease-in-out infinite;
}

.pokemon-evolution-aura-arbok .arbok-snake::before,
.pokemon-evolution-aura-arbok .arbok-snake::after {
    content: "";
    position: absolute;
    left: 50%;
    width: 16px;
    height: 16px;
    border: 3px solid rgba(225, 187, 255, 0.9);
    border-color: rgba(225, 187, 255, 0.9) transparent transparent transparent;
    border-radius: 50%;
    transform: translateX(-50%);
}

.pokemon-evolution-aura-arbok .arbok-snake::before { top: 8px; }
.pokemon-evolution-aura-arbok .arbok-snake::after { bottom: 8px; transform: translateX(-50%) rotate(180deg); }
.pokemon-evolution-aura-arbok .snake-left { left: 2px; }
.pokemon-evolution-aura-arbok .snake-right { right: 2px; animation-delay: 1100ms; }

.pokemon-evolution-aura-arbok .arbok-venom-drip {
    top: -2px;
    width: 10px;
    height: 30px;
    background: linear-gradient(180deg, rgba(231, 172, 255, 0.9) 0%, rgba(155, 58, 221, 0.95) 45%, rgba(88, 17, 143, 0.92) 100%);
    border-radius: 999px 999px 70% 70%;
    filter: blur(0.2px);
    animation: pokemon-arbok-venom-drip 1.6s ease-in-out infinite;
}

.pokemon-evolution-aura-arbok .drip-a { left: 10px; animation-delay: 0ms; }
.pokemon-evolution-aura-arbok .drip-b { left: 26px; animation-delay: 420ms; height: 24px; }
.pokemon-evolution-aura-arbok .drip-c { right: 12px; animation-delay: 880ms; height: 28px; }

.pokemon-evolution-aura-arbok .arbok-venom-drop {
    top: 22px;
    width: 7px;
    height: 7px;
    border-radius: 50% 50% 55% 55%;
    background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.78) 0%, rgba(206, 130, 255, 0.92) 40%, rgba(111, 28, 175, 0.96) 100%);
    box-shadow: 0 0 6px rgba(179, 103, 255, 0.58);
    animation: pokemon-arbok-drop-fall 1.8s ease-in infinite;
}

.pokemon-evolution-aura-arbok .drop-a { left: 14px; animation-delay: 220ms; }
.pokemon-evolution-aura-arbok .drop-b { left: 30px; animation-delay: 760ms; }
.pokemon-evolution-aura-arbok .drop-c { right: 16px; animation-delay: 1240ms; }

.pokemon-evolution-aura-machoke {
    inset: -2px;
    filter: drop-shadow(0 0 10px rgba(211, 167, 117, 0.48));
}

.pokemon-evolution-aura-machoke .machoke-force {
    inset: 10px;
    border-radius: 50%;
    border: 2px solid rgba(224, 189, 146, 0.72);
    border-left-color: transparent;
    border-right-color: transparent;
    animation: pokemon-machoke-force-surge 1.7s ease-in-out infinite;
}

.pokemon-evolution-aura-machoke .force-b { inset: 6px 16px; animation-delay: 300ms; opacity: 0.7; }
.pokemon-evolution-aura-machoke .force-c { inset: 18px 6px; animation-delay: 620ms; opacity: 0.52; }

.pokemon-evolution-aura-machoke .machoke-pulse {
    width: 22px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(235, 212, 175, 0.1) 0%, rgba(214, 173, 118, 0.95) 45%, rgba(148, 103, 54, 0.95) 100%);
    box-shadow: 0 0 8px rgba(205, 157, 95, 0.55);
    animation: pokemon-machoke-pulse-strike 1.2s ease-in-out infinite;
}

.pokemon-evolution-aura-machoke .pulse-a { left: 4px; top: 18px; transform: rotate(-18deg); }
.pokemon-evolution-aura-machoke .pulse-b { right: 4px; top: 12px; transform: rotate(18deg); animation-delay: 280ms; }
.pokemon-evolution-aura-machoke .pulse-c { left: 18px; bottom: 12px; width: 28px; transform: rotate(-6deg); animation-delay: 620ms; }

.pokemon-evolution-aura-gyarados {
    inset: -2px;
    filter: drop-shadow(0 0 10px rgba(84, 183, 255, 0.44));
}

.pokemon-evolution-aura-gyarados .gyarados-wave {
    left: -6px;
    right: -6px;
    bottom: -4px;
    height: 18px;
    border-radius: 50% 50% 0 0;
    background: linear-gradient(180deg, rgba(176, 233, 255, 0.88) 0%, rgba(73, 170, 232, 0.94) 55%, rgba(14, 87, 161, 0.98) 100%);
    animation: pokemon-gyarados-wave-roll 2.2s ease-in-out infinite;
}

.pokemon-evolution-aura-gyarados .wave-b { bottom: 0; height: 14px; opacity: 0.78; animation-delay: 420ms; }
.pokemon-evolution-aura-gyarados .wave-c { bottom: 4px; height: 10px; opacity: 0.62; animation-delay: 860ms; }

.pokemon-evolution-aura-gyarados .gyarados-foam {
    bottom: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(211, 246, 255, 0.82) 55%, rgba(147, 222, 255, 0.08) 100%);
    box-shadow: 0 0 6px rgba(208, 242, 255, 0.72);
    animation: pokemon-gyarados-foam-rise 1.8s ease-in infinite;
}

.pokemon-evolution-aura-gyarados .foam-a { left: 10px; animation-delay: 160ms; }
.pokemon-evolution-aura-gyarados .foam-b { left: 28px; animation-delay: 700ms; }
.pokemon-evolution-aura-gyarados .foam-c { right: 14px; animation-delay: 1180ms; }

.pokemon-solar-beam-charge-fx,
.pokemon-thunder-impact-fx,
.pokemon-flamethrower-impact-fx,
.pokemon-water-gun-impact-fx,
.pokemon-leech-seed-impact-fx,
.pokemon-supersonic-fx,
.pokemon-future-sight-fx,
.pokemon-x-cutter-fx,
.pokemon-metal-claw-fx,
.pokemon-bubble-impact-fx,
.pokemon-crabhammer-impact-fx,
.pokemon-harden-fx,
.pokemon-center-healing-fx,
.pokemon-smog-fx,
.pokemon-psybeam-impact-fx,
.pokemon-powder-impact-fx,
.pokemon-whirlwind-fx,
.pokemon-trainer-ball-impact-fx,
.pokemon-x-stats-fx,
.pokemon-rare-candy-fx,
.pokemon-psychic-impact-fx,
.pokemon-calm-mind-fx,
.pokemon-teleport-fx,
.pokemon-leech-life-impact-fx,
.pokemon-bite-fx {
    position: absolute;
    inset: -8px;
    z-index: 112;
    pointer-events: none;
    overflow: visible;
}

.pokemon-solar-beam-travel,
.pokemon-flamethrower-stream,
.pokemon-water-gun-stream,
.pokemon-leech-seed-vine,
.pokemon-bubble-stream,
.pokemon-crabhammer-swing,
.pokemon-psybeam-stream,
.pokemon-powder-stream,
.pokemon-psychic-stream,
.pokemon-leech-life-stream {
    position: fixed;
    height: 18px;
    transform-origin: left center;
    z-index: 8600;
    pointer-events: none;
}

.pokemon-solar-beam-travel .beam-core,
.pokemon-water-gun-stream .water-core,
.pokemon-leech-seed-vine .vine-core,
.pokemon-flamethrower-stream .flame-core,
.pokemon-psybeam-stream .beam-core,
.pokemon-powder-stream .powder-flow,
.pokemon-psychic-stream .beam-core,
.pokemon-leech-life-stream .drain-core {
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    transform: translateY(-50%);
}

.pokemon-solar-beam-travel {
    height: 24px;
}

.pokemon-solar-beam-charge-fx .solar-charge-core {
    position: absolute;
    inset: 18px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,214,0.98) 0%, rgba(255,241,110,0.92) 34%, rgba(146,255,94,0.48) 68%, rgba(146,255,94,0) 100%);
    animation: pokemon-solar-charge-pulse 900ms ease-in-out infinite;
}

.pokemon-solar-beam-charge-fx .solar-charge-ring {
    position: absolute;
    inset: 8px;
    border: 2px solid rgba(228, 255, 129, 0.9);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(217, 255, 94, 0.75);
}

.pokemon-solar-beam-charge-fx .ring-a { animation: pokemon-solar-ring-spin 1.5s linear infinite; }
.pokemon-solar-beam-charge-fx .ring-b { inset: 14px; animation: pokemon-solar-ring-spin-reverse 1.2s linear infinite; }
.pokemon-solar-beam-charge-fx .solar-charge-spark {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff8b0;
    box-shadow: 0 0 8px #e3ff71;
    animation: pokemon-solar-spark-drift 1.1s ease-in-out infinite;
}

.pokemon-solar-beam-charge-fx .spark-a { left: 18px; top: 18px; }
.pokemon-solar-beam-charge-fx .spark-b { right: 14px; top: 26px; animation-delay: 280ms; }
.pokemon-solar-beam-charge-fx .spark-c { left: 32px; bottom: 10px; animation-delay: 560ms; }

.pokemon-solar-beam-travel .beam-core {
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(244,255,156,0.4) 0%, rgba(241,255,124,1) 18%, rgba(186,255,104,1) 52%, rgba(255,255,220,0.72) 100%);
    box-shadow: 0 0 10px rgba(219, 255, 102, 0.9), 0 0 18px rgba(156, 255, 92, 0.52);
}

.pokemon-solar-beam-travel .beam-glow,
.pokemon-solar-beam-travel .beam-spark {
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    transform: translateY(-50%);
}

.pokemon-solar-beam-travel .beam-glow {
    height: 20px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(228,255,120,0.12), rgba(236,255,169,0.58), rgba(140,255,88,0.12));
    filter: blur(2px);
}

.pokemon-solar-beam-travel .beam-spark {
    height: 24px;
    background: repeating-linear-gradient(90deg, transparent 0 18px, rgba(255,255,230,0.75) 18px 23px, transparent 23px 34px);
    animation: pokemon-beam-scroll 500ms linear infinite;
}

.pokemon-solar-beam-impact-fx .impact-flash,
.pokemon-solar-beam-impact-fx .impact-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.pokemon-solar-beam-impact-fx .impact-flash {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(243,255,157,0.82) 42%, rgba(243,255,157,0) 100%);
    animation: pokemon-impact-flash 820ms ease-out both;
}

.pokemon-solar-beam-impact-fx .impact-ring {
    border: 2px solid rgba(235,255,154,0.82);
    border-radius: 50%;
    animation: pokemon-impact-ring 980ms ease-out both;
}

.pokemon-solar-beam-impact-fx .ring-a { width: 38px; height: 38px; }
.pokemon-solar-beam-impact-fx .ring-b { width: 60px; height: 60px; animation-delay: 120ms; }

.pokemon-thunder-impact-fx .thunder-column,
.pokemon-thunder-impact-fx .thunder-bolt,
.pokemon-thunder-impact-fx .thunder-ring {
    position: absolute;
}

.pokemon-thunder-impact-fx .thunder-column {
    left: 50%;
    top: -18px;
    width: 16px;
    height: 100px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,198,0.95) 14%, rgba(255,230,67,0.98) 54%, rgba(255,255,255,0) 100%);
    box-shadow: 0 0 16px rgba(255, 225, 74, 0.95);
    animation: pokemon-thunder-column 780ms ease-out both;
}

.pokemon-thunder-impact-fx .thunder-bolt {
    left: 50%;
    top: 6px;
    width: 18px;
    height: 58px;
    background: linear-gradient(180deg, rgba(255,250,203,1) 0%, rgba(255,221,40,0.98) 100%);
    clip-path: polygon(54% 0, 84% 0, 60% 34%, 100% 34%, 36% 100%, 48% 58%, 18% 58%);
    box-shadow: 0 0 10px rgba(255, 227, 89, 0.95);
    animation: pokemon-thunder-bolt 760ms ease-out both;
}

.pokemon-thunder-impact-fx .bolt-a { transform: translateX(-85%) rotate(-6deg); }
.pokemon-thunder-impact-fx .bolt-b { transform: translateX(-18%) rotate(8deg); animation-delay: 90ms; }
.pokemon-thunder-impact-fx .thunder-ring {
    left: 50%;
    bottom: 8px;
    width: 52px;
    height: 20px;
    transform: translateX(-50%);
    border-radius: 50%;
    border: 2px solid rgba(255, 235, 95, 0.82);
    animation: pokemon-thunder-ring 840ms ease-out both;
}

.pokemon-flamethrower-stream .flame-core {
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255,214,112,0.15) 0%, rgba(255,175,55,0.92) 18%, rgba(255,94,30,0.98) 52%, rgba(255,232,160,0.2) 100%);
    box-shadow: 0 0 12px rgba(255, 100, 35, 0.88);
}

.pokemon-flamethrower-stream .flame-plume {
    position: absolute;
    top: 50%;
    width: 18px;
    height: 18px;
    border-radius: 50% 50% 45% 45%;
    background: radial-gradient(circle at 50% 65%, rgba(255,255,216,0.88) 0%, rgba(255,180,72,0.9) 34%, rgba(255,87,26,0.8) 70%, rgba(255,87,26,0) 100%);
    animation: pokemon-flame-plume 540ms ease-in-out infinite;
}

.pokemon-flamethrower-stream .plume-a { left: 20%; transform: translateY(-50%); }
.pokemon-flamethrower-stream .plume-b { left: 52%; transform: translateY(-50%); animation-delay: 160ms; }
.pokemon-flamethrower-stream .plume-c { left: 78%; transform: translateY(-50%); animation-delay: 300ms; }

.pokemon-flamethrower-impact-fx .impact-fire {
    position: absolute;
    bottom: 8px;
    width: 26px;
    height: 42px;
    background: radial-gradient(circle at 50% 75%, rgba(255,245,202,0.96) 0%, rgba(255,173,59,0.94) 35%, rgba(255,83,21,0.84) 68%, rgba(255,83,21,0) 100%);
    border-radius: 55% 55% 42% 42%;
    animation: pokemon-flame-rise 900ms ease-out infinite;
}

.pokemon-flamethrower-impact-fx .fire-a { left: 4px; animation-delay: 0ms; }
.pokemon-flamethrower-impact-fx .fire-b { left: 24px; height: 48px; animation-delay: 140ms; }
.pokemon-flamethrower-impact-fx .fire-c { right: 2px; animation-delay: 300ms; }

.pokemon-water-gun-stream .water-core {
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(211,247,255,0.2) 0%, rgba(120,226,255,0.96) 26%, rgba(73,168,255,0.96) 66%, rgba(211,247,255,0.28) 100%);
    box-shadow: 0 0 8px rgba(94, 204, 255, 0.8);
}

.pokemon-water-gun-stream .water-splash {
    position: absolute;
    top: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(197, 245, 255, 0.82);
    box-shadow: 0 0 6px rgba(105, 208, 255, 0.76);
    animation: pokemon-water-droplet 520ms ease-in-out infinite;
}

.pokemon-water-gun-stream .splash-a { left: 28%; transform: translateY(-50%); }
.pokemon-water-gun-stream .splash-b { left: 72%; transform: translateY(-50%); animation-delay: 180ms; }

.pokemon-water-gun-impact-fx .water-impact-ring,
.pokemon-water-gun-impact-fx .water-impact-drop {
    position: absolute;
}

.pokemon-water-gun-impact-fx .water-impact-ring {
    left: 50%;
    top: 50%;
    width: 48px;
    height: 48px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    border: 2px solid rgba(152, 230, 255, 0.9);
    animation: pokemon-impact-ring 900ms ease-out both;
}

.pokemon-water-gun-impact-fx .water-impact-drop {
    width: 9px;
    height: 14px;
    border-radius: 50% 50% 55% 55%;
    background: linear-gradient(180deg, rgba(224,249,255,0.92), rgba(91,193,255,0.92));
    animation: pokemon-water-impact-splash 850ms ease-out both;
}

.pokemon-water-gun-impact-fx .drop-a { left: 18px; top: 14px; }
.pokemon-water-gun-impact-fx .drop-b { left: 34px; top: 6px; animation-delay: 120ms; }
.pokemon-water-gun-impact-fx .drop-c { right: 14px; top: 18px; animation-delay: 200ms; }

.pokemon-bubble-stream,
.pokemon-crabhammer-swing {
    width: 24px;
    height: 24px;
}

.pokemon-bubble-stream {
    animation: pokemon-projectile-cast 1080ms cubic-bezier(0.16, 0.92, 0.28, 1) forwards;
}

.pokemon-crabhammer-swing {
    animation: pokemon-projectile-cast 950ms cubic-bezier(0.12, 0.9, 0.3, 1) forwards;
}

.pokemon-bubble-stream .bubble-burst {
    position: absolute;
    border-radius: 50%;
    border: 2px solid rgba(214, 247, 255, 0.94);
    background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.82) 0%, rgba(180, 241, 255, 0.36) 50%, rgba(125, 210, 255, 0.08) 100%);
    box-shadow: 0 0 7px rgba(114, 213, 255, 0.55);
    animation: pokemon-bubble-drift 1s ease-in-out infinite;
}

.pokemon-bubble-stream .bubble-a { left: 0; top: 6px; width: 10px; height: 10px; animation-delay: 0ms; }
.pokemon-bubble-stream .bubble-b { left: 7px; top: -1px; width: 8px; height: 8px; animation-delay: 180ms; }
.pokemon-bubble-stream .bubble-c { left: 13px; top: 10px; width: 9px; height: 9px; animation-delay: 330ms; }
.pokemon-bubble-stream .bubble-d { left: 8px; top: 16px; width: 7px; height: 7px; animation-delay: 510ms; }

.pokemon-bubble-impact-fx .bubble-ring,
.pokemon-bubble-impact-fx .bubble-pop,
.pokemon-crabhammer-impact-fx .hammer-burst,
.pokemon-crabhammer-impact-fx .hammer-star,
.pokemon-metal-claw-fx .metal-slash,
.pokemon-metal-claw-fx .metal-spark,
.pokemon-harden-fx .harden-shell,
.pokemon-harden-fx .harden-shard {
    position: absolute;
}

.pokemon-bubble-impact-fx .bubble-ring {
    inset: 10px;
    border-radius: 50%;
    border: 2px solid rgba(196, 244, 255, 0.86);
    opacity: 0;
    animation: pokemon-bubble-ring-expand 1.1s ease-out both;
}

.pokemon-bubble-impact-fx .ring-b { inset: 22px; animation-delay: 180ms; }

.pokemon-bubble-impact-fx .bubble-pop {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid rgba(225, 250, 255, 0.96);
    box-shadow: 0 0 6px rgba(141, 224, 255, 0.55);
    animation: pokemon-bubble-pop-fx 1s ease-out both;
}

.pokemon-bubble-impact-fx .pop-a { left: 10px; top: 18px; animation-delay: 0ms; }
.pokemon-bubble-impact-fx .pop-b { right: 14px; top: 12px; animation-delay: 150ms; }
.pokemon-bubble-impact-fx .pop-c { left: 26px; bottom: 10px; animation-delay: 320ms; }

.pokemon-metal-claw-fx .metal-slash {
    top: 14px;
    width: 76px;
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.92) 20%, rgba(169, 225, 255, 0.95) 55%, rgba(96, 154, 235, 0.08) 100%);
    box-shadow: 0 0 10px rgba(190, 236, 255, 0.8);
    animation: pokemon-metal-claw-slice 820ms ease-out both;
}

.pokemon-metal-claw-fx .slash-a { left: 2px; transform: rotate(-22deg); }
.pokemon-metal-claw-fx .slash-b { left: 10px; top: 26px; transform: rotate(-14deg); animation-delay: 100ms; }
.pokemon-metal-claw-fx .slash-c { left: 14px; top: 40px; transform: rotate(-6deg); animation-delay: 200ms; }

.pokemon-metal-claw-fx .metal-spark {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.98) 0%, rgba(190, 234, 255, 0.86) 48%, rgba(255,255,255,0.02) 100%);
    box-shadow: 0 0 9px rgba(223, 247, 255, 0.82);
    animation: pokemon-metal-spark-burst 700ms ease-out both;
}

.pokemon-metal-claw-fx .spark-a { right: 18px; top: 20px; }
.pokemon-metal-claw-fx .spark-b { right: 30px; bottom: 18px; animation-delay: 160ms; }

.pokemon-crabhammer-swing .hammer-arc,
.pokemon-crabhammer-swing .hammer-head {
    position: absolute;
}

.pokemon-crabhammer-swing .hammer-arc {
    inset: 0;
    border-radius: 50%;
    border-top: 4px solid rgba(179, 235, 255, 0.92);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-bottom: 4px solid transparent;
    animation: pokemon-crabhammer-arc 950ms ease-out both;
}

.pokemon-crabhammer-swing .arc-b { inset: 4px; border-top-color: rgba(255, 179, 118, 0.9); animation-delay: 80ms; }

.pokemon-crabhammer-swing .hammer-head {
    left: 7px;
    top: 7px;
    width: 10px;
    height: 10px;
    border-radius: 45% 55% 55% 45%;
    background: radial-gradient(circle at 40% 40%, #ffd4a0 0%, #ff9147 40%, #eb5f28 100%);
    box-shadow: 0 0 8px rgba(255, 130, 64, 0.75);
    animation: pokemon-crabhammer-head 950ms ease-out both;
}

.pokemon-crabhammer-impact-fx .hammer-burst {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 3px solid rgba(179, 231, 255, 0.88);
    opacity: 0;
    animation: pokemon-crabhammer-burst 1s ease-out both;
}

.pokemon-crabhammer-impact-fx .burst-a { left: 14px; top: 16px; }
.pokemon-crabhammer-impact-fx .burst-b { right: 14px; top: 8px; animation-delay: 120ms; }
.pokemon-crabhammer-impact-fx .burst-c { left: 28px; bottom: 10px; animation-delay: 240ms; }

.pokemon-crabhammer-impact-fx .hammer-star {
    color: #ffe18a;
    font-size: 18px;
    font-weight: 900;
    text-shadow: 0 0 8px rgba(255, 224, 126, 0.88);
    animation: pokemon-crabhammer-star 980ms ease-out both;
}

.pokemon-crabhammer-impact-fx .star-a { left: 18px; top: 8px; }
.pokemon-crabhammer-impact-fx .star-a::before { content: "✦"; }
.pokemon-crabhammer-impact-fx .star-b { right: 18px; bottom: 10px; animation-delay: 160ms; }
.pokemon-crabhammer-impact-fx .star-b::before { content: "✦"; }

.pokemon-harden-fx .harden-shell {
    inset: 8px;
    border-radius: 18px;
    border: 3px solid rgba(198, 236, 255, 0.88);
    background: linear-gradient(180deg, rgba(227, 247, 255, 0.22) 0%, rgba(118, 176, 222, 0.12) 100%);
    box-shadow: 0 0 12px rgba(138, 204, 255, 0.45);
    animation: pokemon-harden-shell-pulse 1.2s ease-in-out both;
}

.pokemon-harden-fx .shell-b { inset: 18px; animation-delay: 140ms; }

.pokemon-harden-fx .harden-shard {
    width: 12px;
    height: 12px;
    background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(162, 203, 236, 0.92) 60%, rgba(91, 132, 173, 0.2) 100%);
    clip-path: polygon(50% 0, 100% 45%, 68% 100%, 30% 100%, 0 45%);
    box-shadow: 0 0 8px rgba(186, 228, 255, 0.7);
    animation: pokemon-harden-shard-orbit 1.2s ease-out both;
}

.pokemon-harden-fx .shard-a { left: 10px; top: 14px; }
.pokemon-harden-fx .shard-b { right: 10px; top: 20px; animation-delay: 90ms; }
.pokemon-harden-fx .shard-c { left: 32px; bottom: 10px; animation-delay: 180ms; }

.pokemon-leech-seed-vine .vine-core {
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(84,169,50,0.3) 0%, rgba(118,211,80,0.95) 28%, rgba(79,146,44,0.98) 72%, rgba(84,169,50,0.18) 100%);
}

.pokemon-leech-seed-vine .vine-leaf,
.pokemon-leech-seed-vine .seed-pod {
    position: absolute;
    top: 50%;
}

.pokemon-leech-seed-vine .vine-leaf {
    width: 10px;
    height: 16px;
    background: linear-gradient(180deg, #ccff88, #63b63e);
    border-radius: 70% 0 70% 0;
    animation: pokemon-leaf-flicker 650ms ease-in-out infinite;
}

.pokemon-leech-seed-vine .leaf-a { left: 34%; transform: translateY(-50%) rotate(14deg); }
.pokemon-leech-seed-vine .leaf-b { left: 66%; transform: translateY(-50%) rotate(-18deg); animation-delay: 140ms; }
.pokemon-leech-seed-vine .seed-pod {
    right: -2px;
    width: 14px;
    height: 14px;
    transform: translateY(-50%);
    border-radius: 50%;
    background: radial-gradient(circle, #efffb4 0%, #83c95a 58%, #4d7c2e 100%);
    box-shadow: 0 0 7px rgba(130, 207, 90, 0.7);
}

.pokemon-leech-seed-impact-fx .seed-bloom,
.pokemon-leech-seed-impact-fx .seed-vine {
    position: absolute;
}

.pokemon-leech-seed-impact-fx .seed-bloom {
    left: 50%;
    top: 50%;
    width: 30px;
    height: 30px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(236,255,169,0.95) 0%, rgba(110,195,75,0.82) 45%, rgba(110,195,75,0) 100%);
    animation: pokemon-impact-flash 900ms ease-out both;
}

.pokemon-leech-seed-impact-fx .seed-vine {
    width: 26px;
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(97,175,57,0.15), rgba(97,175,57,0.92), rgba(97,175,57,0.15));
    animation: pokemon-seed-vine-grow 900ms ease-out both;
}

.pokemon-leech-seed-impact-fx .vine-a { left: 8px; top: 22px; transform: rotate(28deg); }
.pokemon-leech-seed-impact-fx .vine-b { right: 8px; top: 30px; transform: rotate(-34deg); animation-delay: 100ms; }

.pokemon-supersonic-fx .sound-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 50%;
    border: 2px solid rgba(201, 241, 255, 0.86);
    box-shadow: 0 0 8px rgba(144, 219, 255, 0.72);
    transform: translate(-50%, -50%);
    animation: pokemon-sound-ring 1.05s ease-out infinite;
}

.pokemon-supersonic-fx .ring-a { width: 28px; height: 28px; }
.pokemon-supersonic-fx .ring-b { width: 40px; height: 40px; animation-delay: 180ms; }
.pokemon-supersonic-fx .ring-c { width: 54px; height: 54px; animation-delay: 360ms; }

.pokemon-future-sight-fx .future-reticle,
.pokemon-future-sight-fx .future-eye,
.pokemon-future-sight-fx .future-rune {
    position: absolute;
}

.pokemon-future-sight-fx .future-reticle {
    inset: 12px;
    border: 2px solid rgba(255, 171, 253, 0.84);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(231, 118, 255, 0.7);
    animation: pokemon-future-reticle 1.45s linear infinite;
}

.pokemon-future-sight-fx .future-eye {
    left: 50%;
    top: 50%;
    width: 22px;
    height: 12px;
    transform: translate(-50%, -50%);
    border-radius: 50% / 70%;
    border: 2px solid rgba(255, 213, 255, 0.92);
    background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.95) 0%, rgba(255,150,247,0.72) 40%, rgba(255,150,247,0) 100%);
}

.pokemon-future-sight-fx .future-rune {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ffb2fb;
    box-shadow: 0 0 7px rgba(255, 145, 249, 0.78);
    animation: pokemon-future-rune-orbit 1.1s ease-in-out infinite;
}

.pokemon-future-sight-fx .rune-a { left: 18px; top: 18px; }
.pokemon-future-sight-fx .rune-b { right: 18px; bottom: 14px; animation-delay: 280ms; }

.pokemon-x-cutter-fx .x-slash,
.pokemon-x-cutter-fx .x-spark {
    position: absolute;
}

.pokemon-x-cutter-fx .x-slash {
    left: 6px;
    top: 35px;
    width: 66px;
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(226,255,178,0.05), rgba(168,255,98,0.92), rgba(226,255,178,0.05));
    box-shadow: 0 0 10px rgba(145, 255, 92, 0.78);
    animation: pokemon-x-slash 820ms ease-out both;
}

.pokemon-x-cutter-fx .slash-a { transform: rotate(38deg); }
.pokemon-x-cutter-fx .slash-b { transform: rotate(-38deg); animation-delay: 80ms; }
.pokemon-x-cutter-fx .x-spark {
    left: 50%;
    top: 50%;
    width: 10px;
    height: 10px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: rgba(227, 255, 187, 0.92);
    box-shadow: 0 0 10px rgba(177, 255, 102, 0.9);
    animation: pokemon-impact-flash 700ms ease-out both;
}

.pokemon-center-healing-fx .heal-wave,
.pokemon-center-healing-fx .heal-plus,
.pokemon-center-healing-fx .heal-heart {
    position: absolute;
}

.pokemon-center-healing-fx .heal-wave {
    left: 50%;
    top: 50%;
    border-radius: 50%;
    border: 2px solid rgba(152, 255, 165, 0.82);
    transform: translate(-50%, -50%);
    animation: pokemon-heal-wave 1.1s ease-out infinite;
}

.pokemon-center-healing-fx .wave-a { width: 30px; height: 30px; }
.pokemon-center-healing-fx .wave-b { width: 48px; height: 48px; animation-delay: 180ms; }
.pokemon-center-healing-fx .heal-plus {
    color: #89ff92;
    font-size: 18px;
    font-weight: 900;
    text-shadow: 0 0 7px rgba(135,255,149,0.95);
    animation: pokemon-center-plus 1.2s ease-out infinite;
}

.pokemon-center-healing-fx .plus-a { left: 20px; bottom: 12px; }
.pokemon-center-healing-fx .plus-b { right: 18px; top: 16px; animation-delay: 220ms; }
.pokemon-center-healing-fx .heal-heart {
    left: 50%;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translate(-50%, -50%) rotate(-45deg);
    background: #ffe8f3;
    animation: pokemon-heal-heart 1.2s ease-in-out infinite;
}

.pokemon-center-healing-fx .heal-heart::before,
.pokemon-center-healing-fx .heal-heart::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 18px;
    background: #ffe8f3;
    border-radius: 50%;
}

.pokemon-center-healing-fx .heal-heart::before { left: 0; top: -9px; }
.pokemon-center-healing-fx .heal-heart::after { left: 9px; top: 0; }

.pokemon-smog-fx .smog-cloud {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(193,127,232,0.68) 0%, rgba(130,82,179,0.54) 55%, rgba(130,82,179,0) 100%);
    filter: blur(2px);
    animation: pokemon-smog-cloud 1.3s ease-in-out infinite;
}

.pokemon-smog-fx .cloud-a { left: 2px; top: 18px; width: 26px; height: 18px; }
.pokemon-smog-fx .cloud-b { right: 6px; top: 10px; width: 24px; height: 18px; animation-delay: 180ms; }
.pokemon-smog-fx .cloud-c { left: 22px; bottom: 10px; width: 28px; height: 20px; animation-delay: 340ms; }
.pokemon-smog-fx .cloud-d { right: 12px; bottom: 16px; width: 18px; height: 14px; animation-delay: 520ms; }

.pokemon-koffing-team-fog-fx {
    position: absolute;
    inset: -6px;
    z-index: 83;
    pointer-events: none;
    overflow: hidden;
    --fog-density: 2;
}

.pokemon-koffing-team-fog-fx .team-fog-cloud,
.pokemon-koffing-team-fog-fx .team-fog-veil {
    position: absolute;
    border-radius: 999px;
    pointer-events: none;
}

.pokemon-koffing-team-fog-fx .team-fog-cloud {
    background: radial-gradient(circle, rgba(186, 118, 232, 0.86) 0%, rgba(113, 68, 156, 0.62) 56%, rgba(113, 68, 156, 0) 100%);
    filter: blur(5px);
    opacity: calc(0.48 + (var(--fog-density) * 0.05));
    animation: pokemon-koffing-fog-drift 1.8s ease-in-out infinite;
}

.pokemon-koffing-team-fog-fx.smokescreen .team-fog-cloud {
    background: radial-gradient(circle, rgba(170, 170, 170, 0.78) 0%, rgba(102, 102, 102, 0.56) 58%, rgba(102, 102, 102, 0) 100%);
}

.pokemon-koffing-team-fog-fx.haze .team-fog-cloud {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.68) 0%, rgba(218, 232, 238, 0.46) 58%, rgba(218, 232, 238, 0) 100%);
}

.pokemon-koffing-team-fog-fx .team-fog-veil {
    inset: 8px;
    background: radial-gradient(circle, rgba(156, 100, 212, 0.16) 0%, rgba(93, 48, 135, 0.3) 48%, rgba(93, 48, 135, 0) 100%);
    filter: blur(8px);
    animation: pokemon-koffing-fog-veil 1.35s ease-in-out infinite;
}

.pokemon-koffing-team-fog-fx.smokescreen .team-fog-veil {
    background: radial-gradient(circle, rgba(155, 155, 155, 0.14) 0%, rgba(72, 72, 72, 0.28) 50%, rgba(72, 72, 72, 0) 100%);
}

.pokemon-koffing-team-fog-fx.haze .team-fog-veil {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.16) 0%, rgba(207, 224, 231, 0.24) 50%, rgba(207, 224, 231, 0) 100%);
}

.pokemon-koffing-team-fog-fx .veil-b {
    inset: 16px 10px 10px;
    animation-delay: 220ms;
}

.pokemon-koffing-team-fog-fx .cloud-a { left: -2px; top: 8px; width: 34px; height: 24px; }
.pokemon-koffing-team-fog-fx .cloud-b { right: 0; top: 0; width: 30px; height: 22px; animation-delay: 160ms; }
.pokemon-koffing-team-fog-fx .cloud-c { left: 16px; top: 18px; width: 32px; height: 24px; animation-delay: 320ms; }
.pokemon-koffing-team-fog-fx .cloud-d { right: 10px; bottom: 8px; width: 28px; height: 21px; animation-delay: 470ms; }
.pokemon-koffing-team-fog-fx .cloud-e { left: 4px; bottom: 4px; width: 24px; height: 18px; animation-delay: 620ms; }
.pokemon-koffing-team-fog-fx .cloud-f { left: 26px; top: -2px; width: 22px; height: 18px; animation-delay: 790ms; }
.pokemon-koffing-team-fog-fx .cloud-g { right: 22px; top: 20px; width: 22px; height: 18px; animation-delay: 940ms; }
.pokemon-koffing-team-fog-fx .cloud-h { left: 30px; bottom: 0; width: 26px; height: 18px; animation-delay: 1080ms; }

.pokemon-ekans-poison-fang-fx,
.pokemon-ekans-toxic-impact-fx,
.pokemon-ekans-shed-skin-fx,
.pokemon-ekans-crunch-fx,
.pokemon-machop-brick-break-fx,
.pokemon-machop-counter-fx,
.pokemon-machop-bulk-up-cast-fx,
.pokemon-machop-bulk-up-status,
.pokemon-machop-taunt-fx,
.pokemon-ekans-toxic-status {
    position: absolute;
    inset: 0;
    z-index: 83;
    pointer-events: none;
    overflow: visible;
}

.pokemon-ekans-poison-fang-fx .fang-bite,
.pokemon-ekans-crunch-fx .crunch-bite {
    position: absolute;
    inset: 0;
    opacity: 0;
    animation: pokemon-bite-impact 620ms ease-out both;
}

.pokemon-ekans-poison-fang-fx .bite-2,
.pokemon-ekans-crunch-fx .bite-2 { animation-delay: 180ms; }
.pokemon-ekans-poison-fang-fx .bite-3,
.pokemon-ekans-crunch-fx .bite-3 { animation-delay: 360ms; }

.pokemon-ekans-poison-fang-fx .fang-top,
.pokemon-ekans-poison-fang-fx .fang-bottom,
.pokemon-ekans-crunch-fx .crunch-top,
.pokemon-ekans-crunch-fx .crunch-bottom {
    position: absolute;
    left: 8px;
    width: 59px;
    height: 24px;
    clip-path: polygon(0 0, 16% 28%, 32% 0, 48% 28%, 64% 0, 80% 28%, 100% 0, 100% 100%, 0 100%);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.pokemon-ekans-poison-fang-fx .fang-top,
.pokemon-ekans-poison-fang-fx .fang-bottom {
    background: linear-gradient(180deg, #f0d7ff 0%, #a252da 30%, #5a1d8d 100%);
}

.pokemon-ekans-crunch-fx .crunch-top,
.pokemon-ekans-crunch-fx .crunch-bottom {
    background: linear-gradient(180deg, #ffffff 0%, #f4f4f4 44%, #c8c8c8 100%);
}

.pokemon-ekans-poison-fang-fx .fang-top,
.pokemon-ekans-crunch-fx .crunch-top { top: 6px; transform-origin: center bottom; animation: pokemon-bite-top 620ms ease-out both; }
.pokemon-ekans-poison-fang-fx .fang-bottom,
.pokemon-ekans-crunch-fx .crunch-bottom { bottom: 6px; transform-origin: center top; transform: rotate(180deg); animation: pokemon-bite-bottom 620ms ease-out both; }

.pokemon-ekans-toxic-stream {
    position: fixed;
    z-index: 9002;
    height: 12px;
    transform-origin: left center;
    pointer-events: none;
}

.pokemon-ekans-toxic-stream .goo-core {
    position: absolute;
    inset: 2px 0;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(138, 255, 70, 0), rgba(148, 255, 88, 0.72) 12%, rgba(105, 200, 49, 0.95) 48%, rgba(84, 154, 39, 0.88) 78%, rgba(84, 154, 39, 0));
    box-shadow: 0 0 8px rgba(131, 226, 53, 0.75);
}

.pokemon-ekans-toxic-stream .goo-blob {
    position: absolute;
    top: 50%;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    border-radius: 50%;
    background: radial-gradient(circle, #d8ff8f 0%, #74ce37 42%, rgba(116, 206, 55, 0) 72%);
    animation: pokemon-toxic-blob 720ms ease-out infinite;
}

.pokemon-ekans-toxic-stream .blob-a { left: 28%; }
.pokemon-ekans-toxic-stream .blob-b { left: 66%; animation-delay: 160ms; }
.pokemon-ekans-toxic-stream.doubled .blob-c { left: 46%; animation-delay: 260ms; }
.pokemon-ekans-toxic-stream.doubled .blob-d { left: 84%; animation-delay: 360ms; }

.pokemon-ekans-toxic-impact-fx .toxic-bubble,
.pokemon-ekans-toxic-status .bubble {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(216, 255, 143, 0.96) 0%, rgba(117, 214, 54, 0.82) 52%, rgba(117, 214, 54, 0) 74%);
    box-shadow: 0 0 8px rgba(139, 236, 61, 0.72);
    animation: pokemon-toxic-bubble-rise 1.2s ease-in infinite;
}

.pokemon-ekans-toxic-impact-fx .bubble-a,
.pokemon-ekans-toxic-status .bubble-a { left: 16px; bottom: 10px; width: 10px; height: 10px; }
.pokemon-ekans-toxic-impact-fx .bubble-b,
.pokemon-ekans-toxic-status .bubble-b { left: 34px; bottom: 8px; width: 12px; height: 12px; animation-delay: 220ms; }
.pokemon-ekans-toxic-impact-fx .bubble-c,
.pokemon-ekans-toxic-status .bubble-c { right: 14px; bottom: 12px; width: 9px; height: 9px; animation-delay: 420ms; }
.pokemon-ekans-toxic-status .bubble-d { right: 26px; bottom: 18px; width: 8px; height: 8px; animation-delay: 620ms; }

.pokemon-ekans-toxic-impact-fx .toxic-splash,
.pokemon-ekans-toxic-status .toxic-goo {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(128, 212, 54, 0.46) 0%, rgba(61, 115, 22, 0.42) 58%, rgba(61, 115, 22, 0) 100%);
    filter: blur(3px);
}

.pokemon-ekans-toxic-impact-fx .splash-a,
.pokemon-ekans-toxic-status .goo-a { inset: 12px 12px 18px; }
.pokemon-ekans-toxic-impact-fx .splash-b,
.pokemon-ekans-toxic-status .goo-b { inset: 24px 18px 10px 20px; animation-delay: 240ms; }
.pokemon-ekans-toxic-status {
    z-index: 62;
    opacity: calc(0.52 + (min(2, var(--toxic-stack-count, 1)) * 0.14));
}

.pokemon-ekans-shed-skin-fx .shed-layer {
    position: absolute;
    inset: 3px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(247, 233, 214, 0.82), rgba(181, 154, 128, 0.22));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.42), 0 0 10px rgba(211, 194, 148, 0.3);
    animation: pokemon-shed-skin-peel 1900ms ease-in-out both;
}

.pokemon-ekans-shed-skin-fx .layer-b { animation-delay: 180ms; opacity: 0.72; }
.pokemon-ekans-shed-skin-fx .shed-heal {
    position: absolute;
    color: #caff8b;
    font: 900 18px/1 'Franklin', Arial, sans-serif;
    text-shadow: 0 0 8px rgba(154, 255, 108, 0.92), 1px 1px 0 #163109;
    animation: pokemon-heal-plus-float 1200ms ease-out both;
}

.pokemon-ekans-shed-skin-fx .heal-a { left: 12px; top: 14px; }
.pokemon-ekans-shed-skin-fx .heal-b { left: 30px; top: 6px; animation-delay: 180ms; }
.pokemon-ekans-shed-skin-fx .heal-c { right: 12px; top: 20px; animation-delay: 320ms; }

.pokemon-machop-brick-break-fx,
.pokemon-machop-counter-fx,
.pokemon-machop-bulk-up-cast-fx,
.pokemon-machop-bulk-up-status {
    --machop-power: 1;
}

.pokemon-machop-brick-break-fx .karate-hand,
.pokemon-machop-counter-fx .counter-hand,
.pokemon-machop-taunt-fx .taunt-hand {
    position: absolute;
    background: linear-gradient(180deg, rgba(36,36,36,0.98), rgba(0,0,0,0.86));
    box-shadow: 0 0 10px rgba(0,0,0,0.55);
}

.pokemon-machop-brick-break-fx .karate-hand {
    left: 27px;
    top: -28px;
    width: 20px;
    height: 54px;
    border-radius: 12px 12px 8px 8px;
    transform-origin: center bottom;
    animation: pokemon-machop-hand-chop 700ms cubic-bezier(0.16, 0.84, 0.22, 1) both;
}

.pokemon-machop-counter-fx .counter-hand {
    left: 22px;
    top: 18px;
    width: 30px;
    height: 24px;
    border-radius: 12px;
    animation: pokemon-machop-counter-press 820ms ease-out both;
}

.pokemon-machop-counter-fx.machoke .counter-hand,
.pokemon-machop-brick-break-fx.machoke .karate-hand {
    filter: drop-shadow(0 0 10px rgba(255,255,255,0.16));
}

.pokemon-machop-brick-break-fx .karate-impact,
.pokemon-machop-counter-fx .counter-pressure {
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 50%;
    border: 3px solid rgba(255,255,255,0.82);
    opacity: 0;
    animation: pokemon-machop-impact-ring 700ms ease-out both;
}

.pokemon-machop-brick-break-fx .impact-a,
.pokemon-machop-counter-fx .pressure-a { width: 32px; height: 32px; margin-left: -16px; margin-top: -16px; }
.pokemon-machop-brick-break-fx .impact-b,
.pokemon-machop-counter-fx .pressure-b { width: 48px; height: 48px; margin-left: -24px; margin-top: -24px; animation-delay: 120ms; }

.pokemon-machop-bulk-up-cast-fx .bulk-cast-ring,
.pokemon-machop-bulk-up-status .bulk-ring {
    position: absolute;
    inset: 6px;
    border: 2px solid rgba(247, 255, 178, 0.82);
    border-radius: 50%;
    box-shadow: 0 0 calc(8px + var(--bulk-intensity, var(--machop-power, 1)) * 2px) rgba(244, 255, 121, 0.58);
    animation: pokemon-machop-bulk-ring 1.2s ease-in-out infinite;
}

.pokemon-machop-bulk-up-cast-fx .ring-b,
.pokemon-machop-bulk-up-status .ring-b { inset: 12px; animation-delay: 180ms; opacity: 0.7; }
.pokemon-machop-bulk-up-cast-fx .ring-c,
.pokemon-machop-bulk-up-status .ring-c { inset: 18px; animation-delay: 360ms; opacity: 0.5; }

.pokemon-machop-bulk-up-cast-fx .bulk-cast-burst,
.pokemon-machop-bulk-up-status .bulk-spark {
    position: absolute;
    width: 8px;
    height: 24px;
    background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,214,74,0.1));
    border-radius: 999px;
    box-shadow: 0 0 10px rgba(255, 236, 121, 0.62);
    animation: pokemon-machop-bulk-spark 900ms ease-out infinite;
}

.pokemon-machop-bulk-up-cast-fx .burst-a,
.pokemon-machop-bulk-up-status .spark-a { left: 18px; top: 6px; transform: rotate(-18deg); }
.pokemon-machop-bulk-up-cast-fx .burst-b,
.pokemon-machop-bulk-up-status .spark-b { right: 18px; top: 12px; transform: rotate(22deg); animation-delay: 180ms; }
.pokemon-machop-bulk-up-status .spark-c { left: 34px; bottom: 10px; transform: rotate(8deg); animation-delay: 360ms; }

.pokemon-machop-bulk-up-status {
    z-index: 62;
    opacity: calc(0.44 + (min(8, var(--bulk-intensity, 1)) * 0.055));
}

.pokemon-machop-taunt-fx .taunt-hand {
    left: 26px;
    top: 18px;
    width: 22px;
    height: 26px;
    border-radius: 12px;
    animation: pokemon-machop-taunt-hand 1100ms ease-in-out both;
}

.pokemon-machop-taunt-fx .taunt-finger {
    position: absolute;
    left: 35px;
    top: 2px;
    width: 6px;
    height: 28px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 8px rgba(255,255,255,0.72);
    transform-origin: bottom center;
    animation: pokemon-machop-finger-wag 1100ms ease-in-out both;
}

.pokemon-machop-taunt-fx .taunt-callout {
    position: absolute;
    left: 50%;
    bottom: -8px;
    transform: translateX(-50%);
    color: #fff5c9;
    font: 900 10px/1 'Franklin', Arial, sans-serif;
    white-space: nowrap;
    text-shadow: 1px 1px 0 #000, 0 0 8px rgba(255,255,255,0.44);
    animation: pokemon-machop-taunt-text 1100ms ease-out both;
}

.pokemon-psybeam-stream .beam-core {
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255,108,214,0.12), rgba(255,133,238,0.96) 24%, rgba(156,190,255,0.96) 52%, rgba(255,133,238,0.96) 78%, rgba(255,108,214,0.12));
    box-shadow: 0 0 10px rgba(243, 141, 255, 0.78);
}

.pokemon-psybeam-stream .beam-wave,
.pokemon-psybeam-stream .beam-spark {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.pokemon-psybeam-stream .beam-wave {
    width: 28px;
    height: 10px;
    border-radius: 999px;
    border: 2px solid rgba(222, 179, 255, 0.88);
    animation: pokemon-psybeam-wave 760ms ease-in-out infinite;
}

.pokemon-psybeam-stream .wave-a { left: 28%; }
.pokemon-psybeam-stream .wave-b { left: 68%; animation-delay: 180ms; }

.pokemon-psybeam-stream .beam-spark {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff4ff;
    box-shadow: 0 0 8px rgba(255,255,255,0.95);
    animation: pokemon-psybeam-spark 820ms ease-in-out infinite;
}

.pokemon-psybeam-stream .spark-a { left: 46%; }
.pokemon-psybeam-stream .spark-b { left: 84%; animation-delay: 220ms; }

.pokemon-psybeam-impact-fx .psy-ring,
.pokemon-psybeam-impact-fx .psy-star {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.pokemon-psybeam-impact-fx .psy-ring {
    border: 3px solid rgba(223, 167, 255, 0.92);
    border-radius: 50%;
    animation: pokemon-psybeam-ring 900ms ease-out both;
}

.pokemon-psybeam-impact-fx .ring-a { width: 34px; height: 34px; }
.pokemon-psybeam-impact-fx .ring-b { width: 56px; height: 56px; animation-delay: 120ms; }

.pokemon-psybeam-impact-fx .psy-star {
    width: 12px;
    height: 12px;
    background: radial-gradient(circle, #fff6a8, #ff91ee 58%, transparent 70%);
    clip-path: polygon(50% 0, 62% 35%, 100% 50%, 62% 64%, 50% 100%, 37% 64%, 0 50%, 37% 35%);
    animation: pokemon-psybeam-spark 820ms ease-out both;
}

.pokemon-psybeam-impact-fx .star-a { margin-left: -30px; margin-top: -8px; }
.pokemon-psybeam-impact-fx .star-b { margin-left: 16px; margin-top: 6px; animation-delay: 160ms; }

.pokemon-powder-stream .powder-flow {
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(255,255,226,0.7), rgba(241,229,255,0.94), transparent);
    filter: blur(1px);
}

.pokemon-powder-stream.stun .powder-flow {
    background: linear-gradient(90deg, transparent, rgba(198,255,122,0.68), rgba(244,255,182,0.94), transparent);
}

.pokemon-powder-stream .powder-dot {
    position: absolute;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -4px;
    border-radius: 50%;
    background: rgba(255,255,255,0.9);
    box-shadow: 0 0 8px rgba(255,255,255,0.72);
    animation: pokemon-powder-drift 1s ease-in-out infinite;
}

.pokemon-powder-stream.stun .powder-dot {
    background: rgba(209,255,132,0.95);
    box-shadow: 0 0 8px rgba(173,255,83,0.82);
}

.pokemon-powder-stream .dot-a { left: 24%; }
.pokemon-powder-stream .dot-b { left: 56%; animation-delay: 180ms; }
.pokemon-powder-stream .dot-c { left: 82%; animation-delay: 360ms; }

.pokemon-powder-impact-fx .powder-burst,
.pokemon-powder-impact-fx .powder-spore {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.pokemon-powder-impact-fx .powder-burst {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,230,0.88), rgba(247,221,255,0.1) 70%, transparent 72%);
    animation: pokemon-powder-burst 820ms ease-out both;
}

.pokemon-powder-impact-fx.stun .powder-burst {
    background: radial-gradient(circle, rgba(226,255,146,0.92), rgba(182,255,110,0.12) 70%, transparent 72%);
}

.pokemon-powder-impact-fx .burst-b { width: 64px; height: 64px; animation-delay: 120ms; }

.pokemon-powder-impact-fx .powder-spore {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #fffde1;
    animation: pokemon-powder-spore 980ms ease-out both;
}

.pokemon-powder-impact-fx.stun .powder-spore { background: #d5ff88; }
.pokemon-powder-impact-fx .spore-a { margin-left: -28px; margin-top: -14px; }
.pokemon-powder-impact-fx .spore-b { margin-left: 20px; margin-top: -18px; animation-delay: 120ms; }
.pokemon-powder-impact-fx .spore-c { margin-top: 22px; animation-delay: 220ms; }

.pokemon-whirlwind-fx .wind-ring,
.pokemon-whirlwind-fx .wind-streak,
.pokemon-whirlwind-fx .wind-feather {
    position: absolute;
}

.pokemon-whirlwind-fx .wind-ring {
    left: 50%;
    top: 50%;
    border: 3px solid rgba(195, 241, 255, 0.88);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: pokemon-whirlwind-ring 1s ease-out both;
}

.pokemon-whirlwind-fx .ring-a { width: 34px; height: 34px; }
.pokemon-whirlwind-fx .ring-b { width: 58px; height: 58px; animation-delay: 120ms; }

.pokemon-whirlwind-fx .wind-streak {
    width: 54px;
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, rgba(218,248,255,0.95), transparent);
    animation: pokemon-whirlwind-streak 980ms ease-in-out infinite;
}

.pokemon-whirlwind-fx .streak-a { left: 4px; top: 22px; transform: rotate(12deg); }
.pokemon-whirlwind-fx .streak-b { right: 0; bottom: 24px; transform: rotate(-18deg); animation-delay: 180ms; }

.pokemon-whirlwind-fx .wind-feather {
    width: 18px;
    height: 8px;
    border-radius: 70% 20% 70% 20%;
    background: linear-gradient(90deg, rgba(255,255,255,0.95), rgba(174,224,255,0.75));
    animation: pokemon-whirlwind-feather 1.1s ease-in-out infinite;
}

.pokemon-whirlwind-fx .feather-a { left: 22px; top: 12px; transform: rotate(-28deg); }
.pokemon-whirlwind-fx .feather-b { right: 18px; bottom: 18px; transform: rotate(24deg); animation-delay: 220ms; }

.pokemon-trainer-ball-projectile {
    position: fixed;
    width: 40px;
    height: 40px;
    z-index: 9002;
    pointer-events: none;
    animation: pokemon-trainer-ball-throw 820ms cubic-bezier(0.16, 0.82, 0.2, 1) both;
}

.pokemon-trainer-ball-projectile .ball-trail,
.pokemon-trainer-ball-projectile .ball-shell,
.pokemon-trainer-ball-projectile .ball-band,
.pokemon-trainer-ball-projectile .ball-core,
.pokemon-trainer-ball-projectile .ball-glint {
    position: absolute;
}

.pokemon-trainer-ball-projectile .ball-trail {
    left: -18px;
    top: 18px;
    width: 26px;
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.75));
}

.pokemon-trainer-ball-projectile .ball-shell {
    inset: 3px;
    border: 2px solid #101010;
    border-radius: 50%;
    background: linear-gradient(180deg, #ff5d5d 0 47%, #f5f5f5 47% 100%);
    box-shadow: 0 0 10px rgba(255,255,255,0.45);
}

.pokemon-trainer-ball-projectile.great-ball .ball-shell {
    background: linear-gradient(180deg, #2f6dff 0 47%, #f1f1f1 47% 100%);
}

.pokemon-trainer-ball-projectile.ultra-ball .ball-shell {
    background: linear-gradient(180deg, #1f1a24 0 47%, #ffd84f 47% 60%, #f1f1f1 60% 100%);
}

.pokemon-trainer-ball-projectile.master-ball .ball-shell {
    background: linear-gradient(180deg, #8f4de8 0 47%, #f6f3ff 47% 100%);
}

.pokemon-trainer-ball-projectile .ball-band {
    left: 4px;
    right: 4px;
    top: 18px;
    height: 4px;
    background: #161616;
}

.pokemon-trainer-ball-projectile .ball-core {
    left: 15px;
    top: 15px;
    width: 10px;
    height: 10px;
    border: 2px solid #161616;
    border-radius: 50%;
    background: #fff;
}

.pokemon-trainer-ball-projectile .ball-glint {
    left: 11px;
    top: 9px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,0.78);
}

.pokemon-trainer-ball-impact-fx .capture-ring,
.pokemon-trainer-ball-impact-fx .capture-flash,
.pokemon-trainer-ball-impact-fx .capture-star {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.pokemon-trainer-ball-impact-fx .capture-ring {
    border: 3px solid rgba(255, 103, 103, 0.88);
    border-radius: 50%;
    animation: pokemon-ball-capture-ring 860ms ease-out both;
}

.pokemon-trainer-ball-impact-fx.great-ball .capture-ring { border-color: rgba(99, 163, 255, 0.9); }
.pokemon-trainer-ball-impact-fx.ultra-ball .capture-ring { border-color: rgba(255, 214, 92, 0.94); }
.pokemon-trainer-ball-impact-fx.master-ball .capture-ring { border-color: rgba(212, 132, 255, 0.94); }
.pokemon-trainer-ball-impact-fx .ring-a { width: 34px; height: 34px; }
.pokemon-trainer-ball-impact-fx .ring-b { width: 58px; height: 58px; animation-delay: 120ms; }

.pokemon-trainer-ball-impact-fx .capture-flash {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.98), rgba(255,255,255,0.18) 66%, transparent 72%);
    animation: pokemon-ball-capture-flash 720ms ease-out both;
}

.pokemon-trainer-ball-impact-fx .capture-star {
    width: 10px;
    height: 10px;
    background: #fff8ae;
    clip-path: polygon(50% 0, 62% 35%, 100% 50%, 62% 64%, 50% 100%, 37% 64%, 0 50%, 37% 35%);
    animation: pokemon-ball-capture-star 920ms ease-out both;
}

.pokemon-trainer-ball-impact-fx .star-a { margin-left: -28px; margin-top: -10px; }
.pokemon-trainer-ball-impact-fx .star-b { margin-left: 22px; margin-top: 12px; animation-delay: 140ms; }

.pokemon-x-stats-fx .x-stat-badge,
.pokemon-x-stats-fx .x-stat-arrow,
.pokemon-x-stats-fx .x-stat-grid {
    position: absolute;
}

.pokemon-x-stats-fx .x-stat-badge {
    left: 50%;
    top: 50%;
    width: 26px;
    height: 26px;
    margin-left: -13px;
    margin-top: -13px;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffcb62, #ff6c38);
    color: #1f1200;
    font: 900 17px/26px 'Bangers', 'Impact', sans-serif;
    text-align: center;
    box-shadow: 0 0 10px rgba(255,158,73,0.92);
    animation: pokemon-x-stats-badge 1s ease-out both;
}

.pokemon-x-stats-fx .x-stat-arrow {
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    animation: pokemon-x-stats-arrow 960ms ease-out both;
}

.pokemon-x-stats-fx .arrow-up {
    left: 50%;
    top: 12px;
    margin-left: -10px;
    border-bottom: 18px solid #7bff7b;
}

.pokemon-x-stats-fx .arrow-down {
    left: 50%;
    bottom: 12px;
    margin-left: -10px;
    border-top: 18px solid #78c7ff;
    animation-delay: 120ms;
}

.pokemon-x-stats-fx .x-stat-grid {
    inset: 8px;
    border: 2px solid rgba(255,220,104,0.72);
    box-shadow: inset 0 0 12px rgba(255,148,61,0.34);
    animation: pokemon-x-stats-grid 1.1s ease-out both;
}

.pokemon-rare-candy-fx .candy-core,
.pokemon-rare-candy-fx .candy-shine,
.pokemon-rare-candy-fx .candy-spark {
    position: absolute;
}

.pokemon-rare-candy-fx .candy-core {
    left: 50%;
    top: 50%;
    width: 26px;
    height: 34px;
    margin-left: -13px;
    margin-top: -17px;
    border-radius: 10px;
    background: linear-gradient(180deg, #7f83ff, #ff5db6 55%, #ffe169);
    box-shadow: 0 0 16px rgba(255,111,201,0.82);
    animation: pokemon-rare-candy-core 1.2s ease-out both;
}

.pokemon-rare-candy-fx .candy-shine {
    left: 50%;
    top: 50%;
    width: 52px;
    height: 52px;
    margin-left: -26px;
    margin-top: -26px;
    border-radius: 50%;
    border: 3px solid rgba(255,219,122,0.9);
    animation: pokemon-rare-candy-shine 1.1s ease-out both;
}

.pokemon-rare-candy-fx .shine-b { width: 72px; height: 72px; margin-left: -36px; margin-top: -36px; animation-delay: 120ms; }

.pokemon-rare-candy-fx .candy-spark {
    width: 12px;
    height: 12px;
    background: #fff6b8;
    clip-path: polygon(50% 0, 62% 35%, 100% 50%, 62% 64%, 50% 100%, 37% 64%, 0 50%, 37% 35%);
    animation: pokemon-rare-candy-spark 980ms ease-out both;
}

.pokemon-rare-candy-fx .spark-a { left: 16px; top: 16px; }
.pokemon-rare-candy-fx .spark-b { right: 14px; top: 22px; animation-delay: 120ms; }
.pokemon-rare-candy-fx .spark-c { left: 50%; bottom: 10px; margin-left: -6px; animation-delay: 220ms; }

.pokemon-psychic-stream .beam-core {
    inset: 12px 0;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(175, 118, 255, 0), rgba(228, 196, 255, 0.96) 20%, rgba(151, 232, 255, 0.96) 52%, rgba(175, 118, 255, 0));
    box-shadow: 0 0 12px rgba(188, 140, 255, 0.75);
}

.pokemon-psychic-stream .beam-ripple,
.pokemon-psychic-stream .beam-shard {
    position: absolute;
    top: 50%;
    left: 50%;
}

.pokemon-psychic-stream .beam-ripple {
    width: 28px;
    height: 28px;
    margin-left: -14px;
    margin-top: -14px;
    border: 2px solid rgba(233, 214, 255, 0.88);
    border-radius: 50%;
    animation: pokemon-psychic-ripple 900ms ease-out infinite;
}

.pokemon-psychic-stream .ripple-a { left: 30%; }
.pokemon-psychic-stream .ripple-b { left: 72%; animation-delay: 180ms; }

.pokemon-psychic-stream .beam-shard {
    width: 12px;
    height: 12px;
    margin-left: -6px;
    margin-top: -6px;
    background: linear-gradient(135deg, rgba(238, 220, 255, 0.95), rgba(127, 243, 255, 0.88));
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    box-shadow: 0 0 8px rgba(196, 158, 255, 0.85);
    animation: pokemon-psychic-shard 860ms ease-in-out infinite;
}

.pokemon-psychic-stream .shard-a { left: 48%; }
.pokemon-psychic-stream .shard-b { left: 84%; animation-delay: 220ms; }

.pokemon-psychic-impact-fx .psychic-ring,
.pokemon-psychic-impact-fx .psychic-star,
.pokemon-psychic-impact-fx .psychic-glyph {
    position: absolute;
    left: 50%;
    top: 50%;
}

.pokemon-psychic-impact-fx .psychic-ring {
    border: 2px solid rgba(210, 178, 255, 0.92);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: pokemon-psychic-ring 950ms ease-out both;
}

.pokemon-psychic-impact-fx .ring-a { width: 34px; height: 34px; }
.pokemon-psychic-impact-fx .ring-b { width: 58px; height: 58px; animation-delay: 120ms; }

.pokemon-psychic-impact-fx .psychic-star {
    width: 12px;
    height: 12px;
    background: radial-gradient(circle, rgba(255, 246, 255, 0.98), rgba(169, 241, 255, 0.2) 70%);
    clip-path: polygon(50% 0%, 61% 37%, 100% 50%, 61% 63%, 50% 100%, 39% 63%, 0% 50%, 39% 37%);
    animation: pokemon-psychic-shard 820ms ease-out both;
}

.pokemon-psychic-impact-fx .star-a { margin-left: -32px; margin-top: -12px; }
.pokemon-psychic-impact-fx .star-b { margin-left: 18px; margin-top: 10px; animation-delay: 140ms; }

.pokemon-psychic-impact-fx .psychic-glyph {
    width: 44px;
    height: 44px;
    margin-left: -22px;
    margin-top: -22px;
    border: 1px solid rgba(207, 180, 255, 0.5);
    border-radius: 50% 40% 60% 45%;
    box-shadow: 0 0 18px rgba(174, 132, 255, 0.4);
    animation: pokemon-psychic-glyph 1s ease-out both;
}

.pokemon-calm-mind-fx .calm-aura,
.pokemon-calm-mind-fx .calm-rune,
.pokemon-calm-mind-fx .calm-orb {
    position: absolute;
    left: 50%;
    top: 50%;
}

.pokemon-calm-mind-fx .calm-aura {
    width: 78px;
    height: 78px;
    margin-left: -39px;
    margin-top: -39px;
    border-radius: 50%;
    border: 2px solid rgba(175, 229, 255, 0.55);
    background: radial-gradient(circle, rgba(183, 147, 255, 0.26), rgba(183, 147, 255, 0) 68%);
    animation: pokemon-calm-mind-aura 1.05s ease-out both;
}

.pokemon-calm-mind-fx .aura-b {
    width: 108px;
    height: 108px;
    margin-left: -54px;
    margin-top: -54px;
    animation-delay: 120ms;
}

.pokemon-calm-mind-fx .calm-rune {
    width: 18px;
    height: 18px;
    margin-left: -9px;
    margin-top: -9px;
    border: 2px solid rgba(239, 237, 255, 0.9);
    border-radius: 4px;
    transform: rotate(45deg);
    animation: pokemon-calm-mind-rune 1s ease-in-out both;
}

.pokemon-calm-mind-fx .rune-a { margin-left: -36px; margin-top: -10px; }
.pokemon-calm-mind-fx .rune-b { margin-left: 18px; margin-top: -18px; animation-delay: 140ms; }

.pokemon-calm-mind-fx .calm-orb {
    width: 12px;
    height: 12px;
    margin-left: -6px;
    margin-top: -6px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.98), rgba(147, 229, 255, 0.2) 72%);
    box-shadow: 0 0 10px rgba(165, 235, 255, 0.8);
    animation: pokemon-calm-mind-orb 1.1s ease-in-out both;
}

.pokemon-calm-mind-fx .orb-a { margin-left: -8px; margin-top: -40px; }
.pokemon-calm-mind-fx .orb-b { margin-left: 24px; margin-top: 20px; animation-delay: 180ms; }

.pokemon-teleport-fx .teleport-ring,
.pokemon-teleport-fx .teleport-column,
.pokemon-teleport-fx .teleport-spark {
    position: absolute;
    left: 50%;
    top: 50%;
}

.pokemon-teleport-fx .teleport-ring {
    border: 2px solid rgba(160, 244, 255, 0.9);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: pokemon-teleport-ring 900ms ease-out both;
}

.pokemon-teleport-fx .ring-a { width: 36px; height: 36px; }
.pokemon-teleport-fx .ring-b { width: 62px; height: 62px; animation-delay: 100ms; }

.pokemon-teleport-fx .teleport-column {
    width: 34px;
    height: 96px;
    margin-left: -17px;
    margin-top: -48px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(202, 255, 255, 0), rgba(202, 255, 255, 0.92) 48%, rgba(202, 255, 255, 0));
    filter: blur(1px);
    animation: pokemon-teleport-column 940ms ease-out both;
}

.pokemon-teleport-fx .teleport-spark {
    width: 12px;
    height: 12px;
    margin-left: -6px;
    margin-top: -6px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.98), rgba(163, 245, 255, 0.2) 70%);
    clip-path: polygon(50% 0%, 65% 35%, 100% 50%, 65% 65%, 50% 100%, 35% 65%, 0% 50%, 35% 35%);
    animation: pokemon-teleport-spark 900ms ease-out both;
}

.pokemon-teleport-fx .spark-a { margin-left: -28px; margin-top: -20px; }
.pokemon-teleport-fx .spark-b { margin-left: 18px; margin-top: 12px; animation-delay: 120ms; }

.pokemon-leech-life-stream .drain-core {
    inset: 13px 0;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(178, 255, 183, 0), rgba(150, 255, 173, 0.94) 24%, rgba(104, 232, 177, 0.96) 60%, rgba(178, 255, 183, 0));
    box-shadow: 0 0 12px rgba(111, 238, 176, 0.72);
}

.pokemon-leech-life-stream .drain-wave,
.pokemon-leech-life-stream .drain-orb {
    position: absolute;
    left: 50%;
    top: 50%;
}

.pokemon-leech-life-stream .drain-wave {
    width: 22px;
    height: 22px;
    margin-left: -11px;
    margin-top: -11px;
    border: 2px solid rgba(205, 255, 217, 0.82);
    border-radius: 50%;
    animation: pokemon-leech-life-wave 900ms ease-out infinite;
}

.pokemon-leech-life-stream .wave-a { left: 34%; }
.pokemon-leech-life-stream .wave-b { left: 72%; animation-delay: 180ms; }

.pokemon-leech-life-stream .drain-orb {
    width: 12px;
    height: 12px;
    margin-left: -6px;
    margin-top: -6px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(240, 255, 240, 0.98), rgba(141, 240, 186, 0.18) 70%);
    box-shadow: 0 0 10px rgba(119, 232, 168, 0.8);
    animation: pokemon-leech-life-orb 860ms ease-in-out infinite;
}

.pokemon-leech-life-stream .orb-a { left: 50%; }
.pokemon-leech-life-stream .orb-b { left: 86%; animation-delay: 220ms; }

.pokemon-leech-life-impact-fx .fang-mark,
.pokemon-leech-life-impact-fx .bite-burst {
    position: absolute;
    left: 50%;
    top: 50%;
}

.pokemon-leech-life-impact-fx .fang-mark {
    width: 10px;
    height: 34px;
    margin-top: -17px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(136, 255, 180, 0.2));
    clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
    animation: pokemon-fang-mark 820ms ease-out both;
}

.pokemon-leech-life-impact-fx .fang-a { margin-left: -18px; transform: rotate(-16deg); }
.pokemon-leech-life-impact-fx .fang-b { margin-left: 8px; transform: rotate(16deg); animation-delay: 80ms; }

.pokemon-leech-life-impact-fx .bite-burst {
    width: 52px;
    height: 52px;
    margin-left: -26px;
    margin-top: -26px;
    border-radius: 50%;
    border: 2px solid rgba(160, 255, 198, 0.78);
    animation: pokemon-bite-burst 920ms ease-out both;
}

.pokemon-leech-life-impact-fx .burst-b {
    width: 70px;
    height: 70px;
    margin-left: -35px;
    margin-top: -35px;
    animation-delay: 120ms;
}

.pokemon-bite-fx .bite-arc,
.pokemon-bite-fx .bite-spark {
    position: absolute;
    left: 50%;
    top: 50%;
}

.pokemon-bite-fx .bite-arc {
    width: 50px;
    height: 28px;
    margin-left: -25px;
    border: 3px solid rgba(255, 245, 235, 0.94);
    border-color: rgba(255, 245, 235, 0.94) transparent transparent transparent;
    border-radius: 50% 50% 0 0;
    animation: pokemon-bite-arc 760ms ease-out both;
}

.pokemon-bite-fx .arc-a { margin-top: -22px; transform: rotate(10deg); }
.pokemon-bite-fx .arc-b {
    margin-top: -2px;
    border-color: transparent transparent rgba(255, 200, 145, 0.88) transparent;
    border-radius: 0 0 50% 50%;
    transform: rotate(-10deg);
    animation-delay: 80ms;
}

.pokemon-bite-fx .bite-spark {
    width: 12px;
    height: 12px;
    margin-left: -6px;
    margin-top: -6px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.98), rgba(255, 192, 122, 0.2) 70%);
    clip-path: polygon(50% 0%, 62% 36%, 100% 50%, 62% 64%, 50% 100%, 38% 64%, 0% 50%, 38% 36%);
    animation: pokemon-bite-spark 820ms ease-out both;
}

.pokemon-bite-fx .spark-a { margin-left: -26px; margin-top: -8px; }
.pokemon-bite-fx .spark-b { margin-left: 18px; margin-top: 10px; animation-delay: 120ms; }

.seraphina-road-flare {
    position: absolute;
    left: 10px;
    bottom: 23px;
    width: 48px;
    height: 62px;
    z-index: 81;
    pointer-events: none;
    filter: drop-shadow(0 0 8px rgba(255, 48, 22, 0.9));
}

.seraphina-road-flare .flare-stick {
    position: absolute;
    left: 19px;
    bottom: 4px;
    width: 10px;
    height: 38px;
    border-radius: 6px 6px 3px 3px;
    background: linear-gradient(180deg, #ffead6 0 12%, #e32116 13% 68%, #6c120f 69% 100%);
    transform: rotate(-18deg);
    box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.45);
}

.seraphina-road-flare .flare-flame {
    position: absolute;
    left: 11px;
    top: 1px;
    width: 26px;
    height: 31px;
    border-radius: 52% 48% 48% 52%;
    background: radial-gradient(circle at 50% 72%, #fff7c8 0 16%, #ff9234 17% 38%, #ff2d16 39% 68%, rgba(255, 23, 8, 0) 69%);
    animation: seraphina-flare-flame 560ms ease-in-out infinite alternate;
}

.seraphina-road-flare .flare-glow {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 56, 22, 0.58), rgba(255, 56, 22, 0.08) 48%, transparent 72%);
    animation: seraphina-flare-glow 980ms ease-in-out infinite alternate;
}

.seraphina-road-flare .flare-smoke {
    position: absolute;
    left: 18px;
    top: -8px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(120, 120, 120, 0.32);
    filter: blur(1px);
    animation: seraphina-flare-smoke 1800ms ease-out infinite;
}

.seraphina-road-flare .flare-smoke.two {
    left: 25px;
    animation-delay: 650ms;
}

.negan-lucille-swing-fx {
    position: absolute;
    left: -18px;
    top: -18px;
    width: 112px;
    height: 112px;
    z-index: 84;
    pointer-events: none;
}

.negan-lucille-bat {
    position: absolute;
    left: 60px;
    top: -16px;
    width: 15px;
    height: 118px;
    border-radius: 10px;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.18), transparent 26%),
        linear-gradient(180deg, #7d4a24 0%, #4d2a15 52%, #2c180e 100%);
    border: 1px solid #120a06;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.12) inset, 0 5px 12px rgba(0,0,0,0.74);
    transform-origin: 50% 104%;
    transform: rotate(-76deg) translateY(-20px);
    animation: negan-lucille-swing 1450ms cubic-bezier(0.12, 0.9, 0.16, 1) both;
}

.negan-lucille-bat::before,
.negan-lucille-bat::after,
.negan-lucille-bat i,
.negan-lucille-bat b {
    content: "";
    position: absolute;
    left: -5px;
    width: 25px;
    height: 9px;
    border: 2px solid #2b2b2b;
    border-left-color: transparent;
    border-right-color: transparent;
    border-radius: 50%;
    transform: rotate(-18deg);
    box-sizing: border-box;
}

.negan-lucille-bat::before { top: 15px; }
.negan-lucille-bat::after { top: 32px; transform: rotate(15deg); }
.negan-lucille-bat i { top: 49px; transform: rotate(-12deg); }
.negan-lucille-bat b { top: 66px; transform: rotate(18deg); }

.negan-lucille-impact {
    position: absolute;
    left: 50%;
    top: 48%;
    width: 92px;
    height: 92px;
    transform: translate(-50%, -50%) scale(0.2);
    opacity: 0;
    background:
        radial-gradient(circle, rgba(255,255,255,0.95) 0 7%, rgba(255,215,98,0.88) 8% 18%, transparent 19%),
        repeating-conic-gradient(from 12deg, rgba(255,255,255,0.78) 0deg 7deg, rgba(164,16,16,0.72) 8deg 13deg, transparent 14deg 31deg);
    filter: drop-shadow(0 0 10px rgba(255, 42, 22, 0.85));
    animation: negan-lucille-impact 900ms ease-out 520ms both;
}

.knife-wound-fx {
    position: absolute;
    left: 0;
    top: 0;
    width: 86px;
    height: 86px;
    z-index: 86;
    pointer-events: none;
    overflow: hidden;
}

.knife-wound-fx .knife-blade {
    position: absolute;
    width: 46px;
    height: 9px;
    border-radius: 9px 2px 2px 9px;
    background:
        linear-gradient(90deg, #2b170d 0 18%, #efefef 19% 54%, #9da6ac 55% 78%, #ffffff 79% 100%);
    border: 1px solid rgba(24, 24, 24, 0.9);
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.62), 0 5px 9px rgba(0, 0, 0, 0.48);
}

.knife-wound-fx .knife-cut {
    position: absolute;
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #4b0000 10%, #ff1c18 42%, #7b0000 76%, transparent);
    box-shadow: 0 0 8px rgba(255, 0, 0, 0.85), 0 0 2px #180000;
}

.knife-wound-fx .knife-blood {
    position: absolute;
    width: 7px;
    height: 14px;
    border-radius: 50% 50% 58% 58%;
    background: linear-gradient(180deg, #ff3429, #7d0000 70%, #2a0000);
    box-shadow: 0 0 5px rgba(158, 0, 0, 0.92);
    opacity: 0;
}

.knife-wound-fx.gut-slice .knife-blood {
    width: 8px;
    height: 28px;
    border-radius: 5px 5px 12px 12px;
    background:
        linear-gradient(180deg, rgba(255, 61, 48, 0.95), #8d0000 60%, #320000),
        radial-gradient(circle at 50% 100%, #270000 0 48%, transparent 49%);
}

.knife-wound-fx.throat-slit .knife-blade {
    left: 48px;
    top: 60px;
    transform-origin: 8px 50%;
    animation: rick-throat-knife-slash 780ms cubic-bezier(0.12, 0.88, 0.22, 1) both;
}

.knife-wound-fx.throat-slit .knife-cut {
    left: 26px;
    top: 41px;
    width: 48px;
    transform: rotate(-42deg) scaleX(0);
    transform-origin: 100% 50%;
    animation: rick-throat-cut-open 900ms ease-out 280ms both;
}

.knife-wound-fx.throat-slit .blood-a { left: 39px; top: 35px; animation: rick-throat-blood-spurt 1050ms steps(5, end) 440ms both; }
.knife-wound-fx.throat-slit .blood-b { left: 50px; top: 30px; width: 5px; height: 12px; animation: rick-throat-blood-spurt 980ms steps(5, end) 540ms both; }
.knife-wound-fx.throat-slit .blood-c { left: 60px; top: 27px; width: 6px; height: 11px; animation: rick-throat-blood-spurt 920ms steps(4, end) 660ms both; }

.knife-wound-fx.gut-slice .knife-blade {
    left: 9px;
    top: 40px;
    transform-origin: 82% 50%;
    animation: negan-gut-knife-slice 820ms cubic-bezier(0.08, 0.78, 0.18, 1) both;
}

.knife-wound-fx.gut-slice .knife-cut {
    left: 19px;
    top: 47px;
    width: 54px;
    transform: scaleX(0);
    transform-origin: 0 50%;
    animation: negan-gut-cut-open 940ms ease-out 260ms both;
}

.knife-wound-fx.gut-slice .blood-a { left: 30px; top: 49px; animation: negan-gut-blood-pour 1180ms ease-in 430ms both; }
.knife-wound-fx.gut-slice .blood-b { left: 45px; top: 49px; width: 10px; height: 34px; animation: negan-gut-blood-pour 1260ms ease-in 500ms both; }
.knife-wound-fx.gut-slice .blood-c { left: 61px; top: 50px; width: 7px; height: 25px; animation: negan-gut-blood-pour 1100ms ease-in 610ms both; }

@keyframes skill-cast-pulse {
    0% {
        scale: 1;
        filter: brightness(1);
    }
    45% {
        scale: 1.12;
        filter: brightness(1.45) saturate(1.25);
    }
    100% {
        scale: 1;
        filter: brightness(1);
    }
}

@keyframes skill-caster-surge {
    0%, 100% {
        transform: scale(1);
        filter: brightness(1);
        box-shadow: none;
    }
    35% {
        transform: scale(1.08);
        filter: brightness(1.45) saturate(1.28);
        box-shadow: 0 0 14px rgba(255, 236, 89, 0.88);
    }
}

@keyframes skill-cast-projectile-flight {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.72) rotate(-10deg);
    }
    16% {
        opacity: 1;
        transform: translate(calc(var(--cast-dx) * 0.16), calc(var(--cast-dy) * 0.16 - 18px)) scale(1.08) rotate(4deg);
    }
    82% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate(var(--cast-dx), var(--cast-dy)) scale(0.5) rotate(18deg);
    }
}

@keyframes captain-shield-ricochet-flight {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.58) rotate(0deg);
    }
    10% {
        opacity: 1;
        transform: translate(calc(var(--cast-dx) * 0.12), calc(var(--cast-dy) * 0.12 - 16px)) scale(1.05) rotate(260deg);
    }
    48% {
        transform: translate(calc(var(--cast-dx) * 0.58), calc(var(--cast-dy) * 0.58 - 26px)) scale(1.12) rotate(1080deg);
    }
    86% {
        opacity: 1;
        transform: translate(calc(var(--cast-dx) * 0.94), calc(var(--cast-dy) * 0.94 - 8px)) scale(0.98) rotate(1780deg);
    }
    100% {
        opacity: 0;
        transform: translate(var(--cast-dx), var(--cast-dy)) scale(0.72) rotate(2040deg);
    }
}

@keyframes captain-shield-bash-flight {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.85) rotate(-18deg);
    }
    14% {
        opacity: 1;
        transform: translate(calc(var(--cast-dx) * 0.16), calc(var(--cast-dy) * 0.16)) scale(1.18) rotate(-8deg);
    }
    62% {
        opacity: 1;
        transform: translate(calc(var(--cast-dx) * 0.88), calc(var(--cast-dy) * 0.88)) scale(1.08) rotate(24deg);
    }
    78% {
        opacity: 1;
        transform: translate(calc(var(--cast-dx) * 1.03), calc(var(--cast-dy) * 1.03)) scale(1.24) rotate(32deg);
    }
    100% {
        opacity: 0;
        transform: translate(var(--cast-dx), var(--cast-dy)) scale(0.55) rotate(38deg);
    }
}

@keyframes skill-blocked-shake {
    0%, 100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-4px);
    }
    50% {
        transform: translateX(4px);
    }
    75% {
        transform: translateX(-2px);
    }
}


.skillscrollingame.not-turn {
    clip-path: inset(0 0 0 80px);
    left: -56px;
}

.skillimage {
    width: 54px;
    height: 54px;
    border: 1px solid black;
    top: 11px;
    left: 40px;
    position: relative;
    z-index: 4;
    transition: transform 0.08s ease, opacity 0.08s ease;
    touch-action: manipulation;
    cursor: pointer;
    pointer-events: auto;
}

.skill-cooldown-badge {
    position: absolute;
    display: none;
    align-items: center;
    justify-content: center;
    font-family: 'Pedra', 'Libre Franklin', serif;
    font-size: 45px;
    color: #000000;
    pointer-events: none;
    z-index: 12;
    margin-top: 3px;
}

.skillqueue {
    width: 55px;
    height: 55px;
    top: 11px;
    left: 20px;
    position: relative;
}

.enemy-characters {
    gap: 34px;
    display: flex;
    flex-direction: column;
    top: 84px;
    position: absolute;
    transform: scaleX(-1);
    left: 661px;
}


.enemy-characters .health-text {
    transform: scaleX(-1);
}

.skillinformation {
    background-image: url('../assets/images/ingamebottomscroll.png');
    width: 523px;
    height: 134px;
    position: absolute;
    left: 247px;
    top: 426px;
}

.skillviewimage {
    width: 75px;
    height: 75px;
    border: 1px solid black;
    top: 28px;
    left: 32px;
    position: relative;
}

.skill-browser-icons {
    position: absolute;
    left: 25px;
    top: 106px;
    display: flex;
    gap: 4px;
    z-index: 5;
}

.skill-browser-icons.skill-browser-icons-wrap {
    flex-wrap: wrap;
    max-width: 164px;
    row-gap: 4px;
}

.skill-browser-icon {
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid #000;
    background: #f7e3b4;
    cursor: pointer;
}

.skill-browser-icon img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.skill-browser-icon.active {
    outline: 2px solid #c41e3a;
    filter: brightness(1.08);
}

.ingameskillname {
    color: #cb0400;
    position: absolute;
    left: 118px;
    top: 9px;
}

.ingamecharacterrole {
    color: #cb0400;
    position: absolute;
    left: 285px;
    top: 9px;
    margin: 0;
    max-width: 205px;
    font-size: 14px;
    z-index: 3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ingameskilldescription {
        position: absolute;
    left: 118px;
    top: 30px;
    font-size: 12px;
    max-height: 50px;
    overflow-y: auto;
}


.energytext {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 3px;
    right: 20px;
    top: 27px;
    font-size: 10px;
}

.energytext .chakra-box {
    margin-top: -2px;
}


.ingameclasses {
        position: absolute;
    left: 118px;
    top:88px;
        font-size: 10px;
}

.ingamecooldown {
        position: absolute;
    display: flex;
    align-items: center;
    gap: 5px;
    right: 20px;
    top: 87px;
    font-size: 10px;
}

.ingameclasspicker {
    position: absolute;
    right: 20px;
    top: 56px;
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
}

.ingame-class-picker-field {
    background: #faedcd;
    border: 1px solid #000000;
    border-radius: 0;
    height: 18px;
    font-size: 10px;
    font-family: 'Franklin', Arial, sans-serif;
    color: #000000;
}

.class-choice-popup {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2500;
    background: rgba(0, 0, 0, 0.7);
}

.class-choice-popup.visible {
    display: flex;
}

.class-choice-popup-panel {
    background: #efefef;
    border: 1px solid #000000;
    border-radius: 0;
    padding: 12px;
    position:absolute;
    left: 100px;
    top: 200px;
    max-width: 600px;
}


.class-choice-popup-title {
    margin: 0 0 10px;
    font-size: 14px;
    color: #000000;
}

.class-choice-popup-options {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.class-choice-popup-options button,
.class-choice-popup-cancel {
    background: #f5f5f5;
    border: 1px solid #000000;
    border-radius: 0;
    color: #000000;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 15px;
    padding: 4px 8px;
    cursor: pointer;
    text-align: center;
    display: block;
    width: fit-content;
    margin: 0 auto;
    text-transform: uppercase;
}

.bottomrender {
        width: 153px;
        height: 149px;
        overflow: hidden;
        left: 125px;
        top: 15px;
        position: relative;
}

.render {
    width: 153px;
    display: block;
    position: relative; /* Add this */
    z-index: 2;
}

.surrenderbutton {
    background-image: url('../assets/images/optionscroll.png');
    width: 182px;
    height: 46px;
    position: absolute;
    left: 30px;
    top: 470px;
    z-index: 1;
}

.sound {
    display: none;
}

.surrenderbutton span {
    position: relative;
    left: 20px;
    top: 13px;
    font-size: 14px;
}

.endturnscroll {
    background-image: url("../assets/images/searchingscroll.png");
    width: 391px;
    height: 290px;
    position: absolute;
    left: 200px;
    top: 85px;
    z-index: 2;
    display: none;
}

.chakrachoose {
    position: absolute;
    top: 25px;
    left: 130px;
    text-align: center;
    font-size: 16px;
}

.chakrachoosered {
    color: #cb0400
}

.chakra-container {
    display: flex;
    gap: 20px;
    padding: 10px;
    font-size: 14px;
    top: 60px;
    left: 70px;
    position: absolute;
}

.chakra-column {
    display: flex;
    flex-direction: column;
}

.chakra-columnright {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.chakra-title {
    color: #000;
    margin-bottom: 3px;
    font-size: 13px;
}

.chakra-row {
    display: flex;
    align-items: center;
    gap: 5px;
}

.chakra-box {
    width: 8px;
    height: 8px;
    border: 1px solid #000;
    display: inline-block;
}

.chakra-box.red {
    background-color: #e74c3c;
}

body.arena-mode-pokemon .chakra-box.red {
    background-color: #e74c3c;
}

.chakra-box.blue {
    background-color: #3498db;
}

body.arena-mode-pokemon .chakra-box.blue {
    background-color: #3498db;
}

.chakra-box.green {
    background-color: #2ecc71;
}

body.arena-mode-pokemon .chakra-box.green {
    background-color: #4caf50;
}

.chakra-box.white {
    background-color: #ecf0f1;
}

body.arena-mode-pokemon .chakra-box.white {
    background-color: #e0b100;
}
.chakra-box.black {
    background-color: #000;
}

.chakra-name {
    color: #000;
    min-width: 60px;
}

.chakra-amount {
    color: #000;
    margin-left: 8px;
}

.chakra-divider {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 0 8px;
}

.chakra-buttons {
    display: flex;
    gap: 3px;
    margin-left: 15px;
}


.minus-button,
.plus-button {
    background-color: transparent;
    border: none;      
    color: #000;
    font-size: 18px;
    cursor: pointer;
    user-select: none;
    padding: 0px 5px;
}

.minus-button {
    top: -1px;
    position: relative;
}

.minus-button:hover,
.plus-button:hover {
    opacity: 0.7;
}


.ChakraChooseEndTurn {
    z-index: 5999;
    position: absolute;
    background-image: url('../assets/images/searchingscroll.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 391px;
    height: 290px;
    top: 100px;
    left: 180px;
    position: absolute;
    visibility: hidden;
}

.exchange_chakra {
    z-index: 5999;
    position: absolute;
    background-image: url('../assets/images/searchingscroll.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 391px;
    height: 290px;
    top: 100px;
    left: 180px;
    visibility: hidden;
}

.exchange_chakra_title {
    position: absolute;
    top: 34px;
    left: 0;
    width: 440px;
    text-align: center;
    font-size: 17px;
    margin: 0;
}

.exchange_chakra_choices {
    position: absolute;
    top: 60px;
    left: 0;
    width: 440px;
    display: flex;
    justify-content: center;
    gap: 11px;
}

.exchange_chakra_choice {
    width: 14px;
    height: 14px;
    border: 1px solid #00000000;
    padding: 0;
    background: #f3e8c9;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.exchange_chakra_choice .chakra-box {
    width: 8px;
    height: 8px;
    border: 1px solid #000;
}

.exchange_chakra_choice.selected {
    border-color: #c41e3a;
}

.exchange_chakra_subtitle {
    position: absolute;
    top: 84px;
    left: 0;
    width: 440px;
    text-align: center;
    font-size: 16px;
    margin: 0;
}

.exchange_chakra_status {
    position: absolute;
    top: 104px;
    left: 0;
    width: 440px;
    min-height: 14px;
    margin: 0;
    color: #9b1212;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.exchange_chakra_container {
    position: absolute;
    top: 122px;
    left: 74px;
    display: flex;
    gap: 28px;
    font-size: 14px;
}

.exchange_chakra_column {
    display: flex;
    flex-direction: column;
}

.exchange_chakra_row {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 24px;
}

.exchange_chakra_row .chakra-name {
    min-width: 82px;
}

.exchange_chakra_row .chakra-amount {
    min-width: 10px;
    text-align: right;
    margin-left: 0;
}

.exchange_symbol {
    display: inline-block;
    width: 13px;
    text-align: center;
    font-size: 23px;
    line-height: 1;
    margin-left: 6px;
    position: relative;
    top: -1px;
}

.ok-buttonexchange {
    position: absolute;
    top: 230px;
    left: 120px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.cancel-buttonexchange {
    position: absolute;
    top: 230px;
    left: 230px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.skillorder {
    top: 180px;
    left: 85px;
    position: relative;
    display: flex;
    flex-direction: row;
    gap: 6px;
    min-height: 36px;
    align-items: center;
}


.skillpreview {
    width: 34px;
    height: 34px;
    border: 1px solid black;
    cursor: grab;
    background: #fff;
    touch-action: none;
}

.skillpreview.dragging {
    opacity: 0.5;
    cursor: grabbing;
}

.skillpreview.queued-reorder-armed {
    outline: 2px solid #7dd9ff;
    box-shadow: 0 0 10px rgba(125, 217, 255, 0.95);
    transform: translateY(-2px);
}

.skillpreview.queued-cancel-armed,
.skillimage.queued-cancel-armed {
    outline: 2px solid #ffd94f;
    box-shadow: 0 0 10px rgba(255, 217, 79, 0.9);
}

@keyframes skillpreview-added-pop {
    0% {
        transform: scale(0.6) translateY(10px);
        opacity: 0;
        filter: brightness(1.4);
    }
    55% {
        transform: scale(1.22) translateY(-4px);
        opacity: 1;
        filter: brightness(1.22);
    }
    100% {
        transform: scale(1) translateY(0);
        opacity: 1;
        filter: brightness(1);
    }
}

.skillpreview.skillpreview-added {
    animation: skillpreview-added-pop 760ms cubic-bezier(0.2, 0.85, 0.22, 1) both;
    box-shadow: 0 0 8px rgba(255, 226, 75, 0.85);
}

.surrender-confirm {
    z-index: 5999;
    position: absolute;
    background-image: url('../assets/images/searchingscroll.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 391px;
    height: 290px;
    top: 100px;
    left: 180px;
    position: absolute;
    visibility: hidden;
}


.surrender-confirm-title {
    top: 35px;
    left: 30px;
    text-align: center;
    font-size: 16px;
    position: relative;
}

.surrender-confirm-ok {
    position: absolute;
    top: 230px;
    left: 120px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.surrender-confirm-cancel {
    position: absolute;
    top: 230px;
    left: 230px;
    background-color: #f5f5f5;
    border: 1px solid #000000;
    color: #141414;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    width: 88px;
    height: 25px;
    font-family: 'Pedra';
    outline: none;
    box-shadow: none;
}

.surrender-confirm-actions {
    top: -60px;
    position: relative;
}

.surrender-confirm-preview-image {
    position: absolute;
    top: 72px;
    left: 102px;
    width: 188px;
    height: 178px;
    object-fit: cover;
    border: 1px solid #111;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.battle-end-overlay {
    position: absolute;
    inset: 0;
    z-index: 7000;
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.battle-end-overlay.visible {
    visibility: visible;
    opacity: 1;
}

.battle-end-panel {
    position: absolute;
    top: 86px;
    left: 50%;
    transform: translateX(-50%);
    width: 640px;
    height: 320px;
    background-image: url('../assets/images/endscroll.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    pointer-events: auto;
}

.battle-end-portrait {
    position: absolute;
    left: 81px;
    top: 46px;
    width: 236px;
    height: 226px;
    object-fit: cover;
    border: 1px solid #111;
}

.battle-end-copy {
    position: absolute;
    left: 390px;
    top: 48px;
    width: 230px;
    color: #111;
}

.battle-end-title {
    margin: 0;
    color: #c7262f;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 44px;
    margin-top: -10px;
    margin-left: 30px;
}

.battle-end-message {
    margin-left: -40px;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 13px;
}

.battle-end-continue {
    margin-top: 85px;
    border: none;
    background: transparent;
    color: #c7262f;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 30px;
    margin-left: 20px;
    margin-top:100px;
    cursor: pointer;
    padding: 0;
    position: absolute;
    top: 100px;
}



.battle-end-continue:focus {
    outline: none;
}

.battle-end-continue:hover {
    opacity: 0.85;
}

.skilltooltips {
    position: absolute;
    z-index: 20;
    pointer-events: auto;
    left: 85px;
    top: 0;
    display: flex;
    gap: 2px;
    align-items: center;
}

.skilltooltipimage {
    width: 20px;
    height: 20px;
    border: 1px solid black;
    position: relative;
    cursor: help;
}

.status-reveal-active .skilltooltips {
    z-index: 9300;
}

.status-reveal-panel {
    position: absolute;
    left: 0;
    top: 24px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 280px;
    max-height: 230px;
    overflow-y: auto;
    padding: 5px;
    background: rgba(239, 239, 239, 0.82);
    border: 1px solid #2d1507;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.48);
    color: #2d1507;
    font-size: 12px;
    text-transform: none;
    pointer-events: auto;
}

.enemy-characters .status-reveal-panel {
    top: auto;
    bottom: 24px;
    transform: scaleX(-1);
    transform-origin: top left;
}

.status-reveal-panel .status-tooltip-item {
    background: rgba(255, 255, 255, 0.46);
    border: 1px solid rgba(45, 21, 7, 0.2);
    padding: 4px;
}

@keyframes status-icon-turn-pop {
    0% {
        transform: scale(1);
        filter: brightness(1);
        box-shadow: 0 0 0 rgba(255, 230, 93, 0);
    }
    35% {
        transform: scale(1.42);
        filter: brightness(1.28);
        box-shadow: 0 0 9px rgba(255, 230, 93, 0.95);
    }
    70% {
        transform: scale(0.94);
        filter: brightness(1.08);
        box-shadow: 0 0 5px rgba(255, 230, 93, 0.55);
    }
    100% {
        transform: scale(1);
        filter: brightness(1);
        box-shadow: 0 0 0 rgba(255, 230, 93, 0);
    }
}

.skilltooltipimage.status-icon-turn-pop {
    animation: status-icon-turn-pop 780ms cubic-bezier(0.2, 0.85, 0.22, 1) both;
    z-index: 20;
}

.skilltooltipimage.passive-trigger-flash {
    animation: passive-trigger-flash 880ms cubic-bezier(0.2, 0.85, 0.22, 1) both;
}

@keyframes combat-energy-beam-fire {
    0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
        filter: brightness(1.4) saturate(1.2);
    }
    18% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
    }
    42% {
        opacity: 1;
        filter: brightness(2) saturate(1.65);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 72%);
        filter: brightness(1.2) saturate(1);
    }
}

@keyframes superman-frost-breath-beam {
    0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
        filter: blur(4px) brightness(1.2);
    }
    22% {
        opacity: 0.98;
        clip-path: inset(0 0 0 0);
        filter: blur(0.5px) brightness(1.6);
    }
    72% {
        opacity: 0.86;
        clip-path: inset(0 0 0 0);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 68%);
        filter: blur(7px) brightness(1.05);
    }
}

@keyframes superman-frost-particle {
    0% {
        opacity: 0;
        transform: translate(0, -50%) scale(0.45);
    }
    28% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate(330px, -50%) scale(1.25);
    }
}

@keyframes superman-frost-impact {
    0% {
        opacity: 0;
        transform: scale(0.72) rotate(-3deg);
        filter: brightness(1.8);
    }
    24% {
        opacity: 1;
        transform: scale(1.08) rotate(1deg);
    }
    74% {
        opacity: 0.92;
        transform: scale(1) rotate(0deg);
    }
    100% {
        opacity: 0;
        transform: scale(0.9) rotate(2deg);
        filter: brightness(1);
    }
}

@keyframes superman-frost-crack {
    0%, 16% {
        opacity: 0;
        clip-path: inset(50% 0 50% 0);
    }
    42% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 0);
    }
}

@keyframes superman-solar-core {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.25);
        filter: brightness(1.6);
    }
    18% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(3.3);
        filter: brightness(2.4);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(10);
        filter: brightness(1);
    }
}

@keyframes superman-solar-wave {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.02) rotate(0deg);
    }
    22% {
        opacity: 0.96;
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1) rotate(34deg);
    }
}

@keyframes superman-solar-ray {
    0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
    }
    28% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 82%);
    }
}

@keyframes andrea-sniper-board {
    0% {
        opacity: 0;
        --scope-size: 240px;
    }
    26%, 70% {
        opacity: 1;
        --scope-size: 76px;
    }
    100% {
        opacity: 0;
        --scope-size: 58px;
    }
}

@keyframes andrea-sniper-scope-lock {
    0% {
        transform: translate(-50%, -50%) scale(1.8);
        opacity: 0;
    }
    28% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
    62% {
        transform: translate(-50%, -50%) scale(0.92);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.16);
        opacity: 0;
    }
}

@keyframes bullet-hole-impact-pop {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.35);
        filter: brightness(2);
    }
    18% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.18);
    }
    74% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.92);
        filter: brightness(1);
    }
}

@keyframes bullet-hole-crack-spread {
    0% {
        opacity: 0;
        transform: scale(0.25) rotate(-12deg);
    }
    32% {
        opacity: 0.95;
        transform: scale(1.08) rotate(1deg);
    }
    100% {
        opacity: 0.58;
        transform: scale(1) rotate(0deg);
    }
}

@keyframes negan-lucille-swing {
    0% {
        opacity: 0;
        transform: rotate(-82deg) translate(-44px, -36px) scale(0.9);
        filter: brightness(0.86);
    }
    18% {
        opacity: 1;
    }
    46% {
        transform: rotate(38deg) translate(2px, 8px) scale(1.08);
        filter: brightness(1.36);
    }
    58% {
        transform: rotate(30deg) translate(0, 3px) scale(1);
    }
    100% {
        opacity: 0;
        transform: rotate(66deg) translate(30px, 44px) scale(0.86);
        filter: brightness(0.7);
    }
}

@keyframes negan-lucille-impact {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.2) rotate(0deg);
    }
    22% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.18) rotate(9deg);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.62) rotate(22deg);
    }
}

@keyframes rick-throat-knife-slash {
    0% {
        opacity: 0;
        transform: translate(14px, 13px) rotate(-136deg) scale(0.72);
    }
    18% {
        opacity: 1;
        transform: translate(4px, 5px) rotate(-128deg) scale(1);
    }
    64% {
        opacity: 1;
        transform: translate(-25px, -24px) rotate(-53deg) scale(1.08);
    }
    100% {
        opacity: 0;
        transform: translate(-35px, -34px) rotate(-38deg) scale(0.8);
    }
}

@keyframes rick-throat-cut-open {
    0% {
        opacity: 0;
        transform: rotate(-42deg) scaleX(0);
    }
    28% {
        opacity: 1;
        transform: rotate(-42deg) scaleX(1.05);
    }
    100% {
        opacity: 0.35;
        transform: rotate(-42deg) scaleX(0.9);
    }
}

@keyframes rick-throat-blood-spurt {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.35) rotate(-28deg);
    }
    18% {
        opacity: 1;
        transform: translate(-8px, -6px) scale(1.2) rotate(-46deg);
    }
    36% {
        opacity: 0.1;
        transform: translate(-12px, 7px) scale(0.55) rotate(-28deg);
    }
    52% {
        opacity: 1;
        transform: translate(-18px, -3px) scale(1.05) rotate(-58deg);
    }
    70% {
        opacity: 0.18;
        transform: translate(-21px, 13px) scale(0.58) rotate(-32deg);
    }
    86% {
        opacity: 0.95;
        transform: translate(-27px, 4px) scale(0.95) rotate(-54deg);
    }
    100% {
        opacity: 0;
        transform: translate(-31px, 22px) scale(0.4) rotate(-40deg);
    }
}

@keyframes negan-gut-knife-slice {
    0% {
        opacity: 0;
        transform: translate(-15px, 0) rotate(2deg) scale(0.8);
    }
    14% {
        opacity: 1;
        transform: translate(-4px, 0) rotate(1deg) scale(1.05);
    }
    68% {
        opacity: 1;
        transform: translate(46px, 2px) rotate(9deg) scale(1.08);
    }
    100% {
        opacity: 0;
        transform: translate(62px, 4px) rotate(14deg) scale(0.82);
    }
}

@keyframes negan-gut-cut-open {
    0% {
        opacity: 0;
        transform: scaleX(0);
    }
    30% {
        opacity: 1;
        transform: scaleX(1.04);
    }
    100% {
        opacity: 0.45;
        transform: scaleX(0.96);
    }
}

@keyframes negan-gut-blood-pour {
    0% {
        opacity: 0;
        transform: translateY(-2px) scaleY(0.15) scaleX(0.65);
    }
    18% {
        opacity: 1;
        transform: translateY(4px) scaleY(0.72) scaleX(0.95);
    }
    48% {
        opacity: 1;
        transform: translateY(17px) scaleY(1.35) scaleX(1.08);
    }
    78% {
        opacity: 0.9;
        transform: translateY(30px) scaleY(1.08) scaleX(0.86);
    }
    100% {
        opacity: 0;
        transform: translateY(42px) scaleY(0.72) scaleX(0.72);
    }
}

@keyframes death-impact-ring {
    0% {
        opacity: 0;
        transform: scale(0.38);
    }
    14% {
        opacity: 1;
        transform: scale(1.08);
    }
    100% {
        opacity: 0;
        transform: scale(1.78);
    }
}

@keyframes death-slice-left {
    0% {
        opacity: 1;
        transform: translate(0, 0) rotate(0deg) scale(1);
        filter: saturate(1) brightness(1);
    }
    20% {
        transform: translate(-5px, -18px) rotate(-8deg) scale(1.08);
        filter: saturate(1.5) brightness(1.22);
    }
    58% {
        opacity: 1;
        transform: translate(-16px, -56px) rotate(-19deg) scale(1.1);
    }
    100% {
        opacity: 0;
        transform: translate(-42px, -112px) rotate(-48deg) scale(0.68);
        filter: saturate(0.4) brightness(0.25);
    }
}

@keyframes death-slice-right {
    0% {
        opacity: 1;
        transform: translate(0, 0) rotate(0deg) scale(1);
        filter: saturate(1) brightness(1);
    }
    20% {
        transform: translate(6px, -19px) rotate(9deg) scale(1.08);
        filter: saturate(1.5) brightness(1.22);
    }
    58% {
        opacity: 1;
        transform: translate(18px, -55px) rotate(20deg) scale(1.1);
    }
    100% {
        opacity: 0;
        transform: translate(46px, -110px) rotate(51deg) scale(0.68);
        filter: saturate(0.4) brightness(0.25);
    }
}

@keyframes death-shard-scatter {
    0%, 14% {
        opacity: 0;
        transform: translate(0, 0) rotate(0deg) scale(0.25);
    }
    28% {
        opacity: 1;
        transform: translate(calc(var(--x) * 0.42), calc(var(--y) * 0.42 - 26px)) rotate(calc(var(--r) * 0.34)) scale(1.12);
    }
    74% {
        opacity: 0.92;
        transform: translate(var(--x), calc(var(--y) - 58px)) rotate(var(--r)) scale(0.9);
    }
    100% {
        opacity: 0;
        transform: translate(calc(var(--x) * 1.48), calc(var(--y) - 112px)) rotate(calc(var(--r) * 1.75)) scale(0.2);
    }
}

@keyframes death-kill-label {
    0% {
        opacity: 0;
        transform: translateX(-50%) translateY(18px) scale(0.7);
    }
    16% {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(1.18);
    }
    58% {
        opacity: 1;
        transform: translateX(-50%) translateY(-12px) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateX(-50%) translateY(-48px) scale(0.72);
    }
}

.enemy-characters .death-kill-label {
    animation-name: death-kill-label-enemy;
}

@keyframes death-kill-label-enemy {
    0% {
        opacity: 0;
        transform: translateX(-50%) translateY(18px) scale(0.7) scaleX(-1);
    }
    16% {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(1.18) scaleX(-1);
    }
    58% {
        opacity: 1;
        transform: translateX(-50%) translateY(-12px) scale(1) scaleX(-1);
    }
    100% {
        opacity: 0;
        transform: translateX(-50%) translateY(-48px) scale(0.72) scaleX(-1);
    }
}

.player-characters.storm-rain-weather::before,
.enemy-characters.storm-rain-weather::before,
.player-characters.storm-hail-weather::before,
.enemy-characters.storm-hail-weather::before {
    content: "";
    position: absolute;
    left: -36px;
    top: -24px;
    width: 154px;
    height: 296px;
    pointer-events: none;
    z-index: 58;
}

.player-characters.storm-rain-weather::before,
.enemy-characters.storm-rain-weather::before {
    background:
        repeating-linear-gradient(108deg, rgba(129, 195, 255, 0.78) 0 2px, transparent 2px 13px),
        linear-gradient(180deg, rgba(40, 78, 112, 0.12), rgba(40, 78, 112, 0.02));
    filter: drop-shadow(0 0 3px rgba(123, 194, 255, 0.6));
    animation: storm-rain-fall 1.15s linear infinite;
}

.player-characters.storm-hail-weather::before,
.enemy-characters.storm-hail-weather::before {
    background:
        radial-gradient(circle, rgba(244, 252, 255, 0.94) 0 2px, transparent 3px),
        radial-gradient(circle, rgba(203, 234, 255, 0.85) 0 2px, transparent 3px);
    background-size: 26px 28px, 34px 36px;
    background-position: 0 0, 12px 8px;
    filter: drop-shadow(0 0 4px rgba(221, 246, 255, 0.9));
    animation: storm-hail-fall 1.45s linear infinite;
}

.aquaman-tidal-wave-screen-fx {
    position: fixed;
    inset: 0;
    z-index: 9998;
    pointer-events: none;
    overflow: hidden;
    animation: aquaman-tidal-wave-fade 2.6s ease-out forwards;
}

.aquaman-tidal-wave-screen-fx::before {
    content: "";
    position: absolute;
    left: -12vw;
    right: -12vw;
    bottom: -18vh;
    height: 72vh;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(255, 255, 255, 0.92) 0 4%, rgba(177, 238, 255, 0.72) 5% 12%, transparent 13%),
        linear-gradient(180deg, rgba(118, 219, 255, 0.86) 0%, rgba(18, 117, 190, 0.88) 48%, rgba(4, 48, 96, 0.92) 100%);
    clip-path: polygon(0 48%, 7% 37%, 15% 45%, 23% 29%, 34% 42%, 44% 22%, 56% 39%, 68% 24%, 79% 43%, 90% 33%, 100% 47%, 100% 100%, 0 100%);
    filter: drop-shadow(0 -12px 20px rgba(140, 229, 255, 0.65));
    transform: translateY(72vh) scaleX(1.08);
    animation: aquaman-tidal-wave-rise 2.25s cubic-bezier(0.16, 0.78, 0.28, 1) forwards;
}

.aquaman-tidal-wave-crest,
.aquaman-tidal-wave-surge,
.aquaman-tidal-wave-foam,
.aquaman-tidal-wave-spray {
    position: absolute;
    left: -15vw;
    right: -15vw;
    pointer-events: none;
}

.aquaman-tidal-wave-crest {
    bottom: 46vh;
    height: 18vh;
    background:
        radial-gradient(circle at 8% 70%, rgba(255, 255, 255, 0.95) 0 18px, transparent 20px),
        radial-gradient(circle at 22% 62%, rgba(255, 255, 255, 0.9) 0 26px, transparent 28px),
        radial-gradient(circle at 42% 74%, rgba(255, 255, 255, 0.95) 0 21px, transparent 23px),
        radial-gradient(circle at 62% 58%, rgba(255, 255, 255, 0.9) 0 30px, transparent 32px),
        radial-gradient(circle at 82% 72%, rgba(255, 255, 255, 0.95) 0 22px, transparent 24px);
    opacity: 0;
    transform: translateY(42vh);
    filter: blur(0.3px) drop-shadow(0 0 10px rgba(255, 255, 255, 0.8));
    animation: aquaman-tidal-crest 2.35s ease-out forwards;
}

.aquaman-tidal-wave-surge {
    bottom: 0;
    height: 100vh;
    background:
        repeating-linear-gradient(168deg, rgba(255, 255, 255, 0.24) 0 3px, transparent 3px 18px),
        linear-gradient(180deg, transparent 0%, rgba(51, 173, 226, 0.38) 36%, rgba(0, 82, 150, 0.55) 100%);
    mix-blend-mode: screen;
    opacity: 0;
    animation: aquaman-tidal-surge 2.45s ease-out forwards;
}

.aquaman-tidal-wave-foam.one,
.aquaman-tidal-wave-foam.two {
    height: 22vh;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.88) 0 2px, transparent 3px),
        radial-gradient(circle, rgba(178, 239, 255, 0.82) 0 3px, transparent 4px);
    background-size: 38px 24px, 54px 34px;
    opacity: 0;
}

.aquaman-tidal-wave-foam.one {
    bottom: 22vh;
    animation: aquaman-tidal-foam 2.2s ease-out forwards;
}

.aquaman-tidal-wave-foam.two {
    bottom: 8vh;
    transform: scaleX(-1);
    animation: aquaman-tidal-foam 2.35s ease-out 120ms forwards;
}

.aquaman-tidal-wave-spray {
    inset: -8vh -12vw auto -12vw;
    height: 46vh;
    background:
        radial-gradient(circle, rgba(255, 255, 255, 0.8) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(174, 235, 255, 0.65) 0 2px, transparent 3px);
    background-size: 24px 18px, 42px 28px;
    opacity: 0;
    animation: aquaman-tidal-spray 2.05s ease-out 280ms forwards;
}

.xenomorph-facehugger-overlay {
    position: absolute;
    left: 50%;
    top: 49%;
    width: 110px;
    height: 156px;
    z-index: 76;
    pointer-events: none;
    transform: translate(-50%, -50%) rotate(-2deg);
    filter:
        drop-shadow(0 5px 3px rgba(0, 0, 0, 0.72))
        drop-shadow(0 0 9px rgba(189, 214, 187, 0.52));
    animation: xenomorph-facehugger-grip 2.35s ease-in-out infinite;
}

.xenomorph-facehugger-overlay img {
    width: 110px;
    height: 156px;
    object-fit: fill;
    display: block;
}

.xenomorph-facehugger-fx .character-face {
    filter: brightness(0.78) saturate(0.85) contrast(1.08);
}

.venom-ally-symbiosis-marker {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 58px;
    height: 58px;
    z-index: 78;
    pointer-events: none;
    transform: translate(-50%, -50%);
    filter: drop-shadow(0 0 7px rgba(0, 0, 0, 0.9)) drop-shadow(0 0 8px rgba(16, 16, 16, 0.85));
    animation: venom-ally-marker-pulse 2.1s ease-in-out infinite;
}

.venom-ally-symbiosis-marker img,
.negan-iron-overlay img,
.negan-iron-slam-fx img,
.negan-iron-rip-away-fx img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.venom-bite-crunch-fx,
.venom-web-cocoon-fx,
.venom-tendril-latch-fx,
.negan-iron-slam-fx,
.negan-iron-rip-away-fx {
    position: absolute;
    inset: 0;
    z-index: 82;
    pointer-events: none;
    overflow: hidden;
}

.venom-teeth {
    position: absolute;
    left: 50%;
    width: 48px;
    height: 46px;
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.85));
}

.venom-teeth::before,
.venom-teeth::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
}

.venom-teeth::before { left: 4px; }
.venom-teeth::after { right: 4px; }
.venom-teeth.upper-left,
.venom-teeth.upper-right { top: -32px; animation: venom-upper-bite 760ms cubic-bezier(0.1, 0.85, 0.16, 1.08) both; }
.venom-teeth.lower-left,
.venom-teeth.lower-right { bottom: -31px; animation: venom-lower-bite 760ms cubic-bezier(0.1, 0.85, 0.16, 1.08) both; }
.venom-teeth.upper-left { margin-left: -55px; transform: rotate(-9deg); }
.venom-teeth.upper-right { margin-left: 7px; transform: rotate(9deg); }
.venom-teeth.lower-left { margin-left: -55px; transform: rotate(9deg); }
.venom-teeth.lower-right { margin-left: 7px; transform: rotate(-9deg); }
.venom-teeth.upper-left::before,
.venom-teeth.upper-left::after,
.venom-teeth.upper-right::before,
.venom-teeth.upper-right::after {
    border-top: 42px solid #f5f0dc;
}
.venom-teeth.lower-left::before,
.venom-teeth.lower-left::after,
.venom-teeth.lower-right::before,
.venom-teeth.lower-right::after {
    border-bottom: 42px solid #f5f0dc;
}

.venom-bite-goo,
.venom-web-goo,
.venom-latch-goo {
    position: absolute;
    width: 10px;
    height: 28px;
    border-radius: 999px;
    background: linear-gradient(180deg, #050505, #1b1b1b 54%, #000);
    box-shadow: inset 0 0 5px rgba(255,255,255,0.16), 0 0 8px rgba(0,0,0,0.85);
    animation: venom-goo-drip 1.3s ease-in both;
}

.venom-bite-goo.a { left: 34px; top: 30px; }
.venom-bite-goo.b { right: 33px; top: 42px; animation-delay: 120ms; }

.venom-symbiote-tendril {
    position: fixed;
    height: 18px;
    z-index: 9000;
    transform-origin: left center;
    pointer-events: none;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.86));
}

.venom-tendril-core {
    position: absolute;
    inset: 5px 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #000, #191919 45%, #030303);
    box-shadow: inset 0 1px 4px rgba(255,255,255,0.16), 0 0 9px rgba(0,0,0,0.86);
    animation: venom-tendril-pull 1.45s ease-in-out both;
}

.venom-tendril-vein,
.venom-tendril-drip {
    position: absolute;
    background: #050505;
    border-radius: 999px;
}
.venom-tendril-vein.a { left: 18%; top: 2px; width: 42%; height: 5px; }
.venom-tendril-vein.b { right: 10%; bottom: 1px; width: 36%; height: 5px; }
.venom-tendril-drip.a { left: 43%; top: 12px; width: 7px; height: 20px; animation: venom-goo-drip 1.1s ease-in both; }
.venom-tendril-drip.b { left: 68%; top: 10px; width: 6px; height: 15px; animation: venom-goo-drip 1.25s ease-in 120ms both; }

.venom-web-strand {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 124px;
    height: 10px;
    margin-left: -62px;
    margin-top: -5px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #020202 14%, #202020 50%, #020202 86%, transparent);
    box-shadow: 0 0 6px rgba(0,0,0,0.9), inset 0 1px 3px rgba(255,255,255,0.18);
    animation: venom-web-wrap-tighten 1.55s ease-out both;
}
.venom-web-strand.a { transform: rotate(10deg); }
.venom-web-strand.b { transform: rotate(-18deg); animation-delay: 90ms; }
.venom-web-strand.c { transform: rotate(44deg); animation-delay: 170ms; }
.venom-web-strand.d { transform: rotate(-57deg); animation-delay: 240ms; }
.venom-web-goo.a { left: 27px; top: 18px; }
.venom-web-goo.b { right: 22px; bottom: 13px; animation-delay: 140ms; }

.venom-latch-ring {
    position: absolute;
    inset: 14px;
    border-radius: 50%;
    border: 7px solid #030303;
    box-shadow: inset 0 0 14px rgba(255,255,255,0.1), 0 0 11px rgba(0,0,0,0.9);
    animation: venom-latch-yank 1.35s ease-in-out both;
}
.venom-latch-hook {
    position: absolute;
    width: 56px;
    height: 12px;
    top: 50%;
    margin-top: -6px;
    border-radius: 999px;
    background: #040404;
}
.venom-latch-hook.a { left: -12px; transform: rotate(20deg); }
.venom-latch-hook.b { right: -12px; transform: rotate(-20deg); }
.venom-latch-goo.a { left: 18px; top: 35px; }
.venom-latch-goo.b { right: 20px; top: 28px; animation-delay: 140ms; }

.negan-iron-overlay {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 65%;
    height: 65%;
    z-index: 84;
    pointer-events: none;
    transform: translate(-50%, -50%) rotate(-8deg);
    filter: drop-shadow(0 5px 4px rgba(0,0,0,0.86)) drop-shadow(0 0 10px rgba(255,68,14,0.88));
    animation: negan-iron-press 1.8s ease-in-out infinite;
}

.negan-iron-glow,
.negan-iron-slam-glow {
    position: absolute;
    inset: 21% 20% 22% 20%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,217,88,0.88), rgba(255,83,12,0.58) 45%, transparent 72%);
    mix-blend-mode: screen;
    animation: negan-iron-heat-pulse 1.3s ease-in-out infinite;
}

.negan-the-iron-fx .character-face {
    filter: brightness(0.62) contrast(1.2) saturate(0.85);
}

.negan-iron-scorch,
.negan-iron-scar-overlay {
    position: absolute;
    inset: 17px 18px;
    border-radius: 12px;
    pointer-events: none;
    background:
        radial-gradient(circle at 52% 46%, rgba(16,0,0,0.72), transparent 32%),
        radial-gradient(circle at 58% 52%, rgba(255,73,12,0.38), transparent 25%);
    mix-blend-mode: multiply;
}

.negan-iron-steam,
.negan-iron-smoke,
.negan-iron-slam-smoke,
.negan-iron-rip-smoke {
    position: absolute;
    width: 22px;
    height: 46px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(238,238,224,0.52), rgba(88,81,72,0.2) 52%, transparent 72%);
    animation: negan-iron-smoke-rise 1.7s ease-out infinite;
}
.negan-iron-steam.a { left: 14%; top: -11%; }
.negan-iron-steam.b { right: 8%; top: -7%; animation-delay: 420ms; }
.negan-iron-smoke.a { left: 18%; bottom: 3%; animation-delay: 210ms; }
.negan-iron-smoke.b { right: 20%; bottom: 5%; animation-delay: 620ms; }

.negan-iron-slam-fx img,
.negan-iron-rip-away-fx img {
    position: absolute;
    left: 17%;
    top: 15%;
    width: 66%;
    height: 66%;
    filter: drop-shadow(0 5px 4px rgba(0,0,0,0.88)) drop-shadow(0 0 12px rgba(255,75,9,0.92));
}
.negan-iron-slam-fx img { animation: negan-iron-slam 980ms cubic-bezier(0.09, 0.82, 0.12, 1.1) both; }
.negan-iron-rip-away-fx img { animation: negan-iron-rip-away 1.25s cubic-bezier(0.12, 0.72, 0.16, 1) both; }
.negan-iron-slam-glow { inset: 26% 26%; }
.negan-iron-slam-smoke.a { left: 25%; top: 6%; }
.negan-iron-slam-smoke.b { right: 20%; top: 12%; animation-delay: 240ms; }

.negan-the-iron-scar-fx .character-face {
    filter: brightness(0.72) contrast(1.22) saturate(0.82);
}

.negan-scar-burn,
.negan-scar-tear,
.negan-iron-rip-burn {
    position: absolute;
    background: rgba(18, 2, 0, 0.72);
    box-shadow: inset 0 0 7px rgba(255,74,12,0.45), 0 0 5px rgba(0,0,0,0.7);
}
.negan-scar-burn.a { left: 34%; top: 25%; width: 34%; height: 38%; border-radius: 47% 30% 46% 32%; transform: rotate(-10deg); }
.negan-scar-burn.b { left: 48%; top: 43%; width: 18%; height: 24%; border-radius: 43%; transform: rotate(22deg); }
.negan-scar-tear.a { left: 39%; top: 28%; width: 8px; height: 50px; transform: rotate(14deg); }
.negan-scar-tear.b { left: 58%; top: 32%; width: 6px; height: 36px; transform: rotate(-19deg); }
.negan-iron-rip-burn.a { left: 37%; top: 24%; width: 32%; height: 40%; border-radius: 45%; animation: negan-rip-burn-flash 1.2s ease-out both; }
.negan-iron-rip-burn.b { right: 26%; top: 41%; width: 15%; height: 28%; border-radius: 45%; animation: negan-rip-burn-flash 1.2s ease-out 120ms both; }

.parasite-toxic-flash .character-face,
.character-card.parasite-toxic-flash .character-face {
    animation: parasite-toxic-flash 760ms ease-out both;
}

.parasite-drain-tendril {
    position: fixed;
    z-index: 9002;
    height: 16px;
    transform-origin: left center;
    pointer-events: none;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.9));
}

.parasite-tendril-core {
    position: absolute;
    inset: 4px 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #020202, #112110 45%, #6cff44 54%, #020202);
    animation: parasite-tendril-shoot 1.2s ease-out both;
}

.parasite-tendril-pulse {
    position: absolute;
    right: -6px;
    top: 50%;
    width: 17px;
    height: 17px;
    margin-top: -8px;
    border-radius: 50%;
    background: radial-gradient(circle, #b7ff6a, #44dc35 48%, transparent 72%);
    animation: parasite-orb-return 1.2s ease-in both;
}

.parasite-life-leech-enemy-fx,
.parasite-life-leech-ally-fx,
.parasite-metabolic-collapse-fx,
.parasite-energy-transfer-fx,
.parasite-host-mutation-cast-fx {
    position: absolute;
    inset: 0;
    z-index: 83;
    pointer-events: none;
    overflow: hidden;
}

.parasite-darken {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.42);
    animation: parasite-fade-hit 1.2s ease-out both;
}

.parasite-return-orb {
    position: absolute;
    left: 44%;
    top: 40%;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: radial-gradient(circle, #d7ff6d, #58ef39 52%, transparent 72%);
    animation: parasite-return-orb-card 1.35s ease-in both;
}

.parasite-biomass-wrap {
    position: absolute;
    inset: 10px;
    border: 8px solid #030503;
    border-radius: 18px 42px 20px 36px;
    box-shadow: 0 0 16px rgba(73,255,72,0.45), inset 0 0 15px rgba(0,0,0,0.9);
    animation: parasite-wrap-pulse 1.3s ease-out both;
}

.parasite-green-pulse,
.parasite-shield-shimmer {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle, rgba(149,255,93,0.72), transparent 64%);
    animation: parasite-green-pulse 1.35s ease-out both;
}

.parasite-dd-pop {
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
    color: #d9ff8b;
    font-weight: 900;
    font-size: 17px;
    text-shadow: 0 2px 3px #000, 0 0 8px #46ff4f;
    animation: parasite-dd-pop 1.25s ease-out both;
}

.parasite-metabolic-screen-flash,
.parasite-overload-screen-fx {
    position: fixed;
    inset: 0;
    z-index: 9998;
    pointer-events: none;
}

.parasite-metabolic-screen-flash {
    background: rgba(48,0,65,0.42);
    animation: parasite-screen-flash 780ms ease-out both;
}

.parasite-metabolic-collapse-fx {
    animation: parasite-target-shake 520ms linear both;
}

.parasite-corruption-symbol {
    position: absolute;
    width: 35px;
    height: 35px;
    border: 4px solid #b85cff;
    border-radius: 50%;
    box-shadow: 0 0 12px rgba(184,92,255,0.9);
    animation: parasite-symbol-stamp 520ms ease-out both;
}
.parasite-corruption-symbol::before,
.parasite-corruption-symbol::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 4px;
    width: 4px;
    height: 22px;
    background: #b85cff;
    transform-origin: center 13px;
}
.parasite-corruption-symbol::after { transform: rotate(60deg); }
.parasite-corruption-symbol.a { left: 16px; top: 18px; }
.parasite-corruption-symbol.b { right: 16px; top: 28px; animation-delay: 120ms; }
.parasite-corruption-symbol.c { left: 42px; bottom: 16px; animation-delay: 220ms; }

.parasite-crack-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(110deg, transparent 45%, rgba(0,0,0,0.75) 46% 49%, transparent 50%),
        linear-gradient(34deg, transparent 52%, rgba(0,0,0,0.7) 53% 56%, transparent 57%);
    animation: parasite-crack-in 1.2s ease-out both;
}

.parasite-debuff-stamp {
    position: absolute;
    right: 8px;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: #120b16;
    box-shadow: 0 0 8px rgba(184,92,255,0.85);
    animation: parasite-symbol-stamp 520ms ease-out both;
}
.parasite-debuff-stamp.chain { top: 8px; animation-delay: 360ms; }
.parasite-debuff-stamp.cross { top: 36px; background: #08210d; animation-delay: 480ms; }
.parasite-debuff-stamp.shield { top: 64px; background: #161821; animation-delay: 600ms; }

.parasite-complete-icon {
    position: absolute;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background: #70ff57;
    box-shadow: 0 0 10px rgba(112,255,87,0.95), 0 0 0 3px rgba(255,214,79,0.8);
    animation: parasite-symbol-stamp 680ms ease-out both;
}
.parasite-complete-icon.one { left: 22px; top: 28px; }
.parasite-complete-icon.two { left: 50%; top: 17px; margin-left: -14px; animation-delay: 120ms; }
.parasite-complete-icon.three { right: 22px; top: 28px; animation-delay: 240ms; }

.parasite-host-mutation-cast-fx {
    background: radial-gradient(circle, rgba(110,255,64,0.42), rgba(0,0,0,0.3) 62%, transparent 76%);
    animation: parasite-mutation-burst 1.35s ease-out both;
}

.parasite-mutation-jaw {
    position: absolute;
    left: 50%;
    bottom: 18px;
    width: 58px;
    height: 30px;
    margin-left: -29px;
    border-radius: 50%;
    background: #050805;
    box-shadow: inset 0 0 0 5px #dfffcc;
    animation: parasite-jaw-snap 1s ease-out both;
}

.parasite-mutation-eyes,
.parasite-mutated-eye {
    position: absolute;
    width: 17px;
    height: 8px;
    border-radius: 50%;
    background: #deff3f;
    box-shadow: 0 0 10px #7cff32;
}

.parasite-mutation-eyes { left: 50%; top: 34px; margin-left: -8px; }
.parasite-mutated-eye.a { left: 30%; top: 31%; }
.parasite-mutated-eye.b { right: 30%; top: 31%; }

.parasite-host-mutation-fx .character-face {
    filter: brightness(0.78) saturate(1.35) contrast(1.12);
}

.parasite-host-mutation-marker,
.parasite-overload-marker,
.parasite-absorption-marker {
    position: absolute;
    inset: 0;
    z-index: 79;
    pointer-events: none;
}

.parasite-mutated-border,
.parasite-overload-marker span {
    position: absolute;
    inset: 4px;
    border-radius: 12px;
    border: 3px solid rgba(100,255,62,0.9);
    box-shadow: 0 0 12px rgba(82,255,69,0.9), inset 0 0 14px rgba(0,0,0,0.75);
    animation: parasite-frame-pulse 1.8s ease-in-out infinite;
}

.parasite-overload-enemy-fx .parasite-overload-marker span {
    border-color: rgba(92,0,132,0.95);
    box-shadow: 0 0 14px rgba(154,55,255,0.9), inset 0 0 18px rgba(0,0,0,0.82);
}

.parasite-absorption-marker span {
    position: absolute;
    right: 9px;
    bottom: 9px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    box-shadow: 0 0 9px currentColor;
    animation: parasite-frame-pulse 1.7s ease-in-out infinite;
}
.parasite-absorption-marker .negative { color: #b85cff; background: #5d1390; }
.parasite-absorption-marker .positive { color: #75ff53; background: #208b2b; }

.parasite-overload-screen-fx {
    background: rgba(0,0,0,0.55);
    animation: parasite-overload-fade 2.2s ease-out both;
}

.parasite-overload-wave {
    position: absolute;
    left: -20%;
    top: 0;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(75,255,52,0.45), rgba(0,0,0,0.72), transparent);
    transform: skewX(-18deg);
    animation: parasite-overload-wave 1.5s ease-out both;
}

.parasite-overload-text {
    position: absolute;
    left: 50%;
    top: 46%;
    transform: translate(-50%, -50%);
    color: #d9ff85;
    font-size: 34px;
    font-weight: 1000;
    text-shadow: 0 3px 5px #000, 0 0 18px #53ff3d;
    animation: parasite-overload-title 1.7s ease-out both;
}

.skilltooltipimage.dynamic-ricochet-target-icon {
    border-color: #f2c94c;
    box-shadow: 0 0 0 1px #111, 0 0 8px rgba(242, 201, 76, 0.9);
    animation: ricochet-target-pulse 920ms ease-in-out infinite;
}

.predator-ricochet-portrait-marker {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 44px;
    height: 44px;
    margin-left: -22px;
    margin-top: -22px;
    z-index: 63;
    pointer-events: none;
    border: 2px solid #f2c94c;
    border-radius: 50%;
    background: rgba(19, 15, 6, 0.46);
    box-shadow: 0 0 13px rgba(242, 201, 76, 0.95), inset 0 0 10px rgba(242, 201, 76, 0.42);
    animation: predator-ricochet-lock 1.25s ease-in-out infinite;
}

.predator-ricochet-portrait-marker::before,
.predator-ricochet-portrait-marker::after {
    content: "";
    position: absolute;
    background: rgba(242, 201, 76, 0.95);
}

.predator-ricochet-portrait-marker::before {
    left: 50%;
    top: -8px;
    width: 2px;
    height: 58px;
}

.predator-ricochet-portrait-marker::after {
    left: -8px;
    top: 50%;
    width: 58px;
    height: 2px;
}

.predator-ricochet-portrait-marker img {
    position: absolute;
    left: 10px;
    top: 10px;
    width: 24px;
    height: 24px;
    object-fit: cover;
    border: 1px solid #111;
    border-radius: 50%;
}

.goblin-bomb-marker,
.goblin-bomb-lob {
    position: absolute;
    width: 42px;
    height: 42px;
    pointer-events: none;
}

.goblin-bomb-marker {
    left: 16px;
    top: 17px;
    z-index: 36;
    animation: goblin-bomb-idle 1.15s ease-in-out infinite;
}

.goblin-bomb-marker.fresh {
    animation: goblin-bomb-land 720ms cubic-bezier(0.18, 0.9, 0.22, 1.25) both,
        goblin-bomb-idle 1.15s ease-in-out 720ms infinite;
}

.goblin-bomb-lob {
    left: -60px;
    top: -42px;
    z-index: 45;
    transform-origin: center;
    animation: goblin-bomb-lob 820ms cubic-bezier(0.24, 0.85, 0.22, 1) both;
}

.goblin-bomb-core {
    position: absolute;
    left: 8px;
    top: 10px;
    width: 25px;
    height: 25px;
    border: 2px solid #000;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, #5f6570 0 14%, #17191d 42%, #050506 100%);
    box-shadow: 0 0 0 2px rgba(255, 145, 46, 0.32), 0 0 16px rgba(255, 86, 23, 0.82);
}

.goblin-bomb-fuse {
    position: absolute;
    left: 26px;
    top: 4px;
    width: 16px;
    height: 15px;
    border-top: 3px solid #1a1208;
    border-right: 3px solid #1a1208;
    border-radius: 0 12px 0 0;
    transform: rotate(-12deg);
}

.goblin-bomb-spark {
    position: absolute;
    left: 36px;
    top: 0;
    width: 9px;
    height: 9px;
    background: #ffef5e;
    border: 1px solid #000;
    clip-path: polygon(50% 0, 62% 35%, 100% 25%, 70% 54%, 92% 88%, 54% 72%, 28% 100%, 32% 62%, 0 48%, 36% 38%);
    filter: drop-shadow(0 0 5px rgba(255, 104, 24, 0.95));
    animation: goblin-bomb-spark 420ms steps(2, end) infinite;
}

.goblin-bomb-marker.stacked .goblin-bomb-spark {
    animation-duration: 210ms;
}

.goblin-bomb-count {
    position: absolute;
    right: -5px;
    top: 22px;
    min-width: 18px;
    height: 15px;
    padding: 0 2px;
    border: 1px solid #000;
    background: #f52d1f;
    color: #fff;
    font: 900 10px/14px 'Franklin', Arial, sans-serif;
    text-align: center;
    box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.78);
}

.goblin-bomb-label {
    position: absolute;
    left: 50%;
    top: 34px;
    transform: translateX(-50%);
    padding: 1px 4px;
    border: 1px solid #000;
    background: #ffcf35;
    color: #151515;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 9px;
    font-weight: 900;
    line-height: 10px;
    letter-spacing: 0;
    text-shadow: none;
    box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.78);
}

.character-card.has-lantern-aura::before {
    content: "";
    position: absolute;
    left: -7px;
    top: -7px;
    width: 87px;
    height: 87px;
    border: 2px solid var(--lantern-color, rgba(89, 255, 141, 0.9));
    border-radius: 50%;
    z-index: 6;
    pointer-events: none;
    box-shadow:
        0 0 10px var(--lantern-glow, rgba(89, 255, 141, 0.78)),
        inset 0 0 12px var(--lantern-glow, rgba(89, 255, 141, 0.36));
    animation: lantern-aura-pulse 1.65s ease-in-out infinite;
}

.character-card.has-lantern-aura::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 4px;
    width: 65px;
    height: 65px;
    border: 1px solid var(--lantern-color, rgba(89, 255, 141, 0.72));
    border-radius: 50%;
    z-index: 6;
    pointer-events: none;
    opacity: 0.72;
    animation: lantern-inner-ring 2s linear infinite;
}

.character-card.batman-smoke-fx .character-face {
    filter: contrast(0.86) saturate(0.72);
}

.character-card.batman-smoke-fx::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 7px;
    width: 92px;
    height: 58px;
    pointer-events: none;
    z-index: 34;
    background:
        radial-gradient(circle at 22% 54%, rgba(150, 154, 160, 0.46), transparent 44%),
        radial-gradient(circle at 52% 42%, rgba(196, 198, 203, 0.48), transparent 46%),
        radial-gradient(circle at 78% 58%, rgba(119, 123, 130, 0.38), transparent 42%);
    filter: blur(3px);
    animation: batman-smoke-drift 1.9s ease-in-out infinite;
}

.character-card.batman-emp-fx .skillimage {
    animation: batman-emp-flicker 520ms steps(2, end) infinite;
}

.character-card.rage-infected-fx .character-face {
    box-shadow: inset 0 0 0 2px rgba(174, 0, 0, 0.5), 0 0 9px rgba(174, 0, 0, 0.55);
}

.character-card.rage-infected-fx::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 10px;
    width: 62px;
    height: 46px;
    pointer-events: none;
    z-index: 35;
    background:
        linear-gradient(112deg, transparent 0 42%, rgba(191, 0, 0, 0.86) 43% 49%, transparent 50%),
        linear-gradient(72deg, transparent 0 48%, rgba(255, 54, 33, 0.75) 49% 55%, transparent 56%);
    mix-blend-mode: screen;
    animation: rage-scratch-jitter 780ms steps(2, end) infinite;
}

.character-card.mysterio-illusion-fx .character-face {
    animation: mysterio-illusion-flicker 1.2s ease-in-out infinite;
}

.character-card.mysterio-illusion-fx::before {
    content: "?";
    position: absolute;
    left: 50%;
    top: 35px;
    transform: translate(-50%, -50%);
    z-index: 38;
    color: rgba(164, 255, 221, 0.9);
    font: 900 38px/1 'Pedra', 'Libre Franklin', serif;
    text-shadow: 0 0 8px rgba(48, 255, 202, 0.88), 2px 2px 0 #151515;
    pointer-events: none;
    animation: mysterio-question-float 1.4s ease-in-out infinite;
}

.character-card.joker-remote-bomb-fx .character-face {
    box-shadow: 0 0 11px rgba(255, 46, 46, 0.78);
}

.joker-detonator-light {
    position: absolute;
    left: 7px;
    top: -9px;
    width: 18px;
    height: 18px;
    z-index: 39;
    pointer-events: none;
}

.joker-detonator-light span {
    display: block;
    width: 100%;
    height: 100%;
    border: 2px solid #111;
    border-radius: 50%;
    background: #ff2323;
    box-shadow: 0 0 11px rgba(255, 35, 35, 0.95);
    animation: joker-detonator-blink 620ms steps(2, end) infinite;
}

.character-card.captain-shield-fx .character-face {
    animation: captain-shield-glint 1.15s ease-in-out infinite;
}

.character-card.captain-shield-fx::before {
    content: "";
    position: absolute;
    left: -11px;
    top: 21px;
    width: 98px;
    height: 4px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.95), rgba(83, 151, 255, 0.88), transparent);
    pointer-events: none;
    z-index: 39;
    transform: rotate(-18deg);
    animation: captain-shield-trail 1.05s ease-in-out infinite;
}

.character-card.predator-cloak-fx .character-face {
    opacity: 0.78;
    filter: contrast(1.18) saturate(0.72) hue-rotate(150deg);
    animation: predator-cloak-distort 980ms steps(3, end) infinite;
}

.character-card.predator-cloak-fx::after {
    content: "";
    position: absolute;
    left: -3px;
    top: -2px;
    width: 82px;
    height: 82px;
    z-index: 37;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent 0 22%, rgba(153, 255, 232, 0.2) 24% 25%, transparent 27% 52%, rgba(153, 255, 232, 0.15) 54% 55%, transparent 57%),
        repeating-linear-gradient(0deg, transparent 0 6px, rgba(180, 255, 238, 0.14) 7px 8px);
    mix-blend-mode: screen;
    animation: predator-cloak-scan 820ms linear infinite;
}

.character-card.spider-web-fx .character-face {
    filter: brightness(0.88) saturate(0.72);
}

.character-card.spider-web-fx::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 3px;
    width: 72px;
    height: 72px;
    pointer-events: none;
    z-index: 38;
    background:
        radial-gradient(circle at 50% 50%, transparent 0 14%, rgba(255, 255, 255, 0.78) 15% 16%, transparent 17% 30%, rgba(255, 255, 255, 0.74) 31% 32%, transparent 33%),
        linear-gradient(0deg, transparent 48%, rgba(255, 255, 255, 0.82) 49% 51%, transparent 52%),
        linear-gradient(45deg, transparent 48%, rgba(255, 255, 255, 0.82) 49% 51%, transparent 52%),
        linear-gradient(90deg, transparent 48%, rgba(255, 255, 255, 0.82) 49% 51%, transparent 52%),
        linear-gradient(135deg, transparent 48%, rgba(255, 255, 255, 0.82) 49% 51%, transparent 52%);
    border-radius: 50%;
    opacity: 0.92;
    filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.95));
    animation: spider-web-tighten 1.8s ease-in-out infinite;
}

.character-card.andrea-lock-fx::after {
    content: "";
    position: absolute;
    left: -10px;
    top: -10px;
    width: 94px;
    height: 94px;
    pointer-events: none;
    z-index: 40;
    border: 2px solid rgba(231, 37, 37, 0.96);
    border-radius: 50%;
    background:
        linear-gradient(90deg, transparent 0 48%, rgba(231, 37, 37, 0.94) 49% 51%, transparent 52%),
        linear-gradient(0deg, transparent 0 48%, rgba(231, 37, 37, 0.94) 49% 51%, transparent 52%);
    box-shadow: 0 0 12px rgba(231, 37, 37, 0.72), inset 0 0 12px rgba(231, 37, 37, 0.35);
    animation: andrea-crosshair-focus 1.6s ease-in-out infinite;
}

.character-card.smartgun-lock-fx::after,
.smartgun-lock-cast-fx {
    position: absolute;
    left: 4px;
    top: 4px;
    width: 66px;
    height: 66px;
    pointer-events: none;
    z-index: 88;
    border-radius: 12px;
    box-sizing: border-box;
}

.character-card.smartgun-lock-fx::after {
    content: "";
    border: 1px solid rgba(45, 218, 255, 0.9);
    background:
        linear-gradient(90deg, transparent 0 46%, rgba(137, 245, 255, 0.84) 47% 53%, transparent 54%),
        linear-gradient(0deg, transparent 0 46%, rgba(137, 245, 255, 0.84) 47% 53%, transparent 54%),
        radial-gradient(circle, transparent 0 32%, rgba(45, 218, 255, 0.26) 33% 36%, transparent 37%);
    box-shadow: 0 0 10px rgba(45, 218, 255, 0.9), inset 0 0 12px rgba(15, 95, 255, 0.36);
    animation: smartgun-lock-scan 1.25s ease-in-out infinite;
}

.smartgun-lock-cast-fx {
    left: 4px;
    top: 4px;
}

.smartgun-lock-cast-fx .smartgun-lock-ring {
    position: absolute;
    inset: 5px;
    border: 2px solid rgba(74, 228, 255, 0.96);
    border-radius: 50%;
    box-shadow: 0 0 12px rgba(42, 217, 255, 0.95), inset 0 0 12px rgba(19, 83, 255, 0.42);
    animation: smartgun-lock-cast-ring 1450ms ease-out both;
}

.smartgun-lock-cast-fx .smartgun-lock-corner {
    position: absolute;
    width: 16px;
    height: 16px;
    border-color: #9af6ff;
    border-style: solid;
    filter: drop-shadow(0 0 5px rgba(47, 220, 255, 0.95));
}

.smartgun-lock-cast-fx .smartgun-lock-corner.a { left: 0; top: 0; border-width: 2px 0 0 2px; }
.smartgun-lock-cast-fx .smartgun-lock-corner.b { right: 0; top: 0; border-width: 2px 2px 0 0; }
.smartgun-lock-cast-fx .smartgun-lock-corner.c { left: 0; bottom: 0; border-width: 0 0 2px 2px; }
.smartgun-lock-cast-fx .smartgun-lock-corner.d { right: 0; bottom: 0; border-width: 0 2px 2px 0; }

.smartgun-lock-cast-fx .smartgun-lock-dot {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: #e7fbff;
    box-shadow: 0 0 8px #41e7ff;
}

.predator-bleeder-spears {
    position: absolute;
    left: -9px;
    top: 2px;
    width: 92px;
    height: 86px;
    z-index: 92;
    pointer-events: none;
    overflow: visible;
}

.predator-bleeder-spears::after {
    content: "";
    position: absolute;
    left: 14px;
    top: 29px;
    width: 58px;
    height: 60px;
    background:
        radial-gradient(circle at 24% 18%, rgba(255, 47, 36, 0.96) 0 4px, transparent 5px),
        radial-gradient(circle at 47% 8%, rgba(140, 0, 0, 0.94) 0 3px, transparent 4px),
        radial-gradient(circle at 67% 24%, rgba(222, 16, 14, 0.92) 0 5px, transparent 6px),
        radial-gradient(circle at 34% 48%, rgba(98, 0, 0, 0.9) 0 4px, transparent 5px),
        radial-gradient(circle at 58% 59%, rgba(190, 0, 0, 0.86) 0 3px, transparent 4px),
        radial-gradient(circle at 74% 77%, rgba(116, 0, 0, 0.8) 0 4px, transparent 5px),
        radial-gradient(circle at 20% 82%, rgba(225, 12, 12, 0.75) 0 3px, transparent 4px);
    opacity: 0.9;
    filter: drop-shadow(0 0 6px rgba(160, 0, 0, 0.82));
    animation: bleeder-blood-droplets 920ms ease-in-out infinite;
}

.bleeder-spear {
    position: absolute;
    left: 6px;
    top: 20px;
    width: 82px;
    height: 9px;
    transform-origin: 15% 50%;
    transform: rotate(27deg) translateY(var(--spear-offset, 0));
    filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.65));
}

.bleeder-spear .spear-shaft,
.bleeder-spear i {
    position: absolute;
    inset: 3px 15px 3px 0;
    background: linear-gradient(90deg, #21150d, #5b3c24 52%, #15100b);
    border-radius: 999px;
    box-shadow: inset 0 0 2px rgba(255,255,255,0.35);
}

.bleeder-spear .spear-tip,
.bleeder-spear b {
    position: absolute;
    right: 3px;
    top: 0;
    width: 18px;
    height: 9px;
    background: linear-gradient(90deg, #aeb8bf, #f8fbff 45%, #5c6870);
    clip-path: polygon(0 0, 100% 50%, 0 100%, 22% 50%);
}

.bleeder-spear.spear-1 { --spear-offset: 0px; }
.bleeder-spear.spear-2 { --spear-offset: 6px; transform: rotate(20deg) translateY(var(--spear-offset)); }
.bleeder-spear.spear-3 { --spear-offset: 12px; transform: rotate(34deg) translateY(var(--spear-offset)); }
.bleeder-spear.spear-4 { --spear-offset: 18px; transform: rotate(15deg) translateY(var(--spear-offset)); }
.bleeder-spear.spear-5 { --spear-offset: 24px; transform: rotate(39deg) translateY(var(--spear-offset)); }
.bleeder-spear.spear-6 { --spear-offset: 30px; transform: rotate(25deg) translateY(var(--spear-offset)); }

.predator-bleeder-spear-projectile {
    position: fixed;
    left: 0;
    top: 0;
    width: 92px;
    height: 12px;
    z-index: 620;
    pointer-events: none;
    transform-origin: 8px 50%;
    animation: predator-bleeder-spear-flight 820ms cubic-bezier(0.12, 0.78, 0.18, 1) both;
}

.predator-bleeder-spear-projectile .spear-shaft {
    position: absolute;
    left: 0;
    right: 17px;
    top: 4px;
    height: 4px;
    background: linear-gradient(90deg, #140d08, #614126 48%, #21150d);
    border-radius: 999px;
}

.predator-bleeder-spear-projectile .spear-tip {
    position: absolute;
    right: 0;
    top: 1px;
    width: 22px;
    height: 10px;
    background: linear-gradient(90deg, #adb7bd, #ffffff 42%, #647078);
    clip-path: polygon(0 0, 100% 50%, 0 100%, 20% 50%);
}

.flash-phase-shift-fx .character-face {
    opacity: 0.62;
    filter: saturate(1.35) contrast(1.12) blur(0.65px);
    animation: flash-phase-face-blur 620ms ease-in-out infinite;
}

.flash-phase-speed-lines {
    position: absolute;
    left: -14px;
    top: -8px;
    width: 102px;
    height: 92px;
    z-index: 93;
    pointer-events: none;
    overflow: visible;
}

.flash-phase-speed-lines .phase-line {
    position: absolute;
    left: 4px;
    width: 92px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #ffefe9 15%, #ff1d18 48%, transparent);
    box-shadow: 0 0 7px rgba(255, 22, 18, 0.95);
    animation: flash-phase-line-sweep 470ms ease-in-out infinite;
}

.flash-phase-speed-lines .phase-line.a { top: 18px; animation-delay: 0ms; }
.flash-phase-speed-lines .phase-line.b { top: 42px; animation-delay: 110ms; }
.flash-phase-speed-lines .phase-line.c { top: 66px; animation-delay: 220ms; }

.flash-phase-speed-lines .phase-afterimage {
    position: absolute;
    left: 10px;
    top: 8px;
    width: 75px;
    height: 75px;
    border: 1px solid rgba(255, 45, 32, 0.85);
    box-shadow: 0 0 14px rgba(255, 32, 24, 0.8), inset 0 0 10px rgba(255, 32, 24, 0.35);
    opacity: 0.38;
    animation: flash-phase-afterimage 620ms ease-in-out infinite;
}

.scorpion-venom-drop,
.scorpion-poison-drops {
    position: absolute;
    left: 50%;
    top: -19px;
    width: 34px;
    height: 44px;
    transform: translateX(-50%);
    z-index: 96;
    pointer-events: none;
    --scorpion-venom: #42ff53;
    filter: drop-shadow(0 0 7px var(--scorpion-venom));
}

.scorpion-poison-drops {
    top: 8px;
    left: 78%;
    transform: translateX(-50%) scale(0.92);
}

.scorpion-venom-neurotoxin-fx,
.scorpion-poison-neurotoxin-fx,
.scorpion-tail-sting-fx.venom-neurotoxin,
.scorpion-tail-laser-beam.venom-neurotoxin,
.scorpion-tail-laser-impact-fx.venom-neurotoxin,
.scorpion-tail-ready-fx.venom-neurotoxin {
    --scorpion-venom: #bb4dff;
    --scorpion-venom-dark: #4a006f;
}

.scorpion-venom-acid-fx,
.scorpion-poison-acid-fx,
.scorpion-tail-sting-fx.venom-acid,
.scorpion-tail-laser-beam.venom-acid,
.scorpion-tail-laser-impact-fx.venom-acid,
.scorpion-tail-ready-fx.venom-acid {
    --scorpion-venom: #3cff55;
    --scorpion-venom-dark: #056619;
}

.scorpion-venom-paralytic-fx,
.scorpion-poison-paralytic-fx,
.scorpion-tail-sting-fx.venom-paralytic,
.scorpion-tail-laser-beam.venom-paralytic,
.scorpion-tail-laser-impact-fx.venom-paralytic,
.scorpion-tail-ready-fx.venom-paralytic {
    --scorpion-venom: #ffe545;
    --scorpion-venom-dark: #8a6200;
}

.scorpion-drop-main {
    position: absolute;
    left: 50%;
    top: 3px;
    width: 22px;
    height: 28px;
    transform: translateX(-50%) rotate(45deg);
    border-radius: 70% 18% 70% 52%;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,0.9) 0 10%, transparent 11%),
        linear-gradient(135deg, var(--scorpion-venom), var(--scorpion-venom-dark));
    box-shadow: inset 0 0 8px rgba(255,255,255,0.38), 0 0 10px var(--scorpion-venom);
    animation: scorpion-venom-drop-pulse 980ms ease-in-out infinite;
}

.scorpion-drop-drip {
    position: absolute;
    top: 27px;
    width: 6px;
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--scorpion-venom), var(--scorpion-venom-dark));
    animation: scorpion-venom-drip 820ms ease-in infinite;
}

.scorpion-drop-drip.a { left: 7px; animation-delay: 0ms; }
.scorpion-drop-drip.b { left: 18px; animation-delay: 210ms; }
.scorpion-drop-drip.c { left: 27px; animation-delay: 360ms; }

.scorpion-tail-sting-fx {
    position: absolute;
    left: -18px;
    top: -22px;
    width: 120px;
    height: 120px;
    z-index: 106;
    pointer-events: none;
    --scorpion-venom: #3cff55;
    --scorpion-venom-dark: #056619;
}

.scorpion-tail-arc {
    position: absolute;
    left: 11px;
    top: 15px;
    width: 90px;
    height: 76px;
    border: 9px solid #114a1f;
    border-left-color: transparent;
    border-bottom-color: transparent;
    border-radius: 50%;
    filter: drop-shadow(0 0 7px rgba(43, 255, 74, 0.76));
    transform-origin: 78% 72%;
    animation: scorpion-tail-sting-arc 920ms cubic-bezier(0.12, 0.84, 0.18, 1) both;
}

.scorpion-stinger {
    position: absolute;
    left: 68px;
    top: 48px;
    width: 42px;
    height: 18px;
    background: linear-gradient(90deg, var(--scorpion-venom), #dcffe2 48%, var(--scorpion-venom-dark));
    clip-path: polygon(0 12%, 100% 50%, 0 88%, 24% 50%);
    filter: drop-shadow(0 0 8px var(--scorpion-venom));
    animation: scorpion-tail-stinger-hit 920ms cubic-bezier(0.12, 0.84, 0.18, 1) both;
}

.scorpion-venom-splash {
    position: absolute;
    left: 64px;
    top: 61px;
    width: 9px;
    height: 18px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--scorpion-venom), var(--scorpion-venom-dark));
    opacity: 0;
    animation: scorpion-sting-splash 860ms ease-out 520ms both;
}

.scorpion-venom-splash.b { left: 74px; top: 66px; animation-delay: 610ms; }
.scorpion-venom-splash.c { left: 57px; top: 69px; animation-delay: 680ms; }

.scorpion-tail-ready-fx {
    position: absolute;
    left: -10px;
    top: -14px;
    width: 94px;
    height: 92px;
    z-index: 95;
    pointer-events: none;
    --scorpion-venom: #3cff55;
    --scorpion-venom-dark: #056619;
}

.scorpion-tail-ready-fx span {
    position: absolute;
    left: 12px;
    top: 8px;
    width: 72px;
    height: 66px;
    border: 7px solid var(--scorpion-venom);
    border-left-color: transparent;
    border-bottom-color: transparent;
    border-radius: 50%;
    filter: drop-shadow(0 0 8px var(--scorpion-venom));
    animation: scorpion-tail-ready 950ms ease-out both;
}

.scorpion-tail-laser-beam {
    position: fixed;
    height: 18px;
    z-index: 650;
    pointer-events: none;
    transform-origin: 0 50%;
    border-radius: 999px;
    --scorpion-venom: #3cff55;
    --scorpion-venom-dark: #056619;
    background: linear-gradient(90deg, transparent 0%, #ffffff 9%, var(--scorpion-venom) 28%, #faffff 48%, var(--scorpion-venom) 74%, transparent 100%);
    box-shadow: 0 0 11px var(--scorpion-venom), 0 0 26px var(--scorpion-venom), 0 0 5px #fff inset;
    animation: scorpion-tail-laser-fire 1120ms cubic-bezier(0.12, 0.8, 0.16, 1) both;
}

.scorpion-tail-laser-beam span {
    position: absolute;
    left: 6%;
    width: 24px;
    height: 5px;
    border-radius: 999px;
    background: rgba(255,255,255,0.92);
    box-shadow: 0 0 8px #fff;
    animation: scorpion-tail-laser-pulse 680ms ease-out both;
}

.scorpion-tail-laser-beam span:nth-child(1) { top: 2px; }
.scorpion-tail-laser-beam span:nth-child(2) { bottom: 2px; animation-delay: 120ms; }

.scorpion-tail-laser-impact-fx {
    position: absolute;
    left: -9px;
    top: -9px;
    width: 94px;
    height: 94px;
    z-index: 105;
    pointer-events: none;
    --scorpion-venom: #3cff55;
    --scorpion-venom-dark: #056619;
}

.scorpion-tail-laser-impact-fx span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 86px;
    height: 7px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, var(--scorpion-venom), #fff, var(--scorpion-venom), transparent);
    transform-origin: 50% 50%;
    animation: scorpion-tail-laser-impact 960ms ease-out both;
}

.scorpion-tail-laser-impact-fx span:nth-child(1) { transform: translate(-50%, -50%) rotate(18deg); }
.scorpion-tail-laser-impact-fx span:nth-child(2) { transform: translate(-50%, -50%) rotate(84deg); animation-delay: 80ms; }
.scorpion-tail-laser-impact-fx span:nth-child(3) { transform: translate(-50%, -50%) rotate(141deg); animation-delay: 140ms; }

.character-card.angstrom-banish-fx .character-face {
    opacity: 0.46;
    filter: saturate(0.35) hue-rotate(88deg);
}

.character-card.angstrom-banish-fx::before {
    content: "";
    position: absolute;
    left: -4px;
    top: 6px;
    width: 84px;
    height: 66px;
    border: 3px solid rgba(72, 255, 112, 0.92);
    border-radius: 50%;
    pointer-events: none;
    z-index: 42;
    background: radial-gradient(ellipse at center, rgba(72, 255, 112, 0.32), rgba(28, 122, 54, 0.14) 52%, transparent 68%);
    box-shadow: 0 0 14px rgba(72, 255, 112, 0.95), inset 0 0 12px rgba(72, 255, 112, 0.78);
    animation: angstrom-portal-spin 2.1s linear infinite;
}

.storm-lightning-fx {
    position: absolute;
    left: -5px;
    top: -28px;
    width: 86px;
    height: 108px;
    z-index: 62;
    pointer-events: none;
}

.storm-lightning-cloud {
    position: absolute;
    left: 13px;
    top: 0;
    width: 60px;
    height: 28px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 26% 58%, #d6dce4 0 15px, transparent 16px),
        radial-gradient(circle at 49% 38%, #eef4fb 0 18px, transparent 19px),
        radial-gradient(circle at 72% 60%, #bfc7d1 0 14px, transparent 15px);
    filter: drop-shadow(0 2px 4px rgba(18, 28, 42, 0.5));
    animation: storm-cloud-rumble 1.45s ease-in-out both;
}

.storm-lightning-bolt {
    position: absolute;
    left: 36px;
    top: 19px;
    width: 18px;
    height: 72px;
    background: #fff46a;
    clip-path: polygon(42% 0, 100% 0, 64% 38%, 100% 38%, 18% 100%, 39% 52%, 0 52%);
    filter: drop-shadow(0 0 8px rgba(255, 246, 72, 0.95));
    animation: storm-lightning-strike 1.45s ease-out both;
}

.storm-wind-fx {
    position: absolute;
    left: -7px;
    top: 5px;
    width: 92px;
    height: 72px;
    z-index: 61;
    pointer-events: none;
    overflow: hidden;
}

.storm-wind-fx span {
    position: absolute;
    left: -12px;
    width: 92px;
    height: 18px;
    border-top: 4px solid rgba(214, 246, 255, 0.9);
    border-radius: 50%;
    filter: drop-shadow(0 0 5px rgba(174, 233, 255, 0.9));
    animation: storm-wind-gust 1.45s ease-out both;
}

.storm-wind-fx span:nth-child(1) {
    top: 7px;
}

.storm-wind-fx span:nth-child(2) {
    top: 25px;
    animation-delay: 120ms;
}

.storm-wind-fx span:nth-child(3) {
    top: 43px;
    animation-delay: 240ms;
}

.character-card.storm-ice-fx .character-face {
    filter: brightness(1.12) saturate(0.48) hue-rotate(165deg);
}

.character-card.storm-ice-fx::after {
    content: "";
    position: absolute;
    left: 1px;
    top: 2px;
    width: 74px;
    height: 74px;
    z-index: 41;
    pointer-events: none;
    border: 2px solid rgba(184, 241, 255, 0.88);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.28), rgba(114, 212, 255, 0.36), rgba(255, 255, 255, 0.18)),
        linear-gradient(72deg, transparent 0 47%, rgba(255, 255, 255, 0.62) 48% 51%, transparent 52%),
        linear-gradient(144deg, transparent 0 44%, rgba(255, 255, 255, 0.48) 45% 48%, transparent 49%);
    box-shadow: inset 0 0 16px rgba(205, 248, 255, 0.82), 0 0 11px rgba(126, 223, 255, 0.8);
    animation: storm-ice-freeze 1.45s ease-out both;
}

.space-marine-channel-bar {
    position: absolute;
    left: 0;
    bottom: -11px;
    width: 76px;
    height: 9px;
    border: 1px solid #050505;
    background: #161616;
    z-index: 40;
    overflow: hidden;
    pointer-events: none;
}

.space-marine-channel-fill {
    display: block;
    height: 100%;
    background: repeating-linear-gradient(90deg, #c4e7ff 0 6px, #4aa3ff 7px 12px);
    animation: space-marine-channel-scan 540ms linear infinite;
}

.space-marine-channel-label {
    position: absolute;
    inset: 0;
    color: #fff;
    font: 900 7px/9px 'Franklin', Arial, sans-serif;
    text-align: center;
    text-shadow: 1px 1px 0 #000;
}

.rex-charge-counter {
    position: absolute;
    right: -9px;
    bottom: 0;
    width: 24px;
    height: 24px;
    border: 2px solid #111;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #ffec6e, #f36f1f 48%, #421108 100%);
    z-index: 40;
    pointer-events: none;
    box-shadow: 0 0 8px rgba(255, 111, 31, 0.88);
    animation: rex-charge-pulse 980ms ease-in-out infinite;
}

.rex-charge-counter.empty {
    opacity: 0.45;
    filter: grayscale(0.65);
}

.rex-charge-counter span {
    display: block;
    color: #fff;
    font: 900 13px/21px 'Franklin', Arial, sans-serif;
    text-align: center;
    text-shadow: 1px 1px 0 #000;
}

.character-card.hulk-rage-high-fx .character-face {
    animation: hulk-rage-shake 520ms steps(2, end) infinite;
    box-shadow: 0 0 13px rgba(72, 255, 87, 0.78);
}

.character-card.hulk-rage-max-fx .character-face {
    box-shadow: 0 0 17px rgba(72, 255, 87, 0.95), inset 0 0 0 3px rgba(36, 112, 37, 0.88);
}

.character-card.lantern-aura-lantern-green {
    --lantern-color: #45ff7a;
    --lantern-glow: rgba(69, 255, 122, 0.72);
}

.character-card.lantern-aura-lantern-yellow {
    --lantern-color: #ffe24a;
    --lantern-glow: rgba(255, 226, 74, 0.78);
}

.character-card.lantern-aura-lantern-red {
    --lantern-color: #ff3e35;
    --lantern-glow: rgba(255, 62, 53, 0.76);
}

.character-card.lantern-aura-lantern-blue {
    --lantern-color: #58a6ff;
    --lantern-glow: rgba(88, 166, 255, 0.74);
}

.character-card.lantern-aura-lantern-indigo {
    --lantern-color: #8b68ff;
    --lantern-glow: rgba(139, 104, 255, 0.72);
}

.character-card.lantern-aura-lantern-ultraviolet {
    --lantern-color: #ad4bff;
    --lantern-glow: rgba(173, 75, 255, 0.78);
}

.character-card.lantern-aura-lantern-grey-smoke {
    --lantern-color: #b9bcc3;
    --lantern-glow: rgba(150, 154, 164, 0.7);
}

.character-card.lantern-aura-lantern-grey-smoke::before {
    border-style: dashed;
    filter: blur(0.4px);
    animation: lantern-smoke-aura 2.25s ease-in-out infinite;
}

.character-card.lantern-aura-lantern-grey-smoke::after {
    border-style: dotted;
    filter: blur(1px);
    animation: lantern-smoke-drift 2.8s ease-in-out infinite;
}

.lantern-trigger-burst {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 86px;
    height: 86px;
    transform: translate(-50%, -50%);
    border: 3px solid var(--lantern-color, #45ff7a);
    border-radius: 50%;
    z-index: 44;
    pointer-events: none;
    box-shadow: 0 0 18px var(--lantern-glow, rgba(69, 255, 122, 0.72));
    animation: lantern-trigger-burst 780ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.lantern-trigger-burst.lantern-yellow {
    border-radius: 4px;
    transform: translate(-50%, -50%) rotate(45deg);
    --lantern-color: #ffe24a;
    --lantern-glow: rgba(255, 226, 74, 0.8);
}

.lantern-trigger-burst.lantern-red {
    --lantern-color: #ff3e35;
    --lantern-glow: rgba(255, 62, 53, 0.8);
    animation-name: lantern-trigger-jagged;
}

.lantern-trigger-burst.lantern-blue {
    --lantern-color: #58a6ff;
    --lantern-glow: rgba(88, 166, 255, 0.78);
}

.lantern-trigger-burst.lantern-indigo {
    --lantern-color: #8b68ff;
    --lantern-glow: rgba(139, 104, 255, 0.78);
}

.lantern-trigger-burst.lantern-ultraviolet {
    --lantern-color: #ad4bff;
    --lantern-glow: rgba(173, 75, 255, 0.82);
    animation-name: lantern-trigger-collapse;
}

.lantern-trigger-burst.lantern-grey-smoke {
    border: 0;
    box-shadow: none;
    animation: none;
}

.lantern-trigger-burst.lantern-grey-smoke span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(210, 212, 218, 0.62), rgba(93, 96, 105, 0.42) 56%, transparent 72%);
    filter: blur(2px);
    transform: translate(-50%, -50%);
    animation: sorrow-smoke-puff 1.05s ease-out both;
}

.lantern-trigger-burst.lantern-grey-smoke span:nth-child(2) {
    animation-delay: 80ms;
}

.lantern-trigger-burst.lantern-grey-smoke span:nth-child(3) {
    animation-delay: 150ms;
}

.lantern-trigger-burst.lantern-grey-smoke span:nth-child(4) {
    animation-delay: 230ms;
}

.lantern-energy-link {
    position: fixed;
    height: 4px;
    z-index: 8000;
    transform-origin: 0 50%;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, var(--lantern-color, #45ff7a), transparent);
    box-shadow: 0 0 12px var(--lantern-glow, rgba(69, 255, 122, 0.78));
    animation: lantern-energy-link 720ms ease-out both;
}

.lantern-energy-link.lantern-green {
    --lantern-color: #45ff7a;
    --lantern-glow: rgba(69, 255, 122, 0.78);
}

.lantern-energy-link.lantern-yellow {
    --lantern-color: #ffe24a;
    --lantern-glow: rgba(255, 226, 74, 0.78);
}

.lantern-energy-link.lantern-red {
    --lantern-color: #ff3e35;
    --lantern-glow: rgba(255, 62, 53, 0.78);
}

.lantern-energy-link.lantern-blue {
    --lantern-color: #58a6ff;
    --lantern-glow: rgba(88, 166, 255, 0.78);
}

.lantern-energy-link.lantern-indigo {
    --lantern-color: #8b68ff;
    --lantern-glow: rgba(139, 104, 255, 0.78);
}

.lantern-energy-link.lantern-ultraviolet {
    --lantern-color: #ad4bff;
    --lantern-glow: rgba(173, 75, 255, 0.78);
}

.lantern-energy-link.lantern-grey-smoke {
    height: 12px;
    background: linear-gradient(90deg, transparent, rgba(180, 184, 194, 0.65), rgba(82, 86, 96, 0.72), transparent);
    filter: blur(2px);
    box-shadow: 0 0 16px rgba(150, 154, 164, 0.62);
    animation: sorrow-smoke-link 980ms ease-out both;
}

@keyframes passive-trigger-flash {
    0% {
        filter: brightness(1);
        box-shadow: 0 0 0 rgba(255, 236, 89, 0);
    }
    35% {
        filter: brightness(1.75) saturate(1.35);
        box-shadow: 0 0 16px rgba(255, 236, 89, 0.95);
    }
    100% {
        filter: brightness(1);
        box-shadow: 0 0 0 rgba(255, 236, 89, 0);
    }
}

@keyframes ricochet-target-pulse {
    0%, 100% {
        scale: 1;
        filter: brightness(1);
    }
    50% {
        scale: 1.18;
        filter: brightness(1.3);
    }
}

@keyframes queued-target-icon-pulse {
    0%, 100% {
        scale: 1;
        filter: brightness(1);
    }
    50% {
        scale: 1.12;
        filter: brightness(1.22);
    }
}

@keyframes predator-ricochet-lock {
    0%, 100% {
        transform: scale(1);
        opacity: 0.78;
    }
    50% {
        transform: scale(1.14);
        opacity: 1;
    }
}

@keyframes batman-smoke-drift {
    0%, 100% {
        opacity: 0.42;
        transform: translateX(-3px) scale(0.98);
    }
    50% {
        opacity: 0.75;
        transform: translateX(4px) scale(1.08);
    }
}

@keyframes batman-emp-flicker {
    0%, 100% {
        filter: brightness(1) saturate(1);
    }
    50% {
        filter: brightness(1.55) saturate(0.5) hue-rotate(160deg);
    }
}

@keyframes rage-scratch-jitter {
    0%, 100% {
        opacity: 0.42;
        transform: translate(0, 0);
    }
    50% {
        opacity: 0.88;
        transform: translate(2px, -1px);
    }
}

@keyframes mysterio-illusion-flicker {
    0%, 100% {
        opacity: 1;
        filter: hue-rotate(0deg) saturate(1);
    }
    40% {
        opacity: 0.74;
        filter: hue-rotate(110deg) saturate(1.65);
    }
    55% {
        opacity: 0.94;
        transform: translateX(2px);
    }
}

@keyframes mysterio-question-float {
    0%, 100% {
        opacity: 0.52;
        transform: translate(-50%, -50%) scale(0.94);
    }
    50% {
        opacity: 0.98;
        transform: translate(-50%, calc(-50% - 4px)) scale(1.08);
    }
}

@keyframes joker-detonator-blink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.28;
    }
}

@keyframes captain-shield-glint {
    0%, 100% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.35) saturate(1.25);
    }
}

@keyframes captain-shield-trail {
    0%, 100% {
        opacity: 0.18;
        transform: translateX(-7px) rotate(-18deg);
    }
    45% {
        opacity: 0.96;
        transform: translateX(7px) rotate(-18deg);
    }
}

@keyframes predator-cloak-distort {
    0%, 100% {
        transform: translate(0, 0) skew(0deg);
        opacity: 0.78;
    }
    33% {
        transform: translate(1px, -1px) skew(1.5deg);
        opacity: 0.58;
    }
    66% {
        transform: translate(-1px, 1px) skew(-1deg);
        opacity: 0.86;
    }
}

@keyframes predator-cloak-scan {
    0% {
        background-position: 0 -20px, 0 0;
        opacity: 0.18;
    }
    50% {
        opacity: 0.58;
    }
    100% {
        background-position: 14px 22px, 0 18px;
        opacity: 0.18;
    }
}

@keyframes spider-web-tighten {
    0%, 100% {
        transform: scale(1) rotate(0deg);
        opacity: 0.82;
    }
    50% {
        transform: scale(1.08) rotate(2deg);
        opacity: 1;
    }
}

@keyframes andrea-crosshair-focus {
    0%, 100% {
        transform: scale(1.08);
        opacity: 0.72;
    }
    50% {
        transform: scale(0.94);
        opacity: 1;
    }
}

@keyframes angstrom-portal-spin {
    0% {
        transform: rotate(0deg) scaleX(1);
    }
    50% {
        transform: rotate(180deg) scaleX(1.15);
    }
    100% {
        transform: rotate(360deg) scaleX(1);
    }
}

@keyframes storm-rain-fall {
    0% {
        background-position: 0 -48px, 0 0;
        opacity: 0.52;
    }
    100% {
        background-position: -26px 52px, 0 0;
        opacity: 0.78;
    }
}

@keyframes storm-hail-fall {
    0% {
        background-position: 0 -44px, 12px -30px;
        opacity: 0.5;
    }
    100% {
        background-position: 12px 64px, -8px 56px;
        opacity: 0.86;
    }
}

@keyframes aquaman-tidal-wave-rise {
    0% {
        opacity: 0.15;
        transform: translateY(72vh) scaleX(1.08);
    }
    42% {
        opacity: 1;
        transform: translateY(4vh) scaleX(1.08);
    }
    68% {
        opacity: 0.96;
        transform: translateY(-8vh) scaleX(1.12);
    }
    100% {
        opacity: 0;
        transform: translateY(16vh) scaleX(1.18);
    }
}

@keyframes aquaman-tidal-crest {
    0% {
        opacity: 0;
        transform: translateY(42vh) scaleX(1.05);
    }
    34% {
        opacity: 1;
        transform: translateY(-3vh) scaleX(1.12);
    }
    64% {
        opacity: 0.92;
        transform: translateY(-11vh) scaleX(1.18);
    }
    100% {
        opacity: 0;
        transform: translateY(4vh) scaleX(1.25);
    }
}

@keyframes aquaman-tidal-surge {
    0% {
        opacity: 0;
        transform: translateY(40vh);
    }
    34% {
        opacity: 0.92;
        transform: translateY(0);
    }
    72% {
        opacity: 0.66;
        transform: translateY(-6vh);
    }
    100% {
        opacity: 0;
        transform: translateY(10vh);
    }
}

@keyframes aquaman-tidal-foam {
    0% {
        opacity: 0;
        transform: translateY(28vh) scaleX(1);
    }
    38% {
        opacity: 0.92;
        transform: translateY(-3vh) scaleX(1.08);
    }
    100% {
        opacity: 0;
        transform: translateY(-18vh) scaleX(1.22);
    }
}

@keyframes aquaman-tidal-spray {
    0% {
        opacity: 0;
        transform: translateY(52vh) scale(0.95);
    }
    42% {
        opacity: 0.86;
        transform: translateY(12vh) scale(1.05);
    }
    100% {
        opacity: 0;
        transform: translateY(-16vh) scale(1.18);
    }
}

@keyframes aquaman-tidal-wave-fade {
    0%,
    78% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

@keyframes xenomorph-facehugger-grip {
    0%,
    100% {
        transform: translate(-50%, -50%) rotate(-2deg) scale(1);
    }
    50% {
        transform: translate(-50%, -50%) rotate(1.5deg) scale(1.065);
    }
}

@keyframes venom-ally-marker-pulse {
    0%, 100% { opacity: 0.74; transform: translate(-50%, -50%) scale(0.92); }
    50% { opacity: 0.94; transform: translate(-50%, -50%) scale(1.04); }
}

@keyframes venom-upper-bite {
    0% { opacity: 0; top: -52px; }
    28% { opacity: 1; }
    58% { top: 10px; }
    72% { top: 2px; }
    100% { opacity: 0; top: -18px; }
}

@keyframes venom-lower-bite {
    0% { opacity: 0; bottom: -52px; }
    28% { opacity: 1; }
    58% { bottom: 10px; }
    72% { bottom: 2px; }
    100% { opacity: 0; bottom: -18px; }
}

@keyframes venom-goo-drip {
    0% { opacity: 0; transform: translateY(-5px) scaleY(0.4); }
    28% { opacity: 0.95; }
    100% { opacity: 0; transform: translateY(32px) scaleY(1.25); }
}

@keyframes venom-tendril-pull {
    0% { clip-path: inset(0 100% 0 0); transform: scaleY(0.68); }
    38% { clip-path: inset(0 0 0 0); transform: scaleY(1.18); }
    72% { clip-path: inset(0 0 0 0); transform: scaleY(0.92) translateX(-9px); }
    100% { clip-path: inset(0 0 0 100%); transform: scaleY(0.72) translateX(-16px); }
}

@keyframes venom-web-wrap-tighten {
    0% { opacity: 0; width: 160px; margin-left: -80px; filter: blur(1px); }
    36% { opacity: 1; filter: blur(0); }
    100% { opacity: 0.86; width: 116px; margin-left: -58px; }
}

@keyframes venom-latch-yank {
    0% { opacity: 0; transform: scale(1.25); }
    38% { opacity: 1; transform: scale(1); }
    70% { transform: translateX(-8px) scale(0.94); }
    100% { opacity: 0; transform: translateX(-18px) scale(0.86); }
}

@keyframes negan-iron-press {
    0%, 100% { transform: translate(-50%, -50%) rotate(-8deg) scale(0.99); }
    50% { transform: translate(-50%, -48%) rotate(-8deg) scale(1.025); }
}

@keyframes negan-iron-heat-pulse {
    0%, 100% { opacity: 0.55; transform: scale(0.92); }
    50% { opacity: 0.98; transform: scale(1.08); }
}

@keyframes negan-iron-smoke-rise {
    0% { opacity: 0; transform: translateY(16px) scale(0.7); }
    28% { opacity: 0.72; }
    100% { opacity: 0; transform: translateY(-34px) scale(1.34); }
}

@keyframes negan-iron-slam {
    0% { opacity: 0; transform: translate(-26px, -44px) rotate(-30deg) scale(1.18); }
    42% { opacity: 1; transform: translate(0, 0) rotate(-8deg) scale(1); }
    70% { transform: translate(1px, 3px) rotate(-8deg) scale(0.97); }
    100% { opacity: 0; transform: translate(0, 1px) rotate(-8deg) scale(0.98); }
}

@keyframes negan-iron-rip-away {
    0% { opacity: 1; transform: translate(0, 1px) rotate(-8deg) scale(0.98); }
    38% { opacity: 1; transform: translate(12px, -10px) rotate(-19deg) scale(1.05); }
    100% { opacity: 0; transform: translate(76px, -68px) rotate(-48deg) scale(1.22); }
}

@keyframes negan-rip-burn-flash {
    0% { opacity: 0; transform: scale(0.8); }
    32% { opacity: 0.95; transform: scale(1.08); }
    100% { opacity: 0.68; transform: scale(1); }
}

@keyframes parasite-toxic-flash {
    0% { filter: brightness(1) saturate(1); }
    35% { filter: brightness(1.6) saturate(1.75) drop-shadow(0 0 10px #67ff44); }
    100% { filter: brightness(1) saturate(1); }
}

@keyframes parasite-tendril-shoot {
    0% { transform: scaleX(0); opacity: 0; }
    24% { opacity: 1; }
    100% { transform: scaleX(1); opacity: 0; }
}

@keyframes parasite-orb-return {
    0% { transform: translateX(0) scale(0.6); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: translateX(-100px) scale(1.15); opacity: 0; }
}

@keyframes parasite-return-orb-card {
    0% { transform: translate(0, 0) scale(0.4); opacity: 0; }
    30% { opacity: 1; }
    100% { transform: translate(-38px, -32px) scale(1.2); opacity: 0; }
}

@keyframes parasite-fade-hit {
    0% { opacity: 0; }
    30% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes parasite-wrap-pulse {
    0% { transform: scale(1.25); opacity: 0; }
    34% { transform: scale(0.94); opacity: 1; }
    100% { transform: scale(1.02); opacity: 0; }
}

@keyframes parasite-green-pulse {
    0% { opacity: 0; transform: scale(0.8); }
    35% { opacity: 1; transform: scale(1.05); }
    100% { opacity: 0; transform: scale(1.25); }
}

@keyframes parasite-dd-pop {
    0% { opacity: 0; transform: translate(-50%, -20%) scale(0.7); }
    30% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -95%) scale(1.12); }
}

@keyframes parasite-screen-flash {
    0% { opacity: 0; }
    35% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes parasite-target-shake {
    0%, 100% { transform: translateX(0); }
    15% { transform: translateX(-4px); }
    30% { transform: translateX(5px); }
    45% { transform: translateX(-5px); }
    60% { transform: translateX(4px); }
}

@keyframes parasite-symbol-stamp {
    0% { opacity: 0; transform: scale(2.4) rotate(-20deg); }
    45% { opacity: 1; transform: scale(0.9) rotate(4deg); }
    100% { opacity: 0; transform: scale(1.04) rotate(0); }
}

@keyframes parasite-crack-in {
    0% { opacity: 0; clip-path: inset(0 100% 0 0); }
    35% { opacity: 1; clip-path: inset(0); }
    100% { opacity: 0; clip-path: inset(0); }
}

@keyframes parasite-mutation-burst {
    0% { opacity: 0; transform: scale(0.8); }
    35% { opacity: 1; transform: scale(1.08); }
    100% { opacity: 0; transform: scale(1.2); }
}

@keyframes parasite-jaw-snap {
    0% { transform: scaleY(0.2); opacity: 0; }
    35% { transform: scaleY(1.3); opacity: 1; }
    100% { transform: scaleY(0.95); opacity: 0; }
}

@keyframes parasite-frame-pulse {
    0%, 100% { opacity: 0.72; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.025); }
}

@keyframes parasite-overload-fade {
    0% { opacity: 0; }
    18% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes parasite-overload-wave {
    0% { transform: translateX(-30%) skewX(-18deg); }
    100% { transform: translateX(280%) skewX(-18deg); }
}

@keyframes parasite-overload-title {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.7); }
    30% { opacity: 1; transform: translate(-50%, -50%) scale(1.08); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1); }
}

@keyframes storm-cloud-rumble {
    0%, 100% {
        transform: translateX(0);
        opacity: 0.86;
    }
    30% {
        transform: translateX(-2px);
    }
    60% {
        transform: translateX(2px);
        opacity: 1;
    }
}

@keyframes storm-lightning-strike {
    0% {
        opacity: 0;
        transform: scaleY(0.18);
        transform-origin: top;
    }
    24%, 58% {
        opacity: 1;
        transform: scaleY(1);
    }
    74% {
        opacity: 0.34;
    }
    100% {
        opacity: 0;
        transform: scaleY(0.92);
    }
}

@keyframes storm-wind-gust {
    0% {
        opacity: 0;
        transform: translateX(-22px) scaleX(0.55);
    }
    35%, 70% {
        opacity: 1;
        transform: translateX(8px) scaleX(1.04);
    }
    100% {
        opacity: 0;
        transform: translateX(34px) scaleX(0.82);
    }
}

@keyframes storm-ice-freeze {
    0% {
        opacity: 0;
        transform: scale(0.92);
    }
    28%, 100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes space-marine-channel-scan {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 24px 0;
    }
}

@keyframes rex-charge-pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.12);
    }
}

@keyframes hulk-rage-shake {
    0%, 100% {
        transform: translate(0, 0);
    }
    25% {
        transform: translate(-1px, 1px);
    }
    75% {
        transform: translate(1px, -1px);
    }
}

@keyframes hp-delta-float {
    0% {
        opacity: 0;
        transform: translate(-50%, 8px) scale(0.75);
    }
    14%, 72% {
        opacity: 1;
        transform: translate(-50%, -8px) scale(1.18);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -42px) scale(0.95);
    }
}

@keyframes hp-delta-float-enemy {
    0% {
        opacity: 0;
        transform: translate(-50%, 8px) scale(0.75) scaleX(-1);
    }
    14%, 72% {
        opacity: 1;
        transform: translate(-50%, -8px) scale(1.18) scaleX(-1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -42px) scale(0.95) scaleX(-1);
    }
}

@keyframes taunted-face-pulse {
    0%, 100% {
        filter: saturate(1.1);
        transform: translateZ(0) scale(1);
    }
    50% {
        filter: saturate(1.45) contrast(1.08);
        transform: translateZ(0) scale(1.04);
    }
}

@keyframes taunt-callout-flash {
    0%, 100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    50% {
        opacity: 0.72;
        transform: translateY(-2px) scale(1.08);
    }
}

.hp-delta-popup {
    position: absolute;
    left: 38px;
    top: 13px;
    z-index: 40;
    min-width: 34px;
    text-align: center;
    font-family: 'Pedra', 'Libre Franklin', serif;
    font-size: 26px;
    line-height: 1;
    direction: ltr;
    unicode-bidi: isolate;
    pointer-events: none;
    text-shadow: 1px 1px 0 #000, -1px -1px 0 #000;
    animation: hp-delta-float 2800ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.hp-delta-popup.enemy-side {
    animation-name: hp-delta-float-enemy;
}

.hp-delta-popup.damage {
    color: #ff2f2f;
}

.hp-delta-popup.affliction {
    color: #b85cff;
}

.hp-delta-popup.heal {
    color: #35d86a;
}

.hp-delta-popup.shield {
    min-width: 58px;
    color: #6fd9ff;
    font-size: 21px;
    text-shadow: 1px 1px 0 #001523, -1px -1px 0 #001523, 0 0 8px rgba(111, 217, 255, 0.8);
}

.hp-delta-popup.shield.break {
    color: #ff9d4d;
    text-shadow: 1px 1px 0 #241000, -1px -1px 0 #241000, 0 0 8px rgba(255, 157, 77, 0.8);
}

.hp-delta-popup.forcefield {
    min-width: 92px;
    color: #ff8fd2;
    font-size: 19px;
    text-shadow: 1px 1px 0 #2f0824, -1px -1px 0 #2f0824, 0 0 8px rgba(255, 143, 210, 0.82);
}

.hp-delta-popup.forcefield.break {
    color: #ffc0e2;
    text-shadow: 1px 1px 0 #4a0f30, -1px -1px 0 #4a0f30, 0 0 8px rgba(255, 192, 226, 0.78);
}

.hp-delta-popup.evade {
    color: #f7f7f7;
    min-width: 72px;
    font-size: 23px;
    letter-spacing: 1px;
}

.combat-impact-burst {
    position: absolute;
    left: -4px;
    top: -4px;
    width: 84px;
    height: 84px;
    z-index: 38;
    pointer-events: none;
    border-radius: 50%;
    animation: combat-impact-burst 1000ms ease-out both;
}

.combat-impact-burst.damage {
    background: radial-gradient(circle, rgba(255, 56, 44, 0.48) 0 18%, transparent 42%);
    box-shadow: inset 0 0 0 2px rgba(255, 56, 44, 0.35);
}

.combat-impact-burst.affliction {
    background: radial-gradient(circle, rgba(174, 79, 255, 0.52) 0 18%, transparent 44%);
    box-shadow: inset 0 0 0 2px rgba(174, 79, 255, 0.4);
}

.combat-impact-burst.heal {
    background: radial-gradient(circle, rgba(57, 226, 109, 0.46) 0 20%, transparent 48%);
    box-shadow: inset 0 0 0 2px rgba(57, 226, 109, 0.34);
}

.combat-impact-burst.shield {
    border: 2px solid rgba(111, 217, 255, 0.88);
    box-shadow: 0 0 12px rgba(111, 217, 255, 0.76), inset 0 0 16px rgba(111, 217, 255, 0.24);
}

.combat-impact-burst.shield.break {
    border-color: rgba(255, 157, 77, 0.92);
    box-shadow: 0 0 12px rgba(255, 157, 77, 0.72), inset 0 0 16px rgba(255, 157, 77, 0.24);
}

.combat-impact-burst.forcefield {
    border: 2px solid rgba(255, 143, 210, 0.92);
    box-shadow: 0 0 12px rgba(255, 143, 210, 0.76), inset 0 0 16px rgba(255, 143, 210, 0.24);
}

.combat-impact-burst.forcefield.break {
    border-color: rgba(255, 192, 226, 0.94);
    box-shadow: 0 0 12px rgba(255, 192, 226, 0.76), inset 0 0 16px rgba(255, 192, 226, 0.24);
}

.status-apply-burst {
    position: absolute;
    left: 38px;
    top: -11px;
    z-index: 43;
    min-width: 58px;
    transform: translateX(-50%);
    padding: 2px 5px;
    border: 1px solid #000;
    background: rgba(18, 18, 18, 0.9);
    color: #ffffff;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 11px;
    font-weight: 900;
    line-height: 13px;
    text-align: center;
    pointer-events: none;
    text-shadow: 1px 1px 0 #000;
    box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.72);
    animation: status-apply-burst 2600ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.status-apply-burst.harmful {
    color: #ff6a5d;
}

.status-apply-burst.helpful {
    color: #72ee91;
}

.status-apply-burst.passive {
    color: #ffec59;
}

.status-apply-burst.enemy-side {
    animation-name: status-apply-burst-enemy;
}

.status-apply-burst.bomb {
    color: #ffcf35;
    background: rgba(24, 13, 4, 0.94);
    box-shadow: 0 0 10px rgba(255, 110, 21, 0.88), 2px 2px 0 rgba(0, 0, 0, 0.72);
}

.evade-slash-overlay {
    position: absolute;
    left: 2px;
    top: 6px;
    width: 82px;
    height: 58px;
    z-index: 41;
    pointer-events: none;
    animation: evade-slash-flash 980ms ease-out both;
}

.evade-slash-overlay::before,
.evade-slash-overlay::after {
    content: "";
    position: absolute;
    left: 8px;
    width: 68px;
    height: 4px;
    border-radius: 4px;
    background: rgba(235, 250, 255, 0.95);
    box-shadow: 0 0 10px rgba(111, 217, 255, 0.95);
    transform: rotate(-28deg);
}

.evade-slash-overlay::before {
    top: 19px;
}

.evade-slash-overlay::after {
    top: 32px;
    opacity: 0.75;
}

.character-face.evade-dodge {
    animation: evade-dodge 980ms cubic-bezier(0.18, 0.9, 0.22, 1) both;
}

.combat-event-log {
    position: absolute;
    left: 50%;
    bottom: 102px;
    transform: translateX(-50%);
    z-index: 120;
    min-width: 260px;
    max-width: 520px;
    padding: 7px 14px;
    border: 2px solid #000;
    background: rgba(18, 18, 18, 0.88);
    color: #ffffff;
    font-family: 'Franklin', Arial, sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    pointer-events: none;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.8);
    animation: combat-event-log-fade 2100ms ease both;
}

@keyframes evade-dodge {
    0%, 100% {
        transform: translateX(0);
        filter: brightness(1);
    }
    22% {
        transform: translateX(-8px);
        filter: brightness(1.45) saturate(1.15);
    }
    48% {
        transform: translateX(7px);
    }
    72% {
        transform: translateX(-3px);
    }
}

@keyframes evade-slash-flash {
    0% {
        opacity: 0;
        transform: translateX(-18px) scale(0.85);
    }
    18% {
        opacity: 1;
        transform: translateX(0) scale(1.06);
    }
    100% {
        opacity: 0;
        transform: translateX(18px) scale(1);
    }
}

@keyframes combat-impact-burst {
    0% {
        opacity: 0;
        transform: scale(0.62);
    }
    24% {
        opacity: 1;
        transform: scale(1.04);
    }
    100% {
        opacity: 0;
        transform: scale(1.34);
    }
}

@keyframes goblin-bomb-idle {
    0%, 100% {
        transform: translateY(0) scale(1);
        filter: brightness(1);
    }
    50% {
        transform: translateY(-3px) scale(1.05);
        filter: brightness(1.16);
    }
}

@keyframes goblin-bomb-land {
    0% {
        opacity: 0;
        transform: translate(-16px, -28px) rotate(-22deg) scale(0.62);
    }
    58% {
        opacity: 1;
        transform: translate(0, 0) rotate(6deg) scale(1.22);
    }
    100% {
        opacity: 1;
        transform: translate(0, 0) rotate(0) scale(1);
    }
}

@keyframes goblin-bomb-lob {
    0% {
        opacity: 0;
        transform: translate(-8px, 18px) rotate(-36deg) scale(0.72);
    }
    22% {
        opacity: 1;
    }
    72% {
        opacity: 1;
        transform: translate(70px, 54px) rotate(280deg) scale(1.04);
    }
    100% {
        opacity: 0;
        transform: translate(78px, 60px) rotate(340deg) scale(0.72);
    }
}

@keyframes goblin-bomb-spark {
    0%, 100% {
        transform: scale(0.75) rotate(0deg);
        opacity: 0.72;
    }
    50% {
        transform: scale(1.24) rotate(18deg);
        opacity: 1;
    }
}

@keyframes lantern-aura-pulse {
    0%, 100% {
        opacity: 0.64;
        transform: scale(0.96);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
}

@keyframes lantern-inner-ring {
    0% {
        transform: rotate(0deg) scale(0.92);
        opacity: 0.58;
    }
    50% {
        transform: rotate(180deg) scale(1.08);
        opacity: 0.9;
    }
    100% {
        transform: rotate(360deg) scale(0.92);
        opacity: 0.58;
    }
}

@keyframes lantern-smoke-aura {
    0%, 100% {
        opacity: 0.42;
        transform: translate(-1px, 2px) scale(0.96) rotate(0deg);
    }
    50% {
        opacity: 0.82;
        transform: translate(2px, -3px) scale(1.08) rotate(8deg);
    }
}

@keyframes lantern-smoke-drift {
    0%, 100% {
        opacity: 0.28;
        transform: translate(0, 0) scale(0.92);
    }
    50% {
        opacity: 0.68;
        transform: translate(4px, -5px) scale(1.18);
    }
}

@keyframes lantern-trigger-burst {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.35);
    }
    35% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(0.92);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.55);
    }
}

@keyframes lantern-trigger-jagged {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) skew(-10deg) scale(0.38);
    }
    35% {
        opacity: 1;
        transform: translate(-50%, -50%) skew(8deg) scale(1.02);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) skew(-4deg) scale(1.48);
    }
}

@keyframes lantern-trigger-collapse {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1.55);
    }
    35% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.02);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.36);
    }
}

@keyframes lantern-energy-link {
    0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
    }
    28% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 100%);
    }
}

@keyframes sorrow-smoke-puff {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.36);
    }
    35% {
        opacity: 0.86;
    }
    100% {
        opacity: 0;
        transform: translate(calc(-50% + 14px), calc(-50% - 24px)) scale(1.95);
    }
}

@keyframes sorrow-smoke-link {
    0% {
        opacity: 0;
        clip-path: inset(0 100% 0 0);
        transform: translateY(3px) rotate(var(--angle, 0deg));
    }
    30% {
        opacity: 0.88;
        clip-path: inset(0 0 0 0);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 100%);
        transform: translateY(-3px) rotate(var(--angle, 0deg));
    }
}

@keyframes status-apply-burst {
    0% {
        opacity: 0;
        transform: translate(-50%, 8px) scale(0.8);
    }
    16%, 76% {
        opacity: 1;
        transform: translate(-50%, 0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -12px) scale(0.92);
    }
}

@keyframes status-apply-burst-enemy {
    0% {
        opacity: 0;
        transform: translate(-50%, 8px) scale(0.8) scaleX(-1);
    }
    16%, 76% {
        opacity: 1;
        transform: translate(-50%, 0) scale(1) scaleX(-1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -12px) scale(0.92) scaleX(-1);
    }
}

@keyframes combat-event-log-fade {
    0% {
        opacity: 0;
        transform: translate(-50%, 10px);
    }
    12%, 78% {
        opacity: 1;
        transform: translate(-50%, 0);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -8px);
    }
}

/* Upgraded Damage Impact (Global) */
.character-face.damage-impact {
    animation: damage-impact-enhanced 450ms steps(7) both;
    background-image: url('../assets/Animations/spritesheet/Impacts/symmetrical_impact_001/symmetrical_impact_001_large_yellow/spritesheet.png');
    background-size: 672px 96px;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    inset: -10px;
    z-index: 100;
    filter: drop-shadow(0 0 6px #ffcc00);
}

@keyframes damage-impact-enhanced {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -576px 0; opacity: 0; }
}

/* Upgraded Heal Impact (Global) */
.character-face.heal-impact {
    animation: heal-impact-enhanced 600ms steps(16) both;
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_heal_001/spell_heal_001_large_red/spritesheet.png');
    background-size: 2048px 128px;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    inset: -20px;
    z-index: 100;
    filter: hue-rotate(140deg) drop-shadow(0 0 8px #00ff88);
}

@keyframes heal-impact-enhanced {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -1920px 0; opacity: 0; }
}

/* Global Animation Upgrades */

/* Upgraded Lightning Strike (Storm / Flash) */
.storm-lightning-strike-enhanced {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 128px;
    height: 128px;
    margin-left: -64px;
    margin-top: -64px;
    background-image: url('../assets/Animations/spritesheet/Lightning/lightning_strike_001/lightning_strike_001_large_violet/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 896px 128px;
    z-index: 120;
    pointer-events: none;
    animation: storm-lightning-strike-anim 600ms steps(7) forwards;
    filter: hue-rotate(172deg) saturate(0.65) brightness(1.95) contrast(1.18) drop-shadow(0 0 12px #7ee7ff);
}

@keyframes storm-lightning-strike-anim {
    from { background-position: 0 0; }
    to { background-position: -896px 0; }
}

/* Upgraded Wind Gust (Storm) */
.storm-wind-gust-enhanced {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 64px;
    height: 64px;
    margin-left: -32px;
    margin-top: -32px;
    background-image: url('../assets/Animations/spritesheet/Smoke Bursts/directional_smoke_burst_001/directional_smoke_burst_001_large_white/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 1344px 64px;
    z-index: 110;
    pointer-events: none;
    animation: storm-wind-gust-anim 1000ms steps(21) forwards;
    filter: drop-shadow(0 0 8px #00e5ff) opacity(0.8);
    transform: rotate(var(--wind-rot, 0deg)) scale(2);
}

@keyframes storm-wind-gust-anim {
    from { background-position: 0 0; }
    to { background-position: -1344px 0; }
}

/* Upgraded Blood Splatter (Rick / Negan / Carnage) */
.blood-splatter-enhanced {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 64px;
    height: 64px;
    margin-left: -32px;
    margin-top: -32px;
    background-image: url('../assets/Animations/spritesheet/Splatters/burst_splatter_001/burst_splatter_001_large_red/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 640px 64px;
    z-index: 115;
    pointer-events: none;
    animation: blood-splatter-anim 700ms steps(10) forwards;
    filter: drop-shadow(2px 2px 4px rgba(139, 0, 0, 0.8));
    transform: rotate(var(--splatter-rot, 0deg)) scale(1.5);
}

@keyframes blood-splatter-anim {
    from { background-position: 0 0; }
    to { background-position: -640px 0; }
}

/* Upgraded Explosion (Joker / Green Goblin / Rex Splode) */
.explosion-enhanced {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 192px;
    height: 192px;
    margin-left: -96px;
    margin-top: -96px;
    background-image: url('../assets/Animations/spritesheet/Explosions/epic_explosion_002/epic_explosion_002_large_yellow/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 2880px 192px;
    z-index: 130;
    pointer-events: none;
    animation: explosion-anim 1000ms steps(15) forwards;
    filter: drop-shadow(0 0 10px #ffaa00);
    transform: scale(0.92);
}

.pokemon-koffing-screen-explosion-fx {
    position: fixed;
    inset: 0;
    z-index: 9998;
    pointer-events: none;
    --explosion-size: 360px;
    --explosion-x: 50vw;
    --explosion-y: 50vh;
}

.pokemon-koffing-screen-explosion-fx.weezing {
    --explosion-size: 480px;
}

.pokemon-koffing-screen-explosion-fx .blast-flash,
.pokemon-koffing-screen-explosion-fx .blast-ring,
.pokemon-koffing-screen-explosion-fx .blast-cloud,
.pokemon-koffing-screen-explosion-fx .blast-sprite {
    position: absolute;
    left: var(--explosion-x);
    top: var(--explosion-y);
    transform: translate(-50%, -50%);
}

.pokemon-koffing-screen-explosion-fx .blast-flash {
    width: 100vw;
    height: 100vh;
    background: radial-gradient(circle at center, rgba(255, 232, 180, 0.42) 0%, rgba(255, 170, 40, 0.22) 18%, rgba(82, 36, 12, 0.18) 34%, rgba(0, 0, 0, 0) 62%);
    animation: pokemon-koffing-screen-flash 720ms ease-out both;
}

.pokemon-koffing-screen-explosion-fx .blast-sprite {
    width: var(--explosion-size);
    height: var(--explosion-size);
    margin-left: calc(var(--explosion-size) / -2);
    margin-top: calc(var(--explosion-size) / -2);
    background-image: url('../assets/Animations/spritesheet/Explosions/epic_explosion_002/epic_explosion_002_large_yellow/spritesheet.png');
    background-repeat: no-repeat;
    background-size: calc(var(--explosion-size) * 15) var(--explosion-size);
    filter: drop-shadow(0 0 18px rgba(255, 159, 31, 0.95));
    animation: pokemon-koffing-screen-explosion 1100ms steps(15) forwards;
}

.pokemon-koffing-screen-explosion-fx .blast-ring {
    border-radius: 50%;
    border: 10px solid rgba(255, 214, 136, 0.82);
    box-shadow: 0 0 30px rgba(255, 140, 33, 0.58);
    animation: pokemon-koffing-ring-expand 900ms ease-out both;
}

.pokemon-koffing-screen-explosion-fx .ring-a {
    width: calc(var(--explosion-size) * 0.48);
    height: calc(var(--explosion-size) * 0.48);
}

.pokemon-koffing-screen-explosion-fx .ring-b {
    width: calc(var(--explosion-size) * 0.78);
    height: calc(var(--explosion-size) * 0.78);
    animation-delay: 120ms;
}

.pokemon-koffing-screen-explosion-fx .blast-cloud {
    border-radius: 50%;
    filter: blur(10px);
    animation: pokemon-koffing-blast-cloud 1300ms ease-out both;
}

.pokemon-koffing-screen-explosion-fx .cloud-a {
    width: calc(var(--explosion-size) * 0.68);
    height: calc(var(--explosion-size) * 0.38);
    background: radial-gradient(circle, rgba(255, 160, 54, 0.56) 0%, rgba(96, 53, 18, 0.18) 62%, rgba(96, 53, 18, 0) 100%);
}

.pokemon-koffing-screen-explosion-fx .cloud-b {
    width: calc(var(--explosion-size) * 1.05);
    height: calc(var(--explosion-size) * 0.48);
    background: radial-gradient(circle, rgba(88, 88, 88, 0.34) 0%, rgba(32, 32, 32, 0.22) 60%, rgba(32, 32, 32, 0) 100%);
    animation-delay: 100ms;
}

.pokemon-koffing-screen-explosion-fx .cloud-c {
    width: calc(var(--explosion-size) * 1.18);
    height: calc(var(--explosion-size) * 0.58);
    background: radial-gradient(circle, rgba(176, 125, 211, 0.28) 0%, rgba(88, 54, 110, 0.18) 56%, rgba(88, 54, 110, 0) 100%);
    animation-delay: 180ms;
}

@keyframes explosion-anim {
    from { background-position: 0 0; }
    to { background-position: -2880px 0; }
}

.pixel-impact-fx,
.pixel-portal-fx,
.pixel-status-fx {
    position: absolute;
    left: 50%;
    top: 50%;
    pointer-events: none;
    background-repeat: no-repeat;
}

.pixel-impact-fx {
    width: 160px;
    height: 160px;
    margin-left: -80px;
    margin-top: -80px;
    z-index: 118;
    background-image: url('../assets/Animations/spritesheet/Impacts/symmetrical_impact_006/symmetrical_impact_006_large_yellow/spritesheet.png');
    background-size: 1280px 160px;
    animation: pixel-impact-anim 700ms steps(8) forwards;
    filter: brightness(1.25) drop-shadow(0 0 8px rgba(255, 212, 72, 0.9));
    transform: scale(0.72);
}

.pixel-impact-fx.damage {
    filter: hue-rotate(328deg) saturate(1.25) brightness(1.3) drop-shadow(0 0 8px rgba(255, 82, 46, 0.85));
}

.pixel-impact-fx.poison {
    filter: hue-rotate(82deg) saturate(1.45) brightness(1.08) drop-shadow(0 0 8px rgba(66, 255, 96, 0.8));
}

.pixel-impact-fx.heal {
    filter: hue-rotate(118deg) saturate(1.1) brightness(1.45) drop-shadow(0 0 9px rgba(68, 255, 170, 0.9));
}

.pixel-impact-fx.shield {
    filter: hue-rotate(171deg) saturate(1.35) brightness(1.45) drop-shadow(0 0 10px rgba(90, 210, 255, 0.95));
}

.pixel-impact-fx.shield-break {
    filter: saturate(0.85) brightness(1.7) drop-shadow(0 0 8px rgba(255, 255, 255, 0.9));
}

@keyframes pixel-impact-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -1280px 0; opacity: 0; }
}

.pixel-portal-fx {
    width: 128px;
    height: 128px;
    margin-left: -64px;
    margin-top: -64px;
    z-index: 122;
    background-image: url('../assets/Animations/spritesheet/Sci-fi/scifi_warp_003/scifi_warp_003_large_blue/spritesheet.png');
    background-size: 1536px 128px;
    animation: pixel-portal-anim 900ms steps(12) forwards;
    filter: brightness(1.3) drop-shadow(0 0 11px rgba(80, 200, 255, 0.95));
    transform: scale(1.16);
}

.pixel-portal-fx.green {
    filter: hue-rotate(78deg) saturate(1.35) brightness(1.35) drop-shadow(0 0 12px rgba(87, 255, 120, 0.95));
}

@keyframes pixel-portal-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -1536px 0; opacity: 0; }
}

.pixel-status-fx {
    width: 128px;
    height: 128px;
    margin-left: -64px;
    margin-top: -64px;
    z-index: 119;
    transform: scale(0.92);
}

.pixel-status-fx.poison {
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_poison_001/spell_poison_001_large_green/spritesheet.png');
    background-size: 2176px 128px;
    animation: pixel-status-poison-anim 1135ms steps(17) forwards;
    filter: drop-shadow(0 0 10px rgba(63, 255, 80, 0.88));
}

.pixel-status-fx.absorb {
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_absorb_001/spell_absorb_001_large_violet/spritesheet.png');
    background-size: 3968px 128px;
    animation: pixel-status-absorb-anim 2065ms steps(31) forwards;
    filter: hue-rotate(34deg) brightness(1.35) drop-shadow(0 0 10px rgba(180, 70, 255, 0.9));
}

.pixel-status-fx.defense {
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_defense_up_001/spell_defense_up_001_large_blue/spritesheet.png');
    background-size: 2304px 128px;
    animation: pixel-status-defense-anim 1200ms steps(18) forwards;
    filter: brightness(1.35) drop-shadow(0 0 10px rgba(80, 210, 255, 0.9));
}

.pixel-status-fx.harmful {
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_death_001/spell_death_001_large_red/spritesheet.png');
    background-size: 1280px 64px;
    width: 64px;
    height: 64px;
    margin-left: -32px;
    margin-top: -32px;
    animation: pixel-status-harmful-anim 1335ms steps(20) forwards;
    filter: brightness(1.25) drop-shadow(0 0 9px rgba(255, 40, 40, 0.9));
    transform: scale(1.42);
}

@keyframes pixel-status-poison-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -2176px 0; opacity: 0; }
}

@keyframes pixel-status-absorb-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -3968px 0; opacity: 0; }
}

@keyframes pixel-status-defense-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -2304px 0; opacity: 0; }
}

@keyframes pixel-status-harmful-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -1280px 0; opacity: 0; }
}

/* Upgraded Muzzle Flash (Rick / Andrea / Seraphina) */
.muzzle-flash-enhanced {
    position: absolute;
    width: 32px;
    height: 32px;
    background-image: url('../assets/Animations/spritesheet/Sci-fi/scifi_muzzle_flash_001/scifi_muzzle_flash_001_large_yellow/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 128px 64px;
    z-index: 125;
    pointer-events: none;
    animation: muzzle-flash-anim 200ms steps(4) forwards;
    filter: drop-shadow(0 0 5px #fff700) brightness(1.5);
    transform: rotate(var(--flash-rot, 0deg)) scale(2);
}

@keyframes muzzle-flash-anim {
    from { background-position: 0 0; }
    to { background-position: -128px 0; }
}

/* Upgraded Targeting Alert (Smartgunner) */
.targeting-alert-enhanced {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 80px;
    height: 80px;
    margin-left: -40px;
    margin-top: -40px;
    background-image: url('../assets/Animations/spritesheet/Symbols/symbol_alert_001/symbol_alert_001_large_red/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 1120px 80px;
    z-index: 105;
    pointer-events: none;
    animation: targeting-alert-anim 1000ms steps(14) forwards;
    filter: drop-shadow(0 0 8px #ff0000);
}

@keyframes targeting-alert-anim {
    from { background-position: 0 0; }
    to { background-position: -1120px 0; }
}

/* Upgraded Energy Charge (Rex Splode) */
.energy-charge-enhanced {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 64px;
    height: 64px;
    margin-left: -32px;
    margin-top: -32px;
    background-image: url('../assets/Animations/spritesheet/Smoke Bursts/symmetrical_smoke_burst_001/symmetrical_smoke_burst_001_large_brown/spritesheet.png');
    background-repeat: no-repeat;
    background-size: 640px 64px;
    z-index: 108;
    pointer-events: none;
    animation: energy-charge-anim 800ms steps(10) infinite;
    filter: hue-rotate(180deg) brightness(1.5) drop-shadow(0 0 6px #ff00ea);
}

@keyframes energy-charge-anim {
    from { background-position: 0 0; }
    to { background-position: -640px 0; }
}

.ghost-rider-skull-surge,
.ghost-rider-hellfire-breath,
.ghost-rider-chainsaw-slice,
.ghost-rider-infernal-ride-cast,
.ghost-rider-infernal-ride-impact,
.ghost-rider-hellfire-aura::before {
    background-repeat: no-repeat;
    pointer-events: none;
}

.ghost-rider-skull-surge {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 64px;
    height: 64px;
    margin-left: -32px;
    margin-top: -32px;
    z-index: 132;
    background-image: url('../assets/Animations/spritesheet/Smoke Bursts/stylized_skull_smoke_burst_001/stylized_skull_smoke_burst_001_large_white/spritesheet.png');
    background-size: 768px 64px;
    animation: ghost-rider-skull-surge-anim 800ms steps(12) both;
    filter: sepia(1) saturate(5) hue-rotate(330deg) brightness(1.35) drop-shadow(0 0 10px #ff5a00);
    transform: scale(1.45);
}

@keyframes ghost-rider-skull-surge-anim {
    from { background-position: 0 0; opacity: 0.95; }
    to { background-position: -768px 0; opacity: 0; }
}

.ghost-rider-hellfire-breath-move {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 8200;
    width: 64px;
    height: 64px;
    transform: translate(var(--source-x, 0), var(--source-y, 0));
    animation: ghost-rider-hellfire-move 1050ms cubic-bezier(0.16, 0.86, 0.2, 1) both;
    pointer-events: none;
}

.ghost-rider-hellfire-breath {
    width: 64px;
    height: 64px;
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_death_001/spell_death_001_large_red/spritesheet.png');
    background-size: 2048px 64px;
    animation: ghost-rider-hellfire-breath-anim 1050ms steps(32) both;
    filter: sepia(1) saturate(4.5) hue-rotate(338deg) brightness(1.4) drop-shadow(0 0 8px #ff3d00);
    transform: scale(1.8);
}

@keyframes ghost-rider-hellfire-move {
    from { transform: translate(0, 0) scale(0.82); opacity: 0; }
    12% { opacity: 1; }
    to { transform: translate(var(--cast-dx), var(--cast-dy)) scale(1.04); opacity: 0; }
}

@keyframes ghost-rider-hellfire-breath-anim {
    from { background-position: 0 0; }
    to { background-position: -2048px 0; }
}

.ghost-rider-chainsaw-slice {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 96px;
    height: 96px;
    margin-left: -48px;
    margin-top: -48px;
    z-index: 132;
    background-image: url('../assets/Animations/spritesheet/Sci-fi/scifi_warp_002/scifi_warp_002_large_red/spritesheet.png');
    background-size: 960px 96px;
    animation: ghost-rider-chainsaw-warp-anim 820ms steps(10) both;
    filter: sepia(1) saturate(4) hue-rotate(330deg) brightness(1.45) drop-shadow(0 0 8px #ff4c00);
}

.ghost-rider-chainsaw-slice .chainsaw-blade {
    position: absolute;
    left: -6px;
    top: 40px;
    width: 108px;
    height: 14px;
    border-radius: 3px;
    background: linear-gradient(90deg, transparent, #ffd7a3 14%, #fff 44%, #ff4a00 72%, transparent);
    box-shadow: 0 0 12px rgba(255, 70, 0, 0.9);
    transform: rotate(-18deg);
    animation: ghost-rider-chainsaw-blade-anim 560ms ease-out both;
}

.ghost-rider-chainsaw-slice .slice-line {
    position: absolute;
    left: 5px;
    top: 47px;
    width: 86px;
    height: 3px;
    background: #ff2a00;
    box-shadow: 0 0 10px #ff2a00;
    transform: rotate(-18deg);
    animation: ghost-rider-slice-line-anim 780ms ease-out both;
}

@keyframes ghost-rider-chainsaw-warp-anim {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: -960px 0; opacity: 0; }
}

@keyframes ghost-rider-chainsaw-blade-anim {
    from { transform: translate(-38px, -18px) rotate(-18deg) scaleX(0.35); opacity: 0; }
    45% { opacity: 1; }
    to { transform: translate(28px, 18px) rotate(-18deg) scaleX(1); opacity: 0; }
}

@keyframes ghost-rider-slice-line-anim {
    from { transform: rotate(-18deg) scaleX(0); opacity: 0; }
    35% { opacity: 1; }
    to { transform: rotate(-18deg) scaleX(1.1); opacity: 0; }
}

.ghost-rider-infernal-ride-cast,
.ghost-rider-infernal-ride-impact {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 128px;
    height: 128px;
    margin-left: -64px;
    margin-top: -64px;
    z-index: 131;
    background-image: url('../assets/Animations/spritesheet/Explosions/epic_explosion_001/epic_explosion_001_large_orange/spritesheet.png');
    background-size: 1664px 128px;
    animation: ghost-rider-infernal-ride-anim 980ms steps(13) both;
    filter: sepia(1) saturate(4) hue-rotate(330deg) brightness(1.25) drop-shadow(0 0 12px #ff4d00);
    transform: scale(1.15);
}

.ghost-rider-infernal-ride-cast {
    transform: scale(0.95);
}

@keyframes ghost-rider-infernal-ride-anim {
    from { background-position: 0 0; opacity: 0.95; }
    to { background-position: -1664px 0; opacity: 0; }
}

.ghost-rider-hellfire-aura {
    position: absolute;
    inset: -12px;
    z-index: 9;
    pointer-events: none;
    mix-blend-mode: screen;
}

.ghost-rider-hellfire-aura::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 64px;
    height: 64px;
    margin-left: -32px;
    margin-top: -32px;
    background-image: url('../assets/Animations/spritesheet/Fantasy Spells/spell_death_001/spell_death_001_large_red/spritesheet.png');
    background-size: 2048px 64px;
    animation: ghost-rider-aura-anim 1200ms steps(32) infinite;
    filter: sepia(1) saturate(4.5) hue-rotate(335deg) brightness(1.25) drop-shadow(0 0 7px #ff4b00);
    opacity: 0.72;
    transform: scale(1.55);
}

@keyframes ghost-rider-aura-anim {
    from { background-position: 0 0; }
    to { background-position: -2048px 0; }
}

@keyframes damage-impact {
    0% {
        transform: translateX(0);
        filter: brightness(1);
    }
    18% {
        transform: translateX(-3px);
        filter: brightness(1.45) saturate(1.3);
    }
    36% {
        transform: translateX(3px);
    }
    54% {
        transform: translateX(-2px);
    }
    100% {
        transform: translateX(0);
        filter: brightness(1);
    }
}

@keyframes heal-impact {
    0% {
        transform: scale(1);
        filter: brightness(1);
    }
    45% {
        transform: scale(1.08);
        filter: brightness(1.25) saturate(1.25);
    }
    100% {
        transform: scale(1);
        filter: brightness(1);
    }
}

@keyframes pokemon-kadabra-psi-spin {
    from { transform: rotate(0deg) scale(0.96); opacity: 0.78; }
    50% { transform: rotate(180deg) scale(1.04); opacity: 1; }
    to { transform: rotate(360deg) scale(0.96); opacity: 0.78; }
}

@keyframes pokemon-kadabra-psi-spin-reverse {
    from { transform: rotate(360deg) scaleX(0.9); opacity: 0.5; }
    50% { transform: rotate(180deg) scaleX(1.08); opacity: 0.9; }
    to { transform: rotate(0deg) scaleX(0.9); opacity: 0.5; }
}

@keyframes pokemon-kadabra-orbit {
    0% { transform: translateY(0) scale(0.8); opacity: 0.35; }
    50% { transform: translateY(-10px) scale(1.28); opacity: 1; }
    100% { transform: translateY(0) scale(0.8); opacity: 0.35; }
}

@keyframes pokemon-ivysaur-leaf-drift {
    0% { transform: translateY(10px) rotate(12deg) scale(0.86); opacity: 0; }
    20% { opacity: 0.95; }
    50% { transform: translateY(-8px) rotate(-10deg) scale(1.08); opacity: 1; }
    100% { transform: translateY(-24px) rotate(22deg) scale(0.72); opacity: 0; }
}

@keyframes pokemon-blissey-plus-rise {
    0% { transform: translate(-50%, 8px) scale(0.55); opacity: 0; }
    18% { opacity: 1; }
    65% { transform: translate(-50%, -24px) scale(1.1); opacity: 0.95; }
    100% { transform: translate(-50%, -46px) scale(1.28); opacity: 0; }
}

@keyframes pokemon-blissey-bloom {
    0% { transform: scale(0.25); opacity: 0; }
    25% { opacity: 0.65; }
    100% { transform: scale(1.7); opacity: 0; }
}

@keyframes pokemon-charmeleon-flame {
    0% { transform: translateY(4px) scaleY(0.72); opacity: 0.5; }
    50% { transform: translateY(-6px) scaleY(1.18); opacity: 0.98; }
    100% { transform: translateY(4px) scaleY(0.72); opacity: 0.5; }
}

@keyframes pokemon-charmeleon-ember {
    0% { transform: translateY(0) scale(0.65); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: translateY(-34px) translateX(8px) scale(1.15); opacity: 0; }
}

@keyframes pokemon-haunter-ghost-float {
    0% { transform: translateY(8px) translateX(0) scale(0.78); opacity: 0; }
    18% { opacity: 0.95; }
    52% { transform: translateY(-4px) translateX(4px) scale(1.02); opacity: 1; }
    100% { transform: translateY(-18px) translateX(-5px) scale(0.86); opacity: 0; }
}

@keyframes pokemon-weezing-gas-drift {
    0% { transform: translate(0, 0) scale(0.72); opacity: 0.26; }
    50% { transform: translate(5px, -7px) scale(1.12); opacity: 0.72; }
    100% { transform: translate(-4px, -13px) scale(0.84); opacity: 0; }
}

@keyframes pokemon-pidgeotto-tornado {
    from { transform: rotate(0deg) scale(0.86); opacity: 0.55; }
    50% { transform: rotate(180deg) scale(1.08); opacity: 1; }
    to { transform: rotate(360deg) scale(0.86); opacity: 0.55; }
}

@keyframes pokemon-wartortle-bubbles {
    0% { transform: translateY(0) scale(0.45); opacity: 0; }
    15% { opacity: 0.82; }
    100% { transform: translateY(-58px) scale(1.12); opacity: 0; }
}

@keyframes pokemon-golbat-bat-flutter {
    0% { transform: translateY(6px) scale(0.72) rotate(-8deg); opacity: 0; }
    18% { opacity: 0.95; }
    50% { transform: translateY(-2px) scale(1.08) rotate(8deg); opacity: 1; }
    100% { transform: translateY(-12px) scale(0.8) rotate(-6deg); opacity: 0; }
}

@keyframes pokemon-kingler-claw-sway {
    0% { transform: translateY(0) rotate(-8deg); }
    50% { transform: translateY(-2px) rotate(2deg); }
    100% { transform: translateY(1px) rotate(-10deg); }
}

@keyframes pokemon-kingler-pincer-top {
    from { transform: rotate(-10deg) scale(0.96); }
    to { transform: rotate(-34deg) scale(1.05); }
}

@keyframes pokemon-kingler-pincer-bottom {
    from { transform: rotate(10deg) scale(0.96); }
    to { transform: rotate(34deg) scale(1.05); }
}

@keyframes pokemon-kingler-bubble-rise {
    0% { transform: translateY(0) scale(0.5); opacity: 0; }
    18% { opacity: 0.82; }
    100% { transform: translateY(-46px) scale(1.08); opacity: 0; }
}

@keyframes pokemon-arbok-snake-climb {
    0% { transform: translateY(10px) scaleY(0.82); opacity: 0.3; }
    50% { transform: translateY(-2px) scaleY(1.02); opacity: 0.95; }
    100% { transform: translateY(-12px) scaleY(0.86); opacity: 0.42; }
}

@keyframes pokemon-arbok-venom-drip {
    0% { transform: scaleY(0.7); opacity: 0.55; }
    50% { transform: scaleY(1.15); opacity: 0.98; }
    100% { transform: scaleY(0.74); opacity: 0.58; }
}

@keyframes pokemon-arbok-drop-fall {
    0% { transform: translateY(0) scale(0.5); opacity: 0; }
    20% { opacity: 0.92; }
    100% { transform: translateY(26px) scale(1.1); opacity: 0; }
}

@keyframes pokemon-machoke-force-surge {
    0% { transform: scale(0.84) rotate(0deg); opacity: 0.35; }
    50% { transform: scale(1.08) rotate(12deg); opacity: 0.92; }
    100% { transform: scale(0.9) rotate(0deg); opacity: 0.42; }
}

@keyframes pokemon-machoke-pulse-strike {
    0% { transform: translateX(-8px) scaleX(0.4); opacity: 0; }
    35% { opacity: 1; }
    100% { transform: translateX(12px) scaleX(1.16); opacity: 0; }
}

@keyframes pokemon-gyarados-wave-roll {
    0% { transform: translateX(-4px) scaleX(0.96); }
    50% { transform: translateX(4px) scaleX(1.04); }
    100% { transform: translateX(-4px) scaleX(0.96); }
}

@keyframes pokemon-gyarados-foam-rise {
    0% { transform: translateY(0) scale(0.5); opacity: 0; }
    18% { opacity: 0.9; }
    100% { transform: translateY(-20px) scale(1.08); opacity: 0; }
}

@keyframes pokemon-solar-charge-pulse {
    0% { transform: scale(0.82); opacity: 0.66; filter: saturate(0.94); }
    50% { transform: scale(1.14); opacity: 1; filter: saturate(1.18); }
    100% { transform: scale(0.82); opacity: 0.66; filter: saturate(0.94); }
}

@keyframes pokemon-solar-ring-spin {
    from { transform: rotate(0deg) scale(0.94); opacity: 0.7; }
    50% { transform: rotate(180deg) scale(1.04); opacity: 1; }
    to { transform: rotate(360deg) scale(0.94); opacity: 0.7; }
}

@keyframes pokemon-solar-ring-spin-reverse {
    from { transform: rotate(360deg) scale(0.88); opacity: 0.54; }
    50% { transform: rotate(180deg) scale(1.08); opacity: 0.9; }
    to { transform: rotate(0deg) scale(0.88); opacity: 0.54; }
}

@keyframes pokemon-solar-spark-drift {
    0% { transform: translate(0, 8px) scale(0.72); opacity: 0; }
    25% { opacity: 1; }
    60% { transform: translate(-2px, -8px) scale(1.15); opacity: 0.94; }
    100% { transform: translate(3px, -16px) scale(0.84); opacity: 0; }
}

@keyframes pokemon-beam-scroll {
    from { background-position: 0 0; }
    to { background-position: 38px 0; }
}

@keyframes pokemon-impact-flash {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1.45); opacity: 0; }
}

@keyframes pokemon-impact-ring {
    0% { transform: translate(-50%, -50%) scale(0.35); opacity: 0.94; }
    100% { transform: translate(-50%, -50%) scale(1.7); opacity: 0; }
}

@keyframes pokemon-thunder-column {
    0% { transform: translateX(-50%) scaleY(0.2); opacity: 0; }
    18% { opacity: 1; }
    100% { transform: translateX(-50%) scaleY(1.08); opacity: 0; }
}

@keyframes pokemon-thunder-bolt {
    0% { opacity: 0; filter: brightness(0.9); }
    22% { opacity: 1; filter: brightness(1.5); }
    100% { opacity: 0; filter: brightness(1); }
}

@keyframes pokemon-thunder-ring {
    0% { transform: translateX(-50%) scaleX(0.4); opacity: 0.9; }
    100% { transform: translateX(-50%) scaleX(1.4); opacity: 0; }
}

@keyframes pokemon-flame-plume {
    0% { transform: translateY(-50%) scale(0.74) rotate(-8deg); opacity: 0.52; }
    50% { transform: translateY(-62%) scale(1.14) rotate(8deg); opacity: 1; }
    100% { transform: translateY(-50%) scale(0.78) rotate(-6deg); opacity: 0.52; }
}

@keyframes pokemon-flame-rise {
    0% { transform: translateY(10px) scaleY(0.68); opacity: 0; }
    22% { opacity: 0.94; }
    55% { transform: translateY(-4px) scaleY(1.12); opacity: 0.98; }
    100% { transform: translateY(-18px) scaleY(0.86); opacity: 0; }
}

@keyframes pokemon-water-droplet {
    0% { transform: translateY(-50%) scale(0.5); opacity: 0.32; }
    50% { transform: translateY(-95%) scale(1.16); opacity: 0.96; }
    100% { transform: translateY(-40%) scale(0.7); opacity: 0.22; }
}

@keyframes pokemon-water-impact-splash {
    0% { transform: scale(0.4) translateY(10px); opacity: 0; }
    24% { opacity: 0.95; }
    100% { transform: scale(1.22) translateY(-10px); opacity: 0; }
}

@keyframes pokemon-bubble-drift {
    0% { transform: translateY(0) scale(0.62); opacity: 0.46; }
    50% { transform: translateY(-8px) scale(1.12); opacity: 1; }
    100% { transform: translateY(-2px) scale(0.72); opacity: 0.34; }
}

@keyframes pokemon-bubble-ring-expand {
    0% { transform: scale(0.42); opacity: 0.92; }
    100% { transform: scale(1.4); opacity: 0; }
}

@keyframes pokemon-bubble-pop-fx {
    0% { transform: scale(0.28); opacity: 0; }
    25% { opacity: 0.95; }
    100% { transform: scale(1.28) translateY(-6px); opacity: 0; }
}

@keyframes pokemon-metal-claw-slice {
    0% { transform: translateX(-12px) scaleX(0.5) rotate(-18deg); opacity: 0; }
    22% { opacity: 1; }
    100% { transform: translateX(8px) scaleX(1.08) rotate(-18deg); opacity: 0; }
}

@keyframes pokemon-metal-spark-burst {
    0% { transform: scale(0.2); opacity: 0; }
    24% { opacity: 1; }
    100% { transform: scale(1.4) translate(4px, -6px); opacity: 0; }
}

@keyframes pokemon-crabhammer-arc {
    0% { transform: rotate(-60deg) scale(0.4); opacity: 0; }
    22% { opacity: 0.94; }
    100% { transform: rotate(120deg) scale(1.2); opacity: 0; }
}

@keyframes pokemon-crabhammer-head {
    0% { transform: scale(0.4) translate(-4px, 8px); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: scale(1.14) translate(8px, -10px); opacity: 0; }
}

@keyframes pokemon-crabhammer-burst {
    0% { transform: scale(0.2); opacity: 0.9; }
    100% { transform: scale(1.45); opacity: 0; }
}

@keyframes pokemon-crabhammer-star {
    0% { transform: scale(0.3) translateY(8px); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: scale(1.18) translateY(-10px); opacity: 0; }
}

@keyframes pokemon-harden-shell-pulse {
    0% { transform: scale(0.62); opacity: 0; }
    24% { opacity: 1; }
    100% { transform: scale(1.06); opacity: 0; }
}

@keyframes pokemon-harden-shard-orbit {
    0% { transform: scale(0.22) translateY(12px); opacity: 0; }
    30% { opacity: 0.98; }
    100% { transform: scale(1.08) translateY(-12px); opacity: 0; }
}

@keyframes pokemon-leaf-flicker {
    0% { transform: translateY(-50%) rotate(14deg) scale(0.86); opacity: 0.64; }
    50% { transform: translateY(-64%) rotate(-8deg) scale(1.12); opacity: 1; }
    100% { transform: translateY(-50%) rotate(14deg) scale(0.86); opacity: 0.64; }
}

@keyframes pokemon-seed-vine-grow {
    0% { transform: scaleX(0.1); opacity: 0; }
    30% { opacity: 0.95; }
    100% { transform: scaleX(1.3); opacity: 0; }
}

@keyframes pokemon-sound-ring {
    0% { transform: translate(-50%, -50%) scale(0.32); opacity: 0; }
    20% { opacity: 0.95; }
    100% { transform: translate(-50%, -50%) scale(1.36); opacity: 0; }
}

@keyframes pokemon-future-reticle {
    from { transform: rotate(0deg) scale(0.94); opacity: 0.7; }
    50% { transform: rotate(180deg) scale(1.06); opacity: 1; }
    to { transform: rotate(360deg) scale(0.94); opacity: 0.7; }
}

@keyframes pokemon-future-rune-orbit {
    0% { transform: translate(0, 8px) scale(0.72); opacity: 0; }
    20% { opacity: 0.94; }
    55% { transform: translate(5px, -6px) scale(1.16); opacity: 1; }
    100% { transform: translate(-4px, -14px) scale(0.74); opacity: 0; }
}

@keyframes pokemon-x-slash {
    0% { opacity: 0; filter: brightness(0.9); }
    18% { opacity: 1; filter: brightness(1.4); }
    100% { opacity: 0; filter: brightness(1); }
}

@keyframes pokemon-heal-wave {
    0% { transform: translate(-50%, -50%) scale(0.34); opacity: 0; }
    22% { opacity: 0.92; }
    100% { transform: translate(-50%, -50%) scale(1.44); opacity: 0; }
}

@keyframes pokemon-center-plus {
    0% { transform: translateY(8px) scale(0.62); opacity: 0; }
    18% { opacity: 1; }
    100% { transform: translateY(-18px) scale(1.16); opacity: 0; }
}

@keyframes pokemon-heal-heart {
    0% { transform: translate(-50%, -50%) rotate(-45deg) scale(0.72); opacity: 0.58; }
    50% { transform: translate(-50%, -58%) rotate(-45deg) scale(1.08); opacity: 1; }
    100% { transform: translate(-50%, -50%) rotate(-45deg) scale(0.72); opacity: 0.58; }
}

@keyframes pokemon-smog-cloud {
    0% { transform: translate(0, 6px) scale(0.72); opacity: 0.18; }
    25% { opacity: 0.74; }
    65% { transform: translate(4px, -4px) scale(1.08); opacity: 0.66; }
    100% { transform: translate(-4px, -14px) scale(0.84); opacity: 0; }
}

@keyframes pokemon-koffing-fog-drift {
    0% { transform: translate(0, 10px) scale(0.72); opacity: 0.12; }
    30% { opacity: 0.82; }
    65% { transform: translate(6px, -2px) scale(1.08); opacity: 0.74; }
    100% { transform: translate(-8px, -16px) scale(0.9); opacity: 0; }
}

@keyframes pokemon-koffing-fog-veil {
    0% { transform: scale(0.86); opacity: 0.18; }
    50% { transform: scale(1.02); opacity: 0.42; }
    100% { transform: scale(1.1); opacity: 0; }
}

@keyframes pokemon-koffing-screen-flash {
    0% { opacity: 0; }
    16% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes pokemon-koffing-screen-explosion {
    from { background-position: 0 0; opacity: 1; }
    to { background-position: calc(var(--explosion-size) * -15) 0; opacity: 0; }
}

@keyframes pokemon-koffing-ring-expand {
    0% { transform: translate(-50%, -50%) scale(0.26); opacity: 0.92; }
    100% { transform: translate(-50%, -50%) scale(1.46); opacity: 0; }
}

@keyframes pokemon-koffing-blast-cloud {
    0% { transform: translate(-50%, -50%) scale(0.34); opacity: 0.2; }
    28% { opacity: 0.78; }
    100% { transform: translate(-50%, -50%) scale(1.18); opacity: 0; }
}

@keyframes pokemon-bite-impact {
    0% { opacity: 0; }
    15%, 72% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes pokemon-bite-top {
    0% { transform: translateY(-20px) scaleY(0.2); }
    35%, 70% { transform: translateY(0) scaleY(calc(1 + var(--bite-scale, 0))); }
    100% { transform: translateY(4px) scaleY(0.38); }
}

@keyframes pokemon-bite-bottom {
    0% { transform: rotate(180deg) translateY(-20px) scaleY(0.2); }
    35%, 70% { transform: rotate(180deg) translateY(0) scaleY(calc(1 + var(--bite-scale, 0))); }
    100% { transform: rotate(180deg) translateY(4px) scaleY(0.38); }
}

@keyframes pokemon-toxic-blob {
    0% { transform: translate(0, 0) scale(0.4); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translate(16px, 0) scale(0.2); opacity: 0; }
}

@keyframes pokemon-toxic-bubble-rise {
    0% { transform: translateY(0) scale(0.2); opacity: 0; }
    18% { opacity: 1; }
    100% { transform: translateY(-26px) scale(1.1); opacity: 0; }
}

@keyframes pokemon-shed-skin-peel {
    0% { opacity: 0; transform: translateX(0) skewX(0deg); }
    24% { opacity: 0.92; }
    100% { opacity: 0; transform: translateX(16px) skewX(14deg); }
}

@keyframes pokemon-heal-plus-float {
    0% { opacity: 0; transform: translateY(12px) scale(0.4); }
    25% { opacity: 1; }
    100% { opacity: 0; transform: translateY(-16px) scale(1.12); }
}

@keyframes pokemon-machop-hand-chop {
    0% { transform: translateY(-16px) scaleY(0.4) scaleX(calc(1 + var(--machop-power) * 0.06)); opacity: 0; }
    36% { opacity: 1; transform: translateY(18px) scaleY(calc(1 + var(--machop-power) * 0.08)) scaleX(calc(1 + var(--machop-power) * 0.06)); }
    100% { opacity: 0; transform: translateY(28px) scaleY(0.72) scaleX(calc(1 + var(--machop-power) * 0.06)); }
}

@keyframes pokemon-machop-counter-press {
    0% { opacity: 0; transform: scale(0.3) scale(calc(1 + var(--machop-power) * 0.08)); }
    22%, 60% { opacity: 1; transform: scale(calc(1 + var(--machop-power) * 0.08)); }
    100% { opacity: 0; transform: scale(0.58) scale(calc(1 + var(--machop-power) * 0.08)); }
}

@keyframes pokemon-machop-impact-ring {
    0% { opacity: 0; transform: scale(0.3) scale(calc(1 + var(--machop-power) * 0.06)); }
    22% { opacity: 1; }
    100% { opacity: 0; transform: scale(calc(1.3 + var(--machop-power) * 0.08)); }
}

@keyframes pokemon-machop-bulk-ring {
    0% { opacity: 0.26; transform: scale(0.82); }
    50% { opacity: 1; transform: scale(calc(1 + min(8, var(--bulk-intensity, var(--machop-power, 1))) * 0.03)); }
    100% { opacity: 0.32; transform: scale(1.08); }
}

@keyframes pokemon-machop-bulk-spark {
    0% { opacity: 0; transform: translateY(8px) scaleY(0.4); }
    25% { opacity: 1; }
    100% { opacity: 0; transform: translateY(-18px) scaleY(1); }
}

@keyframes pokemon-machop-taunt-hand {
    0% { opacity: 0; transform: translateX(14px) scale(0.4); }
    28%, 62% { opacity: 1; transform: translateX(-8px) scale(1); }
    100% { opacity: 0; transform: translateX(12px) scale(0.68); }
}

@keyframes pokemon-machop-finger-wag {
    0% { opacity: 0; transform: rotate(16deg); }
    20% { opacity: 1; }
    36% { transform: rotate(-14deg); }
    52% { transform: rotate(14deg); }
    72% { transform: rotate(-10deg) translateX(-8px); }
    100% { opacity: 0; transform: rotate(18deg) translateX(8px); }
}

@keyframes pokemon-machop-taunt-text {
    0% { opacity: 0; transform: translateX(-50%) translateY(8px) scale(0.5); }
    22%, 70% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
    100% { opacity: 0; transform: translateX(-50%) translateY(-8px) scale(0.82); }
}

@keyframes pokemon-psybeam-wave {
    0% { transform: translateY(-50%) scaleX(0.72); opacity: 0.28; }
    50% { transform: translateY(-50%) scaleX(1.12); opacity: 0.94; }
    100% { transform: translateY(-50%) scaleX(0.72); opacity: 0.28; }
}

@keyframes pokemon-psybeam-spark {
    0% { transform: translate(-2px, 8px) scale(0.6); opacity: 0; }
    20% { opacity: 0.95; }
    100% { transform: translate(3px, -10px) scale(1.18); opacity: 0; }
}

@keyframes pokemon-psybeam-ring {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0.9; }
    100% { transform: translate(-50%, -50%) scale(1.68); opacity: 0; }
}

@keyframes pokemon-powder-drift {
    0% { transform: translate(-2px, -50%) scale(0.5); opacity: 0.2; }
    50% { transform: translate(4px, -95%) scale(1.12); opacity: 0.95; }
    100% { transform: translate(-4px, -25%) scale(0.62); opacity: 0; }
}

@keyframes pokemon-powder-burst {
    0% { transform: translate(-50%, -50%) scale(0.42); opacity: 0; }
    18% { opacity: 0.92; }
    100% { transform: translate(-50%, -50%) scale(1.58); opacity: 0; }
}

@keyframes pokemon-powder-spore {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    30% { opacity: 0.96; }
    100% { transform: translate(-50%, -50%) translateY(-18px) scale(1.18); opacity: 0; }
}

@keyframes pokemon-whirlwind-ring {
    0% { transform: translate(-50%, -50%) scale(0.42); opacity: 0; }
    22% { opacity: 0.92; }
    100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; }
}

@keyframes pokemon-whirlwind-streak {
    0% { opacity: 0; transform: translateX(-12px) rotate(12deg); }
    30% { opacity: 0.95; }
    100% { opacity: 0; transform: translateX(18px) rotate(12deg); }
}

@keyframes pokemon-whirlwind-feather {
    0% { opacity: 0; transform: translateY(8px) rotate(-28deg) scale(0.7); }
    30% { opacity: 0.95; }
    100% { opacity: 0; transform: translateY(-10px) rotate(18deg) scale(1.12); }
}

@keyframes pokemon-trainer-ball-throw {
    0% { transform: translate(0, 0) scale(0.78) rotate(0deg); opacity: 0; }
    12% { opacity: 1; }
    100% { transform: translate(var(--cast-dx), var(--cast-dy)) scale(1) rotate(520deg); opacity: 0; }
}

@keyframes pokemon-ball-capture-ring {
    0% { transform: translate(-50%, -50%) scale(0.3); opacity: 0.94; }
    100% { transform: translate(-50%, -50%) scale(1.72); opacity: 0; }
}

@keyframes pokemon-ball-capture-flash {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1.46); opacity: 0; }
}

@keyframes pokemon-ball-capture-star {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    25% { opacity: 0.96; }
    100% { transform: translate(-50%, -50%) translateY(-16px) scale(1.22); opacity: 0; }
}

@keyframes pokemon-x-stats-badge {
    0% { transform: scale(0.45) rotate(-10deg); opacity: 0; }
    22% { opacity: 1; }
    100% { transform: scale(1.18) rotate(0deg); opacity: 0; }
}

@keyframes pokemon-x-stats-arrow {
    0% { transform: scale(0.4); opacity: 0; }
    24% { opacity: 0.95; }
    100% { transform: translateY(-10px) scale(1.08); opacity: 0; }
}

@keyframes pokemon-x-stats-grid {
    0% { opacity: 0; transform: scale(0.82); }
    30% { opacity: 0.92; }
    100% { opacity: 0; transform: scale(1.08); }
}

@keyframes pokemon-rare-candy-core {
    0% { transform: scale(0.42) rotate(-16deg); opacity: 0; }
    24% { opacity: 1; }
    100% { transform: scale(1.14) rotate(0deg); opacity: 0; }
}

@keyframes pokemon-rare-candy-shine {
    0% { transform: scale(0.36); opacity: 0; }
    22% { opacity: 0.92; }
    100% { transform: scale(1.5); opacity: 0; }
}

@keyframes pokemon-rare-candy-spark {
    0% { transform: scale(0.45); opacity: 0; }
    26% { opacity: 0.96; }
    100% { transform: translateY(-18px) scale(1.16); opacity: 0; }
}

@keyframes pokemon-psychic-ripple {
    0% { transform: translate(-50%, -50%) scale(0.3); opacity: 0; }
    25% { opacity: 0.95; }
    100% { transform: translate(-50%, -50%) scale(1.45); opacity: 0; }
}

@keyframes pokemon-psychic-shard {
    0% { transform: scale(0.35) rotate(0deg); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: scale(1.15) rotate(160deg); opacity: 0; }
}

@keyframes pokemon-psychic-ring {
    0% { transform: translate(-50%, -50%) scale(0.3); opacity: 0; }
    25% { opacity: 0.95; }
    100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; }
}

@keyframes pokemon-psychic-glyph {
    0% { transform: scale(0.4) rotate(-18deg); opacity: 0; }
    30% { opacity: 0.9; }
    100% { transform: scale(1.12) rotate(22deg); opacity: 0; }
}

@keyframes pokemon-calm-mind-aura {
    0% { transform: scale(0.45); opacity: 0; }
    25% { opacity: 0.9; }
    100% { transform: scale(1.15); opacity: 0; }
}

@keyframes pokemon-calm-mind-rune {
    0% { transform: rotate(45deg) scale(0.2); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: rotate(155deg) scale(1.1); opacity: 0; }
}

@keyframes pokemon-calm-mind-orb {
    0% { transform: translate3d(0, 10px, 0) scale(0.25); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: translate3d(0, -18px, 0) scale(1.1); opacity: 0; }
}

@keyframes pokemon-teleport-ring {
    0% { transform: translate(-50%, -50%) scale(0.2); opacity: 0; }
    25% { opacity: 0.95; }
    100% { transform: translate(-50%, -50%) scale(1.65); opacity: 0; }
}

@keyframes pokemon-teleport-column {
    0% { transform: scaleY(0.2); opacity: 0; }
    25% { opacity: 0.95; }
    100% { transform: scaleY(1.15); opacity: 0; }
}

@keyframes pokemon-teleport-spark {
    0% { transform: scale(0.2) rotate(0deg); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: scale(1.15) rotate(120deg); opacity: 0; }
}

@keyframes pokemon-leech-life-wave {
    0% { transform: translate(-50%, -50%) scale(0.25); opacity: 0; }
    25% { opacity: 0.9; }
    100% { transform: translate(-50%, -50%) scale(1.35); opacity: 0; }
}

@keyframes pokemon-leech-life-orb {
    0% { transform: translate3d(0, 8px, 0) scale(0.25); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: translate3d(0, -14px, 0) scale(1.05); opacity: 0; }
}

@keyframes pokemon-fang-mark {
    0% { transform: scaleY(0.2); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: scaleY(1.08); opacity: 0; }
}

@keyframes pokemon-bite-burst {
    0% { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
    25% { opacity: 0.9; }
    100% { transform: translate(-50%, -50%) scale(1.45); opacity: 0; }
}

@keyframes pokemon-bite-arc {
    0% { transform: scaleX(0.2) scaleY(0.4); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: scaleX(1.08) scaleY(1.08); opacity: 0; }
}

@keyframes pokemon-bite-spark {
    0% { transform: scale(0.2) rotate(0deg); opacity: 0; }
    25% { opacity: 1; }
    100% { transform: scale(1.15) rotate(120deg); opacity: 0; }
}

.character-face.damage-impact {
    animation: damage-impact-enhanced 450ms steps(7) both;
}

.character-face.heal-impact {
    animation: heal-impact-enhanced 600ms steps(16) both;
}

@keyframes cooldown-tick-pop {
    0% {
        transform: scale(1);
        filter: brightness(1);
    }
    45% {
        transform: scale(1.24);
        filter: brightness(1.35);
    }
    100% {
        transform: scale(1);
        filter: brightness(1);
    }
}

.skill-cooldown-badge.cooldown-tick-pop {
    animation: cooldown-tick-pop 420ms cubic-bezier(0.2, 0.85, 0.22, 1) both;
}

@keyframes turn-start-sweep {
    0% {
        opacity: 0;
        transform: translateX(-120%);
    }
    28% {
        opacity: 0.9;
    }
    100% {
        opacity: 0;
        transform: translateX(130%);
    }
}

.player-characters.turn-start-sweep::after,
.enemy-characters.turn-start-sweep::after {
    content: "";
    position: absolute;
    left: -22px;
    top: -18px;
    width: 150px;
    height: 285px;
    pointer-events: none;
    z-index: 45;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 239, 143, 0.1) 25%,
        rgba(255, 239, 143, 0.65) 50%,
        rgba(255, 239, 143, 0.1) 75%,
        transparent 100%
    );
    animation: turn-start-sweep 760ms ease-out both;
}

.status-tooltip-content {
    display: none;
    position: absolute;
    left: 85px;
    top: 24px;
    min-width: 270px;
    max-width: 320px;
    padding: 8px 7px;
    background: #efefef;
    border: 1px solid #2d1507;
    color: #2d1507;
    font-size: 12px;
}

.skilltooltips.has-status:hover .status-tooltip-content {
    display: none;
}

.status-tooltip-item + .status-tooltip-item {
    margin-top: 6px;
}

.status-tooltip-title {
    color: #ba2310;
    margin-bottom: 2px;
    font-size: 13px;
}

.status-tooltip-desc {
    color: #2d1507;
}

.status-tooltip-desc-line {
    color: #2d1507;
}

.status-tooltip-line-divider {
    height: 1px;
    background: rgba(45, 21, 7, 0.35);
    margin: 3px 0;
}

.status-tooltip-turns {
    margin-top: 2px;
    color: #aa1e11;
}

.enemy-characters .status-tooltip-content {
   transform: none;
   direction: ltr;
   unicode-bidi: isolate;
   z-index: 1200;
   position: absolute;
}

.enemy-characters .skilltooltips {
    z-index: 1100;
}

.enemy-characters .goblin-bomb-label,
.enemy-characters .goblin-bomb-count,
.enemy-characters .space-marine-channel-label,
.enemy-characters .rex-charge-counter span {
    transform: scaleX(-1);
}

.enemy-characters .character-card {
    height: 92px;
    flex-basis: 92px;
}

.combat-impact-burst,
.hp-delta-popup,
.status-apply-burst,
.evade-slash-overlay,
.character-death-shatter,
.ghost-rider-death-fire,
.predator-hunted-overlay,
.lasered-overlay,
.sabered-overlay,
.blood-splatter-enhanced,
.explosion-enhanced,
.muzzle-flash-enhanced,
.lightsaber-portrait-slash-fx,
.sidious-lightning-fx,
.boba-water-bounty-fx,
.boba-wanted-marker,
.pixel-impact-fx,
.pixel-portal-fx,
.pixel-status-fx,
.targeting-alert-enhanced,
.storm-lightning-strike-enhanced,
.storm-wind-gust-enhanced {
    pointer-events: none;
}

.global-status-tooltip {
    position: fixed;
    left: 0;
    top: 0;
    min-width: 280px;
    max-width: 280px;
    padding: 5px 7px;
    background: #efefef;
    border: 1px solid #2d1507;
    color: #2d1507;
    font-size: 12px;
    z-index: 99999;
    pointer-events: none;
}

.skill-cast-projectile {
    animation-duration: 1450ms;
}

.skill-cast-projectile.captain-shield-throw-projectile {
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    object-fit: contain;
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.95)) drop-shadow(0 0 12px rgba(72, 137, 255, 0.78));
    box-shadow: none;
    animation-duration: 2200ms;
    animation-name: captain-shield-ricochet-flight;
}

.skill-cast-projectile.captain-shield-bash-projectile {
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    object-fit: contain;
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.95)) drop-shadow(0 0 10px rgba(255, 43, 43, 0.7));
    box-shadow: none;
    animation-duration: 900ms;
    animation-name: captain-shield-bash-flight;
    animation-timing-function: cubic-bezier(0.08, 0.86, 0.18, 1);
}

.skillimage.skill-cast-pulse,
.skillimage.skill-blocked-shake,
.character-face.skill-caster-surge,
.combat-impact-burst,
.hp-delta-popup,
.status-apply-burst,
.evade-slash-overlay,
.character-face.evade-dodge,
.skilltooltipimage.status-icon-turn-pop,
.skilltooltipimage.passive-trigger-flash,
.target-lock-marker,
.taunt-callout span,
.character-card.taunted-fx .character-face,
.skillpreview.skillpreview-added,
.character-face.damage-impact,
.character-face.heal-impact,
.skill-cooldown-badge.cooldown-tick-pop {
    animation-duration: 1.45s;
}

.character-card.captain-shield-fx::before {
    animation-duration: 1.9s;
}

.character-card.captain-shield-fx .character-face {
    animation-duration: 1.8s;
}

.energy-none {
    font-size: 11px;
    color: grey;
    margin-left: -2px;
}

.rank-hat {
    position: absolute;
    left: -22px;
    top: -22px;
    z-index: 99999;
}

.rank-hat.rank-hat-offset-left {
    left: -33px;
    z-index: 99999;
}


.nextpage {
    position: absolute;
    left: 433px;
    top: 140px;
    z-index: 3;
}

.lastpage {
    position: absolute;
    top: 17px;
    z-index: 3;
    transform: scaleX(-1) !important;
}

.game-button,
.skillscroll,
.slot-item,
.slot-image,
.selected-character-slot,
.skill-image,
.skillimage,
.character-card,
.character-face,
.skilltooltipimage,
.exchange_chakra_choice,
.minus-button,
.plus-button,
.ok-button,
.ok-buttonendturn,
.cancel-buttonendturn,
.ok-buttonexchange,
.cancel-buttonexchange,
.cancel-button,
.surrenderbutton,
.battle-end-continue,
.battle-bot-check,
.battle-bot-choice-option,
.battle-bot-choice-close,
.private-match-ok,
.private-match-cancel,
.surrender-confirm-ok,
.surrender-confirm-cancel {
    transition:
        transform 90ms ease,
        filter 90ms ease,
        opacity 90ms ease,
        box-shadow 90ms ease;
}

.game-button:active,
.skillscroll:active,
.slot-item:not(.slot-locked):active,
.slot-image:not(.slot-locked):active,
.selected-character-slot:active,
.skillimage:active,
.character-card:active,
.character-face:active,
.skilltooltipimage:active,
.exchange_chakra_choice:active,
.minus-button:active,
.plus-button:active,
.ok-button:not(:disabled):active,
.ok-buttonendturn:not(:disabled):active,
.cancel-buttonendturn:not(:disabled):active,
.ok-buttonexchange:not(:disabled):active,
.cancel-buttonexchange:not(:disabled):active,
.cancel-button:not(:disabled):active,
.surrenderbutton:active,
.battle-end-continue:active,
.battle-bot-check:active,
.battle-bot-choice-option:active,
.battle-bot-choice-close:active,
.private-match-ok:active,
.private-match-cancel:active,
.surrender-confirm-ok:active,
.surrender-confirm-cancel:active {
    transform: translateY(2px) scale(0.97);
    filter: brightness(0.92);
}

.skill-image:active {
    transform: translateY(2px) scale(0.97);
    filter: brightness(0.92);
}

.skill-images > .skill-image:active {
    transform: scaleY(-1) translateY(2px) scale(0.97);
}

.slot-item:not(.slot-locked):active,
.selected-character-slot:active,
.character-card:active,
.skillimage:active,
.skill-image:active,
.skilltooltipimage:active {
    box-shadow: 0 2px 0 rgba(0, 0, 0, 0.28) inset;
}

@keyframes seraphina-heal-plus-rise {
    0% {
        opacity: 0;
        transform: translate(-50%, 14px) scale(0.78);
    }
    18% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -58px) scale(1.14);
    }
}

@keyframes seraphina-buckshot-hit {
    0% {
        opacity: 0;
        transform: scale(0.72);
        filter: brightness(1.8);
    }
    16% {
        opacity: 1;
        transform: scale(1.08);
    }
    100% {
        opacity: 0;
        transform: scale(1);
        filter: brightness(1);
    }
}

@keyframes seraphina-buckshot-pellet-pop {
    0% {
        transform: translate(-50%, -50%) scale(0.35);
    }
    28% {
        transform: translate(-50%, -50%) scale(1.18);
    }
    100% {
        transform: translate(-50%, -50%) scale(1);
    }
}

@keyframes seraphina-flare-flame {
    0% {
        transform: translateY(2px) scale(0.9) rotate(-4deg);
        filter: brightness(0.95);
    }
    100% {
        transform: translateY(-2px) scale(1.12) rotate(5deg);
        filter: brightness(1.25);
    }
}

@keyframes seraphina-flare-glow {
    0% {
        opacity: 0.58;
        transform: scale(0.92);
    }
    100% {
        opacity: 0.92;
        transform: scale(1.18);
    }
}

@keyframes seraphina-flare-smoke {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.62);
    }
    25% {
        opacity: 0.45;
    }
    100% {
        opacity: 0;
        transform: translate(8px, -38px) scale(1.45);
    }
}

.carnage-blood-tendril {
    position: fixed;
    height: 20px;
    z-index: 660;
    pointer-events: none;
    transform-origin: 0 50%;
    filter: drop-shadow(0 0 9px rgba(170, 0, 0, 0.95));
    animation: carnage-tendril-lash 1500ms cubic-bezier(0.12, 0.78, 0.18, 1) both;
}

.carnage-blood-tendril.devour {
    height: 24px;
    animation: carnage-tendril-devour 2500ms ease-in-out both;
}

.carnage-blood-tendril .tendril-core {
    position: absolute;
    inset: 6px 0;
    border-radius: 999px 70% 70% 999px;
    background:
        radial-gradient(circle at 28% 42%, rgba(255,255,255,0.55) 0 3%, transparent 4%),
        linear-gradient(90deg, #2e0000, #9c0000 25%, #ff221c 52%, #710000 82%, #210000);
    box-shadow: inset 0 0 7px rgba(255, 92, 68, 0.55), 0 0 12px rgba(150, 0, 0, 0.82);
}

.carnage-blood-tendril .tendril-vein,
.carnage-blood-tendril .tendril-drip {
    position: absolute;
    background: #2b0000;
    box-shadow: 0 0 5px rgba(255, 0, 0, 0.7);
}

.carnage-blood-tendril .tendril-vein {
    left: 12%;
    top: 4px;
    width: 32%;
    height: 4px;
    border-radius: 999px;
    transform: rotate(-7deg);
}

.carnage-blood-tendril .tendril-vein.two {
    left: 48%;
    top: 13px;
    width: 38%;
    transform: rotate(6deg);
}

.carnage-blood-tendril .tendril-drip {
    top: 13px;
    width: 7px;
    height: 18px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ff281e, #520000);
    animation: carnage-tendril-drip 620ms ease-in-out infinite alternate;
}

.carnage-blood-tendril .tendril-drip.one { left: 38%; }
.carnage-blood-tendril .tendril-drip.two { left: 72%; animation-delay: 210ms; }

.combat-fx-linger {
    isolation: isolate;
}

.combat-fx-linger > :not(.combat-fx-linger-halo) {
    z-index: 1;
}

.combat-fx-linger-halo {
    position: absolute;
    inset: -12px;
    z-index: 0;
    pointer-events: none;
    border-radius: 18px;
    background:
        radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.18), transparent 34%),
        radial-gradient(circle at 50% 52%, rgba(255, 41, 24, 0.24), transparent 64%);
    filter: blur(1px);
    opacity: 0;
    animation: combat-fx-linger-halo var(--combat-fx-linger-duration, 2600ms) ease-out both;
}

.carnage-blood-slash-impact-fx,
.carnage-wide-cut-impact-fx,
.carnage-brain-devour-impact-fx {
    position: absolute;
    inset: -10px;
    z-index: 110;
    pointer-events: none;
    overflow: visible;
}

.carnage-slash-tendril,
.carnage-wide-cut {
    position: absolute;
    left: 4px;
    top: 42px;
    width: 94px;
    height: 14px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #540000, #ff211b, #390000, transparent);
    box-shadow: 0 0 10px rgba(255, 0, 0, 0.92);
    animation: carnage-portrait-slash 780ms cubic-bezier(0.1, 0.78, 0.16, 1) both;
}

.carnage-slash-cut,
.carnage-wide-cut-impact-fx::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 45px;
    width: 92px;
    height: 6px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #190000, #ff3a2d, #190000, transparent);
    transform: rotate(-31deg) scaleX(0);
    animation: carnage-cut-open 1000ms ease-out 420ms both;
}

.carnage-wide-cut.a { top: 24px; transform: rotate(-28deg); }
.carnage-wide-cut.b { top: 47px; transform: rotate(13deg); animation-delay: 90ms; }
.carnage-wide-cut.c { top: 70px; transform: rotate(-8deg); animation-delay: 170ms; }

.carnage-blood-splash,
.carnage-devour-drip {
    position: absolute;
    width: 10px;
    height: 26px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ff3024, #6e0000 74%, #210000);
    box-shadow: 0 0 7px rgba(180, 0, 0, 0.9);
    opacity: 0;
    animation: carnage-blood-splash 980ms ease-in 520ms both;
}

.carnage-blood-splash.a { left: 30px; top: 46px; }
.carnage-blood-splash.b { left: 50px; top: 36px; animation-delay: 610ms; }
.carnage-blood-splash.c { left: 68px; top: 54px; animation-delay: 700ms; }

.carnage-devour-mouth {
    position: absolute;
    left: 22px;
    top: 14px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: radial-gradient(circle, #0b0000 0 28%, #5f0000 29% 45%, rgba(255, 25, 18, 0.4) 46% 68%, transparent 69%);
    box-shadow: 0 0 16px rgba(255, 0, 0, 0.86), inset 0 0 10px #000;
    animation: carnage-devour-mouth 620ms ease-in-out infinite alternate;
}

.carnage-devour-pulse {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 24px;
    height: 24px;
    border: 3px solid rgba(255, 34, 28, 0.9);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: carnage-devour-pulse 850ms ease-out infinite;
}

.carnage-devour-pulse.b { animation-delay: 330ms; }
.carnage-devour-drip.a { left: 39px; top: 54px; }
.carnage-devour-drip.b { left: 55px; top: 50px; animation-delay: 690ms; }

.flash-red-speed-aura,
.flash-lightning-rush-hit-fx,
.flash-infinite-punch-impact-fx,
.flash-speed-steal-cast-fx {
    position: absolute;
    inset: -12px;
    z-index: 112;
    pointer-events: none;
    overflow: visible;
}

.flash-red-speed-aura span,
.flash-speed-steal-cast-fx span,
.flash-red-bolt {
    position: absolute;
    height: 5px;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #fff1ed, #ff1712, transparent);
    box-shadow: 0 0 8px rgba(255, 20, 16, 0.95);
    animation: flash-red-lightning-swipe 650ms ease-out both;
}

.flash-red-speed-aura span:nth-child(1),
.flash-speed-steal-cast-fx span:nth-child(1) { left: 0; top: 20px; width: 95px; }
.flash-red-speed-aura span:nth-child(2),
.flash-speed-steal-cast-fx span:nth-child(2) { left: 10px; top: 47px; width: 85px; animation-delay: 90ms; }
.flash-red-speed-aura span:nth-child(3),
.flash-speed-steal-cast-fx span:nth-child(3) { left: -4px; top: 73px; width: 100px; animation-delay: 180ms; }

.flash-red-bolt.a { left: -2px; top: 20px; width: 96px; transform: rotate(-18deg); }
.flash-red-bolt.b { left: -8px; top: 58px; width: 104px; transform: rotate(22deg); animation-delay: 120ms; }
.flash-red-bolt.c { left: 4px; top: 42px; width: 92px; transform: rotate(-42deg); animation-delay: 240ms; }

.flash-fist,
.flash-impact-fist {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 35px;
    height: 25px;
    border-radius: 55% 42% 45% 55%;
    background:
        radial-gradient(circle at 70% 42%, #fff 0 8%, transparent 9%),
        linear-gradient(90deg, #fff3e8, #ff3024 38%, #8c0000);
    box-shadow: 0 0 12px rgba(255, 26, 18, 0.95);
    opacity: 0;
    animation: flash-lightning-fist-hit 930ms ease-out both;
}

.flash-fist.hit-one { --fist-x: -95px; --fist-y: -34px; --fist-rot: 12deg; animation-delay: 0ms; }
.flash-fist.hit-two { --fist-x: 60px; --fist-y: -28px; --fist-rot: 166deg; animation-delay: 160ms; }
.flash-fist.hit-three { --fist-x: -82px; --fist-y: 24px; --fist-rot: -10deg; animation-delay: 320ms; }
.flash-fist.hit-four { --fist-x: 70px; --fist-y: 28px; --fist-rot: 185deg; animation-delay: 480ms; }

.flash-infinite-run-screen-fx {
    position: fixed;
    inset: 0;
    z-index: 640;
    pointer-events: none;
    overflow: hidden;
    background: radial-gradient(circle at 50% 50%, rgba(255, 30, 22, 0.12), transparent 38%);
    animation: flash-screen-red-pulse 1600ms ease-out both;
}

.flash-runner,
.flash-run-trail {
    position: absolute;
    left: 50%;
    top: 50%;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent, #ff241b, #fff, #ff241b, transparent);
    box-shadow: 0 0 18px rgba(255, 23, 17, 0.95);
}

.flash-runner {
    width: 76px;
    height: 8px;
    animation: flash-run-around-screen 1200ms cubic-bezier(0.14, 0.82, 0.18, 1) both;
}

.flash-run-trail {
    width: 160px;
    height: 5px;
    opacity: 0.72;
    animation: flash-run-trail 900ms ease-out both;
}

.flash-run-trail.b { animation-delay: 130ms; }
.flash-run-trail.c { animation-delay: 260ms; }

.flash-impact-fist {
    width: 54px;
    height: 38px;
    animation: flash-infinite-punch-crash 900ms cubic-bezier(0.08, 0.78, 0.16, 1) both;
}

.flash-impact-ring {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 28px;
    height: 28px;
    border: 4px solid rgba(255, 32, 24, 0.95);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 18px rgba(255, 32, 24, 0.95), inset 0 0 14px rgba(255,255,255,0.72);
    animation: flash-impact-ring-burst 850ms ease-out 180ms both;
}

.flash-speed-steal-pressure-fx {
    position: fixed;
    left: 50%;
    top: 50%;
    z-index: 720;
    width: 220px;
    height: 120px;
    transform: translate(-50%, -50%);
    display: grid;
    place-items: center;
    pointer-events: none;
    background: radial-gradient(circle, rgba(255,255,255,0.92) 0 8%, rgba(255,20,16,0.78) 9% 48%, rgba(40,0,0,0.94) 49% 100%);
    border: 4px solid #fff1e8;
    box-shadow: 0 0 22px rgba(255, 20, 16, 0.98), 0 0 60px rgba(255, 0, 0, 0.72);
    animation: speed-steal-screen-alarm 260ms steps(2, end) infinite;
}

.speed-steal-warning {
    color: #fff;
    font: 900 34px 'Libre Franklin', Arial, sans-serif;
    text-shadow: 0 0 8px #ff120c, 3px 3px 0 #230000;
}

.speed-steal-subtext {
    position: absolute;
    bottom: 18px;
    color: #ffe65a;
    font: 900 15px 'Libre Franklin', Arial, sans-serif;
    text-shadow: 2px 2px 0 #000;
}

@keyframes smartgun-lock-scan {
    0%, 100% { opacity: 0.72; transform: scale(0.94); }
    50% { opacity: 1; transform: scale(1.04); }
}

@keyframes smartgun-lock-cast-ring {
    0% { opacity: 0; transform: scale(1.45) rotate(-18deg); }
    45% { opacity: 1; transform: scale(0.86) rotate(0deg); }
    100% { opacity: 0; transform: scale(1.05) rotate(22deg); }
}

@keyframes predator-bleeder-spear-flight {
    0% { opacity: 0; transform: translate(0, 0) rotate(-8deg) scale(0.7); }
    15% { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--spear-dx), var(--spear-dy)) rotate(21deg) scale(1); }
}

@keyframes bleeder-blood-droplets {
    0% { opacity: 0.55; transform: translateY(-2px) scale(0.96); }
    45% { opacity: 1; transform: translateY(2px) scale(1.02); }
    100% { opacity: 0.72; transform: translateY(6px) scale(0.98); }
}

@keyframes carnage-tendril-lash {
    0% { opacity: 0; clip-path: inset(0 100% 0 0); }
    18% { opacity: 1; }
    58% { clip-path: inset(0 0 0 0); }
    100% { opacity: 0; clip-path: inset(0 0 0 100%); }
}

@keyframes carnage-tendril-devour {
    0% { opacity: 0; clip-path: inset(0 100% 0 0); filter: brightness(1); }
    20%, 78% { opacity: 1; clip-path: inset(0 0 0 0); filter: brightness(1.35); }
    100% { opacity: 0; clip-path: inset(0 0 0 100%); }
}

@keyframes carnage-tendril-drip {
    from { transform: translateY(0) scaleY(0.75); opacity: 0.65; }
    to { transform: translateY(8px) scaleY(1.18); opacity: 1; }
}

@keyframes carnage-portrait-slash {
    0% { opacity: 0; transform: translate(-34px, -42px) rotate(-52deg) scaleX(0.25); }
    35% { opacity: 1; }
    100% { opacity: 0; transform: translate(26px, 36px) rotate(-28deg) scaleX(1.18); }
}

@keyframes carnage-cut-open {
    0% { opacity: 0; transform: rotate(-31deg) scaleX(0); }
    40% { opacity: 1; }
    100% { opacity: 0.15; transform: rotate(-31deg) scaleX(1); }
}

@keyframes carnage-blood-splash {
    0% { opacity: 0; transform: translateY(-8px) scaleY(0.4); }
    35% { opacity: 1; }
    100% { opacity: 0; transform: translateY(24px) scaleY(1.3); }
}

@keyframes carnage-devour-mouth {
    from { transform: scale(0.86) rotate(-6deg); filter: brightness(0.9); }
    to { transform: scale(1.12) rotate(5deg); filter: brightness(1.45); }
}

@keyframes carnage-devour-pulse {
    0% { opacity: 0.9; transform: translate(-50%, -50%) scale(0.45); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.3); }
}

@keyframes combat-fx-linger-halo {
    0% { opacity: 0; transform: scale(0.82); }
    18% { opacity: 0.74; transform: scale(1); }
    62% { opacity: 0.42; transform: scale(1.07); }
    100% { opacity: 0; transform: scale(1.18); }
}

@keyframes flash-red-lightning-swipe {
    0% { opacity: 0; transform: translateX(-52px) skewX(-22deg); }
    35% { opacity: 1; }
    100% { opacity: 0; transform: translateX(42px) skewX(-22deg); }
}

@keyframes flash-lightning-fist-hit {
    0% { opacity: 0; transform: translate(var(--fist-x, 0), var(--fist-y, 0)) rotate(var(--fist-rot, 0deg)) scale(0.35); }
    36% { opacity: 1; transform: translate(calc(var(--fist-x, 0) * 0.22), calc(var(--fist-y, 0) * 0.22)) rotate(var(--fist-rot, 0deg)) scale(1.18); }
    100% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--fist-rot, 0deg)) scale(0.55); }
}

@keyframes flash-screen-red-pulse {
    0%, 100% { opacity: 0; }
    18%, 70% { opacity: 1; }
}

@keyframes flash-run-around-screen {
    0% { transform: translate(-44vw, -42vh) rotate(0deg); }
    28% { transform: translate(38vw, -34vh) rotate(18deg); }
    56% { transform: translate(42vw, 34vh) rotate(118deg); }
    82% { transform: translate(-36vw, 36vh) rotate(204deg); }
    100% { transform: translate(0, 0) rotate(360deg); opacity: 0; }
}

@keyframes flash-run-trail {
    0% { opacity: 0; transform: translate(-50%, -50%) rotate(0deg) scaleX(0.4); }
    30% { opacity: 0.8; }
    100% { opacity: 0; transform: translate(-50%, -50%) rotate(360deg) scaleX(2.2); }
}

@keyframes flash-infinite-punch-crash {
    0% { opacity: 0; transform: translate(-140px, -90px) rotate(18deg) scale(0.4); }
    48% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -50%) rotate(18deg) scale(1.35); }
}

@keyframes flash-impact-ring-burst {
    0% { opacity: 1; transform: translate(-50%, -50%) scale(0.3); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.7); }
}

@keyframes speed-steal-screen-alarm {
    0% { filter: brightness(1.4); transform: translate(-50%, -50%) scale(1.03); }
    100% { filter: brightness(0.75); transform: translate(-50%, -50%) scale(0.97); }
}

@keyframes flash-phase-face-blur {
    0%, 100% { transform: translateX(-2px); opacity: 0.5; filter: saturate(1.4) contrast(1.15) blur(1.2px); }
    50% { transform: translateX(3px); opacity: 0.78; filter: saturate(1.7) contrast(1.28) blur(0.25px); }
}

@keyframes flash-phase-line-sweep {
    0% { opacity: 0; transform: translateX(-34px) skewX(-24deg); }
    45% { opacity: 1; }
    100% { opacity: 0; transform: translateX(38px) skewX(-24deg); }
}

@keyframes flash-phase-afterimage {
    0%, 100% { transform: translateX(-8px); opacity: 0.18; }
    50% { transform: translateX(8px); opacity: 0.46; }
}

@keyframes scorpion-venom-drop-pulse {
    0%, 100% { transform: translateX(-50%) rotate(45deg) scale(0.94); filter: brightness(0.9); }
    50% { transform: translateX(-50%) rotate(45deg) scale(1.1); filter: brightness(1.25); }
}

@keyframes scorpion-venom-drip {
    0% { opacity: 0; transform: translateY(-4px) scaleY(0.35); }
    30% { opacity: 1; }
    100% { opacity: 0; transform: translateY(18px) scaleY(1.22); }
}

@keyframes scorpion-tail-sting-arc {
    0% { opacity: 0; transform: rotate(-80deg) scale(0.6); }
    46% { opacity: 1; transform: rotate(16deg) scale(1.04); }
    100% { opacity: 0; transform: rotate(4deg) scale(0.92); }
}

@keyframes scorpion-tail-stinger-hit {
    0% { opacity: 0; transform: translate(-48px, -32px) rotate(-62deg) scale(0.45); }
    42% { opacity: 1; transform: translate(-7px, -3px) rotate(-8deg) scale(1.1); }
    100% { opacity: 0; transform: translate(4px, 0) rotate(8deg) scale(0.74); }
}

@keyframes scorpion-sting-splash {
    0% { opacity: 0; transform: translateY(-5px) scaleY(0.25); }
    38% { opacity: 1; }
    100% { opacity: 0; transform: translateY(26px) scaleY(1.35); }
}

@keyframes scorpion-tail-ready {
    0% { opacity: 0; transform: rotate(-70deg) scale(0.58); }
    55% { opacity: 1; transform: rotate(8deg) scale(1); }
    100% { opacity: 0; transform: rotate(20deg) scale(1.08); }
}

@keyframes scorpion-tail-laser-fire {
    0% { opacity: 0; clip-path: inset(0 100% 0 0); }
    20%, 70% { opacity: 1; }
    100% { opacity: 0; clip-path: inset(0 0 0 100%); }
}

@keyframes scorpion-tail-laser-pulse {
    0% { transform: translateX(0); opacity: 0; }
    35% { opacity: 1; }
    100% { transform: translateX(220px); opacity: 0; }
}

@keyframes scorpion-tail-laser-impact {
    0% { opacity: 0; scale: 0.3 1; }
    35% { opacity: 1; }
    100% { opacity: 0; scale: 1.15 1; }
}

@media (prefers-reduced-motion: reduce) {
    .game-button,
    .skillscroll,
    .slot-item,
    .slot-image,
    .selected-character-slot,
    .skill-image,
    .skillimage,
    .character-card,
    .character-face,
    .skilltooltipimage,
    .exchange_chakra_choice,
    .minus-button,
    .plus-button,
    .ok-button,
    .ok-buttonendturn,
    .cancel-buttonendturn,
    .ok-buttonexchange,
    .cancel-buttonexchange,
    .cancel-button,
    .surrenderbutton,
    .battle-end-continue,
    .battle-bot-check,
    .battle-bot-choice-option,
    .battle-bot-choice-close,
    .private-match-ok,
    .private-match-cancel,
    .surrender-confirm-ok,
    .surrender-confirm-cancel {
        transition: none;
    }

    .skilltooltipimage.status-icon-turn-pop,
    .skilltooltipimage.passive-trigger-flash,
    .goblin-bomb-marker,
    .goblin-bomb-marker.fresh,
    .goblin-bomb-lob,
    .goblin-bomb-spark,
    .character-card.has-lantern-aura::before,
    .character-card.has-lantern-aura::after,
    .lantern-trigger-burst,
    .lantern-trigger-burst.lantern-grey-smoke span,
    .lantern-energy-link,
    .hp-delta-popup,
    .combat-impact-burst,
    .status-apply-burst,
    .pixel-impact-fx,
    .pixel-portal-fx,
    .pixel-status-fx,
    .character-face.damage-impact,
    .character-face.heal-impact,
    .character-face.skill-caster-surge,
    .character-card.low-hp-danger .character-face,
    .character-card.death-crack .character-face,
    .character-card.death-crack::after,
    .target-lock-marker,
    .skill-cast-projectile,
    .skillimage.skill-cast-pulse,
    .skillimage.skill-blocked-shake,
    .skill-cooldown-badge.cooldown-tick-pop,
    .player-characters.turn-start-sweep::after,
    .enemy-characters.turn-start-sweep::after,
    .skillpreview.skillpreview-added,
    .seraphina-med-plus-overlay span,
    .seraphina-buckshot-impact-fx,
    .seraphina-buckshot-impact-fx .seraphina-buckshot-pellet,
    .seraphina-road-flare .flare-flame,
    .seraphina-road-flare .flare-glow,
    .seraphina-road-flare .flare-smoke,
    .smartgun-lock-cast-fx,
    .character-card.smartgun-lock-fx::after,
    .predator-bleeder-spears::after,
    .predator-bleeder-spear-projectile,
    .carnage-blood-tendril,
    .carnage-blood-slash-impact-fx,
    .carnage-wide-cut-impact-fx,
    .carnage-brain-devour-impact-fx,
    .flash-red-speed-aura,
    .flash-lightning-rush-hit-fx,
    .flash-infinite-run-screen-fx,
    .flash-infinite-punch-impact-fx,
    .flash-speed-steal-cast-fx,
    .flash-speed-steal-pressure-fx,
    .flash-phase-shift-fx .character-face,
    .flash-phase-speed-lines,
    .scorpion-venom-drop,
    .scorpion-poison-drops,
    .scorpion-tail-sting-fx,
    .scorpion-tail-laser-beam,
    .scorpion-tail-laser-impact-fx,
    .scorpion-tail-ready-fx,
    .xenomorph-facehugger-overlay,
    .venom-ally-symbiosis-marker,
    .venom-bite-crunch-fx,
    .venom-symbiote-tendril,
    .venom-tendril-latch-fx,
    .venom-web-cocoon-fx,
    .ghost-rider-skull-surge,
    .ghost-rider-hellfire-breath,
    .ghost-rider-hellfire-breath-move,
    .ghost-rider-hellfire-aura,
    .ghost-rider-chainsaw-slice,
    .negan-iron-overlay,
    .negan-iron-glow,
    .negan-iron-steam,
    .negan-iron-smoke,
    .negan-iron-slam-fx,
    .negan-iron-rip-away-fx,
    .parasite-drain-tendril,
    .parasite-life-leech-enemy-fx,
    .parasite-life-leech-ally-fx,
    .parasite-metabolic-collapse-fx,
    .parasite-metabolic-screen-flash,
    .parasite-energy-transfer-fx,
    .parasite-host-mutation-cast-fx,
    .parasite-overload-screen-fx,
    .parasite-host-mutation-marker,
    .parasite-overload-marker,
    .parasite-absorption-marker,
    .pokemon-evolution-aura,
    .pokemon-evolution-aura *,
    .pokemon-solar-beam-charge-fx,
    .pokemon-solar-beam-charge-fx *,
    .pokemon-solar-beam-travel,
    .pokemon-solar-beam-travel *,
    .pokemon-solar-beam-impact-fx,
    .pokemon-solar-beam-impact-fx *,
    .pokemon-thunder-impact-fx,
    .pokemon-thunder-impact-fx *,
    .pokemon-flamethrower-stream,
    .pokemon-flamethrower-stream *,
    .pokemon-flamethrower-impact-fx,
    .pokemon-flamethrower-impact-fx *,
    .pokemon-water-gun-stream,
    .pokemon-water-gun-stream *,
    .pokemon-water-gun-impact-fx,
    .pokemon-water-gun-impact-fx *,
    .pokemon-leech-seed-vine,
    .pokemon-leech-seed-vine *,
    .pokemon-leech-seed-impact-fx,
    .pokemon-leech-seed-impact-fx *,
    .pokemon-supersonic-fx,
    .pokemon-supersonic-fx *,
    .pokemon-future-sight-fx,
    .pokemon-future-sight-fx *,
    .pokemon-x-cutter-fx,
    .pokemon-x-cutter-fx *,
    .pokemon-center-healing-fx,
    .pokemon-center-healing-fx *,
    .pokemon-smog-fx,
    .pokemon-smog-fx *,
    .pokemon-koffing-team-fog-fx,
    .pokemon-koffing-team-fog-fx *,
    .pokemon-koffing-screen-explosion-fx,
    .pokemon-koffing-screen-explosion-fx *,
    .pokemon-ekans-poison-fang-fx,
    .pokemon-ekans-poison-fang-fx *,
    .pokemon-ekans-toxic-stream,
    .pokemon-ekans-toxic-stream *,
    .pokemon-ekans-toxic-impact-fx,
    .pokemon-ekans-toxic-impact-fx *,
    .pokemon-ekans-toxic-status,
    .pokemon-ekans-toxic-status *,
    .pokemon-ekans-shed-skin-fx,
    .pokemon-ekans-shed-skin-fx *,
    .pokemon-ekans-crunch-fx,
    .pokemon-ekans-crunch-fx *,
    .pokemon-machop-brick-break-fx,
    .pokemon-machop-brick-break-fx *,
    .pokemon-machop-counter-fx,
    .pokemon-machop-counter-fx *,
    .pokemon-machop-bulk-up-cast-fx,
    .pokemon-machop-bulk-up-cast-fx *,
    .pokemon-machop-bulk-up-status,
    .pokemon-machop-bulk-up-status *,
    .pokemon-machop-taunt-fx,
    .pokemon-machop-taunt-fx *,
    .pokemon-psybeam-stream,
    .pokemon-psybeam-stream *,
    .pokemon-psybeam-impact-fx,
    .pokemon-psybeam-impact-fx *,
    .pokemon-powder-stream,
    .pokemon-powder-stream *,
    .pokemon-powder-impact-fx,
    .pokemon-powder-impact-fx *,
    .pokemon-whirlwind-fx,
    .pokemon-whirlwind-fx *,
    .pokemon-trainer-ball-projectile,
    .pokemon-trainer-ball-projectile *,
    .pokemon-trainer-ball-impact-fx,
    .pokemon-trainer-ball-impact-fx *,
    .pokemon-x-stats-fx,
    .pokemon-x-stats-fx *,
    .pokemon-rare-candy-fx,
    .pokemon-rare-candy-fx *,
    .pokemon-psychic-stream,
    .pokemon-psychic-stream *,
    .pokemon-psychic-impact-fx,
    .pokemon-psychic-impact-fx *,
    .pokemon-calm-mind-fx,
    .pokemon-calm-mind-fx *,
    .pokemon-teleport-fx,
    .pokemon-teleport-fx *,
    .pokemon-leech-life-stream,
    .pokemon-leech-life-stream *,
    .pokemon-leech-life-impact-fx,
    .pokemon-leech-life-impact-fx *,
    .pokemon-bite-fx,
    .pokemon-bite-fx * {
        animation: none;
    }
}

@media (max-width: 768px) {
    .ghost-rider-chainsaw-slice .chainsaw-blade { width: 100px; height: 14px; }
}

/* Ghost Rider Special Death Animation */
.ghost-rider-death-fire {
    position: absolute;
    left: 0;
    top: 0;
    width: 75px;
    height: 75px;
    z-index: 100;
    pointer-events: none;
    perspective: 500px;
    contain: layout paint;
}

.ghost-rider-death-portrait-wrap {
    position: absolute;
    left: 0;
    top: 0;
    width: 75px;
    height: 75px;
    animation: ghost-rider-portrait-lift 4200ms ease-in-out both;
}

.ghost-rider-death-portrait {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    border: 2px solid #ff4d00;
    box-shadow: 0 0 15px #ff4d00, 0 0 30px #ff0000;
}

.ghost-rider-death-slice-x {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 5;
}

.ghost-rider-death-slice-x::before,
.ghost-rider-death-slice-x::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -20%;
    width: 140%;
    height: 6px;
    background: #fff;
    box-shadow: 0 0 10px #ff4d00, 0 0 20px #ff0000;
    opacity: 0;
    border-radius: 3px;
}

.ghost-rider-death-slice-x::before {
    transform: translateY(-50%) rotate(45deg) scaleX(0);
    animation: ghost-rider-slice-x 350ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    animation-delay: 850ms;
}

.ghost-rider-death-slice-x::after {
    transform: translateY(-50%) rotate(-45deg) scaleX(0);
    animation: ghost-rider-slice-x 350ms cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    animation-delay: 1150ms;
}

.ghost-rider-death-fire-fx {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, #fff 0%, #ffca00 30%, #ff4d00 60%, transparent 80%);
    mix-blend-mode: screen;
    opacity: 0;
    z-index: 10;
    animation: ghost-rider-death-fire-burst 3000ms ease-out both;
    animation-delay: 1400ms;
}

.ghost-rider-death-ash {
    position: absolute;
    inset: 0;
    z-index: 15;
}

.ghost-rider-death-ash span {
    position: absolute;
    width: 5px;
    height: 5px;
    background: #111;
    border-radius: 50%;
    opacity: 0;
    box-shadow: 0 0 3px #000;
    animation: ghost-rider-ash-scatter 2500ms ease-out both;
    animation-delay: 1800ms;
}

.ghost-rider-death-ash span:nth-child(1) { left: 20%; top: 30%; --tx: -20px; --ty: -50px; }
.ghost-rider-death-ash span:nth-child(2) { left: 70%; top: 20%; --tx: 30px; --ty: -60px; }
.ghost-rider-death-ash span:nth-child(3) { left: 40%; top: 50%; --tx: -10px; --ty: -40px; }
.ghost-rider-death-ash span:nth-child(4) { left: 80%; top: 60%; --tx: 40px; --ty: -30px; }
.ghost-rider-death-ash span:nth-child(5) { left: 10%; top: 80%; --tx: -30px; --ty: -20px; }

@keyframes ghost-rider-portrait-lift {
    0% { transform: translateY(0) scale(1); filter: brightness(1); }
    15% { transform: translateY(-55px) scale(1.15); filter: brightness(1.2); }
    30% { transform: translateY(-50px) scale(1.15); }
    70% { transform: translateY(-50px) scale(1.15); opacity: 1; }
    85% { transform: translateY(-50px) scale(1.15); opacity: 1; filter: brightness(2) contrast(1.5); }
    100% { transform: translateY(-80px) scale(0.4); opacity: 0; }
}

@keyframes ghost-rider-slice-x {
    0% { opacity: 0; transform: translateY(-50%) rotate(var(--rot, 45deg)) scaleX(0); }
    30% { opacity: 1; }
    100% { opacity: 1; transform: translateY(-50%) rotate(var(--rot, 45deg)) scaleX(1); }
}

.ghost-rider-death-slice-x::before { --rot: 45deg; }
.ghost-rider-death-slice-x::after { --rot: -45deg; }

@keyframes ghost-rider-death-fire-burst {
    0% { opacity: 0; transform: scale(0.3); filter: blur(10px); }
    20% { opacity: 1; transform: scale(1.3); filter: blur(2px); }
    100% { opacity: 0; transform: scale(2.5); filter: blur(20px); }
}

@keyframes ghost-rider-ash-scatter {
    0% { opacity: 0; transform: translate(0, 0) rotate(0); }
    20% { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--tx), var(--ty)) rotate(360deg) scale(0.1); }
}

.death-kill-label.ghost-rider-purified {
    color: #ffca00;
    font-size: 32px;
    text-shadow: 2px 2px 0 #000, 0 0 15px #ff4d00, 0 0 25px #ff0000;
    animation: ghost-rider-purified-label 4000ms ease-out both;
}

@keyframes ghost-rider-purified-label {
    0% { opacity: 0; transform: translateX(-50%) scale(0.3) translateY(20px); }
    15% { opacity: 1; transform: translateX(-50%) scale(1.4) translateY(0); }
    85% { opacity: 1; transform: translateX(-50%) scale(1) translateY(0); }
    100% { opacity: 0; transform: translateX(-50%) scale(0.7) translateY(-30px); }
}

/* Predator Hunted Animation */
.predator-hunted-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 75px;
    height: 75px;
    z-index: 110;
    pointer-events: none;
    overflow: hidden;
    contain: layout paint;
}

.predator-hunted-half {
    position: absolute;
    left: 0;
    width: 100%;
    height: 50%;
    background-size: 100% 200%;
    background-repeat: no-repeat;
    transition: none;
}

.predator-hunted-half.top {
    top: 0;
    background-position: top;
    animation: predator-rip-top 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation-delay: 0.4s;
}

.predator-hunted-half.bottom {
    bottom: 0;
    background-position: bottom;
    animation: predator-rip-bottom 1.2s ease-out both;
    animation-delay: 0.4s;
}

.predator-hunted-active .character-face {
    opacity: 0 !important;
}

@keyframes predator-rip-top {
    0% { transform: translateY(0); opacity: 1; }
    20% { transform: translateY(-5px); opacity: 1; }
    40% { transform: translateY(-15px) rotate(-2deg); opacity: 1; }
    100% { transform: translateY(-120px) rotate(-10deg) scale(0.8); opacity: 0; filter: blur(8px) brightness(2); }
}

@keyframes predator-rip-bottom {
    0% { transform: translateY(0); opacity: 1; }
    30% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(10px); opacity: 0.5; filter: grayscale(1); }
}

.predator-gauntlet-blades {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 120;
}

.predator-gauntlet-blades span {
    width: 4px;
    height: 60px;
    background: linear-gradient(to bottom, #e0e0e0, #888, #333);
    border-radius: 2px;
    box-shadow: 0 0 10px rgba(0, 255, 255, 0.5), inset 0 0 2px #fff;
    opacity: 0;
    animation: predator-blade-poke 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}

.predator-gauntlet-blades span:nth-child(2) { animation-delay: 0.05s; height: 70px; }
.predator-gauntlet-blades span:nth-child(3) { animation-delay: 0.1s; }

@keyframes predator-blade-poke {
    0% { transform: translateY(100%); opacity: 0; }
    15% { transform: translateY(10%); opacity: 1; }
    30% { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(-250%); opacity: 1; }
}

.predator-hunted-callout {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #ff1111;
    font-family: 'Courier New', Courier, monospace;
    font-size: 26px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 6px;
    text-shadow: 0 0 20px rgba(255, 0, 0, 1), 0 0 5px #000;
    white-space: nowrap;
    opacity: 0;
    z-index: 130;
    animation: predator-hunted-text-glow 2.5s ease-out both;
    animation-delay: 0.6s;
}

@keyframes predator-hunted-text-glow {
    0% { transform: translate(-50%, -50%) scale(0.5); opacity: 0; filter: blur(15px); }
    15% { transform: translate(-50%, -50%) scale(1.3); opacity: 1; filter: blur(0); }
    30% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    85% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; filter: blur(10px); }
}

/* Lasered Kill Animation */
.lasered-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 75px;
    height: 75px;
    z-index: 110;
    pointer-events: none;
    overflow: hidden;
    contain: layout paint;
}

.lasered-half {
    position: absolute;
    left: 0;
    width: 100%;
    height: 50%;
    background-size: 100% 200%;
    background-repeat: no-repeat;
    transition: none;
}

.lasered-half.top {
    top: 0;
    background-position: top;
    animation: lasered-rip-top 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation-delay: 0.5s;
}

.lasered-half.bottom {
    bottom: 0;
    background-position: bottom;
    animation: lasered-rip-bottom 1.2s ease-out both;
    animation-delay: 0.5s;
}

.lasered-active .character-face {
    opacity: 0 !important;
}

@keyframes lasered-rip-top {
    0% { transform: translateY(0) rotate(0); opacity: 1; }
    20% { transform: translateY(-10px) rotate(2deg); opacity: 1; }
    100% { transform: translateY(-150px) rotate(15deg) scale(0.5); opacity: 0; filter: contrast(2) brightness(3) blur(10px); }
}

@keyframes lasered-rip-bottom {
    0% { transform: translateY(0); opacity: 1; }
    40% { transform: translateY(5px); opacity: 1; }
    100% { transform: translateY(20px); opacity: 0; filter: grayscale(1) brightness(0.5); }
}

.laser-beams {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    z-index: 125;
}

.laser-beam {
    position: absolute;
    width: 150%;
    height: 6px;
    background: #fff;
    opacity: 0;
    animation: laser-cut 0.6s ease-in-out both;
}

.laser-beam.red {
    box-shadow: 0 0 15px #ff0000, 0 0 30px #ff0000, 0 0 5px #ff0000 inset;
}

.laser-beam.blue {
    box-shadow: 0 0 15px #66d9ff, 0 0 30px #1f6fff, 0 0 5px #ffffff inset;
}

.laser-beam.yellow {
    box-shadow: 0 0 15px #ffcc00, 0 0 30px #ffcc00, 0 0 5px #ffcc00 inset;
}

.laser-beam.one {
    top: 45%;
    left: -25%;
    --laser-rotation: 5deg;
    transform: rotate(var(--laser-rotation));
}

.laser-beam.two {
    top: 55%;
    left: -25%;
    --laser-rotation: -3deg;
    transform: rotate(var(--laser-rotation));
    animation-delay: 0.1s;
}

@keyframes laser-cut {
    0% { transform: translateX(-100%) rotate(var(--laser-rotation, 0deg)); opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { transform: translateX(100%) rotate(var(--laser-rotation, 0deg)); opacity: 0; }
}

.lasered-callout {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    font-family: 'Arial Black', Gadget, sans-serif;
    font-size: 32px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-shadow: 0 0 10px #ff0000, 0 0 20px #ff0000, 0 0 40px #ff0000;
    white-space: nowrap;
    opacity: 0;
    z-index: 140;
    animation: lasered-text-pop 2s ease-out both;
    animation-delay: 0.7s;
}

@keyframes lasered-text-pop {
    0% { transform: translate(-50%, -50%) scale(2); opacity: 0; filter: brightness(5); }
    10% { transform: translate(-50%, -50%) scale(1); opacity: 1; filter: brightness(1); }
    80% { transform: translate(-50%, -50%) scale(1.1); opacity: 1; }
    100% { transform: translate(-50%, -50%) scale(1.5); opacity: 0; filter: blur(10px); }
}

.lightsaber-portrait-slash-fx,
.sidious-lightning-fx,
.boba-water-bounty-fx,
.boba-wanted-marker,
.sabered-overlay,
.special-kill-overlay {
    position: absolute;
    left: 0;
    top: 0;
    width: 75px;
    height: 75px;
    pointer-events: none;
    contain: layout paint;
}

.lightsaber-portrait-slash-fx,
.sidious-lightning-fx,
.boba-water-bounty-fx,
.boba-wanted-marker {
    z-index: 88;
}

.sabered-overlay,
.special-kill-overlay {
    z-index: 120;
    overflow: visible;
}

.lightsaber-core,
.lightsaber-glow {
    position: absolute;
    left: -18%;
    top: 50%;
    width: 136%;
    height: 5px;
    border-radius: 999px;
    transform-origin: center;
    animation: lightsaber-slash-sweep 760ms cubic-bezier(0.16, 0.8, 0.2, 1) both;
}

.lightsaber-core {
    background: #fff;
    z-index: 2;
}

.lightsaber-glow {
    height: 12px;
    margin-top: -3px;
    opacity: 0.9;
    filter: blur(3px);
}

.lightsaber-portrait-slash-fx.blue .lightsaber-core { box-shadow: 0 0 8px #fff, 0 0 16px #38a7ff; }
.lightsaber-portrait-slash-fx.blue .lightsaber-glow { background: rgba(38, 144, 255, 0.78); }
.lightsaber-portrait-slash-fx.red .lightsaber-core { box-shadow: 0 0 8px #fff, 0 0 16px #ff2626; }
.lightsaber-portrait-slash-fx.red .lightsaber-glow { background: rgba(255, 24, 24, 0.78); }
.lightsaber-portrait-slash-fx.vertical .lightsaber-core,
.lightsaber-portrait-slash-fx.vertical .lightsaber-glow { transform: rotate(90deg) scaleX(0); }

@keyframes lightsaber-slash-sweep {
    0% { opacity: 0; transform: translateX(-48px) rotate(var(--saber-rot, 0deg)) scaleX(0.2); }
    20% { opacity: 1; }
    70% { opacity: 1; transform: translateX(0) rotate(var(--saber-rot, 0deg)) scaleX(1); }
    100% { opacity: 0; transform: translateX(48px) rotate(var(--saber-rot, 0deg)) scaleX(0.35); }
}

.lightsaber-portrait-slash-fx.vertical { --saber-rot: 90deg; }

.sidious-lightning-fx {
    overflow: visible;
    color: #42b8ff;
    filter: drop-shadow(0 0 6px currentColor);
}

.sidious-lightning-fx.red {
    color: #ff2a3d;
}

.sidious-lightning-bolt {
    position: absolute;
    left: -10px;
    top: 8px;
    width: 96px;
    height: 58px;
    opacity: 0;
    background:
        linear-gradient(112deg, transparent 0 20%, currentColor 21% 24%, transparent 25% 36%, currentColor 37% 41%, transparent 42% 55%, currentColor 56% 60%, transparent 61%),
        linear-gradient(72deg, transparent 0 33%, #fff 34% 36%, transparent 37% 48%, #fff 49% 51%, transparent 52%);
    clip-path: polygon(0 43%, 25% 36%, 17% 53%, 47% 38%, 40% 62%, 80% 22%, 67% 50%, 100% 43%, 70% 62%, 78% 42%, 44% 75%, 50% 52%, 18% 72%, 29% 50%);
    animation: sidious-lightning-strike 900ms ease-out both;
}

.sidious-lightning-bolt.two {
    top: 2px;
    transform: rotate(-14deg);
    animation-delay: 90ms;
}

.sidious-lightning-bolt.three {
    top: 17px;
    transform: rotate(13deg);
    animation-delay: 160ms;
}

.sidious-lightning-flash {
    position: absolute;
    inset: -5px;
    border-radius: 8px;
    background: radial-gradient(circle, currentColor 0 18%, transparent 62%);
    opacity: 0;
    animation: sidious-lightning-flash 900ms ease-out both;
}

@keyframes sidious-lightning-strike {
    0% { opacity: 0; transform: translateX(-18px) scaleX(0.2); }
    18%, 62% { opacity: 1; }
    100% { opacity: 0; transform: translateX(18px) scaleX(1.1); }
}

@keyframes sidious-lightning-flash {
    0%, 100% { opacity: 0; transform: scale(0.75); }
    24%, 54% { opacity: 0.34; transform: scale(1.12); }
}

.boba-water-ring {
    position: absolute;
    inset: 9px;
    border: 2px solid rgba(81, 219, 255, 0.95);
    border-radius: 50%;
    box-shadow: 0 0 10px #31c9ff, inset 0 0 12px rgba(49, 201, 255, 0.45);
    animation: boba-water-ring 1050ms ease-out both;
}

.boba-water-splash {
    position: absolute;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0 20%, #5bdfff 42%, transparent 72%);
    opacity: 0;
    animation: boba-water-splash 900ms ease-out both;
}

.boba-water-splash.one { left: 12px; top: 13px; --sx: -16px; --sy: -17px; }
.boba-water-splash.two { right: 10px; top: 30px; --sx: 18px; --sy: -4px; animation-delay: 90ms; }
.boba-water-splash.three { left: 34px; bottom: 9px; --sx: 0; --sy: 18px; animation-delay: 160ms; }

@keyframes boba-water-ring {
    0% { transform: scale(0.35); opacity: 0; }
    18% { opacity: 1; }
    100% { transform: scale(1.25); opacity: 0; }
}

@keyframes boba-water-splash {
    0% { transform: translate(0, 0) scale(0.4); opacity: 0; }
    20% { opacity: 1; }
    100% { transform: translate(var(--sx), var(--sy)) scale(0.1); opacity: 0; }
}

.boba-wanted-marker {
    z-index: 92;
    border: 2px solid rgba(255, 220, 110, 0.96);
    background: rgba(32, 17, 8, 0.52);
    box-shadow: 0 0 12px rgba(255, 205, 72, 0.85), inset 0 0 18px rgba(255, 118, 22, 0.35);
    animation: boba-wanted-pulse 1400ms ease-in-out infinite;
}

.boba-wanted-title,
.boba-wanted-subtitle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'Arial Black', Gadget, sans-serif;
    text-transform: uppercase;
    white-space: nowrap;
    color: #ffe070;
    text-shadow: 1px 1px 0 #000, 0 0 8px #ff9d1c;
}

.boba-wanted-title {
    top: 7px;
    font-size: 14px;
    letter-spacing: 1px;
}

.boba-wanted-subtitle {
    bottom: 8px;
    font-size: 8px;
}

.boba-wanted-scan {
    position: absolute;
    left: 6px;
    right: 6px;
    top: 50%;
    height: 2px;
    background: #4eeaff;
    box-shadow: 0 0 8px #4eeaff;
    animation: boba-wanted-scan 1300ms linear infinite;
}

@keyframes boba-wanted-pulse {
    0%, 100% { opacity: 0.74; }
    50% { opacity: 1; }
}

@keyframes boba-wanted-scan {
    0% { transform: translateY(-24px); opacity: 0; }
    20%, 80% { opacity: 1; }
    100% { transform: translateY(24px); opacity: 0; }
}

.sabered-half,
.special-kill-portrait {
    position: absolute;
    background-size: cover;
    background-position: center;
}

.sabered-half.top,
.sabered-half.bottom {
    left: 0;
    width: 75px;
    height: 38px;
}

.sabered-half.top { top: 0; animation: sabered-half-top 3000ms ease-out both; }
.sabered-half.bottom { bottom: 0; background-position-y: bottom; animation: sabered-half-bottom 3000ms ease-out both; }

.sabered-half.left,
.sabered-half.right {
    top: 0;
    width: 38px;
    height: 75px;
}

.sabered-half.left { left: 0; animation: sabered-half-left 3000ms ease-out both; }
.sabered-half.right { right: 0; background-position-x: right; animation: sabered-half-right 3000ms ease-out both; }

.sabered-slash-line {
    position: absolute;
    left: -15%;
    top: 50%;
    width: 130%;
    height: 6px;
    background: #fff;
    border-radius: 999px;
    box-shadow: 0 0 12px currentColor, 0 0 26px currentColor;
    animation: sabered-line 950ms ease-out both;
}

.sabered-overlay.red { color: #ff2525; }
.sabered-overlay.blue { color: #35a9ff; }
.sabered-overlay.vertical .sabered-slash-line { transform: rotate(90deg); }
.sabered-label,
.special-kill-label {
    font-size: 24px;
    color: #fff;
    text-shadow: 2px 2px 0 #000, 0 0 12px currentColor;
}

@keyframes sabered-line {
    0% { opacity: 0; transform: rotate(var(--saber-kill-rot, 0deg)) scaleX(0); }
    20% { opacity: 1; }
    65% { opacity: 1; transform: rotate(var(--saber-kill-rot, 0deg)) scaleX(1); }
    100% { opacity: 0; transform: rotate(var(--saber-kill-rot, 0deg)) scaleX(1.1); }
}

.sabered-overlay.vertical { --saber-kill-rot: 90deg; }
@keyframes sabered-half-top { 100% { transform: translateY(-28px) rotate(-5deg); opacity: 0; } }
@keyframes sabered-half-bottom { 100% { transform: translateY(28px) rotate(5deg); opacity: 0; } }
@keyframes sabered-half-left { 100% { transform: translateX(-28px) rotate(-5deg); opacity: 0; } }
@keyframes sabered-half-right { 100% { transform: translateX(28px) rotate(5deg); opacity: 0; } }

.special-kill-portrait {
    inset: 0;
    filter: contrast(1.1) saturate(1.1);
    animation: special-kill-portrait-fade 3200ms ease-out both;
}

.advanced-sabered-kill .special-kill-portrait {
    animation: advanced-sabered-portrait 3500ms cubic-bezier(0.16, 0.8, 0.22, 1) both;
}

.special-kill-overlay.crunch-kill .special-kill-portrait {
    animation: crunch-kill-portrait-break 3200ms ease-out both;
    filter: contrast(1.08) saturate(0.92);
}

.special-kill-overlay.crunch-kill .special-kill-label {
    color: #fff;
    text-shadow: 2px 2px 0 #000, 0 0 12px rgba(255,255,255,0.9), 0 0 20px rgba(191, 191, 191, 0.86);
    letter-spacing: 1px;
}

.special-kill-overlay.crunch-kill .crunch-piece {
    position: absolute;
    left: 31px;
    top: 31px;
    width: 16px;
    height: 16px;
    background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(214,214,214,0.74));
    box-shadow: 0 0 8px rgba(255,255,255,0.42);
    clip-path: polygon(50% 0%, 100% 35%, 82% 100%, 20% 84%, 0% 28%);
    animation: crunch-piece-burst 1400ms ease-out both;
}

.special-kill-overlay.crunch-kill .piece-1 { --sx: -38px; --sy: -34px; --rot: -24deg; }
.special-kill-overlay.crunch-kill .piece-2 { --sx: -20px; --sy: -38px; --rot: 18deg; animation-delay: 40ms; }
.special-kill-overlay.crunch-kill .piece-3 { --sx: 4px; --sy: -40px; --rot: -12deg; animation-delay: 80ms; }
.special-kill-overlay.crunch-kill .piece-4 { --sx: 24px; --sy: -36px; --rot: 28deg; animation-delay: 120ms; }
.special-kill-overlay.crunch-kill .piece-5 { --sx: 36px; --sy: -20px; --rot: -32deg; animation-delay: 160ms; }
.special-kill-overlay.crunch-kill .piece-6 { --sx: 40px; --sy: 0px; --rot: 24deg; animation-delay: 200ms; }
.special-kill-overlay.crunch-kill .piece-7 { --sx: 34px; --sy: 22px; --rot: -18deg; animation-delay: 240ms; }
.special-kill-overlay.crunch-kill .piece-8 { --sx: 18px; --sy: 36px; --rot: 36deg; animation-delay: 280ms; }
.special-kill-overlay.crunch-kill .piece-9 { --sx: -2px; --sy: 40px; --rot: -14deg; animation-delay: 320ms; }
.special-kill-overlay.crunch-kill .piece-10 { --sx: -24px; --sy: 34px; --rot: 22deg; animation-delay: 360ms; }
.special-kill-overlay.crunch-kill .piece-11 { --sx: -38px; --sy: 18px; --rot: -20deg; animation-delay: 400ms; }
.special-kill-overlay.crunch-kill .piece-12 { --sx: -42px; --sy: -2px; --rot: 30deg; animation-delay: 440ms; }
.special-kill-overlay.crunch-kill .piece-13 { --sx: -14px; --sy: -16px; --rot: -30deg; animation-delay: 60ms; }
.special-kill-overlay.crunch-kill .piece-14 { --sx: 10px; --sy: -18px; --rot: 26deg; animation-delay: 100ms; }
.special-kill-overlay.crunch-kill .piece-15 { --sx: 20px; --sy: 8px; --rot: -16deg; animation-delay: 140ms; }
.special-kill-overlay.crunch-kill .piece-16 { --sx: -10px; --sy: 18px; --rot: 20deg; animation-delay: 180ms; }
.special-kill-overlay.crunch-kill .piece-17 { --sx: -26px; --sy: 6px; --rot: -10deg; animation-delay: 220ms; }
.special-kill-overlay.crunch-kill .piece-18 { --sx: 28px; --sy: -8px; --rot: 34deg; animation-delay: 260ms; }
.special-kill-overlay.crunch-kill .piece-19 { --sx: -6px; --sy: -28px; --rot: 12deg; animation-delay: 300ms; }
.special-kill-overlay.crunch-kill .piece-20 { --sx: 8px; --sy: 28px; --rot: -26deg; animation-delay: 340ms; }
.special-kill-overlay.crunch-kill .piece-21 { --sx: -30px; --sy: -8px; --rot: 14deg; animation-delay: 380ms; }
.special-kill-overlay.crunch-kill .piece-22 { --sx: 32px; --sy: 10px; --rot: -22deg; animation-delay: 420ms; }
.special-kill-overlay.crunch-kill .piece-23 { --sx: -18px; --sy: 26px; --rot: 18deg; animation-delay: 460ms; }
.special-kill-overlay.crunch-kill .piece-24 { --sx: 16px; --sy: -26px; --rot: -18deg; animation-delay: 500ms; }

.advanced-sabered-kill.grievous .special-kill-portrait {
    animation-duration: 3800ms;
}

.advanced-saber-slashes {
    position: absolute;
    inset: -10px;
    z-index: 3;
}

.advanced-saber-slashes span {
    position: absolute;
    left: -16%;
    top: 50%;
    width: 132%;
    height: 6px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 8px #fff, 0 0 18px currentColor, 0 0 34px currentColor;
    transform-origin: center;
    opacity: 0;
    animation: advanced-saber-slash 1000ms ease-out both;
}

.advanced-saber-slashes.yoda span {
    color: #5dff57;
    --slash-rot: -42deg;
}

.advanced-saber-slashes.grievous span {
    --slash-rot: 90deg;
}

.advanced-saber-slashes.grievous span:nth-child(1) { top: 28%; animation-delay: 0ms; }
.advanced-saber-slashes.grievous span:nth-child(2) { top: 42%; animation-delay: 130ms; }
.advanced-saber-slashes.grievous span:nth-child(3) { top: 56%; animation-delay: 260ms; }
.advanced-saber-slashes.grievous span:nth-child(4) { top: 70%; animation-delay: 390ms; }
.advanced-saber-slashes .blue { color: #38a7ff; }
.advanced-saber-slashes .green { color: #5dff57; }
.advanced-saber-slashes .yellow { color: #ffe04f; }
.advanced-saber-slashes .purple { color: #b15cff; }

.advanced-sabered-shards {
    position: absolute;
    inset: 0;
    z-index: 2;
}

.advanced-sabered-shards span {
    position: absolute;
    width: 21px;
    height: 24px;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.65), 0 0 10px currentColor;
    opacity: 0;
    clip-path: polygon(12% 0, 100% 18%, 76% 100%, 0 72%);
    animation: advanced-sabered-shard 1800ms ease-out both;
    animation-delay: 900ms;
}

.advanced-sabered-shards span:nth-child(1) { left: 0; top: 0; --sx: -28px; --sy: -42px; --rot: -54deg; }
.advanced-sabered-shards span:nth-child(2) { left: 18px; top: 0; --sx: -10px; --sy: -46px; --rot: -28deg; }
.advanced-sabered-shards span:nth-child(3) { left: 36px; top: 0; --sx: 12px; --sy: -44px; --rot: 30deg; }
.advanced-sabered-shards span:nth-child(4) { left: 54px; top: 0; --sx: 30px; --sy: -38px; --rot: 58deg; }
.advanced-sabered-shards span:nth-child(5) { left: 0; top: 24px; --sx: -40px; --sy: -12px; --rot: -36deg; }
.advanced-sabered-shards span:nth-child(6) { left: 18px; top: 24px; --sx: -16px; --sy: -22px; --rot: -14deg; }
.advanced-sabered-shards span:nth-child(7) { left: 36px; top: 24px; --sx: 18px; --sy: -18px; --rot: 18deg; }
.advanced-sabered-shards span:nth-child(8) { left: 54px; top: 24px; --sx: 42px; --sy: -8px; --rot: 42deg; }
.advanced-sabered-shards span:nth-child(9) { left: 0; top: 48px; --sx: -34px; --sy: 28px; --rot: -68deg; }
.advanced-sabered-shards span:nth-child(10) { left: 18px; top: 48px; --sx: -8px; --sy: 36px; --rot: -24deg; }
.advanced-sabered-shards span:nth-child(11) { left: 36px; top: 48px; --sx: 14px; --sy: 34px; --rot: 24deg; }
.advanced-sabered-shards span:nth-child(12) { left: 54px; top: 48px; --sx: 36px; --sy: 24px; --rot: 64deg; }

.advanced-sabered-kill.yoda { color: #5dff57; }
.advanced-sabered-kill.grievous { color: #b15cff; }

@keyframes advanced-saber-slash {
    0% { opacity: 0; transform: translate(42px, -34px) rotate(var(--slash-rot, 0deg)) scaleX(0.05); }
    20%, 72% { opacity: 1; }
    100% { opacity: 0; transform: translate(-42px, 34px) rotate(var(--slash-rot, 0deg)) scaleX(1.08); }
}

@keyframes advanced-sabered-portrait {
    0%, 35% { opacity: 1; transform: translateY(0) scale(1); filter: saturate(1.1) contrast(1.1); }
    58% { opacity: 1; transform: translateY(-14px) scale(1.04); filter: saturate(1.4) contrast(1.18); }
    100% { opacity: 0; transform: translateY(-34px) scale(0.92); filter: blur(3px) saturate(0.8); }
}

@keyframes advanced-sabered-shard {
    0% { opacity: 0; transform: translate(0, 0) rotate(0deg) scale(0.7); }
    22% { opacity: 0.9; }
    100% { opacity: 0; transform: translate(var(--sx), var(--sy)) rotate(var(--rot)) scale(0.2); }
}

@keyframes special-kill-portrait-fade {
    0%, 68% { opacity: 1; }
    100% { opacity: 0; transform: scale(1.08); }
}

@keyframes crunch-kill-portrait-break {
    0%, 20% { opacity: 1; transform: scale(1); }
    45% { opacity: 0.82; transform: scale(1.02); }
    100% { opacity: 0; transform: scale(0.92); }
}

@keyframes crunch-piece-burst {
    0% { opacity: 0; transform: translate(0, 0) rotate(0deg) scale(0.2); }
    12% { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--sx), var(--sy)) rotate(var(--rot)) scale(0.18); }
}

.eviscerated-gashes span,
.comic-boom-cracks span,
.lucilled-cracks span {
    position: absolute;
    left: 4px;
    width: 68px;
    height: 4px;
    background: #fff0d6;
    border-radius: 999px;
    box-shadow: 0 0 8px #ff2e00, 0 0 15px #ff9a00;
    transform: rotate(-28deg) scaleX(0);
    animation: gash-swipe 900ms ease-out both;
}

.eviscerated-gashes span:nth-child(1) { top: 22px; }
.eviscerated-gashes span:nth-child(2) { top: 36px; animation-delay: 90ms; }
.eviscerated-gashes span:nth-child(3) { top: 50px; animation-delay: 180ms; }

.eviscerated-sparks span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 5px;
    background: #ffb000;
    border-radius: 50%;
    box-shadow: 0 0 8px #ff4b00;
    animation: spark-burst 850ms ease-out both;
}

.eviscerated-sparks span:nth-child(1) { --sx: -28px; --sy: -24px; }
.eviscerated-sparks span:nth-child(2) { --sx: 26px; --sy: -15px; animation-delay: 80ms; }
.eviscerated-sparks span:nth-child(3) { --sx: -18px; --sy: 25px; animation-delay: 140ms; }
.eviscerated-sparks span:nth-child(4) { --sx: 30px; --sy: 24px; animation-delay: 210ms; }

@keyframes gash-swipe { 0% { opacity: 0; transform: rotate(-28deg) scaleX(0); } 25%, 75% { opacity: 1; } 100% { opacity: 0; transform: rotate(-28deg) scaleX(1); } }
@keyframes spark-burst { 0% { opacity: 0; transform: translate(0, 0) scale(0.3); } 25% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--sx), var(--sy)) scale(0.1); } }

.claimed-poster-stamp {
    position: absolute;
    left: 7px;
    top: 22px;
    width: 61px;
    height: 25px;
    border: 3px solid #ffd24a;
    color: #ffd24a;
    font: 900 14px/20px 'Arial Black', Gadget, sans-serif;
    text-align: center;
    transform: rotate(-10deg) scale(2.2);
    opacity: 0;
    text-shadow: 1px 1px 0 #000;
    animation: claimed-stamp 900ms ease-out both;
}

.claimed-reticle {
    position: absolute;
    inset: 7px;
    border: 2px solid #43e9ff;
    border-radius: 50%;
    animation: claimed-reticle 1400ms ease-in both;
    animation-delay: 650ms;
}

.claimed-credit-flash {
    position: absolute;
    left: 24px;
    top: 24px;
    width: 27px;
    height: 27px;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0 18%, #ffe168 38%, #c98512 65%, transparent 70%);
    box-shadow: 0 0 18px #ffd24a;
    opacity: 0;
    animation: claimed-credit 1250ms ease-out both;
    animation-delay: 1450ms;
}

@keyframes claimed-stamp { 0% { opacity: 0; transform: rotate(-10deg) scale(2.2); } 30%, 82% { opacity: 1; transform: rotate(-10deg) scale(1); } 100% { opacity: 0; transform: rotate(-10deg) scale(0.92); } }
@keyframes claimed-reticle { 0% { opacity: 0; transform: scale(1.35); } 25%, 80% { opacity: 1; } 100% { opacity: 0; transform: scale(0.18); } }
@keyframes claimed-credit { 0% { opacity: 0; transform: scale(0.2); } 25%, 70% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0; transform: scale(1.8); } }

.devoured-tendrils span {
    position: absolute;
    width: 10px;
    height: 88px;
    background: linear-gradient(#4a0000, #d00022, #4a0000);
    border-radius: 999px;
    transform-origin: center;
    animation: tendril-pull 1600ms ease-in both;
}

.devoured-tendrils span:nth-child(1) { left: -8px; top: -5px; transform: rotate(24deg); }
.devoured-tendrils span:nth-child(2) { right: -8px; top: -5px; transform: rotate(-24deg); animation-delay: 90ms; }
.devoured-tendrils span:nth-child(3) { left: 22px; top: -38px; transform: rotate(90deg); animation-delay: 160ms; }
.devoured-tendrils span:nth-child(4) { left: 38px; bottom: -38px; transform: rotate(90deg); animation-delay: 230ms; }
.devoured-splatter {
    position: absolute;
    inset: 8px;
    background: radial-gradient(circle at 35% 45%, rgba(255,0,30,.9) 0 10%, transparent 12%), radial-gradient(circle at 60% 55%, rgba(180,0,20,.9) 0 14%, transparent 16%);
    opacity: 0;
    animation: splatter-pop 1300ms ease-out both;
    animation-delay: 950ms;
}

@keyframes tendril-pull { 0% { opacity: 0; filter: blur(3px); } 20% { opacity: 1; } 100% { opacity: 0; transform: translate(0, 0) scaleY(0.2); } }
@keyframes splatter-pop { 0% { opacity: 0; transform: scale(0.2); } 35%, 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.35); } }

.predator-thermal-scan {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(0deg, rgba(48,255,90,.16) 0 3px, transparent 3px 8px), repeating-linear-gradient(90deg, rgba(48,255,90,.12) 0 2px, transparent 2px 10px);
    box-shadow: inset 0 0 18px #2dff58;
    animation: predator-thermal-scan 1600ms ease-out both;
}

@keyframes predator-thermal-scan { 0% { opacity: 0; transform: scale(1.2); } 20%, 75% { opacity: 1; } 100% { opacity: 0; transform: scale(1); } }

.ghost-rider-judged-eyes {
    position: absolute;
    left: 23px;
    top: 25px;
    width: 30px;
    height: 9px;
    z-index: 8;
}
.ghost-rider-judged-eyes span {
    position: absolute;
    width: 8px;
    height: 9px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 8px #ffef6a, 0 0 16px #ff4d00;
    animation: judged-eyes 2600ms ease-out both;
}
.ghost-rider-judged-eyes span:first-child { left: 0; }
.ghost-rider-judged-eyes span:last-child { right: 0; }
@keyframes judged-eyes { 0%, 20% { opacity: 0; transform: scale(0.2); } 35%, 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.6); } }

.vanished-smoke span {
    position: absolute;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(36, 39, 48, 0.86);
    filter: blur(2px);
    animation: smoke-cover 2100ms ease-out both;
}
.vanished-smoke span:nth-child(1) { left: -3px; top: 19px; }
.vanished-smoke span:nth-child(2) { left: 21px; top: 8px; animation-delay: 100ms; }
.vanished-smoke span:nth-child(3) { left: 34px; top: 31px; animation-delay: 180ms; }
.vanished-bat {
    position: absolute;
    left: 18px;
    top: 24px;
    width: 39px;
    height: 20px;
    background: #050505;
    clip-path: polygon(0 55%, 18% 25%, 36% 55%, 50% 10%, 64% 55%, 82% 25%, 100% 55%, 72% 70%, 50% 55%, 28% 70%);
    opacity: 0;
    animation: bat-silhouette 2300ms ease-out both;
    animation-delay: 520ms;
}
@keyframes smoke-cover { 0% { opacity: 0; transform: scale(0.2); } 30%, 78% { opacity: 1; transform: scale(1.35); } 100% { opacity: 0; transform: scale(2); } }
@keyframes bat-silhouette { 0%, 20% { opacity: 0; transform: scale(0.3); } 35%, 80% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: translateY(-18px) scale(0.6); } }

.consumed-jaws {
    position: absolute;
    left: 0;
    width: 75px;
    height: 32px;
    background: #050505;
    z-index: 4;
}
.consumed-jaws.top {
    top: -34px;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 84% 52%, 72% 82%, 60% 52%, 48% 84%, 36% 52%, 24% 82%, 12% 52%, 0 70%);
    animation: jaws-top 1800ms ease-in both;
}
.consumed-jaws.bottom {
    bottom: -34px;
    clip-path: polygon(0 30%, 12% 48%, 24% 18%, 36% 48%, 48% 16%, 60% 48%, 72% 18%, 84% 48%, 100% 30%, 100% 100%, 0 100%);
    animation: jaws-bottom 1800ms ease-in both;
}
.consumed-slime {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle, rgba(0,0,0,0) 20%, rgba(0,0,0,.9) 72%);
    opacity: 0;
    animation: slime-darken 2100ms ease-in both;
}
@keyframes jaws-top { 0% { transform: translateY(0); } 55%, 78% { transform: translateY(34px); } 100% { transform: translateY(42px); opacity: 0; } }
@keyframes jaws-bottom { 0% { transform: translateY(0); } 55%, 78% { transform: translateY(-34px); } 100% { transform: translateY(-42px); opacity: 0; } }
@keyframes slime-darken { 0%, 20% { opacity: 0; } 55%, 82% { opacity: 1; } 100% { opacity: 0; } }

.speed-blitz-afterimages span {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.45;
    animation: afterimage-shift 1200ms ease-out both;
}
.speed-blitz-afterimages span:nth-child(1) { transform: translateX(-10px); }
.speed-blitz-afterimages span:nth-child(2) { transform: translateX(10px); animation-delay: 90ms; }
.speed-blitz-lightning {
    position: absolute;
    left: -8px;
    top: 34px;
    width: 92px;
    height: 6px;
    background: #fff55e;
    box-shadow: 0 0 10px #fff55e, 0 0 20px #ff2b2b;
    clip-path: polygon(0 45%, 24% 45%, 32% 0, 48% 62%, 62% 22%, 72% 50%, 100% 50%, 100% 70%, 68% 70%, 58% 44%, 46% 84%, 31% 20%, 25% 70%, 0 70%);
    animation: lightning-cut 1400ms ease-out both;
}
@keyframes afterimage-shift { 0% { opacity: 0; } 20%, 70% { opacity: .45; } 100% { opacity: 0; transform: translateX(0); } }
@keyframes lightning-cut { 0% { opacity: 0; transform: translateX(-45px); } 20%, 70% { opacity: 1; } 100% { opacity: 0; transform: translateX(45px); } }

.comic-boom-burst {
    position: absolute;
    inset: -8px;
    background: radial-gradient(circle, #fff 0 12%, #ffe640 14% 28%, #ff4b21 30% 50%, transparent 52%);
    clip-path: polygon(50% 0, 59% 29%, 85% 8%, 74% 38%, 100% 50%, 73% 62%, 85% 92%, 58% 72%, 50% 100%, 42% 72%, 15% 92%, 27% 62%, 0 50%, 26% 38%, 15% 8%, 41% 29%);
    animation: boom-burst 1700ms ease-out both;
}
.comic-boom-cracks span,
.lucilled-cracks span { background: #111; box-shadow: 0 0 4px #fff; }
.comic-boom-cracks span:nth-child(1), .lucilled-cracks span:nth-child(1) { top: 24px; transform: rotate(18deg) scaleX(0); }
.comic-boom-cracks span:nth-child(2), .lucilled-cracks span:nth-child(2) { top: 39px; transform: rotate(-17deg) scaleX(0); animation-delay: 120ms; }
.comic-boom-cracks span:nth-child(3), .lucilled-cracks span:nth-child(3) { top: 53px; transform: rotate(34deg) scaleX(0); animation-delay: 210ms; }
@keyframes boom-burst { 0% { opacity: 0; transform: scale(0.1); } 25%, 72% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.45); } }

.lucilled-bat {
    position: absolute;
    left: -20px;
    top: 16px;
    width: 112px;
    height: 12px;
    background: #5a3218;
    border-radius: 999px;
    transform: rotate(-28deg) translateX(-70px);
    box-shadow: inset 0 0 4px #1b0d06;
    animation: lucille-swing 1250ms cubic-bezier(0.12, 0.85, 0.18, 1) both;
}
.lucilled-bat span {
    position: absolute;
    inset: -3px 18px -3px 18px;
    border-top: 2px dashed #b8b8b8;
    border-bottom: 2px dashed #b8b8b8;
}
.lucilled-impact {
    position: absolute;
    left: 20px;
    top: 25px;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.92) 0 12%, rgba(160,0,0,.88) 24%, transparent 64%);
    opacity: 0;
    animation: lucille-impact 1200ms ease-out both;
    animation-delay: 520ms;
}
@keyframes lucille-swing { 0% { transform: rotate(-28deg) translateX(-70px); } 45%, 70% { transform: rotate(-28deg) translateX(0); } 100% { transform: rotate(-28deg) translateX(82px); opacity: 0; } }
@keyframes lucille-impact { 0%, 35% { opacity: 0; transform: scale(0.2); } 48%, 82% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.8); } }

/* Pokemon Arena interface chrome. Skill and energy colors remain functional. */
body.arena-mode-pokemon {
    color: #351010;
    background: linear-gradient(145deg, #fff 0%, #fff1f2 64%, #d62d3a 100%) fixed !important;
}

body.arena-mode-pokemon :is(.login, .player-card, .selection-mode-controls, .selection-filter-controls, .private-match-panel, .searching, .matchmaking-status, .skillviewer, .skillqueue) {
    border-color: #a61926 !important;
    background: linear-gradient(180deg, #fff 0%, #ffecef 100%) !important;
    color: #351010 !important;
    box-shadow: 0 0 0 1px #fff, 0 4px 12px rgba(126, 16, 27, 0.24) !important;
}

body.arena-mode-pokemon :is(.ok-button, .register-button, .arena-mode-button, .findmatch, .quickmatch, .laddermatch, .private-match-button, .endturnbutton, .surrenderbutton, .returnbutton) {
    border-color: #780f19 !important;
    background: linear-gradient(180deg, #e64451 0%, #b51f2e 55%, #8b121e 100%) !important;
    color: #fff !important;
    text-shadow: 0 1px 0 #5f0a12 !important;
}

body.arena-mode-pokemon :is(.ok-button, .register-button, .arena-mode-button, .findmatch, .quickmatch, .laddermatch, .private-match-button, .endturnbutton, .surrenderbutton, .returnbutton):hover {
    background: linear-gradient(180deg, #f05a65 0%, #c62836 55%, #981520 100%) !important;
}

body.arena-mode-pokemon .arena-mode-button.active {
    border-color: #a61926 !important;
    background: #fff !important;
    color: #a61926 !important;
    text-shadow: none !important;
}

body.arena-mode-pokemon :is(input, select, textarea) {
    border-color: #c44650 !important;
    background: #fff !important;
    color: #351010 !important;
}

.pokemon-ladder-incentive { display: none; }
body.arena-mode-pokemon .pokemon-ladder-incentive {
    display: grid;
    gap: 5px;
    margin: 12px auto;
    padding: 12px 16px;
    max-width: 620px;
    border: 3px solid #780f19;
    background: linear-gradient(135deg, #fff 0%, #ffe7ea 70%, #df3946 100%);
    color: #4d0b12;
    text-align: center;
    box-shadow: 5px 5px 0 rgba(80, 7, 14, .35);
}
body.arena-mode-pokemon .pokemon-ladder-incentive strong { color: #a31724; font-size: 20px; }
body.arena-mode-pokemon .pokemon-ladder-incentive span { font-weight: 700; }
body.arena-mode-pokemon .pokemon-ladder-incentive a { color: #8b121e; font-weight: 900; }
