.vinyl-console{display:none}.music[data-player-view=vinyl] .vinyl-console{display:block;margin-bottom:22px}.vinyl-deck{position:relative;width:100%;aspect-ratio:600/420;border:1px solid color-mix(in srgb,var(--text) 25%,var(--line));border-radius:18px;overflow:hidden;background:repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 3px),linear-gradient(135deg,color-mix(in srgb,var(--panel) 75%,#777),var(--panel) 65%,var(--bg));box-shadow:0 15px 30px #0005,inset 0 1px 1px #fff3,inset 0 -4px 8px #0006}.vinyl-record{position:absolute;width:61.333%;aspect-ratio:1;left:8.5%;top:6.19%;border-radius:50%;background:repeating-radial-gradient(circle,#0c0e10 0 1px,#25282c 1.4px 1.8px,#070a0d 2px 3px);box-shadow:0 8px 18px #000c,inset 0 0 0 2px #697077,inset 0 0 0 5px #101216;animation:vice-vinyl-spin 5s linear infinite;animation-play-state:paused}.vinyl-record:after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 15deg,transparent 0deg,#ffffff22 28deg,transparent 55deg,transparent 155deg,#ffffff20 190deg,transparent 225deg);pointer-events:none}.vinyl-record.spinning{animation-play-state:running}.vinyl-bands,.vinyl-song-band{position:absolute;inset:0;border-radius:50%;pointer-events:none}.vinyl-song-band>i{position:absolute;border-radius:50%;border:1px solid #ffffff0c}.vinyl-song-band>i.vinyl-song-gap{border:3px solid #030507;box-shadow:0 -1px 0 #9da7af30,0 1px 0 #9da7af17}.vinyl-song-band.active>i:first-child{border-color:color-mix(in srgb,var(--cyan) 30%,transparent)}.vinyl-label{position:absolute;inset:33%;border-radius:50%;background:radial-gradient(circle at 35% 25%,color-mix(in srgb,var(--cyan) 65%,var(--panel)),var(--panel));border:1px solid color-mix(in srgb,var(--cyan) 60%,var(--line));display:flex;align-items:center;justify-content:center;flex-direction:column;padding:5%;text-align:center;box-shadow:inset 0 0 0 5px #0002;color:var(--text);z-index:1}.vinyl-label strong{font-size:clamp(10px,2.4vw,30px);letter-spacing:3px;line-height:1.05}.vinyl-label em{font-family:cursive;font-size:1.5em;letter-spacing:0;color:var(--pink)}.vinyl-label>span{font-size:clamp(8px,1.4vw,16px);margin-top:9%;font-weight:600;max-width:100%}.vinyl-label small{font-size:clamp(5px,.65vw,9px);margin-top:5%;letter-spacing:1px}.vinyl-spindle{position:absolute;width:6%;aspect-ratio:1;left:47%;top:47%;background:radial-gradient(circle at 30% 20%,#fff,#a8b4be 40%,#181d22 65%);border-radius:50%;box-shadow:0 1px 3px #000}.vinyl-label[data-identity=western]{background:radial-gradient(#ecd09c,#ac7032);color:#382619;font-family:Georgia,serif}.vinyl-label[data-identity=metal]{background:linear-gradient(140deg,#a9afb5,#3d444b);font-family:Impact,sans-serif;color:#101216}.vinyl-label[data-identity=synthpop]{font-family:monospace;background:linear-gradient(45deg,var(--panel) 45%,var(--cyan) 46%,var(--panel) 55%)}.vinyl-label[data-identity=basketball]{font-family:Impact,sans-serif;background:radial-gradient(#e89548,#703718)}.vinyl-label[data-identity=beach]{background:radial-gradient(#fff4cf,#65c0bc);color:#193f40}.vinyl-label[data-identity=rock]{font-family:Georgia,serif;background:radial-gradient(#e1c49a,#594631)}.vinyl-hardware{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 3px 3px #0008)}#vinyl-arm{transform-origin:520px 60px;pointer-events:all;cursor:grab;touch-action:none;transition:transform .3s ease}#vinyl-arm.is-dragging{cursor:grabbing;transition:none}#vinyl-arm:focus-visible{outline:none;filter:drop-shadow(0 0 4px var(--cyan))}.vinyl-deck-foot{position:absolute;bottom:4%;left:5%;right:5%;display:flex;justify-content:space-between;font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--muted)}.vinyl-caption{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;color:var(--muted)}.music[data-player-view=vinyl] .music-grid{grid-template-columns:1fr 1.08fr}.music[data-player-view=vinyl] .vinyl-console{width:calc((100% - 18px)/2.08*1.08);margin-left:auto}.music[data-player-view=vinyl] .player{background:var(--panel)}
@keyframes vice-vinyl-spin{to{transform:rotate(360deg)}}
@media(max-width:740px){.music[data-player-view=vinyl] .vinyl-console{width:100%;margin-left:0}.music[data-player-view=vinyl] .music-grid{grid-template-columns:1fr}.vinyl-label strong{font-size:16px;letter-spacing:1px}.vinyl-label>span{font-size:9px}.vinyl-label small{font-size:5px}.vinyl-deck-foot{font-size:6px;letter-spacing:1px}.vinyl-caption{font-size:10px}.vinyl-label em{font-size:24px}}
@media(prefers-reduced-motion:reduce){.vinyl-record{animation:none}#vinyl-arm{transition:none}}

.vinyl-record{container-type:inline-size}.vinyl-label{padding:0}.vinyl-label strong{position:absolute;top:10%;left:0;right:0;font-size:clamp(7px,4cqw,18px);letter-spacing:1px;line-height:1.1}.vinyl-label em{font-size:1.35em}.vinyl-label>span{position:absolute;bottom:19%;left:5%;right:5%;margin:0;font-size:clamp(6px,2.6cqw,12px)}.vinyl-label small{position:absolute;bottom:8%;left:0;right:0;margin:0;font-size:clamp(4px,1.5cqw,7px);letter-spacing:.5px}.vinyl-deck-foot{font-size:clamp(5px,.65vw,9px);letter-spacing:.6px}

/* Classic direct-drive layout: full-width metal chassis, substantial platter. */
.music[data-player-view=vinyl] .vinyl-console{width:100%;margin-left:0}.vinyl-deck{background:repeating-linear-gradient(0deg,#ffffff18 0 1px,#00000005 1px 2px),linear-gradient(135deg,#9da5ac,#666f78 55%,#89949d);border:2px solid #aab4bd;box-shadow:0 18px 35px #0007,inset 0 2px 1px #fff6,inset 0 -9px 0 #273039;border-radius:9px}.vinyl-platter{position:absolute;left:7.2%;top:4.33%;width:64%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(#c8d0d6 0deg 1deg,#35404a 1deg 2deg,#83909a 2deg 3deg);box-shadow:0 6px 12px #0009,inset 0 0 0 3px #dce3e8,inset 0 0 0 7px #63717c,inset 0 0 0 9px #d9e0e5}.vinyl-record{animation-duration:1.8s;box-shadow:0 2px 6px #000a,inset 0 0 0 1px #5a6167}.vinyl-deck-foot{left:25%;bottom:4%;color:#17232e;font-weight:700;font-size:clamp(6px,.8vw,12px);letter-spacing:1px}.vinyl-start{position:absolute;left:4%;bottom:3%;width:16%;height:11%;border:1px solid #45525c;border-radius:3px;background:linear-gradient(#cad2d8,#8c98a2);color:#182630;box-shadow:0 2px 0 #394650,inset 0 1px 0 #fff8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:0;min-height:0;font-size:clamp(7px,.8vw,12px);letter-spacing:1px}.vinyl-start i{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px color-mix(in srgb,var(--cyan) 55%,transparent)}.vinyl-start:active{transform:translateY(1px);box-shadow:0 1px 0 #394650}.vinyl-hardware{filter:drop-shadow(0 4px 3px #0007)}
@media(max-width:740px){.vinyl-start{gap:3px;font-size:6px}.vinyl-start i{width:4px;height:4px}.vinyl-deck-foot{font-size:5px;letter-spacing:.2px}}

.vinyl-deck{background:url('/assets/vinyl-chassis-photo-v3.webp') center/100% 100% no-repeat;border:0;box-shadow:none;border-radius:0;overflow:visible}.vinyl-platter{display:none}.vinyl-record{left:10.8%;top:3.05%;width:59.3%;background:url('/assets/vinyl-record-photo-v3.webp') center/100% 100% no-repeat;box-shadow:none}.vinyl-record:after{display:none}#vinyl-arm{transform-origin:520px 84.5px}.vinyl-hardware{filter:drop-shadow(2px 4px 3px #0005)}.vinyl-start{left:4.8%;bottom:8.2%;width:12%;height:10%;background:transparent!important;border:0;box-shadow:none;color:transparent;font-size:0}.vinyl-start i{display:none}.vinyl-start:active{background:#0003!important;transform:none;box-shadow:none}.vinyl-start:focus-visible{outline:2px solid var(--cyan)}.vinyl-deck-foot{display:none}.vinyl-label{background-blend-mode:multiply;opacity:.95}.vinyl-song-band>i.vinyl-song-gap{border-width:2px;border-color:#020405;opacity:.65}

/* The diffuse record rotates; the fixed room-light reflection does not. */
.vinyl-record{background-image:url('/assets/vinyl-record-clean-v5.webp')}.vinyl-reflections{position:absolute;left:10.8%;top:3.05%;width:59.3%;aspect-ratio:1;border-radius:50%;background:linear-gradient(118deg,transparent 20%,#ffffff08 28%,#ffffff29 35%,#ffffff0b 44%,transparent 52%);mask-image:radial-gradient(circle,transparent 0 25%,#000 27% 69%,transparent 70%);pointer-events:none;z-index:2;transform:none;animation:none}
.vinyl-strobes{position:absolute;left:7.45%;top:-1.74%;width:66%;aspect-ratio:1;border-radius:50%;pointer-events:none;overflow:hidden;z-index:0}
.strobe-ring{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,#d3d9de 0 1.1deg,#404b55 1.1deg 4deg);animation:strobe-forward 2.6s linear infinite;animation-play-state:paused;mask-image:radial-gradient(circle,transparent 0 67.9%,#000 68.1% 69.5%,transparent 69.7%)}
.strobe-ring.ring-b{inset:1.9%;background:repeating-conic-gradient(#bac4cc 0 1deg,#303d48 1deg 3.6deg);animation-name:strobe-backward;animation-duration:4.8s}.strobe-ring.ring-c{inset:3.8%;background:repeating-conic-gradient(#e0e4e7 0 1.2deg,#46535f 1.2deg 4.4deg);animation-duration:9s}.is-playing .strobe-ring{animation-play-state:running}
@keyframes strobe-forward{to{transform:rotate(360deg)}}@keyframes strobe-backward{to{transform:rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){.strobe-ring{animation:none}}

/* One common spindle coordinate, measured in the chassis image. */
.vinyl-record,.vinyl-reflections{left:10.8436%;top:3.0725%;width:59.3%;transform-origin:50% 50%}.vinyl-record{background:#080b0d;overflow:hidden}.vinyl-surface{position:absolute;inset:0;background:url('/assets/vinyl-record-clean-v5.webp') center/100% 100% no-repeat;transform:translate(.12%,.79%) scale(1.02);transform-origin:50% 50%;border-radius:50%;pointer-events:none}.vinyl-label{inset:31.5%;transform-origin:50% 50%}.vinyl-strobes{left:7.4936%;top:-1.718%;width:66%;transform-origin:50% 50%}

/* Keep all three strobe rows inside the physical chassis around the shared spindle. */
.vinyl-strobes{left:9.0936%;top:.5705%;width:62.8%}.strobe-ring{mask-image:radial-gradient(circle,transparent 0 68.8%,#000 69% 69.5%,transparent 69.7%)}.strobe-ring.ring-b{inset:.7%}.strobe-ring.ring-c{inset:1.4%}.vinyl-deck{overflow:hidden}

.vinyl-record{touch-action:none;cursor:grab;user-select:none}.vinyl-record.scratch-held{animation:none!important;transform:rotate(var(--scratch-angle,0deg));cursor:grabbing}.vinyl-label,.vinyl-bands{pointer-events:none}
/* Compact desktop turntable; keep the phone and twin-deck proportions. */
.music[data-player-view=vinyl] .vinyl-console{width:min(100%,590px);margin:0 auto 24px}
.vinyl-label .vinyl-spindle{display:none}
.vinyl-deck>.vinyl-spindle{left:40.4936%;top:45.4719%;width:1.316%;transform:translate(-50%,-50%);z-index:3;pointer-events:none;animation:none;background:radial-gradient(circle at 33% 24%,#fff 0 9%,#ccd2d6 22%,#7e8991 48%,#20262a 72%);box-shadow:0 1px 2px #000c}
/* A single rotationally symmetric rim: no rotating photograph or duplicate rings. */
.vinyl-strobes{left:9.0936%;top:2.5196%;width:62.8%;overflow:hidden;background:radial-gradient(circle,transparent 0 64.7%,#111519 64.9% 65.5%,#343b40 65.7% 68.8%,#666e73 69% 69.4%,#1b2024 69.6% 70.5%,transparent 70.7%);mask-image:radial-gradient(circle,transparent 0 64.7%,#000 64.9% 70.5%,transparent 70.7%)}
.vinyl-strobes:before{display:none;content:none;animation:none}
.strobe-ring{mask-image:radial-gradient(circle,transparent 0 68.2%,#000 68.4% 69.1%,transparent 69.3%);background:repeating-conic-gradient(#92989c 0 1deg,#252b30 1deg 4deg);opacity:.65}
.strobe-ring.ring-b{inset:1.5%;background:repeating-conic-gradient(#858d92 0 1deg,#20262b 1deg 3.6deg);opacity:.60}.strobe-ring.ring-c{inset:3%;background:repeating-conic-gradient(#7f878c 0 1.2deg,#252b30 1.2deg 4.4deg);opacity:.56}
.vinyl-start:after{content:'';position:absolute;left:46%;top:12%;width:10%;height:12%;border-radius:1px;background:#173318;box-shadow:inset 0 0 2px #000;transition:background .15s,box-shadow .15s;pointer-events:none}
.is-playing .vinyl-start:after{background:#83ff5a;box-shadow:0 0 5px #77ff55,inset 0 0 1px #eaffdf}
@media(prefers-reduced-motion:reduce){.vinyl-strobes:before{animation:none}.vinyl-start:after{transition:none}}

/* Clean chassis artwork contains no baked-in platter, rim or circular shadow.
   All positions share spindle (40.4936%, 47.3767%) in a 600 x 420 chassis. */
.vinyl-deck{container-type:inline-size;background:url('/assets/vinyl-chassis-clean-v4.png') center/100% 100% no-repeat;border-radius:2%;isolation:isolate}
.vinyl-deck:before{display:none;content:none}
.vinyl-record,.vinyl-reflections{left:11.4936%;top:5.9481%;width:58%}
.vinyl-record{z-index:1}
.vinyl-deck>.vinyl-spindle{top:47.3767%}
.vinyl-hardware{z-index:4}
/* A compact turntable and its controls beside the library on wide screens. */
@media(min-width:1000px){
 .music[data-player-view=vinyl]{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px 24px;align-items:start}
 .music[data-player-view=vinyl]>.section-heading{grid-column:1/-1;margin-bottom:0}
 .music[data-player-view=vinyl]>.vinyl-console{grid-column:1;grid-row:2;width:100%;margin:0}
 .music[data-player-view=vinyl]>.music-grid{display:contents}
 .music[data-player-view=vinyl] .music-grid>.player{grid-column:1;grid-row:3;min-width:0}
 .music[data-player-view=vinyl] .music-grid>.library{grid-column:2;grid-row:2/4;min-width:0}
}
@media(max-width:999px){
 .music[data-player-view=vinyl]>.vinyl-console{width:100%;margin:0 0 22px}
 .music[data-player-view=vinyl] .music-grid{grid-template-columns:1fr}
}
.vinyl-label[data-identity=dance]{background:conic-gradient(from 30deg,#173b52,#b7fff4,#473677,#f7b4cb,#173b52);color:#101a2a;font-family:Arial,sans-serif}.vinyl-label[data-identity=dance] em{color:#613552}

.vinyl-label[data-identity=cinematic]{background:radial-gradient(#ddc48e,#80613c);color:#171c23;font-family:Georgia,serif}.vinyl-label[data-identity=cinematic] em{color:#332d24}
