HTML
<div class="scd-deck">
<div class="scd-deck__felt"></div>
<div class="scd-deck__stage">
<div class="scd-deck__card"><span class="scd-deck__corner">A♠</span><span class="scd-deck__pip">♠</span><span class="scd-deck__corner scd-deck__corner--br">A♠</span></div>
<div class="scd-deck__card"><span class="scd-deck__corner">K♥</span><span class="scd-deck__pip" style="color:#9b1b1b">♥</span><span class="scd-deck__corner scd-deck__corner--br">K♥</span></div>
<div class="scd-deck__card"><span class="scd-deck__corner">Q♦</span><span class="scd-deck__pip">♦</span><span class="scd-deck__corner scd-deck__corner--br">Q♦</span></div>
<div class="scd-deck__card"><span class="scd-deck__corner">J♣</span><span class="scd-deck__pip">♣</span><span class="scd-deck__corner scd-deck__corner--br">J♣</span></div>
<div class="scd-deck__card"><span class="scd-deck__corner">10♠</span><span class="scd-deck__pip">♠</span><span class="scd-deck__corner scd-deck__corner--br">10♠</span></div>
</div>
</div> CSS
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;1,500&family=Cormorant+Garamond:wght@500&display=swap');
.scd-deck, .scd-deck *, .scd-deck *::before, .scd-deck *::after { box-sizing: border-box; margin: 0; padding: 0; }
.scd-deck {
position: relative;
min-height: 460px;
display: grid;
place-items: center;
background: radial-gradient(circle at 50% 30%,#16432e,#0a2419 70%);
font-family: 'Cormorant Garamond', serif;
}
.scd-deck__felt {
position: absolute; inset: 0;
background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.012) 0 2px, transparent 2px 6px);
pointer-events: none;
}
.scd-deck__stage { position: relative; width: 240px; height: 340px; }
.scd-deck__card {
position: absolute; inset: 0;
border-radius: 16px;
background: linear-gradient(160deg,#fffdf6,#f3ead4);
box-shadow: 0 18px 40px rgba(0,0,0,.45), inset 0 0 0 2px #c9a227, inset 0 0 0 7px #fffdf6;
display: flex; align-items: center; justify-content: center;
transition: transform .65s cubic-bezier(.2,.9,.25,1), box-shadow .5s;
cursor: pointer;
}
.scd-deck__card .scd-deck__corner {
position: absolute; top: 14px; left: 16px;
font-family: 'Playfair Display', serif; font-size: 1.5rem; color: #9b1b1b;
}
.scd-deck__card .scd-deck__corner.scd-deck__corner--br {
top: auto; left: auto; bottom: 14px; right: 16px; transform: rotate(180deg);
}
.scd-deck__pip { font-size: 4.5rem; color: #9b1b1b; font-family: 'Playfair Display', serif; }
.scd-deck__card:nth-child(1) { transform: translateY(0) rotate(0deg); z-index: 5; }
.scd-deck__card:nth-child(2) { transform: translateY(4px) translateX(3px) rotate(2deg); z-index: 4; filter: brightness(.96); }
.scd-deck__card:nth-child(3) { transform: translateY(8px) translateX(6px) rotate(4deg); z-index: 3; filter: brightness(.92); }
.scd-deck__card:nth-child(4) { transform: translateY(12px) translateX(9px) rotate(6deg); z-index: 2; filter: brightness(.88); }
.scd-deck__card:nth-child(5) { transform: translateY(16px) translateX(12px) rotate(8deg); z-index: 1; filter: brightness(.84); }
.scd-deck__stage:hover .scd-deck__card:nth-child(1) { transform: translateY(-30px) rotate(-12deg) translateX(-90px); }
.scd-deck__stage:hover .scd-deck__card:nth-child(2) { transform: translateY(-15px) rotate(-6deg) translateX(-45px); }
.scd-deck__stage:hover .scd-deck__card:nth-child(3) { transform: translateY(0) rotate(0deg); }
.scd-deck__stage:hover .scd-deck__card:nth-child(4) { transform: translateY(-15px) rotate(6deg) translateX(45px); }
.scd-deck__stage:hover .scd-deck__card:nth-child(5) { transform: translateY(-30px) rotate(12deg) translateX(90px); }
.scd-deck__card:hover { box-shadow: 0 30px 60px rgba(0,0,0,.55), inset 0 0 0 2px #c9a227, inset 0 0 0 7px #fffdf6; }
@media (prefers-reduced-motion: reduce) {
.scd-deck__card { transition: none !important; }
}