/* The 1000 × 1800 portrait cabinet is painted as a single continuous piece. */
.portraitCabinet,.portraitMeterLabels,.portraitControlFace,.portraitTurboButton{display:none}
html[data-slot-orientation="portrait"] body{background:#030511}
html[data-slot-orientation="portrait"] body::before{display:none}
html[data-slot-orientation="portrait"] #gameShell{width:1000px;height:1800px;visibility:visible;overflow:hidden;background:#030511;box-shadow:none}
html[data-slot-orientation="portrait"] .portraitCabinet{display:block;position:absolute;inset:0;z-index:0;pointer-events:none}
.portraitCabinetBand{position:absolute;left:0;width:1000px;overflow:hidden}
.portraitCabinetBand img{position:absolute;left:0;width:1000px;height:1800px;max-width:none;transform-origin:top left}
/* One continuous illustration uses straight-rail bands to fit the native
   5-by-3 reel aspect without stretching the logo, meters or control faces. */
.portraitCabinetHeader{top:0;height:360px}.portraitCabinetHeader img{top:0}
.portraitCabinetReels{top:360px;height:430px}.portraitCabinetReels img{top:-455.294118px;transform:scaleY(1.2647058824)}
.portraitCabinetMeters{top:790px;height:170px}.portraitCabinetMeters img{top:-700px}
.portraitCabinetStage{top:960px;height:370px}.portraitCabinetStage img{top:-699.782609px;transform:scaleY(.8043478261)}
.portraitCabinetDeck{top:1330px;height:470px}.portraitCabinetDeck img{top:-1330px}
.portraitCabinetBonus{position:absolute;left:51px;top:962px;width:899px;height:367px;object-fit:cover;border-radius:11px}
.portraitStageLights{position:absolute;left:54px;top:964px;width:892px;height:361px;overflow:hidden;pointer-events:none;opacity:.5}
.portraitStageLights i{position:absolute;left:25%;bottom:-60px;width:75px;height:430px;transform-origin:50% 100%;background:linear-gradient(0deg,#29eaff38,transparent 95%);clip-path:polygon(48% 100%,0 0,100% 0,52% 100%);animation:portraitRaveBeam 11s ease-in-out infinite alternate}
.portraitStageLights i+i{left:79%;height:460px;width:120px;background:linear-gradient(0deg,#f125ff48,transparent 95%);animation-duration:14s;animation-delay:-6s}
@keyframes portraitRaveBeam{from{transform:rotate(-34deg);opacity:.35}to{transform:rotate(29deg);opacity:.9}}
@media(prefers-reduced-motion:reduce){.portraitStageLights{display:none}}
.portraitCabinetBonus{opacity:0}
#gameShell[data-scene="bonus"] .portraitCabinetBonus{opacity:1}
html[data-slot-orientation="portrait"] #gameCanvas{inset:0;width:1000px;height:1800px;z-index:1;pointer-events:none}
html[data-slot-orientation="portrait"] .paylineRail,
html[data-slot-orientation="portrait"] .bonusSideAmbient{display:none}
html[data-slot-orientation="portrait"] .djAlienCraft{left:350px;top:1000px;width:330px;height:324px;z-index:3;filter:drop-shadow(0 10px 12px #03031988)}
html[data-slot-orientation="portrait"] .djAlienPoster,
html[data-slot-orientation="portrait"] .djAlienCanvas{width:100%;height:100%;object-fit:contain}
html[data-slot-orientation="portrait"] .djAlienCraft.isBonusFlyout{animation-name:portraitSaucerFlyout}
@keyframes portraitSaucerFlyout{0%{opacity:1;transform:translate(0,0) scale(1)}50%{opacity:1;transform:translate(0,-330px) scale(.7)}100%{opacity:0;transform:translate(0,-1100px) scale(.12)}}
html[data-slot-orientation="portrait"] .portraitMeterLabels{display:block;position:absolute;inset:0;z-index:7;pointer-events:none;color:#bffaff;font:800 23px/1 Arial,sans-serif;letter-spacing:1.5px;text-align:center;text-shadow:0 2px 3px #000}
.portraitMeterLabels span{position:absolute;display:grid;place-items:center}
.portraitBalanceLabel{left:89px;top:886px;width:146px;height:37px;font-size:21px;letter-spacing:.7px}
.portraitWinLabel{left:547px;top:886px;width:107px;height:37px;font-size:21px;letter-spacing:.7px}
.portraitBetLabel{left:398px;top:1391px;width:204px;height:22px;font-size:20px;letter-spacing:1px}
html[data-slot-orientation="portrait"] .hudValue{display:grid;place-items:center;height:45px;font:900 43px/1 Arial,sans-serif;letter-spacing:.25px;color:#f1ffff;text-shadow:0 0 10px #34d9ff66,0 2px 3px #000;white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden}
html[data-slot-orientation="portrait"] .balanceValue{left:232px;top:881px;width:220px;font-size:38px}
html[data-slot-orientation="portrait"] .winValue{left:660px;top:881px;width:242px;font-size:38px}
html[data-slot-orientation="portrait"] .betValue{left:397px;top:1415px;width:206px;height:38px;font-size:37px}
html[data-slot-orientation="portrait"] .artHit{min-width:var(--slot-touch-size);min-height:var(--slot-touch-size);margin:0;padding:0;transform:translate(-50%,-50%);background:none;border:0;box-shadow:none;transition:filter .12s ease;isolation:isolate}
html[data-slot-orientation="portrait"] .artHit::after{display:none}
html[data-slot-orientation="portrait"] .artHit:hover,
html[data-slot-orientation="portrait"] .artHit:active,
html[data-slot-orientation="portrait"] .artHit:disabled{transform:translate(-50%,-50%);opacity:1;filter:none}
html[data-slot-orientation="portrait"] .artHit:focus-visible{outline:4px solid #fff;outline-offset:4px}
html[data-slot-orientation="portrait"] .portraitControlFace{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:#f8ffff;font:900 32px/1 Arial,sans-serif;letter-spacing:.5px;text-shadow:0 3px 3px #170c44;pointer-events:none}
.portraitControlFace svg{display:block;width:66px;height:66px;flex:none;filter:drop-shadow(0 3px 2px #1b134f80)}
html[data-slot-orientation="portrait"] .artHit:not(:disabled):hover .portraitControlFace{filter:drop-shadow(0 0 8px #ffffffaa)}
html[data-slot-orientation="portrait"] .artHit:not(:disabled):active .portraitControlFace{filter:brightness(.82)}
html[data-slot-orientation="portrait"] .artHit:disabled .portraitControlFace{color:#b9c4d3}
html[data-slot-orientation="portrait"] .menuButton{left:215px;top:1597px;width:177px;height:177px;border-radius:30px}
html[data-slot-orientation="portrait"] .menuButton .portraitControlFace{inset:auto;left:50%;top:50%;width:106px;height:88px;transform:translate(-50%,-50%) skewX(-5deg);gap:7px}
html[data-slot-orientation="portrait"] .menuButton b{font-size:26px;line-height:1;letter-spacing:.8px}
html[data-slot-orientation="portrait"] .autoButton{left:785px;top:1601px;width:232px;height:174px;border-radius:30px}
html[data-slot-orientation="portrait"] .autoButton .portraitControlFace{inset:auto;left:50%;top:50%;width:164px;height:82px;transform:translate(-50%,-50%);flex-direction:row;gap:8px}
html[data-slot-orientation="portrait"] .autoButton b{font-size:27px;line-height:1.06;letter-spacing:.4px;text-align:center}
html[data-slot-orientation="portrait"] .autoButton svg{width:68px;height:68px}
html[data-slot-orientation="portrait"] .spinButton{left:500px;top:1601px;width:250px;height:250px;border-radius:50%;z-index:14}
html[data-slot-orientation="portrait"] .portraitSpinArt{position:absolute;left:50%;top:50%;width:282px;height:251.823px;transform:translate(-50%,-50%);object-fit:contain;pointer-events:none}
html[data-slot-orientation="portrait"] .spinButton.isStopping .portraitControlFace{visibility:hidden}
html[data-slot-orientation="portrait"] .spinButton .stopFace{inset:auto;left:50%;top:50%;width:282px;height:251.823px;transform:translate(-50%,-50%);background:url("../assets/ui/stop-button.png") center/contain no-repeat;border:0;border-radius:0;filter:none}
html[data-slot-orientation="portrait"] .spinButton.isStopping .stopFace{display:flex}
html[data-slot-orientation="portrait"] .spinButton .stopFace i{display:none}
html[data-slot-orientation="portrait"] .spinButton #autoCountBadge{left:50%;top:50%;width:68px;height:68px;transform:translate(-50%,-50%);font:900 33px/1 Arial,sans-serif;letter-spacing:-1px;color:#75051d;text-shadow:none}
html[data-slot-orientation="portrait"] .maxBetButton{left:844px;top:1420px;width:160px;height:96px;border-radius:22px}
html[data-slot-orientation="portrait"] .maxBetButton .portraitControlFace{inset:auto;left:50%;top:50%;width:148px;height:56px;transform:translate(-50%,-50%)}
html[data-slot-orientation="portrait"] .maxBetButton b{font-size:26px;line-height:1;letter-spacing:.2px;text-align:center;white-space:nowrap}
html[data-slot-orientation="portrait"] .betDownButton{left:310px;top:1420px;width:88px;height:96px;border-radius:20px}
html[data-slot-orientation="portrait"] .betUpButton{left:689px;top:1420px;width:88px;height:96px;border-radius:20px}
html[data-slot-orientation="portrait"] .portraitBetSign{font-size:64px;line-height:1;font-family:Arial,sans-serif;font-weight:700;letter-spacing:0}
html[data-slot-orientation="portrait"] .portraitTurboButton{display:block;left:158px;top:1420px;width:160px;height:96px;border-radius:22px;color:#332405}
.portraitTurboFace{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;pointer-events:none;font:900 29px/1 Arial,sans-serif;text-shadow:0 1px #fff56c}
.portraitTurboFace svg{width:32px;height:46px}
.portraitTurboElectricity{position:absolute;left:50%;top:50%;width:169px;height:69px;transform:translate(-50%,-50%);border-radius:15px;pointer-events:none;opacity:0}
.portraitTurboButton[data-feedback] .portraitTurboElectricity{animation:portraitTurboSpark .7s ease-out both;outline:4px solid #fffcd1;box-shadow:0 0 10px #fff,0 0 30px #ffd719,inset 0 0 17px #fff34d}
.portraitTurboButton[data-feedback] .portraitTurboElectricity::before,
.portraitTurboButton[data-feedback] .portraitTurboElectricity::after{content:"";position:absolute;inset:-18px -8px;background:#fff7a7;clip-path:polygon(0 43%,28% 28%,22% 45%,49% 33%,47% 55%,80% 34%,73% 55%,100% 40%,80% 66%,84% 48%,52% 75%,56% 51%,22% 65%,28% 46%);filter:drop-shadow(0 0 8px #ffff37)}
.portraitTurboButton[data-feedback] .portraitTurboElectricity::after{transform:rotate(180deg);animation:portraitTurboArc .12s steps(2,end) 5}
@keyframes portraitTurboSpark{0%{opacity:0}12%,32%,60%{opacity:1}23%,48%{opacity:.4}100%{opacity:0}}
@keyframes portraitTurboArc{to{opacity:.45}}
@media(prefers-reduced-motion:reduce){.portraitTurboButton[data-feedback] .portraitTurboElectricity{animation:portraitTurboReduced .35s linear both}.portraitTurboButton[data-feedback] .portraitTurboElectricity::before,.portraitTurboButton[data-feedback] .portraitTurboElectricity::after{display:none}@keyframes portraitTurboReduced{0%,70%{opacity:.8}100%{opacity:0}}}
/* Keep a full decoder surface for WebKit canvas readback. */
.djAlienVideo{left:-2000px;top:0;width:960px;height:944px;opacity:0;pointer-events:none}
/* Before the module graph arrives, the loader already fits a phone. */
@media(orientation:portrait){
 html:not([data-slot-orientation]) #preloader{width:100vw;height:100dvh}
 html:not([data-slot-orientation]) .loaderCard{width:83vw;padding:7vw 5.5vw 6.4vw;border-radius:4.2vw;border-width:2px}
 html:not([data-slot-orientation]) .loaderCard h1{font-size:7.8vw;margin-top:3.4vw}
 html:not([data-slot-orientation]) .loaderCard p{font-size:3.2vw;line-height:1.4;margin:2.6vw 0 2.8vw}
 html:not([data-slot-orientation]) .loaderCard>strong{font-size:3.8vw;margin-top:2vw}
 html:not([data-slot-orientation]) .loaderTrack{height:2.5vw}
 html:not([data-slot-orientation]) .loaderUfo{transform:scale(.5);animation:none;margin-top:-12px;margin-bottom:-16px}
}

/* Fixed face geometry remains separate from the minimum44px hit areas. */
html[data-slot-orientation="portrait"] .portraitTurboFace{inset:auto;left:50%;top:50%;width:163px;height:66px;transform:translate(-50%,-50%);font-size:29px}
html[data-slot-orientation="portrait"] .betDownButton .portraitControlFace,html[data-slot-orientation="portrait"] .betUpButton .portraitControlFace{inset:auto;left:50%;top:50%;width:78px;height:82px;transform:translate(-50%,-50%)}
html[data-slot-orientation="portrait"] .artHit:focus-visible{outline:3px solid #e7fdff;outline-offset:3px}

html[data-slot-orientation="portrait"] .menuButton .portraitMenuIcon{width:76px;height:46px}
html[data-slot-orientation="portrait"] :is(.menuButton,.autoButton,.maxBetButton) .portraitControlFace{color:#eefdff;text-shadow:0 2px 2px #24033f,0 0 5px #d5eaff66}
