/* Každý hráč má vlastné ovládanie; aktívny hráč je jediný, kto môže hrať. */
.player-actions { display:grid; grid-template-columns:1fr 1.2fr; gap:.4rem; margin-top:.75rem; }
.player-actions button { min-height:36px; padding:.35rem .25rem; border-radius:9px; box-shadow:none; font-size:.61rem; white-space:nowrap; }
.player-roll { background:#e4e5de; color:var(--ink); }.player-bank { background:var(--lime); color:var(--ink); }
.player-card:not(.active) .player-actions { opacity:.38; }
.player-card.active .player-roll { background:var(--lime); }.player-card.active .player-bank { background:white; color:var(--ink); }
.head-to-head > .player-card:first-child { transform:rotate(180deg); }
.head-to-head > .player-card:first-child.active { transform:rotate(180deg) translateY(-3px); }
.head-to-head > .player-card:last-child { transform:none; }
.head-to-head > .player-card:last-child.active { transform:translateY(-3px); }
.head-to-head > .player-card { min-width:250px; }
.head-to-head > .player-card { display:flex; flex-direction:column; }
.head-to-head > .player-card .player-actions { order:0; margin:.75rem 0 0; }
.head-to-head .roll-zone { padding:1rem 0; }
.head-to-head .cube-scene { margin:.1rem auto; }
.cube-face.two, .cube-face.three, .cube-face.four, .cube-face.five, .cube-face.six { grid-template:repeat(3,1fr) / repeat(3,1fr); }
.cube-face i { justify-self:center !important; align-self:center !important; }
.two i:nth-child(1) { grid-area:1 / 1; }.two i:nth-child(2) { grid-area:3 / 3; }
.three i:nth-child(1) { grid-area:1 / 1; }.three i:nth-child(2) { grid-area:2 / 2; }.three i:nth-child(3) { grid-area:3 / 3; }
.four i:nth-child(1) { grid-area:1 / 1; }.four i:nth-child(2) { grid-area:1 / 3; }.four i:nth-child(3) { grid-area:3 / 1; }.four i:nth-child(4) { grid-area:3 / 3; }
.five i:nth-child(1) { grid-area:1 / 1; }.five i:nth-child(2) { grid-area:1 / 3; }.five i:nth-child(3) { grid-area:2 / 2; }.five i:nth-child(4) { grid-area:3 / 1; }.five i:nth-child(5) { grid-area:3 / 3; }
.six i:nth-child(1) { grid-area:1 / 1; }.six i:nth-child(2) { grid-area:1 / 3; }.six i:nth-child(3) { grid-area:2 / 1; }.six i:nth-child(4) { grid-area:2 / 3; }.six i:nth-child(5) { grid-area:3 / 1; }.six i:nth-child(6) { grid-area:3 / 3; }
.game-page .roll-zone { margin:1.25rem auto 0; }
.game-page .new-game { margin:1rem auto 0; }
.multiplayer-board { width:min(100%,640px); margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:.55rem; }
.multiplayer-board .roll-zone { grid-column:1 / -1; }
.is-rolling .cube { animation:real-roll .96s cubic-bezier(.16,.78,.22,1) both; }
@keyframes real-roll {
  0% { transform:translate3d(-112px,17px,0) rotateX(0) rotateY(0) rotateZ(0); }
  22% { transform:translate3d(-55px,-30px,25px) rotateX(360deg) rotateY(225deg) rotateZ(50deg); }
  55% { transform:translate3d(34px,-15px,8px) rotateX(720deg) rotateY(560deg) rotateZ(140deg); }
  78% { transform:translate3d(58px,2px,0) rotateX(910deg) rotateY(750deg) rotateZ(215deg); }
  100% { transform:translate3d(0,0,0) rotateX(calc(var(--rest-x) + 1080deg)) rotateY(calc(var(--rest-y) + 1080deg)) rotateZ(360deg); }
}
@media (max-width:430px) { .head-to-head { min-height:650px; }.head-to-head > .player-card { width:min(100%,280px); }.player-actions { margin-top:.7rem; gap:.55rem; }.player-actions button { min-height:52px; padding:.55rem .4rem; font-size:.82rem; letter-spacing:-.02em; }.head-to-head .roll-zone { padding:.3rem 0; }.cube-scene { height:124px; }.player-card small { margin-bottom:0; } }
/* Telefón je primárny herný režim: veľké prvky, ktoré sa dajú čítať aj trafiť prstom. */
@media (max-width:700px), (pointer:coarse) {
  .game-page .game-shell { padding:.75rem .8rem max(1rem, env(safe-area-inset-bottom)); }
  .game-page .game-intro { margin:.45rem 0 .7rem; }
  .game-page .game-intro h1 { font-size:1.7rem; }
  .head-to-head { width:100%; height:calc(100dvh - 94px); min-height:650px; }
  .head-to-head > .player-card { width:100%; min-width:0; max-width:360px; padding:1rem .95rem; border-radius:18px; }
  .player-label, .player-card small { font-size:.78rem; }
  .player-card strong { margin:.26rem 0 .2rem; font-size:2.55rem; }
  .head-to-head > .player-card .player-actions { gap:.65rem; margin-top:.9rem; }
  .player-actions button { min-height:62px; padding:.65rem .45rem; border-radius:12px; font-size:.98rem; }
  .head-to-head .roll-zone { padding:.5rem 0; }
  .turn-status { min-height:1.7rem; font-size:.88rem; }
  .cube-scene { width:174px; height:174px; perspective:820px; }
  .cube { --size:118px; }
  .cube-face { padding:20px; }
  .cube-face i { width:17px; height:17px; }
  .one { transform:translateZ(59px); }.six { transform:rotateY(180deg) translateZ(59px); }.three { transform:rotateY(90deg) translateZ(59px); }.four { transform:rotateY(-90deg) translateZ(59px); }.two { transform:rotateX(90deg) translateZ(59px); }.five { transform:rotateX(-90deg) translateZ(59px); }
  .round-score { padding:.6rem 1.5rem; }
  .round-score span { font-size:.72rem; }.round-score strong { font-size:2rem; }
  .new-game { min-height:42px; font-size:.8rem; }
  .multiplayer-board { position:relative; width:100%; max-width:430px; min-height:calc(100dvh - 105px); overflow:visible; }
  .multiplayer-board .player-card { min-width:0; padding:.65rem .42rem; border-radius:14px; }
  .multiplayer-board .player-label, .multiplayer-board .player-card small { font-size:.62rem; }
  .multiplayer-board .player-card strong { font-size:1.75rem; }
  .multiplayer-board .player-actions { gap:.35rem; margin-top:.5rem; }
  .multiplayer-board .player-actions button { min-height:44px; padding:.35rem .2rem; border-radius:9px; font-size:.68rem; }
  .players-4 { grid-template-columns:105px minmax(0,1fr) 105px; grid-template-rows:auto minmax(250px,1fr) auto; gap:.7rem .25rem; }
  .players-4 > .player-card:nth-child(1) { grid-area:1 / 2; width:92%; justify-self:center; transform:rotate(180deg); }
  .players-4 > .player-card:nth-child(2) { grid-area:2 / 3; width:155px; align-self:center; justify-self:center; transform:rotate(-90deg); }
  .players-4 > .player-card:nth-child(3) { grid-area:3 / 2; width:92%; justify-self:center; }
  .players-4 > .player-card:nth-child(4) { grid-area:2 / 1; width:155px; align-self:center; justify-self:center; transform:rotate(90deg); }
  .players-4 > .roll-zone { grid-area:2 / 2; align-self:center; justify-self:center; margin:0; }
  .players-3 { grid-template-columns:1fr 1fr; grid-template-rows:auto minmax(230px,1fr) auto; gap:.7rem; }
  .players-3 > .player-card:nth-child(1) { grid-area:1 / 1 / 2 / 3; width:72%; justify-self:center; transform:rotate(180deg); }
  .players-3 > .player-card:nth-child(2) { grid-area:3 / 1 / 4 / 3; width:72%; justify-self:center; }
  .players-3 > .player-card:nth-child(3) { grid-area:2 / 2; width:155px; align-self:center; justify-self:center; transform:rotate(90deg); }
  .players-3 > .roll-zone { grid-area:2 / 1; align-self:center; justify-self:center; margin:0; }
  .players-3 > .roll-zone .cube-scene, .players-4 > .roll-zone .cube-scene { width:132px; height:132px; }
  .players-3 > .roll-zone .cube, .players-4 > .roll-zone .cube { --size:96px; }
  .players-3 > .roll-zone .cube-face, .players-4 > .roll-zone .cube-face { padding:16px; }
  .players-3 > .roll-zone .cube-face i, .players-4 > .roll-zone .cube-face i { width:14px; height:14px; }
  .players-3 > .roll-zone .one, .players-4 > .roll-zone .one { transform:translateZ(48px); }.players-3 > .roll-zone .six, .players-4 > .roll-zone .six { transform:rotateY(180deg) translateZ(48px); }.players-3 > .roll-zone .three, .players-4 > .roll-zone .three { transform:rotateY(90deg) translateZ(48px); }.players-3 > .roll-zone .four, .players-4 > .roll-zone .four { transform:rotateY(-90deg) translateZ(48px); }.players-3 > .roll-zone .two, .players-4 > .roll-zone .two { transform:rotateX(90deg) translateZ(48px); }.players-3 > .roll-zone .five, .players-4 > .roll-zone .five { transform:rotateX(-90deg) translateZ(48px); }
}
