/* Dense catalog. Five square covers across on a wide desktop, one shared
   player along the bottom. Colors come from the site chrome tokens so the
   Halloween skin retints this page with the rest of the site. */

.rr-skip {
	position: absolute;
	left: 8px;
	top: -40px;
	z-index: 100;
	background: var(--rr-g);
	color: var(--rr-bg);
	padding: 8px 12px;
}

.rr-skip:focus {
	top: 8px;
}

.rr-music {
	box-sizing: border-box;
	/* Short viewports keep the squares small enough that about five rows sit above the player. */
	width: min(100%, calc(100dvh - 228px));
	margin: 0 auto;
	padding: 8px 12px calc(92px + env(safe-area-inset-bottom));
	overflow-x: clip;
	color: var(--rr-ticker-ink);
	font-family: var(--rr-font-chrome);
	font-weight: 400;
	color-scheme: dark;
}

.rr-music:focus {
	outline: none;
}

.rr-music:focus-visible {
	outline: none;
	box-shadow: 0 0 12px var(--rr-glow-soft);
}

.rr-music__kicker,
.rr-music__section {
	margin: 0;
	color: var(--rr-g);
	font-family: var(--rr-font-chrome);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.rr-music h1 {
	margin: 2px 0 0;
	color: var(--rr-ticker-ink);
	font-family: var(--rr-font-chrome);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 0.22em;
	line-height: 1.1;
	text-transform: uppercase;
	text-shadow: 0 0 18px var(--rr-glow-soft);
}

.rr-music__lede,
.rr-music__count {
	margin: 4px 0 0;
	color: var(--rr-ticker-ink);
	font-size: 12px;
	line-height: 1.35;
}

.rr-music__count {
	color: var(--rr-footer-muted);
	letter-spacing: 0.04em;
}

.rr-music__section {
	margin: 8px 0 4px;
}

.rr-music__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rr-music__tile {
	position: relative;
	min-width: 0;
}

.rr-music__hit {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1;
	overflow: hidden;
	padding: 0;
	border: 0;
	background: var(--rr-ticker-bg);
	color: inherit;
	font: inherit;
	font-family: var(--rr-font-chrome);
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: filter 160ms linear, box-shadow 160ms linear;
}

.rr-music__cover,
.rr-music__fallback {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--rr-ticker-bg);
}

.rr-music__caption {
	position: absolute;
	z-index: 1;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 16px 6px 5px;
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.82));
	pointer-events: none;
}

.rr-music__name,
.rr-music__artist,
.rr-music time,
.rr-music__listen {
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.rr-music__name {
	color: var(--rr-ticker-ink);
	font-size: 11px;
	line-height: 1.25;
	letter-spacing: 0.01em;
}

.rr-music__artist,
.rr-music time {
	color: var(--rr-g);
	font-size: 9px;
	line-height: 1.3;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.rr-music time {
	color: var(--rr-footer-muted);
	letter-spacing: 0.02em;
	text-transform: none;
}

.rr-music__listen {
	margin-top: 2px;
	color: var(--rr-ticker-ink);
	font-size: 9px;
	letter-spacing: 0.03em;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.rr-music__page {
	position: absolute;
	z-index: 2;
	top: 4px;
	left: 6px;
	max-width: calc(100% - 12px);
	overflow: hidden;
	color: var(--rr-ticker-ink);
	font-family: var(--rr-font-chrome);
	font-size: 9px;
	line-height: 1.2;
	letter-spacing: 0.03em;
	white-space: nowrap;
	text-overflow: ellipsis;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-shadow: 0 1px 2px #000;
}

.rr-music__tile:hover .rr-music__hit,
.rr-music__tile:focus-within .rr-music__hit,
.rr-music__tile.is-on .rr-music__hit {
	filter: brightness(1.12);
	box-shadow: 0 0 12px var(--rr-glow-soft);
}

.rr-music__page:hover,
.rr-music__page:focus-visible,
.rr-dock__jump:hover,
.rr-dock__jump:focus-visible {
	color: var(--rr-g);
	text-shadow: 0 0 8px var(--rr-glow-soft);
}

.rr-music__empty {
	margin: 16px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--rr-line);
}

.rr-music__empty a {
	color: var(--rr-g);
}

.rr-dock {
	position: fixed;
	z-index: 40;
	left: 0;
	right: 0;
	bottom: 0;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	max-width: 100%;
	padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
	background: var(--rr-ticker-bg);
	border-top: 1px solid var(--rr-line);
	color: var(--rr-ticker-ink);
	font-family: var(--rr-font-chrome);
}

.rr-dock audio {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
}

.rr-dock__top {
	display: flex;
	flex: 1 1 180px;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.rr-dock__now {
	display: flex;
	gap: 8px;
	align-items: baseline;
	min-width: 0;
	margin: 0;
}

.rr-dock__kicker {
	flex: 0 0 auto;
	color: var(--rr-g);
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.rr-dock__name {
	min-width: 0;
	overflow: hidden;
	font-size: 13px;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.rr-dock__jump {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	min-height: 44px;
	color: var(--rr-g);
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rr-dock__jump[hidden],
.rr-dock__embed[hidden],
.rr-dock__controls[hidden] {
	display: none;
}

.rr-dock__controls {
	display: flex;
	flex: 1 1 240px;
	align-items: center;
	gap: 8px;
	min-width: 0;
	min-height: 44px;
}

.rr-dock__embed {
	flex: 1 1 100%;
	min-width: 0;
}

.rr-dock__embed iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 152px;
	border: 0;
	background: var(--rr-ticker-bg);
}

.rr-player__play {
	display: grid;
	flex: 0 0 44px;
	place-items: center;
	width: 44px;
	height: 44px;
	min-height: 44px;
	padding: 0;
	color: var(--rr-g);
	background: transparent;
	border: 1px solid var(--rr-line);
	cursor: pointer;
}

.rr-player__play svg {
	display: block;
	width: 12px;
	height: 12px;
}

.rr-player__pause {
	display: none;
}

.rr-player__play.is-on .rr-player__glyph {
	display: none;
}

.rr-player__play.is-on .rr-player__pause {
	display: block;
}

.rr-player__play:hover,
.rr-player__play:focus-visible {
	color: var(--rr-bg);
	background: var(--rr-g);
	box-shadow: 0 0 12px var(--rr-glow-soft);
}

.rr-player__bar {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	margin: 0;
	accent-color: var(--rr-g);
	background: transparent;
	cursor: pointer;
	appearance: none;
}

.rr-player__bar::-webkit-slider-runnable-track {
	height: 2px;
	background: var(--rr-line);
	border: 0;
}

.rr-player__bar::-webkit-slider-thumb {
	width: 10px;
	height: 10px;
	margin-top: -4px;
	background: var(--rr-g);
	border: 0;
	appearance: none;
}

.rr-player__bar::-moz-range-track {
	height: 2px;
	background: var(--rr-line);
	border: 0;
}

.rr-player__bar::-moz-range-thumb {
	width: 10px;
	height: 10px;
	background: var(--rr-g);
	border: 0;
}

.rr-player__bar:focus-visible {
	outline: none;
	box-shadow: 0 0 8px var(--rr-glow-soft);
}

.rr-player__time {
	flex: 0 0 auto;
	min-width: 6.5em;
	color: var(--rr-footer-muted);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
	text-align: right;
}

body:has(.rr-dock.is-embed) .rr-music {
	padding-bottom: calc(230px + env(safe-area-inset-bottom));
}

html.rr-halloween .rr-music,
html.rr-halloween .rr-music h1,
html.rr-halloween .rr-music__name,
html.rr-halloween .rr-dock,
html.rr-halloween .rr-dock__name {
	color: var(--rr-hallow-bone);
}

html.rr-halloween .rr-music__kicker,
html.rr-halloween .rr-music__section,
html.rr-halloween .rr-music__artist,
html.rr-halloween .rr-music__page,
html.rr-halloween .rr-dock__kicker,
html.rr-halloween .rr-dock__jump,
html.rr-halloween .rr-player__play {
	color: var(--rr-hallow-ember);
}

html.rr-halloween .rr-music time {
	color: var(--rr-hallow-ash);
}

html.rr-halloween .rr-music__tile:hover .rr-music__hit,
html.rr-halloween .rr-music__tile:focus-within .rr-music__hit,
html.rr-halloween .rr-music__tile.is-on .rr-music__hit {
	box-shadow: 0 0 14px var(--rr-hallow-ember);
}

html.rr-halloween .rr-music__page:hover,
html.rr-halloween .rr-music__page:focus-visible,
html.rr-halloween .rr-dock__jump:hover,
html.rr-halloween .rr-dock__jump:focus-visible {
	color: var(--rr-hallow-ember);
	text-shadow: 0 0 8px var(--rr-hallow-ember);
}

html.rr-halloween .rr-player__play:hover,
html.rr-halloween .rr-player__play:focus-visible {
	color: var(--rr-hallow-night);
	background: var(--rr-hallow-ember);
	box-shadow: 0 0 12px var(--rr-hallow-ember);
}

html.rr-halloween .rr-player__bar {
	accent-color: var(--rr-hallow-ember);
}

html.rr-halloween .rr-player__bar::-webkit-slider-thumb,
html.rr-halloween .rr-player__bar::-moz-range-thumb {
	background: var(--rr-hallow-ember);
}

@media (max-width: 1100px) {
	.rr-music {
		width: min(100%, 720px);
	}

	.rr-music__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 800px) {
	.rr-music {
		width: min(100%, 100%);
	}

	.rr-music__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.rr-music h1 {
		font-size: 16px;
		letter-spacing: 0.16em;
	}

	.rr-music__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rr-player__time {
		min-width: 5.6em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rr-music,
	.rr-music *,
	.rr-dock,
	.rr-dock * {
		animation: none;
		transition: none;
		scroll-behavior: auto;
	}
}
