/* Shared card-face art. Whole-card transforms remain owned by hand-cards.css. */
.candidate-note {
  display:flex;
  flex-wrap:wrap;
  gap:7px 14px;
  align-items:center;
  margin:0 0 14px;
  padding:10px 12px;
  color:#8f98a7;
  background:rgba(229,181,103,.055);
  border:1px solid rgba(229,181,103,.2);
  border-left:3px solid var(--gold-primary,#e5b567);
  font-size:11px;
}

.candidate-note strong {
  color:var(--gold-light,#f0cb7e);
  font-size:12px;
}

.card-art-motion-host .card-art {
  opacity:.68;
  filter:saturate(.82) brightness(.72);
  transition:opacity 140ms ease, filter 140ms ease;
}

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered) .card-art {
  opacity:1;
  filter:saturate(1.04) brightness(1.08) drop-shadow(0 0 5px rgba(229,181,103,.14));
}

.candidate-art-svg .card-art-pixel-main { fill:#d8c996; }
.candidate-art-svg .card-art-pixel-hot { fill:#c65e42; }
.candidate-art-svg .card-art-pixel-shadow { fill:#716a4d; }
.candidate-art-svg .card-art-pixel-cut { fill:#171714; }

.card-art-defend .candidate-art-svg .card-art-pixel-main { fill:#82e0db; }
.card-art-defend .candidate-art-svg .card-art-pixel-hot { fill:#67f5eb; }
.card-art-defend .candidate-art-svg .card-art-pixel-shadow { fill:#5d97b2; }
.card-art-defend .candidate-art-svg .card-art-pixel-cut { fill:#111b20; }

.card-art-tempo .candidate-art-svg .card-art-pixel-main { fill:#bb97ec; }
.card-art-tempo .candidate-art-svg .card-art-pixel-hot { fill:#e1bfff; }
.card-art-tempo .candidate-art-svg .card-art-pixel-shadow { fill:#7e63a8; }
.card-art-tempo .candidate-art-svg .card-art-pixel-cut { fill:#171520; }

.candidate-art-svg * {
  transform-box: fill-box;
  transform-origin: center;
}

/* 头球摆渡：蓄力、起跳、触球，最后定格。 */
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="flick_on"] .candidate-flick-body {
  animation: candidate-flick-body 680ms steps(4, end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="flick_on"] .candidate-flick-head {
  animation: candidate-flick-head 680ms steps(4, end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="flick_on"] .candidate-flick-arms {
  animation: candidate-flick-arms 680ms steps(4, end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="flick_on"] .candidate-flick-ball {
  animation: candidate-flick-ball 680ms steps(5, end) 1 forwards;
}
@keyframes candidate-flick-body {
  0%,18% { transform:translateY(4px); }
  40%,66% { transform:translateY(-7px); }
  100% { transform:translateY(-2px); }
}
@keyframes candidate-flick-head {
  0%,18% { transform:translateY(4px); }
  40% { transform:translateY(-9px); }
  66%,100% { transform:translate(3px,-8px); }
}
@keyframes candidate-flick-arms {
  0%,18% { transform:translateY(4px); }
  40%,100% { transform:translateY(-7px); }
}
@keyframes candidate-flick-ball {
  0%,34% { transform:translate(0,0); }
  52% { transform:translate(24px,-7px); }
  72% { transform:translate(48px,-9px); }
  100% { transform:translate(70px,-4px); }
}

/* 边路传中：球路逐格点亮。 */
.candidate-cross-trail rect { opacity:.12; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="cross"] .candidate-cross-trail rect {
  animation:candidate-trail-on 760ms steps(1,end) 1 forwards;
}
.card-art-motion-host[data-card-id="cross"] .candidate-cross-trail rect:nth-child(2) { animation-delay:90ms!important; }
.card-art-motion-host[data-card-id="cross"] .candidate-cross-trail rect:nth-child(3) { animation-delay:180ms!important; }
.card-art-motion-host[data-card-id="cross"] .candidate-cross-trail rect:nth-child(4) { animation-delay:270ms!important; }
.card-art-motion-host[data-card-id="cross"] .candidate-cross-trail rect:nth-child(5) { animation-delay:360ms!important; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="cross"] .candidate-cross-ball {
  animation:candidate-cross-ball 760ms steps(6,end) 1 forwards;
}
@keyframes candidate-trail-on {
  0% { opacity:.12; }
  1%,76% { opacity:1;filter:brightness(1.35); }
  100% { opacity:.46; }
}
@keyframes candidate-cross-ball {
  0% { transform:translate(0,0); }
  100% { transform:translate(58px,-20px); }
}

/* 角球战术：旗面响应，三名球员分段启动，落点闪现。 */
.candidate-corner-target { opacity:.14; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="corner_play"] .candidate-corner-flag {
  animation:candidate-flag-wave 780ms steps(4,end) 1 forwards;
  transform-origin:left center;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="corner_play"] .candidate-corner-runner {
  animation:candidate-runner-rise 780ms steps(4,end) 1 forwards;
}
.card-art-motion-host[data-card-id="corner_play"] .candidate-corner-runner-two { animation-delay:80ms!important; }
.card-art-motion-host[data-card-id="corner_play"] .candidate-corner-runner-three { animation-delay:160ms!important; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="corner_play"] .candidate-corner-target {
  animation:candidate-target-flash 780ms steps(1,end) 1 forwards;
}
@keyframes candidate-flag-wave {
  0% { transform:scaleX(.55); }
  36% { transform:scaleX(1); }
  68% { transform:scaleX(.72); }
  100% { transform:scaleX(1); }
}
@keyframes candidate-runner-rise {
  0%,20% { transform:translateY(5px);opacity:.42; }
  48%,84% { transform:translateY(-7px);opacity:1; }
  100% { transform:translateY(-2px);opacity:.8; }
}
@keyframes candidate-target-flash {
  0%,60% { opacity:0; }
  61%,86% { opacity:1;filter:brightness(1.5); }
  100% { opacity:.45; }
}

/* 远射：摆腿、上升球路、球门冲击。 */
.candidate-shot-trail rect,.candidate-shot-impact { opacity:.08; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="long_shot"] .candidate-shot-leg {
  animation:candidate-shot-leg 620ms steps(3,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="long_shot"] .candidate-shot-ball {
  animation:candidate-shot-ball 620ms steps(6,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="long_shot"] .candidate-shot-trail rect {
  animation:candidate-trail-on 620ms steps(1,end) 1 forwards;
}
.card-art-motion-host[data-card-id="long_shot"] .candidate-shot-trail rect:nth-child(2) { animation-delay:90ms!important; }
.card-art-motion-host[data-card-id="long_shot"] .candidate-shot-trail rect:nth-child(3) { animation-delay:180ms!important; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="long_shot"] .candidate-shot-impact {
  animation:candidate-shot-impact 620ms steps(1,end) 1 forwards;
}
@keyframes candidate-shot-leg {
  0%,20% { transform:rotate(-18deg) translateX(-3px); }
  48%,100% { transform:rotate(13deg) translateX(3px); }
}
@keyframes candidate-shot-ball {
  0%,18% { transform:translate(0,0); }
  100% { transform:translate(54px,-23px); }
}
@keyframes candidate-shot-impact {
  0%,76% { opacity:0; }
  77%,92% { opacity:1;filter:brightness(1.5); }
  100% { opacity:.35; }
}

/* 禁区争顶解围：防守者起跳，足球被顶出禁区。 */
.candidate-clear-trail rect { opacity:.08; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_clear"] .candidate-clear-defender {
  animation:candidate-clear-rise 700ms steps(4,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_clear"] .candidate-clear-ball {
  animation:candidate-clear-ball 700ms steps(5,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_clear"] .candidate-clear-trail rect {
  animation:candidate-trail-on 700ms steps(1,end) 1 forwards;
}
.card-art-motion-host[data-card-id="sp_clear"] .candidate-clear-trail rect:nth-child(2) { animation-delay:120ms!important; }
.card-art-motion-host[data-card-id="sp_clear"] .candidate-clear-trail rect:nth-child(3) { animation-delay:240ms!important; }
@keyframes candidate-clear-rise {
  0%,18% { transform:translateY(5px); }
  42%,74% { transform:translateY(-8px); }
  100% { transform:translateY(-3px); }
}
@keyframes candidate-clear-ball {
  0%,34% { transform:translate(0,0); }
  54% { transform:translate(18px,-7px); }
  100% { transform:translate(53px,-13px); }
}

/* 控球倒脚：球沿三角路线跑一圈，球员依次点亮。 */
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="possess"] .candidate-possess-ball {
  animation:candidate-possess-ball 1100ms steps(8,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="possess"] .candidate-possess-one {
  animation:candidate-player-pulse 1100ms steps(1,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="possess"] .candidate-possess-two {
  animation:candidate-player-pulse 1100ms 300ms steps(1,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="possess"] .candidate-possess-three {
  animation:candidate-player-pulse 1100ms 620ms steps(1,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="possess"] .candidate-possess-route {
  animation:candidate-route-glow 1100ms steps(6,end) 1 forwards;
}
@keyframes candidate-possess-ball {
  0% { transform:translate(0,0); }
  34% { transform:translate(27px,-26px); }
  68% { transform:translate(63px,0); }
  100% { transform:translate(31px,9px); }
}
@keyframes candidate-player-pulse {
  0%,20% { filter:brightness(1); }
  21%,45% { filter:brightness(1.65); }
  46%,100% { filter:brightness(1.08); }
}
@keyframes candidate-route-glow {
  0% { opacity:.35; }
  50% { opacity:1;filter:brightness(1.45); }
  100% { opacity:.65; }
}

/* 其余牌共用的轻量动画语法：球飞行、路径逐格亮起、人物逐帧移动。 */
.candidate-shared-route rect { opacity:.13; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered) .candidate-shared-route rect {
  animation:candidate-shared-route-step 720ms steps(1,end) 1 forwards;
  animation-delay:var(--route-delay,0ms);
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered) .candidate-animated-ball {
  animation:candidate-shared-ball var(--ball-duration,720ms) steps(7,end) var(--ball-delay,0ms) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered) .candidate-shared-goal {
  animation:candidate-goal-answer 720ms 420ms steps(2,end) 1 forwards;
}
@keyframes candidate-shared-route-step {
  0% { opacity:.13; }
  1%,76% { opacity:1;filter:brightness(1.38); }
  100% { opacity:.48; }
}
@keyframes candidate-shared-ball {
  0% { translate:0 0; }
  52% { translate:var(--ball-mid-x,0) var(--ball-mid-y,0); }
  100% { translate:var(--ball-x,0) var(--ball-y,0); }
}
@keyframes candidate-goal-answer {
  0%,38% { filter:brightness(1); }
  39%,72% { filter:brightness(1.65); }
  100% { filter:brightness(1.12); }
}

/* 组织进攻：接球队员亮起，跑动者按战术路线移动。 */
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="short_pass"] .candidate-pulse-one,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="short_pass"] .candidate-pulse-two,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="short_pass"] .candidate-pulse-three {
  animation:candidate-player-receive 720ms steps(1,end) 1 forwards;
}
.card-art-motion-host[data-card-id="short_pass"] .candidate-pulse-two { animation-delay:190ms!important; }
.card-art-motion-host[data-card-id="short_pass"] .candidate-pulse-three { animation-delay:390ms!important; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="long_ball"] .candidate-runner,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="through"] .candidate-through-runner,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="solo_run"] .candidate-solo-runner,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="wingback"] .candidate-wingback-runner,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="fast_break"] .candidate-fast-runner,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="offside_breakthrough"] .candidate-offside-runner,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="cut_in_shot"] .candidate-cutin-runner {
  animation:candidate-player-run 760ms steps(5,end) 1 forwards;
}
.candidate-runner { --run-x:9px;--run-y:-5px; }
.candidate-through-runner { --run-x:15px;--run-y:-6px; }
.candidate-solo-runner { --run-x:23px;--run-y:-8px; }
.candidate-wingback-runner { --run-x:16px;--run-y:-13px; }
.candidate-fast-runner { --run-x:28px;--run-y:-5px; }
.candidate-offside-runner { --run-x:20px;--run-y:-10px; }
.candidate-cutin-runner { --run-x:22px;--run-y:-12px; }
@keyframes candidate-player-receive {
  0%,25% { filter:brightness(.9); }
  26%,55% { filter:brightness(1.65); }
  56%,100% { filter:brightness(1.08); }
}
@keyframes candidate-player-run {
  0%,16% { translate:0 3px; }
  48% { translate:4px -2px; }
  100% { translate:var(--run-x,0px) var(--run-y,0px); }
}

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="target_man"] .candidate-target-player {
  animation:candidate-target-rise 740ms steps(4,end) 1 forwards;
}
@keyframes candidate-target-rise {
  0%,20% { translate:0 4px; }
  48%,78% { translate:0 -8px;filter:brightness(1.4); }
  100% { translate:2px -5px;filter:brightness(1.12); }
}

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="surge_attack"] .candidate-surge-one,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="surge_attack"] .candidate-surge-two,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="surge_attack"] .candidate-surge-three {
  animation:candidate-surge-rise 760ms steps(4,end) 1 forwards;
}
.candidate-surge-two { animation-delay:100ms!important; }
.candidate-surge-three { animation-delay:200ms!important; }
@keyframes candidate-surge-rise {
  0% { translate:0 5px;opacity:.5; }
  56% { translate:4px -7px;opacity:1;filter:brightness(1.45); }
  100% { translate:7px -5px;opacity:.9; }
}

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="intercept_break"] .candidate-interceptor {
  animation:candidate-intercept 720ms steps(4,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="intercept_break"] .candidate-beaten-player {
  animation:candidate-beaten 720ms steps(3,end) 1 forwards;
}
@keyframes candidate-intercept { 0%{translate:-4px 2px} 48%,100%{translate:10px -5px;filter:brightness(1.4)} }
@keyframes candidate-beaten { 0%{translate:0 0} 52%,100%{translate:-5px 5px;opacity:.42} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="all_in_press"] .candidate-press-left { animation:candidate-converge-left 680ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="all_in_press"] .candidate-press-right { animation:candidate-converge-right 680ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="all_in_press"] .candidate-press-top { animation:candidate-converge-top 680ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="all_in_press"] .candidate-press-arrows { animation:candidate-arrow-flash 680ms steps(2,end) 1 forwards; }
@keyframes candidate-converge-left { 0%{translate:-5px 0} 100%{translate:20px 5px;filter:brightness(1.4)} }
@keyframes candidate-converge-right { 0%{translate:5px 0} 100%{translate:-20px 5px;filter:brightness(1.4)} }
@keyframes candidate-converge-top { 0%{translate:0 -5px} 100%{translate:0 16px;filter:brightness(1.4)} }
@keyframes candidate-arrow-flash { 0%{opacity:.15} 45%,80%{opacity:1} 100%{opacity:.45} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="fast_break"] .candidate-speed-lines {
  animation:candidate-speed-lines 540ms steps(4,end) 1 forwards;
}
@keyframes candidate-speed-lines { 0%{translate:-12px 0;opacity:.2} 55%{opacity:1} 100%{translate:12px 0;opacity:.45} }

/* 射门：出脚、反弹、破门冲击。 */
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="volley_shot"] .candidate-volley-player {
  animation:candidate-volley-body 580ms steps(4,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="volley_shot"] .candidate-volley-leg {
  animation:candidate-volley-leg 580ms steps(3,end) 1 forwards;
  transform-origin:left center;
}
@keyframes candidate-volley-body { 0%,20%{translate:-3px 4px} 50%,100%{translate:5px -4px} }
@keyframes candidate-volley-leg { 0%,20%{transform:rotate(-18deg)} 52%,100%{transform:rotate(13deg)} }

.candidate-finisher-impact { opacity:.08; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="finishing_blow"] .candidate-finisher-impact {
  animation:candidate-finisher-flash 620ms steps(1,end) 1 forwards;
}
@keyframes candidate-finisher-flash { 0%,72%{opacity:0} 73%,91%{opacity:1;filter:brightness(1.7)} 100%{opacity:.42} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="second_shot"] .candidate-block {
  animation:candidate-rebound-block 760ms steps(3,end) 1 forwards;
}
@keyframes candidate-rebound-block { 0%,38%{filter:brightness(1)} 39%,60%{filter:brightness(1.55);translate:2px -2px} 100%{filter:brightness(.8)} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="offside_breakthrough"] .candidate-offside-line,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="offside"] .candidate-defense-line {
  animation:candidate-line-snap 690ms steps(3,end) 1 forwards;
}
@keyframes candidate-line-snap { 0%,22%{opacity:.35} 48%{opacity:1;filter:brightness(1.55)} 100%{translate:4px 0;opacity:.65} }

/* 防守：压迫、站位、铲断、人墙。 */
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="press"] .candidate-defense-press-left { animation:candidate-converge-left 680ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="press"] .candidate-defense-press-right { animation:candidate-converge-right 680ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="press"] .candidate-pressed-player { animation:candidate-beaten 680ms steps(3,end) 1 forwards; }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="hold"] .candidate-hold-one,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="hold"] .candidate-hold-two,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="hold"] .candidate-hold-three {
  animation:candidate-hold-step 700ms steps(3,end) 1 forwards;
}
.candidate-hold-two { animation-delay:80ms!important; }
.candidate-hold-three { animation-delay:160ms!important; }
@keyframes candidate-hold-step { 0%{translate:0 4px;opacity:.55} 52%,100%{translate:0 -3px;opacity:1;filter:brightness(1.28)} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="tackle"] .candidate-tackler {
  animation:candidate-tackle-slide 580ms steps(4,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="tackle"] .candidate-tackle-target {
  animation:candidate-tackle-target 580ms steps(3,end) 1 forwards;
}
@keyframes candidate-tackle-slide { 0%{translate:-10px 4px} 60%,100%{translate:17px -1px;filter:brightness(1.45)} }
@keyframes candidate-tackle-target { 0%,32%{translate:0 0} 60%,100%{translate:6px -5px;opacity:.45} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="offside"] .candidate-offside-back-one,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="offside"] .candidate-offside-back-two,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="offside"] .candidate-offside-back-three {
  animation:candidate-offside-step 680ms steps(3,end) 1 forwards;
}
.candidate-offside-back-two { animation-delay:80ms!important; }
.candidate-offside-back-three { animation-delay:160ms!important; }
@keyframes candidate-offside-step { 0%{translate:0 4px} 50%,100%{translate:7px -3px;filter:brightness(1.3)} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_wall"] .candidate-wall-one,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_wall"] .candidate-wall-two,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_wall"] .candidate-wall-three,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sp_wall"] .candidate-wall-four {
  animation:candidate-wall-jump 660ms steps(4,end) 1 forwards;
}
.candidate-wall-two { animation-delay:60ms!important; }.candidate-wall-three { animation-delay:120ms!important; }.candidate-wall-four { animation-delay:180ms!important; }
@keyframes candidate-wall-jump { 0%,18%{translate:0 3px} 48%,78%{translate:0 -7px} 100%{translate:0 -2px} }

/* 节奏牌：换人、拖延与三种调度方向。 */
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sub"] .candidate-sub-out { animation:candidate-sub-out 820ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sub"] .candidate-sub-in { animation:candidate-sub-in 820ms steps(4,end) 1 forwards; }
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="sub"] .candidate-sub-arrows { animation:candidate-arrow-flash 820ms steps(2,end) 1 forwards; }
@keyframes candidate-sub-out { 0%{translate:0 0;opacity:1} 100%{translate:23px 12px;opacity:.3} }
@keyframes candidate-sub-in { 0%{translate:0 12px;opacity:.3} 100%{translate:-23px 0;opacity:1;filter:brightness(1.45)} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="waste"] .candidate-hourglass {
  animation:candidate-hourglass-turn 980ms steps(4,end) 1 forwards;
}
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="waste"] .candidate-sand {
  animation:candidate-sand-fall 980ms steps(5,end) 1 forwards;
}
@keyframes candidate-hourglass-turn { 0%,38%{transform:rotate(0)} 62%,100%{transform:rotate(180deg)} }
@keyframes candidate-sand-fall { 0%{translate:0 -4px;opacity:.35} 48%{translate:0 4px;opacity:1} 100%{translate:0 10px;opacity:.5} }

.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="regista_center"] .candidate-direction-center,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="regista_wide"] .candidate-wide-route,
.card-art-motion-host:is(:hover:not(.uses-managed-hand-hover), .is-hovered, :focus-visible):not(.locked):not(.cant-afford):not(.energy-blocked):not(.is-drawing):not(.is-playing):not(.is-play-measuring):not(.is-discarding):not(.is-passively-hovered)[data-card-id="regista_behind"] .candidate-behind-route {
  animation:candidate-direction-command 760ms steps(4,end) 1 forwards;
}
@keyframes candidate-direction-command { 0%{opacity:.18;filter:brightness(.8)} 50%{opacity:1;filter:brightness(1.5)} 100%{opacity:.62;filter:brightness(1.08)} }

@media (prefers-reduced-motion:reduce) {
  .card-art-motion-host .candidate-art-svg * {
    animation:none!important;
  }
}

body.result-review .card-art-motion-host .candidate-art-svg *,
#cards.cards-resolving .card-art-motion-host .candidate-art-svg *,
#cards.cards-drawing .card-art-motion-host .candidate-art-svg * {
  animation:none!important;
}
