/* Local substitutes for map images unavailable in the captured build. */
.hub-music { display: none !important; }
.path-node.art { background: radial-gradient(circle at 38% 28%,#fff8 0 7%,transparent 8%), linear-gradient(145deg,#ffdf91,#f1a235) !important; border: 3px solid #aa5e20 !important; box-shadow: 0 4px 0 #914d1f !important; padding-bottom: 0 !important; }
.path-node.art.current { background: radial-gradient(circle at 38% 28%,#fff9 0 7%,transparent 8%), linear-gradient(145deg,#a9f4ff,#4684f5) !important; border-color: #3766ae !important; box-shadow: 0 4px 0 #295294 !important; }
.path-node.art.special { padding-bottom: 0 !important; }
/* The hosted video-ad skip is unavailable without Poki. */
.lvl-action:has(.lvl-skip) { display: none !important; }
.path-node.gift::after { content: '🎁'; font-size: calc(50px * var(--s)); }
.path-node.devil::after { content: '⚡'; font-size: calc(50px * var(--s)); }
.path-node.music::after { content: '♪'; font-size: calc(50px * var(--s)); }
/* Local shop presentation; only the coin-purchased skin category is active. */
.locker-tabs .locker-tab:nth-child(2) { display: none !important; }
.locker-btn { background: linear-gradient(145deg,#ffcb77,#f18b4e) !important; border: 3px solid #a94f62 !important; border-radius: 20px !important; box-shadow: 0 4px 0 #934768 !important; padding: 0 !important; }
.locker-btn .hub-sq-icon { display:none; }
.locker-btn::after { content: '🎨'; font-size: 37px; }
.locker-card { background: linear-gradient(155deg,#fef4ff,#ead8ff) !important; border: 4px solid #8f69c1 !important; color:#352b53 !important; border-radius:24px !important; }
.locker-tabs .locker-tab.active { background:#f9f0ff !important; color:#5b347a !important; border-radius:16px 16px 0 0 !important; }
.skin-cell { background:#fff9 !important; border:2px solid #d9c8e9 !important; border-radius:16px !important; }
.skin-cell.is-equipped { border-color:#6cce99 !important; background:#dcf8e8 !important; }
.skin-btn.buy { background:#ffd465 !important; color:#58411a !important; }
.skin-btn.equip { background:#9ce6b5 !important; color:#274b3a !important; }
.skin-tag.equipped { color:#168452 !important; }
.locker-card { box-sizing:border-box !important; border-image:none !important; padding:52px 20px 20px !important; height:min(520px,82vh) !important; }
.locker-card > .locker-grid { margin:0 !important; padding:2px !important; grid-template-columns:repeat(auto-fit,minmax(105px,1fr)) !important; align-content:start; }
.locker-close { top:12px !important; right:12px !important; width:36px !important; height:36px !important; color:#593b75 !important; background:#dfc9ef !important; border-radius:50% !important; }
.locker-close::after { content:'×'; font:bold 27px/1 sans-serif; }
.locker-tabs .locker-tab.active { border-image:none !important; }
.skin-cell.is-locked { background:#fff9 !important; }
.skin-cell.is-equipped { background:#dcf8e8 !important; }
.skin-btn, .skin-tag { border-radius:20px !important; min-width:80px !important; min-height:34px !important; text-shadow:none !important; }
/* Local music player and coin-only catalogue. */
.hub-music { display:flex !important; }
.locker-tabs .locker-tab:nth-child(2) { display:inline-flex !important; }
.locker-card > .track-list { margin:0 !important; padding:2px !important; }
.track-row { background:#fff9 !important; border:2px solid #d9c8e9 !important; color:#352b53; border-radius:12px !important; }
.track-row.is-playing { background:#dcf8e8 !important; border-color:#6cce99 !important; }
.local-track-note { font-size:24px; color:#8a5cc5; width:30px; text-align:center; }
.track-tag.playing { color:#168452 !important; }
.hub-music .mini-player { background:#38285de8 !important; border:2px solid #b69ae3 !important; border-radius:20px !important; padding:8px 47px 8px 10px !important; }
.mini-nav .ui-icon,.mini-play .ui-icon,.mini-expand .ui-icon { display:none !important; }
.mini-nav:first-child::after { content:'⏮'; font-size:19px; }
.mini-nav:nth-child(3)::after { content:'⏭'; font-size:19px; }
.mini-play[aria-label="Pause music"]::after { content:'⏸'; font-size:20px; color:white; }
.mini-play[aria-label="Play music"]::after { content:'▶'; font-size:20px; color:white; }
.mini-expand { background:#d8aaff !important; border-radius:50% !important; width:48px !important; height:48px !important; right:-20px !important; padding:0 !important; }
.mini-expand::after { content:'♫'; color:#4e2e77; font-size:26px; font-weight:800; }
@media(max-width:600px) { .hub-music { bottom:16px !important; } }
/* Keep track controls available while playing, without covering the level tools. */
.hub-music { top:auto !important; right:clamp(24px,4vw,56px) !important; bottom:24px !important; left:auto !important; transform:scale(var(--mpscale,1)) !important; transform-origin:bottom right !important; }
@media(max-width:600px) { .hub-music { right:28px !important; bottom:18px !important; left:auto !important; transform:scale(.8) !important; transform-origin:bottom right !important; } }
.audio-waiting .mini-label { font-size:0 !important; }
.audio-waiting .mini-label::after { content:'Tap to enable music'; font-size:11px; }
.audio-pending:not(.audio-waiting) .mini-label { font-size:0 !important; }
.audio-pending:not(.audio-waiting) .mini-label::after { content:'Music starts after the level'; font-size:11px; }
