/* HD table look. Everything is scoped under html.poker-hd, which ui/hd.js adds only after first paint and an
 * idle moment (and never with ?hd=0). Without the class the page is the classic table, byte for byte. */
html.poker-hd .p-play{position:relative;isolation:isolate}
html.poker-hd .p-play::after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(120% 62% at 50% 22%,rgba(255,238,196,.17),transparent 62%),
    radial-gradient(150% 110% at 50% 118%,rgba(0,0,0,.46),transparent 56%),
    radial-gradient(90% 90% at 50% 50%,transparent 62%,rgba(0,0,0,.34)),var(--hd-grain,none);
  background-size:auto,auto,auto,160px 160px;mix-blend-mode:normal}
/* Lift content above the table light; leave the chip layer and the shell's fixed dock/hint alone. */
html.poker-hd .p-play>:not(.hd-fx):not(.pip-dock):not(.pip-hint):not(.pip-backdrop):not(.pip-overlay){position:relative;z-index:1}
html.poker-hd .p-play>.hd-fx{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:visible}
html.poker-hd .p-tablebar{background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 55%),var(--color-poker-shade);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 .25rem .8rem rgba(0,0,0,.35)}
html.poker-hd .p-seat{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,0) 42%),var(--color-poker-seat);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 .35rem .9rem rgba(0,0,0,.42)}
html.poker-hd .p-turn{box-shadow:inset 0 0 0 2px var(--color-poker-gold),0 0 1.1rem rgba(230,187,105,.38),0 .35rem .9rem rgba(0,0,0,.42)}
/* Cards: studio lighting. Paper bevel, layered contact shadow, soft glare that sweeps on deal/flip. */
html.poker-hd .p-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(60,40,10,.2),0 1px 1px rgba(0,0,0,.45),0 .25rem .45rem -.05rem rgba(0,0,0,.45),0 .7rem 1rem -.35rem rgba(0,0,0,.5);will-change:auto}
html.poker-hd .p-card:not(.p-back){background-image:linear-gradient(150deg,#fffef8 0%,var(--color-poker-cream) 55%,#f1e0b6 100%)}
html.poker-hd .p-card.p-back{box-shadow:inset 0 0 0 1px rgba(255,226,150,.6),inset 0 0 .5rem rgba(0,0,0,.55),0 1px 1px rgba(0,0,0,.5),0 .25rem .45rem -.05rem rgba(0,0,0,.5),0 .7rem 1rem -.35rem rgba(0,0,0,.5)}
html.poker-hd .p-card::after{content:"";position:absolute;inset:-12% -130%;pointer-events:none;z-index:3;
  background:linear-gradient(112deg,transparent 41%,rgba(255,255,255,.2) 48%,rgba(255,255,255,.04) 55%,transparent 62%);transform:translateX(6%)}
html.poker-hd .p-card.hd-sheen::after{animation:hdSheen .8s cubic-bezier(.2,.7,.2,1) both}
html.poker-hd .p-facework{filter:contrast(1.05) saturate(1.07)}
@keyframes hdSheen{from{transform:translateX(-30%)}to{transform:translateX(30%)}}
/* Chips (sprite rendered offline by tools/hd-render.py). */
.hd-fx{position:absolute;inset:0;pointer-events:none}
.hd-stack{position:absolute;display:flex;align-items:flex-end;transform:translate(-50%,-100%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.hd-col{position:relative;flex:none}
.hd-chip{position:absolute;left:0;display:block;background-image:var(--hd-chips);background-repeat:no-repeat;background-size:500% 100%}
.hd-fly{transform:translate(-50%,-100%);left:0;top:0;filter:drop-shadow(0 3px 3px rgba(0,0,0,.4))}
@media (prefers-reduced-motion:reduce){html.poker-hd .p-card.hd-sheen::after{animation:none}}
