/* Card Styles */
.card {
  width: 60px;
  height: 84px;
  border-radius: 6px;
  position: relative;
  perspective: 600px;
  flex-shrink: 0;
}

.card--small {
  width: 48px;
  height: 67px;
}

.card--mini {
  width: 36px;
  height: 50px;
}

.card__inner {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.4s ease;
  border-radius: 6px;
}

.card--flipping .card__inner {
  transform: rotateY(180deg);
}

/* Card Front */
.card__front {
  position: absolute;
  inset: 0;
  border-radius: 6px;
  background: var(--card-white);
  backface-visibility: hidden;
  box-shadow: 0 2px 6px var(--card-shadow);
  display: flex;
  flex-direction: column;
  padding: 3px 5px;
  overflow: hidden;
}

.card--flipping .card__front {
  transform: rotateY(0deg);
}

/* Card Back — rotated 180° so backface-visibility hides it for face-up cards */
.card__back {
  position: absolute;
  inset: 0;
  border-radius: 6px;
  background: linear-gradient(135deg, var(--card-back) 0%, var(--card-back-pattern) 100%);
  backface-visibility: hidden;
  transform: rotateY(180deg);
  box-shadow: 0 2px 6px var(--card-shadow);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.card__back::before {
  content: '';
  position: absolute;
  inset: 4px;
  border: 2px solid rgba(255,255,255,0.2);
  border-radius: 4px;
}

.card__back::after {
  content: '';
  position: absolute;
  width: 70%;
  height: 70%;
  background: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 5px,
    rgba(255,255,255,0.05) 5px,
    rgba(255,255,255,0.05) 10px
  );
}

.card--face-down .card__back {
  transform: rotateY(0deg);
}
.card--face-down .card__front {
  transform: rotateY(180deg);
}

/* Rank and Suit */
.card__corner {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.card__corner--top {
  align-self: flex-start;
}

.card__corner--bottom {
  align-self: flex-end;
  transform: rotate(180deg);
  margin-top: auto;
}

.card__rank {
  font-size: 14px;
  font-weight: 700;
}

.card__suit {
  font-size: 12px;
  line-height: 1;
}

.card--small .card__rank { font-size: 11px; }
.card--small .card__suit { font-size: 10px; }

.card__center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 26px;
  opacity: 0.8;
}

.card--small .card__center { font-size: 20px; }
.card--mini .card__center { font-size: 16px; }

/* Face card center — SVG portrait silhouette */
.card__center--face {
  font-size: inherit;
  width: 65%;
  height: 60%;
  opacity: 0.75;
}

.card__face-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.card--small .card__center--face {
  width: 60%;
  height: 55%;
}

.card--mini .card__center--face {
  width: 55%;
  height: 50%;
}

/* 10 rank is wider — shrink font to fit */
.card__rank--wide {
  font-size: 11px;
  letter-spacing: -0.5px;
}

.card--small .card__rank--wide { font-size: 9px; }

/* Suit Colors */
.card--hearts .card__rank,
.card--hearts .card__suit,
.card--hearts .card__center,
.card--diamonds .card__rank,
.card--diamonds .card__suit,
.card--diamonds .card__center {
  color: var(--card-red);
}

.card--clubs .card__rank,
.card--clubs .card__suit,
.card--clubs .card__center,
.card--spades .card__rank,
.card--spades .card__suit,
.card--spades .card__center {
  color: var(--card-black);
}

/* Card Animations */
.card--dealing {
  animation: dealCard 0.4s ease-out forwards;
}

@keyframes dealCard {
  from {
    transform: translate(0, -200px) rotate(-10deg) scale(0.5);
    opacity: 0;
  }
  to {
    transform: translate(0, 0) rotate(0deg) scale(1);
    opacity: 1;
  }
}

.card--revealing {
  animation: revealCard 0.5s ease forwards;
}

@keyframes revealCard {
  0% { transform: scale(0.8); opacity: 0; }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); opacity: 1; }
}

/* Winner highlight */
.card--winning {
  box-shadow: 0 0 12px 2px var(--accent);
  animation: winPulse 1s ease infinite;
}

@keyframes winPulse {
  0%, 100% { box-shadow: 0 0 12px 2px var(--accent); }
  50% { box-shadow: 0 0 20px 4px var(--accent); }
}
