:root{color-scheme:dark;--navy:#071729;--cream:#fff0d1;--cherry:#bf233b;--teal:#69d6d3;--chrome:#b8c5d3}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#173956,#050c18 70%);color:var(--cream);font:15px/1.5 Georgia,serif}button,select,input{font:inherit}button,select{color:var(--cream);background:linear-gradient(#254961,#11253c);border:1px solid #7495a5;border-radius:7px;padding:8px 13px}button{cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.2)}button:disabled{cursor:default;opacity:.55}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--teal);outline-offset:3px}button[aria-pressed=true]{border-color:var(--teal);background:#126166}a{color:#a4e2e2}.topbar{max-width:1360px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:14px 22px;gap:20px}.wordmark{font:bold 17px/1.25 Arial,sans-serif;letter-spacing:.06em}.wordmark b{color:#ed6b7d}.wordmark small{display:block;font-size:10px;letter-spacing:.28em;color:var(--teal);margin-top:5px}.sound-controls{display:flex;align-items:center;gap:12px;font:12px Arial,sans-serif}.sound-controls label{display:flex;align-items:center;gap:6px}.sound-controls input{width:90px;accent-color:#db4460}main{max-width:1360px;margin:auto;padding:0 20px 16px}#loading{text-align:center;padding:100px 25px}.machine{position:relative;width:100%;aspect-ratio:1.5;overflow:hidden;isolation:isolate;container-type:inline-size;border-radius:10px;box-shadow:0 20px 80px #0009;background:#071729}.machine[hidden]{display:none}.layer{position:absolute;object-fit:contain;pointer-events:none}.layer.background{object-fit:cover}.reels{position:absolute;display:flex;overflow:hidden;background:#09182a}.reel-column{position:relative;width:16.6666667%;height:100%;overflow:hidden}.reel-strip{position:absolute;inset:0 0 auto;height:100%;will-change:transform}.cell{position:relative;width:100%;height:33.333333%;display:flex;align-items:center;justify-content:center;background:linear-gradient(#183b61,#071629);overflow:hidden}.cell>img.symbol{width:100%;height:100%;object-fit:contain;padding:4%;pointer-events:none}.cell.portrait>img.symbol{padding:8%}.cell .win-glow{position:absolute;width:100%;height:100%;object-fit:fill;mix-blend-mode:screen;opacity:0;pointer-events:none}.cell.winner .win-glow{opacity:.8;animation:aura 1s ease-in-out infinite alternate}.cell.winner>.symbol{animation:win-bounce 1.3s ease-in-out infinite}.cell.winner:after{content:'';position:absolute;inset:5%;border:2px solid #fff0c2;border-radius:9px;box-shadow:inset 0 0 16px #fff5,0 0 20px #5ff9;pointer-events:none}.reel-column.spinning img{filter:blur(1.2px)}.reel-column.stopped{animation:reel-settle .22s ease-out}.readout{position:absolute;pointer-events:none}.readout>img{width:100%;height:100%;object-fit:contain}.readout output{position:absolute;left:9%;right:9%;bottom:14%;color:#fff4d8;font:bold 1.12cqw/1 Arial,sans-serif;text-align:center;font-variant-numeric:tabular-nums}.readout[data-name=lines]{pointer-events:auto;cursor:pointer}.readout[data-name=lines]:hover{filter:brightness(1.2)}.jackpot-value{position:absolute;display:flex;align-items:center;justify-content:center;font:bold 1.35cqw Arial,sans-serif;letter-spacing:.03em;text-shadow:0 1px #000}.jackpot-hint{position:absolute;left:41%;top:10.6%;width:18%;font:600 .68cqw Arial,sans-serif;text-align:center;color:#c9e5ef}.art-button{position:absolute;border:0;padding:0;border-radius:0;background:transparent;outline-offset:0}.art-button img{width:100%;height:100%;object-fit:contain;display:block}.art-button:disabled{opacity:1}.art-button .button-tag{position:absolute;top:-17%;left:0;right:0;font:bold .8cqw Arial,sans-serif;background:#061426e6;border-radius:4px;color:#fff0d1}.art-button .resume-label{position:absolute;left:15%;right:15%;top:40%;font:bold 1.8cqw Arial,sans-serif;background:#a71535;color:#fff4db}.payline-overlay{position:absolute;pointer-events:none;overflow:visible}.payline-overlay polyline{fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-width:4;filter:drop-shadow(0 0 3px #000)}.celebration{position:absolute;left:20%;top:30%;width:60%;height:49%;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;text-shadow:0 4px 10px #000;z-index:8;animation:celebrate-in .35s ease-out}.celebration>.sparkle-effect{inset:-5%;z-index:-1}.celebration b{font:bold 4cqw Georgia;color:#fff2cb;filter:drop-shadow(0 2px 2px #b21d42)}.celebration strong{font:bold 7cqw Arial;color:#fff8df}.playbar{display:flex;justify-content:center;align-items:center;gap:16px;padding:14px 12px;background:#08172b;border:1px solid #385970;border-top:0;border-radius:0 0 12px 12px;font:12px Arial,sans-serif;flex-wrap:wrap}.playbar label{display:flex;gap:7px;align-items:center;color:#aac0d2}.playbar select{padding:6px 8px}.stake-label{color:#abc3d2;letter-spacing:.08em}.stake-label strong{font-size:19px;color:#fff2cc;display:inline-block;margin-left:8px}.mobile-spin{display:none;background:linear-gradient(#ef4560,#8c0b2b)}.message-bar{text-align:center;min-height:82px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:10px}.message-bar strong{font-size:22px;color:#ffe5ac}.message-bar span{font:13px/1.5 Arial,sans-serif;color:#b9cbd7}.message-bar button{align-self:center;margin:8px}.ledger{background:#09192d;border:1px solid #294357;border-radius:8px;font:13px/1.6 Arial,sans-serif}.ledger summary{cursor:pointer;padding:10px 16px;color:#c2d3df}.ledger summary span{float:right;color:#fff0c2}.ledger #ledgerBody{padding:10px 18px;border-top:1px solid #294357}.ledger .ledger-row{display:flex;justify-content:space-between;border-bottom:1px solid #183246;padding:5px 0}.ledger .ledger-row button{padding:2px 8px}.ledger .total{font-weight:bold;color:#ffe1a7}footer{display:flex;justify-content:space-between;gap:12px;color:#819bab;font:10px Arial,sans-serif;letter-spacing:.08em;padding:15px 2px}dialog{color:var(--cream);border:1px solid #a9becd;background:#07192e;padding:0;box-shadow:0 24px 100px #000c}dialog::backdrop{background:#010611dd;backdrop-filter:blur(5px)}.help-modal{width:min(900px,94vw);max-height:90dvh;border-radius:14px}.help-modal>header{padding:20px 25px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(115deg,#173b59,#092039);border-bottom:1px solid #6c8b9d}.help-modal h1{margin:3px 0;font-size:26px}.help-modal small{font:11px Arial;letter-spacing:.18em;color:var(--teal)}.close{font:28px/1 Arial;background:#921d39;padding:5px 11px}.modal-scroll{padding:4px 25px 26px;overflow:auto;max-height:72dvh;font:14px/1.65 Arial,sans-serif}.modal-scroll h2{font:24px Georgia;color:#ffdfae;margin:25px 0 7px}.paytable-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th{color:#9be1df;font-size:12px;text-transform:uppercase;letter-spacing:.09em;text-align:right}td,th{padding:8px 12px;border-bottom:1px solid #29465b;text-align:right}th:first-child,td:first-child{text-align:left}td:first-child{display:flex;align-items:center;gap:13px}td img{width:52px;height:52px;object-fit:contain}tbody tr:nth-child(2n){background:#10243b}.lounge{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lounge article{padding:12px;background:#14314b;border:1px solid #547487;border-radius:8px}.lounge img{width:100%;aspect-ratio:1.5;object-fit:cover;border-radius:4px}.lounge h3{font:18px Georgia;margin:8px 0}.lounge p{font-size:12px}.lounge button{width:100%;font-size:12px}.line-map{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.line-mini{background:#102b43;border:1px solid #3d5d72;border-radius:7px;padding:6px;text-align:center;font-size:11px}.line-mini svg{width:100%;height:48px}.smallprint{font-size:12px;color:#aec0cb}.bonus-modal{width:min(1150px,96vw);max-width:96vw;max-height:95dvh;border-radius:12px;overflow:auto}.bonus-stage{position:relative;aspect-ratio:1.5;container-type:inline-size;isolation:isolate;overflow:hidden;background:#091729}.bonus-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}.bonus-shade{position:absolute;inset:0;background:linear-gradient(#0003,transparent 35%,#01091699);z-index:-2}.bonus-title{position:absolute;left:25%;top:3%;width:50%;height:13%;object-fit:contain}.bonus-topline{position:absolute;left:3%;top:3%;font:1.05cqw Arial;background:#0b213bd9;padding:6px 9px;border-radius:4px}.bonus-pause{position:absolute;right:3%;top:3%;font:1cqw Arial}.bonus-prompt{position:absolute;left:15%;right:15%;top:20%;text-align:center;font:bold 2.25cqw Georgia;margin:0;text-shadow:0 2px 8px #000}.bonus-subtitle{position:absolute;left:12%;right:12%;top:27%;text-align:center;font:1.18cqw Arial;margin:0;text-shadow:0 2px 4px #000}.bonus-choices{position:absolute;left:22%;width:56%;top:37%;height:37%;display:flex;justify-content:space-between;gap:8%}.bonus-choices button{position:relative;width:30%;border:0;background:transparent;padding:0;transition:transform .2s}.bonus-choices button:hover{transform:translateY(-8px)}.bonus-choices img{width:100%;height:100%;object-fit:contain}.bonus-choices .choice-label{position:absolute;bottom:-17%;left:-15%;right:-15%;color:#fff1cf;text-shadow:0 2px 6px #000;font:bold 1.3cqw Arial}.bonus-choices.route{left:15%;width:70%;top:44%;height:25%;gap:5%}.bonus-choices.route button,.bonus-choices.grand button{background:#091d36e8;border:2px solid #c6d3da;border-radius:10px;padding:3%;box-shadow:0 6px 20px #0009}.bonus-choices.route img{height:66%;margin-bottom:5%}.bonus-choices.route .choice-label,.bonus-choices.grand .choice-label{position:static;font-size:1.25cqw;display:block}.bonus-choices.grand{left:18%;width:64%;top:47%;height:23%;gap:5%}.bonus-choices.grand img{height:75%}.bonus-meter{position:absolute;left:28%;top:33%;width:44%;height:6%}.bonus-meter>img{width:100%;height:100%}.bonus-meter .segment{position:absolute;top:17%;height:64%;width:30%;opacity:.15}.bonus-meter .segment.on{opacity:1}.bonus-running{position:absolute;left:20%;right:20%;bottom:7%;font:bold 1.6cqw Arial;text-align:center;text-shadow:0 3px 5px #000}.bonus-result{position:absolute;left:29%;width:42%;top:38%;height:24%;text-align:center}.bonus-result>img{width:100%;height:100%;object-fit:contain}.bonus-result strong{position:absolute;left:8%;right:8%;top:50%;font:bold 2.4cqw Arial}.bonus-result button{position:absolute;left:10%;width:80%;top:116%;font:bold 1.25cqw Arial}.bonus-result p{position:absolute;left:-15%;width:130%;top:88%;font:1.15cqw Arial;text-shadow:0 2px 5px #000;margin:0}.bonus-cameo{position:absolute;bottom:11%;left:3%;width:26%;height:35%;object-fit:contain}.bonus-prop{position:absolute;bottom:10%;right:3%;width:24%;height:32%;object-fit:contain}.choice-reveal{position:absolute;inset:35% 18% 13%;border-radius:15px;border:1px solid #bad3d7;background:#06152deb;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5%;box-shadow:0 20px 50px #0009}.choice-reveal b{font:bold 4cqw Georgia;color:#ffe3ab}.choice-reveal p{font:1.5cqw Arial;margin:0}.choice-reveal button{font:1.5cqw Arial}.saved-warning{color:#ffc18a!important}@keyframes aura{to{opacity:.4;transform:scale(.92)}}@keyframes win-bounce{50%{transform:scale(1.08)}}@keyframes reel-settle{50%{transform:translateY(1.5%)}}@keyframes celebrate-in{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media(max-width:760px){main{padding:0 8px 12px}.topbar{padding:12px;gap:12px;flex-wrap:wrap}.wordmark{font-size:14px}.sound-controls{gap:8px;flex-wrap:wrap;font-size:11px}.sound-controls input{width:65px}.sound-controls button{padding:6px 9px}.machine{border-radius:6px}.playbar{gap:9px;font-size:11px;padding:10px 8px}.playbar button{padding:7px 9px}.mobile-spin{display:block;min-width:100px;font:bold 16px Arial}.message-bar strong{font-size:18px}.message-bar span{font-size:12px}.line-map{grid-template-columns:repeat(4,1fr)}.lounge{grid-template-columns:1fr}.lounge article{display:grid;grid-template-columns:100px 1fr;gap:6px 12px}.lounge img{grid-row:span 3}.lounge h3,.lounge p{margin:0}.lounge button{grid-column:2}.modal-scroll{padding:5px 15px 20px}.help-modal>header{padding:15px}.help-modal h1{font-size:22px}.bonus-modal{width:98vw;max-width:98vw}.bonus-stage{aspect-ratio:1.05}.bonus-bg{object-fit:cover}.bonus-prompt{top:22%;font-size:3cqw}.bonus-subtitle{top:28%;font-size:1.9cqw}.bonus-topline,.bonus-pause{font-size:1.6cqw;padding:5px}.bonus-choices{top:39%;height:29%;left:13%;width:74%;gap:5%}.bonus-choices .choice-label{font-size:2cqw}.bonus-choices.route,.bonus-choices.grand{left:7%;width:86%;height:25%;top:42%;gap:3%}.bonus-choices.route .choice-label,.bonus-choices.grand .choice-label{font-size:2cqw}.bonus-running{font-size:2.4cqw;bottom:12%}.bonus-result{left:23%;width:54%;top:40%}.bonus-result strong{font-size:4cqw}.bonus-result p{font-size:1.9cqw}.bonus-result button{font-size:2cqw}.bonus-cameo{bottom:17%}.bonus-prop{bottom:17%}.choice-reveal{inset:35% 10% 20%}.choice-reveal b{font-size:6cqw}.choice-reveal p,.choice-reveal button{font-size:2.5cqw}footer{font-size:8px;letter-spacing:.02em}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
.bonus-route-taxi{position:absolute;bottom:12%;width:22%;height:21%;object-fit:contain;transition:left .7s ease}.test-controls{padding:12px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:#492637;border:1px solid #e49f76;font:12px Arial;margin-bottom:8px}.test-controls label{display:flex;align-items:center;gap:9px}
/* Reference-matched raster hardware. Source PNGs stay intact; fit their alpha bounds. */
.sprite{position:relative;display:block;pointer-events:none;overflow:visible}
.sprite>img{position:absolute;max-width:none;object-fit:fill;pointer-events:none}
.layer.sprite{position:absolute}
.cell{border:0;background:transparent;box-shadow:none;padding:0;isolation:isolate}
.cell-backing{position:absolute;inset:1% .7%;z-index:-1}
.cell>img.symbol{padding:4%;transform:scale(1.1)}
.cell.portrait>img.symbol{padding:4%;transform:scale(1.08)}
.reel-column{padding:0}.readout-base,.button-base{position:absolute;inset:0}
.readout>.readout-label{position:absolute;left:7%;top:-58%;width:86%;height:57%;object-fit:contain;filter:none}
.readout output{top:28%;bottom:auto;font-size:1.45cqw;line-height:1.05;text-shadow:0 .1cqw #000}
.art-button{filter:drop-shadow(0 .2cqw .12cqw #0009)}
.art-button>.button-label{position:absolute;left:13%;top:14%;width:74%;height:57%;object-fit:contain}
.art-button[data-action=spin]{transform:rotate(-6deg)}
.art-button[data-action=spin]>.button-label{left:22%;width:56%;top:18%;height:38%}
.art-button[data-action=plus]>.button-label,.art-button[data-action=minus]>.button-label{left:15%;top:-6%;width:70%;height:90%}
.art-button:disabled>.button-label{opacity:.4}.art-button .resume-label{top:28%;font-size:1.8cqw;background:#84142b}
.jackpot-value{font-size:1.75cqw;color:#ffe4a6;text-shadow:0 .12cqw .2cqw #000}
.jackpot-hint{left:43%;top:10.5%;width:14%;font-size:.52cqw}
.bonus-title{top:5%;height:14%;left:24%;width:52%}
.bonus-title-base,.result-base{position:absolute;inset:0}
.bonus-title-label{position:absolute;left:12%;top:34%;width:76%;height:45%;object-fit:contain}
.bonus-result>.result-label{position:absolute;left:20%;top:33%;width:60%;height:20%;object-fit:contain}
.bonus-result strong{top:58%;font-size:3cqw}.bonus-result p{top:110%}.bonus-result button{top:143%}
.cell.winner>.symbol{animation:win-bounce-rendered 1.3s ease-in-out infinite}
@keyframes win-bounce-rendered{0%,100%{transform:scale(1.07)}50%{transform:scale(1.13)}}

.bonus-choices.route button,.bonus-choices.grand button{background:transparent;border:0;box-shadow:none;isolation:isolate;padding:1.5cqw 1.2cqw 1cqw}
.choice-card-back,.choice-reveal-back{position:absolute;inset:0;z-index:-1}
.choice-reveal{background:transparent;border:0;box-shadow:none;isolation:isolate;padding:6% 3% 2%;gap:4%}
.choice-reveal b{font-size:3.3cqw}.choice-reveal p{font-size:1.25cqw}

.bonus-choices.route button>img,.bonus-choices.grand button>img{transform:scale(1.2)}

/* Registered, preloaded control states share one fixed hardware position. */
.art-button .button-base{opacity:0}
.art-button[data-state=normal] .state-normal,.art-button[data-state=pressed] .state-pressed,.art-button[data-state=disabled] .state-disabled{opacity:1}
.art-button[data-action=spin][data-state=pressed]>.button-label{transform:translateY(6%)}
.art-preview .bonus-modal{width:100vw;max-width:100vw;max-height:100dvh;border:0;border-radius:0}
.art-preview .bonus-stage{aspect-ratio:1.5}

/* Exact reference cabinet; only the reel windows and runtime information change. */
.reference-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;mask-size:100% 100%;mask-repeat:no-repeat;pointer-events:none;z-index:2}
.reference-machine .reels{z-index:1;background:#061323}
.reference-machine .cell{background:radial-gradient(ellipse at 45% 35%,#153248,#071322 80%)}
.reference-machine .cell-backing{display:none}
.reference-machine .cell>img.symbol{padding:7%;transform:scale(1.02)}
.reference-machine .cell.portrait>img.symbol{padding:5%;transform:scale(1.05)}
.reference-machine .payline-overlay{z-index:3}
.reference-machine .jackpot-value,.reference-machine .readout{z-index:3}
.reference-machine .readout output{inset:0;display:flex;align-items:center;justify-content:center;font-size:2cqw;line-height:1}
.reference-machine .jackpot-value{font-size:2.3cqw}
.reference-machine .reference-control{z-index:4;overflow:hidden;border-radius:16%;background:none;transform:none;filter:none;isolation:isolate}
.reference-control .reference-control-art{position:absolute;max-width:none;object-fit:fill;pointer-events:none}
.reference-machine .reference-control[data-action=spin]{border-radius:50%;transform:none}
.reference-machine .reference-control:hover:not(:disabled){filter:brightness(1.1)}
.reference-machine .reference-control[data-state=pressed]{filter:brightness(.77);box-shadow:inset 0 .3cqw .5cqw #0009}
.reference-machine .reference-control[data-state=disabled]{filter:saturate(.3) brightness(.6);opacity:1}
.reference-machine .reference-control .button-tag{top:18%;left:8%;right:8%;z-index:1;padding:.2cqw 0;font-size:1.1cqw}
.reference-machine .reference-control .resume-label{top:31%;left:12%;right:12%;z-index:1;font-size:2.3cqw}

.reference-symbol{position:relative;display:block;flex:none;width:100%;height:100%;overflow:hidden}
.reference-symbol>img{position:absolute;max-width:none;object-fit:fill;pointer-events:none}
.reference-machine .cell>.reference-symbol{padding:0;transform:none;animation:none}
.reel-column.spinning .reference-symbol{filter:blur(1.1px)}
.reference-machine .cell.winner>.reference-symbol{filter:brightness(1.15)}
.reference-machine .cell.winner:after{z-index:2;inset:7%}
.reference-machine .cell .win-glow{z-index:1}
#paytable .reference-symbol{width:62px;height:53px;border-radius:3px}

/* SPIN feedback touches only the red face; the chrome stays unchanged. */
.reference-machine .reference-control[data-action=spin]:hover,.reference-machine .reference-control[data-action=spin][data-state=pressed],.reference-machine .reference-control[data-action=spin][data-state=disabled]{filter:none;box-shadow:none}
.reference-control[data-action=spin]::after{content:'';position:absolute;left:17.5%;top:11%;width:67%;height:56%;border-radius:50%;transform:rotate(10deg);pointer-events:none;background:transparent}
.reference-control[data-action=spin]:hover:not(:disabled)::after{background:#ffffff15}
.reference-control[data-action=spin][data-state=pressed]::after{background:#15081155}
.reference-control[data-action=spin][data-state=disabled]::after{background:#21142088}

.reference-control .spin-face{position:absolute;left:15.5%;top:9.3%;width:71%;height:61%;transform:rotate(10deg)}
.reference-control .spin-face-label{position:absolute;left:26%;top:13%;width:52%;height:48%;object-fit:contain;pointer-events:none}

/* Crop before motion filtering; never blur neighboring pixels from the full atlas. */
.reference-machine .reel-column.spinning .reference-symbol>img{filter:none}
.reference-machine .reel-column.stopped{animation:none}
.reference-machine .reel-column,.reference-machine .cell,.reference-symbol{overflow:hidden;contain:paint}

/* Object artwork has a separate safe inset; ranks and portraits keep their sizing. */
.object-crop>img{position:absolute;max-width:none;object-fit:fill;pointer-events:none}
.reference-machine .reel-column.spinning .object-crop>img{filter:none}

/* Preserve the proportions of generated foil curls in the bonus overlay. */


/* Each confetti piece wraps outside the clipped effect area; text stays above it. */
.celebration>.confetti-stream{inset:-16% -15%;z-index:-1}
.bonus-stage>.bonus-confetti-stream{z-index:0}
.bonus-result,.bonus-cameo,.bonus-prop{z-index:1}
/* The camera lands in a scene filling the browser viewport. */
#bonusModal.bonus-modal{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#061326}
#bonusModal::backdrop{background:#061326;backdrop-filter:none}
#bonusContent{width:100%;height:100%}
#bonusModal .bonus-stage{width:100%;height:100%;aspect-ratio:auto}
#bonusModal .bonus-prompt{font-size:clamp(22px,2.25cqw,40px)}
#bonusModal .bonus-subtitle{font-size:clamp(13px,1.18cqw,21px)}
#bonusModal .bonus-pause,#bonusModal .bonus-topline{font-size:clamp(11px,1cqw,16px)}
#bonusModal .bonus-running{font-size:clamp(16px,1.6cqw,28px)}
#bonusModal .choice-label{font-size:clamp(12px,1.25cqw,22px)}
#bonusModal .bonus-result strong{font-size:clamp(28px,3cqw,54px)}
#bonusModal .bonus-result p,#bonusModal .bonus-result button{font-size:clamp(13px,1.25cqw,21px)}
.sound-control{border:0;padding:0;background:none;border-radius:15%;isolation:isolate;touch-action:manipulation}
.sound-control .sprite{position:absolute;inset:0}
.sound-control[aria-pressed]{background:transparent;border:0}
/* Keep the exact same chrome visible in both states; replace only the central face. */
.sound-control .sound-off{clip-path:inset(16% 30% 23% 30%)}
.sound-control:not([data-muted=true]) .sound-off{visibility:hidden}
.sound-control:hover:not(:disabled){filter:none;box-shadow:0 0 8px #f6d6aa66}
.sound-control:active:not(:disabled){transform:translateY(1px);box-shadow:none}
.cabinet-sound{position:absolute;z-index:12}
.bonus-sound{position:absolute;left:3%;bottom:3%;width:clamp(66px,8cqw,94px);aspect-ratio:94/49;z-index:5}
.bonus-fullscreen{position:absolute;right:3%;bottom:3%;font:clamp(12px,1.1cqw,18px) Arial;z-index:5}
.bonus-hold{position:absolute;left:50%;bottom:5%;transform:translateX(-50%);font:clamp(12px,1.1cqw,17px) Arial;z-index:4}
/* Cabinet win overlays live in the safe reel aperture, including every particle. */
.machine>.celebration{overflow:hidden;isolation:isolate;container-type:inline-size}
.machine>.celebration>.confetti-stream,.machine>.celebration>.sparkle-effect{inset:0}

/* Explicit option colors keep the native test menu readable on Windows. */
.test-controls select {
  color-scheme: dark;
  color: #fff0d1;
  background: #0b213a;
  border-color: #b73451;
}
.test-controls select option {
  color: #fff0d1;
  background-color: #0b213a;
}
.test-controls select option:checked {
  color: #fff0d1;
  background-color: #80162f;
}
.test-controls select:focus-visible {
  outline-color: #e7c780;
}
