/* A dark portable cassette player with restrained spectral edge light. */
body.nocturne .artist-player{border:1px solid #5e536673;border-radius:18px;background:linear-gradient(140deg,#1a1720,#0b0a10 65%);box-shadow:0 24px 55px #0005,inset 0 1px #ddd2e31a;gap:32px}
.artist-player .player-main{min-width:0}.artist-player .player-main>.record-skin{display:none}
.cassette{position:relative;max-width:520px;margin:24px 0;padding:17px 19px 13px;border:1px solid #7c737b66;border-radius:12px;background:linear-gradient(140deg,#26232b,#15131b);box-shadow:inset 0 0 0 5px #09080dc4,0 8px 18px #0005}
.cassette-label,.cassette-foot{display:flex;justify-content:space-between;gap:15px;align-items:center;font:400 .55rem/1.6 var(--mono);letter-spacing:.14em;color:#bbb2bd}.cassette-label{padding-bottom:12px;border-bottom:1px solid #a595b233}.cassette-foot{padding-top:12px;font-size:.5rem}
.cassette-window{display:flex;align-items:center;justify-content:space-between;margin:15px 10px 4px;padding:12px 20px;border:1px solid #8e7aa63d;border-radius:55px;background:linear-gradient(120deg,#08070a,#17101e,#08070a);box-shadow:inset 0 8px 15px #0008;position:relative}
.tape-reel{display:block;position:relative;z-index:1;width:56px;height:56px;flex-shrink:0;border-radius:50%;border:9px solid #29242e;background:repeating-conic-gradient(#a89aa9 0 17deg,#302a36 17deg 60deg);box-shadow:0 0 0 1px #8d7b944f;animation:tape-turn 5s linear infinite;animation-play-state:paused}
.tape-reel::after{content:'';position:absolute;inset:12px;border-radius:50%;background:#0c0910;border:1px solid #ad9eb47a}.tape-reel:last-child{animation-duration:6.5s}
.tape-bridge{height:21px;flex:1;margin-inline:-2px;border-block:1px solid #96809866;background:linear-gradient(#312732,#120e17);box-shadow:0 1px 8px #a259ff0d}
.artist-player[data-state=playing] .tape-reel{animation-play-state:running}
.player-current-row{padding:13px 15px;border:1px solid #85798c55;border-radius:5px;background:#070a0a;box-shadow:inset 0 3px 8px #0008}
body.nocturne .player-current{font-family:var(--mono);font-size:.85rem;color:#d7decf}.player-time{font:400 .8rem var(--mono);color:#c1cbb8}
.artist-player .player-controls{gap:9px;margin-top:15px}.artist-player .player-controls button{border-radius:5px;background:linear-gradient(#2a252e,#151219);box-shadow:inset 0 1px #f6e7ff22,0 4px 0 #050407;border:1px solid #77677988;min-height:46px}.artist-player .player-controls .player-toggle{color:var(--bone);background:linear-gradient(#362635,#201920);border-color:#c993b288}
.artist-player .player-controls button:active{transform:translateY(2px);box-shadow:inset 0 1px #f6e7ff22,0 2px 0 #050407}
.player-playlist{max-height:540px;overflow:auto;overscroll-behavior:contain;scrollbar-color:#766080 #151019}.player-playlist button{min-height:66px}
.inline-media-hint{font:400 .65rem/1.5 var(--mono);color:#c6abc8;letter-spacing:.05em}.inline-media-hint[hidden]{display:none}.text-link .inline-media-hint{display:none}.more-listening .inline-media-hint{margin-top:12px;align-self:start;border-bottom:1px solid #bd95c340}
.curated-playlists{margin:55px 0 0;padding-top:30px;border-top:1px solid #af8abe30}.curated-playlists h3{font:400 clamp(1.8rem,3vw,2.8rem)/1.35 var(--serif);margin:12px 0}.curated-playlists>p{max-width:60ch;color:var(--bone-dim)}
.playlist-collections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}
.playlist-collection{display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:6px 10px;padding:18px;border:1px solid #a98ab430;border-radius:8px;background:#0d0b12;box-shadow:inset 1px 0 #a259ff12;color:var(--bone);font-family:var(--serif)}
.playlist-collection small{grid-column:2;font:400 .55rem var(--mono);color:var(--bone-dim);letter-spacing:.06em}.collection-mark{color:#c5a8cc;font:1.4rem var(--body)}
.playlist-collection:hover,.playlist-collection:focus-visible{border-color:#c497c075;box-shadow:0 0 20px #a259ff10;outline-color:var(--sakura)}
.more-playlists summary{cursor:pointer;padding:18px 0;color:var(--bone-dim);font:.75rem var(--mono)}
.follow-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 30px}.follow-actions a{padding:12px 17px;border:1px solid #96759f55;border-radius:6px;background:#100c15;color:var(--bone);font:400 .7rem/1.7 var(--mono)}
.follow-actions a:hover{border-color:#cb91b880;box-shadow:0 0 18px #ff8fb810}
.video-dialog{width:min(920px,94vw);max-height:92dvh;overflow:auto;padding:24px;background:#0d0b12;color:#ede6da;border:1px solid #9f87aa80;border-radius:16px;box-shadow:0 30px 100px #0009}
.video-dialog::backdrop{background:#030206e8}.video-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.video-dialog-head button{width:44px;height:44px;border:1px solid #807288;border-radius:6px;color:#ede6da;background:#201726;font-size:1.5rem;cursor:pointer}
.video-dialog h2{font:400 clamp(1.25rem,3vw,2rem)/1.4 var(--serif);margin:12px 0 22px}.video-screen{background:#000;border:1px solid #67597055;border-radius:8px;overflow:hidden}.video-screen iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;min-height:200px;border:0}.video-dialog p,.video-dialog>a{font:.75rem/1.7 var(--body);color:var(--bone-dim)}.video-dialog>a{display:inline-block;padding:8px 0;color:#d1b9d8}
body.nocturne :is(.music-primary,.music-mini,.practice-row,.legacy-card,.social-links a){box-shadow:inset 1px 0 #a259ff14,inset -1px 0 #ff8fb80c,0 12px 32px #0002}
@keyframes tape-turn{to{transform:rotate(360deg)}}
@media(max-width:900px){.playlist-collections{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){body.nocturne .artist-player{padding:22px 18px;gap:24px}.cassette{padding:16px 14px 12px}.cassette-window{padding:10px 12px;margin-inline:0}.cassette-label{font-size:.48rem;letter-spacing:.08em}.tape-reel{width:49px;height:49px}.tape-reel::after{inset:9px}.playlist-collections{grid-template-columns:1fr 1fr;gap:9px}.playlist-collection{grid-template-columns:1fr;gap:8px;padding:14px;font-size:.95rem}.playlist-collection small{grid-column:1}.collection-mark{display:none}.video-dialog{padding:16px}.video-dialog h2{font-size:1.25rem}.follow-actions a{font-size:.62rem}}
@media(prefers-reduced-motion:reduce){.tape-reel{animation:none}}
@media(forced-colors:active){.cassette,.cassette-window,.player-current-row,.playlist-collection,.video-dialog,.follow-actions a{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none}.tape-reel{background:Canvas;border-color:CanvasText}.video-dialog::backdrop{background:Canvas}}
