/* Explicit range styling avoids browser/Windows native slider appearances. */
.music-player input[type="range"] {
  -webkit-appearance:none;appearance:none;background:transparent;border:0;padding:0;
  height:20px;min-width:0;border-radius:0;--range-fill:0%;
  --range-track:var(--ms-line,#d9cfe7);--range-accent:var(--ms-accent,#8856ed);
}
.music-player input[type="range"]:focus-visible {outline:2px solid var(--range-accent);outline-offset:4px;border-radius:8px}
.music-player input[type="range"]::-webkit-slider-runnable-track {
  height:4px;border-radius:99px;background:linear-gradient(to right,var(--range-accent) 0%,var(--range-accent) var(--range-fill),var(--range-track) var(--range-fill),var(--range-track) 100%);
}
.music-player input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:-5px;border:0;
  border-radius:50%;background:var(--range-accent);box-shadow:0 0 0 3px transparent;
}
/* Keep engine-specific selectors separate so unsupported ones do not discard both. */
.music-player input[type="range"]::-moz-range-track {height:4px;border:0;border-radius:99px;background:var(--range-track)}
.music-player input[type="range"]::-moz-range-progress {height:4px;border-radius:99px;background:var(--range-accent)}
.music-player input[type="range"]::-moz-range-thumb {width:14px;height:14px;border:0;border-radius:50%;background:var(--range-accent)}
.music-player input[type="range"]:disabled {--range-accent:var(--ms-sub,#9687a6);opacity:.55;cursor:default}
.music-player__status {display:block;font-size:9px;line-height:1.4;color:var(--ms-accent);margin-top:4px;letter-spacing:.04em}
.music-player__status[hidden] {display:none}
.music-player__transport .music-player__play {display:grid;place-items:center;padding:0;line-height:1;flex:none}
.music-player__play svg,.music-track__start svg {display:block;width:16px;height:16px;fill:currentColor;pointer-events:none}
.music-track__actions .music-track__start{padding:0;line-height:1}
.music-track__start.is-loading{position:relative;color:transparent!important}
.music-track__start.is-loading::after{content:"";position:absolute;width:16px;height:16px;left:50%;top:50%;margin:-8px 0 0 -8px;border:2px solid #ffffff50;border-top-color:#fff;border-radius:50%;animation:feedbackSpin .8s linear infinite}
.music-player.is-loading .music-player__play {position:relative;color:transparent!important}
.music-player.is-loading .music-player__play::after {content:"";position:absolute;inset:10px;border:2px solid #ffffff50;border-top-color:var(--ms-surface);border-radius:50%;animation:feedbackSpin .8s linear infinite}
#musicSearchButton.is-loading {display:inline-flex;gap:9px;align-items:center}
#musicSearchButton.is-loading::before {content:"";width:13px;height:13px;border:2px solid #ffffff50;border-top-color:#fff;border-radius:50%;animation:feedbackSpin .8s linear infinite}
.site-notifications {position:fixed;top:calc(var(--header-h,92px) + 16px);right:24px;z-index:260;display:grid;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}
.site-notice {display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--site-divider,#e0d7ed);border-radius:17px;background:var(--site-surface,#fff);color:var(--site-ink,#21192c);box-shadow:0 12px 38px #180e3324;pointer-events:auto;animation:noticeEnter .22s ease-out both}
.site-notice__icon {display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:10px;background:#8856ed22;color:var(--violet,#8856ed);font-weight:800;font-size:15px}
.site-notice--success .site-notice__icon {background:#24885920;color:#238c62}
.site-notice--error .site-notice__icon {background:#ce4d6820;color:#da5874}
.site-notice__content {min-width:0;flex:1}
.site-notice__content strong {font:800 12px/1.4 Manrope,sans-serif}
.site-notice__content p {font:500 12px/1.65 "DM Sans",sans-serif;margin:4px 0 0;overflow-wrap:anywhere;color:var(--site-ink-subtle,#625b70)}
.site-notice__close {display:grid;place-items:center;flex:none;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--site-ink-subtle,#625b70);font-size:22px;line-height:1;cursor:pointer}
.site-notice__close:hover,.site-notice__close:focus-visible {background:#8856ed20;color:var(--violet)}
.site-loading {position:fixed;z-index:250;top:calc(var(--header-h,92px) + 12px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:11px 16px;border:1px solid var(--surface-border,#e0d7ed);border-radius:999px;background:var(--site-surface,#fff);color:var(--site-ink,#21192c);box-shadow:0 8px 25px #180e331c;font:700 11px/1.4 Manrope,sans-serif;pointer-events:none}
.site-loading[hidden] {display:none}
.feedback-spinner {display:block;flex:none;width:16px;height:16px;border:2px solid #8856ed30;border-top-color:var(--violet,#8856ed);border-radius:50%;animation:feedbackSpin .8s linear infinite}
html.site-is-loading::before {content:"";position:fixed;inset:0 auto auto 0;z-index:270;width:35%;height:3px;background:var(--violet,#8856ed);animation:feedbackProgress 1.5s ease-in-out infinite}
@keyframes feedbackSpin {to{transform:rotate(360deg)}}
@keyframes feedbackProgress {from{transform:translateX(-110%)}to{transform:translateX(390%)}}
@keyframes noticeEnter {from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(max-width:720px){.site-notifications{right:16px;top:calc(var(--header-h,68px) + 10px)}.site-loading{top:auto;bottom:calc(var(--dream-player-offset,0px) + 68px);font-size:10px}.site-notice{padding:13px}}
@media(min-width:721px) and (max-width:960px){.site-loading{top:auto;bottom:calc(var(--dream-player-offset,0px) + 68px)}}
/* Loading is functional feedback. Global reduced-motion rules must not collapse
   its rotation to one .001ms iteration while a request is still pending. */
.feedback-spinner,
.music-player.is-loading .music-player__play::after,
.music-track__start.is-loading::after,
#musicSearchButton.is-loading::before {
  animation:feedbackSpin .8s linear infinite!important;
  animation-play-state:running!important;
}
@media(prefers-reduced-motion:reduce){
  .site-notice{animation:none}
  .feedback-spinner,.music-player.is-loading .music-player__play::after,.music-track__start.is-loading::after,#musicSearchButton.is-loading::before{animation-duration:1.6s!important}
  html.site-is-loading::before{animation:none;width:100%}
}
html[data-motion="reduced"] .site-notice{animation:none}
html[data-motion="reduced"].site-is-loading::before{animation:none;width:100%}
