.bjf-project-audio { width: 100%; margin: 1.5rem 0; }
.bjf-project-audio__title { margin: 0 0 .65rem; }
.bjf-audio-player { --bjf-audio-progress: 0%; display: grid; grid-template-columns: clamp(96px, 22vw, 190px) minmax(0, 1fr); align-items: stretch; width: 100%; color: #fff; }
.bjf-audio-player audio,
.bjf-radio-thumb-audio { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.bjf-audio-player__cover { display: grid; width: 100%; aspect-ratio: 1 / 1; padding: 0; place-items: center; border: 0; color: #090909; background: var(--bjf-audio-color, #15a7fa); cursor: pointer; }
.bjf-audio-player__cover svg { display: block; width: clamp(24px, 4vw, 42px); height: clamp(24px, 4vw, 42px); fill: currentColor; }
.bjf-audio-player__cover.is-playing svg { width: clamp(20px, 3.5vw, 36px); height: clamp(20px, 3.5vw, 36px); }
.bjf-audio-player__wave-panel { position: relative; display: flex; min-width: 0; flex-direction: column; justify-content: center; gap: 13px; padding: clamp(12px, 2vw, 24px); overflow: hidden; background: #111; }
.bjf-audio-player__waveform { position: relative; display: flex; height: clamp(44px, 7vw, 84px); align-items: center; justify-content: space-between; gap: 1px; }
.bjf-audio-player__waveform span { display: block; flex: 1 1 1px; min-width: 1px; height: 100%; max-height: 100%; border-radius: 0; background: #a5a5a5; opacity: .9; transform: scaleY(var(--wave-level, .12)); transform-origin: center; transition: transform 55ms linear, opacity 120ms ease, background-color 120ms ease; }
.bjf-audio-player__waveform span.is-played { opacity: 1; background: var(--bjf-audio-color, #15a7fa); }
.bjf-audio-player__seek { position: absolute; inset: 0 0 24px; width: 100%; height: calc(100% - 24px); margin: 0; opacity: 0; cursor: pointer; }
.bjf-audio-player__times { display: flex; justify-content: space-between; color: rgba(255,255,255,.68); font-size: 11px; font-variant-numeric: tabular-nums; }
.bjf-audio-player__cover:focus-visible,
.bjf-audio-player__seek:focus-visible { outline: 2px solid var(--bjf-audio-color, #15a7fa); outline-offset: 2px; }

.archive-project[data-tags~="radio"] { position: relative; }
.archive-grid.is-radio-filter { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.archive-grid.is-radio-filter .archive-project[data-bjf-radio-ready="1"] figure { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--bjf-radio-color, #15a7fa); }
.archive-grid.is-radio-filter .archive-project[data-bjf-radio-ready="1"] figure > img,
.archive-grid.is-radio-filter .archive-project[data-bjf-radio-ready="1"] .archive-trailer-play { display: none !important; }
.archive-grid:not(.is-radio-filter) .bjf-radio-play { display: none; }
.bjf-radio-play { position: absolute; z-index: 6; top: 50%; left: 50%; display: grid; width: 58px; height: 58px; padding: 0; place-items: center; border: 1px solid rgba(0,0,0,.65); border-radius: 50%; color: #090909; background: var(--bjf-radio-color, #15a7fa); cursor: pointer; transform: translate(-50%,-50%); transition: transform .2s ease, filter .2s ease; }
.bjf-radio-play:hover { filter: brightness(1.08); transform: translate(-50%,-50%) scale(1.06); }
.bjf-radio-play svg { display: block; width: 22px; height: 22px; fill: currentColor; }
.bjf-radio-play.is-playing svg { width: 18px; height: 18px; }
.bjf-radio-play:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

@media (max-width: 1024px) {
	.archive-grid.is-radio-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
	.bjf-audio-player { grid-template-columns: clamp(88px, 27vw, 120px) minmax(0, 1fr); }
	.bjf-audio-player__wave-panel { gap: 8px; padding: 10px; }
	.bjf-audio-player__waveform { gap: .5px; height: 40px; }
	.bjf-radio-play { width: 48px; height: 48px; }
}
