/* Finger Dance: electric arcade skin; gameplay dimensions remain owned by highway.css. */
:root{--lime:#ffce59;--purple:#63dfff;--muted:#b4b6d1;--bg:#0a0b1b;color-scheme:dark}
body.compact-game{background:radial-gradient(ellipse at 10% 0%,#49217b66,transparent 48%),radial-gradient(ellipse at 95% 65%,#07536b44,transparent 50%),#0a0b1b;font-family:'Trebuchet MS',ui-sans-serif,system-ui,sans-serif;color:#f5f5ff}
.compact-game>header{position:relative;z-index:20;background:#0c0d20;border-color:#7253b755;gap:14px;overflow:visible;flex-shrink:0}
header .brand-wordmark strong{font-family:inherit;font-weight:900;font-size:19px;letter-spacing:.12em}.brand-wordmark small{color:#ffce59}
.header-tools{margin-left:auto;gap:12px}.edition{color:#b9a6e8;font-size:10px}header #sound{border:1px solid #686080;border-radius:9px;padding:8px 10px;background:#19192e}
.compact-game .intro h1,.compact-game h2{font-family:'Arial Black','Trebuchet MS',system-ui,sans-serif;font-weight:950;letter-spacing:-.06em;text-transform:uppercase;font-style:italic}
.compact-game .intro h1{font-size:clamp(30px,4.2vw,48px);line-height:1.08;filter:drop-shadow(0 3px 0 #48256c)}
.compact-game .intro h1 em{font-weight:950;color:#63dfff;text-shadow:0 0 24px #63dfff44}.compact-game .game-version{font:700 10px system-ui;letter-spacing:.05em;color:#b6a7d4;vertical-align:middle;margin-left:12px}
.compact-game .intro p{color:#c6c0de}.compact-game .intro .eyebrow{color:#bda3ef}.compact-game .game-card{border:1px solid #8361bd88;background:#111329;box-shadow:0 0 0 4px #8f5fff0a,0 16px 50px #0007;border-radius:18px;overflow:hidden}
.compact-game .stats{background:linear-gradient(110deg,#282044,#121d36);border-color:#79649c55}.compact-game .stats strong{font-family:'Arial Black',system-ui,sans-serif;font-weight:900;color:#ffce59;text-shadow:0 0 18px #ffce5922;font-variant-numeric:tabular-nums}.compact-game .stats .combo-stat strong{color:#f795ec}.compact-game .stats>div>span{color:#c4b8e4;font-weight:800;letter-spacing:.13em}
.compact-game .arena{background:linear-gradient(90deg,#ffce590b 49.9%,#63dfff0c 50%),repeating-linear-gradient(0deg,transparent,transparent 59px,#b7a6ff0b 60px),#0c1022}
.compact-game .start-overlay{background:radial-gradient(ellipse at 50% 10%,#4b276169,transparent 70%),#101126ef}.compact-game .start-overlay h2{color:#fff;line-height:1.1;text-shadow:3px 3px #803c9e}.compact-game .mini{color:#f0b4ee;font-weight:800;letter-spacing:.14em}
.compact-game .primary{background:linear-gradient(110deg,#ffdc67,#ffad55);color:#21122d;font-weight:900;border:1px solid #ffe4a0;border-radius:12px;box-shadow:0 4px 0 #925424,0 0 24px #ffce5925}
.compact-game .secondary{border-color:#8d74bf;color:#e4d9ff;border-radius:10px;background:#30234488}
.compact-game .quick-controls #rhythm-select,.compact-game .quick-role #quick-role-select{background:#191b34;border-color:#665783;border-radius:12px;font-weight:750}.compact-game .quick-controls #open-settings{background:#36234c;color:#efcaff;border-color:#b46bd0;border-radius:12px}
.compact-game .touch-controls{background:#12152b;border-color:#79709844}.compact-game .touch-controls button{background:linear-gradient(#493c22,#2b2440);border:2px solid #ffce59;color:#ffe495;border-radius:14px;box-shadow:inset 0 -5px #0003;font-weight:900}.compact-game .touch-controls button:last-child{background:linear-gradient(#173d51,#20243c);border-color:#63dfff;color:#a2edff}.compact-game .touch-controls button.pressed{background:#ffce59;color:#171528;box-shadow:0 0 24px #ffce5970}.compact-game .touch-controls button:last-child.pressed{background:#63dfff;color:#171528;box-shadow:0 0 24px #63dfff70}
.compact-game .wave-panel,.compact-game .transport{background:#13152b}.compact-game .progress>div{background:linear-gradient(90deg,#ffce59,#f795ec,#63dfff)}.compact-game .sequence{border-color:#725a9c66}.compact-game .beat b{color:#ffce59}.compact-game .beat.r b{color:#63dfff}.compact-game .beat.active{background:#a16fff30;border-radius:9px}
.player-account{position:relative;flex-shrink:0}header .player-avatar{width:40px;height:40px;display:grid;place-items:center;padding:9px;border:1px solid #b68cf0;border-radius:50%;background:linear-gradient(135deg,#54306e,#263d66);color:#fff;cursor:pointer}.player-avatar svg{width:21px;height:21px}.player-avatar[aria-expanded=true]{box-shadow:0 0 0 3px #b68cf033}
.player-menu{position:absolute;right:0;top:calc(100% + 13px);width:min(328px,calc(100vw - 28px));background:#191a30;border:1px solid #9472bd;border-radius:18px;box-shadow:0 20px 70px #0009;padding:20px;color:#f6f1ff;text-align:left;letter-spacing:normal;line-height:1.4}.player-menu>strong{font-size:18px}.player-menu>p{font-size:13px;color:#c4b9dc;margin:7px 0 10px}.player-session{display:block;font-size:11px;color:#7ce6ec;margin-bottom:12px}.player-menu nav{display:grid;gap:4px}.player-menu nav a{padding:10px;border-radius:9px;text-decoration:none;color:inherit}.player-menu nav a:hover,.player-menu nav a:focus-visible{background:#a77ef026}.player-menu nav strong{display:block;font-size:13px}.player-menu nav small{display:block;margin-top:3px;color:#bcb4ce;font-size:11px}.player-login{display:block;background:#ffce59;color:#22152e;text-align:center;padding:11px;border-radius:10px;text-decoration:none;font-size:13px;font-weight:900;margin-top:12px}header .player-logout{width:100%;margin-top:8px;padding:10px;border:0;background:transparent;color:#d4c6e9}
button:focus-visible,a:focus-visible{outline:2px solid #63dfff;outline-offset:4px}
@media(max-width:620px){.compact-game>header{padding:0 12px;height:58px;flex-basis:58px}.header-tools{gap:6px}.brand-wordmark strong{font-size:16px!important}.brand-wordmark small{font-size:7px}header #sound{font-size:10px;padding:7px}.language-switch a{padding:5px}.compact-game .intro h1{font-size:32px}.player-menu{position:fixed;right:12px;top:65px;max-height:calc(100dvh - 80px);overflow-y:auto}.edition{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}

/* The logo is the same transparent artwork on the landing and dance floor. */
.compact-game .intro h1.game-brand{display:flex;align-items:center;gap:8px;filter:none;margin:0;line-height:1}.compact-game .game-brand a{display:block;line-height:0}.compact-game .game-brand img{display:block;width:160px;height:86px;object-fit:contain}.compact-game .game-brand .game-version{font-size:9px;margin-left:0}.compact-game .intro{min-height:88px}.compact-game .intro .eyebrow{display:none}
@media(max-width:620px){.compact-game .game-brand img{width:128px;height:67px}.compact-game .intro{min-height:68px}}
@media(max-height:700px){.compact-game .game-brand img{width:115px;height:58px}.compact-game .intro{min-height:60px}}
/* Mobile session HUD: horizontal wordmark, readable time and visible progress. */
.compact-game .intro{min-height:24px!important;flex-shrink:0}.compact-game .intro h1.game-brand{display:block;font-size:20px;line-height:24px;font-style:normal;letter-spacing:-.03em;filter:none}.game-brand>span{color:#ffce59}.game-brand>em{color:#63dfff}.compact-game .game-brand .game-version{display:none}.session-controls{display:flex;gap:10px;align-items:center;flex-shrink:0;min-height:36px}.session-controls label{display:flex;align-items:center;gap:7px;font-size:11px;color:#ccc3e2}.session-controls select,.session-controls input{font:700 13px system-ui;color:#fff;background:#191b34;border:1px solid #665783;border-radius:9px;padding:7px;min-height:36px}.session-controls input{width:65px}.session-controls [hidden]{display:none}.session-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;min-height:20px;flex-shrink:0;color:#c8c1df}.session-summary #session-lives{color:#ff9acc}.session-summary #session-clock{color:#90e9ff;font-variant-numeric:tabular-nums}.compact-game .game-card{grid-template-rows:38px 44px minmax(130px,1fr) 68px 38px 8px!important}.compact-game[data-training=ninja] .game-card{grid-template-rows:38px minmax(130px,1fr) 68px 38px 8px!important}.compact-game .progress{height:8px;background:#35314d}.compact-game .progress>div{height:100%;transition:width .1s linear}.compact-game .stats .round strong{font:800 19px system-ui;font-variant-numeric:tabular-nums}.compact-game .quick-controls{min-height:36px}.compact-game #training-status{font-size:10px;min-height:12px;line-height:12px}.compact-game>main{gap:4px}.compact-game .workspace{min-height:330px!important}.session-controls select:disabled,.session-controls input:disabled{opacity:.65}
@media(max-width:420px){.session-controls{gap:8px}.session-controls label{gap:4px;font-size:10px}.session-controls select{max-width:190px;font-size:12px}.compact-game .intro h1.game-brand{font-size:18px;line-height:22px}.session-summary{font-size:10px}.compact-game .stats .round strong{font-size:17px}.compact-game .stats{padding:0 8px}}
/* Match the actual grid areas: utility, stats, waveform, arena, pads, progress. */
.compact-game .game-card{grid-template-rows:48px 38px 30px minmax(130px,1fr) 68px 8px!important}
.compact-game[data-training=ninja] .game-card{grid-template-rows:48px 38px minmax(130px,1fr) 68px 8px!important}
.compact-game[data-game-state=finished] .game-card,.compact-game[data-game-state=finished][data-training=ninja] .game-card{grid-template-rows:48px minmax(220px,1fr) 8px!important}
@media(max-height:600px){.compact-game .game-card{grid-template-rows:48px 28px 20px minmax(100px,1fr) 60px 8px!important}.compact-game[data-training=ninja] .game-card{grid-template-rows:48px 28px minmax(100px,1fr) 60px 8px!important}.compact-game .workspace{min-height:280px!important}}

/* FINGER is a wordmark, not the old hidden version badge. */
.compact-game .intro h1.game-brand>span{display:inline!important;font:inherit;vertical-align:baseline;margin:0;color:#ffce59}.compact-game .intro h1.game-brand>em{display:inline;font:inherit;color:#63dfff}.cloud-result-status{font-size:12px!important;color:#a3e7ef!important}

.game-exits{display:flex;gap:12px;align-items:center;font:700 12px system-ui}.game-exits a{color:#dfc9ff;text-decoration:none}.practice-reward-tip{padding:12px;background:#a67dec18;border-radius:10px;color:#ffe1a2}.cloud-result-status{color:#ffe278}@media(max-width:600px){.game-exits{gap:8px;font-size:10px}.game-exits a:last-child{display:none}}

.game-wallet{display:block;max-width:990px;margin:8px auto;padding:0 12px;text-align:right;color:#ffdc76;font:700 12px/1.6 system-ui;text-decoration:none}@media(max-width:600px){.game-wallet{text-align:center;font-size:11px}}

.compact-game .intro .game-wallet{display:inline-block;margin:0 0 0 auto;padding:0;max-width:65%;font-size:11px;text-align:right;line-height:1.25}.compact-game .intro>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.compact-game .intro p{display:none}@media(max-width:600px){.compact-game .intro .game-wallet{font-size:9px;max-width:58%}.compact-game>header{gap:7px}.game-exits{gap:6px}}

/* Shared wardrobe in rear, profile and overhead cameras. */
#dancer #torso,#dancer #profile-body>path:first-child,#dancer #overhead-body>ellipse:first-child{fill:url(#shirt-shade);stroke:#b9c2d1}
body[data-dance-role=follower] #dancer #torso,body[data-dance-role=follower] #dancer #profile-body>path:first-child,body[data-dance-role=follower] #dancer #overhead-body>ellipse:first-child{fill:url(#dress-shade);stroke:#ff7184}
#dancer #pants-shade stop:nth-child(1){stop-color:#14151b}#dancer #pants-shade stop:nth-child(2){stop-color:#30323d}#dancer #pants-shade stop:nth-child(3){stop-color:#090a10}
#dancer #body>.follower-art{stroke:#ff7890}#dancer #body>.follower-art[fill="none"]{stroke:#ffadba}
/* Phone layout: prioritize the play area and a clear welcome. */
@media(max-width:700px){
 .compact-game>header{height:46px;flex-basis:46px;padding:0 10px;gap:8px}
 .compact-game .brand-wordmark strong{font-size:14px!important}.compact-game .brand-wordmark small{font-size:6px}
 .compact-game .game-exits a:not(:first-child){display:none}.compact-game .game-exits{font-size:11px}
 .compact-game .header-tools{gap:5px}.compact-game .language-switch a{min-height:36px;padding:5px;font-size:11px}
 .compact-game #sound{font-size:0;min-width:36px;min-height:36px;padding:5px}.compact-game #sound:after{content:'♫';font:700 18px system-ui}
 .compact-game>main{padding:5px 8px max(5px,env(safe-area-inset-bottom));gap:5px}
 .compact-game .intro h1.game-brand{font:900 17px/22px system-ui;letter-spacing:-.04em;white-space:nowrap}
 .compact-game .intro h1.game-brand .game-version{display:none!important}
 .compact-game .intro .game-wallet{font:600 9px/1.25 system-ui;max-width:49%}
 .compact-game .quick-controls{min-height:38px}.compact-game .quick-controls #rhythm-select,.compact-game .quick-role #quick-role-select,.compact-game .quick-controls #open-settings{height:38px;min-height:38px;padding:6px;font-size:12px}
 .compact-game #training-status{display:none}.compact-game .workspace,.compact-game[data-game-state=idle] .workspace,.compact-game[data-game-state=challenge] .workspace{min-height:0!important;gap:0}
 .compact-game .game-card{grid-template-rows:36px 34px 22px minmax(170px,1fr) 58px 6px!important}
 .compact-game[data-training=ninja] .game-card{grid-template-rows:36px 34px minmax(170px,1fr) 58px 6px!important}
 .compact-game .transport button{min-height:30px;height:30px;font:700 12px system-ui;padding:4px 8px}
 .compact-game .stats{gap:12px;padding:0 10px}.compact-game .stats strong{font:850 22px/1 system-ui}.compact-game .stats>div>span{font:700 9px system-ui;letter-spacing:.07em}
 .compact-game .wave-panel{font-size:9px}.compact-game .wave-panel .wave-heading{font-size:9px}
 .compact-game .start-overlay h2{font:850 25px/1.15 system-ui,-apple-system,sans-serif!important;letter-spacing:-.035em;text-shadow:none;font-style:normal;text-transform:none;margin:0}
 .compact-game .start-overlay #overlay-text{font:400 13px/1.4 system-ui;max-width:32ch}
 .compact-game .start-overlay>*{flex-shrink:0}.compact-game .start-overlay button{min-height:44px;font:750 13px system-ui;padding:9px 12px}
 .compact-game .touch-controls{padding:5px 8px;gap:10px}.compact-game .touch-controls button{min-height:46px;border-radius:13px}.compact-game .hit-zone-name{font-size:12px}
 .compact-game .sequence{min-height:32px;padding:2px 0}.compact-game .beat{padding:3px}.compact-game .beat b{font-size:16px}.compact-game .beat small{font-size:8px}
 .compact-game[data-game-state=finished] .game-card,.compact-game[data-game-state=finished][data-training=ninja] .game-card{grid-template-rows:36px minmax(200px,1fr) 6px!important}
}
@media(max-width:700px) and (max-height:740px){
 .compact-game .sequence{display:none}
 .compact-game[data-game-state=idle] .start-overlay{display:grid;grid-template-columns:1fr 1fr;align-content:center;justify-items:center;gap:8px;padding:10px}
 .compact-game[data-game-state=idle] .start-overlay h2,.compact-game[data-game-state=idle] #overlay-text{grid-column:1/-1}
 .compact-game[data-game-state=idle] #start{grid-column:1;grid-row:3}.compact-game[data-game-state=idle] #demo{grid-column:2;grid-row:3}
 .compact-game[data-game-state=idle] .start-overlay h2{font-size:22px!important}
}
@media(max-width:700px){.compact-game #start{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-size:12px;padding:8px;min-height:44px}.compact-game #start>span{display:inline;margin:0;font-size:14px}.compact-game #demo{white-space:nowrap;font-size:12px}.compact-game #sound[aria-pressed=false]:after{opacity:.5;text-decoration:line-through}}

/* Keep the pads above the bottom edge, including phone safe areas. */
.compact-game>main{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.compact-game .session-summary{min-height:18px}
.compact-game #game-settings .round-settings-form input[type=number]{width:100%;min-width:0;box-sizing:border-box;min-height:44px;border:1px solid #665783;border-radius:9px;padding:7px;font:700 16px system-ui;background:#191b34;color:#fff}
@media(max-width:700px){
 .compact-game>main{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
 .compact-game .game-card{grid-template-rows:36px 34px 22px minmax(0,1fr) 66px 6px!important}
 .compact-game[data-training=ninja] .game-card{grid-template-rows:36px 34px minmax(0,1fr) 66px 6px!important}
 .compact-game[data-game-state=finished] .game-card,.compact-game[data-game-state=finished][data-training=ninja] .game-card{grid-template-rows:36px minmax(0,1fr) 6px!important}
}
