/* V1.45. Holographic finishes only. No game state, input or roll timing rules.
   Light remains beneath checkers and labels; legal move guidance is untouched. */
:is(.theme-holoazure,.game-die.holoazure,.dr-skin-holoazure,.dice-holoazure,.checker-preview[data-checker="holoazure"]) {
  --holo-light:#bdffff; --holo-accent:#62f5ff; --holo-second:#bd9aff;
  --holo-color:#146e89; --holo-edge:#093a55; --holo-grid:#62f5ff12;
  --holo-glow:#31dfff30; --holo-wash:#42eaff16;
  --holo-pane-hi:#124457b5; --holo-pane-lo:#071622d9;
  --holo-scene:radial-gradient(ellipse at 30% 18%,#13536650,transparent 72%),#0c1420;
}
:is(.theme-holoorchid,.game-die.holoorchid,.dr-skin-holoorchid,.dice-holoorchid,.checker-preview[data-checker="holoorchid"]) {
  --holo-light:#ffd9ff; --holo-accent:#f3a0ff; --holo-second:#79e6f4;
  --holo-color:#82309b; --holo-edge:#39134f; --holo-grid:#ec92ff13;
  --holo-glow:#d58aff30; --holo-wash:#dd91ff16;
  --holo-pane-hi:#5a225db8; --holo-pane-lo:#1a102ad9;
  --holo-scene:radial-gradient(ellipse at 30% 18%,#7733834d,transparent 72%),#170e22;
}
:is(.theme-holoaurora,.game-die.holoaurora,.dr-skin-holoaurora,.dice-holoaurora,.checker-preview[data-checker="holoaurora"]) {
  --holo-light:#e5ffd3; --holo-accent:#91ffc8; --holo-second:#f4d786;
  --holo-color:#168a60; --holo-edge:#073d36; --holo-grid:#93ffb918;
  --holo-glow:#6ceeba2d; --holo-wash:#85ffc71a;
  --holo-pane-hi:#155f50b8; --holo-pane-lo:#081f23d9;
  --holo-scene:radial-gradient(ellipse at 30% 18%,#286d5550,transparent 72%),#0d1b22;
}
/* Recessed transparent projection tables. Original board themes stay unchanged. */
:is(.board-frame,.cosmetic-board-mini):is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) {
  --board-bg:#08111d; --board-bg-2:#0e2636; --rail:#091b29; --rail-hi:#254251;
  --point-a:var(--holo-accent); --point-b:var(--holo-second); --trim:var(--holo-accent);
  background:linear-gradient(135deg,var(--holo-pane-hi),var(--holo-pane-lo) 42%,var(--holo-pane-hi));
  box-shadow:inset 0 0 0 1px var(--holo-accent),inset 0 0 0 4px #060d1ca6,inset 0 0 0 5px var(--holo-glow),0 16px 38px #0007,0 0 22px var(--holo-glow);
}
:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) :is(.board-grid,.mini-felt) {
  background:linear-gradient(var(--holo-grid) 1px,transparent 1px),linear-gradient(90deg,var(--holo-grid) 1px,transparent 1px),radial-gradient(ellipse at 50% 0,var(--holo-wash),transparent 80%),#09111d;
  background-size:24px 24px,24px 24px,100% 100%,100% 100%;
  box-shadow:inset 0 0 0 1px var(--holo-glow),inset 0 0 35px #0006;
}
#gameBoard:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) :is(.bar-column,.board-balance-rail,.bearoff-tray),
.cosmetic-board-mini:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .mini-spine {
  background:repeating-linear-gradient(0deg,transparent 0 5px,var(--holo-grid) 5px 6px),linear-gradient(90deg,#07121ecc,var(--holo-pane-hi),#07121ecc);
  box-shadow:inset 1px 0 var(--holo-glow),inset -1px 0 var(--holo-glow);
}
#gameBoard:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .point::before {
  --holo-point:var(--point-a); opacity:.82;
  background:repeating-linear-gradient(0deg,transparent 0 5px,#080f2933 5px 6px),linear-gradient(90deg,var(--holo-point),#10213266 13% 87%,var(--holo-point)),var(--holo-point);
  filter:drop-shadow(0 0 2px var(--holo-glow));
}
#gameBoard:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .point.tone-b::before { --holo-point:var(--point-b); }
.cosmetic-board-mini:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .mini-inlay {
  --holo-point:var(--point-a);
  background:repeating-linear-gradient(0deg,transparent 0 5px,#080f2926 5px 6px),linear-gradient(90deg,var(--holo-point),#10213233 13% 87%,var(--holo-point)),var(--holo-point);
  opacity:.85;
}
.cosmetic-board-mini:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .mini-inlay.b { --holo-point:var(--point-b); }
#gameBoard:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .board-grid::before {
  inset:0; pointer-events:none;
  background:linear-gradient(122deg,transparent 28%,var(--holo-wash) 45%,#ffffff0b 48%,transparent 55%);
  background-size:180% 100%; animation:holoProjectionLight 22s ease-in-out infinite alternate;
}
@keyframes holoProjectionLight { from {opacity:.35;background-position:0 0} to {opacity:.65;background-position:100% 0} }
/* A soft grid beneath the preview reinforces the suspended projection surface. */
.shop-card[data-material="hologram"] .material-board-preview {
  background:radial-gradient(ellipse at 50% 60%,#37617b35,transparent 68%),#0b1420;
  padding:23px;
}

/* Dice: same material for the inventory pair, move tokens and every 3D face.
   Bright solid pips remain legible. These rules never animate a die transform. */
:is(.game-die.holoazure,.game-die.holoorchid,.game-die.holoaurora,
.dr-skin-holoazure,.dr-skin-holoorchid,.dr-skin-holoaurora,
.dice-holoazure,.dice-holoorchid,.dice-holoaurora) {
  --dc-hi:var(--holo-pane-hi); --dc-lo:var(--holo-pane-lo);
  --dc-pip:var(--holo-light); --dc-edge:var(--holo-accent);
  --dc-art:repeating-linear-gradient(0deg,transparent 0 4px,var(--holo-grid) 4px 5px),linear-gradient(135deg,transparent 29%,var(--holo-wash) 30% 44%,#ffffff12 45% 47%,transparent 48%),linear-gradient(90deg,transparent 14%,var(--holo-grid) 15% 16%,transparent 17% 82%,var(--holo-grid) 83% 84%,transparent 85%);
  --dc-scene:var(--holo-scene);
}
.game-die:is(.holoazure,.holoorchid,.holoaurora) {
  background:var(--dc-art),linear-gradient(145deg,var(--dc-hi),var(--dc-lo));
  box-shadow:0 8px 20px #0007,inset 0 0 0 1.2px var(--holo-accent),inset 0 0 0 4px var(--holo-glow),0 0 16px var(--holo-glow);
}
.game-die:is(.holoazure,.holoorchid,.holoaurora) .die-pip {
  background:var(--holo-light); box-shadow:0 0 4px var(--holo-accent),0 0 0 .5px var(--holo-accent);
}
.dr-stage:is(.dr-skin-holoazure,.dr-skin-holoorchid,.dr-skin-holoaurora) {
  --dr-face-hi:var(--dc-hi); --dr-face-lo:var(--dc-lo); --dr-edge:var(--dc-edge);
  --dr-pip:var(--dc-pip); --dr-pip-light:transparent;
}
.dr-stage:is(.dr-skin-holoazure,.dr-skin-holoorchid,.dr-skin-holoaurora) .dr-face {
  background:var(--dc-art),linear-gradient(145deg,var(--dc-hi),var(--dc-lo));
  border-color:var(--holo-accent); box-shadow:inset 0 0 0 2px var(--holo-glow),inset 0 0 10px var(--holo-glow);
}
/* Vault checkers use the very same padded circular vector as live pieces. */
.checker-preview[data-material="hologram"] {
  --checker-face-light:var(--holo-light); --checker-face-color:var(--holo-color);
  --checker-face-edge:var(--holo-edge); --checker-face-accent:var(--holo-accent);
  --checker-face-hologram:1; --checker-face-opacity:.38;
  background:linear-gradient(#96dcff0b 1px,transparent 1px),linear-gradient(90deg,#96dcff0b 1px,transparent 1px),var(--holo-scene);
  background-size:22px 22px,22px 22px,100% 100%;
}
.checker-preview[data-material="hologram"] .collection-checker {
  border:0; background:none; box-shadow:0 12px 16px #0005,0 0 20px var(--holo-glow); overflow:visible;
}
.checker-preview[data-material="hologram"] .collection-checker > .checker-face {
  position:absolute;display:block;left:-8%;top:-8%;width:116%;height:116%;
  overflow:visible;pointer-events:none;max-width:none;border-radius:0;
}
@media (prefers-reduced-motion:reduce) {
  #gameBoard:is(.theme-holoazure,.theme-holoorchid,.theme-holoaurora) .board-grid::before { animation:none;opacity:.4; }
}
