/* InterDance · concert edition. Scoped rules keep portal and wallet controls independent. */
body.dance-playing{overflow:hidden}body.dance-playing>header{display:none!important}
#danceApp[hidden],#danceApp [hidden]{display:none!important}
#danceApp{--dance-ink:#080d20;--dance-muted:#a5b0c9;position:fixed;inset:0;z-index:65;background:var(--dance-ink);color:#f4f5ff;font:14px system-ui,-apple-system,sans-serif;overflow:hidden;isolation:isolate}
#danceApp *{box-sizing:border-box}#danceCanvas{display:block;width:100%;height:100%;outline:none}
#danceApp .dance-top button,#danceApp .dance-sheet button,#danceApp .dance-sheet select{appearance:none;border:1px solid #3e4b69;border-radius:10px;background:#19233b;color:#edf2ff;font:650 13px system-ui;min-height:44px;padding:10px 15px;cursor:pointer;box-shadow:none;text-shadow:none}
#danceApp .dance-sheet button:hover,#danceApp .dance-top button:hover{border-color:#9cceec;background:#26324e}
#danceApp button:focus-visible,#danceApp select:focus-visible,#danceApp summary:focus-visible,#danceApp input:focus-visible{outline:3px solid #bef58c;outline-offset:3px}
#danceApp .dance-sheet button.primary{background:#8ce9dc;border-color:#8ce9dc;color:#092a34;font-weight:850}
#danceApp button:disabled{opacity:.5;cursor:wait}
#danceApp .dance-top{position:absolute;inset:0 0 auto;height:62px;z-index:3;display:flex;align-items:center;gap:10px;padding:8px 16px!important;border:0!important;box-shadow:none!important;background:#0a1023f5!important}
#danceApp .dance-top button{flex:0 0 42px;min-height:42px;height:42px;padding:0;border:1px solid #34405c;background:#161f35;border-radius:12px;font-size:21px}
#danceApp #danceExit{font-size:24px}#danceExit span{display:none}#danceApp .dance-brand{display:none}
#danceTrack{flex:1;min-width:0}#danceTrack b{display:block;font-size:14px;font-weight:850;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#danceTrack small{display:block;color:#a5b0c9;font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dance-word-accent{color:#8ce9dc}
#danceApp .dance-overlay{position:absolute;inset:62px 0 0;z-index:4;padding:0;display:grid;place-items:center;background:#080d20}
#danceApp .dance-sheet{width:100%;height:100%;overflow:auto;overscroll-behavior:contain;outline:0;padding:18px 20px 100px;scrollbar-width:thin;scrollbar-color:#415070 #080d20}
#danceApp .dance-library{max-width:1040px;margin:auto}
#danceApp .dance-cover-art{position:relative;display:flex;align-items:center;min-height:180px;overflow:hidden;border-radius:16px;background:#101c3c url('./assets/interdance/cover-v2.webp') center/cover no-repeat;border:1px solid #344768}
#danceApp .dance-cover-art:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1638ee 0%,#0b1638a0 30%,#0b163800 68%)}
#danceApp .dance-cover-art>div{position:relative;padding:24px 26px;max-width:56%}
#danceApp .dance-eyebrow{display:block;color:#8ce9dc;font-size:9px;font-weight:800;letter-spacing:1.6px;line-height:1.6}
#danceApp .dance-cover-art h1{font-size:clamp(23px,3vw,40px);line-height:1.08;letter-spacing:-1px;margin:12px 0;color:#fff;font-weight:900}
#danceApp .dance-cover-art em{color:#8ce9dc;font-style:normal}
#danceApp .dance-cover-caption{font-size:11px;color:#c1ccdf}
#danceApp .dance-stage-heading{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px;gap:12px}
#danceApp .dance-stage-heading h2{font-size:19px;letter-spacing:-.5px;margin:2px 0;font-weight:800}
#danceApp .dance-stage-heading>span{font-size:20px;font-weight:800;color:#91e7d9}#danceApp .dance-stage-heading small{font-size:12px;color:#a5b0c9;font-weight:500}
#danceApp .dance-stages{display:grid;grid-template-columns:1fr 1fr;gap:9px}
#danceApp .dance-sheet button.dance-stage{display:flex;align-items:center;gap:12px;min-height:76px;padding:8px;text-align:left;border-radius:12px;border:1px solid #283650;background:#111a30;overflow:hidden}
#danceApp .dance-stage:hover{background:#1c2b45;border-color:#83c8cf;transform:translateY(-1px)}
#danceApp .dance-track-art{position:relative;flex:0 0 56px;height:56px;display:grid;place-items:center;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,var(--track-tint),#141b37);color:#fff}
#danceApp .dance-track-art:before,#danceApp .dance-track-art:after{content:"";position:absolute;border:1px solid var(--track-color);width:54px;height:54px;transform:rotate(35deg);opacity:.5;border-radius:50%}
#danceApp .dance-track-art:after{width:34px;height:34px;border-width:5px;transform:translate(16px,15px);opacity:.3}
#danceApp .dance-track-art>span{z-index:1;font-size:25px;font-style:italic;font-weight:900;text-shadow:0 2px 8px #080d20}
#danceApp .dance-track-title{min-width:0;flex:1}#danceApp .dance-track-title b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.15px}
#danceApp .dance-track-title small{display:block;font-size:10px;color:#a5b0c9;margin-top:5px;font-weight:500}#danceApp .dance-track-title i{font-style:normal;padding:0 4px;color:#6b7b99}
#danceApp .dance-track-rating{display:flex;align-items:center;gap:9px}.stars{color:#f9da88;font-size:10px;letter-spacing:1px}#danceApp .dance-play-mark{font-size:28px;font-weight:400;color:#a6e7dd;padding-right:3px}
#danceApp .dance-library-footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px}#danceApp .dance-library-footer>span{font-size:10px;color:#a5b0c9}
#danceApp .dance-detail{max-width:900px;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}
#danceApp .dance-detail-art{width:100%;aspect-ratio:32/13;display:block;object-fit:contain;background:#12182d;border:1px solid #344563;border-radius:14px;margin-bottom:18px}
#danceApp .dance-sheet h1{font-size:29px;line-height:1.12;letter-spacing:-.8px;margin:7px 0 14px;font-weight:850}
#danceApp .dance-facts{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0;color:#bfc9de;font-size:11px}
#danceApp .dance-facts>span{padding:6px 10px;border:1px solid #35425e;border-radius:6px}
#danceApp .dance-facts>div{padding:12px 16px;background:#162139;border-radius:10px}#danceApp .dance-facts b{display:block;color:#fff;font-size:22px}
#danceApp .dance-option{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}#danceApp .dance-option>span,#danceApp .dance-avatar{font-size:12px;color:#c4cde0}
#danceApp .dance-mode{display:flex;gap:4px;padding:4px;background:#111a2f;border:1px solid #2c3852;border-radius:11px}
#danceApp .dance-sheet .dance-mode button{border:0;min-height:38px;padding:8px 12px;background:transparent;border-radius:7px;font-size:12px}
#danceApp .dance-sheet .dance-mode button.selected{background:#8ce9dc;color:#0b2b36}
#danceApp .dance-avatar{display:flex;justify-content:space-between;align-items:center;margin:12px 0}#danceApp .dance-avatar select{min-width:130px}
#danceApp .dance-sheet p{font-size:12px;color:#acbad4;line-height:1.65}
#danceApp .dance-instruction{margin:18px 0 12px;min-height:39px}
#danceApp .dance-launch{display:grid;grid-template-columns:1fr auto;gap:8px}#danceApp .dance-launch .primary{min-height:50px;font-size:15px}
#danceApp .dance-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
#danceApp .dance-sheet .dance-secondary-actions button{flex:1;padding:9px 8px;font-size:11px}
#danceApp .dance-help{font-size:12px;color:#b6c4db;margin-top:18px;padding:12px 14px;border:1px solid #34425d;border-radius:10px;line-height:1.6}
#danceApp .dance-help summary{cursor:pointer;color:#d1dbec;min-height:24px}
#danceApp .dance-result,#danceApp .dance-settings{max-width:580px;margin:6vh auto 0}
#danceApp .dance-result{text-align:center}#danceApp .dance-result .dance-buttons,#danceApp .dance-result .dance-facts{justify-content:center}
#danceApp .dance-stars{font-size:38px;color:#ffe28c;letter-spacing:10px;margin:22px 0}
#danceApp .dance-settings label{display:block;margin:25px 0;font-size:13px}#danceApp .dance-settings select,#danceApp .dance-settings input[type=range]{display:block;width:100%;margin-top:12px;accent-color:#8ce9dc}#danceApp .dance-settings output{float:right;color:#8ce9dc}
#danceApp .dance-versus-results{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}#danceApp .dance-versus-results article{border:1px solid #3f4a65;background:#121d33;padding:16px;border-radius:12px}#danceApp .dance-versus-results article.winner{border-color:#8ce9dc}#danceApp .dance-versus-results h2{font-size:13px}#danceApp .dance-versus-results strong{display:block;font-size:30px;color:#8ce9dc}
/* Compact score strip leaves the concert and all four note lanes unobstructed. */
#danceApp #danceHUD{position:absolute;inset:62px 12px auto;pointer-events:none;display:flex;justify-content:space-between;align-items:start;gap:10px}
#danceApp .dance-score small,#danceApp .dance-energy>span{display:block;font-size:8px;letter-spacing:1.6px;color:#a6b4d0}#danceApp .dance-score b{font-size:26px;font-weight:850;line-height:1.3;font-variant-numeric:tabular-nums}
#danceApp .dance-energy{width:112px;text-align:right}#danceApp .dance-energy meter{width:100%;height:10px;display:block;margin:4px 0;accent-color:#8ce9dc}#danceApp .dance-energy small{font-size:9px;color:#c4d3e9}
#danceApp .dance-time{position:fixed;bottom:4px;left:14px;right:14px;display:flex;align-items:center;gap:10px;font-size:8px;color:#95a5c2}#danceApp .dance-time progress{height:3px;flex:1;accent-color:#8ce9dc}
#danceApp #danceVersusHUD{position:absolute;top:65px;left:14px;right:14px;display:grid;grid-template-columns:1fr 80px 1fr;gap:8px;text-align:center;pointer-events:none}#danceApp #danceVersusHUD small,#danceApp #danceVersusHUD span{display:block;font-size:9px;color:#b9c4dc}#danceApp #danceVersusHUD b{font-size:23px}#danceApp #danceVersusHUD .dance-vs-clock b{font-size:12px;color:#8ce9dc}
/* Positions come from concertLayout(), shared with the drawn note highways. */
#danceApp #dancePads{position:absolute;inset:0;pointer-events:none;touch-action:none}
#danceApp #dancePads .dance-pad-group{position:absolute;pointer-events:auto}
#danceApp #dancePads .dance-pad-group>span{display:none}#danceApp #dancePads .dance-pad-group>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;height:100%}
#danceApp #dancePads button[data-dance-lane]{appearance:none;min-width:0;width:100%;height:100%;border:1px solid #ffffffa6;border-bottom:4px solid #384766;border-radius:11px;padding:5px;color:#0d1931;background:var(--pad-color);box-shadow:0 3px 0 #030715;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:none}
#danceApp #dancePads button[data-dance-lane="0"],#danceApp #dancePads button[data-dance-lane="4"]{--pad-color:#b99aff;background:#b99aff}
#danceApp #dancePads button[data-dance-lane="1"],#danceApp #dancePads button[data-dance-lane="5"]{--pad-color:#66e4ed;background:#66e4ed}
#danceApp #dancePads button[data-dance-lane="2"],#danceApp #dancePads button[data-dance-lane="6"]{--pad-color:#bef58c;background:#bef58c}
#danceApp #dancePads button[data-dance-lane="3"],#danceApp #dancePads button[data-dance-lane="7"]{--pad-color:#ff9bb9;background:#ff9bb9}
#danceApp #dancePads button svg{display:block;height:34px;width:34px;margin:auto;fill:currentColor;stroke:#fff;stroke-width:1.5}
#danceApp #dancePads button:nth-child(1) svg{transform:rotate(-90deg)}#danceApp #dancePads button:nth-child(2) svg{transform:rotate(180deg)}#danceApp #dancePads button:nth-child(4) svg{transform:rotate(90deg)}
#danceApp.dance-versus #dancePads .dance-pad-group>span{display:block;position:absolute;top:-7px;left:7px;padding:1px 5px;border:1px solid #8fa5cb;border-radius:4px;background:#10192e;color:#fff;font:800 8px system-ui;pointer-events:none}
#danceApp #dancePads small{display:block;font:700 8px system-ui;line-height:1;opacity:.75}
#danceApp #dancePads button.pressed{transform:translateY(2px);filter:brightness(1.2);box-shadow:0 0 18px var(--pad-color);border-bottom-width:1px}
#danceApp #danceToast{position:absolute;z-index:8;left:50%;top:116px;transform:translateX(-50%);background:#17233ef5;border:1px solid #566b8d;border-radius:8px;color:#eef5ff;font-size:12px;padding:10px 14px;max-width:85%;text-align:center;pointer-events:none;opacity:0}#danceApp #danceToast.visible{opacity:1}
/* The game has its own shop entry; social overlays return when the song is paused. */
body.dance-playing #danceApp .ig-dock{display:none!important}
body.dance-in-song #danceShop,body.dance-in-song #boxChat,body.dance-in-song #boxOnline,body.dance-in-song .box-online,body.dance-in-song #boxRoomsToggle{display:none!important}
#danceApp[data-view="loading"] .dance-result:before{content:"";display:block;width:42px;height:42px;border:3px solid #253757;border-top-color:#8ce9dc;border-radius:50%;margin:0 auto 24px;animation:dance-load .8s linear infinite}
@keyframes dance-load{to{transform:rotate(360deg)}}
@media(max-width:620px){
 #danceApp .dance-top{height:56px;padding:7px 12px!important;gap:9px}#danceApp .dance-top button{flex-basis:38px;min-height:38px;height:38px;font-size:19px}
 #danceApp .dance-overlay{top:56px}#danceApp .dance-sheet{padding:12px 12px 95px}
 #danceApp .dance-cover-art{min-height:150px;background-position:58% center;border-radius:12px}#danceApp .dance-cover-art>div{padding:18px 14px;max-width:59%}#danceApp .dance-cover-art h1{font-size:25px;margin:8px 0;letter-spacing:-1px}#danceApp .dance-cover-art .dance-eyebrow{font-size:7px;letter-spacing:1px}#danceApp .dance-cover-caption{font-size:9px;display:block;max-width:135px;line-height:1.5}
 #danceApp .dance-stage-heading{margin:19px 2px 11px}#danceApp .dance-stage-heading h2{font-size:17px}#danceApp .dance-stages{grid-template-columns:1fr;gap:7px}#danceApp .dance-sheet button.dance-stage{min-height:68px;padding:7px;gap:11px}#danceApp .dance-track-art{flex-basis:50px;height:50px}#danceApp .dance-track-title b{font-size:12px}#danceApp .dance-track-title small{font-size:10px}#danceApp .dance-track-rating{gap:12px}
 #danceApp .dance-detail{grid-template-columns:1fr;gap:8px}#danceApp .dance-detail-art{height:140px;aspect-ratio:auto;margin-bottom:12px}#danceApp .dance-sheet h1{font-size:25px}#danceApp .dance-facts{margin:10px 0}#danceApp .dance-option{margin:10px 0}#danceApp .dance-instruction{margin:12px 0;min-height:0}
 #danceApp .dance-result,#danceApp .dance-settings{margin-top:20px}#danceApp #danceHUD{top:64px}#danceApp .dance-score b{font-size:23px}#danceApp #danceVersusHUD{top:62px}#danceApp .dance-library-footer>span{flex-basis:100%}
}
@media(max-height:460px) and (orientation:landscape){
 #danceApp .dance-top{height:50px;padding:5px 12px!important}#danceApp .dance-top button{min-height:36px;height:36px;flex-basis:36px}#danceApp .dance-overlay{top:50px}#danceApp .dance-sheet{padding-top:12px}#danceApp .dance-cover-art{min-height:125px}#danceApp .dance-cover-art>div{padding:12px 20px}#danceApp .dance-cover-art h1{font-size:27px;margin:6px 0}#danceApp .dance-detail-art{max-height:155px}#danceApp .dance-detail{gap:20px}#danceApp #danceHUD,#danceApp #danceVersusHUD{top:56px}#danceApp #dancePads button svg{height:28px;width:28px}
}
@media(prefers-reduced-motion:reduce){#danceApp *{animation:none!important;transition:none!important}}
/* The matching cover also identifies this game in the existing catalogue. */
.cover.dance-cover{background:#101831 url('./assets/interdance/cover-v2.webp') 62% center/cover!important;position:relative;isolation:isolate}
.cover.dance-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1638dd,transparent 80%);z-index:-1}
.cover.dance-cover strong{font:900 italic clamp(25px,3vw,43px)/.95 system-ui;color:#fff;letter-spacing:-1.5px;text-shadow:0 3px 12px #080d20}
.cover.dance-cover strong small{display:block;color:#8ce9dc;font:800 13px/1.4 system-ui;letter-spacing:5px}
