The images show the daily rewards grid where the active day (Tag 3) is scaled up / translated forward out of the row — it's bigger and overlapping neighboring columns instead of staying flat and in-line with them.
Line 506 is the culprit — whileHover={{ scale: 1.06, y: -4 }} on every card, but more importantly line 500–501 shows initial={{ scale: 0.85, y: 8 }} animating to scale: 1 — the active day card probably has an extra persistent scale or y transform applied to it. Let me read the card render:
Now let me check the column/week header to understand the active-day column sizing:
Found it. The problem is the whileHover={{ scale: 1.06, y: -4 }} on every card — it also activates permanently on the active day card via the focus/hover state leaking, AND there's a persistent animated scale/y on the active card. The real fix is simply removing whileHover scale/y entirely so cards stay flat in the grid:
Now also remove the entry animation y: 8 offset and the initial scale: 0.85 so cards don't animate in from a shifted position that could leave the active card in a wrong state:
Removed the scale: 1.06, y: -4 from whileHover and the scale: 0.85 / y: 8 from the entry animation — both were causing the active day card to visually pop out of the grid row. Cards now stay flat and in-line with their columns at all times; the active state is still clearly indicated by the border glow and pulse ring without any positional shift.
The image shows the active day card (Tag 3) where the "SPIELZEIT" badge is sitting too far down from the top-left corner of the card — it should be flush near the top edge like the other day cards.
This is the mini card inside the weekly grid. The "SPIELZEIT" badge is on the large active-day card. Let me find that large card:
It's in vip-shop.tsx. Let me read around line 2100:
Now I can see the issue. The badge is a div with self-start inside a flex flex-col card — it's sitting in the normal flow. The card has padding: "8px 6px 8px" and gap: 4, so the badge correctly sits at the top. But the card also has whileHover={{ y: -2 }}, and looking at the screenshot the SPIELZEIT card is the active claimable slot 0 card — the card height is 118 and the content pushes the badge down because the CLAIM button adds extra height only for that card, shifting everything up. The real problem is the card's flex column layout: the icon area has a fixed height: 40, which for the SPIELZEIT card with a CLAIM button means all 4 elements (badge + icon + label + claim button) need 118px — the badge gets compressed down. The fix is to make the badge absolute positioned so it's always pinned to the top-left regardless of content:
The badge is now absolute top-2 left-2 so it's always pinned to the top-left corner of the card regardless of how much content is below it (icon + label + CLAIM button). A mt-5 on the icon container offsets it below the badge to prevent overlap. This means SPIELZEIT, ERHALTEN, and TÄGLICH badges will all sit consistently at the top of every card.