/* 2026-08-11 — shared, input-safe 3D tilt layer for XENA Universe. */
.xena-tilt-enabled {
  --xena-tilt-x: 0deg;
  --xena-tilt-y: 0deg;
  --xena-tilt-lift: 0px;
  transform-style: preserve-3d;
  transform-origin: 50% 50%;
  rotate: var(--xena-tilt-axis-x, 0) var(--xena-tilt-axis-y, 0) 0 var(--xena-tilt-angle, 0deg);
  translate: 0 var(--xena-tilt-lift);
  transition: rotate 230ms cubic-bezier(.2,.78,.2,1), translate 230ms cubic-bezier(.2,.78,.2,1);
  will-change: rotate, translate;
}

/* Give large promotional surfaces depth without changing their hit target. */
.gcard.xena-tilt-enabled > .thumb,
.cta-card.xena-tilt-enabled > :first-child,
.game-card-visual.xena-tilt-enabled > img,
.cover-card.xena-tilt-enabled > img {
  translate: 0 0 10px;
}

/* Never let cosmetic motion compete with combat, selection or dragging. */
.xena-tilt-enabled:is(.dragging,.selected,.attacker-selected,.dash-attack,.impact-recoil,.death-shatter,.effect-focus-card),
[aria-grabbed="true"].xena-tilt-enabled {
  --xena-tilt-axis-x: 0 !important;
  --xena-tilt-axis-y: 0 !important;
  --xena-tilt-angle: 0deg !important;
  --xena-tilt-lift: 0px !important;
}

@media (prefers-reduced-motion: reduce) {
  .xena-tilt-enabled {
    rotate: none !important;
    translate: none !important;
    transition: none !important;
    will-change: auto !important;
  }
  .gcard.xena-tilt-enabled > .thumb,
  .cta-card.xena-tilt-enabled > :first-child,
  .game-card-visual.xena-tilt-enabled > img,
  .cover-card.xena-tilt-enabled > img { translate: none !important; }
}
