/* Full screens: allocate room to controls first, then let artwork shrink. */
html:has(.arcade-page),html:has(.compact){height:100%;overflow:hidden;overscroll-behavior:none}
body.arcade-page,body.compact{height:100dvh;overflow:hidden;overscroll-behavior:none}
.arcade-shell,.compact .site-shell{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.arcade-page>.account-feedback:empty,.compact>.account-feedback:empty{display:none}
.screen-mode{flex:none;min-width:40px;min-height:40px;border:1px solid #685137;border-radius:3px;background:transparent;color:inherit;font-size:25px}
.screen-mode-hint{max-width:340px;border:1px solid #ffb029;border-radius:6px;background:#15110c;color:#f2e7d2;padding:24px;font:16px/1.6 var(--body)}
.screen-mode-hint button{min-height:44px;background:#ffb029;border:0;padding:10px 18px}.screen-mode-hint::backdrop{background:#000b}
.landing-sound{flex:none;background:transparent;border:1px solid #514332;color:#c7bead;border-radius:3px;min-height:40px;padding:8px;font:8px/1.5 var(--pixel);white-space:nowrap}
.landing-sound[aria-pressed=true]{color:#ffb029;border-color:#aa752a}
.arcade-welcome{gap:12px;padding:12px 0;overflow:hidden}
.arcade-art{flex:1;min-height:0;width:100%;height:0;max-width:510px;max-height:510px;object-fit:contain}
.arcade-welcome-copy{flex:none;gap:20px}
.arcade-slogan{color:#f2e7d2;max-width:600px}.arcade-slogan p{margin:0}.arcade-slogan .arcade-tagline{font-size:.85em;margin-top:7px;color:#c7bead}
.arcade-footer{padding:8px 0;min-height:52px}.arcade-header{height:64px}.arcade-login{margin-left:auto}
.game-menu-page .arcade-games{justify-content:center;gap:10px;padding:10px 0;overflow:hidden}
.game-menu-page .arcade-back{margin-bottom:8px}.game-menu-page .arcade-games h1{font-size:clamp(18px,3vw,30px);line-height:1.4}
.arcade-games-heading{flex:none}
.cabinet-launcher{flex:1;max-height:440px;gap:24px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:stretch;container-type:size}
.cabinet-launcher .game-choices{min-height:0;grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}
.cabinet-launcher .game-choice{height:auto;min-height:0;padding:8px 14px;grid-template-columns:min(14cqh,68px) minmax(0,1fr);gap:3px 16px}
.cabinet-launcher .game-choice img,.cabinet-launcher .future-icon{width:min(14cqh,62px);height:min(14cqh,68px);font-size:clamp(20px,9cqh,42px)}
.coin-console{min-height:0;justify-content:center;gap:5px}
.coin-slot-button{min-height:0;max-width:100%;flex:0 1 auto}
.coin-slot-art{width:min(30vw,310px,calc(100cqh - 126px));flex:none}
.coin-slot-label{padding:5px;font-size:11px}#coin-status{min-height:36px;font-size:14px;max-width:280px}
.menu-audio-options{font-size:11px;gap:5px 12px}.menu-audio-options select{min-height:32px;padding:5px;font-size:13px}
.compact .page-footer{gap:10px;height:55px}.compact .page-footer>a:not(.social-link){font:10px var(--pixel)}
.play-page .game-toolbar{flex-wrap:wrap}.play-page .toolbar-actions{gap:10px}.play-page .landing-sound{min-height:32px;font:9px var(--mono);padding:5px}
@media(max-width:650px){
 .arcade-shell{padding-left:16px;padding-right:16px}.arcade-header{height:58px;gap:8px}.arcade-wordmark{font-size:9px}.arcade-login{font-size:8px;padding:8px;max-width:32%}
 .arcade-welcome-copy{gap:17px}.arcade-slogan{font-size:16px}.arcade-footer{font-size:11px;gap:10px!important;min-height:50px}
 .game-menu-page .arcade-games{gap:8px;padding:8px 0}.game-menu-page .arcade-games h1{font-size:17px}
 .cabinet-launcher{grid-template-columns:1fr;grid-template-rows:minmax(96px,28%) minmax(0,1fr);gap:10px;max-height:650px}
 .cabinet-launcher .game-choices{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr;gap:7px}
 .cabinet-launcher .game-choice{display:flex;justify-content:center;padding:6px 4px;gap:4px;height:auto}
 .cabinet-launcher .game-choice img,.cabinet-launcher .future-icon{height:min(7cqh,40px);width:min(7cqh,40px);font-size:24px}
 .cabinet-launcher .game-slot{font-size:8px}.cabinet-launcher .game-choice strong{font:700 13px/1.2 var(--body)}.cabinet-launcher .game-choice-action{font-size:11px}
 .coin-console{gap:3px}.coin-slot-art{width:min(52vw,250px,calc(72cqh - 122px))}.coin-slot-label{font-size:10px}.coin-console #coin-selection{font-size:9px}
 .menu-music-credit{flex-basis:100%;text-align:center}.menu-audio-options{font-size:10px;gap:3px 9px}.menu-audio-options select{font-size:12px;min-height:30px}
 .play-page .toolbar-actions{gap:9px}.play-page .game-toolbar{padding:4px 8px}.play-page .landing-sound{font-size:9px}
 .compact .page-footer{height:56px}.compact .page-footer .creator-credit,.compact .page-footer .social-link{font-size:10px}
}
@media(max-height:540px) and (min-width:651px){
 .arcade-header{height:48px}.arcade-footer{min-height:42px;padding:3px 0}.arcade-welcome{flex-direction:row;gap:20px}.arcade-art{width:45%;height:100%;max-width:440px;flex:1}.arcade-welcome-copy{max-width:50%;gap:16px}
 .arcade-games-heading{display:flex;align-items:center;gap:20px}.game-menu-page .arcade-back{margin:0}.game-menu-page .arcade-games h1{font-size:18px}
 .cabinet-launcher .game-slot{font-size:9px}.cabinet-launcher .game-choice strong{font-size:10px}.cabinet-launcher .game-choice-action{font-size:11px}.cabinet-launcher .game-choices{gap:6px}
 .coin-console #coin-selection{font-size:9px}.coin-console{gap:2px}#coin-status{min-height:30px;font-size:12px}.coin-preview-note{font-size:9px}.coin-slot-art{width:min(200px,calc(100cqh - 94px))}.coin-slot-label{font-size:9px;padding:2px}
 .menu-audio-options{padding:0}.menu-audio-options select{min-height:28px}.compact .page-footer{height:44px}
 .play-page .masthead{display:none}.play-page main{padding:3px 0}
}
@media(max-height:680px) and (max-width:650px){
 .arcade-header{height:50px}.arcade-footer{min-height:42px;padding:3px 0}.arcade-welcome-copy{gap:12px}.arcade-play{min-height:46px;padding:11px 15px}
 .compact:not(.play-page) .masthead{height:96px}.compact .page-footer{height:48px}.compact.boards-page main{gap:5px}
 .compact.boards-page .board-tabs button,.compact.boards-page .pagination button{min-height:34px;padding:6px;font-size:9px}
}
@media(max-width:350px){
 .cabinet-launcher{grid-template-rows:minmax(114px,30%) minmax(0,1fr)}
 .coin-slot-art{width:min(52vw,calc(70cqh - 112px))}
 .cabinet-launcher .game-choice{gap:3px}.cabinet-launcher .game-slot{font-size:7px}
}
@media(max-height:540px) and (min-width:651px){
 .compact.home-page .home-copy h1{font-size:34px;line-height:1.12;margin:6px 0 10px}
 .compact.home-page .home-copy h1 small{font-size:14px;margin-bottom:5px}
 .compact.home-page .home-copy .eyebrow{font-size:8px}
 .compact.home-page .tony-gallery{max-width:54dvh}
 .compact.stats-page .screen-heading .eyebrow{display:none}
 .compact.stats-page .screen-heading h1{font-size:24px;margin:0}
 .compact.stats-page main{gap:8px}
 .compact.stats-page .profile-card{padding:12px;gap:10px}
 .compact.stats-page .profile-card>div:first-child{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
 .compact.stats-page .profile-card .eyebrow{display:none}
 .compact.stats-page .profile-card h3{margin:0;font-size:27px}
 .compact.stats-page .profile-logout{margin:0;min-height:36px;font-size:10px!important;padding:8px 12px}
}

.arcade-slogan{font:clamp(14px,2vw,22px)/1.7 var(--pixel);max-width:680px;text-align:center;text-wrap:balance;color:#fff}
.arcade-slogan .arcade-tagline{font-size:.82em;color:#ffb029;margin-top:12px}
@media(max-width:650px){.arcade-slogan{font-size:clamp(13px,3.65vw,19px)}.arcade-welcome-copy{gap:16px}}

/* Public play: purse + cabinet selections share the screen with the coin slot. */
.free-play-banner{margin:0;color:#ffc15b;font:600 13px/1.4 var(--mono)}
.purse-launcher{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);max-height:560px;gap:18px 32px}
.purse-picker,.cabinet-picker{display:flex;flex-direction:column;min-height:0;gap:10px}
.purse-picker h2,.cabinet-picker h2{margin:0;font:10px/1.5 var(--pixel);color:#c7bead;flex:none}
.purse-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;flex:1;min-height:0}
.purse-choice{min-height:0;border:1px solid #574127;background:linear-gradient(145deg,#241c13,#100e0c);border-radius:6px;color:#f2e7d2;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:600 16px/1.3 var(--body)}
.purse-art{display:block;flex:0 1 auto;min-height:0;width:min(100%,160px,calc(50cqh - 72px));aspect-ratio:1;background-image:url('assets/test-purses.png');background-size:200% 100%;background-repeat:no-repeat;pointer-events:none}
.purse-sock{background-position:100% 0}
.purse-choice[aria-pressed=true]{border:2px solid #ffc15b;background:#30200d;box-shadow:0 0 0 3px #ffb02922}.purse-choice:hover{border-color:#ffc15b}
.purse-choice:focus-visible,.purse-launcher .game-choice:focus-visible,.coin-slot-button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.purse-launcher .cabinet-picker{grid-row:2;grid-column:1}
.purse-launcher .game-choices{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr;flex:1;min-height:0;gap:8px}
.purse-launcher .game-choice{display:flex;justify-content:center;text-align:center;gap:7px;padding:8px 4px}
.purse-launcher .game-choice .game-slot{align-self:center;font-size:10px}
.purse-launcher .game-choice strong{font:700 16px/1.2 var(--body)}
.purse-launcher .game-choice img,.purse-launcher .future-icon{width:min(11cqh,64px);height:min(11cqh,64px)}
.purse-launcher .coin-console{grid-column:2;grid-row:1/3}
.purse-launcher .coin-slot-art{width:min(30vw,310px,calc(100cqh - 126px))}
.purse-launcher .coin-preview-note{font:11px/1.4 var(--mono)}
@media(max-width:650px){
 .game-menu-page .arcade-games-heading{display:flex;align-items:center;gap:14px}
 .game-menu-page .arcade-games-heading .arcade-back{margin:0;font-size:11px}
 .game-menu-page .arcade-games h1{font-size:14px}
 .free-play-banner{font-size:12px}
 .purse-launcher{grid-template-columns:1fr;grid-template-rows:minmax(0,26fr) minmax(0,28fr) minmax(0,46fr);max-height:720px;gap:10px}
 .purse-picker,.cabinet-picker{gap:6px}.purse-picker h2,.cabinet-picker h2{font-size:9px}
 .purse-launcher .cabinet-picker{grid-row:2;grid-column:1}
 .purse-choice{font-size:14px;gap:3px;padding:5px;flex-direction:row}
 .purse-art{flex:none;width:min(24vw,calc(26cqh - 38px))}.purse-choice>span:last-child{max-width:65px;text-align:left}
 .purse-launcher .game-choice{gap:4px;padding:5px 3px}.purse-launcher .game-choice strong{font-size:14px}
 .purse-launcher .game-choice .game-slot{font-size:8px}.purse-launcher .game-choice img,.purse-launcher .future-icon{height:min(7cqh,40px);width:min(7cqh,40px)}
 .purse-launcher .game-choice-action{font-size:12px}
 .purse-launcher .coin-console{grid-column:1;grid-row:3;gap:2px}
 .purse-launcher .coin-slot-art{width:min(42vw,210px,calc(46cqh - 98px))}
 .purse-launcher .coin-slot-label{font-size:10px;padding:3px}
 .purse-launcher #coin-status{font-size:13px;min-height:32px;max-width:310px}
 .purse-launcher .coin-preview-note{font-size:9px}
}
@media(max-height:540px) and (min-width:651px){
 .purse-launcher{gap:10px 24px}.purse-picker,.cabinet-picker{gap:5px}.purse-art{width:min(92px,calc(50cqh - 36px))}
 .purse-choice{flex-direction:row;font-size:14px;padding:4px}
 .purse-launcher .game-choice{gap:2px;padding:3px}.purse-launcher .game-choice strong{font-size:13px}.purse-launcher .game-choice .game-slot{font-size:8px}
 .purse-launcher .game-choice img,.purse-launcher .future-icon{width:28px;height:28px;font-size:20px}
 .purse-launcher .coin-slot-art{width:min(190px,calc(100cqh - 98px))}
}

/* Random purse draw: artwork remains unobscured under a translucent result tint. */
.purse-art{background-image:url('assets/purse-atlas.png');background-size:600% 400%}
.purse-choice{position:relative}.purse-name{max-width:130px;overflow-wrap:anywhere}
.purse-result{position:absolute;left:0;right:0;bottom:3px;text-align:center;font:700 16px/1.2 var(--body);pointer-events:none}
.purse-choice[data-bonus=won]{background:#227e3c55;border-color:#7df18b;color:#d2ffdc}
.purse-choice[data-bonus=lost]{background:#a82f3655;border-color:#f28d8d;color:#ffe2e2}
.purse-choice[data-bonus=won],.purse-choice[data-bonus=lost]{padding-bottom:24px}
.purse-launcher .game-choice strong{white-space:normal}
@media(max-width:650px){.purse-name{font-size:12px;max-width:90px}.purse-launcher .game-choice strong{font-size:12px}.purse-result{font-size:14px}.purse-choice>span:last-child{max-width:none}}

@media(max-width:650px){.purse-choice[data-bonus=won] .purse-art,.purse-choice[data-bonus=lost] .purse-art{width:min(24vw,calc(26cqh - 62px))}}

/* Compact menus keep their controls inside the viewport. */
.arcade-header{flex-shrink:0;min-height:58px;overflow:visible;padding:4px 0}
.arcade-wordmark{font-size:14px}.arcade-login{flex-shrink:0;line-height:1.8;margin-block:3px}
.arcade-slogan .arcade-tagline{font-style:italic}
.purse-choice:not([data-art-ready=true]) .purse-art{visibility:hidden}
.purse-launcher .coin-slot-art{width:min(35vw,360px,calc(100cqh - 64px))}
.purse-launcher #coin-status:empty{display:none}
.purse-launcher .coin-console #coin-selection{font-size:14px}
.account-dialog{position:fixed;top:var(--auth-center,50%);left:50%;margin:0;transform:translate(-50%,-50%) scale(var(--auth-scale,1));transform-origin:center;max-height:none;overflow:hidden;padding:24px;width:min(440px,calc(100vw - 28px))}
.account-dialog h2{font-size:34px;margin:12px 0 8px}.account-dialog>p{margin:8px 0;line-height:1.4}
.account-dialog .eyebrow{display:block;padding-right:25px;font-size:11px;line-height:1.5}
.account-dialog #auth-switch{margin:5px 0;font-size:12px}.account-dialog #auth-form label{margin-top:12px}
.account-dialog #auth-form input{padding:10px;margin-top:6px}
.account-dialog .auth-note{margin:12px 0 0;line-height:1.4}
.account-dialog .form-error{margin:8px 0;min-height:0}.account-dialog .form-error:empty{display:none}
.account-dialog #auth-submit{margin-top:14px;padding:13px}
@media(max-width:650px){
 .arcade-wordmark,.game-menu-page .arcade-wordmark{font-size:10px}.arcade-header{gap:6px}
 .arcade-login{max-width:30%;padding:8px 6px}.screen-mode{min-width:34px;min-height:36px}
 .purse-launcher .coin-slot-art{width:min(52vw,260px,calc(46cqh - 46px))}
 .purse-launcher .coin-console #coin-selection{font-size:11px}
 .free-play-banner{font-size:11px;text-wrap:balance}
}
@media(max-height:540px){
 .account-dialog{padding:14px 20px}.account-dialog h2{font-size:26px;margin:6px 0}
 .account-dialog .auth-note{display:none}.account-dialog #auth-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
 .account-dialog #auth-form label{margin-top:6px}.account-dialog #auth-submit,.account-dialog .form-error{grid-column:1/-1;margin-top:3px}
}
@media(hover:none) and (pointer:coarse){#screen-mode,#fullscreen{display:none!important}}
/* Taps operate the arcade, rather than selecting artwork or zooming controls. */
html,body,button,a,.purse-choice,.game-choice{touch-action:manipulation}
.arcade-page,.compact{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.account-dialog input,.account-dialog textarea{-webkit-user-select:text;user-select:text;touch-action:manipulation}
.play-page .stage,.play-page canvas,.mobile-controls,.mobile-controls button{touch-action:none}

.play-page .level-label>i,.play-page .level-label>.toolbar-divider{display:none}
.play-page .toolbar-actions>#level-label{font:10px/1.4 var(--mono);color:var(--lime);white-space:nowrap}
.play-page .toolbar-actions .arcade-home-logo{order:99}
@media(max-width:650px),(hover:none) and (pointer:coarse){
 .compact.play-page .site-nav{display:none}
 .compact.play-page .masthead{height:60px;flex:none;flex-wrap:nowrap}
 .play-page .game-toolbar{display:grid;grid-template-columns:1fr;gap:2px}
 .play-page .toolbar-actions{width:100%;margin:0;justify-content:space-between;gap:5px;min-width:0}
 .play-page .toolbar-actions>#level-label{font-size:9px;letter-spacing:0}
 .play-page .toolbar-actions .arcade-home-logo{width:34px;height:34px}
 .play-page .toolbar-actions .landing-sound{font-size:8px;padding:4px}
}

.lives-row{display:flex;align-items:center;gap:6px}#triple-jump-icon{width:40px;height:40px;flex:none;object-fit:contain}

.arcade-community{display:flex;justify-content:center;align-items:center;gap:12px;flex:none}
.arcade-community a,.arcade-community button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 12px;border:1px solid #685137;border-radius:3px;background:#15110c;color:#ffc15b;text-decoration:none;font:9px/1.4 var(--pixel)}
.test-disclaimer{font:12px/1.4 var(--body);color:#aaa193;text-align:center;margin:0;max-width:580px;align-self:center;flex:none}
.arcade-welcome-copy .arcade-community{margin-top:-7px}.arcade-welcome-copy .test-disclaimer{margin-top:-8px}
@media(max-width:650px){.arcade-community{gap:8px}.arcade-community a,.arcade-community button{font-size:8px;padding:7px 9px;min-height:34px}.test-disclaimer{font-size:11px}.arcade-welcome-copy{gap:13px}}

.game-zoom{position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:3;display:flex;flex-direction:column;gap:6px}.game-zoom button{width:40px;height:40px;border:1px solid #65734f;border-radius:5px;background:#152015df;color:#e3efcc;font:24px/1 var(--mono);touch-action:none}.game-zoom button:disabled{opacity:.35}
.purse-launcher .game-choice img,.purse-launcher .future-icon{width:min(20cqh,118px);height:min(20cqh,118px);flex:0 1 auto;min-height:0;object-fit:contain}
@media(max-width:650px){.purse-launcher .game-choice img,.purse-launcher .future-icon{width:min(15cqh,76px);height:min(15cqh,76px)}.purse-launcher .game-choice{gap:3px}}
@media(max-width:650px){.purse-launcher{grid-template-rows:minmax(0,20fr) minmax(0,36fr) minmax(0,44fr)}.purse-launcher .game-choice-action{display:none}.purse-launcher .coin-slot-art{width:min(52vw,260px,calc(44cqh - 46px))}.purse-art{width:min(24vw,calc(20cqh - 32px))}.purse-choice[data-bonus=won] .purse-art,.purse-choice[data-bonus=lost] .purse-art{width:min(24vw,calc(20cqh - 40px))}}

/* Large, readable assignment icons without clipping the score panel. */
.play-page .stats{height:auto;min-height:76px;align-items:center}
.play-page .stat strong{display:flex;align-items:center;gap:6px}
.play-page .cup-icon{width:52px;height:46px;vertical-align:middle}
@media(max-width:600px){.play-page .stats{gap:10px;padding:8px;min-height:72px}.play-page .cup-icon{width:44px;height:40px}.play-page .stat strong{gap:3px}}

.game-menu-page .arcade-header>.arcade-home-logo{width:48px;height:48px;flex:none}

.header-account-buttons{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}.header-account-buttons .arcade-login{margin-left:0;max-width:none;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:650px){.game-menu-page .arcade-header{display:grid;grid-template-columns:1fr auto;height:auto;gap:3px 8px}.game-menu-page .arcade-wordmark{grid-row:1;grid-column:1}.game-menu-page .arcade-header>.arcade-home-logo{grid-row:1;grid-column:2;width:34px;height:34px}.game-menu-page .header-account-buttons{grid-row:2;grid-column:1/-1;margin-left:auto}.header-account-buttons .arcade-login{min-height:34px;padding:7px 9px}}
@media(any-hover:hover) and (any-pointer:fine){html.voxel-cursor-idle,html.voxel-cursor-idle *,html.voxel-cursor-idle dialog::backdrop{cursor:none!important}}
.play-page .hud-label,.play-page .card-tag,.play-page .card-footnote,.play-page .mobile-controls>span{display:none}

#triple-jump-badge{display:inline-flex;align-items:center;gap:3px;flex:none;padding:2px 5px;border:2px solid #8ae5ff;border-radius:5px;background:#102833;color:#b9f2ff}#triple-jump-badge[hidden]{display:none!important}#triple-jump-badge #triple-jump-icon{width:48px;height:48px}#triple-jump-count{font:700 20px/1 var(--mono)}
.play-page .toast{font:700 clamp(18px,3vw,24px)/1.35 var(--body);white-space:normal;text-align:center;max-width:calc(100% - 32px);width:max-content;padding:10px 14px}
.play-page .save-status,.play-page .form-error,.play-page .intro-card p{font-size:clamp(16px,2.5vw,20px);line-height:1.4}
@media(max-width:600px){.play-page .lives-row{flex-wrap:wrap;max-width:92px}.play-page #triple-jump-badge #triple-jump-icon{width:40px;height:40px}.play-page .lives-panel{padding:8px}.play-page #triple-jump-count{font-size:18px}}

.mode-tabs{display:flex;gap:7px;flex:none}.mode-tabs button{flex:1;min-width:0;border:1px solid #526342;border-radius:4px;background:#162017;color:#d2dcc6;font:700 13px/1.3 var(--mono);padding:9px 6px}.mode-tabs button.selected{background:#b9ef87;color:#17200f;border-color:#d4ffad}
@media(max-width:650px){.mode-tabs{gap:4px}.mode-tabs button{font-size:10px;padding:8px 3px}.boards-page main{gap:7px}.boards-page .screen-description{font-size:12px}}

/* Readable selection instructions, sized to fit the full-screen menu. */
.game-menu-page .free-play-banner{font-size:clamp(16px,1.8vw,22px);line-height:1.35;text-wrap:balance}
@media(max-height:540px){.game-menu-page .free-play-banner{font-size:15px}}

/* Desktop welcome: give the cabinet its own large space beside the controls. */
@media(min-width:851px){
 .arcade-welcome{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:center}
 .arcade-welcome>.arcade-art{width:100%;height:100%;max-width:none;max-height:100%;min-width:0;object-fit:contain}
 .arcade-welcome-copy{width:100%;min-width:0;max-width:none}
}

/* Completion messages must fit inside the game, including narrow phones. */
.play-page .intro-card.won h2,.play-page .intro-card.banked h2{font-size:clamp(18px,4.8vw,28px);line-height:1.25;letter-spacing:0;margin:10px 0;overflow-wrap:anywhere;text-wrap:balance}
@media(max-height:540px){
 .play-page .intro-card.won h2,.play-page .intro-card.banked h2{font-size:20px;margin:5px 0}
}

/* Keep help next to music on PC, without changing the phone footer layout. */
.footer-controls{display:contents}
@media(min-width:651px){
 .footer-controls{display:flex;align-items:center;gap:18px;margin-left:auto}
 .compact .footer-controls>a{font:10px var(--pixel);white-space:nowrap}
}
/* Leave a real, clickable pagination row above the footer in short PC windows. */
@media(min-width:651px) and (max-height:800px){
 .compact.boards-page main{gap:6px}
 .compact.boards-page .screen-heading h1{font-size:24px;margin:0}
 .compact.boards-page th,.compact.boards-page td{padding:8px 10px}
 .compact.boards-page .mode-tabs button,.compact.boards-page .period-tabs button{min-height:38px;padding:7px 8px}
 .compact.boards-page .board-tabs .secondary-button,.compact.boards-page .pagination .secondary-button{min-height:38px;padding:7px 12px}
 .compact.boards-page .test-disclaimer{margin:0}
}
@media(min-width:651px) and (max-height:700px){
 .compact.boards-page .masthead{height:64px}
 .compact.boards-page .screen-heading h1{font-size:20px}
 .compact.boards-page th,.compact.boards-page td{padding:4px 10px}
 .compact.boards-page main{gap:4px}
}

/* A fullscreen outer arcade host still gives its embedded game the whole screen. */
.arcade-fullscreen .play-page .masthead{display:none}
.arcade-fullscreen .play-page .site-shell{max-width:none;padding:0}
.arcade-fullscreen .play-page main{padding:0}
.arcade-fullscreen .play-page .game-frame{border:0;border-radius:0}

/* Compact, readable statistics and help screens. */
.compact.stats-page .screen-heading h1{font-size:clamp(24px,3vw,34px);line-height:1.4;letter-spacing:-.04em}
.compact.stats-page .screen-heading{border:0;padding-left:0}
.compact.stats-page .screen-heading::before,.compact.stats-page .screen-heading .eyebrow::before{display:none}
.help-scores{margin:0;display:grid;gap:12px}
.help-scores>div{display:flex;justify-content:space-between;gap:20px}
.help-scores dt{font-weight:700;color:var(--cream)}
.help-scores dd{margin:0;text-align:right;color:#b1bca6}
.help-scores dt,.help-scores dd{font-size:16px;line-height:1.5}
@media(max-width:650px){.help-page .help-tabs{grid-template-columns:repeat(3,1fr)}.help-page .help-tabs button{font:10px/1.5 var(--mono);min-height:36px}.help-scores{gap:9px}.help-scores>div{display:block}.help-scores dd{text-align:left}.help-scores dt,.help-scores dd{font-size:14px;line-height:1.4}}
@media(max-height:700px){.help-page main{gap:8px}.help-page .screen-heading .eyebrow{display:none}.help-page .screen-heading h1{font-size:24px}.help-page .scoring-card{padding:14px;min-height:0}.help-scores{gap:6px}.help-scores dt,.help-scores dd{font-size:13px;line-height:1.35}.help-page .screen-play{padding:10px 14px}}

/* One game header, including in fullscreen; phone title and home share a row. */
.compact.play-page .game-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 12px;background:#1a231c;border-bottom:1px solid var(--line);flex:none}
.compact.play-page .game-header .brand{min-width:0;margin:0;gap:8px;font-size:clamp(10px,1.3vw,17px);white-space:nowrap}
.compact.play-page .game-header .brand img{width:36px;height:36px;flex:none}
.compact.play-page .game-header .brand small{font:inherit;letter-spacing:inherit;margin:0}
.compact.play-page .game-header .game-toolbar{display:flex;flex-wrap:nowrap;gap:14px;min-height:40px;height:auto;padding:0;border:0;background:none;min-width:0}
.compact.play-page .game-header .toolbar-actions{display:flex;width:auto;gap:10px;align-items:center}
.compact.play-page .game-header .score-display{white-space:nowrap;font:12px/1.4 var(--mono)}
.compact.play-page .game-header .icon-button,.compact.play-page .game-header .landing-sound{min-height:40px;font-size:10px;padding:5px}
.compact.play-page .game-header>.arcade-home-logo{width:48px;height:48px;display:flex;align-items:center;justify-content:center;margin:0}
@media(max-width:1000px){
 .compact.play-page .game-header{grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:5px 10px}
 .compact.play-page .game-header .brand{grid-column:1;grid-row:1;font-size:clamp(8px,2.55vw,14px)}
 .compact.play-page .game-header>.arcade-home-logo{grid-column:2;grid-row:1;width:42px;height:42px}
 .compact.play-page .game-header .game-toolbar{grid-column:1/-1;grid-row:2;justify-content:space-between;gap:8px}
 .compact.play-page .game-header .toolbar-actions{gap:6px}
 .compact.play-page .game-header .toolbar-actions>#level-label{font-size:9px;letter-spacing:0}
}
@media(max-width:650px){.compact.play-page .game-header #fullscreen{display:none}.compact.play-page .game-header .brand img{width:30px;height:30px}.compact.play-page .game-header .score-display{font-size:11px}.compact.play-page .game-header .toolbar-actions{gap:3px}.compact.play-page .game-header .icon-button,.compact.play-page .game-header .landing-sound{font-size:9px;padding:4px}}

@media(max-width:650px){.compact.play-page .game-header #sound::before{content:"🔊";font-size:13px;margin-right:3px}}

/* Short touch screens need a landscape layout, not the desktop-sized cards. */
@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){
 .arcade-shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .arcade-header{height:42px;min-height:42px;gap:8px}.arcade-wordmark{font-size:12px}.arcade-login{font-size:10px;padding:8px;min-height:34px}
 .arcade-footer{min-height:34px;padding:2px 0;font-size:10px}.arcade-footer .landing-sound{min-height:30px;padding:5px;font-size:8px}
 .game-menu-page .arcade-games{gap:5px;padding:4px 0}.game-menu-page .arcade-games-heading{display:none}
 .game-menu-page .free-play-banner{font-size:clamp(12px,1.7vw,15px);line-height:1.3}
 .game-menu-page .test-disclaimer{font-size:10px;line-height:1.2;margin:0}
 .purse-launcher{grid-template-columns:minmax(0,2fr) minmax(130px,.85fr);grid-template-rows:minmax(0,1fr) minmax(0,1.15fr);gap:7px 18px;max-height:none}
 .purse-launcher .purse-picker{grid-row:1;grid-column:1}.purse-launcher .cabinet-picker{grid-row:2;grid-column:1}.purse-launcher .coin-console{grid-column:2;grid-row:1/3;gap:3px}
 .purse-picker,.cabinet-picker{gap:4px}.purse-picker h2,.cabinet-picker h2{font-size:9px}
 .purse-choices,.purse-launcher .game-choices{gap:6px}.purse-choice{flex-direction:row;gap:5px;padding:3px;min-height:0;font-size:12px}
 .purse-art,.purse-choice[data-bonus=won] .purse-art,.purse-choice[data-bonus=lost] .purse-art{width:min(60px,calc(45cqh - 22px));flex:none}
 .purse-choice[data-bonus=won],.purse-choice[data-bonus=lost]{padding-bottom:17px}.purse-result{font-size:11px;bottom:1px}.purse-name{font-size:12px}
 .purse-launcher .game-choice{padding:3px;display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto 1fr;gap:1px 4px;text-align:left}
 .purse-launcher .game-choice .game-slot{grid-column:2;font-size:8px}.purse-launcher .game-choice img{grid-column:1;grid-row:1/3;width:40px;height:40px;min-height:0}
 .purse-launcher .game-choice strong{grid-column:2;font-size:11px;align-self:center}.purse-launcher .game-choice-action{display:none}
 .purse-launcher .coin-slot-art{width:min(200px,calc(100cqh - 45px))}.purse-launcher .coin-console #coin-selection{font-size:12px;margin:0}.purse-launcher #coin-status{font-size:11px;line-height:1.2;min-height:0}
 .compact.play-page .site-shell{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}.compact.play-page main{padding:0}
 .compact.play-page .game-header{grid-template-columns:minmax(0,1fr) auto auto;padding:3px 7px;gap:6px;min-height:42px}
 .compact.play-page .game-header .brand{grid-column:1;grid-row:1;font-size:clamp(8px,1.35vw,12px);gap:5px;white-space:normal;line-height:1.5}
 .compact.play-page .game-header .brand img{width:27px;height:27px}
 .compact.play-page .game-header .game-toolbar{grid-column:2;grid-row:1;min-height:34px;gap:8px}
 .compact.play-page .game-header>.arcade-home-logo{grid-column:3;grid-row:1;width:32px;height:32px}
 .compact.play-page .game-header .toolbar-actions{gap:3px}.compact.play-page .game-header .toolbar-actions>#level-label{font-size:8px;max-width:90px;white-space:normal}
 .compact.play-page .game-header .score-display,.compact.play-page .game-header .score-display strong{font-size:10px}
 .compact.play-page .game-header .icon-button,.compact.play-page .game-header .landing-sound{font-size:8px;padding:3px;min-height:34px}
 .compact.play-page #fullscreen{display:none}.play-page .hud{top:7px;left:12px;right:12px}.play-page .lives-panel,.play-page .stats{padding:5px 8px;height:46px}.play-page #lives{font-size:21px}.play-page .stat strong{font-size:17px}.play-page .stat .cup-icon{width:42px;height:32px}.play-page .stats{gap:12px}
 .play-page .mobile-controls{bottom:12px}.play-page .move-controls button{width:56px;height:46px}.play-page .game-zoom{top:65px;right:8px}.play-page .game-zoom button{width:34px;height:34px;min-height:34px}
 .play-page .intro-card{padding:5px 12px;max-width:610px}.play-page .intro-card h2,.play-page .intro-card.won h2,.play-page .intro-card.banked h2,.play-page .intro-card.fired h2{font-size:20px;line-height:1.15;margin:4px 0}
 .play-page .intro-card p{font-size:12px;line-height:1.25;margin:4px auto;max-width:100%}.play-page .result-stats{margin:7px auto;max-width:360px;gap:12px}.play-page .result-stats strong{font-size:20px;margin-bottom:2px}.play-page .result-stats div{font-size:9px}
 .play-page .intro-card .save-status{font-size:11px;margin:4px 0}.play-page .intro-card .primary-button{font-size:11px;padding:10px 16px;min-height:34px}.play-page .intro-card .result-exit{font-size:11px;margin:3px auto 0;padding:5px;min-height:30px}.play-page .toast{top:60px;font-size:16px;padding:7px 12px}
}
@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){.game-menu-page .arcade-header{display:flex;flex-wrap:nowrap;height:42px;min-height:42px}.game-menu-page .arcade-header>.arcade-home-logo{width:34px;height:34px}.game-menu-page .header-account-buttons{margin-left:auto;gap:5px}.game-menu-page .header-account-buttons .arcade-login{font-size:9px;padding:7px}}

/* Keep the private wallet entry beside account actions, including in MetaMask. */
.profile-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.profile-actions .profile-logout{margin-top:0}
.profile-actions .profile-wallet{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:44px;font-size:13px;padding:10px 14px}
@media(max-height:500px) and (orientation:landscape){.profile-actions{margin-top:0}.profile-actions .profile-wallet{min-height:36px;font-size:10px;padding:8px 12px}}

/* Owned purse uses the same bounded cabinet row as cosmetic free-play purses. */
.purse-choice.owned-purse{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr 1fr;gap:4px 10px;grid-column:1/-1;justify-self:center;width:100%;max-width:320px;min-height:0;overflow:hidden}
.owned-purse-art{grid-column:1;grid-row:1/3;width:100%;height:100%;min-height:0;object-fit:contain}
.owned-purse .purse-name{grid-column:2;grid-row:1;align-self:end;max-width:none;font-size:14px}
.owned-purse .daily-balance{grid-column:2;grid-row:2;align-self:start;font:700 14px/1.3 var(--body);color:#ffb029}
