/* One confirmed throw, with a deterministic final face, replaces the old CSS loop. */
.app .dx-board .dx-cube,.app .dx-board.dx-rolling .dx-cube{animation:none!important;will-change:transform;transition:none;transform-origin:50% 50%}
.app .dx-dice-stage{--dx-shadow-offset:32px;position:relative;overflow:visible}
.app .dx-dice-stage .dx-floor{top:calc(50% + var(--dx-shadow-offset));bottom:auto;width:78px;height:10px;transform:scale(var(--dx-shadow-scale,1));opacity:var(--dx-shadow-opacity,.6);filter:blur(5px);background:#0009;pointer-events:none}
.app .dx-board[data-result=won] .dx-glow{background:radial-gradient(ellipse,#ffad5d28,transparent 65%)}
.app-reduced-motion .dx-board .dx-cube{will-change:auto}
@media(prefers-reduced-motion:reduce){.app .dx-board .dx-cube{will-change:auto}}

/* The selected face is square to the camera before touchdown. */
.app .dx-board .dx-cube .dx-face{border-radius:2px;background:radial-gradient(ellipse at 50% 45%,#fff 35%,#f4f4f4 75%,#e1e2e5);border-color:#e4e4e7}
