/* Physical record and independent tonearm; outer wrapper owns arrival only. */
.coast-music{--disc:104px;position:fixed;left:0;bottom:max(20px,env(safe-area-inset-bottom));z-index:var(--layer-chrome);width:calc(var(--disc)/2);height:var(--disc);color:var(--ink);pointer-events:auto}
.coast-music--off{opacity:0;visibility:hidden;pointer-events:none}
.coast-music--off.coast-music--on{opacity:1;visibility:visible;pointer-events:auto}
.record-toggle{position:absolute;left:calc(var(--disc)/-2);top:0;width:var(--disc);height:var(--disc);padding:0;border:0;border-radius:50%;background:none}
.record-disc{position:relative;display:block;width:100%;height:100%;animation:coast-record-turn 8s linear infinite;animation-play-state:paused;filter:drop-shadow(1px 3px 3px #001b2b55)}
.record-art{display:block;width:100%;height:100%;object-fit:contain}
.record-disc .record-label{position:absolute;width:28%;height:28%;left:36%;top:36%;border-radius:50%;object-fit:cover}
.record-tonearm{transform-origin:76% 24%;position:absolute;left:4px;top:-10px;width:52px;height:86px;object-fit:contain;pointer-events:none;filter:drop-shadow(1px 2px 1px #001b2b55)}
.record-toggle:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.music-panel{position:absolute;left:16px;bottom:calc(var(--disc) + 14px);display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:16px;width:min(310px,calc(100vw - 32px));padding:22px;color:var(--ink);isolation:isolate}
.music-panel::before{content:'';position:absolute;inset:0;z-index:-1;background:url('assets/instructors/ivory-sheet.webp') center/100% 100% no-repeat;filter:drop-shadow(0 2px 2px #001b2b33)}
.music-song{display:block;font:700 .8125rem/1.6 var(--font-body);overflow-wrap:anywhere}
.music-info{min-width:0}
.music-artist{display:block;margin:3px 0 8px;font-size:.625rem;line-height:1.6}
.music-cover{display:block;width:76px;height:76px;object-fit:cover;box-shadow:0 1px 2px #001b2b33}
.music-actions{display:flex;align-items:center;gap:8px;margin-top:8px}
.music-play,.music-full{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #073b4b30;background:none;color:var(--ink);text-decoration:none;font:400 .625rem/1.5 var(--font-body)}
.music-play{flex:none;width:44px;padding:0;border-radius:50%;background:var(--ink);color:var(--paper)}
.music-full{gap:7px;padding:0 10px;border-radius:var(--radius-pill)}
.music-actions svg{display:block;width:20px;height:20px;flex:none}
.music-play .music-pause-icon,.music-play[data-sound-enabled] .music-play-icon{display:none}
.music-play[data-sound-enabled] .music-pause-icon{display:block}
.music-play:focus-visible,.music-full:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.music-full:hover{background:#073b4b10}
.music-rhythm{display:flex;align-items:center;justify-content:space-between;gap:3px;height:18px;color:var(--ink)}
.music-rhythm i{width:3px;height:18px;background:currentColor;transform:scaleY(.2);animation:coast-rhythm .85s ease-in-out infinite alternate;animation-play-state:paused}
.music-rhythm i:nth-child(3n){animation-delay:-.6s;animation-duration:.66s}
.music-rhythm i:nth-child(3n + 1){animation-delay:-.3s;animation-duration:1.1s}
.music-rhythm i:nth-child(even){height:12px;animation-delay:-.45s}
.coast-music[data-playing][data-expanded]:not([data-page-hidden]) .music-rhythm i{animation-play-state:running}
@keyframes coast-rhythm{from{transform:scaleY(.2)}to{transform:scaleY(1)}}
.music-engine{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none}
.music-engine iframe{border:0}
.coast-music[data-playing] .record-disc{animation-play-state:running}
.coast-music[data-page-hidden] .record-disc{animation-play-state:paused}
@keyframes coast-record-turn{to{transform:rotate(360deg)}}
@media(max-width:760px){.coast-music{--disc:88px;bottom:max(12px,env(safe-area-inset-bottom))}.record-tonearm{width:45px;height:74px;top:-8px;left:2px}}
@media(prefers-reduced-motion:reduce){.record-disc,.music-rhythm i{animation:none}}
