/* Portrait uses the original native scene at one uniform scale. Live controls
   are independent of that camera, so touch targets never shrink with artwork. */
#mobile-shell{display:contents}
.mobile-safe-probe{position:fixed;visibility:hidden;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.mobile-console-art,.mobile-control-glyph,.mobile-control-label,.mobile-control-illustration,.mobile-bet-panel,.mobile-native-girl,.mobile-native-spin,.mobile-spin-art,.mobile-lab{display:none}
button,input,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media(hover:none){button:not(.art-button):hover{filter:none}.art-button:hover{box-shadow:none}}

html.mobile-portrait{height:100%;overflow:hidden;overscroll-behavior:none;background:#030d13}
body.mobile-portrait{height:100%;overflow:hidden;overscroll-behavior:none;background:#030d13}
.mobile-portrait>.utility,.mobile-portrait>footer{display:none}
.mobile-portrait #mobile-shell{display:block;position:fixed;inset:0;height:var(--mobile-vh,100dvh);overflow:hidden;isolation:isolate;background-image:var(--mobile-forest-trees,url('/demo/floorbidden/assets/mobile-ui/asylum-forest-trees-v3.webp')),url('/demo/floorbidden/assets/mobile-ui/asylum-forest-v5.webp');background-position:var(--mobile-forest-left,0px) var(--mobile-forest-top,0px);background-size:var(--mobile-forest-width,100%) var(--mobile-forest-height,100%);background-repeat:no-repeat}
.mobile-portrait #mobile-shell.mobile-free{background-image:url('/demo/floorbidden/assets/mobile-ui/free-spin-lab-mobile-v1.webp');background-position:center top;background-size:cover}
/* The dedicated portrait lab and its motion share the same cover camera,
   keeping bubbles inside the painted tanks and steam near the floor. */
.mobile-portrait .mobile-free .free-spin-scene{inset:auto;left:calc(-1 * var(--mobile-scene-left));top:calc(-1 * var(--mobile-scene-top));width:100vw;height:var(--mobile-vh,100dvh);background-size:cover;background-position:center top}
.mobile-portrait .mobile-free.mobile-bonus-cinematic .free-spin-scene{left:calc(-1 * var(--mobile-contain-left));top:calc(-1 * var(--mobile-contain-top))}
.mobile-portrait .mobile-free .free-lab-motion{inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center top}
.mobile-portrait main#game{position:absolute;width:var(--mobile-scene-width);height:var(--mobile-scene-height);left:var(--mobile-scene-left);top:var(--mobile-scene-top);margin:0;aspect-ratio:1670/941;overflow:visible;background:transparent;z-index:2}
/* The desktop creature lives beside the cabinet. Bring that same native
   performance inside the phone crop while leaving the Brain title in place. */
.mobile-portrait #mobile-shell:not(.mobile-bonus-cinematic) #brain-monster{left:calc(var(--mobile-crop-left) - var(--mobile-scene-left));right:auto}
.mobile-portrait .mobile-native-girl{display:block;position:absolute;z-index:1;left:var(--mobile-character-left);top:var(--mobile-character-top);width:var(--mobile-character-width);height:var(--mobile-character-height);object-fit:cover;object-position:center top;pointer-events:none}
.mobile-portrait #mobile-shell:is(.mobile-free,.mobile-room,.mobile-bonus-cinematic,[data-phase="brain"],:has(#start-screen:not([hidden]):not(.revealing-game)),:has(.floor-comic:not([hidden])),:has(#pick-rewards:not([hidden])),:has(#free-spin-total:not([hidden])),:has(.floor-entry-canvas:not([hidden]))) .mobile-native-girl{display:none}
:is(.mobile-portrait,.mobile-landscape) #spin .mobile-spin-art{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:-1}
:is(.mobile-portrait,.mobile-landscape) #spin .spin-stop-art{inset:0;width:100%;height:100%;object-fit:contain;transform:none;clip-path:none}
:is(.mobile-portrait,.mobile-landscape) #spin.autoplay-stop .mobile-spin-art{visibility:hidden}
:is(.mobile-portrait,.mobile-landscape) #spin:has(.mobile-spin-art) .mobile-control-glyph{display:none}
.mobile-portrait #scene,.mobile-portrait .rive-reel-overlay{mask-image:linear-gradient(to bottom,#000 0 85.65%,transparent 85.65%);-webkit-mask-image:linear-gradient(to bottom,#000 0 85.65%,transparent 85.65%)}
.mobile-portrait #mobile-shell:not(.mobile-bonus-cinematic) #scene,.mobile-portrait #mobile-shell:not(.mobile-bonus-cinematic) .rive-reel-overlay{clip-path:var(--mobile-machine-clip)!important}
.mobile-portrait #scene-weather,.mobile-portrait #building-apparition{mask-image:linear-gradient(#000 0 80%,transparent 86%)}
.mobile-portrait #mobile-shell.mobile-bonus-cinematic #game{left:var(--mobile-contain-left);top:var(--mobile-contain-top);width:var(--mobile-contain-width);height:var(--mobile-contain-height)}
.mobile-portrait #mobile-shell.mobile-bonus-cinematic #scene,.mobile-portrait #mobile-shell.mobile-bonus-cinematic .rive-reel-overlay{mask-image:none;-webkit-mask-image:none}
.mobile-portrait #mobile-shell.mobile-bonus-cinematic #base-controls{opacity:0;pointer-events:none}
.bonus-portrait-exterior{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.bonus-portrait-exterior[hidden]{display:none}
.mobile-portrait #mobile-shell.mobile-bonus-portrait:not(.mobile-bonus-duck) .mobile-native-girl{display:none}
.mobile-portrait #mobile-shell.mobile-bonus-portrait #base-controls button{pointer-events:none}
.mobile-portrait .mobile-lab:not([hidden]){display:block;position:absolute;z-index:98;right:5px;top:calc(var(--mobile-safe-top) + 53px);min-width:44px;min-height:28px;padding:3px 8px;font:700 9px 'Segoe UI',sans-serif;letter-spacing:.1em;opacity:.65}

/* One illustrated instrument deck; existing buttons keep their IDs and logic. */
.mobile-portrait #base-controls{position:absolute;inset:0;z-index:8;pointer-events:none;font-family:'Segoe UI',sans-serif;container-type:normal}
.mobile-portrait #base-controls:before{content:'';position:absolute;inset:auto 0 0;height:calc(var(--mobile-safe-bottom) + 53px);background:rgb(0 0 0 / 60%);pointer-events:none}
.mobile-portrait #base-controls button{pointer-events:auto;touch-action:manipulation;transition:filter .12s,opacity .12s}
.mobile-portrait .mobile-console-art{display:block;position:absolute;width:var(--mobile-console-width);height:var(--mobile-console-height);left:var(--mobile-console-left);top:var(--mobile-console-top);pointer-events:none;filter:drop-shadow(0 6px 9px #000b)}
.mobile-console-art>img{width:100%;height:100%;display:block}
.mobile-console-glow{position:absolute;left:37%;right:37%;top:15%;bottom:39%;border-radius:50%;box-shadow:0 0 14px #91ff3050,inset 0 0 22px #48ff211a;animation:mobile-console-breathe 4s ease-in-out infinite alternate}
@keyframes mobile-console-breathe{to{opacity:.45}}
.mobile-portrait #base-controls .readout{top:auto;bottom:calc(var(--mobile-safe-bottom) + 7px);width:43%;height:24px;line-height:24px;font:750 clamp(17px,4.7vw,23px)/24px 'Segoe UI',sans-serif;transform:none;text-shadow:0 2px 3px #000;white-space:nowrap;letter-spacing:-.02em}
.mobile-portrait #balance{left:auto;right:5%;text-align:right}
.mobile-portrait #win{left:5%;right:auto;text-align:left;color:#c7ff78}
.mobile-portrait #balance:before,.mobile-portrait #win:before{content:'BALANCE';position:absolute;left:0;right:0;top:-15px;color:#aac4bc;font:600 9px/12px 'Segoe UI',sans-serif;letter-spacing:.16em}
.mobile-portrait #win:before{content:'WIN'}
.mobile-portrait #base-controls #spin{left:var(--mobile-control-spin-left);top:var(--mobile-control-spin-top);bottom:auto;width:var(--mobile-control-spin-width);height:var(--mobile-control-spin-height);transform:none;border-radius:50%;border:0;background:none;box-shadow:none;isolation:isolate}
.mobile-portrait #spin .mobile-control-glyph{width:63%;height:63%;left:18.5%;top:18.5%;color:#edffd9;filter:drop-shadow(0 1px 3px #80ff56)}
.mobile-portrait #spin.spinning{filter:brightness(1.12)}
.mobile-portrait #spin:disabled{filter:saturate(.5);opacity:.7}
.mobile-portrait #spin.autoplay-stop{background:transparent;border:0;box-shadow:none}
.mobile-portrait #spin.autoplay-stop .mobile-control-glyph{display:none}
.mobile-portrait #spin.autoplay-stop:after{left:36.914%;top:34.375%;width:26.172%;height:26.172%;font-size:clamp(13px,4vw,22px)}
.mobile-portrait .mobile-control-glyph{display:block;position:absolute;inset:0;pointer-events:none}
.mobile-control-glyph svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.mobile-control-glyph .filled{fill:currentColor;stroke-width:1}
.mobile-control-glyph .solid{fill:currentColor;stroke:none}
.mobile-portrait .mobile-control-label{display:block;pointer-events:none}
.mobile-portrait #auto,.mobile-portrait #buy-bonus{top:var(--mobile-control-auto-top);bottom:auto;width:var(--mobile-control-auto-width);height:var(--mobile-control-auto-height);min-height:44px;padding:0;border:0;border-radius:5px;background:none;box-shadow:none;clip-path:none;transform:none;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;color:#edffd2;font:800 clamp(9px,2.6vw,13px)/1.12 'Segoe UI',sans-serif;letter-spacing:.025em;text-shadow:0 2px 2px #000}
.mobile-portrait #auto{left:var(--mobile-control-auto-left)}
.mobile-portrait :is(#auto,#buy-bonus) .mobile-control-glyph{display:block;position:relative;inset:auto;width:clamp(29px,8.2vw,40px);height:clamp(29px,8.2vw,40px);flex:none;order:-1;color:#fff;filter:drop-shadow(0 2px 2px #0009);margin-bottom:3px}
.mobile-portrait #auto .mobile-control-label{font-size:clamp(9px,2.6vw,13px)}
.mobile-portrait #auto.active{background:#78ff2920;box-shadow:inset 0 0 12px #96ff3833}
.mobile-portrait #auto:before,.mobile-portrait #auto:after{display:none}
.mobile-portrait #buy-bonus{left:var(--mobile-control-buy-left);right:auto;white-space:nowrap}
.mobile-portrait #buy-bonus:before,.mobile-portrait #buy-bonus:after{display:none}
.mobile-portrait #buy-bonus>span:not(.mobile-control-glyph){display:none}
.mobile-portrait .mobile-control-illustration{display:block;pointer-events:none;flex:none}
.mobile-control-illustration img{display:block;width:100%;height:100%;object-fit:contain}
.mobile-portrait #buy-bonus[hidden]{display:none}
.mobile-portrait .mobile-bet-panel{display:none}
.mobile-portrait #base-controls #bet{z-index:3;left:var(--mobile-control-bet-left);top:var(--mobile-control-bet-top);bottom:auto;width:var(--mobile-control-bet-width);height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 5px;box-sizing:border-box;transform:none;text-align:center;font:750 clamp(14px,4.2vw,20px)/1.08 'Segoe UI',sans-serif;letter-spacing:-.02em;color:#eeffcc;white-space:nowrap}
.mobile-portrait #bet:before{content:'TOTAL BET';position:static;color:#a1bca7;font:600 6.5px/8px 'Segoe UI',sans-serif;letter-spacing:.12em}
.mobile-portrait #bet-down,.mobile-portrait #bet-up{z-index:3;top:var(--mobile-control-minus-top);bottom:auto;width:var(--mobile-control-minus-width);height:var(--mobile-control-minus-height);border:0;padding:0;border-radius:8px;color:#c8f69c;background:none;box-shadow:none}
.mobile-portrait #bet-down{left:var(--mobile-control-minus-left)}
.mobile-portrait #bet-up{left:var(--mobile-control-plus-left)}
.mobile-portrait :is(#bet-down,#bet-up) .mobile-control-glyph{display:none}
.mobile-portrait :is(#bet-down,#bet-up) .mobile-control-illustration{display:none}
.mobile-portrait :is(#bet-down,#bet-up):disabled:after{content:'';position:absolute;inset:8%;border-radius:15%;background:#001b1380;pointer-events:none}
:is(.mobile-portrait,.mobile-landscape) #base-controls :is(#menu,#max-bet){display:none}
:is(.mobile-portrait,.mobile-landscape) #base-controls :is(#settings,#mute){position:fixed;top:calc(var(--mobile-safe-top,0px) + 8px);bottom:auto;width:44px;height:44px;padding:0;border:0;border-radius:9px;color:#fff;background:rgb(0 0 0 / 35%);box-shadow:none;transform:none;clip-path:none;z-index:10}
:is(.mobile-portrait,.mobile-landscape) #base-controls #mute{left:calc(var(--mobile-safe-left,0px) + 12px);right:auto}
:is(.mobile-portrait,.mobile-landscape) #base-controls #settings{left:auto;right:calc(var(--mobile-safe-right,0px) + 12px)}
:is(.mobile-portrait,.mobile-landscape) :is(#settings,#mute) .mobile-control-glyph{inset:9px}
:is(.mobile-portrait,.mobile-landscape) :is(#settings,#mute) .mobile-control-label{display:none}
:is(.mobile-portrait,.mobile-landscape) #mute:after{display:none}
.mobile-sound-slash{display:none}
#mute.muted .mobile-sound-slash{display:block}
#mute.muted .mobile-sound-wave{display:none}
.mobile-portrait #base-controls button:focus-visible{outline:2px solid #e6ffa9;outline-offset:2px}
.mobile-portrait #base-controls button:active:not(:disabled){filter:brightness(1.3)}
.mobile-portrait #base-controls button:disabled:not(#spin){opacity:.4}

/* The same illustrated twelve-well cabinet now fills the gap below the reels.
   Native flight origins stay relative to #free-hud, including this lower area. */
.mobile-free-inventory-frame{display:none}
.mobile-portrait .free-backpack{left:var(--mobile-inventory-left);top:var(--mobile-inventory-top);width:var(--mobile-inventory-width);height:var(--mobile-inventory-height);aspect-ratio:auto;bottom:auto;padding:0;background:none;border:0;border-radius:0;box-shadow:none;filter:none;overflow:visible}
.mobile-portrait .free-backpack .free-inventory-frame,.mobile-portrait .free-backpack .free-frame-glow{display:none}
.mobile-portrait .mobile-free-inventory-frame{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:-1;object-fit:contain}
.mobile-portrait .free-backpack>h2{display:flex;left:var(--mobile-free-inventory-plaque-left);top:var(--mobile-free-inventory-plaque-top);width:var(--mobile-free-inventory-plaque-width);height:var(--mobile-free-inventory-plaque-height);font-size:14px}
:is(.mobile-portrait,.mobile-landscape) .free-backpack>footer{display:none}
.mobile-portrait #free-inventory{position:absolute;inset:auto;left:var(--mobile-free-inventory-grid-left);top:var(--mobile-free-inventory-grid-top);width:var(--mobile-free-inventory-grid-width);height:var(--mobile-free-inventory-grid-height);display:grid;grid-template-columns:repeat(6,var(--mobile-free-inventory-slot-width));grid-template-rows:repeat(2,var(--mobile-free-inventory-slot-height));gap:var(--mobile-free-inventory-gap-y) var(--mobile-free-inventory-gap-x);padding:0;overflow:visible;scroll-snap-type:none;touch-action:manipulation}
.mobile-portrait #free-inventory .loot-card{width:var(--mobile-free-inventory-slot-width);height:var(--mobile-free-inventory-slot-height);min-width:44px;min-height:44px;padding:0;border:0!important;border-radius:0!important;background:none!important}
.mobile-portrait #free-inventory .loot-card:nth-child(6n+1){--free-well-offset:var(--mobile-free-well-offset-0)}
.mobile-portrait #free-inventory .loot-card:nth-child(6n+2){--free-well-offset:var(--mobile-free-well-offset-1)}
.mobile-portrait #free-inventory .loot-card:nth-child(6n+3){--free-well-offset:var(--mobile-free-well-offset-2)}
.mobile-portrait #free-inventory .loot-card:nth-child(6n+4){--free-well-offset:var(--mobile-free-well-offset-3)}
.mobile-portrait #free-inventory .loot-card:nth-child(6n+5){--free-well-offset:var(--mobile-free-well-offset-4)}
.mobile-portrait #free-inventory .loot-card:nth-child(6n){--free-well-offset:var(--mobile-free-well-offset-5)}
.mobile-portrait #free-inventory .loot-card:nth-child(-n+6){--free-well-y:var(--mobile-free-well-y-0)}
.mobile-portrait #free-inventory .loot-card:nth-child(n+7){--free-well-y:var(--mobile-free-well-y-1)}
.mobile-portrait #free-inventory .loot-card>.adventure-icon{position:absolute;left:calc(50% + var(--free-well-offset,0px));top:calc(50% + var(--free-well-y,0px));width:var(--mobile-free-inventory-icon-width);height:var(--mobile-free-inventory-icon-height);translate:-50% -50%;transform:none;filter:drop-shadow(0 1px 1px #0009)}
.mobile-portrait #free-inventory .loot-card strong{display:none}
.mobile-portrait #free-inventory .loot-card.is-empty{display:block;pointer-events:none}
.mobile-portrait #free-inventory .loot-count{font-size:10px;line-height:1;min-width:14px;right:auto;left:calc(50% + var(--free-well-offset,0px) + var(--mobile-free-inventory-icon-width)/2 - 6px);top:calc(50% + var(--free-well-y,0px) - var(--mobile-free-inventory-icon-height)/2 - 6px);padding:2px;border-radius:3px}
.mobile-portrait .free-status-strip{position:absolute;left:var(--mobile-monitor-left);top:var(--mobile-monitor-top);width:var(--mobile-monitor-width);height:44px;background:linear-gradient(#0e3449f5,#061b2af5);border:1px solid #5fa9ab;border-radius:8px;box-shadow:inset 0 0 0 2px #04202c,0 3px 8px #0008}
.mobile-portrait .free-monitor-heading{display:none}
.mobile-portrait .free-monitor-screen{inset:2px;border-radius:5px}
.mobile-portrait .free-monitor-readouts{inset:5px 3px;display:grid;grid-template-columns:.8fr 1.4fr .8fr;grid-template-rows:1fr;gap:0;height:auto}
.mobile-portrait .free-monitor-readouts>span{gap:4px;border-right:1px solid #7ebfa22b}
.mobile-portrait .free-monitor-readouts>span:first-child{grid-row:1;grid-column:1}
.mobile-portrait .free-monitor-readouts>span:nth-child(2){grid-row:1;grid-column:3;border:0}
.mobile-portrait .free-monitor-readouts .free-monitor-win{grid-row:1;grid-column:2;display:flex;border:0;border-right:1px solid #7ebfa22b;margin:0;padding:0;gap:4px}
.mobile-portrait .free-status-strip small{font-size:6.5px;line-height:1.2;letter-spacing:.03em}
.mobile-portrait .free-status-strip b,.mobile-portrait .free-monitor-win b{font-size:20px;line-height:1;transform:none}
.mobile-portrait #free-total{font-size:clamp(13px,4.6vw,24px)!important;letter-spacing:-.035em}
.mobile-portrait #inventory-effect-label{font-size:18px;line-height:1.15;top:18%}
.mobile-portrait #toast{font-size:12px;max-width:54%;padding:7px 11px;border-radius:4px;top:18%}

/* Full-screen story, transition and scare layers keep their authored aspect. */
.mobile-portrait #native-transition,.mobile-portrait #pick-jumpscare,.mobile-portrait .floor-entry-canvas{position:absolute;inset:auto;left:var(--mobile-cover-left);top:var(--mobile-cover-top);width:var(--mobile-cover-width);height:var(--mobile-cover-height);pointer-events:none;z-index:55}
.mobile-portrait #pick-jumpscare{z-index:45;left:var(--mobile-scene-left);top:calc(50% - var(--mobile-scene-height)/2);width:var(--mobile-scene-width);height:var(--mobile-scene-height)}
.mobile-portrait .floor-entry-canvas{left:var(--mobile-entry-camera-left,var(--mobile-cover-left))}
.mobile-portrait #mobile-shell:has(#pick-jumpscare[data-scare-stage="monster"]):after,.mobile-portrait #mobile-shell:has(#pick-jumpscare[data-scare-stage="eyes"]):after{content:'';position:absolute;inset:0;background:#030503;z-index:44;pointer-events:none}
.mobile-portrait #brain-summary #brain-win,.mobile-portrait #brain-summary #brain-total-type{inset:12%;width:76%;height:76%}
.mobile-portrait #start-screen{position:absolute;inset:0;width:100%;height:100%;background:#020c13 url('/demo/floorbidden/assets/intro/splash-lab-clean.png') center/cover no-repeat;overflow:hidden;z-index:80}
.mobile-portrait #intro-canvas,.mobile-portrait #intro-fallback{inset:auto;left:var(--mobile-cover-left);top:var(--mobile-cover-top);width:var(--mobile-cover-width);height:var(--mobile-cover-height);object-fit:contain}
.mobile-portrait #load-display{width:min(44vw,210px);top:50%}
.mobile-portrait #load-percent{font-size:40px}
.mobile-portrait #enter .enter-label{top:auto;left:6%;right:6%;bottom:calc(var(--mobile-safe-bottom) + 28px);padding:16px 10px;border:1px solid #e7e6ce;border-radius:10px;background:linear-gradient(#111c22d9,#03070cee);font:850 italic 21px/1.2 'Segoe UI',sans-serif;-webkit-text-stroke:0;text-shadow:0 2px 3px #000;letter-spacing:.03em}
.mobile-portrait #start-screen.load-failed #load-message{left:8%;right:8%;bottom:12%;padding:12px;font-size:14px}
.mobile-portrait #big-win-native{object-fit:cover}
.mobile-portrait #big-win-amount-canvas{width:96vw;bottom:15%}
.mobile-portrait #big-win-next{min-height:48px;bottom:max(24px,env(safe-area-inset-bottom));font-size:15px}
.mobile-portrait .mobile-room #base-controls{display:none}
.mobile-portrait .mobile-room #game{pointer-events:none}
.mobile-portrait .mobile-room #game dialog{pointer-events:auto}
.mobile-portrait #mobile-shell:has(.floor-entry-canvas:not([hidden])) #base-controls{opacity:0;pointer-events:none}
.mobile-portrait .reduced-motion .mobile-console-glow,.mobile-portrait:has(.reduced-motion) .mobile-console-glow{animation:none}
@media(prefers-reduced-motion:reduce){.mobile-console-glow{animation:none}}

/* Landscape phones retain the wide animated scene and get real touch controls. */
html.mobile-landscape,body.mobile-landscape{overflow:hidden;overscroll-behavior:none;height:100%}
.mobile-landscape>.utility,.mobile-landscape>footer{display:none}
.mobile-landscape main#game{width:min(100vw,calc((100dvh - 68px)*1670/806));height:auto;max-height:none;aspect-ratio:1670/941;margin:0 auto;overflow:visible}
.mobile-landscape #scene,.mobile-landscape .rive-reel-overlay{mask-image:linear-gradient(#000 0 85.65%,transparent 85.65%);-webkit-mask-image:linear-gradient(#000 0 85.65%,transparent 85.65%)}
.mobile-landscape #base-controls{position:fixed;inset:auto 0 0;height:68px;z-index:8;background:rgb(0 0 0 / 60%);border-top:1px solid #546157;box-shadow:0 -5px 20px #0007;pointer-events:none;font-family:'Segoe UI',sans-serif;display:grid;grid-template-columns:minmax(62px,1fr) 44px 70px 44px 64px 64px 60px minmax(62px,1fr);align-items:center;gap:4px;padding:0 max(6px,env(safe-area-inset-right)) 0 max(6px,env(safe-area-inset-left))}
.mobile-landscape #base-controls>button,.mobile-landscape #base-controls>.readout{position:relative;inset:auto;left:auto;right:auto;top:auto;bottom:auto;width:100%;height:44px;min-width:0;min-height:44px;transform:none;pointer-events:auto;grid-row:1}
.mobile-landscape #base-controls>button{padding:0;clip-path:none;border:1px solid #6d8869;border-radius:8px;background:linear-gradient(#18372e,#06150f);color:#d4ecc5;box-shadow:inset 0 1px #a6be8b22;text-shadow:0 1px 2px #000}
.mobile-landscape #base-controls .readout{display:flex;flex-direction:column;align-items:center;justify-content:center;font:750 16px/24px 'Segoe UI',sans-serif;letter-spacing:-.04em;white-space:nowrap;text-shadow:0 1px 3px #000}
.mobile-landscape #balance{grid-column:8}.mobile-landscape #win{grid-column:1}.mobile-landscape #bet{grid-column:3}
.mobile-landscape #balance:before,.mobile-landscape #bet:before,.mobile-landscape #win:before{content:'BALANCE';font:600 8px/10px 'Segoe UI',sans-serif;letter-spacing:.08em;color:#a7b8a3}
.mobile-landscape #bet:before{content:'BET'}.mobile-landscape #win:before{content:'WIN'}
.mobile-landscape #bet-down{grid-column:2}.mobile-landscape #bet-up{grid-column:4}.mobile-landscape #base-controls #spin{grid-column:6;width:58px;height:58px;min-height:58px;margin:auto;border-radius:50%;background:none;border:0;box-shadow:none;isolation:isolate}
.mobile-landscape #auto{grid-column:7}.mobile-landscape #buy-bonus{grid-column:5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;font:800 8px/1.2 'Segoe UI',sans-serif;white-space:nowrap}.mobile-landscape #buy-bonus>span,.mobile-landscape #buy-bonus:before,.mobile-landscape #buy-bonus:after{display:none}
.mobile-landscape :is(#bet-down,#bet-up) .mobile-control-glyph{display:none}
.mobile-landscape :is(#auto,#buy-bonus) .mobile-control-glyph{display:block;position:absolute;width:25px;height:25px;inset:2px auto auto calc(50% - 12.5px);color:#fff}
.mobile-landscape #buy-bonus{padding-top:28px!important}
.mobile-landscape :is(#bet-down,#bet-up) .mobile-control-illustration{display:block;position:absolute;inset:0}
.mobile-landscape #base-controls :is(#bet-down,#bet-up){background:none;border:0;box-shadow:none}
.mobile-landscape .mobile-control-glyph{display:block;position:absolute;inset:10px;pointer-events:none}
.mobile-landscape #spin .mobile-control-glyph{inset:8px}
.mobile-landscape #auto .mobile-control-label{display:block;position:absolute;left:0;right:0;bottom:5px;font:700 8px/1 'Segoe UI',sans-serif}
.mobile-landscape #spin.autoplay-stop .mobile-control-glyph{display:none}
.mobile-landscape #spin.autoplay-stop:after{left:36.914%;top:34.375%;width:26.172%;height:26.172%;font-size:10px}
.mobile-landscape #auto:before,.mobile-landscape #auto:after{display:none}
.mobile-landscape #auto.active{background:linear-gradient(#31582b,#143519);box-shadow:inset 0 0 12px #a5ff3544}
.mobile-landscape #pick-settings{width:44px;height:44px;bottom:4px;right:8px}
.mobile-landscape .mobile-lab:not([hidden]){display:block;position:fixed;right:12px;top:58px;z-index:98;padding:5px 7px;font-size:10px;min-width:44px;min-height:30px;opacity:.7}
.mobile-landscape #base-controls[hidden],.mobile-landscape #buy-bonus[hidden]{display:none}
.mobile-landscape #native-transition{position:fixed;inset:auto;left:var(--mobile-cover-left);top:var(--mobile-cover-top);width:var(--mobile-cover-width);height:var(--mobile-cover-height);z-index:55;pointer-events:none}
@media(max-width:710px) and (orientation:landscape){
 .mobile-landscape #base-controls{grid-template-columns:minmax(54px,1fr) 44px 60px 44px 58px 58px 46px minmax(54px,1fr);gap:2px;padding:0 4px}
 .mobile-landscape #base-controls .readout{font-size:13px}.mobile-landscape #buy-bonus{font-size:9px}
}

/* Full-screen surfaces own input while visible. Visibility is inherited by
   button children even though the normal dock enables their pointer events. */
:is(.mobile-portrait,.mobile-landscape) #mobile-shell:is(.mobile-bonus-cinematic,.mobile-room,:has(#start-screen:not([hidden]):not(.revealing-game)),:has(.floor-comic:not([hidden])),:has(#pick-rewards:not([hidden])),:has(#free-spin-total:not([hidden])),:has(.floor-entry-canvas:not([hidden])),:has(#pick-jumpscare[data-scare-stage="monster"]),:has(#pick-jumpscare[data-scare-stage="eyes"])) #base-controls{visibility:hidden;pointer-events:none}
/* The curtain covers the dock itself. Keep destination artwork painted during
   its drain, while blocking input until the transition has finished. */
body:is(.mobile-portrait,.mobile-landscape).native-transitioning #base-controls,
body:is(.mobile-portrait,.mobile-landscape).native-transitioning #base-controls button{pointer-events:none}

