/* ==========================================================================
 * MILLENOVA GLOBAL PLAYER — STAGE MOBILE LAYOUT CONTRACT
 *
 * OWNER:
 * This file owns mobile/coarse/narrow player and Stage composition: viewport sizing, sticky media, natural flow, quick-dock offsets and safe-area integration.
 *
 * MUST NOT OWN:
 * Do not define the desktop Stage as a convenience. Scrollbar chrome remains owned by
 * Styles/scrollbars.css. JavaScript state/queue/provider semantics stay
 * outside CSS.
 *
 * CASCADE CONTRACT:
 * Segment 2 of 3 for this owner. Phase 11A mechanical split: loaded at manifest position 16, after
 * 15-stage-desktop-layout--part-1-of-6.css. Rule order is unchanged from the former monolith (baseline
 * df93472, lines 2207–2235). New corrections go into the canonical owning
 * rule; never append dated Phase/fix blocks.
 *
 * DEPENDENCIES:
 * Depends on --mn-mobile-quick-dock-height, env(safe-area-inset-*) and the mobile shell state classes.
 * ========================================================================== */


/* Mobile Stage deliberately keeps the proven vertical MPlayer composition.
 * The universal quick dock remains the one exempt shell layer below Stage.
 */
@media (max-width: 900px) {
  .floating-playlist:not(.is-minimized) .floating-playlist__stage-focus {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
  }

  .floating-playlist:not(.is-minimized) .floating-playlist__stage-transport {
    min-height: 48px;
    gap: .3rem;
    padding: .28rem .52rem .42rem;
  }
}

@keyframes mplayer-stage-enter {
  from {
    opacity: .92;
    transform: scale(.988);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .floating-playlist:not(.is-minimized) .floating-playlist__stage {
    animation: none !important;
  }
}
