.music-player{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));z-index:45}
.music-toggle{position:relative;display:grid;place-items:center;width:56px;height:56px;padding:5px;border:1px solid #f7f1e7;border-radius:50%;color:#eee7d8;background:#365347;box-shadow:0 4px 18px #263e352b;cursor:pointer;touch-action:manipulation;transition:background .2s,box-shadow .2s,transform .2s}
.music-toggle:hover{background:#2d473d;box-shadow:0 6px 22px #263e3540}
.music-toggle:active{transform:scale(.94)}
.music-toggle:focus-visible{outline:2px solid var(--accent-ink,#93462f);outline-offset:4px}
.music-disc{display:block;width:44px;height:44px;animation:music-turn 12s linear infinite;animation-play-state:paused;transform-origin:center}
.music-player[data-state=playing] .music-disc{animation-play-state:running}
.music-indicator{position:absolute;right:0;bottom:0;display:grid;place-items:center;width:18px;height:18px;border:2px solid var(--paper,#e8e3d9);border-radius:50%;background:#ab573d;color:#fff8e9;pointer-events:none}
.music-indicator svg{width:9px;height:9px}
.music-indicator .music-pause-icon{display:none}
.music-player[data-state=playing] .music-play-icon{display:none}
.music-player[data-state=playing] .music-pause-icon{display:block}
.music-player[data-state=playing] .music-indicator{background:#587752}
.music-player[data-state=error] .music-indicator{background:#93462f}
.music-credit{max-width:100%;font-size:10px;line-height:1.8;color:var(--muted,#58665d)}
html.has-music footer{padding-bottom:calc(94px + env(safe-area-inset-bottom))}
@keyframes music-turn{to{transform:rotate(360deg)}}
@media(max-width:640px){.music-player{right:max(15px,env(safe-area-inset-right));bottom:calc(15px + env(safe-area-inset-bottom))}.music-toggle{width:48px;height:48px;padding:4px}.music-disc{width:38px;height:38px}.music-indicator{width:16px;height:16px}}
@media(prefers-reduced-motion:reduce){.music-disc{animation:none}.music-toggle{transition:none}}
html[data-motion=off] .music-disc{animation-play-state:paused}
