/* ===== VOID Pack Module 15.45 — VOID FX extraction foundation =====
   This file owns targeted VOID visual overrides that must load after style.css.
   Keep the 3D hierarchy rule here: in opening VOID, .single-card-wrap is the only
   element allowed to own perspective/3D transforms. Internal layers stay flat.
*/


/* ===== Module 15.46 — VOID FX custom properties foundation =====
   Centralise opening VOID visual constants before removing historical magic values.
   These variables tune flat internal FX only; 3D ownership remains locked below.
*/
:root {
  --void-border-opacity: .58;
  --void-border-hover-opacity: .18;
  --void-frame-border-opacity: .42;
  --void-frame-hover-opacity: .10;
  --void-frame-hover-visibility: .72;
  --void-glow-violet-soft: .28;
  --void-glow-violet-deep: .08;
  --void-glow-cyan-idle: .06;
  --void-glow-cyan-hover: .12;
  --void-glow-pink-hover: .14;

  --void-fullart-inset: .42rem .38rem .40rem .38rem;
  --void-fullart-radius: .96rem;
  --void-fullart-scale: 1.02;
  --void-art-object-position: 50% 47%;

  --void-label-top: .54rem;
  --void-label-x: .68rem;
  --void-name-bottom: .84rem;
  --void-name-size: clamp(1.04rem, 5.9vw, 1.46rem);
  --void-meta-bottom: .34rem;
  --void-meta-x: .70rem;
  --void-meta-opacity: .66;
  --void-scrim-x: .40rem;
  --void-scrim-bottom: .40rem;
  --void-scrim-height: 19%;

  --void-holo-opacity: .22;
  --void-holo-hover-opacity: .54;
  --void-holo-blur: 14px;
  --void-holo-hover-blur: 11px;
  --void-holo-saturation: 1.18;
  --void-holo-hover-saturation: 1.34;
  --void-holo-brightness: .82;
  --void-holo-hover-brightness: .94;
  --void-holo-scale: 1.16;
  --void-holo-duration: 42s;

  --void-edge-opacity: .035;
  --void-edge-hover-opacity: .055;
  --void-edge-blur: 22px;
  --void-edge-saturation: .55;
  --void-edge-brightness: .48;

  --void-shards-opacity: .54;
  --void-shard-opacity: .62;
  --void-shard-width: 12%;
  --void-shard-height: 2px;
  --void-particles-hover-opacity: .82;

  --void-z-label: var(--z-void-label);
  --void-z-holo: var(--z-void-holo);
  --void-z-shards: var(--z-void-shards);
}

/* ===== Module 15.48 — extracted Module 15.40 full-art opening base =====
   Surgical opening-only pass:
   - restore full-art layout by taking VOID/GLOBAL + title out of the flow
   - keep external glow breathing behind the whole card
   - replace the sharp green beam with a slow, broad, low-opacity optical sheen
   - do not reintroduce any internal pulse
*/
.void-legacy-opening .single-card-wrap.void-card-revealed.revealed-mode::before {
  content: '' !important;
  position: absolute !important;
  inset: -5.8rem -5.2rem !important;
  z-index: -1 !important;
  pointer-events: none !important;
  border-radius: 3.4rem !important;
  background:
    radial-gradient(circle at 50% 56%, rgba(168, 85, 247, .34), transparent 60%),
    radial-gradient(circle at 54% 42%, rgba(61, 247, 255, .12), transparent 58%),
    radial-gradient(circle at 50% 80%, rgba(244, 114, 182, .13), transparent 50%) !important;
  filter: blur(36px) !important;
  opacity: .50 !important;
  transform: translateZ(-1px) scale(.98) !important;
  animation: opening-void-external-glow-breathe 4.2s ease-in-out infinite !important;
}

/* Full-art layout: UI becomes overlay; art fills the card face. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__content,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__content {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: .62rem !important;
  overflow: hidden !important;
  border-radius: calc(1.2rem - 2px) !important;
  clip-path: inset(0 round calc(1.2rem - 2px)) !important;
  background: transparent !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__topline,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__topline {
  position: absolute !important;
  z-index: var(--z-opening-suspense) !important;
  left: .72rem !important;
  right: .72rem !important;
  top: .52rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  min-height: 0 !important;
  margin: 0 !important;
  pointer-events: none !important;
  text-shadow: 0 0 .65rem rgba(0, 0, 0, .95), 0 0 .7rem rgba(168, 85, 247, .36) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__art,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__art {
  position: absolute !important;
  z-index: var(--z-void-art) !important;
  inset: .72rem .58rem .58rem .58rem !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  aspect-ratio: auto !important;
  border-radius: .78rem !important;
  overflow: hidden !important;
  background: #020007 !important;
  transform: translateZ(0) scale(1.035) !important;
  transform-origin: 50% 52% !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__art img,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__art img,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__layer img,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__layer img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 48% !important;
}

/* Name/meta overlay sits over the full art instead of reserving a footer block. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__name,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__name {
  position: absolute !important;
  z-index: var(--z-void-label) !important;
  left: .74rem !important;
  right: .74rem !important;
  bottom: 1.28rem !important;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  display: block !important;
  font-size: clamp(1.02rem, 6.1vw, 1.5rem) !important;
  line-height: .92 !important;
  text-align: left !important;
  text-shadow: 0 .12rem .5rem rgba(0, 0, 0, .95), 0 0 .75rem rgba(168, 85, 247, .35) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__meta,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__meta {
  position: absolute !important;
  z-index: var(--z-void-label) !important;
  left: .76rem !important;
  right: .76rem !important;
  bottom: .58rem !important;
  min-height: 0 !important;
  margin: 0 !important;
  font-size: .62rem !important;
  text-align: left !important;
  opacity: .72 !important;
  text-shadow: 0 .1rem .4rem rgba(0, 0, 0, .95) !important;
}

/* Subtle readable title backing, not a large black footer. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__content::after,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__content::after {
  content: '' !important;
  position: absolute !important;
  z-index: var(--z-void-scrim) !important;
  left: .58rem !important;
  right: .58rem !important;
  bottom: .58rem !important;
  height: 22% !important;
  pointer-events: none !important;
  border-radius: 0 0 .78rem .78rem !important;
  background: linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,.30) 52%, transparent 100%) !important;
}

/* Replace the distracting sharp green beam with a broad, slow optical iridescence. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__shine {
  z-index: var(--z-void-holo) !important;
  opacity: .30 !important;
  mix-blend-mode: screen !important;
  filter: blur(8px) saturate(1.25) brightness(.92) !important;
  transform: translateZ(30px) scale(1.08) !important;
  animation: void-optical-sheen-slow 18s ease-in-out infinite !important;
  background:
    radial-gradient(ellipse 52% 34% at var(--mx, 50%) var(--my, 50%), rgba(168, 85, 247, .20), transparent 66%),
    radial-gradient(ellipse 34% 24% at calc(var(--mx, 50%) + 12%) calc(var(--my, 50%) - 8%), rgba(61, 247, 255, .13), transparent 70%),
    linear-gradient(104deg,
      transparent 0 38%,
      rgba(255, 255, 255, .055) 47%,
      rgba(168, 85, 247, .090) 52%,
      rgba(61, 247, 255, .045) 57%,
      transparent 69% 100%),
    conic-gradient(from 255deg at var(--mx, 50%) var(--my, 50%),
      rgba(168,85,247,0), rgba(168,85,247,.16), rgba(61,247,255,.105), rgba(244,114,182,.11), rgba(168,85,247,0)) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void:hover .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--void:focus-visible .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible .void-card__shine {
  opacity: .46 !important;
  filter: blur(7px) saturate(1.35) brightness(1) !important;
}

/* Keep edge energy static and weak; it was the visible green/cyan laser. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__edge-energy {
  opacity: .12 !important;
  animation: none !important;
  filter: blur(12px) saturate(.92) brightness(.72) !important;
  transform: scale(1.01) !important;
  mix-blend-mode: screen !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void:hover .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover .void-card__edge-energy {
  opacity: .16 !important;
}

/* Depth FX should read, but not wash the artwork. */
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__procedural-aura {
  opacity: .42 !important;
  filter: blur(.75rem) saturate(1.18) !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__void-smoke {
  opacity: .46 !important;
  filter: blur(.44rem) saturate(1.05) !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__void-mid-particles,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-particles {
  opacity: .60 !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__void-depth-glints,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards {
  opacity: .48 !important;
}

@keyframes void-optical-sheen-slow {
  0%, 100% {
    background-position: 0% 50%, 50% 50%, -95% 0, 50% 50%;
  }
  50% {
    background-position: 0% 50%, 50% 50%, 130% 0, 50% 50%;
  }
}

/* Module 15.41 VOID hover material moved to src/ui/void-fx.css in Module 15.46. */

/* ===== Module 15.46 — VOID opening material variables =====
   Moved from style.css and converted to custom properties.
   Ciblage opening actif uniquement.
   - Le contour violet se calme au hover pour laisser l'irisé devenir la matière dominante.
   - Le reflet vert/cyan devient une nappe optique très lente et diffuse, plus un rayon fin.
   - Les labels restent en overlay sans réserver de place dans l'art.
   - Le scrim bas est adouci pour mieux suivre le full-art.
   - Les shards CSS évitent visage/main : bords et coins uniquement.
*/
.void-legacy-opening .void-pack-face-slot .void-card--void,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void {
  border-color: rgba(168, 85, 247, var(--void-border-opacity)) !important;
  box-shadow:
    0 0 16px rgba(168, 85, 247, var(--void-glow-violet-soft)),
    0 0 42px rgba(61, 247, 255, var(--void-glow-cyan-idle)),
    0 0 88px rgba(168, 85, 247, var(--void-glow-violet-deep)),
    inset 0 0 0 1px rgba(255, 255, 255, .035) !important;
  transition: border-color 220ms ease, box-shadow 220ms ease, filter 220ms ease !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void:hover,
.void-legacy-opening .void-pack-face-slot .void-card--void:focus-visible,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible {
  border-color: rgba(168, 85, 247, var(--void-border-hover-opacity)) !important;
  box-shadow:
    0 0 10px rgba(168, 85, 247, var(--void-border-hover-opacity)),
    0 0 38px rgba(61, 247, 255, var(--void-glow-cyan-hover)),
    0 0 86px rgba(244, 114, 182, var(--void-glow-pink-hover)),
    inset 0 0 0 1px rgba(255, 255, 255, .04) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__frame,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__frame {
  border-color: rgba(168, 85, 247, var(--void-frame-border-opacity)) !important;
  box-shadow:
    0 0 10px rgba(168, 85, 247, var(--void-border-hover-opacity)),
    inset 0 0 0 1px rgba(61, 247, 255, .045) !important;
  transition: border-color 220ms ease, box-shadow 220ms ease, opacity 220ms ease !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void:hover .void-card__frame,
.void-legacy-opening .void-pack-face-slot .void-card--void:focus-visible .void-card__frame,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover .void-card__frame,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible .void-card__frame {
  border-color: rgba(168, 85, 247, var(--void-frame-hover-opacity)) !important;
  box-shadow:
    0 0 8px rgba(168, 85, 247, var(--void-frame-hover-opacity)),
    0 0 22px rgba(61, 247, 255, .10),
    inset 0 0 0 1px rgba(255, 255, 255, .026) !important;
  opacity: var(--void-frame-hover-visibility) !important;
}

/* True full-art balance: art behind all UI, no top or footer reservation. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__art,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__art {
  inset: var(--void-fullart-inset) !important;
  border-radius: var(--void-fullart-radius) !important;
  transform: translateZ(0) scale(var(--void-fullart-scale)) !important;
  transform-origin: 50% 50% !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__art img,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__art img,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__layer img,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__layer img {
  object-position: var(--void-art-object-position) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__topline,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__topline {
  top: var(--void-label-top) !important;
  left: var(--void-label-x) !important;
  right: var(--void-label-x) !important;
  z-index: var(--void-z-label) !important;
  padding: 0 .08rem !important;
  color: rgba(255,255,255,.92) !important;
  text-shadow:
    0 1px 5px rgba(0,0,0,.95),
    0 0 12px rgba(168,85,247,.38) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__name,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__name {
  bottom: var(--void-name-bottom) !important;
  left: var(--void-label-x) !important;
  right: var(--void-label-x) !important;
  z-index: var(--void-z-label) !important;
  font-size: var(--void-name-size) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__meta,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__meta {
  bottom: var(--void-meta-bottom) !important;
  left: var(--void-meta-x) !important;
  right: var(--void-meta-x) !important;
  z-index: var(--void-z-label) !important;
  opacity: var(--void-meta-opacity) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__content::after,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__content::after {
  left: var(--void-scrim-x) !important;
  right: var(--void-scrim-x) !important;
  bottom: var(--void-scrim-bottom) !important;
  height: var(--void-scrim-height) !important;
  border-radius: 0 0 var(--void-fullart-radius) var(--void-fullart-radius) !important;
  background:
    linear-gradient(to top,
      rgba(0,0,0,.68) 0%,
      rgba(0,0,0,.38) 42%,
      rgba(0,0,0,.12) 72%,
      transparent 100%) !important;
}

/* Optical holo: iridescent material, not green laser. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__shine {
  z-index: var(--void-z-holo) !important;
  opacity: var(--void-holo-opacity) !important;
  mix-blend-mode: color-dodge !important;
  filter: blur(var(--void-holo-blur)) saturate(var(--void-holo-saturation)) brightness(var(--void-holo-brightness)) !important;
  transform: translateZ(34px) scale(var(--void-holo-scale)) !important;
  animation: void-iridescent-material-drift var(--void-holo-duration) ease-in-out infinite !important;
  background:
    radial-gradient(ellipse 56% 38% at var(--mx, 50%) var(--my, 50%), rgba(168, 85, 247, .16), transparent 70%),
    radial-gradient(ellipse 42% 28% at calc(var(--mx, 50%) + 10%) calc(var(--my, 50%) - 6%), rgba(61, 247, 255, .075), transparent 72%),
    linear-gradient(100deg,
      transparent 0 43%,
      rgba(255, 255, 255, .025) 49%,
      rgba(244, 114, 182, .038) 54%,
      rgba(61, 247, 255, .018) 60%,
      transparent 72% 100%),
    conic-gradient(from 248deg at var(--mx, 50%) var(--my, 50%),
      rgba(168,85,247,0),
      rgba(168,85,247,.105),
      rgba(61,247,255,.048),
      rgba(244,114,182,.090),
      rgba(168,85,247,0)) !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void:hover .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--void:focus-visible .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible .void-card__shine {
  opacity: var(--void-holo-hover-opacity) !important;
  filter: blur(var(--void-holo-hover-blur)) saturate(var(--void-holo-hover-saturation)) brightness(var(--void-holo-hover-brightness)) !important;
}

@keyframes void-iridescent-material-drift {
  0%, 100% { background-position: 0% 50%, 50% 50%, -180% 0, 50% 50%; }
  50% { background-position: 0% 50%, 50% 50%, 120% 0, 50% 50%; }
}

/* Disable the green/cyan beam layer as a visible actor. It can only contribute tiny ambience. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__edge-energy {
  opacity: var(--void-edge-opacity) !important;
  animation: none !important;
  filter: blur(var(--void-edge-blur)) saturate(var(--void-edge-saturation)) brightness(var(--void-edge-brightness)) !important;
  transform: scale(var(--void-fullart-scale)) !important;
  mix-blend-mode: screen !important;
}

.void-legacy-opening .void-pack-face-slot .void-card--void:hover .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--void:focus-visible .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible .void-card__edge-energy {
  opacity: var(--void-edge-hover-opacity) !important;
}

/* Shards: peripheral only. Never across face/head/hand. */
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards {
  opacity: var(--void-shards-opacity) !important;
  z-index: var(--void-z-shards) !important;
}

.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards i,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i {
  width: var(--void-shard-width) !important;
  height: var(--void-shard-height) !important;
  opacity: var(--void-shard-opacity) !important;
  filter: blur(.12px) brightness(.95) !important;
  box-shadow: 0 0 .55rem rgba(168,85,247,.36), 0 0 1rem rgba(61,247,255,.10) !important;
}

.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards i:nth-child(1),
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i:nth-child(1) {
  left: 12% !important; top: 16% !important; transform: rotate(-31deg) !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards i:nth-child(2),
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i:nth-child(2) {
  left: 82% !important; top: 18% !important; transform: rotate(28deg) !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards i:nth-child(3),
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i:nth-child(3) {
  left: 87% !important; top: 66% !important; transform: rotate(-43deg) !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards i:nth-child(4),
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i:nth-child(4) {
  left: 12% !important; top: 74% !important; transform: rotate(34deg) !important;
}
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void .void-card__css-shards i:nth-child(5),
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i:nth-child(5) {
  left: 74% !important; top: 38% !important; transform: rotate(13deg) !important;
}

/* Hover should feel like VOID matter activating: more particles, softer border. */
.void-legacy-opening .void-pack-face-slot .void-card--void:hover .void-card__css-particles,
.void-legacy-opening .void-pack-face-slot .void-card--void:focus-visible .void-card__css-particles,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:hover .void-card__css-particles,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible .void-card__css-particles {
  opacity: var(--void-particles-hover-opacity) !important;
  filter: drop-shadow(0 0 .7rem rgba(168,85,247,.72)) drop-shadow(0 0 .34rem rgba(61,247,255,.20)) !important;
}

/* ===== Module 15.42 — VOID opening 3D hierarchy lock =====
   Étape 1 refactor CSS: stabilise la pile 3D sans changer le DOM.
   Règle: en opening VOID, .single-card-wrap est le seul propriétaire des transforms 3D/float.
   Les éléments internes restent flat: opacity/filter/background uniquement.
*/
.void-legacy-opening .single-card-wrap.void-card-revealed.revealed-mode {
  transform-style: preserve-3d !important;
  will-change: transform !important;
}

/* Le glow externe suit le wrapper, mais ne crée plus son propre plan transformé. */
.void-legacy-opening .single-card-wrap.void-card-revealed.revealed-mode::before {
  transform: none !important;
  will-change: opacity, filter !important;
}

/* La carte rendue dans la face opening est un contenu plat: pas de tilt/float local. */
.void-legacy-opening .void-pack-face-slot .void-card--void,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void:hover,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--void:focus-visible,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void:hover,
.void-legacy-opening .single-card-wrap.revealed-mode .void-pack-face-slot .void-card--opening-face.void-card--void:focus-visible {
  transform: none !important;
  transform-style: flat !important;
  will-change: auto !important;
}

/* Tous les plans internes VOID sont aplatis en opening pour éviter les contextes 3D imbriqués. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__content,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__art,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__art--layered,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__layer-stack,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__layer,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__procedural-aura,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__void-smoke,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__void-mid-particles,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__void-depth-glints,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__css-particles,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__void-breath,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__void-holo,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__content,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__art,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__art--layered,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__layer-stack,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__layer,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__shine,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__edge-energy,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__procedural-aura,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__void-smoke,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__void-mid-particles,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__void-depth-glints,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-particles,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__void-breath,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__void-holo {
  transform: none !important;
  transform-style: flat !important;
  will-change: opacity, filter, background-position !important;
}

/* Les éclats gardent leur placement, mais pas de plan 3D ni de will-change transform. */
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__css-bolts i,
.void-legacy-opening .void-pack-face-slot .void-card--void .void-card__css-shards i,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-bolts i,
.void-legacy-opening .void-pack-face-slot .void-card--opening-face.void-card--void .void-card__css-shards i {
  will-change: opacity, filter !important;
}


/* ===== MODULE 15.49 ===== */
/* VOID FX isolated from opening layout structure */
