.tt-offers .tt-dhm-card .card-image { position: relative; overflow: hidden; }
.tt-offers .tt-dhm-card .card-image > a { display: block; width: 100%; height: 100%; }
.tt-offers .tt-dhm-card .card-image img { width: 100%; height: 100%; object-fit: cover; }
.tt-offers .tt-dhm-card .card-overlay { pointer-events: none; }
.tt-offers .tt-dhm-card .card-location_competition { max-width: calc(100% - 32px); font-size: .8rem; }
.tt-golf-ball-card .card-image { position: relative; overflow: hidden; }
.tt-dhm-ball-track { position: absolute; bottom: 10px; left: 18px; right: 12px; height: 25px; z-index: 3; pointer-events: none; }
.tt-dhm-ball { position: absolute; left: calc(100% - 25px); bottom: 0; transform: translateY(44px); width: 25px; height: 25px; border-radius: 50%; background: radial-gradient(circle at 30% 25%, #fff 20%, #edf1f3 55%, #a7b2b8 100%); box-shadow: 2px 3px 5px #0007; }
.tt-dhm-ball canvas { display: block; width: 25px; height: 25px; border-radius: 50%; }
.tt-golf-ball-card.tt-dhm-play .tt-dhm-ball { animation: tt-dhm-roll 3.6s linear both, tt-dhm-bounce 3.6s both; }
@keyframes tt-dhm-roll { from { left: -50px; } to { left: calc(100% - 25px); } }
@keyframes tt-dhm-bounce {
  0%, 32%, 62% { transform: translateY(0); animation-timing-function: ease-out; }
  16% { transform: translateY(-64px); animation-timing-function: ease-in; }
  47% { transform: translateY(-42px); animation-timing-function: ease-in; }
  74% { transform: translateY(-22px); animation-timing-function: ease-in; }
  86% { transform: translateY(0); animation-timing-function: ease-in; }
  100% { transform: translateY(44px); }
}
@media (prefers-reduced-motion: reduce) { .tt-golf-ball-card.tt-dhm-play .tt-dhm-ball { animation: none; } }
