.waveform-player{--waveform-play: var(--color-text);--waveform-play-dark: var(--color-text);--waveform-play-soft: color-mix(in srgb, var(--color-text) 12%, transparent);display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--spacing-4);width:100%;padding:var(--spacing-4);border:1px solid var(--color-border-subtle);border-radius:0;background:var(--color-bg);box-shadow:none}.waveform-player:not(:has(.waveform-player__artwork)){grid-template-columns:1fr}.waveform-player__artwork{position:relative;align-self:start;aspect-ratio:1;width:100%;max-width:180px;overflow:hidden;border-radius:0;background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-border-subtle)}.waveform-player__artwork:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.32));pointer-events:none}.waveform-player__artwork img{width:100%;height:100%;object-fit:cover;display:block}.waveform-player__main{min-width:0;display:flex;flex-direction:column;gap:var(--spacing-3)}.waveform-player__header{display:flex;align-items:center;gap:var(--spacing-3);min-width:0}.waveform-player__button{width:42px;height:42px;flex:0 0 42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-text);border-radius:0;background:var(--color-text);color:var(--color-bg);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.waveform-player__button:hover:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);transform:translateY(-1px)}.waveform-player__button:active:not(:disabled){transform:translateY(0)}.waveform-player[data-playing=true] .waveform-player__button{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.waveform-player__artwork .waveform-player__button{position:absolute;left:50%;top:50%;z-index:2;width:52px;height:52px;border:0;background:color-mix(in srgb,var(--color-text) 72%,transparent);box-shadow:none;transform:translate(-50%,-50%)}.waveform-player[data-playing=true] .waveform-player__artwork .waveform-player__button{background:color-mix(in srgb,var(--color-accent) 78%,transparent)}.waveform-player__artwork .waveform-player__button:hover:not(:disabled),.waveform-player__artwork .waveform-player__button:active:not(:disabled){transform:translate(-50%,-50%)}.waveform-player__artwork .waveform-player__icon{transform:none}@media(hover:hover){.waveform-player__artwork .waveform-player__button{opacity:.18;transition:opacity var(--transition-base),background var(--transition-fast)}.waveform-player__artwork:hover .waveform-player__button,.waveform-player__artwork .waveform-player__button:focus-visible,.waveform-player[data-playing=true] .waveform-player__artwork .waveform-player__button{opacity:1}}.waveform-player__button:focus-visible,.waveform-player__waveform-shell:focus-visible,.waveform-player__range:focus-visible,.waveform-player__volume-mute:focus-visible,.waveform-player__volume-range:focus-visible,.waveform-player__download:focus-visible,.waveform-player__like:focus-visible,.waveform-player__marker:focus-visible,.waveform-player__tracklist-toggle:focus-visible,.waveform-player__tracklist-link:focus-visible{outline:3px solid var(--color-accent-ring);outline-offset:3px}.waveform-player__button:disabled{cursor:not-allowed;opacity:.6;filter:grayscale(.3)}.waveform-player__icon,.waveform-player__icon svg{display:block;width:18px;height:18px}.waveform-player__icon{transform:translate(1px)}.waveform-player[data-playing=true] .waveform-player__icon{transform:none}.waveform-player__copy{min-width:0;flex:1 1 auto}.waveform-player__title{margin:0;font-size:var(--font-size-lg);font-weight:700;line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.waveform-player__title a{color:inherit;text-decoration:none}.waveform-player__title a:hover,.waveform-player__title a:focus-visible{color:var(--color-accent);text-decoration:underline;text-underline-offset:3px}.waveform-player__meta,.waveform-player__description,.waveform-player__status,.waveform-player__error{margin:0;font-size:var(--font-size-sm);line-height:var(--leading-snug)}.waveform-player__date{flex:0 0 auto;margin:0;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;line-height:1;color:var(--color-muted);white-space:nowrap}.waveform-player__volume{position:relative;flex:0 0 auto;display:inline-flex;align-items:center}.waveform-player__volume-mute{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 var(--spacing-2);border:1px solid var(--color-border-subtle);border-radius:0;background:color-mix(in srgb,var(--color-surface) 72%,transparent);color:var(--color-text-secondary);font-size:16px;line-height:1;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.waveform-player__volume-mute:hover,.waveform-player__volume-mute[aria-expanded=true],.waveform-player__volume-mute[aria-pressed=true]{border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));background:color-mix(in srgb,var(--waveform-play) 10%,transparent);color:var(--waveform-play-dark)}.waveform-player__volume-mute:hover{transform:translateY(-1px)}.waveform-player__volume-controls{position:absolute;top:calc(100% + 6px);right:0;z-index:12;display:inline-flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);border:1px solid var(--color-border-subtle);background:var(--color-bg);box-shadow:0 10px 24px color-mix(in srgb,var(--color-text) 14%,transparent)}.waveform-player__volume-mute--toggle{min-width:36px}.waveform-player__volume-slider-label{display:inline-flex;align-items:center}.waveform-player__volume-range{width:clamp(86px,10vw,128px);height:4px;appearance:none;border-radius:0;background:linear-gradient(90deg,var(--waveform-play) 0 var(--waveform-volume, 100%),var(--color-border) var(--waveform-volume, 100%) 100%);cursor:pointer}.waveform-player__volume-range::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:0;background:var(--waveform-play);box-shadow:none}.waveform-player__volume-range::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:0;background:var(--waveform-play);box-shadow:none}.waveform-player__volume-value{min-width:42px;font-family:var(--font-mono);font-size:10px;font-weight:800;line-height:1;color:var(--color-muted);text-align:right;text-transform:uppercase;white-space:nowrap}.waveform-player__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.waveform-player__meta,.waveform-player__status{color:var(--color-muted)}.waveform-player__description{color:var(--color-text-secondary);line-height:var(--leading-relaxed);white-space:pre-wrap}.waveform-player__keywords{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin:0;padding:0;list-style:none}.waveform-player__keyword{padding:var(--tag-padding-y, 2px) var(--spacing-2);border:1px solid var(--color-border-subtle);border-radius:0;background:color-mix(in srgb,var(--color-text) 5%,transparent);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700;letter-spacing:var(--tracking-wide);text-transform:lowercase}.waveform-player__wave-row{min-width:0}.waveform-player__waveform-shell{position:relative;min-height:96px;overflow:hidden;border-radius:0;background:color-mix(in srgb,var(--color-text) 4%,var(--color-bg));cursor:pointer;isolation:isolate}.waveform-player__waveform{position:relative;z-index:1;min-height:96px}.waveform-player__marker{position:absolute;left:var(--marker-left, 0%);top:10px;z-index:3;width:20px;height:76px;padding:0;border:0;background:transparent;color:var(--waveform-play-dark);cursor:pointer;transform:translate(-50%)}.waveform-player__marker:before{content:"";position:absolute;left:50%;top:6px;bottom:13px;width:1px;border-radius:0;background:var(--waveform-play);opacity:.55;transform:translate(-50%)}.waveform-player__marker-dot{position:absolute;left:50%;bottom:0;width:10px;height:10px;border:1px solid var(--color-bg);border-radius:0;background:var(--waveform-play);box-shadow:none;transform:translate(-50%);transition:transform var(--transition-fast),background var(--transition-fast)}.waveform-player__marker:hover .waveform-player__marker-dot,.waveform-player__marker:focus-visible .waveform-player__marker-dot{background:var(--color-accent);transform:translate(-50%) scale(1.2)}.waveform-player__marker-tooltip{position:absolute;left:50%;bottom:22px;display:flex;align-items:center;gap:.4rem;max-width:min(260px,70vw);padding:6px 8px;border:1px solid var(--color-text);border-radius:0;background:var(--color-text);color:var(--color-bg);font-size:var(--font-size-xs);font-weight:700;line-height:var(--leading-snug);text-align:left;white-space:nowrap;box-shadow:none;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.waveform-player__marker-tooltip:after{content:"";position:absolute;left:50%;top:100%;border:5px solid transparent;border-top-color:var(--color-text);transform:translate(-50%)}.waveform-player__marker-time{color:color-mix(in srgb,var(--color-bg) 68%,var(--color-text));font-variant-numeric:tabular-nums}.waveform-player__marker:hover .waveform-player__marker-tooltip,.waveform-player__marker:focus-visible .waveform-player__marker-tooltip{opacity:1;transform:translate(-50%)}.waveform-player__hover{position:absolute;left:0;top:0;z-index:4;pointer-events:none;height:100%;width:var(--waveform-hover-x, 0px);mix-blend-mode:overlay;background:#ffffff80;opacity:0;transition:opacity var(--transition-base)}.waveform-player__waveform-shell[data-hovering=true] .waveform-player__hover{opacity:1}.waveform-player__time,.waveform-player__loading{position:absolute;z-index:4;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;line-height:1;font-variant-numeric:tabular-nums;background:var(--color-text);padding:3px 5px;border-radius:0;color:var(--color-bg);pointer-events:none}.waveform-player__time--current{left:0}.waveform-player__time--duration{right:0}.waveform-player__loading{left:50%;transform:translate(-50%,-50%);white-space:nowrap}.waveform-player__tracklist{border:1px solid var(--color-border-subtle);border-radius:0;background:color-mix(in srgb,var(--color-surface) 58%,transparent);overflow:hidden}.waveform-player__tracklist-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);padding:var(--spacing-3);border:0;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:800;text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.waveform-player__tracklist-toggle:hover{background:color-mix(in srgb,var(--color-accent) 7%,transparent);color:var(--color-accent)}.waveform-player__tracklist-toggle:before{content:"▸";color:var(--waveform-play);font-size:.85rem;transition:transform var(--transition-fast)}.waveform-player__tracklist-toggle[aria-expanded=true]:before{transform:rotate(90deg)}.waveform-player__tracklist-toggle-copy{display:inline-flex;align-items:center;gap:var(--spacing-3);min-width:0}.waveform-player__tracklist-current{display:inline-flex;align-items:center;gap:var(--spacing-2);min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700}.waveform-player__tracklist-current-label{color:var(--color-muted);font-size:10px;letter-spacing:var(--tracking-wide);text-transform:uppercase}.waveform-player__tracklist-current-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.waveform-player__tracklist-count{margin-left:auto;color:var(--color-muted);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.waveform-player__tracklist-items{display:flex;flex-direction:column;margin:0;padding:0;border-top:1px solid var(--color-border-subtle);list-style:none}.waveform-player__tracklist-item{margin:0}.waveform-player__tracklist-item+.waveform-player__tracklist-item{border-top:1px solid color-mix(in srgb,var(--color-border-subtle) 68%,transparent)}.waveform-player__tracklist-link{position:relative;width:100%;display:grid;grid-template-columns:2ch auto minmax(0,1fr);align-items:baseline;gap:var(--spacing-3);padding:.65rem var(--spacing-3);border:0;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.waveform-player__tracklist-link:hover,.waveform-player__tracklist-link[aria-current=true]{color:var(--color-text)}.waveform-player__tracklist-link[aria-current=true]:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--color-accent)}.waveform-player__tracklist-link[aria-current=true] .waveform-player__tracklist-title{color:var(--waveform-play-dark)}.waveform-player__tracklist-index{font-family:var(--font-mono);font-size:10px;color:var(--color-muted)}.waveform-player__tracklist-time{padding:2px 5px;border-radius:3px;background:var(--color-text);color:var(--color-bg);font-size:11px;font-variant-numeric:tabular-nums;font-weight:700}.waveform-player__tracklist-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.waveform-player__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2) var(--spacing-3);padding-top:var(--spacing-2);border-top:1px solid var(--color-border-subtle);flex-wrap:wrap}.waveform-player__utility-meta{display:inline-flex;align-items:center;gap:var(--spacing-2);color:var(--color-muted);font-size:var(--font-size-xs)}.waveform-player__utility-meta>*+*:before{content:"·";margin-right:var(--spacing-2);color:var(--color-border)}.waveform-player__footer-status{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:wrap}.waveform-player__actions{display:inline-flex;align-items:center;gap:var(--spacing-2);flex-wrap:wrap}.waveform-player__stat,.waveform-player__like,.waveform-player__download{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.waveform-player__stat svg,.waveform-player__like svg,.waveform-player__download svg{width:16px;height:16px}.waveform-player__like{min-height:28px;padding:0 var(--spacing-2);border:1px solid var(--color-border-subtle);border-radius:0;background:color-mix(in srgb,var(--color-surface) 72%,transparent);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700;line-height:1;font-family:inherit;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.waveform-player__like:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));color:var(--color-accent);transform:translateY(-1px)}.waveform-player__like[aria-pressed=true]{border-color:color-mix(in srgb,var(--waveform-play) 44%,var(--color-border));background:color-mix(in srgb,var(--waveform-play) 12%,transparent);color:var(--waveform-play-dark)}.waveform-player__like:disabled{cursor:progress;opacity:.72}.waveform-player__error{color:var(--waveform-play-dark)}.waveform-player__download{min-height:28px;padding:0 var(--spacing-2);border:1px solid var(--color-border-subtle);border-radius:0;background:color-mix(in srgb,var(--color-surface) 72%,transparent);font-size:var(--font-size-sm);font-weight:700;line-height:1;color:var(--color-text-secondary);text-decoration:none}.waveform-player__download:hover{border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));color:var(--color-accent)}@media(max-width:640px){.waveform-player{grid-template-columns:1fr;gap:var(--spacing-4)}.waveform-player__artwork{width:100%;max-width:none;aspect-ratio:16 / 9}.waveform-player__header{align-items:flex-start;flex-wrap:wrap}.waveform-player__copy{flex-basis:calc(100% - 56px)}.waveform-player__volume-controls{left:0;right:auto;min-width:0}.waveform-player__volume-range{width:min(150px,42vw)}.waveform-player__volume-value{min-width:46px;text-align:left}.waveform-player__tracklist-toggle-copy,.waveform-player__tracklist-current{align-items:flex-start;flex-direction:column;gap:var(--spacing-1)}.waveform-player__footer{align-items:flex-start;flex-direction:column}.waveform-player__actions{width:100%}}
