.game-card.legendary-card .game-card__legendary-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  /* Shell stays transparent; frame decal carries visuals — no race gradient plate. */
  background: transparent;
}

.game-card.legendary-card {
  overflow: hidden;
  background: transparent;
  /* Pointer tilt for holo + art parallax; [-1, 1] from `bindLegendaryTilt` in game-card.js */
  --legend-px: 0;
  --legend-py: 0;
  /* Shell/card-relative lengths (game-shell --gs-u-h); fallback when stage container is absent */
  --legend-su: var(--gs-u-h);
  --legend-hairline: var(--gs-hairline, calc(var(--legend-su) * 0.1));
  /* Readable hero titles + shelf presence without fighting the frame overlay */
  --legend-name-color: #fff8ec;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.15) rgba(255, 210, 140, 0.45),
    0 0 calc(var(--legend-su) * 2.45) rgba(255, 170, 80, 0.22),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.85);
  --legend-stars-filter-strong:
    drop-shadow(1px 2px 1px rgba(0, 0, 0, 0.95));
  --legend-stars-filter: none;
  box-shadow:
    0 0 0 var(--legend-hairline) var(--gs-border-gold-bright-light),
    0 0 calc(var(--legend-su) * 3.1) rgba(255, 195, 110, 0.28),
    0 calc(var(--legend-su) * 1.1) calc(var(--legend-su) * 4.25) rgba(0, 0, 0, 0.62),
    0 calc(var(--legend-su) * 0.44) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.48),
    inset 0 var(--legend-hairline) 0 rgba(255, 240, 210, 0.14);
  --game-card-fs-c: 5cqw;

  --slot-art-top: 16%;
  --slot-art-left: 12%;
  --slot-art-right: 12%;
  --slot-art-bottom: 10%;

  --slot-title-top: 8.2%;
  --slot-title-translate-y: -50%;
  --slot-title-left: 22%;
  --slot-title-right: 22%;

  --slot-stars-top: 18%;
  --slot-stars-left: 24%;
  --slot-stars-right: 24%;

  --slot-chip-size: 14%;
  --slot-chip-top: 6.4%;
  --slot-chip-x: 6.4%;
  --slot-atk-left: var(--slot-chip-x);
  --slot-hp-right: var(--slot-chip-x);
  --slot-cd-right: var(--slot-chip-x);
  --slot-chip-bottom: 10%;
  --slot-stats-bottom: var(--slot-chip-bottom);

  --slot-skills-left: var(--slot-art-left);
  --slot-skills-right: var(--slot-art-right);
  --slot-skills-bottom: 22%;
  --slot-skills-height: 11%;

  /* Whole-card 3D tilt (lightbox included); dialog shell sizing uses --gs-u-w / --gs-u-h in game-card.css. */
  transform-style: preserve-3d;
  transition: transform 110ms ease-out;
  transform: perspective(1200px)
    rotateX(calc(var(--legend-py) * -11deg))
    rotateY(calc(var(--legend-px) * 13deg));
}

.game-card.legendary-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 8;
  pointer-events: none;
  border-radius: inherit;
  transform: translateZ(14px);
  mix-blend-mode: overlay;
  opacity: 0.68;
  background:
    radial-gradient(
      farthest-corner circle at calc(50% + var(--legend-px) * 40%) calc(42% + var(--legend-py) * 34%),
      rgba(255, 255, 255, 0.5) 0%,
      rgba(255, 230, 195, 0.18) 35%,
      transparent 62%
    ),
    repeating-linear-gradient(
      102deg,
      transparent 0 5.5%,
      rgba(210, 240, 255, 0.11) 5.5% 6.2%,
      transparent 6.2% 12%
    ),
    conic-gradient(
      from calc(18deg + var(--legend-px) * 48deg + var(--legend-py) * 32deg) at 50% 46%,
      rgba(255, 150, 210, 0.22),
      rgba(130, 210, 255, 0.2),
      rgba(255, 240, 170, 0.22),
      rgba(190, 160, 255, 0.2),
      rgba(255, 150, 210, 0.22)
    );
}

/* Subtle art pan (no img scale — keeps layout stable inside any host). */
.game-card.legendary-card .game-card__img {
  width: 100%;
  height: 100%;
  transform: translate3d(
    calc(var(--legend-px) * -2.2%),
    calc(var(--legend-py) * -1.8%),
    0.5px
  );
  object-position: calc(50% + var(--legend-px) * 5%) calc(18% + var(--legend-py) * 3.5%);
  transition:
    transform 95ms ease-out,
    object-position 95ms ease-out;
}

.tavern-flip--legendary.is-revealed .tavern-flip__face--front .game-card.legendary-card:not(.game-card--dialog) {
  transition: none;
}
.tavern-flip--legendary.is-revealed .tavern-flip__face--front .game-card.legendary-card:not(.game-card--dialog) .game-card__img {
  transition: none;
}
.tavern-flip--legendary.is-revealed .game-card.legendary-card:not(.game-card--dialog)::before {
  animation: game-card-legendary-tavern-foil-reveal 1.05s cubic-bezier(0.25, 0.82, 0.2, 1) 0.42s forwards;
}
@keyframes game-card-legendary-tavern-foil-reveal {
  0% {
    opacity: 0.18;
    filter: brightness(1.75) saturate(1.35);
  }
  40% {
    opacity: 0.94;
    filter: brightness(1.4) saturate(1.22);
  }
  100% {
    opacity: 0.68;
    filter: none;
  }
}
.tavern-reveal--skip-snap .tavern-flip--legendary.is-revealed .game-card.legendary-card:not(.game-card--dialog)::before {
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .tavern-flip--legendary.is-revealed .game-card.legendary-card:not(.game-card--dialog)::before {
    animation: none !important;
  }
  .game-card.legendary-card {
    transform: none;
    transition: none;
  }
  .game-card.legendary-card::before {
    mix-blend-mode: overlay;
    opacity: 0.22;
    background:
      radial-gradient(
        farthest-corner circle at 50% 38%,
        rgba(255, 255, 255, 0.25) 0%,
        transparent 55%
      ),
      conic-gradient(
        from 35deg at 50% 46%,
        rgba(255, 160, 210, 0.12),
        rgba(130, 210, 255, 0.1),
        rgba(255, 230, 170, 0.12),
        rgba(200, 160, 255, 0.1),
        rgba(255, 160, 210, 0.12)
      );
  }

  .game-card.legendary-card .game-card__img {
    transform: none;
    object-position: center 18%;
    transition: none;
  }
}

/* Per-race legendary overrides target the legendary card root directly. */
.game-card.legendary-card[data-race="human"] {
  --legend-name-color: #fff6dc;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(255, 215, 140, 0.55),
    0 0 calc(var(--legend-su) * 2.65) rgba(255, 175, 90, 0.28),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
  --slot-art-top: 12%;
  --slot-art-left: 14%;
  --slot-art-right: 14%;

  --slot-title-top: 11%;
  --slot-title-left: 25%;
  --slot-title-right: 25%;

  --slot-stars-top: 87%;
  --legend-stars-filter: var(--legend-stars-filter-strong);

  --slot-chip-top: 1.5%;
  --slot-chip-x: 6.4%;
  --slot-atk-left: 5.8%;
  --slot-hp-right: 5.7%;
  --slot-chip-bottom: 1.6%;

  --slot-skills-bottom: 15%;
}

.game-card.legendary-card[data-race="elf"] {
  --legend-name-color: #dff8ff;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(140, 230, 255, 0.48),
    0 0 calc(var(--legend-su) * 2.45) rgba(90, 200, 255, 0.22),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 3px rgba(0, 0, 0, 0.88);
  --slot-art-top: 11%;
  --slot-art-left: 9%;
  --slot-art-right: 9%;
  --slot-art-bottom: 12%;

  --slot-title-top: 8%;
  --slot-title-left: 20%;
  --slot-title-right: 20%;

  --slot-stars-top: 87%;
  --legend-stars-filter: var(--legend-stars-filter-strong);

  --slot-chip-top: 1%;
  --slot-chip-x: 7.4%;
  --slot-atk-left: 6.5%;
  --slot-hp-right: 7%;
  --slot-cd-right: 7.5%;
  --slot-chip-bottom: 3%;

  --slot-skills-bottom: 14%;
}


.game-card.legendary-card[data-race="monster"] {
  --legend-name-color: #ffe4d2;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(255, 160, 120, 0.42),
    0 0 calc(var(--legend-su) * 2.45) rgba(255, 100, 80, 0.18),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
  --slot-art-top: 10%;
  --slot-art-left: 12%;
  --slot-art-bottom: 7%;

  --slot-title-top: 7%;

  --slot-stars-top: 89%;

  --slot-chip-top: -1%;
  --slot-chip-x: 6%;
  --slot-atk-left: 5.3%;
  --slot-hp-right: 5%;
  --slot-cd-right: 5.5%;
  --slot-chip-bottom: 2%;

  --slot-skills-bottom: 12%;
}

.game-card.legendary-card[data-race="beast"] {
  --legend-name-color: #ffeccc;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(255, 195, 130, 0.5),
    0 0 calc(var(--legend-su) * 2.45) rgba(255, 160, 70, 0.22),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
  --slot-art-top: 13%;
  --slot-art-bottom: 12%;

  --slot-title-top: 9%;
  --slot-title-left: 24%;
  --slot-title-right: 24%;

  --slot-stars-top: 90%;
  --legend-stars-filter: var(--legend-stars-filter-strong);

  --slot-chip-size: 14%;
  --slot-chip-top: 1%;
  --slot-chip-x: 6.5%;
  --slot-cd-right: 7%;
  --slot-chip-bottom: 4%;

  --slot-skills-bottom: 12%;
}

.game-card.legendary-card[data-race="faefolk"] {
  --legend-name-color: #ffe8fb;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(255, 170, 230, 0.42),
    0 0 calc(var(--legend-su) * 2.45) rgba(230, 120, 255, 0.2),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
    --slot-art-top: 9%;
    --slot-art-bottom: 12%;

    --slot-title-top: 7.5%;
    --slot-title-left: 22%;
    --slot-title-right: 21%;

    --slot-stars-top: 88%;
    --legend-stars-filter: var(--legend-stars-filter-strong);

    --slot-chip-top: 1.2%;
    --slot-chip-x: 6.4%;
    --slot-cd-right: 7.3%;
    --slot-hp-right: 7%;
    --slot-chip-bottom: 2.2%;

    --slot-skills-right: 14.5%;
    --slot-skills-bottom: 12%;
}

.game-card.legendary-card[data-race="undead"] {
  --legend-name-color: #ebe4ff;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(200, 180, 255, 0.52),
    0 0 calc(var(--legend-su) * 2.45) rgba(140, 110, 220, 0.22),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
  --slot-art-top: 13%;
  --slot-art-bottom: 10%;

  --slot-title-top: 11.2%;
  --slot-title-left: 23%;
  --slot-title-right: 23%;

  --slot-stars-top: 87.5%;

  --slot-chip-size: 14%;
  --slot-chip-top: -0.6%;
  --slot-chip-x: 5.2%;
  --slot-atk-left: 6%;
  --slot-chip-bottom: 1.2%;

  --slot-skills-bottom: 12%;
}

.game-card.legendary-card[data-race="goblin"] {
  --legend-name-color: #e8ffc8;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(170, 255, 120, 0.4),
    0 0 calc(var(--legend-su) * 2.45) rgba(80, 200, 60, 0.18),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
    --slot-art-top: 12%;
    --slot-art-bottom: 13%;

    --slot-title-top: 9%;
    --slot-title-left: 21%;
    --slot-title-right: 21%;

    --slot-stars-top: 90%;
    --legend-stars-filter: var(--legend-stars-filter-strong);

    --slot-chip-size: 14%;
    --slot-chip-top: 1.4%;
    --slot-chip-x: 6.4%;
    --slot-atk-left: 6%;
    --slot-chip-bottom: 2%;

    --slot-skills-bottom: 13%;
  }

.game-card.legendary-card[data-race="infernal"] {
  --legend-name-color: #ffe8d8;
  --legend-name-shadow:
    0 0 calc(var(--legend-su) * 1.35) rgba(255, 140, 80, 0.52),
    0 0 calc(var(--legend-su) * 2.65) rgba(255, 70, 35, 0.28),
    0 calc(var(--legend-su) * 0.22) calc(var(--legend-su) * 1.56) rgba(0, 0, 0, 0.92),
    0 calc(var(--legend-su) * 0.11) 0 rgba(0, 0, 0, 0.88);
  --slot-art-top: 12%;
  --slot-art-left: 14%;
  --slot-art-right: 14%;

  --slot-title-top: 10%;

  --slot-stars-top: 87%;
  --legend-stars-filter: var(--legend-stars-filter-strong);

  --slot-chip-top: 1.5%;
  --slot-chip-x: 6.4%;
  --slot-atk-left: 5.8%;
  --slot-hp-right: 5.7%;
  --slot-chip-bottom: 1.6%;

  --slot-skills-bottom: 15%;
}

.game-card.legendary-card[data-race="celestial"] {
  --legend-name-color: var(--card-celestial-text-color, #8a6418);
  --legend-name-shadow: var(--card-celestial-text-shadow);
  --slot-art-top: 13%;
  --slot-art-left: 15%;
  --slot-art-right: 15%;
  --slot-art-bottom: 10%;

  --slot-title-top: 11%;

  --slot-stars-top: 87%;
  --legend-stars-filter: var(--legend-stars-filter-strong);

  --slot-chip-top: 4.5%;
  --slot-chip-x: 7.5%;
  --slot-atk-left: 7.8%;
  --slot-hp-right: 7.5%;
  --slot-chip-bottom: 4.6%;
  --slot-skills-bottom: 13%;
}

.game-card.legendary-card .game-card__legendary-border {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  z-index: 10;
  /* In front of foil pseudo when the shell tilts in 3D */
  transform: translateZ(22px);
  filter:
    drop-shadow(0 calc(var(--legend-su) * 0.33) calc(var(--legend-su) * 1.1) rgba(0, 0, 0, 0.55))
    drop-shadow(0 0 calc(var(--legend-su) * 2.45) rgba(var(--gs-gold-warm-rgb), 0.18));
}

.game-card.legendary-card .game-card__stats {
  z-index: 35;
}

.game-card.legendary-card .game-card__stats .game-card__stars-row {
  filter: var(--legend-stars-filter);
}

.game-card.legendary-card .game-card__name {
  font-size: 5cqw;
  z-index: 33;
  color: var(--legend-name-color);
  text-shadow: var(--legend-name-shadow);
}

.game-card.legendary-card .game-card__race,
.game-card.legendary-card .game-card__cd-wrap,
.game-card.legendary-card .game-card__stat--atk,
.game-card.legendary-card .game-card__stat--hp {
  z-index: 33;
}

.game-card.legendary-card .game-card__stat-value,
.game-card.legendary-card .game-card__cd {
  font-size: 10cqw;
}

.game-card.legendary-card .game-card__full-view {
  z-index: 33;
}

.game-card.legendary-card .game-card__skills-outer,
.game-card.legendary-card .game-card__art {
  overflow: hidden;
}

/* Legendary frame sits at z=10; skills should render above it. */
.game-card.legendary-card .game-card__skills-outer {
  z-index: 20;
}
