/* A single pair of physical dice on the cloth. Each die has six real faces. */
body[data-game=craps] .cr-throw-lane{--edge:clamp(18px,4.6vh,42px);position:relative;isolation:isolate;pointer-events:none;display:flex;align-items:center;justify-content:center;gap:calc(var(--edge)*.75);padding:0;overflow:visible}
body.public-table-games[data-game=craps] #gameBoard .cr-throw-lane{position:absolute;inset:32% auto auto 12%;width:76%;height:12%;margin:0;z-index:3;--edge:clamp(13px,min(3.2cqw,6.8cqh),39px)}
.cr-traveler,.cr-lift,.cr-angle,.cr-cube{display:block;position:relative;width:var(--edge);height:var(--edge);flex:0 0 var(--edge);transform-style:preserve-3d}
.cr-angle{transform:rotateX(-58deg) rotateY(-21deg)}
.cr-face{position:absolute;inset:0;display:block;border:1px solid #e65852;border-radius:14%;backface-visibility:hidden;background:linear-gradient(140deg,#e33232,#ad0b17 55%,#7f0d17);box-shadow:inset 1px 1px 2px #ffb4a366,inset -1px -2px 2px #5f0d1980}
.cr-face[data-face="1"]{transform:rotateX(90deg) translateZ(calc(var(--edge)*.5))}
.cr-face[data-face="2"]{transform:translateZ(calc(var(--edge)*.5))}
.cr-face[data-face="3"]{transform:rotateY(90deg) translateZ(calc(var(--edge)*.5))}
.cr-face[data-face="4"]{transform:rotateY(-90deg) translateZ(calc(var(--edge)*.5))}
.cr-face[data-face="5"]{transform:rotateY(180deg) translateZ(calc(var(--edge)*.5))}
.cr-face[data-face="6"]{transform:rotateX(-90deg) translateZ(calc(var(--edge)*.5))}
.cr-pip{display:block;position:absolute;width:18%;height:18%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 62% 66%,#fffcec 46%,#f9d9b2 78%,#b4856b 99%)}
.cr-shadow{position:absolute;inset:70% -17% -13% 3%;border-radius:50%;background:#1a0707;filter:blur(2px);opacity:.38;pointer-events:none}
body[data-game=craps] .felt-table .cr-throw-lane{width:100%;height:clamp(46px,12dvh,110px);margin:4px auto;padding:0}
.cr-throw-lane[aria-busy] .cr-cube,.cr-throw-lane[aria-busy] .cr-traveler{will-change:transform}
/* In embedded clubs the previous fixed wager bar could sit over the throwing lane. */
body.private-house[data-game=craps]:has(#gameBoard) .slot-lounge{display:flex;flex-direction:column;gap:3px;min-height:100dvh;padding:3px 1% 5px}
body.private-house[data-game=craps]:has(#gameBoard) .company-table.isn-seated-group{flex:none;margin:0;padding:0 4%;min-height:0;height:clamp(56px,22dvh,175px);overflow:visible}
body.private-house[data-game=craps]:has(#gameBoard) .company-table article{min-width:0;max-height:100%;align-self:end}
body.private-house[data-game=craps]:has(#gameBoard) .company-table .seated-figure{height:clamp(27px,13dvh,105px);min-height:0}
body.private-house[data-game=craps]:has(#gameBoard) .company-table .seated-figure :is(img,svg.vip-portrait){height:100%!important;max-height:100%}
body.private-house[data-game=craps]:has(#gameBoard) .play-layout{display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:0}
body.private-house[data-game=craps]:has(#gameBoard) .felt-table{min-height:0;padding:clamp(3px,1.2dvh,10px) 8% clamp(8px,3dvh,25px);--rail-top:8dvh;--rail-bottom:5dvh}
body.private-house[data-game=craps]:has(#gameBoard) .table-marquee{margin:0 auto 2px;padding:1px 12px}
body.private-house[data-game=craps]:has(#gameBoard) .table-marquee h1{font-size:clamp(16px,3.4dvh,28px);line-height:1.05}
body.private-house[data-game=craps]:has(#gameBoard) .table-marquee :is(span,p){margin:0;font-size:clamp(7px,1.3dvh,11px)}
body.private-house[data-game=craps]:has(#gameBoard) #gameBoard{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(2px,.6dvh,5px) 2%;min-height:0}
body.private-house[data-game=craps]:has(#gameBoard) #gameBoard>*{grid-column:1/-1;margin:0}
body.private-house[data-game=craps]:has(#gameBoard) #gameBoard .craps-point{grid-column:1;gap:4px}
body.private-house[data-game=craps]:has(#gameBoard) .point-puck{width:clamp(18px,4.5dvh,39px);height:auto;aspect-ratio:1;font-size:clamp(9px,1.8dvh,15px);border-width:1px}
body.private-house[data-game=craps]:has(#gameBoard) #gameBoard .point-track{grid-column:2;min-width:0}
body.private-house[data-game=craps]:has(#gameBoard) .point-track span{padding:2px;font-size:clamp(11px,2.7dvh,21px)}
body.private-house[data-game=craps]:has(#gameBoard) .felt-table .cr-throw-lane{height:clamp(42px,17dvh,135px);--edge:clamp(16px,5.5dvh,45px)}
body.private-house[data-game=craps]:has(#gameBoard) .line-bets .game-button{padding:2px 5px;min-height:clamp(21px,4dvh,37px);font-size:clamp(11px,2.2dvh,18px)}
body.private-house[data-game=craps]:has(#gameBoard) .line-bets small{margin:0;font-size:clamp(7px,1.2dvh,10px)}
body.private-house[data-game=craps]:has(#gameBoard) .craps-note{font-size:clamp(8px,1.55dvh,12px)}
body.private-house[data-game=craps]:has(#gameBoard) .table-result{margin:3px 0 0;padding:3px;min-height:0;font-size:clamp(10px,1.8dvh,14px)}
body.private-house[data-game=craps]:has(#gameBoard) .play-controls{position:static;display:flex;flex-wrap:wrap;gap:4px;padding:3px 6px}
body.private-house[data-game=craps]:has(#gameBoard) .room-details{margin:1px 0;display:grid;grid-template-columns:1fr 1fr;gap:3px}
body.private-house[data-game=craps]:has(#gameBoard) .room-details summary{padding:3px 6px;font-size:11px}
@media(max-height:450px) and (orientation:landscape){
 body.private-house[data-game=craps]:has(#gameBoard) .slot-lounge{padding-top:0;gap:1px}
 body.private-house[data-game=craps]:has(#gameBoard) .company-table.isn-seated-group{height:clamp(35px,18dvh,65px)}
 body.private-house[data-game=craps]:has(#gameBoard) .company-table .seated-figure{height:clamp(18px,10dvh,40px)}
 body.private-house[data-game=craps]:has(#gameBoard) .company-table article :is(strong,small){font-size:8px;line-height:1}
 body.private-house[data-game=craps]:has(#gameBoard) .table-marquee{display:flex;align-items:center;gap:5px}
 body.private-house[data-game=craps]:has(#gameBoard) .felt-table{padding:2px 7% 4px}
 body.private-house[data-game=craps]:has(#gameBoard) #gameBoard{grid-template-columns:auto minmax(0,1fr) auto;gap:1px 8px}
 body.private-house[data-game=craps]:has(#gameBoard) #gameBoard .dice-total{grid-column:3;grid-row:1;font-size:9px}
 body.private-house[data-game=craps]:has(#gameBoard) .line-bets .game-button{display:flex;justify-content:center;align-items:center;gap:6px}
 body.private-house[data-game=craps]:has(#gameBoard) .craps-note{font-size:8px}
}
body.private-house[data-game=craps]:has(#gameBoard) .play-controls{flex-direction:row}
@media(max-width:680px),(max-height:450px){
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(50px,.6fr) minmax(78px,.9fr);grid-template-areas:"balance last last" "blabel wlabel action" "bet wager action" "reset reset reset";gap:2px 5px;align-items:center;justify-content:stretch}
 .private-house[data-game=craps] .play-controls .balance-readout{grid-area:balance;display:flex;align-items:baseline;gap:4px}
 .private-house[data-game=craps] .play-controls .last-spin{grid-area:last;display:flex;justify-content:space-around;gap:4px}
 .private-house[data-game=craps] .play-controls .last-spin>div{display:flex;align-items:baseline;gap:3px}
 .private-house[data-game=craps] .play-controls label[for=choice]{grid-area:blabel}
 .private-house[data-game=craps] .play-controls label[for=wager]{grid-area:wlabel}
 body.private-house[data-game=craps]:has(#gameBoard) #choice{grid-area:bet;width:100%;height:28px}
 body.private-house[data-game=craps]:has(#gameBoard) #wager{grid-area:wager;width:100%;height:28px}
 body.private-house[data-game=craps]:has(#gameBoard) #play{grid-area:action;width:100%;padding:4px;line-height:1.1}
 body.private-house[data-game=craps]:has(#gameBoard) #reset{grid-area:reset;justify-self:center}
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls :is(.balance-readout,.last-spin){width:auto;padding:0;margin:0;border:0}
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls :is(.balance-readout,.last-spin) span,.private-house[data-game=craps] .play-controls label{font:600 9px/1.05 Arial;padding:0}
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls :is(.balance-readout,.last-spin) strong{font:700 14px/1.1 Georgia;margin:0}
}
@media(max-height:450px) and (orientation:landscape){
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls{grid-template-columns:.9fr 1.2fr 1fr .65fr 1.1fr;grid-template-areas:"balance last blabel wlabel action" "reset reset bet wager action"}
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls>*{padding:0 2px}
}
.cr-traveler:nth-child(2) .cr-angle{transform:rotateX(-58deg) rotateY(16deg)}
@media(max-height:320px) and (orientation:landscape){
 body.private-house[data-game=craps]:has(#gameBoard) .balance-readout>span{display:none}
 body.private-house[data-game=craps]:has(#gameBoard) .table-marquee{margin:0 auto;padding:0 8px}
 body.private-house[data-game=craps]:has(#gameBoard) .table-marquee h1{font-size:14px}
 body.private-house[data-game=craps]:has(#gameBoard) .felt-table .cr-throw-lane{height:clamp(22px,11dvh,35px)}
 body.private-house[data-game=craps]:has(#gameBoard) .table-result{line-height:1.05;padding:1px 2px;margin-top:1px}
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls{padding-block:1px;gap:1px 4px}
 body.private-house[data-game=craps]:has(#gameBoard) .play-controls :is(#choice,#wager){height:23px}
}
body.private-house[data-game=craps]:has(#gameBoard) .company-table:not(.isn-seated-group){box-sizing:border-box;height:clamp(56px,22dvh,175px);margin:0;overflow:hidden}
@media(max-height:450px) and (orientation:landscape){body.private-house[data-game=craps]:has(#gameBoard) .company-table:not(.isn-seated-group){height:clamp(35px,18dvh,65px)}}
