/* Persistent cutout and a current-track card revealed on hover or focus. */
.discman-nav{display:flex;gap:5px;align-items:center;border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:7px 0}.discman-nav img{width:35px;height:35px;object-fit:contain;transform:rotate(-8deg)}
.discman-invitation{display:flex;align-items:center;gap:12px;margin-top:24px;max-width:290px;border:0;background:none;text-align:left;color:#292722;cursor:pointer;padding:0;font:inherit}.discman-invitation img{width:118px;height:118px;object-fit:contain;transform:rotate(-9deg)}.discman-invitation strong{display:block;font:500 15px/1.3 var(--sans)}.discman-invitation small{display:block;font-size:12px;line-height:1.4;margin-top:4px;color:#686156}
#discman-dock{position:fixed;inset:auto max(18px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) auto;z-index:1000;width:112px;box-sizing:border-box;color:#292722;font:14px/1.4 'Avenir Next',Avenir,Arial,sans-serif;text-align:center;isolation:isolate}#discman-dock *{box-sizing:border-box}
#discman-dock .discman-toggle{position:relative;display:block;width:112px;height:112px;padding:0;border:0;background:none;cursor:pointer;color:inherit;border-radius:50%;touch-action:manipulation}.discman-toggle img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(1px 4px 4px #211a1540);transform:rotate(-9deg);transition:transform .2s}.discman-toggle:hover img{transform:rotate(-4deg) translateY(-2px)}.discman-toggle:active img{transform:rotate(-7deg) scale(.97)}.discman-toggle:focus-visible{outline:2px solid #90432f;outline-offset:4px}
.discman-play-icon{position:absolute;right:5px;bottom:8px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#2e3b33;color:#fff;font:600 13px/1 Arial;box-shadow:0 1px 4px #211a1540;pointer-events:none}
#discman-hint{display:block;width:max-content;max-width:125px;margin:3px auto 0;padding:3px 9px;border-radius:12px;background:#f6f0e3ed;color:#554e43;font-size:11px;box-shadow:0 1px 5px #33291a18}
.discman-track-card{position:absolute;right:100%;bottom:12px;width:255px;max-width:calc(100vw - 144px);padding:16px 20px;background:#f4efdf url('assets/crumpled-construction-paper.webp') center/700px;border:1px solid #65543a33;border-radius:3px;box-shadow:0 5px 20px #28201324;text-align:left;opacity:0;visibility:hidden;transform:translateX(6px);transition:opacity .18s,transform .18s,visibility .18s}
#discman-dock:hover .discman-track-card,#discman-dock:has(:focus-visible) .discman-track-card{opacity:1;visibility:visible;transform:none}
#discman-dock #now-playing{position:static;display:block;max-width:none;margin:0;padding:0;border:0;background:none;color:inherit;pointer-events:auto}#discman-dock #now-playing a{display:block;color:inherit;text-decoration:none;white-space:normal}#discman-dock #now-playing a[href]:hover .now-playing-track{text-decoration:underline;text-underline-offset:4px}#discman-dock #now-playing a[href]:after{content:'Open in Spotify ↗';display:block;margin-top:9px;color:#405c48;font-size:11px}#discman-dock #now-playing a:not([href]):after{content:'Preview of JRNXLST’s next single';display:block;margin-top:8px;color:#746953;font-size:11px}
#discman-dock .now-playing-kicker{display:block;margin-bottom:6px;color:#746953;font:500 10px/1.4 'Avenir Next',Avenir,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}#discman-dock .now-playing-track{display:block;font:600 18px/1.2 'Avenir Next',Avenir,Arial,sans-serif}#discman-dock .now-playing-track span{display:block;margin-top:4px;font:400 12px/1.4 'Avenir Next',Avenir,Arial,sans-serif}
#discman-dock .discman-spotify-controls{margin-top:10px;padding:5px 0;border:0;background:none;color:#625a4e;text-decoration:underline;text-underline-offset:3px;font:11px/1.4 'Avenir Next',Avenir,Arial,sans-serif;cursor:pointer}#discman-dock .discman-spotify-controls[hidden]{display:none}#discman-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#discman-spotify-dialog{width:min(400px,calc(100vw - 32px));height:auto;max-height:85dvh;padding:22px;border:1px solid #64523c55;border-radius:4px;background:#f4efdf;color:#292722;box-shadow:0 12px 40px #19130740;font:14px/1.5 'Avenir Next',Avenir,Arial,sans-serif;overflow:visible}#discman-spotify-dialog::backdrop{background:#29231c66}.discman-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.discman-bar h2{margin:0;font:500 18px/1.4 'Avenir Next',Avenir,Arial,sans-serif}.discman-close{padding:5px;min-width:44px;min-height:44px;border:0;background:none;color:inherit;font-size:25px;cursor:pointer}
#discman-spotify-dialog #halo-player{display:block;position:static;width:100%;margin:0;padding:0;border:0;background:none;box-shadow:none;color:inherit}#discman-spotify-dialog #halo-player p{margin:0 0 12px;font-size:13px}#discman-spotify-dialog #halo-player p button,#discman-spotify-dialog .spotify-next{display:none}#discman-spotify-dialog #halo-embed,#discman-spotify-dialog #halo-embed iframe{width:100%!important;max-width:100%;border:0;border-radius:12px}#discman-spotify-dialog .spotify-open{display:block;margin-top:12px;font-size:13px;color:#405c48}
@media(max-width:700px){#discman-dock{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));width:78px}#discman-dock .discman-toggle{width:78px;height:78px}#discman-hint{font-size:10px;padding:2px 5px}.discman-play-icon{width:23px;height:23px;font-size:12px;right:0;bottom:4px}.discman-track-card{max-width:calc(100vw - 108px);width:220px;padding:12px 14px;bottom:8px}#discman-dock .now-playing-track{font-size:16px}.discman-nav span{display:none}.discman-nav img{width:30px;height:30px}}
@media(hover:none){#discman-dock[data-playing=true] .discman-track-card,#discman-dock:focus-within .discman-track-card{opacity:1;visibility:visible;transform:none}}
@media(prefers-reduced-motion:reduce){.discman-toggle img,.discman-track-card{transition:none}}
#discman-dock{transition:opacity .2s}#discman-dock[data-scrolling=true]{opacity:.32}#discman-dock[data-scrolling=true] .discman-track-card{opacity:0;visibility:hidden}@media(prefers-reduced-motion:reduce){#discman-dock{transition:none}}
