/* Slot-only styles: the bingo stage, cards and toolbar retain their existing rules. */
.working-slots{container-type:inline-size;background:radial-gradient(ellipse at 35% 25%,#231944,#07040d 72%);padding:7px!important;gap:4px;overflow:auto!important}.working-slots .slot-heading{flex:none;font-size:clamp(8px,3.8cqw,13px);letter-spacing:2px;color:#e7dcff;text-shadow:0 0 6px #a479ff}.slot-machine{flex:1;min-height:250px;display:flex;flex-direction:column;gap:5px;border:2px solid #bcb1d5;border-radius:19px 19px 27px 27px;padding:7px;background:linear-gradient(115deg,#08040d,#100b1e 47%,#020204);box-shadow:inset 0 0 0 2px #482b64,inset 0 0 12px #8f65ff60,0 0 0 1px #423247}.slot-jackpot{flex:none;border:3px ridge #ffda67;background:#030304;border-radius:10px;text-align:center;padding:3px 2px;box-shadow:0 0 7px #9b7aff60}.slot-jackpot span{display:block;font-size:clamp(8px,3.4cqw,12px);font-weight:800;letter-spacing:1px;color:#f3dc8c}.slot-jackpot strong{display:block;color:#ffec5b;font:800 clamp(18px,9cqw,30px)/1.05 Arial;text-shadow:0 0 7px #ffae4055}.slot-jackpot small{font-size:7px;letter-spacing:3px;color:#d7c789}.slot-meters{display:flex;align-items:center;gap:4px;flex:none}.slot-meters>span{flex:1;white-space:nowrap;border:1px solid #ae9de1;border-radius:7px;background:linear-gradient(#392396,#05040c);font-size:clamp(9px,4cqw,14px);font-weight:800;color:#c4e8ff;padding:3px;text-align:center}.slot-meters b{color:#fff}.slot-meters button{font-size:clamp(7px,3cqw,11px);padding:5px 3px;border:2px ridge #e3d9fb;border-radius:50%;background:radial-gradient(ellipse at 40% 30%,#fff,#a699ec 48%,#35238d);color:#131275;text-shadow:0 1px #fff;box-shadow:0 0 5px #b98fff;max-width:28%}.slot-reels{flex:1;min-height:102px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;position:relative}.slot-reel{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));border:4px ridge #ddd3ef;border-radius:16px;overflow:hidden;background:#000;box-shadow:inset 0 0 0 2px #48228c,0 0 5px #9c74eb;min-width:0}.slot-cell{display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden;background:#000}.slot-cell svg{height:100%;width:100%;max-height:100%;padding:2px}.slot-reel.spinning .slot-cell{filter:none;transform:none}.slot-cell.slot-hit{box-shadow:inset 0 0 12px #00eaff;background:#081827}.slot-win-lines{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.slot-win-lines polyline{stroke:#00e4ff;stroke-width:2;fill:none;filter:drop-shadow(0 0 3px #008bff)}.slot-result{text-align:center;flex:none;min-height:15px;font-size:clamp(8px,3.8cqw,12px);color:#c5eaff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-controls{flex:none;display:grid;grid-template-columns:1fr 31%;gap:2px 7px;align-items:center}.slot-stakes{display:flex;gap:4px}.slot-stakes button{flex:1;padding:5px 0;min-width:0;font-size:clamp(11px,5cqw,16px);border:2px ridge #c6b6ec;border-radius:50%;color:#131063;text-shadow:0 1px #fff;background:radial-gradient(ellipse at 40% 30%,#f9f5ff,#ad9be8 55%,#493693);box-shadow:0 0 4px #6b4ab0}.slot-stakes button[aria-pressed=true]{border-color:#fff29d;box-shadow:0 0 8px #fbd86a;color:#4c2d00;background:radial-gradient(ellipse at 35% 30%,#fff9e4,#efc563 60%,#9d6a12)}.slot-controls>small{grid-column:1;font-size:clamp(6px,2.6cqw,9px);text-align:center;letter-spacing:.3px;color:#b6a9d4}.slot-controls #slotSpin{grid-column:2;grid-row:1/3;height:100%;min-height:39px;padding:5px 0;border-radius:50%;border:4px ridge #e7dcff;color:#0d0685;font-size:clamp(12px,6cqw,22px);font-weight:900;text-shadow:0 1px 2px #fff;background:radial-gradient(ellipse at 40% 30%,#fff,#b4a2f1 50%,#4834a4 78%);box-shadow:0 0 7px #9072ee}#slotSpin span{display:none}.slot-note{font-size:8px;text-align:center;color:#aaa1bc;flex:none}.slot-winner .slot-jackpot{box-shadow:0 0 15px #ffc93f}.slot-paytable{display:grid;grid-template-columns:1fr 1fr;gap:8px}.slot-paytable>div{display:flex;align-items:center;gap:8px;border:1px solid #796246;border-radius:7px;padding:5px;font-size:12px}.slot-paytable svg{width:36px;height:36px;flex:none}.slot-paytable b{margin-left:auto;white-space:nowrap;color:#ffe18a}.slot-mobile-close{display:none}.phone .working-slots.mobile-show{display:flex!important;position:fixed;inset:12px 12px 64px;z-index:40;border:2px solid #d7b66b;border-radius:18px}.phone .slot-mobile-close{display:block}.phone .slot-machine{min-height:0}.phone .slot-paytable{grid-template-columns:1fr}@media(max-height:650px) and (min-width:701px){.working-slots{gap:2px}.slot-machine{min-height:230px;gap:3px;padding:5px}.slot-jackpot strong{font-size:21px}.slot-jackpot small{display:none}.slot-note{font-size:7px}.slot-controls #slotSpin{min-height:34px}.slot-stakes button{padding:3px 0}}

/* Full, self-contained symbols on continuous mechanical reel strips. */
.working-slots .slot-jackpot{padding:3px 6px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:1px 5px;min-height:36px;flex-shrink:0}
.working-slots .slot-jackpot span{font-size:clamp(7px,3.1cqw,11px);letter-spacing:.5px;text-align:left}
.working-slots .slot-jackpot strong{font-size:clamp(15px,6.5cqw,23px);line-height:1.15}
.working-slots .slot-jackpot small{display:none}
.working-slots .slot-machine{min-height:290px;padding-bottom:10px;gap:6px}
.working-slots .slot-reels{min-height:155px;flex:1 1 0}
.working-slots .slot-reel{display:block;position:relative;isolation:isolate;background:#030307}
.slot-strip{height:100%;width:100%;position:absolute;top:0;left:0;will-change:transform}
.slot-strip.rolling{height:auto}
.working-slots .slot-cell{height:33.333333%;width:100%;flex:none;background:transparent;transform:none}
.working-slots .slot-cell svg{display:block;width:100%;height:100%;padding:4%;overflow:hidden;filter:drop-shadow(0 2px 2px #000);max-width:100%}
.working-slots .slot-reel.spinning .slot-cell{transform:none;filter:none}
.slot-reel:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(#000b,transparent 18%,transparent 81%,#000b);box-shadow:inset 4px 0 8px #ffffff12,inset -4px 0 8px #ffffff12}
.working-slots .slot-result{min-height:17px;line-height:17px}
.working-slots .slot-controls{grid-template-rows:minmax(36px,auto) 13px;gap:4px 6px;flex-shrink:0;padding:0 2px 3px}
.working-slots .slot-controls #slotSpin{grid-row:1;height:100%;min-height:36px}
.working-slots .slot-controls>small{grid-column:1/3;grid-row:2;line-height:13px;white-space:nowrap}
.working-slots .slot-note{line-height:12px;min-height:12px;margin-top:2px}
@media(max-height:650px) and (min-width:701px){.working-slots .slot-machine{min-height:265px;gap:4px}.working-slots .slot-reels{min-height:135px}}

/* Runway-rendered dimensional symbols and compact independent bet/line controls. */
.working-slots .slot-cell{background:#000}
.slot-symbol-3d{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.working-slots .slot-controls{display:grid;grid-template-columns:minmax(0,1fr) 30%;grid-template-rows:31px 31px;gap:4px 7px;padding:3px 2px 0}
.slot-choice-row{display:flex;align-items:center;gap:5px;grid-column:1;min-width:0}
.slot-choice-row>span{font-size:clamp(7px,3cqw,10px);width:29px;flex:none;color:#d6d0ee;font-weight:800}
.slot-choice-row .slot-stakes{flex:1;min-width:0}
.slot-choice-row .slot-stakes button{padding:4px 0;font-size:clamp(11px,4.6cqw,16px);line-height:18px}
.working-slots .slot-controls #slotSpin{grid-column:2;grid-row:1/3;min-height:55px}
.working-slots .slot-result.slot-sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}
.slot-paytable .slot-symbol-3d{width:44px;height:44px;flex:none}
.slot-win-lines .slot-selected-line{opacity:.18;stroke-width:1}
.working-slots .slot-reel{background:#000}

.working-slots .slot-controls{grid-template-rows:40px;grid-template-columns:minmax(0,1fr) 30%;padding:3px 2px}
.working-slots .slot-controls #slotSpin{grid-row:1;min-height:38px}
.working-slots .slot-meters>span{font-size:clamp(8px,3.5cqw,12px)}
.working-slots .slot-choice-row>span{width:23px}

.slot-strip{will-change:auto}.slot-strip.rolling{will-change:transform}

.working-slots .slot-controls{grid-template-rows:31px 31px}.working-slots .slot-controls #slotSpin{grid-row:1/3;min-height:55px}

/* Reserve cabinet space for both control rows; reels absorb height changes. */
.working-slots .slot-machine{display:grid;grid-template-rows:auto auto minmax(90px,1fr) auto;flex:1 1 0;min-height:280px;gap:6px;padding:7px 7px 14px;overflow:hidden}
.working-slots .slot-reels{min-height:90px;height:100%;min-width:0}
.working-slots .slot-controls{grid-template-rows:minmax(30px,auto) minmax(30px,auto);gap:5px 7px;min-height:73px;padding:4px 2px;align-items:stretch;margin:0}
.working-slots .slot-choice-row{min-height:30px}
.working-slots .slot-choice-row .slot-stakes{align-items:center}
.working-slots .slot-choice-row .slot-stakes button{height:28px;min-height:28px;line-height:18px;padding:3px 0}
.working-slots .slot-controls #slotSpin{height:auto;min-height:60px;align-self:stretch;grid-row:1/3;padding:4px 0}
.working-slots .slot-note{padding:0 0 2px;margin-top:3px}

.working-slots .slot-machine{grid-template-rows:auto minmax(90px,1fr) auto auto;padding-bottom:10px}
.working-slots .slot-jackpot{min-height:29px;padding:3px 6px;margin:2px 1px 0;border-width:2px}
.working-slots .slot-jackpot strong{font-size:clamp(14px,6cqw,20px)}
.working-slots .slot-jackpot span{font-size:clamp(7px,3cqw,10px)}

.working-slots{container-type:size;overflow:hidden!important}
.working-slots .slot-machine{min-height:0;grid-template-rows:auto minmax(0,1fr) auto auto}
.working-slots .slot-reels{min-height:0}
@container (max-height:300px){
 .working-slots .slot-machine{gap:4px;padding:5px 5px 8px}
 .working-slots .slot-controls{grid-template-rows:24px 24px;min-height:54px;gap:3px 6px;padding:1px 2px}
 .working-slots .slot-choice-row{min-height:24px}
 .working-slots .slot-choice-row .slot-stakes button{height:23px;min-height:23px;padding:1px 0;font-size:12px}
 .working-slots .slot-controls #slotSpin{min-height:48px;font-size:17px}
 .working-slots .slot-jackpot{min-height:24px;margin-top:1px;padding:2px 4px}
 .working-slots .slot-jackpot strong{font-size:16px}
 .working-slots .slot-note{display:none}
 .working-slots .slot-meters>span{padding:2px;font-size:10px}
 .working-slots .slot-meters button{padding:3px;font-size:8px}
}

.working-slots .slot-jackpot small{display:block;grid-column:1/3;font-size:6px;line-height:8px;letter-spacing:.6px;color:#c5bda9}
.working-slots .slot-jackpot.jp-eligible{box-shadow:0 0 8px #ffc84980}.working-slots .slot-jackpot.jp-eligible small{color:#ffe58a}

/* Compact rounded controls leave the remaining cabinet height to the reels. */
.working-slots .slot-controls{grid-template-rows:24px 24px;min-height:51px;gap:3px 6px;padding:0 1px}
.working-slots .slot-choice-row{min-height:24px}
.working-slots .slot-choice-row .slot-stakes button{height:24px;min-height:24px;padding:1px 0;line-height:18px;border-radius:5px;font-size:clamp(11px,4.6cqw,15px)}
.working-slots .slot-controls #slotSpin{min-height:51px;border-radius:8px;border-width:3px;font-size:clamp(15px,6cqw,21px)}
.working-slots .slot-meters button{border-radius:5px;padding:3px}

/* Keep selected paylines above the isolated reel layers. */
.working-slots .slot-win-lines{z-index:5;overflow:visible}
.working-slots .slot-win-lines .slot-selected-line{opacity:1;stroke-width:2;stroke-dasharray:5 3;filter:drop-shadow(0 1px 2px #000)}

.working-slots.slot-panel{border-right:0!important;padding:3px!important}

.slot-jp-help{border:1px solid #d5b155;border-radius:9px;padding:10px 12px;margin:0 0 14px;background:linear-gradient(120deg,#312246,#100b1d)}.slot-jp-help h3{color:#ffe18a;font-size:15px;margin:0 0 8px}.slot-jp-symbols{display:flex;justify-content:center;gap:8px}.slot-jp-symbols .slot-symbol-3d{width:48px;height:48px}.slot-jp-help p{margin:8px 0;line-height:1.45}

.working-slots .slot-win-lines .slot-winning-line{stroke:#fff29a;stroke-width:4;stroke-dasharray:none;filter:drop-shadow(0 0 3px #ffc000)}

/* Unframed jackpot footer maximises the space available to the reels. */
.working-slots .slot-jackpot,.working-slots .slot-jackpot.jp-eligible,.working-slots.slot-winner .slot-jackpot{border:0;border-radius:0;box-shadow:none;background:transparent;padding:0 2px;margin:0;min-height:0;gap:0 4px}
.working-slots .slot-machine{padding-bottom:5px;gap:4px}
.working-slots .slot-note{display:none}

.nav-brand{align-items:center;justify-content:center}.toolbar-logo-wrap{display:block;position:relative;width:100%;max-width:210px;container-type:inline-size}.toolbar-logo-wrap .bingobar-logo{clip-path:inset(14% 0 0)}.toolbar-est{position:absolute;left:1%;top:0;color:#fff;font:800 clamp(6px,3cqw,9px)/1 Arial,sans-serif;letter-spacing:.25px;text-shadow:0 1px 2px #000}.phone .toolbar-logo-wrap{width:135px}

.celebration .bingo-win-heading{font-size:0;line-height:1;text-shadow:none;margin:12px 0}.bingo-win-heading img{display:block;width:100%;max-width:390px;height:auto;margin:auto;filter:drop-shadow(0 3px 0 #7f421b)}

.card:not(.ninety) td.free{overflow:hidden}.card:not(.ninety) td.free>span{display:flex;align-items:center;justify-content:center;font-weight:900;font-style:normal;text-transform:uppercase;font-size:clamp(5px,4cqw,14px);transform:rotate(-45deg);transform-origin:center;white-space:nowrap;line-height:1}

.cards-stage{grid-column:1;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:4px;min-width:0;min-height:0;height:100%}.cards-stage>.cards{grid-column:1;grid-row:1;min-height:0;height:100%}.cards-stage>.card-size-controls{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-self:center;align-items:stretch;gap:6px;margin:0;padding:0;border:0}.card-size-controls button{width:28px;min-width:0;height:30px;padding:0;font-size:19px;line-height:1}.phone .cards-stage{order:2;flex:1;height:auto;grid-template-columns:minmax(0,1fr) 32px}.phone .cards-stage>.cards{height:100%!important}.phone .card-size-controls button{width:32px;height:34px}

/* Overlay the tiny controls in the existing top gap without reserving space. */
.cards-stage,.phone .cards-stage{position:relative;display:block;min-width:0;min-height:0}
.cards-stage>.cards,.phone .cards-stage>.cards{height:100%!important}
.cards-stage>.card-size-controls,.phone .cards-stage>.card-size-controls{position:absolute;top:-12px;right:2px;z-index:4;display:flex;flex-direction:row;gap:3px;margin:0;padding:0;border:0}
.cards-stage .card-size-controls button,.phone .cards-stage .card-size-controls button{width:14px;min-width:14px;height:12px;min-height:12px;padding:0;font-size:11px;line-height:10px;border-radius:2px;border-width:1px}

.game-info .info-heading{color:#fff;text-align:center;width:100%}

.details-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:none;margin:5px 0 2px}.details-actions button{font-family:var(--title-font);font-size:clamp(8px,.75vw,11px);padding:5px 2px;border:1px solid #b99b57;border-radius:6px;color:#eee2b6;background:linear-gradient(#241f14,#050505);min-width:0}.phone .details-actions{order:5;margin:2px 0}.phone .details-actions button{font-size:10px;padding:6px 2px}

main{position:relative}.corner-help{position:absolute;top:8px;left:8px;z-index:12;width:24px;height:24px;padding:0;border:1px solid #d1b064;border-radius:50%;background:#080608d9;color:#fff1c4;font:700 17px/22px Arial;text-align:center}.phone .corner-help{top:58px;left:6px}html:not(.phone) .nav-links{grid-template-columns:repeat(2,minmax(0,1fr))}

/* One shared height across the middle toolbar. */
html:not(.phone) .nav{--toolbar-control-height:40px}
html:not(.phone) .nav-links button,html:not(.phone) .nav-account button,html:not(.phone) .nav-account .wallet,html:not(.phone) .nav-prizes{height:var(--toolbar-control-height);min-height:var(--toolbar-control-height);box-sizing:border-box}
html:not(.phone) .nav-links button,html:not(.phone) .nav-account button,html:not(.phone) .nav-account .wallet{display:flex;align-items:center;justify-content:center;padding-top:0;padding-bottom:0}
html:not(.phone) .nav-account .wallet{gap:4px}
html:not(.phone) .nav-prize{height:100%;padding-top:2px;padding-bottom:2px}
html:not(.phone) .nav-prize>strong{font-size:clamp(16px,1.5vw,23px)}

html:not(.phone) .game-info .details-actions{margin-top:auto;margin-bottom:6px;padding-top:14px}html:not(.phone) .game-info .purchase-bar{margin-top:0}

/* Compact navigation and more room for the reels. */
html:not(.phone) .nav{grid-template-columns:minmax(125px,16%) clamp(110px,11vw,160px) minmax(240px,1fr) auto}
html:not(.phone) .lower{grid-template-columns:28% minmax(0,1fr)}
/* Keep the size controls below the divider, inside the existing card gutter. */
.cards-stage>.card-size-controls,.phone .cards-stage>.card-size-controls{top:-7px;right:2px}
.cards-stage .card-size-controls button,.phone .cards-stage .card-size-controls button{height:10px;min-height:10px;font-size:10px;line-height:8px}
@media(max-height:800px){.cards-stage>.card-size-controls{top:-3px}}
.phone .cards-stage>.card-size-controls{top:0}


/* Independent slot audio control, inline with the jackpot label. */
.slot-jp-label{display:inline-flex!important;align-items:center;justify-content:center;gap:5px}
#slotMute{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;padding:2px;border:0;border-radius:4px;background:transparent;color:#ffe590;box-shadow:none;cursor:pointer;vertical-align:middle}
#slotMute svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#slotMute:hover{background:#ffffff20}#slotMute:focus-visible{outline:2px solid white;outline-offset:2px}#slotMute[aria-pressed="true"]{color:#bdb7cf}

/* Rendered symbol films stay inside the existing reel cells. */
.slot-cell{position:relative;isolation:isolate}
.slot-symbol-film{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2;pointer-events:none;background:#000;opacity:0;transition:opacity .14s ease}
.slot-video-playing .slot-symbol-film{opacity:1}
.slot-video-playing .slot-symbol-3d{opacity:0;transition:opacity .14s ease}
.working-slots.slot-premium-win .slot-hit{box-shadow:inset 0 0 10px #e7c77d66}
.working-slots.slot-premium-jackpot .slot-machine{box-shadow:inset 0 0 18px #f7d27266,0 0 8px #dba95455}
@media(prefers-reduced-motion:reduce){.slot-symbol-film{display:none}.slot-video-playing .slot-symbol-3d{opacity:1}}

/* Winning-cell lighting sits above the black video background. */
.slot-cell .slot-symbol-3d,.slot-symbol-film{transition:filter .2s ease,opacity .14s ease}
.slot-has-win .slot-cell:not(.slot-hit) .slot-symbol-3d{filter:brightness(.46) saturate(.65)}
.slot-has-win .slot-hit .slot-symbol-3d,.slot-has-win .slot-hit .slot-symbol-film{filter:brightness(1.18) saturate(1.13)}
.slot-has-win .slot-hit::after{content:"";position:absolute;inset:3px;z-index:4;pointer-events:none;border:2px solid #ffeaa3;border-radius:10px;box-shadow:inset 0 0 12px #ffc947aa,inset 0 0 26px #ffcd4933,0 0 6px #ffe19a; background:radial-gradient(ellipse at 50% 50%,transparent 44%,#ffd65e20 78%,#ffdf7060);animation:slot-win-light 1.4s ease-in-out 3}
.slot-has-win .slot-win-lines{z-index:5}
.slot-has-win .slot-winning-line{stroke-width:2!important;opacity:.8}
@keyframes slot-win-light{0%,100%{opacity:.8}50%{opacity:1;box-shadow:inset 0 0 19px #ffdb76cc,inset 0 0 32px #ffca4940,0 0 8px #ffeab5}}
@media(prefers-reduced-motion:reduce){.slot-has-win .slot-hit::after{animation:none}.slot-cell .slot-symbol-3d,.slot-symbol-film{transition:none}}

/* Illuminated cabinet title and live glass jackpot meter. */
.working-slots .slot-jackpot{grid-template-columns:22px minmax(0,1fr) auto;column-gap:6px;overflow:hidden;height:23px}
.working-slots .slot-jackpot #slotMute{grid-column:1;justify-self:start}
.working-slots .slot-jackpot .slot-jp-label{grid-column:2;position:relative;display:block!important;min-width:0;width:100%;height:23px;padding:0;overflow:hidden;mix-blend-mode:screen}
.slot-jp-label img,.slot-jp-label video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.slot-jp-label video{opacity:0}.slot-jp-label video.ready{opacity:1}
.working-slots .slot-jackpot strong{grid-column:3;white-space:nowrap;font-family:Arial,sans-serif;font-size:clamp(14px,5.8cqw,20px);font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.5px;line-height:21px;padding:0 5px;border:0;border-radius:3px;color:#fff0a1;background:linear-gradient(180deg,#42341e88,#080705 48%,#211907);box-shadow:inset 0 1px 0 #ffe9a44d,inset 0 -1px 0 #b8822733;text-shadow:0 0 4px #ffbc4d70,0 1px 0 #874e13;filter:none}
.slot-strip,.slot-strip.rolling{will-change:transform;backface-visibility:hidden}
@media(prefers-reduced-motion:reduce){.slot-jp-label video{display:none}}

/* Explicit cabinet areas prevent row moves from collapsing the reels. */
.working-slots .slot-machine{grid-template-areas:"jackpot" "meters" "reels" "controls";grid-template-rows:23px auto minmax(0,1fr) auto}
.working-slots .slot-machine>.slot-jackpot{grid-area:jackpot}
.working-slots .slot-machine>.slot-meters{grid-area:meters}
.working-slots .slot-machine>.slot-reels{grid-area:reels;align-self:stretch;min-height:0}
.working-slots .slot-machine>.slot-controls{grid-area:controls}

/* Fixed Nasalization label artwork retains crisp proportions at each layout size. */
.game-info .display dt{min-width:0;font-style:normal!important}
.detail-label-art{display:block;width:auto;max-width:100%;height:1em;object-fit:contain;object-position:left center;filter:drop-shadow(0 0 3px #00cfff50)}
.game-info .display dt.pink .detail-label-art{filter:drop-shadow(0 0 3px #ff168650)}
.game-info .info-heading .detail-label-art{height:1em;margin:auto;filter:drop-shadow(0 0 4px #5795ff)}
.card:not(.ninety) td.free>span{font-family:Arial,sans-serif!important;font-weight:900!important;-webkit-text-stroke:.4px currentColor}
html:not(.phone) .nav{grid-template-columns:minmax(125px,14%) clamp(110px,10vw,150px) minmax(180px,1fr) minmax(220px,28%)}
html:not(.phone) .nav-account{display:flex;min-width:0;width:100%;gap:7px}
html:not(.phone) .nav-account .wallet{flex:1;min-width:0;padding:3px 12px;gap:9px;border:1px solid #ffdc78;border-radius:8px;background:linear-gradient(120deg,#5c3b0c,#271a07 55%,#65420f);box-shadow:inset 0 1px 0 #fff4bd88,0 0 8px #eab34240;color:#fff2af}
.wallet-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;line-height:1.05}
.wallet-copy small{font:700 8px/1 Arial,sans-serif;letter-spacing:1.5px;color:#f7d98e;margin-bottom:2px}
html:not(.phone) .wallet #balance{font:900 clamp(19px,1.9vw,32px)/1 Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.3px;white-space:nowrap;text-shadow:0 1px 1px #000,0 0 5px #ffce4a50}
.wallet-coin{font-style:normal;font-size:24px;color:#ffe58c;text-shadow:0 1px #7b4900;flex:none}
.phone .nav-account .wallet{display:flex;align-items:center;gap:5px;border-color:#ffdc78;background:linear-gradient(120deg,#5c3b0c,#271a07);box-shadow:inset 0 1px #fff4bd66;color:#fff2af;padding:4px 7px}
.phone .wallet #balance{font:900 clamp(14px,4vw,20px)/1 Arial,sans-serif;white-space:nowrap}
.phone .wallet-coin{font-size:18px}.phone .wallet-copy small{font-size:7px;letter-spacing:1px}
@media(min-width:701px) and (max-width:900px){html:not(.phone) .nav{gap:5px;padding-left:5px;padding-right:5px}html:not(.phone) .nav-account .wallet{padding:3px 5px;gap:4px}.wallet-coin{font-size:19px}html:not(.phone) .nav-account button{padding:4px}}

.working-slots .slot-choice-row>span{width:4.3em;white-space:nowrap}.working-slots .slot-choice-row{gap:7px}

.wallet-coins-art{display:block;width:38px;height:34px;object-fit:contain;flex:none}.phone .wallet-coins-art{width:25px;height:25px}.wallet-copy{justify-content:center}
@media(min-width:701px) and (max-width:900px){.wallet-coins-art{width:29px;height:29px}}
@media(max-width:350px){.phone .nav-account .wallet{gap:3px;padding-left:4px;padding-right:4px}.phone .wallet-coins-art{width:22px;height:22px}}

.game-info .stage-prizes:not(:empty){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px 0;margin:2px 0;flex:none}
.game-info .stage-prizes>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 2px;border:1px solid #8e7442;border-radius:6px;background:linear-gradient(#262018,#0b0a08);color:#f4e7c2;min-width:0}
.game-info .stage-prizes small{font:700 clamp(9px,.75vw,12px)/1.1 Arial,sans-serif;white-space:nowrap}
.game-info .stage-prizes strong{font:800 clamp(15px,1.3vw,22px)/1.1 Arial,sans-serif;color:#fff4c4;font-variant-numeric:tabular-nums}
.game-info .stage-prizes>span.active{border-color:#ffe282;background:linear-gradient(#5b3f10,#251a08);box-shadow:inset 0 0 7px #ffca3620}.game-info .stage-prizes>span.active strong{color:#ffe46f}
.phone .game-info .stage-prizes:not(:empty){display:grid;order:4}.phone .stage-prizes small{font-size:10px}.phone .stage-prizes strong{font-size:16px}
.nav .wallet{letter-spacing:normal;font-family:Arial,sans-serif;text-shadow:none;cursor:pointer}.nav .wallet:hover{filter:brightness(1.12)}
.line-prize-popup{position:fixed;z-index:100;width:218px;max-width:calc(100vw - 16px);padding:10px 12px;border:1px solid #e2bd5c;border-radius:10px;background:linear-gradient(145deg,#312314,#0b0907);color:#fff2cb;box-shadow:0 7px 22px #000b,inset 0 1px #ffe6a044;pointer-events:auto}
.line-prize-popup[hidden]{display:none}.line-prize-popup h3{font:700 10px/1 Arial,sans-serif;letter-spacing:1.2px;text-align:center;margin:0 0 8px;color:#e8ce92}
.line-prize-popup>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 6px;border-radius:4px;font:600 12px/1.2 Arial,sans-serif}.line-prize-popup strong{font-size:17px;color:#fff1b0;font-variant-numeric:tabular-nums}.line-prize-popup .active{background:#80602055;color:#ffe58a}.line-prize-popup .active strong{color:#ffe36a}
.player-lobby-preview{text-align:center}.player-lobby-preview img{width:70px;height:70px;object-fit:contain}.player-lobby-preview>strong{font-size:28px;color:#ffe18a}.player-lobby-preview h3{margin:22px 0 5px}
/* Keep reel surfaces bounded and proportional while resizing during a spin. */
.working-slots .slot-strip.rolling{height:100%}
.working-slots .slot-strip:not(.rolling){will-change:auto;backface-visibility:visible}
.slot-video-playing .slot-symbol-3d{opacity:1;transition:none}
/* All ten halls fit in the chooser without an internal scroll area. */
#modal.hall-chooser{width:min(840px,96vw);max-height:96dvh;padding:clamp(10px,2vh,20px);overflow:hidden}
.hall-chooser .modal-head{margin-bottom:8px}
.hall-chooser .modal-head h2{font-size:clamp(19px,3vh,25px)}
.hall-chooser #modalBody>p{font-size:12px;line-height:1.3;margin:0 0 10px}
.hall-chooser .hall-grid{gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}
.hall-chooser .hall-card{min-width:0;padding:clamp(6px,1.3vh,12px);gap:3px}
.hall-chooser .hall-card b{font-size:clamp(15px,2.5vh,22px)}
.hall-chooser .hall-card span{font-size:clamp(12px,2vh,16px)}
.hall-chooser .hall-card small{font-size:clamp(9px,1.6vh,12px);line-height:1.2}
.hall-chooser .modal-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}
.hall-chooser .modal-buttons button{padding:7px 4px;font-size:clamp(10px,1.6vh,13px)}
@media(max-height:540px) and (min-width:600px){
 .hall-chooser .hall-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 .hall-chooser .hall-card b{font-size:16px}
 .hall-chooser .hall-card span{font-size:12px}
}

/* Preserve the original help position except on phones. */
.phone #game>.corner-help{position:fixed;top:auto;left:auto;right:7px;bottom:calc(4px + env(safe-area-inset-bottom));z-index:26;width:36px;height:40px;line-height:38px;border-radius:7px;font-size:20px}
.phone .nav-links{padding-right:50px}
/* Reserve separate rows for the title and pattern, including wrapped names. */
.phone .pattern-wrap{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:18px auto minmax(0,1fr);row-gap:4px;justify-items:center;align-items:center}
.phone .pattern-wrap .bingo-heading{grid-row:1;height:16px;margin:0;align-self:center}
.phone .pattern-wrap #patternName{grid-row:2;min-height:0;height:auto;margin:0;padding:1px 2px;line-height:1.2;font-size:9px;text-align:center;overflow-wrap:anywhere}
.phone .pattern-wrap .pattern-board{grid-row:3;align-self:center;justify-self:center;height:100%;width:auto;max-height:100%;max-width:100%;min-height:0;aspect-ratio:1;margin:0;padding:1px;gap:3px!important}
.phone .pattern-wrap .pattern-board.pattern90{height:100%;width:auto;aspect-ratio:5/3}
@media(max-height:650px){.phone .pattern-wrap{grid-template-rows:10px auto minmax(0,1fr);row-gap:2px}.phone .pattern-wrap .bingo-heading{height:9px}.phone .pattern-wrap #patternName{font-size:7px;padding:0}.phone .pattern-wrap .pattern-board{gap:1px!important}}
/* Phone resize controls share the game-tab row without taking card space. */
.phone .cards-stage{display:block}
.phone .round-tabs{display:flex;align-items:stretch;gap:4px;min-height:32px}
.phone .round-tabs>.card-size-controls{position:static;display:flex;flex-direction:row;align-items:stretch;gap:5px;margin:0 0 0 auto;padding:0;border:0;height:32px;flex:none}
.phone .round-tabs>.card-size-controls::before{content:none}
.phone .round-tabs .card-size-controls button{width:32px;min-width:32px;height:32px;min-height:32px;padding:0;border-radius:7px;font:700 21px/1 Arial,sans-serif;touch-action:manipulation}
.phone .round-tabs>button{height:32px;min-height:32px}
/* Keep the phone rotation notice fully within short landscape viewports. */
.rotate-required #rotateScreen{padding:12px;gap:6px;border-width:3px;overflow:auto}
.rotate-required #rotateScreen img{width:auto;max-width:36vw;max-height:14dvh;object-fit:contain;flex-shrink:0}
.rotate-required .rotate-device{margin-top:0;padding:2px 12px;font-size:clamp(24px,10dvh,44px);border-width:2px;border-radius:10px}
.rotate-required #rotateScreen h1{font-size:clamp(18px,6dvh,26px);margin:0}
.rotate-required #rotateScreen p{font-size:clamp(12px,4dvh,16px);line-height:1.3;margin:0;max-width:90%}
.rotate-required #rotateScreen small{font-size:11px}

/* The mobile details close control belongs to the pop-up header. */
.phone.show-details .display{padding-top:12px;max-height:calc(100dvh - 190px - env(safe-area-inset-bottom));overflow-y:auto}
.phone.show-details .display>#mobileDetails{position:static;grid-column:1/-1;order:0;justify-self:end;align-self:start;min-height:32px;padding:5px 10px;margin:0 0 3px;font-size:11px}

/* Scale the two additional phone sizes without changing desktop tickets. */
.phone .cards:is([data-phone-columns="3"],[data-phone-columns="4"]){gap:5px!important}
.phone .cards:is([data-phone-columns="3"],[data-phone-columns="4"]) .card th{font-size:clamp(7px,6cqw,12px)!important}
.phone .cards:is([data-phone-columns="3"],[data-phone-columns="4"]) .card:not(.ninety) td{font-size:clamp(7px,8cqw,18px)!important}
.phone .cards:is([data-phone-columns="3"],[data-phone-columns="4"]) .card.ninety td{font-size:clamp(5px,7cqw,12px)!important}
.phone .cards:is([data-phone-columns="3"],[data-phone-columns="4"]) .card-foot{font-size:clamp(5px,5cqw,8px);gap:2px;overflow:hidden}
.phone .cards:is([data-phone-columns="3"],[data-phone-columns="4"]) .card-foot button{font-size:inherit}
/* Fit the mobile hall chooser to the available viewport, including actions. */
.phone #modal.hall-chooser[open]{display:flex;flex-direction:column;width:calc(100vw - 20px);height:min(640px,94dvh);max-height:94dvh;padding:12px;gap:6px;overflow:hidden}
.phone .hall-chooser .modal-head{flex:none;margin:0;min-height:32px}
.phone .hall-chooser .modal-head h2{font-size:21px}
.phone .hall-chooser .modal-head button{width:32px;height:32px;line-height:30px;padding:0}
.phone .hall-chooser #modalBody{display:flex;flex-direction:column;flex:1;min-height:0;gap:7px}
.phone .hall-chooser #modalBody>p{flex:none;font-size:10px;line-height:1.25;margin:0}
.phone .hall-chooser .hall-grid{flex:1;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:5px}
.phone .hall-chooser .hall-card{min-height:0;padding:5px 7px;gap:2px;justify-content:center}
.phone .hall-chooser .hall-card b{font-size:clamp(14px,3.8vw,18px);line-height:1.1}
.phone .hall-chooser .hall-card span{font-size:clamp(11px,2.9vw,14px);line-height:1.15}
.phone .hall-chooser .hall-card small{font-size:9px;line-height:1.15}
.phone .hall-chooser .modal-buttons{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:6px}
.phone .hall-chooser .modal-buttons button{min-height:36px;font-size:11px;line-height:1.15;padding:5px}
@media(max-height:540px){.phone .hall-chooser #modalBody>p{display:none}.phone .hall-chooser .hall-card small{font-size:8px}}
