.layout-switch{position:fixed;right:max(10px,env(safe-area-inset-right));top:max(4px,env(safe-area-inset-top));z-index:25;width:clamp(48px,calc(82 * var(--u)),100px);height:clamp(48px,calc(82 * var(--u)),100px);padding:0;border:0;border-radius:50%;background:transparent;line-height:0;filter:drop-shadow(0 2px 3px #19030099);transition:filter .15s,transform .15s}.layout-switch img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.layout-switch:hover{filter:brightness(1.15) drop-shadow(0 2px 4px #19030099)}.layout-switch:active{transform:scale(.94)}
.game-carousel{scroll-behavior:auto;overflow-anchor:none;touch-action:none;-webkit-user-select:none;scroll-snap-type:none}
.carousel-belt{display:contents}
/* Portrait proportions measured from the supplied 1024 x 1536 reference. */
body.cabinet-view{--u:min(calc(var(--viewport-height) / 1080),calc(100vw / 720));background:#090606}
.cabinet-view .lobby-stage{position:absolute;width:100%;height:var(--viewport-height);left:0;top:0;transform:none;overflow:hidden;background:none}
.cabinet-view .lobby-stage::before{content:'';position:absolute;inset:0;background:url('assets/bg.png') center/cover no-repeat;pointer-events:none}
/* The strip includes a soft lower edge; align its gold row with the center sprite. */
.cabinet-view .top-hud{height:calc(86 * var(--u));background:url('assets/top-hud.png') calc(-1028 * var(--u)) calc(100% + 12 * var(--u))/calc(2414 * var(--u)) calc(142 * var(--u)) repeat-x;border:0;box-shadow:none}
.cabinet-view .top-hud::before{display:none}
.cabinet-view .top-middle{width:calc(566 * var(--u));height:calc(83 * var(--u));top:2px;filter:none}
.cabinet-view .av-logo{width:calc(230 * var(--u));height:calc(113 * var(--u));top:calc(-4 * var(--u))}
.cabinet-view .jackpots{display:none}
.cabinet-view .multi-title{top:calc(96 * var(--u));width:calc(622 * var(--u));height:calc(57 * var(--u));z-index:5;background:transparent url('assets/denominationbg.png') center/100% 100% no-repeat;border:0;border-radius:calc(34 * var(--u));box-shadow:none}
.cabinet-view .multi-game,.cabinet-view .multi-denom{height:calc(44 * var(--u));filter:none}
.cabinet-view .multi-game{left:calc(144 * var(--u));width:calc(180 * var(--u))}
.cabinet-view .multi-denom{left:calc(418 * var(--u));width:calc(296 * var(--u))}
/* Reveal cards beneath the HUD curves, stopping two pixels inside the stage edge. */
.cabinet-view .game-carousel{top:calc(140 * var(--u));height:calc(var(--viewport-height) - 242 * var(--u));width:100%;padding:0 calc(138 * var(--u));display:block;overflow:visible;--wheel-unit:max(var(--u),calc((var(--viewport-height) - 242 * var(--u)) / 838));perspective:calc(1500 * var(--wheel-unit));perspective-origin:50% 50%;clip-path:inset(0 0 calc(2px - 102 * var(--u)) 0)}
.cabinet-view .carousel-belt{display:flex;position:relative;flex-direction:column;align-items:center;gap:calc(24 * var(--u));will-change:transform;transform-style:preserve-3d}
.cabinet-view .game-tile{flex:0 0 calc(218 * var(--u));height:calc(218 * var(--u));width:calc(444 * var(--u));transform:translateY(var(--curve-y,0px)) translateZ(var(--depth,0px)) rotateX(var(--angle,0deg));border:0;border-radius:calc(12 * var(--u));background:transparent;box-shadow:none;backface-visibility:hidden}
.cabinet-frame{display:none}
.cabinet-view .game-frame{display:none}
/* Original sprite's nine-slice margins keep the gold bevel and corners uniform. */
.cabinet-view .cabinet-frame{display:block;position:absolute;inset:0;border:calc(24 * var(--u)) solid transparent;border-image-source:url('assets/thumbnail-frame.png');border-image-slice:41.54158020019531 41.56583786010742 41.54158020019531 41.56583786010742;border-image-width:calc(24 * var(--u));border-image-repeat:stretch;z-index:4;pointer-events:none}
.cabinet-view .game-thumbnail{visibility:hidden}
.cabinet-view [data-cabinet-game="zombie-awaken"] .game-thumbnail{visibility:visible;object-fit:contain}
.cabinet-view .bottom-hud{height:calc(103 * var(--u));z-index:6;background:none}
.cabinet-view .bottom-left,.cabinet-view .bottom-right{width:calc(50% - 80 * var(--u));height:calc(103 * var(--u));top:0;bottom:0;background-size:100% 100%}
.cabinet-view .bottom-left,.cabinet-view .bottom-right{display:block;background-image:url('assets/bottom-left-right.png')}
.cabinet-view .bottom-left{left:0}.cabinet-view .bottom-right{right:0}
.cabinet-view .bottom-hud::before{content:none}
/* Slice the original center sprite like the horizontal HUD: preserve curved ends. */
.cabinet-view .bottom-center{top:calc(23 * var(--u));bottom:auto;width:calc(420 * var(--u));height:calc(80 * var(--u));background:none;border-style:solid;border-color:transparent;border-width:0 calc(147 * var(--u));border-image:url('assets/bottom-middle.png') 0 90 fill stretch}
/* Cover subpixel joins between the original sprite's sliced sections. */
.cabinet-view .bottom-center::before,.cabinet-view .bottom-center::after{display:block;content:'';position:absolute;top:0;bottom:0;width:3px;background-image:url('assets/bottom-middle.png');background-size:calc(512 * 80 / 49 * var(--u)) calc(80 * var(--u));background-repeat:no-repeat;pointer-events:none}
.cabinet-view .bottom-center::before{left:-1.5px;background-position:calc(-89 * 80 / 49 * var(--u)) top}
.cabinet-view .bottom-center::after{right:-1.5px;background-position:calc(-420 * 80 / 49 * var(--u)) top}
.cabinet-view .credit-display,.cabinet-view .win-display{top:calc(26 * var(--u));width:calc(164 * var(--u));height:calc(65 * var(--u));left:calc(28 * var(--u))}
.cabinet-view .win-display{left:auto;right:calc(28 * var(--u))}
.cabinet-view .wallet-label{display:block;top:0;width:calc(110 * var(--u));height:calc(20 * var(--u))}
.cabinet-view .credit-display .wallet-label{top:calc(-2 * var(--u));height:calc(25 * var(--u))}
.cabinet-view .bottom-hud .amount-panel{top:calc(22 * var(--u));height:calc(39 * var(--u));--wallet-glyph-unit:calc(35 / 131 * var(--u))}
.cabinet-view .logout-form{top:calc(34 * var(--u));left:50%;bottom:auto;transform:translateX(-50%)}
.cabinet-view .logout-button{width:calc(228 * var(--u));height:calc(60 * var(--u))}
.cabinet-view .version{top:calc(20 * var(--u));left:calc(35 * var(--u));font-size:calc(12 * var(--u))}
.cabinet-view .layout-switch{width:calc(58 * var(--u));height:calc(58 * var(--u));right:max(calc(8 * var(--u)),env(safe-area-inset-right));top:max(calc(5 * var(--u)),env(safe-area-inset-top))}


/* Recompose existing artwork into wide cards; only the shared frame is stretched. */
.cabinet-art{display:none}
.cabinet-view .cabinet-art{display:block;position:absolute;inset:calc(7 * var(--u));border-radius:calc(8 * var(--u));overflow:hidden;background-size:100% 240%;background-position:center 68%;pointer-events:none}
.cabinet-view .cabinet-art img{position:absolute;height:auto;max-width:none}
.cabinet-view .card-logo,.cabinet-view .card-animal{position:absolute;left:50%;transform:translateX(-50%);overflow:hidden}
.cabinet-view .card-logo{top:0;width:calc(250 * var(--u));height:calc(95 * var(--u));z-index:3}
.cabinet-view .card-logo img{width:100%;top:calc(-37 * var(--u));left:0;clip-path:polygon(14.8% 9.4%,48.4% 8.7%,86% 9.2%,86% 16.5%,94.3% 18.4%,95.7% 23.3%,97.5% 30.4%,92.7% 31.2%,51.6% 29.7%,8.2% 31.1%,3.9% 30.4%,6.4% 21.7%,3.6% 19.1%,12.5% 16.8%)}
.cabinet-view .card-animal{top:calc(83 * var(--u));width:calc(220 * var(--u));height:calc(125 * var(--u));z-index:2}
.cabinet-view .card-animal img{width:100%;left:0;top:calc(-153 * var(--u));clip-path:polygon(25% 39%,32% 40%,40% 40%,50% 40%,60% 41%,67% 39%,72% 41%,72% 44%,68% 48%,70% 52%,69% 55%,75% 57%,83% 59%,86% 65%,88% 77%,73% 76%,63% 75%,48% 77%,31% 75%,16% 75%,16% 66%,17% 61%,20% 58%,28% 55%,29% 51%,30% 49%,25% 46%,24% 43%)}
.cabinet-view .card-gems{position:absolute;left:0;right:0;bottom:0;height:calc(52 * var(--u));overflow:hidden;z-index:2;-webkit-mask-image:linear-gradient(transparent,#000 30%);mask-image:linear-gradient(transparent,#000 30%)}
.cabinet-view .card-gems img{width:100%;left:0;top:calc(-552 * var(--u))}
.cabinet-view .cabinet-art .card-name{width:calc(300 * var(--u));height:calc(76 * var(--u));object-fit:contain;left:50%;transform:translateX(-50%);bottom:calc(-1 * var(--u));z-index:3}
.cabinet-view .card-landscape-crop{width:100%;left:0;top:50%;transform:translateY(-53%)}

.cabinet-view [data-cabinet-game="india"] .cabinet-art{background-size:100% 200%;background-position:center 30%}
.cabinet-view [data-cabinet-game="caribbean"] .cabinet-art{background-size:100% 200%;background-position:center 40%}

/* Portrait Terms must wrap its copy rather than crop a desktop-width panel. */
@media(max-aspect-ratio:4/5){
 body.policy-screen{--u:min(calc(var(--viewport-height) / 1080),calc(100vw / 720));background-size:cover}
 .policy-screen .lobby-stage{top:0;transform:none;height:var(--viewport-height)}
 .policy-screen .multi-title{top:calc(104 * var(--u))}
 .policy-screen .policy-panel::before{left:8px;top:calc(200 * var(--u));width:calc(100% - 16px);height:calc(100% - 200 * var(--u) - 12px)}
 .policy-screen .policy-panel h1{top:calc(170 * var(--u));width:min(90%,calc(548 * var(--u)))}
 .policy-screen .policy-copy{left:16px;right:16px;top:calc(250 * var(--u));width:auto;height:calc(100% - 250 * var(--u) - 92px - env(safe-area-inset-bottom));padding:12px;border-width:2px;border-radius:14px;font-size:16px;line-height:1.4;overflow-wrap:break-word;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
 .policy-screen .policy-copy p,.policy-screen .policy-copy p b{font-size:16px;line-height:1.4}
 .policy-screen .policy-copy p.policy-first-clause{white-space:normal;line-height:1.4}
 .policy-screen .policy-copy strong,.policy-screen .policy-copy::before{font-size:18px;letter-spacing:0}
 .policy-screen .policy-scrollbar{display:none}
 .policy-screen .policy-copy::-webkit-scrollbar{display:block;width:6px}
 .policy-screen .policy-copy::-webkit-scrollbar-thumb{background:#a94c42;border-radius:6px}
 .policy-screen .policy-actions{bottom:max(24px,env(safe-area-inset-bottom));width:calc(100% - 48px);max-width:420px;gap:24px}
 .policy-screen .policy-actions button{flex:1;width:auto;min-height:44px}
}
/* Add hit area without stretching the approved artwork on small phones. */
.cabinet-view .layout-switch::before{content:'';position:absolute;width:44px;height:44px;right:0;top:0}
.cabinet-view .logout-button::before{content:'';position:absolute;inset:calc((100% - max(44px,100%)) / 2) 0}

.policy-actions button{position:relative}
.policy-actions button::before,.close-dialog::before{content:"";position:absolute;inset:calc((100% - max(44px,100%)) / 2) 0}
.cabinet-view .version{top:max(calc(20 * var(--u)),env(safe-area-inset-top,0px));left:max(calc(35 * var(--u)),env(safe-area-inset-left,0px))}
