/* The preview mini player: the Board's, also used by entry pages while a preview
   plays out of sight. Surfaces place it; this owns its look. */
.curator-board-player { position: sticky; z-index: 5; bottom: 1.25rem; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 0.75rem; width: min(420px, calc(100% - 1.5rem)); margin: 0 auto; padding: 0.45rem 0.5rem 0.55rem 0.45rem; border-radius: 10px; background: var(--rh-menu-background, #3f3c39); color: var(--rh-menu-foreground, #f1efe9); box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.45); }
.curator-board-player[hidden] { display: none; }
/* Rises in when a preview starts and settles out when it ends. */
.curator-board-player { opacity: 0; transform: translateY(14px); transition: opacity 180ms ease, transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1); }
.curator-board-player.is-visible { opacity: 1; transform: none; }
/* Apple Music credit for the preview, as on Chronology's deck. */
.curator-board-player-link { display: inline-flex; align-items: center; gap: 0.3rem; min-height: 36px; padding: 0 0.2rem; color: inherit; font: 500 0.75rem/1 var(--rh-sans); letter-spacing: -0.02em; text-decoration: none; opacity: 0.85; }
.curator-board-player-link:focus-visible { opacity: 1; }
@media (hover: hover) and (pointer: fine) { .curator-board-player-link:hover { opacity: 1; } }
.curator-board-player-link[hidden] { display: none; }
.curator-board-player-link svg { width: 12px; height: 12px; margin-top: -2px; }
.curator-board-player-art { width: 38px; height: 38px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, 0.08); }
.curator-board-player-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.curator-board-player-copy { display: grid; gap: 0.1rem; min-width: 0; }
.curator-board-player-copy :is(strong, small) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--rh-sans); }
.curator-board-player-copy strong { font-size: 0.88rem; font-weight: 500; line-height: 1.2; letter-spacing: -0.025em; }
.curator-board-player-copy small { font-size: 0.72rem; line-height: 1.3; opacity: 0.7; }
.curator-board-player-stop { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.curator-board-player-stop svg { width: 12px; height: 12px; }
.curator-board-player-progress { position: absolute; right: 10px; bottom: 4px; left: 10px; height: 2px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, 0.14); }
.curator-board-player-progress i { display: block; width: 100%; height: 100%; background: currentColor; opacity: 0.8; transform: scaleX(0); transform-origin: left center; will-change: transform; }

/* The record player (Board, entry pages, Chronology): a paper pill with a light pressing
   whose label is the track's cover. The disc turns only while the preview plays. */
.curator-board-player--record { grid-template-columns: 44px minmax(0, 1fr) auto 44px; gap: 0.7rem; min-height: 60px; padding: 8px; border-radius: 999px; background: var(--rh-note-paper, #fbf9f5); color: var(--rh-ink, #302d29); box-shadow: 0 12px 30px -10px rgba(25, 21, 16, 0.28), 0 1px 3px rgba(25, 21, 16, 0.06); }
.curator-board-player--record .curator-board-player-copy small { color: var(--rh-muted, #77716a); opacity: 1; }
/* Pause is the main control: a full round target, clear of the Music link. */
.curator-board-player--record .curator-board-player-stop { width: 44px; height: 44px; background: rgba(63, 60, 57, 0.07); }
.curator-board-player--record .curator-board-player-stop svg { width: 13px; height: 13px; }
.curator-board-player--record .curator-board-player-link { gap: 0.2rem; min-height: 44px; padding: 0 0.3rem; color: var(--rh-muted, #77716a); font: 500 0.72rem/1 var(--rh-sans); opacity: 1; }
.curator-board-player--record .curator-board-player-link svg { width: 10px; height: 10px; margin-top: -1px; }
.curator-board-player--record .curator-board-player-progress { left: 64px; right: 64px; bottom: 7px; background: rgba(63, 60, 57, 0.1); }
.curator-board-player--record .curator-board-player-progress i { opacity: 1; }
.curator-board-disc { position: relative; width: 44px; height: 44px; border-radius: 50%; --disc-pressing: color-mix(in srgb, var(--disc-tint, transparent) var(--disc-tint-amount, 8%), #fbfaf8); background-color: var(--disc-pressing); box-shadow: 0 0 0 0.5px rgba(63, 60, 57, 0.14), 0 1px 3px rgba(40, 34, 26, 0.1); animation: curator-board-disc-turn 3.6s linear infinite paused; }
.curator-board-player--record.is-playing .curator-board-disc { animation-play-state: running; }
.curator-board-disc::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 285deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.6) 32deg, rgba(255, 255, 255, 0) 70deg, rgba(60, 50, 40, 0.07) 108deg, rgba(255, 255, 255, 0) 146deg, rgba(255, 255, 255, 0.6) 212deg, rgba(255, 255, 255, 0) 250deg, rgba(60, 50, 40, 0.07) 288deg, rgba(255, 255, 255, 0) 326deg); -webkit-mask: radial-gradient(circle closest-side, transparent 0 58%, #000 62%); mask: radial-gradient(circle closest-side, transparent 0 58%, #000 62%); }
.curator-board-disc-grooves { position: absolute; inset: 0; border-radius: 50%; background: repeating-radial-gradient(circle, rgba(0, 0, 0, 0) 0, rgba(120, 110, 98, 0.12) 0.8px, rgba(0, 0, 0, 0) 1.6px); -webkit-mask: radial-gradient(circle closest-side, transparent 0 61%, #000 62% 94%, transparent 95%); mask: radial-gradient(circle closest-side, transparent 0 61%, #000 62% 94%, transparent 95%); }
.curator-board-disc-label { position: absolute; left: 26.7%; top: 26.7%; width: 46.6%; height: 46.6%; overflow: hidden; border-radius: 50%; background: #efede8; box-shadow: 0 0 0 0.5px rgba(63, 60, 57, 0.08), 0 0 0 1.5px #fbfaf8, 0 0 0 2px rgba(63, 60, 57, 0.08); }
.curator-board-disc-label img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0.92; }
.curator-board-disc-label img:not([src]) { visibility: hidden; }
.curator-board-disc-spindle { position: absolute; left: calc(50% - 1.5px); top: calc(50% - 1.5px); width: 3px; height: 3px; border-radius: 50%; background: #fbfaf8; box-shadow: 0 0 0 0.5px rgba(63, 60, 57, 0.2); }
@keyframes curator-board-disc-turn { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .curator-board-disc { animation: none; } }
/* An entry's pressing is the playing record's, as the Previews deck presses it (its sampled
   artwork colour, set on the disc), or else a trace of the entry's own colour. */
.curator-entry-mini-player { --disc-tint: var(--entry-tone, transparent); }
.curator-entry-mini-player .curator-board-disc[data-tint-for] { --disc-tint-amount: 18%; }
/* Full pressings (VINYL_PRESSINGS_ENABLED): the label's collar is pressed in the disc's colour. */
[data-vinyl-pressings] .curator-board-disc-label { box-shadow: 0 0 0 0.5px rgba(63, 60, 57, 0.08), 0 0 0 1.5px var(--disc-pressing), 0 0 0 2px rgba(63, 60, 57, 0.08); }
/* Registered so a pressing that arrives late eases in, collar and all. */
@property --disc-pressing { syntax: "<color>"; inherits: true; initial-value: #fbfaf8; }
.curator-board-disc.is-tinting { transition: --disc-pressing 260ms ease-out; }

