/* Sticky mini player (2026-10-23): bottom right on desktop, above the bottom bar on phones. */
.mini-player {
    position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 999;
    display: flex; align-items: center; gap: 6px; width: min(440px, calc(100vw - 24px)); box-sizing: border-box;
    padding: 8px 10px; border-radius: 12px; color: var(--text-primary);
    background: var(--bg-elevated); border: 1px solid var(--border-color);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    box-shadow: 0 16px 40px -14px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 0, 90, .12);
}
.mini-player[hidden] { display: none; }
.mp-art { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: none; }
.mp-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mp-info strong { font: 600 .82rem/1.2 var(--font-body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-info span { font: 500 .62rem/1 var(--font-accent); letter-spacing: .14em; color: var(--primary-accent); }
.mp-bar { position: relative; height: 4px; margin-top: 5px; border-radius: 4px; background: var(--border-color); cursor: pointer; }
.mp-bar i { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: linear-gradient(90deg, #ff005a, #ff6aa8); }
.mp-btn {
    flex: none; width: 34px; height: 34px; display: grid; place-items: center; padding: 0;
    border: 0; border-radius: 8px; background: none; color: var(--text-secondary) !important; cursor: pointer; text-decoration: none; font-size: .85rem;
}
.mp-btn:hover { color: var(--primary-accent) !important; }
.mp-play { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #ff005a, #b0003e); color: #fff !important; }
.mp-play:hover { color: #fff !important; filter: brightness(1.1); }
.mp-vol { width: 70px; accent-color: #ff005a; flex: none; }
.mp-toggle.is-playing i { color: var(--primary-accent); animation: mpBeat 1.2s ease-in-out infinite; }
@keyframes mpBeat { 50% { transform: scale(1.12); } }
body.sept-shell header.topbar .mp-toggle, header.topbar .mp-toggle { width: 48px; height: 48px; margin-right: 8px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--border-color); background: none; color: var(--text-primary); font-size: 1.1rem; }
@media (max-width: 768px) {
    .mini-player { left: 8px; right: 8px; width: auto; bottom: calc(var(--sh-bot-h) + 8px); }
    .mp-vol, .mini-player a.mp-btn { display: none; }
    body.shell.mp-open { padding-bottom: calc(var(--sh-bot-h) + 72px); }
}
@media (prefers-reduced-motion: reduce) { .mp-toggle.is-playing i { animation: none; } }
@media print { .mini-player { display: none !important; } }
/* phone + iPad: the open player takes the hero down arrow's spot (the bar has Next); short phones have no room for it */
@media (max-width: 1199px) { body.mp-open .hero-scroll-indicator { display: none !important; } }
@media (max-width: 768px) and (max-height: 640px) { .hero-scroll-indicator { display: none !important; } }
