.base-pitch-kickoff {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 40%; min-width: 10px; max-width: 18px; aspect-ratio: 1;
  box-sizing: border-box; border: 2px solid #edf4dc; border-radius: 50%; pointer-events: none;
}
.base-pitch-kickoff::after {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 3px; height: 3px; background: #edf4dc; border-radius: 50%;
}
.base-npc[data-ball-team] .base-npc-body::before { content: ""; position: absolute; width: 52%; height: 8%; left: 24%; bottom: 10%; border-radius: 50%; background: #e74f4a; box-shadow: 0 0 0 2px #fff5d9; opacity: 0.85; }
.base-npc[data-ball-team="b"] .base-npc-body::before { background: #5cbde5; }
.base-ball.planned { transition: none; }
.base-ball.planned .bb-in, .base-ball.planned .bb-svg { animation: none !important; }
.base-football-notice {
  position: absolute; z-index: 18; top: 12px; left: 50%; transform: translateX(-50%);
  width: max-content; max-width: calc(100% - 24px); padding: 7px 12px;
  border: 2px solid #293e32; border-radius: 6px; background: #fffdf2; color: #293e32;
  box-shadow: 2px 2px 0 #293e32; font-size: 0.8rem; font-weight: 800; line-height: 1.25;
  text-align: center; pointer-events: none;
}
body:not(.in-base) .base-football-notice,
.base-stage-wrap.hi-open .base-football-notice,
body.base-dialog-open .base-football-notice { display: none; }
@media (prefers-reduced-motion: reduce) {
  .base-ball.planned .bb-in { transform: translateX(-50%) !important; }
  .base-ball.planned .bb-svg { transform: none !important; }
}
@media (max-width: 760px), (hover: none) and (pointer: coarse) {
  .base-football-notice {
    top: max(12px, env(safe-area-inset-top)); left: 76px; right: 104px; transform: none;
    width: max-content; max-width: calc(100% - 180px); margin-inline: auto; padding: 6px;
    font-size: 12px; overflow-wrap: anywhere;
  }
}
