/* Shared, brief welcome; the home never flashes behind the permission step. */
.welcome-pending{overflow:hidden}
.welcome-pending>header,.welcome-pending>main,.welcome-pending>footer{visibility:hidden}
.welcome-dialog{color:#edf1e9;background:#152127;border:1px solid #58666a;border-radius:20px;width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:32px;box-shadow:0 24px 100px #0008;text-align:center}
.welcome-dialog::backdrop{background:#0b1216ed}
.welcome-dialog .entry-logo{width:170px;height:auto;margin:0 auto 28px;display:block}
.welcome-dialog h1,.welcome-dialog h2{font:600 28px/1.15 Arial,sans-serif;letter-spacing:-.04em;margin:0 0 16px}
.welcome-dialog p{color:#b8c6c8;font-size:15px;line-height:1.5;margin:12px 0 22px}
.welcome-dialog .primary{display:block;width:100%;min-height:56px;margin:0;border-radius:10px;background:#bed88b;border-color:#bed88b;color:#182219;font-size:17px}
.welcome-dialog .text-button{margin-top:18px}
.text-button{border:0;background:transparent;color:#c6d3d5;text-decoration:underline;text-underline-offset:4px;padding:10px;min-height:44px;font:inherit;cursor:pointer}
.welcome-dialog #welcome-status:empty{display:none}.welcome-dialog #welcome-status{color:#efc38b;font-size:13px;margin-bottom:16px}
.privacy-empty{min-height:90px}.privacy-dialog{min-height:240px}
.welcome-dialog #welcome-silent{width:100%;margin-top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* One task per phone screen. The current action stays above the safe area. */
.controller-page:not(.play-mode) main{padding-top:18px;padding-bottom:115px;max-width:640px}
.controller-page .phone-header{width:calc(100% - 36px);max-width:604px;height:72px;padding:14px 0}
.phone-nav{display:flex;gap:8px}.phone-nav .secondary{min-height:44px;padding:8px 12px;font-size:13px}
.controller-page .player-identity{margin:0 0 18px;padding:0;border:0;background:none;font-size:12px}
.controller-page .menu-heading{margin-bottom:22px}.controller-page .menu-heading h1,.controller-page[data-menu-screen="games"] .menu-heading h1{font-size:30px}
.controller-page .menu-heading .eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:8px}
.controller-page .game-grid{gap:14px}.controller-page .game-card-art{aspect-ratio:3}.controller-page .game-card-copy{padding:14px 18px}.controller-page .game-card-copy h2{font-size:20px;margin:0}.controller-page .game-card-footer{margin-top:10px;padding-top:10px;font-size:12px}
.controller-page .level-list{gap:10px}.controller-page .level-card{gap:16px;padding:17px}.controller-page .level-number{font-size:27px}.controller-page .level-copy h2{font-size:17px;margin-bottom:5px}.controller-page .level-copy p{margin:5px 0 7px}
.controller-page .selected-song{padding:18px;gap:16px;margin-bottom:26px}.controller-page .selected-song h2{font-size:22px}.controller-page .record-mark{width:58px;height:70px;font-size:18px}
.controller-page .setup-layout{display:block}.controller-page .road-control-choice{margin-bottom:20px}
#menu-options .round-options legend{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
.screen-actions{position:fixed;z-index:25;bottom:0;left:0;right:0;margin:0!important;padding:12px max(20px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#101c23;border-top:1px solid #4d6166;box-shadow:0 -12px 30px #06101555}
.screen-actions .primary{display:block;width:100%;max-width:600px;margin:0 auto!important;min-height:58px;border-radius:10px;font-size:19px;background:#bed88b;border-color:#bed88b;color:#17221b}
.controller-page .screen-actions .primary:hover{background:#d0e7a3}
.screen-actions p{font-size:12px;color:#bed0d2;text-align:center;margin:0 auto 9px;max-width:600px}.screen-actions p:empty{display:none}
.ready-song{border-top:1px solid #456069;padding:25px 0 20px}.ready-song .eyebrow{color:#d7b37f}.ready-song h2{font-size:32px;letter-spacing:-.03em;margin:12px 0 8px;line-height:1.15}.ready-song p{font-size:15px;color:#b6c6cd;line-height:1.5;margin:8px 0}
.ready-links{display:grid;gap:10px}.ready-links button{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:16px 18px;min-height:54px;background:#1b2d35;border:1px solid #4a646d;border-radius:9px;color:#e6eeeb;font-size:15px}.ready-links button::after{content:'›';font-size:23px;color:#d5b884}
.controller-page .phone-party{margin:0;padding:0;border:0;background:none}.controller-page .phone-party .party-roster{margin-top:0}
.controller-page .menu-partners{margin-top:26px;padding-top:18px}.controller-page .menu-partners .partner-credit{opacity:.75}
.controller-page:not([data-menu-screen="games"]):not([data-menu-screen="settings"]) .menu-partners{display:none}
.controller-page .guest-track{margin-bottom:24px}.controller-page .settings-saved{font-size:13px}
.tv-page .world-label,.tv-page .stage-instruction{display:none}
.tv-page .welcome-copy h2{font-size:clamp(25px,3.5vw,48px);margin-bottom:28px}.tv-page .welcome-copy .join-steps{display:none}
.tv-page .game-card-copy>.eyebrow{display:none}.tv-page .game-card-copy h2{margin-top:0}.tv-page .game-card-footer{margin-top:12px}
.tv-page .tv-library-heading>p,.tv-page .ready-tip,.tv-page #tv-road-rule{display:none}
.tv-page .road-preview-heading p{display:none}.tv-page .topbar{justify-content:space-between}
@media(orientation:landscape) and (max-height:540px){
 .controller-page:not(.play-mode) .phone-header{height:58px;padding:8px 0;max-width:860px}
 .controller-page:not(.play-mode) main{max-width:900px;padding:10px 24px 102px}
 .controller-page .player-identity{display:none}.controller-page .menu-heading{margin-bottom:16px}.controller-page .menu-heading h1{font-size:25px}
 .controller-page .game-grid{grid-template-columns:1fr 1fr}.controller-page .game-card-art{aspect-ratio:3.8}.controller-page .level-list{grid-template-columns:1fr 1fr}
 #menu-options .setup-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.controller-page .selected-song{margin:0}
 #menu-setup .ready-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px}.ready-song{padding-top:14px}.ready-song h2{font-size:26px}.ready-links{align-content:start}
 .ready-links button{padding:10px 16px;min-height:48px}
 #menu-party{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;align-items:start}#menu-party .menu-heading{grid-column:1/-1;margin-bottom:14px}#menu-party .guest-track{margin:0;padding:18px}#menu-party .guest-track h2{margin-top:8px;font-size:22px}#menu-party .guest-track p{margin-block:8px}
 .screen-actions{padding-top:9px}.screen-actions .primary{min-height:50px;max-width:580px}
 .welcome-dialog{width:min(540px,calc(100% - 32px));padding:22px}.welcome-dialog .entry-logo{width:125px;margin-bottom:14px}.welcome-dialog h1{font-size:24px;margin-bottom:10px}.welcome-dialog p{margin:8px 0 14px}.welcome-dialog .text-button{margin-top:8px}
}
@media(prefers-reduced-motion:reduce){.controller-page .game-card{transition:none}}
