/* Revealed opponent hands retain their tray and original red dice. */
body.first-person-demo.at-table .table .seats .seat .cup-model:has(.table-hand)::before{display:none}
body.first-person-demo.at-table .table[data-seat-count] .seats .seat .cup-model .table-hand{
  position:absolute;inset:0;width:100%;height:100%;padding:0;gap:0;
  background:none;border:0;border-radius:0;box-shadow:none;z-index:1;
}
body.first-person-demo.at-table .table .seats .seat.is-you .cup-model .table-hand,
body.first-person-demo.at-table .table.is-revealed .seats .seat .cup-model .table-hand{display:block}
/* The tray's lower band is opaque metal; its inner floor catches the dice shadows. */
.table-hand::before{
  content:'';position:absolute;inset:51% 0 2%;border-radius:50%;
  background:linear-gradient(90deg,#151d23 0%,#9199a0 12%,#e4e8e8 26%,#777e83 44%,#d1d9d9 70%,#343c42 91%);
  box-shadow:0 2px 0 #080d13,0 5px 5px #0008,inset 0 -2px 1px #0e151b;
}
.table-hand::after{
  content:'';position:absolute;inset:46% 0 10%;border-radius:50%;
  background:radial-gradient(ellipse at 46% 35%,#33464a,#19292d 62%,#10171c 64%,#2e373e 73%,#586269 80%,#1c242a 83%);
  border:1px solid #829295;box-shadow:inset 0 1px 1px #becbca4d;z-index:1;
}
body.first-person-demo.at-table .table .seats .seat .table-die{
  --tilt:-13deg;position:absolute;left:35%;top:48%;width:34%;height:auto;
  display:block;aspect-ratio:100/108;transform:translate(-50%,-50%) rotate(var(--tilt));
  filter:drop-shadow(1px 3px 1px #080e1766);z-index:2;pointer-events:none;
}
.table-die-face{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));
  width:100%;height:94%;padding:18%;gap:9%;border-radius:21%;
  background:linear-gradient(145deg,#ed4c3e 3%,#d32d30 54%,#a91928);
  box-shadow:inset 1px 2px 1px #ffb1a58c,inset -1px -1px 1px #780d2280,0 3px 0 #7e1722;
}
.table-die-face .table-die-pip{
  width:100%;aspect-ratio:1;align-self:center;justify-self:center;border-radius:50%;
  background:#fffdf6;box-shadow:inset 0 1px 0 #fff,0 1px 0 #8d1a283d;
}
body.first-person-demo.at-table .table .seats .seat .table-die:nth-child(2){left:65%;top:46%;--tilt:14deg;z-index:3}
body.first-person-demo.at-table .table .seats .seat .table-die:nth-child(3){left:24%;top:65%;--tilt:-19deg;z-index:4}
body.first-person-demo.at-table .table .seats .seat .table-die:nth-child(4){left:77%;top:65%;--tilt:16deg;z-index:5}
body.first-person-demo.at-table .table .seats .seat .table-die:nth-child(5){left:50%;top:77%;--tilt:-9deg;z-index:6}
/* Opponent reveals use five separate slots. The private strip below the table
   keeps its existing sizing and poses in player-hand-strip.css. */
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .cup-model .table-hand{
  inset:-20% auto auto -20%;width:140%;height:120%;
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));
  padding:4% 3% 8%;gap:5% 0;align-items:center;justify-items:center;
}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand::before{
  inset:3% 0 0;border-radius:24% / 22%;
  box-shadow:0 2px 0 #080d13,0 4px 5px #0007,inset 0 -2px 1px #0e151b;
}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand::after{
  inset:0 2% 8%;border-radius:24% / 22%;
  background:radial-gradient(ellipse at 45% 20%,#354456,#1b293d 65%,#111a29);
  border-color:#8bb5c477;
}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .table-die{
  position:relative;inset:auto;width:86%;height:auto;max-height:100%;
  grid-column:2 / span 2;grid-row:1;transform:none;--tilt:0deg;
  filter:drop-shadow(0 1px 1px #04091388);z-index:2;
}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .table-die:nth-child(2){grid-column:4 / span 2;grid-row:1}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .table-die:nth-child(3){grid-column:1 / span 2;grid-row:2}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .table-die:nth-child(4){grid-column:3 / span 2;grid-row:2}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .table-die:nth-child(5){grid-column:5 / span 2;grid-row:2}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .table-die-face{
  padding:15%;gap:6%;border-radius:19%;
  box-shadow:inset 1px 1px 1px #ffb1a58c,inset -1px -1px 1px #780d2280,0 2px 0 #7e1722;
}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .table-hand .matched .table-die-face{outline:1px solid #98f7fa;outline-offset:1px}
body.first-person-demo.at-table .table.is-revealed .seats .seat:not(.is-you) .dice-cup{opacity:0}
@media(prefers-reduced-motion:reduce){.table-die{transition:none}}
