/* Portrait cabinet effects use 1000 × 1800 design pixels. Portaled menus and
   the top-layer paytable use physical pixels so their controls stay touchable. */
.portraitPanelShade,.portraitPanelClose,#portraitQaButton{display:none}
html[data-slot-orientation="portrait"] .portraitPanelShade{position:fixed;z-index:110;inset:0;display:block;background:rgb(0 2 20/.78);backdrop-filter:blur(5px)}
html[data-slot-orientation="portrait"] :is(#gameMenuPanel,#autoSpinChoice,#qaPanel).portraitManagedPanel{position:fixed;z-index:111;inset:auto;left:50%;top:50%;width:min(420px,calc(100vw - 28px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:0;padding:0;transform:translate(-50%,-50%);overflow:auto;overscroll-behavior:contain;border:2px solid #a9c8d9;border-radius:22px;color:#fff;background:radial-gradient(ellipse at 0 0,#12607866,transparent 58%),linear-gradient(145deg,#051021,#190923);box-shadow:inset 0 0 0 3px #101726,inset 0 0 0 4px #59dfee66,0 0 18px #37ddea33,0 16px 54px #000b}
html[data-slot-orientation="portrait"] .portraitManagedPanel header{padding:25px 54px 20px 20px;text-align:left;border-bottom:1px solid #64dce655;background:linear-gradient(100deg,#16495666,#33153c66)}
html[data-slot-orientation="portrait"] .portraitManagedPanel header small{display:block;font-size:10px;letter-spacing:.12em}
html[data-slot-orientation="portrait"] .portraitManagedPanel h2{font-size:27px;line-height:1.15;margin:4px 0 0}
html[data-slot-orientation="portrait"] .portraitPanelClose{position:absolute;z-index:5;display:grid;place-items:center;right:9px;top:9px;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:1px solid #b4f1ff;border-radius:50%;background:linear-gradient(#263e55,#16172c);color:#fff;font:500 30px/1 system-ui;box-shadow:0 0 12px #3ce7f52b}
html[data-slot-orientation="portrait"] .menuOptions{padding:10px;gap:3px}
html[data-slot-orientation="portrait"] .menuOptions button{min-height:65px;grid-template-columns:37px minmax(0,1fr) 28px;gap:8px;padding:6px 10px;border-radius:13px}
html[data-slot-orientation="portrait"] .menuOptions i{font-size:25px}
html[data-slot-orientation="portrait"] .menuOptions span strong{font-size:17px;line-height:1.2}
html[data-slot-orientation="portrait"] .menuOptions span small{font-size:11px;line-height:1.35;margin-top:3px}
html[data-slot-orientation="portrait"] .menuOptions b{font-size:25px}
html[data-slot-orientation="portrait"] #portraitQaButton{display:grid}
html[data-slot-orientation="portrait"] .qaControls{display:none}
html[data-slot-orientation="portrait"] .autoOptions{padding:17px;gap:12px}
html[data-slot-orientation="portrait"] .autoOptions button{min-height:72px;padding:10px;font-size:26px;border-radius:16px}
html[data-slot-orientation="portrait"] .autoOptions button small{font-size:11px}
html[data-slot-orientation="portrait"] #qaPanel.portraitManagedPanel{padding:19px 16px 16px}
html[data-slot-orientation="portrait"] #qaPanel>strong{padding:8px 38px 16px 0;font-size:19px;line-height:1.25;color:#caff53}
html[data-slot-orientation="portrait"] #qaPanel>button:not(.portraitPanelClose){display:block;width:100%;min-height:46px;margin:6px 0 0;padding:11px 14px;font-size:15px;line-height:1.25;border:1px solid #64e6ff50;border-radius:12px;background:linear-gradient(120deg,#3a175b,#172c57)}
html[data-slot-orientation="portrait"] #qaPanel>.portraitPanelClose{width:44px;margin:0;padding:0;border:1px solid #81efff;border-radius:50%;background:#32165a;font:500 30px/1 system-ui}
html[data-slot-orientation="portrait"] .portraitManagedPanel :focus-visible{outline:2px solid #daff66;outline-offset:2px}

/* The native paytable keeps its tabs, content and modal lifecycle. */
html[data-slot-orientation="portrait"] #paytableDialog{height:100dvh}
html[data-slot-orientation="portrait"] .paytableFrame{width:min(580px,calc(100vw - 20px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));height:min(820px,calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));padding:0;border-width:2px;border-radius:23px;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 3px #101726,inset 0 0 0 4px #59dfee66,0 0 18px #37ddea33,0 16px 54px #000b}
html[data-slot-orientation="portrait"] .paytableHeading{left:18px;right:56px;top:18px}
html[data-slot-orientation="portrait"] .paytableHeading small{font-size:9px;letter-spacing:.1em}
html[data-slot-orientation="portrait"] .paytableHeading h2{font-size:24px;line-height:1.1}
html[data-slot-orientation="portrait"] #closePaytableButton{right:8px;top:9px;width:44px;height:44px;padding:0;display:grid;place-items:center;font-size:30px;border-width:1px}
html[data-slot-orientation="portrait"] .paytableContent{top:81px;left:13px;right:10px;bottom:74px;padding:0 5px 22px 0;overscroll-behavior:contain;font-size:13px;line-height:1.5}
html[data-slot-orientation="portrait"] .paytablePage>h3{font-size:20px;line-height:1.2;margin:0 0 10px}
html[data-slot-orientation="portrait"] :is(.paytableLead,.paytableNote){font-size:12px;padding:10px;margin:0 0 13px}
html[data-slot-orientation="portrait"] .paytableGrid{grid-template-columns:1fr;gap:10px}
html[data-slot-orientation="portrait"] .payCard{grid-template-columns:84px minmax(0,1fr);gap:11px;min-height:128px;padding:10px;border-radius:16px}
html[data-slot-orientation="portrait"] .payCardSymbol{width:84px;height:84px;border-radius:12px}
html[data-slot-orientation="portrait"] .payCard h3{font-size:17px;margin-bottom:7px;white-space:normal}
html[data-slot-orientation="portrait"] .payRow{padding:3px 6px;gap:4px}
html[data-slot-orientation="portrait"] .payRow dt{font-size:11px;gap:3px}
html[data-slot-orientation="portrait"] .payRow dt strong{font-size:12px}
html[data-slot-orientation="portrait"] .payRow dd{font-size:15px}
html[data-slot-orientation="portrait"] .ruleGrid{grid-template-columns:1fr;gap:12px}
html[data-slot-orientation="portrait"] .ruleCard{min-height:0;padding:15px;border-radius:16px}
html[data-slot-orientation="portrait"] .ruleCard h3{font-size:20px}
html[data-slot-orientation="portrait"] :is(.ruleCard p,.ruleCard li){font-size:13px}
html[data-slot-orientation="portrait"] .featureAwardList li{gap:8px;padding:5px 7px}
html[data-slot-orientation="portrait"] .lineDiagramGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
html[data-slot-orientation="portrait"] .lineCard{padding:10px 7px;border-radius:12px}
html[data-slot-orientation="portrait"] .lineCard strong{font-size:13px}
html[data-slot-orientation="portrait"] .paytableTabs{left:12px;right:12px;bottom:12px;translate:none;gap:6px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-slot-orientation="portrait"] .paytableTabs button{min-width:0;min-height:44px;padding:8px 4px;font-size:12px;border-radius:13px}
html[data-slot-orientation="portrait"] .paytableTabs button:focus-visible{outline:2px solid white;outline-offset:2px}

/* One chrome-framed meter rail keeps all bonus values in the same recessed bay. */
html[data-slot-orientation="portrait"] #featureHud{left:55px;right:auto;top:1201px;width:890px;height:127px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:5px 9px;border:3px solid #a4c6d1;border-radius:21px;background:linear-gradient(135deg,#0c253bef,#100920f5);filter:none;box-shadow:inset 0 0 0 3px #071225,inset 0 0 0 5px #4ad9ed75,0 0 15px #21d9ed35,0 7px 12px #02031466}
html[data-slot-orientation="portrait"] #featureHud>div{position:relative;inset:auto;min-width:0;width:auto;height:111px;display:grid;align-content:center;justify-items:center;gap:9px;padding:12px 9px;border:0;border-radius:0;background:none;box-shadow:none}
html[data-slot-orientation="portrait"] #featureHud>div+div::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:2px;background:linear-gradient(transparent,#5ceaf8bb 24% 76%,transparent)}
html[data-slot-orientation="portrait"] #featureHud span{max-width:100%;font-size:27px;line-height:1.1;letter-spacing:.025em;white-space:nowrap;color:#c8f7ff;text-shadow:0 1px 2px #000}
html[data-slot-orientation="portrait"] #featureHud strong{max-width:100%;font-size:43px;line-height:1;margin:0;font-variant-numeric:tabular-nums;color:#f1ffbd;white-space:nowrap;text-shadow:0 2px 2px #041020,0 0 8px #abff3840}
html[data-slot-orientation="portrait"] #featureHud #featureWinText{font-size:40px}
html[data-slot-orientation="portrait"] #featureHud .freeSpinAdded{left:calc(50% + 62px);top:58px;font-size:38px;transform:translate(-50%,10px) scale(.72)}
html[data-slot-orientation="portrait"] #featureHud .freeSpinAdded.isRising{animation-name:portraitFreeSpinAddedRise}
html[data-slot-orientation="portrait"] #featureHud .freeSpinAdded.isReducedMotion.isRising{animation:none;opacity:1;transform:translate(-50%,0) scale(1)}
@keyframes portraitFreeSpinAddedRise{0%{opacity:0;transform:translate(-50%,10px) scale(.72)}15%{opacity:1;transform:translate(-50%,1px) scale(1.08)}70%{opacity:1;transform:translate(-50%,-10px) scale(1)}100%{opacity:0;transform:translate(-50%,-20px) scale(1)}}

/* Laser rig and live DOM targets share the portrait effect-canvas coordinates. */
html[data-slot-orientation="portrait"] .laserFooterForeground{display:none}
html[data-slot-orientation="portrait"] .laserOverlay{background:linear-gradient(180deg,transparent 51%,#03082766 55%,#10052b7a 71%,transparent 75%)}
html[data-slot-orientation="portrait"] .laserStatusPanel{clip:auto!important;clip-path:none;overflow:visible!important;white-space:normal!important;margin:0!important;left:140px;top:955px;width:720px!important;height:auto!important;padding:0!important;border:0!important;border-radius:0;background:none;box-shadow:none;text-shadow:0 2px 4px #01091b,0 0 12px #01091b}
html[data-slot-orientation="portrait"] .laserStatusPanel small{display:none}
html[data-slot-orientation="portrait"] .laserStatusPanel h2{font-size:36px;font-weight:900;line-height:1.15;margin:0;color:#d0faff;-webkit-text-fill-color:currentColor;background:none;-webkit-background-clip:initial;background-clip:border-box;filter:none;text-shadow:0 2px 4px #020515,0 0 8px #031529}
html[data-slot-orientation="portrait"] .laserStatusPanel p{font-size:24px;line-height:1.2;margin:5px 0 0}
html[data-slot-orientation="portrait"] .laserMachineRig{left:45px;top:1042px;width:322px}
html[data-slot-orientation="portrait"] .laserSelector{left:420px;top:1064px;flex-direction:row;gap:15px;transform:translateY(40px)}
html[data-slot-orientation="portrait"] .laserCard{width:146px;height:146px;border-width:3px;border-radius:16px;box-shadow:0 0 15px #2eefff99,inset 0 0 22px #50ebff22}
html[data-slot-orientation="portrait"] .laserCard span{font-size:68px}
html[data-slot-orientation="portrait"] #laserReady{left:410px;top:1255px;width:500px;font-size:24px;line-height:1.25}
html[data-slot-orientation="portrait"] .laserOverlay[data-phase="entering"] .laserSelector,
html[data-slot-orientation="portrait"] .laserOverlay[data-phase="targeting"] .laserSelector,
html[data-slot-orientation="portrait"] .laserOverlay[data-phase="firing"] .laserSelector,
html[data-slot-orientation="portrait"] .laserOverlay[data-phase="locked"] .laserSelector,
html[data-slot-orientation="portrait"] .laserOverlay[data-phase="respin"] .laserSelector{transform:translateY(0)}

/* Door halves retain a single matching centre seam when cropped to portrait. */
html[data-slot-orientation="portrait"] .raveDoorHalf img{width:1000px;height:1800px;object-fit:cover}
html[data-slot-orientation="portrait"] .bonusAwardPlaque{left:20px;top:580px;width:960px;height:640px}
html[data-slot-orientation="portrait"] :is(.bonusEntryContent,.bonusExitContent){left:11.413%;top:25.775%;width:77.174%;height:45.677%}
html[data-slot-orientation="portrait"] .bonusAwardHeadline{width:95.774%;gap:12px}
html[data-slot-orientation="portrait"] .goldLetterArt{width:65.735%;height:156.52px}
html[data-slot-orientation="portrait"] .silverLetterArt{width:91.55%;height:109.56px;margin-top:-20px}
html[data-slot-orientation="portrait"] .bonusAwardSpins{flex:0 0 auto;min-width:94px;height:138px;font-size:138px}
html[data-slot-orientation="portrait"] .bonusExitTotal{min-width:0;width:100%;height:132px;font-size:116px}
html[data-slot-orientation="portrait"] .bonusExitContent small{font-size:31px}
html[data-slot-orientation="portrait"] .bonusExitContent strong{font-size:37px}
html[data-slot-orientation="portrait"] .bonusFlightBurst i{left:50%;top:64%}
html[data-slot-orientation="portrait"] .transitionCopy{width:850px;padding:60px 50px;border-radius:38px}
html[data-slot-orientation="portrait"] .transitionCopy small{font-size:28px}
html[data-slot-orientation="portrait"] .transitionCopy h2{font-size:72px}
html[data-slot-orientation="portrait"] .transitionCopy>strong{font-size:52px}
html[data-slot-orientation="portrait"] .transitionCopy p{font-size:34px;line-height:1.45}
html[data-slot-orientation="portrait"] .transitionCopy button{min-height:calc(44px / var(--slot-cabinet-scale));width:100%;font-size:34px;padding:24px 28px}

/* The machine and copy scale together; light and particles fill the whole cabinet. */
html[data-slot-orientation="portrait"] .bigWinOverlay::before{inset:0;transform:none;background:repeating-conic-gradient(from 0deg at 50% 49%,#7aff3210 0 3deg,transparent 3deg 14deg),radial-gradient(ellipse at 50% 49%,#43faff18,transparent 70%)}
html[data-slot-orientation="portrait"] :is(.bigWinRig,.bigWinCopy){left:20px;top:580px;width:960px;height:640px}
html[data-slot-orientation="portrait"] .bigWinCanisterGlow{top:23.644%;width:15.77%;height:43.253%}
html[data-slot-orientation="portrait"] .bigWinCanisterGlow.isLeft{left:3%}
html[data-slot-orientation="portrait"] .bigWinCanisterGlow.isRight{right:3%}
html[data-slot-orientation="portrait"] .bigWinCopy small{left:23.077%;top:32.065%;width:53.846%;font-size:24px;letter-spacing:.13em}
html[data-slot-orientation="portrait"] .bigWinCopy h2{left:20%;top:9.919%;width:60%;height:16.724%;font-size:80px}
html[data-slot-orientation="portrait"] .bigWinOverlay[data-tier="super"] .bigWinCopy h2{font-size:60px}
html[data-slot-orientation="portrait"] :is(.bigWinOverlay[data-tier="cosmic"],.bigWinOverlay[data-tier="mega"]) .bigWinCopy h2{font-size:69px}
html[data-slot-orientation="portrait"] .bigWinCopy>strong{left:20.769%;top:38.524%;width:58.462%;height:23.068%;font-size:92px;text-shadow:0 0 8px #b8ff56,0 5px 0 #063c37}
html[data-slot-orientation="portrait"] .bigWinCopy p{left:33.846%;top:74.74%;width:32.308%;height:10.381%;font-size:30px}
html[data-slot-orientation="portrait"] .bigWinFinaleBloom{left:-30%;top:18%;width:160%;height:65%;background:radial-gradient(ellipse,#fff9 0 2%,#b9ff464f 12%,#43f6ff12 37%,transparent 65%)}

/* A generous portrait loader stays readable in the cabinet's design scale. */
html[data-slot-orientation="portrait"] .loaderCard{width:830px;padding:74px 55px 64px;border-radius:42px}
html[data-slot-orientation="portrait"] .loaderCard h1{font-size:78px;margin-top:34px}
html[data-slot-orientation="portrait"] .loaderCard p{font-size:32px;line-height:1.4;margin:26px 0 28px}
html[data-slot-orientation="portrait"] .loaderCard>strong{font-size:38px;margin-top:20px}
html[data-slot-orientation="portrait"] .loaderTrack{height:25px}
html[data-slot-orientation="portrait"] .preloaderRetry{min-height:calc(44px / var(--slot-cabinet-scale));font-size:36px;padding:22px 34px;margin-top:24px}
