/* Native buttons keep their existing event handlers. The larger hit rectangles
   never affect the measured painted-face size, including disabled/spin updates. */
.portraitTurboButton { display: none; }
html[data-slot-orientation="portrait"] #gameShell .controls { z-index: 8; }
html[data-slot-orientation="portrait"] #gameShell .artHit {
 left: var(--control-x); top: var(--control-y);
 width: max(44px, var(--face-w)); height: max(44px, var(--face-h));
 min-width: 44px; min-height: 44px;
 margin: 0; padding: 0; border: 0; background: transparent;
 transform: translate(-50%, -50%) !important;
 transition: none; opacity: 1 !important; filter: none !important;
 overflow: visible; touch-action: manipulation;
}
html[data-slot-orientation="portrait"] #gameShell .artHit::before {
 content: ""; position: absolute; inset: auto;
 left: 50%; top: 50%; width: var(--face-w); height: var(--face-h);
 transform: translate(-50%, -50%) !important;
 background: var(--portrait-face) center / contain no-repeat;
 opacity: 1; border: 0; border-radius: inherit; box-shadow: none;
 filter: none; transition: filter 100ms ease; pointer-events: none;
}
html[data-slot-orientation="portrait"] #gameShell .artHit::after {
 inset: auto; left: 50%; top: 50%;
 width: calc(var(--face-w) + .8cqw); height: calc(var(--face-h) + .8cqw);
 transform: translate(-50%, -50%); border: 2px solid transparent;
 opacity: 0; box-shadow: none; pointer-events: none;
}
html[data-slot-orientation="portrait"] #gameShell .artHit:focus-visible::after {
 opacity: 1; border-color: #fff2b5; box-shadow: 0 0 9px #59edda;
}
html[data-slot-orientation="portrait"] #gameShell .artHit:hover::after { opacity: 0; }
html[data-slot-orientation="portrait"] #gameShell .artHit:focus-visible:hover::after { opacity: 1; }
@media (hover: hover) {
 html[data-slot-orientation="portrait"] #gameShell .artHit:not(:disabled):hover::before { filter: brightness(1.08); }
}
html[data-slot-orientation="portrait"] #gameShell .artHit:not(:disabled):active::before { filter: brightness(.93); }
html[data-slot-orientation="portrait"] #gameShell .artHit:disabled { cursor: default; }
html[data-slot-orientation="portrait"] #gameShell .betDownButton:disabled::before,
html[data-slot-orientation="portrait"] #gameShell .betUpButton:disabled::before,
html[data-slot-orientation="portrait"] #gameShell .maxBetButton:disabled::before { filter: saturate(.65) brightness(.83); }
html[data-slot-orientation="portrait"] #gameShell .portraitTurboButton {
 display: block; --control-x: 15.7%; --control-y: 75.54375%; --face-w: 14.1cqw; --face-h: 8.8cqw; border-radius: 18%;
}
html[data-slot-orientation="portrait"] #gameShell .portraitTurboButton::before { content: none; }
html[data-slot-orientation="portrait"] #gameShell .portraitTurboFace {
 position: absolute; left: 50%; top: 50%; width: var(--face-w); height: var(--face-h);
 transform: translate(-50%, -50%); background: center / contain no-repeat; pointer-events: none;
 transition: none; opacity: 1;
}
html[data-slot-orientation="portrait"] #gameShell .portraitTurboFace-off { background-image: url("../assets/mobile/portrait-control-turbo-off.webp"); }
html[data-slot-orientation="portrait"] #gameShell .portraitTurboFace-on { background-image: url("../assets/mobile/portrait-control-turbo-on.webp"); opacity: 0; }
html[data-slot-orientation="portrait"] #gameShell .portraitTurboButton[aria-pressed="true"] .portraitTurboFace-off { opacity: 0; }
html[data-slot-orientation="portrait"] #gameShell .portraitTurboButton[aria-pressed="true"] .portraitTurboFace-on { opacity: 1; }
.portraitTurboEnergy { position: absolute; left: 50%; top: 50%; width: calc(var(--face-w) + 2.1cqw); height: calc(var(--face-h) + 1.3cqw); transform: translate(-50%, -50%); opacity: 0; overflow: visible; pointer-events: none; z-index: 2; }
.portraitTurboEnergy path { fill: none; stroke: #fff4a2; stroke-width: 3.5; stroke-linejoin: round; stroke-linecap: round; filter: drop-shadow(0 0 3px #fff169) drop-shadow(0 0 7px #ffbe20); }
html[data-slot-orientation="portrait"] #gameShell .betDownButton { --control-x: 31.01%; --control-y: 75.54375%; --face-w: 9.9cqw; --face-h: 9.9cqw; --portrait-face: url("../assets/mobile/portrait-control-minus.webp"); border-radius: 50%; }
html[data-slot-orientation="portrait"] #gameShell .betUpButton { --control-x: 68.96%; --control-y: 75.54375%; --face-w: 9.9cqw; --face-h: 9.9cqw; --portrait-face: url("../assets/mobile/portrait-control-plus.webp"); border-radius: 50%; }
html[data-slot-orientation="portrait"] #gameShell .maxBetButton { --control-x: 84.27%; --control-y: 75.54375%; --face-w: 14.1cqw; --face-h: 8.8cqw; --portrait-face: url("../assets/mobile/portrait-control-max.webp"); border-radius: 18%; }
html[data-slot-orientation="portrait"] #gameShell .menuButton { --control-x: 21.03%; --control-y: 87.339375%; --face-w: 16cqw; --face-h: 16cqw; --portrait-face: url("../assets/mobile/portrait-control-menu.webp"); border-radius: 50%; }
html[data-slot-orientation="portrait"] #gameShell .autoButton { --control-x: 78.94%; --control-y: 87.339375%; --face-w: 16cqw; --face-h: 16cqw; --portrait-face: url("../assets/mobile/portrait-control-auto.webp"); border-radius: 50%; }
html[data-slot-orientation="portrait"] #gameShell .spinButton { --control-x: 50%; --control-y: 87.879375%; --face-w: 27.8cqw; --face-h: 27.8cqw; --portrait-face: url("../assets/ui/spin-base.png"); border-radius: 50%; }
html[data-slot-orientation="portrait"] #gameShell .spinButton::before,
html[data-slot-orientation="portrait"] #gameShell .spinButton:not(.isStopping):hover::before,
html[data-slot-orientation="portrait"] #gameShell .spinButton:not(.isStopping):focus-visible::before {
 width: 32cqw; height: 32cqw; top: calc(50% + .2cqw);
 background-image: url("../assets/ui/spin-base.png"); filter: none;
}
html[data-slot-orientation="portrait"] #gameShell .spinButton .stopFace {
 inset: auto; left: 50%; top: calc(50% + .2cqw); width: 32cqw; height: 32cqw;
 transform: translate(-50%, -50%) !important; clip-path: circle(31.5% at 50% 50%);
 background: url("../assets/ui/stop-button.png") center / contain no-repeat;
 filter: none; transition: opacity 100ms linear;
}
html[data-slot-orientation="portrait"] #gameShell .spinButton .stopSquare {
 left: 50%; top: calc(50% + .2cqw); width: 7.4cqw; height: 7.4cqw;
 transform: translate(-50%, -50%) !important; border: max(1px,.4cqw) solid #fff1ae;
 box-shadow: 0 .3cqw 0 #79180d, inset 0 0 .6cqw #fff, 0 0 1cqw #ffd67d66;
 transition: opacity 100ms linear; filter: none;
}
html[data-slot-orientation="portrait"] #gameShell #autoCountBadge {
 left: 50%; top: calc(50% + .2cqw); width: 7.4cqw; height: 7.4cqw; transform: translate(-50%, -50%);
 display: grid; place-items: center;
 margin: 0; padding: 0; border: 0; background: transparent; color: #4f250a;
 font: 900 clamp(10px,3.15cqw,28px)/1 Arial, Helvetica, sans-serif;
 font-variant-numeric: tabular-nums; text-shadow: 0 1px 0 #fff9cc; z-index: 5;
}
html[data-slot-orientation="portrait"] #gameShell .meter {
 display: flex; flex-direction: column; align-items: center; justify-content: center;
 margin: 0; padding: 0 .6cqw; gap: 0; color: #fff5cf;
 text-shadow: 0 1px 2px #001114; pointer-events: none;
}
html[data-slot-orientation="portrait"] #gameShell .balanceMeter { left: 9.6%; top: 36.5625%; width: 35.4%; height: 4.95%; }
html[data-slot-orientation="portrait"] #gameShell .winMeter { left: 55.2%; top: 36.5625%; width: 35.4%; height: 4.95%; }
html[data-slot-orientation="portrait"] #gameShell .betMeter { left: 39.35%; top: 73.125%; width: 21.3%; height: 4.8375%; }
html[data-slot-orientation="portrait"] #gameShell .meter > span {
 display: block; width: 100%; margin: 0; padding: 0; font: 700 2.45cqw/1.1 Arial, Helvetica, sans-serif;
 color: #f8df9a; letter-spacing: .065em; text-transform: uppercase; white-space: nowrap;
}
html[data-slot-orientation="portrait"] #gameShell .meter > strong {
 display: block; width: 100%; margin: 0; padding: 0;
 font: 800 4cqw/1.1 Arial, Helvetica, sans-serif; font-variant-numeric: tabular-nums;
 white-space: nowrap; color: #fff7d5; letter-spacing: -.025em;
}
html[data-slot-orientation="portrait"] #gameShell .betMeter > span { font-size: 2.2cqw; letter-spacing: .03em; }
html[data-slot-orientation="portrait"] #gameShell .betMeter > strong { font-size: 4cqw; }
html[data-slot-orientation="portrait"] #gameShell .featureHud {
 inset: 0; width: 100%; height: 100%; margin: 0; aspect-ratio: auto;
 background: none; filter: none; animation: none; pointer-events: none;
}
html[data-slot-orientation="portrait"] #gameShell .featureReadout {
 top: 55.125%; left: auto; right: auto; width: 26.5%; height: 6.75%;
 display: flex; flex-direction: column; align-items: center; justify-content: center;
 padding: .6cqw 1cqw; gap: .35cqw;
 border: .4cqw solid #e5c678; border-radius: 1.5cqw;
 background: linear-gradient(135deg,#15545b,#05282f 55%,#031a22);
 box-shadow: 0 .5cqw 1cqw #0008, inset 0 .25cqw .2cqw #fff3, inset 0 0 0 .5cqw #6a502a;
}
html[data-slot-orientation="portrait"] #gameShell .spinsReadout { left: 2.4%; }
html[data-slot-orientation="portrait"] #gameShell .totalReadout { right: 2.4%; }
html[data-slot-orientation="portrait"] #gameShell .featureReadout span { font: 800 2.55cqw/1.1 Arial, Helvetica, sans-serif; color: #f6e3b2; letter-spacing: .05em; }
html[data-slot-orientation="portrait"] #gameShell .featureReadout strong { margin: 0; color: #fff8d3; font: 800 4.5cqw/1 Arial, Helvetica, sans-serif; font-variant-numeric: tabular-nums; text-shadow: 0 2px 2px #001114; }
@media (prefers-reduced-motion: reduce) {
 html[data-slot-orientation="portrait"] #gameShell .artHit::before,
 html[data-slot-orientation="portrait"] #gameShell .spinButton .stopFace,
 html[data-slot-orientation="portrait"] #gameShell .spinButton .stopSquare { transition: none; }
}
