:root{color-scheme:dark;--bg:#171916;--panel:#20231e;--muted:#9da294;--cream:#ece8d8;--accent:#d8b774}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font:14px system-ui,sans-serif}button,input,select{font:inherit}button,select{background:#30342b;color:var(--cream);border:1px solid #4b5143;border-radius:5px;padding:10px 13px;cursor:pointer}button:hover{border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{opacity:.4;cursor:default}header{padding:30px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #363c30}.eyebrow,.section-heading{font-size:10px;letter-spacing:2px;color:var(--muted)}h1{font:36px Georgia,serif;margin:8px 0}h1 span{font:10px system-ui;border:1px solid #606549;padding:5px 9px;margin-left:15px;vertical-align:middle;text-transform:uppercase;letter-spacing:2px}.layout{color:var(--muted);display:flex;gap:12px;align-items:center}main{max-width:1480px;margin:auto;padding:32px 5%;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr);gap:38px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.badge{color:var(--accent)}.deck{aspect-ratio:1.38;position:relative;padding:24px;background:repeating-linear-gradient(2deg,#66472f 0,#705039 3px,#79573a 5px,#66472f 8px);border:9px solid #3d2b20;border-radius:9px;box-shadow:0 18px 25px #0005,inset 0 0 60px #0006}.deck-brand{font-size:11px;letter-spacing:2px}.deck-brand small{display:block;font-size:7px;margin-top:5px}.platter{position:absolute;left:8%;top:18%;width:65%;aspect-ratio:1;background:repeating-conic-gradient(#aaa 0deg 1deg,#353735 1deg 2deg);border-radius:50%;padding:8px;box-shadow:0 12px 15px #0009}.record{height:100%;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,#181918 0 2px,#2a2c29 3px,#121311 4px);animation:spin 8s linear infinite;animation-play-state:paused}.playing .record{animation-play-state:running}.record-label{width:34%;height:34%;border-radius:50%;background:#b9aa78;color:#292d24;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;font-size:clamp(7px,1vw,12px);letter-spacing:1px}.record-label i{width:8px;height:8px;background:#ddd;border-radius:50%;margin:5px}.record-label small{font-size:6px}.tonearm{position:absolute;right:13%;top:23%;height:52%;width:9px;background:linear-gradient(90deg,#777,#ddd,#777);transform-origin:top;transform:rotate(-8deg);transition:transform 1s;box-shadow:3px 4px 5px #0008}.tonearm:before{content:'';position:absolute;top:-15px;left:-12px;width:32px;height:32px;border-radius:50%;background:#a5aaa0;border:7px solid #353a34}.tonearm:after{content:'';position:absolute;bottom:-5px;left:-5px;width:18px;height:36px;background:#232621;transform:rotate(15deg)}.playing .tonearm{transform:rotate(24deg)}.deck-bottom{position:absolute;bottom:15px;left:24px;right:24px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px}.deck-bottom i{display:inline-block;width:6px;height:6px;background:#777;border-radius:50%;margin-right:8px}.playing .deck-bottom i{background:#d1c080;box-shadow:0 0 8px #ffe8ac}.amplifier{margin-top:24px;padding:20px;background:linear-gradient(#33372e,#242820);border:1px solid #4a503e;border-radius:6px}.meters{display:flex;gap:18px}.meters>div{flex:1;padding:12px;background:#c8ba88;color:#413c25;font-size:9px;letter-spacing:2px;border-radius:3px}.meters meter{display:block;width:100%;height:20px}.sound{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px;margin-top:20px}.sound label{display:flex;flex-direction:column;gap:9px;font-size:11px;color:var(--muted)}input[type=range]{width:100%;accent-color:var(--accent)}output{font-size:10px}.collection-top h2{font:30px Georgia,serif;margin:28px 0 10px}.collection-top p{color:var(--muted)}.primary{background:var(--accent);color:#24251c;border:0;margin:15px 0 0;padding:13px 20px;font-weight:600}.privacy{font-size:11px}.library-tools{display:flex;gap:10px;margin-top:25px}input[type=search]{min-width:0;flex:1;background:#25291f;border:1px solid #454c3b;color:var(--cream);padding:12px;border-radius:5px}.library{height:360px;overflow:auto;margin-top:16px}.empty{text-align:center;padding:55px 12px;color:var(--muted);border:1px dashed #454c3b;border-radius:5px}.empty>span{font:50px Georgia}.empty h3{color:var(--cream);font:19px Georgia}.empty p{line-height:1.8;font-size:12px}.track{display:flex;align-items:center;gap:14px;padding:12px;border-bottom:1px solid #373d2e}.track.active{background:#33382a;border-radius:5px}.track button{flex:1;text-align:left;background:transparent;border:0;padding:0;min-width:0}.track strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track small{display:block;color:var(--muted);margin-top:4px}.disc{border-radius:50%;width:38px;height:38px;background:repeating-radial-gradient(#191b16 0 3px,#444938 4px);display:grid;place-items:center;color:var(--accent);flex-shrink:0}.track .remove{flex:0;padding:8px}footer{border-top:1px solid #404635;background:#20241c;padding:24px 5%;display:flex;align-items:center;gap:35px}.now{width:28%;min-width:0}.now h3{font:20px Georgia;margin:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now>span:last-child{font-size:11px;color:var(--muted)}.transport{flex:1}.buttons{display:flex;justify-content:center;gap:12px;align-items:center}.buttons button{font-size:12px}.buttons .play{font-size:20px;background:var(--cream);color:#222;width:52px;height:48px}.buttons [aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.timeline{display:flex;align-items:center;gap:12px;font-size:10px;color:var(--muted);margin-top:15px}#status{padding:0 5% 16px;color:var(--muted);font-size:11px}.dragging{outline:3px dashed var(--accent);outline-offset:-10px}.library.collapsed{display:none}@keyframes spin{to{transform:rotate(360deg)}}body[data-layout=fold] main{grid-template-columns:1fr 1fr}body[data-layout=flip] main,body[data-layout=standard] main{max-width:650px;grid-template-columns:1fr}body[data-layout=standard] .deck{aspect-ratio:1.5}body[data-layout=flip] .collection-top{border-top:12px solid #10120e;padding-top:16px}body[data-layout=flip] footer,body[data-layout=standard] footer{flex-wrap:wrap}body[data-layout=flip] .now,body[data-layout=standard] .now{width:100%}@media(max-width:850px){header{padding:20px 5%;gap:20px}h1{font-size:27px}.layout{font-size:11px;flex-direction:column;gap:6px}main,body[data-layout=fold] main{grid-template-columns:1fr}.equipment{max-width:660px;width:100%;margin:auto}footer{flex-wrap:wrap;gap:20px}.now{width:100%}.transport{min-width:100%}.library{height:260px}}@media(max-width:450px){h1 span{display:block;width:max-content;margin:8px 0 0}.sound{gap:14px}.buttons{gap:5px}.buttons button{padding:9px}.deck{padding:14px}.deck-brand{font-size:8px}}@media(prefers-reduced-motion:reduce){.record{animation:none}.tonearm{transition:none}}
.platter{width:57%;top:17%}body[data-layout=standard] .platter{width:53%}body[data-layout=standard] .deck-brand small{display:none}
/* Give the grid item an explicit square instead of a content-sized width. */
.record{width:100%;height:auto;aspect-ratio:1;min-width:0;min-height:0}
/* Bring the stylus inside the record edge when playback starts. */
.playing .tonearm{transform:rotate(45deg)}
body[data-layout=standard].playing .tonearm{transform:rotate(55deg)}
/* Studio deck: layered materials, machined platter and a articulated arm. */
.deck{background:repeating-linear-gradient(1deg,#56351f 0px,#68432b 2px,#754d31 4px,#634028 6px,#805638 7px,#69432b 10px);border:9px solid #39271c;box-shadow:0 15px 25px #0008,inset 0 0 0 2px #a57a4b66,inset 0 0 70px #21130b88;overflow:hidden}
.deck:before{content:'';position:absolute;inset:12px;background:linear-gradient(145deg,#9b9f9866,#41463e99);border:1px solid #a2a69a66;border-radius:3px;box-shadow:inset 0 1px 2px #fff5;pointer-events:none}
.deck-brand,.deck-bottom{z-index:2}.deck-brand{position:relative;color:#e8e8d8;text-shadow:0 1px #000}
.platter{z-index:1;padding:10px;background:repeating-conic-gradient(#dedfd6 0deg .7deg,#656960 .7deg 1.5deg,#b5b8ab 1.5deg 2deg);box-shadow:0 8px 0 #3d4239,0 12px 0 #171b16,0 20px 18px #0009,inset 0 0 0 2px #d5d9ca}
.record{position:relative;background:repeating-radial-gradient(circle at center,#161917 0px,#161917 1px,#343832 1.5px,#101311 2px,#222620 3px);box-shadow:inset 0 0 0 3px #090c09,inset 0 0 0 12px #20251c,inset 0 0 0 14px #0c100b;isolation:isolate}
.record:before{content:'';position:absolute;inset:3%;border-radius:50%;background:conic-gradient(from 15deg,transparent 0deg,#c5d4b51a 24deg,transparent 50deg,transparent 165deg,#d1dfbe20 200deg,transparent 225deg);z-index:-1}
.record-label{width:32%;height:32%;background:radial-gradient(circle,#c6b789 0 18%,#bdaa74 19% 70%,#d2c697 71%);border:1px solid #6f6545;box-shadow:0 0 0 2px #070a07;color:#413520;font-family:Georgia,serif;font-weight:bold;letter-spacing:1px;transform:rotate(-12deg)}
.record-label span{padding:2px 0;border-top:1px solid #65553788;border-bottom:1px solid #65553788;font-size:clamp(6px,1vw,11px);line-height:1.1}.record-label i{background:radial-gradient(circle at 30% 30%,#fff,#7b8276 45%,#353c30 75%);box-shadow:0 0 2px #000;width:9px;height:9px;margin:5px 0}.record-label small{font:5px system-ui;letter-spacing:.5px}
.tonearm{z-index:4;width:9px;background:linear-gradient(90deg,#464c45,#d3d7cc 30%,#fbfff0 45%,#7b8477 70%,#41473e);border-radius:4px;box-shadow:3px 6px 4px #0006;transition:transform 1.2s cubic-bezier(.4,0,.2,1)}
.tonearm:before{width:44px;height:44px;left:-17px;top:-22px;background:radial-gradient(circle,#59624f 0 10%,#d5d8c9 12% 20%,#6f7668 22% 29%,#c0c6b4 31% 43%,#454d3e 46% 55%,#929b84 58% 70%,#30392a 75%);border:0;box-shadow:3px 4px 7px #0008,inset 0 1px 2px #fffa}
.tonearm:after{width:20px;height:32px;left:-6px;bottom:-13px;border-radius:3px 3px 1px 1px;background:linear-gradient(90deg,#191e16,#3b4433 35%,#1c2516);border:1px solid #899477;transform:rotate(12deg);box-shadow:3px 3px 4px #0007,inset 0 7px #566149}
.counterweight{position:absolute;left:-9px;top:-47px;width:27px;height:23px;border-radius:5px;background:repeating-linear-gradient(90deg,#535b4d 0 2px,#ccd2be 3px,#818b73 5px);border:1px solid #c3c9b5;box-shadow:3px 3px 4px #0006}
.arm-lift{position:absolute;right:-13px;top:30px;height:30px;width:3px;background:#c3cbb6;transform:rotate(-15deg);border-radius:2px}.arm-lift:after{content:'';position:absolute;bottom:0;left:-3px;width:9px;height:12px;border-radius:3px;background:#1d2418}
.deck-bottom{bottom:20px;color:#e2e5d6}.deck-bottom>span:last-child{background:#252c20;border:1px solid #7d886a;padding:5px 8px;box-shadow:0 2px 2px #0005}.deck-bottom>span:first-child{padding-top:5px}
.disc{background:radial-gradient(circle,#d0b16e 0 18%,#151b12 20% 27%,#46503c 28% 29%,#161d12 30% 40%,#3b4631 41% 42%,#131a10 43% 60%,#36432a 61% 62%,#12190e 63%);box-shadow:1px 2px 3px #0008;border:1px solid #48543c;color:transparent}
@media(max-width:450px){.tonearm{width:7px}.counterweight{width:22px;left:-8px}.tonearm:before{width:34px;height:34px;left:-13px;top:-17px}.deck:before{inset:8px}}
.record{animation-duration:1.8s}
.playing .tonearm{transform:rotate(calc(45deg + var(--groove-progress,0deg)))}
body[data-layout=standard].playing .tonearm{transform:rotate(calc(60deg + var(--groove-progress,0deg)))}
.album-sleeve{margin:12px 0 20px;width:min(220px,70%);position:relative;background:#343c2c;border:6px solid #b7b198;box-shadow:6px 8px 15px #0008}.album-sleeve>img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.album-sleeve [hidden]{display:none}.album-sleeve>div{aspect-ratio:1;display:flex;justify-content:center;align-items:center;flex-direction:column;font:48px Georgia;color:#b7b198}.album-sleeve small{font:10px system-ui;margin-top:10px}.album-sleeve figcaption{padding:9px;font-size:11px;overflow-wrap:anywhere;background:#252b20}.album-thumb{border-radius:2px;width:42px;height:42px}.album-thumb img{width:100%;height:100%;object-fit:cover;border-radius:2px}.record-label{position:relative;overflow:hidden}.record-label>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.record-label>img[hidden]{display:none}.record-label:has(img:not([hidden]))>span,.record-label:has(img:not([hidden]))>small{visibility:hidden}.record-label i{z-index:1}
body .tonearm,body.playing .tonearm,body[data-layout=standard].playing .tonearm{right:auto;transform:rotate(-5deg);transform-origin:4.5px 0;transition:transform .8s ease}.arm-engaged .tonearm,body.arm-engaged.playing .tonearm,body[data-layout=standard].arm-engaged.playing .tonearm{transform:rotate(var(--arm-angle,35deg))}.tonearm:after{bottom:-4px;left:-6px;height:23px;transform:none}.tonearm:before{left:-17px;top:-22px}@media(max-width:450px){.tonearm{width:9px}.tonearm:before{left:-17px;top:-22px;width:44px;height:44px}}
.record-label i{position:absolute;left:50%;top:50%;margin:0;transform:translate(-50%,-50%)}
.album-sleeve>button{font-size:11px;margin:0 6px 6px}

/* JS follows the media clock each frame; CSS must not restart easing per update. */
body .tonearm,body.playing .tonearm,body[data-layout=standard].playing .tonearm{transition:none}
.tonearm:after{transform:translateY(calc(-1 * var(--stylus-lift,0px)));transition:transform .18s ease;box-shadow:3px calc(3px + var(--stylus-lift,0px)) 4px #0007}
.vinyl-setting{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--muted);margin-top:15px}.vinyl-setting input{accent-color:var(--accent)}
@media(prefers-reduced-motion:reduce){.tonearm:after{transition:none}}

.deck-cue{position:absolute;z-index:5;right:5%;top:70%;max-width:24%;font-size:10px;padding:10px 8px;background:linear-gradient(#454d3c,#252d20);border:1px solid #939f7b;border-radius:50%;aspect-ratio:1;box-shadow:0 3px 0 #11180e,0 5px 8px #0008}.deck-cue[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.cueing .record{animation-play-state:running}.tonearm:after{transition:none}
.catalogue{margin:22px 5% 0;border:1px solid #414b38;border-radius:8px;background:#20261e}.catalogue summary{padding:17px 20px;cursor:pointer;font:22px Georgia}.catalogue summary span{font:11px system-ui;color:var(--muted);margin-left:20px}.catalogue-body{padding:0 20px 18px}.categories{display:flex;gap:8px;flex-wrap:wrap}.categories [aria-pressed=true]{background:#d8b774;color:#20251c}#catalogue-note,.catalogue-help{font-size:11px;color:#b3bba8;line-height:1.6}.model-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}.model-card{text-align:left;padding:12px;background:#2b3326;display:flex;flex-direction:column;gap:8px}.model-card svg{width:100%;height:100px}.model-card small{color:#b1bca4;font-size:10px;line-height:1.5;min-height:30px}.model-card>span{color:var(--accent);font-size:10px}.model-card[aria-pressed=true]{border:2px solid var(--accent)}
.amplifier{border:7px solid #0c1313;background:linear-gradient(165deg,#1e2b2e,#040b0f);box-shadow:0 10px 14px #0007,inset 0 1px #596b6b;padding:20px;border-radius:5px}.amp-name{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;color:#c7e3d5;letter-spacing:2px}.amp-name strong{font:17px Georgia}.amp-name span{font-size:7px;color:#93a999}.amplifier .meters>div{background:radial-gradient(ellipse at bottom,#b0e9ff,#4aa7d7);box-shadow:0 0 15px #3b91bb33,inset 0 0 12px #113e5c66;border:3px solid #364b4d;color:#123b48}.amplifier .meters meter{position:absolute;opacity:0;width:1px;height:1px}.vu-gauge{height:72px;position:relative;overflow:hidden;border-radius:60% 60% 0 0;border-top:1px solid #18495b99}.vu-scale{position:absolute;top:9px;left:0;right:0;text-align:center;font:8px monospace;letter-spacing:0}.vu-gauge b{position:absolute;bottom:10px;left:44%;font-size:11px}.vu-needle{position:absolute;left:50%;bottom:-6px;width:2px;height:60px;transform-origin:bottom;transform:rotate(-48deg);background:#172f35;box-shadow:1px 0 1px #fff7;transition:transform .08s linear}.amp-knob{display:flex;flex-direction:column;align-items:center;gap:8px}.amp-knob i{display:block;width:58px;height:58px;border-radius:50%;background:repeating-conic-gradient(#727b75 0 2deg,#cad0c8 2deg 4deg);border:5px solid #424d49;box-shadow:0 5px 7px #0008,inset 0 0 0 3px #b5c0b2}.amp-knob i:before{content:'';display:block;width:3px;height:12px;background:#0d2318;margin:2px auto}.amp-knob span{font-size:8px;letter-spacing:2px;color:#8aa696}.sound{grid-template-columns:70px 1.3fr 1fr 1fr}.valves{display:none}.s-arm{display:none}
body[data-amp=silver] .amplifier{background:repeating-linear-gradient(0deg,#b2b4a8 0px,#caccc0 1px,#a3a699 2px);border-color:#6d7263;color:#222d21}body[data-amp=silver] .amp-name,body[data-amp=silver] .sound label{color:#2c3926}body[data-amp=silver] .amplifier .meters>div,body[data-amp=valve] .amplifier .meters>div{background:radial-gradient(ellipse at bottom,#fff1b4,#c6a35e);color:#503818}body[data-amp=black] .amplifier .meters>div{background:#99bf85}body[data-amp=valve] .amplifier{border-left:14px solid #644329;border-right:14px solid #644329;background:linear-gradient(#433e2d,#1b2017)}body[data-amp=valve] .valves{display:flex;justify-content:center;gap:18px;margin:15px}body[data-amp=valve] .valves i{width:28px;height:48px;border:2px solid #b4a990;border-radius:40% 40% 12% 12%;background:radial-gradient(ellipse at bottom,#ffc76c,#d6682733 45%,#b4bb9f22 60%);box-shadow:0 0 16px #d7752533}
body[data-deck=silver] .deck{background:repeating-linear-gradient(0deg,#aeb4a7 0,#d1d5c8 1px,#9da695 3px);border-color:#6c7865}body[data-deck=black] .deck{background:linear-gradient(130deg,#353b33,#151c13);border-color:#090f08}body[data-deck=acrylic] .deck{background:linear-gradient(130deg,#d4e7d333,#7aab9c66);border-color:#b8d5c166;box-shadow:inset 0 0 0 3px #daffe566,0 10px 20px #0006}body[data-deck=cream] .deck{background:linear-gradient(#d9d7b9,#b7bb9d);border-color:#4f5b3f}body[data-deck=red] .deck{background:linear-gradient(150deg,#9d3d32,#481b16);border-color:#371a15}body[data-arm=carbon] .tonearm{background:repeating-linear-gradient(35deg,#1c2318 0 2px,#526244 3px,#172311 4px)}body[data-arm=broadcast] .tonearm{background:linear-gradient(90deg,#858d7a,#f1f4e5,#7f8873);width:12px}body[data-arm=s] .tonearm{background:none;box-shadow:none}body[data-arm=s] .s-arm{display:block;position:absolute;left:-10.5px;top:0;width:30px;height:100%;overflow:visible}body[data-arm=s] .s-arm path{stroke:#d9e6ca;stroke-width:5;fill:none;filter:drop-shadow(2px 3px 2px #0008)}
#tape-unit[hidden],#vinyl-unit[hidden]{display:none}.tape-face{position:relative;aspect-ratio:1.1;padding:24px;border:12px solid #494d40;border-radius:5px;background:repeating-linear-gradient(0deg,#aeb5a4 0,#c4c9bb 1px,#9da894 3px);box-shadow:0 12px 20px #0008;color:#273322}.tape-brand{display:flex;justify-content:space-between;gap:12px;align-items:center}.tape-brand strong{font:18px Georgia}.tape-brand small{font-size:8px;max-width:45%;text-align:right}.reel-area{display:flex;justify-content:space-around;gap:10%;margin-top:25px}.tape-reel{width:40%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(#9dab91 0deg 40deg,#26321f 40deg 80deg,#ccd4bc 80deg 120deg);border:8px solid #c6cebb;box-shadow:0 6px 10px #0008,inset 0 0 0 10px #283321;display:grid;place-items:center;animation:spin 3s linear infinite paused}.tape-reel i{width:25%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#1c2813 10%,#dde1d3 15% 35%,#606e50 38% 50%,#d6dfc7 52%);box-shadow:0 2px 5px #0007}.playing .tape-reel{animation-play-state:running}.tape-path{height:30px;margin:0 20%;border:3px solid #45311d;border-top:0;clip-path:polygon(0 0,100% 0,80% 100%,20% 100%)}.tape-counter{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.tape-counter span{background:#162313;color:#d7d5a5;padding:7px 12px;font:19px monospace;letter-spacing:3px}.tape-counter small{font-size:8px}.tape-keys{display:flex;gap:8px;justify-content:center}.tape-keys button{background:linear-gradient(#e1e5d7,#9da791);color:#26321c;box-shadow:0 4px #4b5740;border:1px solid #636f56;flex:1;min-width:0;padding:12px 5px}.cassette-window{display:none}body[data-source=cassette] .reel-area,body[data-source=cassette] .tape-path{display:none}body[data-source=cassette] .tape-face{aspect-ratio:1.4;background:linear-gradient(#29352a,#111b12);color:#b5c7a6;border-color:#384631}body[data-source=cassette] .cassette-window{display:block;margin:30px auto 16px;width:84%;padding:15px;background:linear-gradient(#4e5a4288,#222d1bbb);border:8px solid #11190c;box-shadow:inset 0 0 10px #0008}.cassette-label{display:block;text-align:center;background:#b9b891;padding:6px;color:#26311a;font-size:9px}.cassette-spools{display:flex;justify-content:space-around;margin:10px 0}.cassette-spools i{width:50px;height:50px;border-radius:50%;background:repeating-conic-gradient(#c2ccb0 0 20deg,#27391e 20deg 60deg);border:10px solid #221b10;animation:spin 2s linear infinite paused}.playing .cassette-spools i{animation-play-state:running}body[data-tape=master] .tape-face{background:linear-gradient(#3b4335,#22291e);color:#d4dbbf;border-color:#11180d}body[data-tape=archive] .tape-face,body[data-tape=compact] .tape-face{background:linear-gradient(#c7c5a3,#918f6b);color:#27321c}body[data-source=cassette][data-tape=silver] .tape-face{background:linear-gradient(#c6cdbd,#9da78d);color:#233319}
@media(max-width:500px){.catalogue summary span{display:block;margin:8px 0 0}.model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-card{padding:8px}.model-card svg{height:80px}.sound{grid-template-columns:repeat(3,1fr)}.amp-knob{grid-column:1/-1;flex-direction:row;justify-content:center}.amp-name{flex-direction:column;align-items:flex-start}.tape-face{padding:14px}.tape-brand strong{font-size:14px}.tape-brand small{font-size:7px}.vu-scale{font-size:6px}.catalogue-body{padding:0 12px 12px}}@media(prefers-reduced-motion:reduce){.tape-reel,.cassette-spools i{animation:none}.vu-needle{transition:none}}
/* Each deck has a separate construction and silhouette within the shared stage. */
body[data-deck] .deck{border:0;background:none;border-radius:0;box-shadow:none;overflow:hidden;aspect-ratio:1.38;padding:0}
body[data-deck] .deck:before{display:none}.deck-chassis{position:absolute;inset:3% 1% 6%;border-radius:5px;background:repeating-linear-gradient(1deg,#704a2f 0 3px,#976b42 4px,#5a3b26 6px);border:8px solid #48311f;box-shadow:0 10px 10px #0009,inset 0 0 0 2px #a67c5166}.subchassis{position:absolute;inset:5% 3% 9%;background:linear-gradient(120deg,#aeb7a6,#616c5c);border:1px solid #d4dac5;box-shadow:0 2px 5px #0007}.deck-feet{position:absolute;inset:0;pointer-events:none}.deck-feet i{position:absolute;bottom:2%;left:7%;width:10%;height:9%;border-radius:50%;background:radial-gradient(#838f73,#1d2815 65%);box-shadow:0 4px 7px #0008}.deck-feet i:nth-child(2){left:81%}.deck-feet i:nth-child(3){bottom:83%;left:77%}.deck .deck-brand{position:absolute;left:5%;top:7%;font-size:9px;color:#e5e9da;text-shadow:0 1px 1px #0008;max-width:58%}.deck .deck-brand small{font-size:6px;letter-spacing:1px}.deck .platter{left:8%;top:17%;width:57%;padding:9px}.deck .deck-bottom{bottom:9%;left:6%;right:5%;font-size:8px}.deck .deck-cue{right:7%;top:73%;width:11%;max-width:none;padding:6px;font-size:8px}.motor-pod,.drive-belt,.industrial-panel,.broadcast-panel,.strobe-lamp,.minimal-switch{display:none;position:absolute;pointer-events:none}
/* Suspended cabinet: recessed metal island, deep fluted wood front. */
body[data-deck=walnut] .deck-chassis:after{content:'';position:absolute;left:-4px;right:-4px;bottom:-4px;height:10%;background:repeating-linear-gradient(0deg,#4b301f 0 2px,#94633e 3px,#70452a 5px);border-top:2px solid #39271b}body[data-deck=walnut] .subchassis:after{content:'';position:absolute;right:2%;top:7%;height:76%;width:24%;background:#3b4433;border:1px solid #56644b}body[data-deck=walnut] .platter{width:55%;left:9%;top:16%}
/* Industrial direct-drive: low alloy console with pitch rail and strobe. */
body[data-deck=silver] .deck-chassis{inset:7% 1% 8%;border:3px solid #6c7865;background:repeating-linear-gradient(0deg,#a9b5a2 0,#c3ceba 1px,#929f89 3px);border-radius:11px;box-shadow:0 7px #4a5540,0 11px #1b2415}body[data-deck=silver] .subchassis{display:none}body[data-deck=silver] .deck-brand{top:10%;color:#26391c;text-shadow:none}body[data-deck=silver] .platter{width:54%;left:7%;top:22%;padding:12px}body[data-deck=silver] .industrial-panel{display:flex;flex-direction:column;align-items:center;gap:8px;right:7%;top:22%;height:42%;width:9%;font-size:6px;color:#25331e;letter-spacing:0}body[data-deck=silver] .industrial-panel i{display:block;height:80%;width:8px;background:#374c2e;border:2px solid #d7e0c9;position:relative}body[data-deck=silver] .industrial-panel i:after{content:'';position:absolute;top:42%;left:-6px;width:15px;height:8px;background:linear-gradient(#e6ebdc,#86997b);box-shadow:0 2px 3px #0008}body[data-deck=silver] .strobe-lamp{display:block;left:5%;top:76%;width:4%;height:7%;border-radius:5px;background:radial-gradient(#efb256,#d66b25 35%,#758367 38%);box-shadow:0 1px 4px #0008}body[data-deck=silver] .deck-bottom{bottom:11%;left:11%}body[data-deck=silver] .deck-cue{border-radius:4px;right:16%;top:75%;width:14%;aspect-ratio:1.6}
/* Minimal belt drive: thin asymmetric board and an exposed glass platter. */
body[data-deck=black] .deck-chassis{inset:15% 3% 14%;border:2px solid #56694b;background:linear-gradient(140deg,#293726,#0e170d);clip-path:polygon(0 10%,97% 0,100% 92%,3% 100%);border-radius:0;box-shadow:0 4px #66775b}body[data-deck=black] .subchassis{display:none}body[data-deck=black] .platter{width:60%;left:7%;top:12%;padding:6px;background:#d4f0d266;box-shadow:0 0 0 4px #c5e8c277,0 7px 0 #b5d4ad44,0 12px 0 #77947277,0 17px 14px #0008}body[data-deck=black] .deck-brand{top:77%;left:8%;font-size:8px}body[data-deck=black] .deck-brand small{display:none}body[data-deck=black] .deck-bottom{display:none}body[data-deck=black] .deck-cue{top:72%;right:9%;width:16%;border:0;border-radius:2px;aspect-ratio:2.2;background:#2d4326}body[data-deck=black] .minimal-switch{display:block;left:10%;top:71%;width:4%;height:4%;background:#dce7d0;border:2px solid #596e50}
/* Clear scalloped platform with three isolated supports and a motor pod. */
body[data-deck=acrylic] .deck-chassis{inset:6% 3% 5%;border:3px solid #c2e3caaa;background:linear-gradient(150deg,#d4f3d63b,#7cb8a55a,#efffe826);border-radius:42% 34% 26% 24%;box-shadow:inset 0 0 0 4px #a8d6b944,0 8px 0 #56766455}body[data-deck=acrylic] .subchassis{display:none}body[data-deck=acrylic] .platter{width:56%;left:10%;top:20%;padding:7px;background:#c2e2c6aa;box-shadow:0 5px 0 #9fccab88,0 10px 0 #c8e8cf88,0 17px 14px #0006}body[data-deck=acrylic] .motor-pod{display:grid;place-items:center;left:7%;top:10%;width:12%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#dce9d0 0 19%,#526c48 20% 26%,#c5d7bb 27% 55%,#657f57 60%);box-shadow:0 5px 6px #0007}body[data-deck=acrylic] .deck-feet i{left:14%;bottom:4%;height:12%;width:9%}body[data-deck=acrylic] .deck-feet i:nth-child(2){left:82%;bottom:12%}body[data-deck=acrylic] .deck-feet i:nth-child(3){left:60%;bottom:81%}body[data-deck=acrylic] .deck-brand{left:25%;top:10%;font-size:8px}body[data-deck=acrylic] .deck-bottom{display:none}body[data-deck=acrylic] .deck-cue{top:77%;right:14%;width:13%;background:#597e5d88}
/* Broadcast console: enamel plate, wood surround, separate speed pod. */
body[data-deck=cream] .deck-chassis{inset:0 0 4%;background:repeating-linear-gradient(0deg,#6e4930 0 3px,#855638 4px,#5a3c28 5px);border:10px solid #48311f;border-radius:9px}body[data-deck=cream] .subchassis{inset:3% 3% 4%;background:linear-gradient(#e3e2c6,#bfc5a5);clip-path:polygon(0 0,72% 0,72% 15%,100% 15%,100% 100%,0 100%)}body[data-deck=cream] .platter{width:49%;left:10%;top:20%;padding:11px;background:repeating-conic-gradient(#d8ded0 0deg 2deg,#4c5943 2deg 4deg)}body[data-deck=cream] .deck-brand{left:7%;top:7%;color:#35452a;text-shadow:none}body[data-deck=cream] .broadcast-panel{display:flex;align-items:center;gap:8px;left:13%;top:76%;width:37%;height:9%;border:2px solid #889672;background:linear-gradient(#c9d2b4,#a1b38e);border-radius:15px;padding:4px 9px;color:#273b1e}body[data-deck=cream] .broadcast-panel b{font:12px Georgia}body[data-deck=cream] .broadcast-panel span{font-size:6px;letter-spacing:1px}body[data-deck=cream] .broadcast-panel i{width:17px;height:17px;background:radial-gradient(#eef1dc,#a1af8c);border-radius:50%;border:2px solid #667e52}body[data-deck=cream] .deck-cue{top:77%;right:10%;width:16%;border-radius:4px;aspect-ratio:2}body[data-deck=cream] .deck-bottom{display:none}
/* Contemporary mass deck: open triangular frame and separate motor tower. */
body[data-deck=red] .deck-chassis{inset:8% 8% 4%;border:0;background:linear-gradient(120deg,#a8533d,#572518);clip-path:polygon(24% 93%,37% 8%,82% 8%,100% 78%,64% 61%);border-radius:0;box-shadow:none}body[data-deck=red] .subchassis{display:none}body[data-deck=red] .platter{width:60%;left:10%;top:15%;padding:9px;background:linear-gradient(90deg,#758272,#ecf0e6,#798872);box-shadow:0 6px 0 #89957e,0 10px 0 #e3e8d9,0 15px 0 #65745b,0 21px 15px #0009}body[data-deck=red] .motor-pod{display:grid;place-items:center;left:1%;top:20%;width:11%;aspect-ratio:1;background:radial-gradient(#ecefde 0 16%,#35482b 18% 26%,#b6c6a7 30% 60%,#5c7851 64%);border:3px solid #9caf8c;border-radius:50%;box-shadow:0 8px 0 #516744,0 14px 10px #0008}body[data-deck=red] .drive-belt{display:block;left:6%;top:28%;width:20%;height:27%;border:2px solid #4b6041;border-right:0;border-radius:50%;transform:rotate(-25deg)}body[data-deck=red] .deck-feet i{left:34%;bottom:2%;width:12%;height:12%;background:radial-gradient(#edf1de,#849675 45%,#304b26 70%)}body[data-deck=red] .deck-feet i:nth-child(2){left:83%;bottom:16%}body[data-deck=red] .deck-feet i:nth-child(3){left:68%;bottom:85%}body[data-deck=red] .deck-brand{top:85%;left:4%;font-size:8px}body[data-deck=red] .deck-bottom{display:none}body[data-deck=red] .deck-cue{top:79%;right:13%;width:16%;border-radius:50%;background:radial-gradient(#a1bc92,#334d28)}
@media(max-width:450px){.deck .deck-brand{font-size:6px}.deck .deck-brand small{font-size:4px}.deck .deck-cue{font-size:6px;padding:3px}.deck .deck-bottom{font-size:5px}.industrial-panel span,.industrial-panel small{font-size:4px}.broadcast-panel span{display:none}.broadcast-panel i{width:12px;height:12px}.broadcast-panel b{font-size:9px}}
/* Isolation supports sit below the chassis rather than on its top plate. */
.deck-chassis{z-index:1}.deck-feet{z-index:0}.motor-pod,.drive-belt,.industrial-panel,.broadcast-panel,.strobe-lamp,.minimal-switch{z-index:2}.deck-feet i{height:6%;border-radius:4px;background:repeating-linear-gradient(0deg,#1a2514 0 2px,#819171 3px,#35472b 5px);border:1px solid #27341f}.deck-feet i:nth-child(3){display:none}body[data-deck=acrylic] .deck-feet i:nth-child(3),body[data-deck=red] .deck-feet i:nth-child(3){display:block}.deck .deck-bottom>span:last-child{display:none}
.view-selector{display:flex;gap:8px;margin:0 0 15px}.view-selector button{font-size:11px;padding:8px 14px}.view-selector [aria-pressed=true]{background:#d8b774;color:#26311e;border-color:#d8b774}.deck-front{display:none}body:not([data-source=vinyl]) .view-selector{display:none}
/* Dedicated illustration; the overhead deck stays unprojected for shared geometry. */
#listening-illustration{display:none}
body[data-view=listening] #vinyl-unit{aspect-ratio:auto;perspective:none;isolation:auto;background:none;border:0;position:relative}
body[data-view=listening] #vinyl-unit .deck{position:absolute;left:0;top:0;bottom:auto;width:100%;transform:none;transform-style:flat;transform-origin:center;visibility:hidden;pointer-events:none}
body[data-view=listening] #listening-illustration{display:block;position:relative;width:100%;aspect-ratio:720/390;background:radial-gradient(ellipse at 50% 88%,#46543b33,transparent 65%);border-bottom:1px solid #465139}
#listening-svg{display:block;width:100%;height:100%;overflow:visible}
#listening-cue{position:absolute;right:8%;bottom:16%;font-size:10px;padding:9px 12px;background:linear-gradient(#a4b196,#58694a);color:#182911;border:1px solid #9caa8d;box-shadow:0 3px #1c2c16;border-radius:4px}
@media(max-width:450px){#listening-cue{font-size:8px;padding:6px 8px;right:6%;bottom:15%}}

/* The functional hit target overlays the illustrated hardware, not a UI badge. */
#listening-cue{right:auto;bottom:auto;width:10%;height:9%;min-width:44px;min-height:32px;padding:0;background:transparent;border:0;box-shadow:none;border-radius:2px;color:transparent;z-index:3}
#listening-cue:hover{background:#ead4a212}#listening-cue:focus-visible{outline:2px solid #e4c78a;outline-offset:3px}#listening-cue:disabled{opacity:1;cursor:default}
#listen-switch.switch-on .cue-indicator{fill:#e6ac59;filter:drop-shadow(0 0 3px #d58c38)}#listen-switch .rocker-face{transition:filter .15s}#listen-switch.switch-on .rocker-face{filter:brightness(.88)}
body[data-view=listening] #listening-illustration{background:radial-gradient(ellipse at 50% 85%,#8f694519,transparent 65%)}
@media(max-width:450px){#listening-cue{right:auto;bottom:auto;min-width:38px;min-height:30px;padding:0}}
.equalizer{margin-top:24px;padding:20px;border:7px solid #1c2518;border-left:12px solid #63472e;border-right:12px solid #63472e;background:linear-gradient(130deg,#35412f,#182315);box-shadow:0 9px 16px #0007;border-radius:4px}.eq-name{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;letter-spacing:2px;font:16px Georgia}.eq-power{width:7px;height:7px;border-radius:50%;background:#e6b763;box-shadow:0 0 8px #ecb557}.eq-bypassed .eq-power{background:#62735a;box-shadow:none}.eq-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.eq-toolbar label{font-size:10px;color:#c2c9b3;display:flex;gap:8px;align-items:center}.eq-toolbar select,.eq-toolbar button{font-size:10px;padding:8px}.eq-toolbar [aria-pressed=true]{border-color:#d8b774;color:#d8b774}.eq-display{background:#111a0e;border:3px solid #48543b;margin:15px 0;padding:6px 10px;box-shadow:inset 0 0 12px #0008}.eq-display svg{display:block;width:100%;height:55px}.eq-display>span{font:9px monospace;color:#b8c6a3}.eq-bypassed #eq-curve{opacity:.3}.eq-fader-panel{display:flex;gap:8px;padding:12px 8px;background:repeating-linear-gradient(0deg,#53634833 0 1px,transparent 1px 38px);border:1px solid #4a5d3e}.eq-scale{display:flex;flex-direction:column;justify-content:space-between;font:8px monospace;color:#bac8a8;padding:28px 0 25px;min-width:30px}#eq-bands{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;flex:1;min-width:0}.eq-band{display:flex;align-items:center;flex-direction:column;gap:8px;min-width:0;font:10px monospace;color:#d1d9c1}.eq-band output{font-size:9px;min-height:12px}.eq-band input{writing-mode:vertical-lr;direction:rtl;width:20px;height:125px;margin:0;accent-color:#d8c591}.eq-level{display:flex;align-items:center;gap:12px;font-size:10px;color:#bcc9ad;margin-top:16px}.eq-level input{flex:1;min-width:0}.eq-level output{min-width:40px;font:10px monospace}.eq-help{font-size:10px;color:#a6b59a;line-height:1.6;margin:12px 0 0}@media(max-width:450px){.equalizer{padding:14px 9px;border-left-width:7px;border-right-width:7px}.eq-fader-panel{gap:3px;padding:10px 2px}.eq-scale{min-width:25px}#eq-bands{gap:1px}.eq-band input{width:16px}.eq-band{font-size:8px}.eq-band output{font-size:8px}}

.eq-character{color:#d1c8ac;font-size:11px;line-height:1.65;min-height:36px;margin:12px 0 0}.eq-toolbar select{max-width:100%;min-width:0}.eq-toolbar label{min-width:0;max-width:100%}
.preamp{margin-top:24px;padding:20px;background:repeating-linear-gradient(0deg,#b2b7a8 0,#d0d2c4 1px,#b1b6a5 2px);border:7px solid #697560;border-radius:4px;box-shadow:0 8px 15px #0008;color:#26321e}.preamp .section-heading{color:#435438}.preamp-face{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 18px}.preamp-face strong{font:18px Georgia;letter-spacing:2px}.preamp-display{background:#1e3219;border:2px solid #647b51;padding:7px 10px;color:#bed09b;font:10px monospace;letter-spacing:1px;box-shadow:inset 0 0 5px #0008}.preamp-controls{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.preamp-controls label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:90px;font-size:10px}.preamp-controls output{font-size:9px}.preamp-controls button{font-size:10px;border-radius:3px;padding:10px;background:linear-gradient(#6d7e5d,#34482a);color:#e3e8d6;box-shadow:0 3px #26321e}.preamp-controls [aria-pressed=true]{color:#efd292;border-color:#ffe0a7;background:#2e3d24}.preamp-tubes{display:none}body[data-preamp=reference] .preamp{background:linear-gradient(#313a2c,#151e11);color:#d7dfc8;border-color:#293b20}body[data-preamp=reference] .preamp .section-heading{color:#a9bb96}body[data-preamp=studio] .preamp{background:linear-gradient(#5b6858,#344532);border-color:#21311b;color:#dce6ce}body[data-preamp=studio] .preamp-display{color:#9ed9db;background:#142b2b}body[data-preamp=valve] .preamp{background:linear-gradient(#b9ac8e,#897b60);border-left:13px solid #745034;border-right:13px solid #745034;color:#3e3020}body[data-preamp=valve] .preamp-tubes{display:flex;justify-content:center;gap:36px;margin-bottom:15px}.preamp-tubes i{height:42px;width:22px;border:1px solid #dedac5;border-bottom:7px solid #3a3527;border-radius:40% 40% 5px 5px;background:radial-gradient(ellipse at bottom,#ffd79a,#ec923844 40%,#efeaca22 70%);box-shadow:0 0 10px #e68b3933}
body[data-amp=triode] .amplifier,body[data-amp=pushpull] .amplifier,body[data-amp=monoblock] .amplifier{background:linear-gradient(#60513c,#241f17);border-left:12px solid #513921;border-right:12px solid #513921}body[data-amp=triode] .valves,body[data-amp=pushpull] .valves,body[data-amp=monoblock] .valves{display:flex;align-items:flex-end;justify-content:center;gap:22px;position:relative;margin:24px 0}.valves i{position:relative}.valves i:after{content:'';position:absolute;bottom:8px;left:45%;height:25px;width:3px;background:#ffc66c;box-shadow:0 0 7px #fb9c36}body[data-amp=triode] .valves i{width:38px;height:74px;border:2px solid #d1c9b4;border-bottom:10px solid #272319;border-radius:40% 40% 7px 7px;background:radial-gradient(ellipse at bottom,#ffbc6f,#ad642822 50%,#efe7bc22);box-shadow:0 0 15px #cc823222}body[data-amp=triode] .valves i:nth-child(n+3){display:none}body[data-amp=pushpull] .amplifier{background:linear-gradient(#a8ada1,#3b4635);border-color:#5d6b50}body[data-amp=pushpull] .valves i,body[data-amp=monoblock] .valves i{width:25px;height:56px;border:2px solid #d2d7c3;border-bottom:8px solid #252d20;border-radius:40% 40% 5px 5px;background:radial-gradient(ellipse at bottom,#fabb66,#c8752922 50%,#d2dcbb22)}body[data-amp=pushpull] .valves:before,body[data-amp=pushpull] .valves:after{content:'';width:45px;height:44px;background:repeating-linear-gradient(0deg,#3a4233 0 4px,#7f8c70 5px,#31392a 8px);border:2px solid #394a2c;border-radius:3px}body[data-amp=monoblock] .meters{gap:30px}body[data-amp=monoblock] .meters>div{background:radial-gradient(ellipse at bottom,#f0cb8b,#9f7b48);border:7px solid #1e2619}body[data-amp=triode] .meters>div,body[data-amp=pushpull] .meters>div{background:radial-gradient(ellipse at bottom,#ecd6a4,#bc9b64)}body[data-amp=monoblock] .valves{gap:18px}body[data-amp=monoblock] .valves i:nth-child(3){margin-left:40px}
@media(max-width:450px){.preamp{padding:14px 10px}.preamp-face{flex-wrap:wrap}.preamp-face strong{font-size:15px}.preamp-controls{gap:10px}.preamp-controls label{min-width:105px}.valves{gap:12px!important}.preamp-display{font-size:9px}body[data-amp=pushpull] .valves:before,body[data-amp=pushpull] .valves:after{width:22px}}
.tower-rollers,.tower-meters{display:none}
body[data-source=reel][data-tape=japan] .tape-face{width:85%;margin:auto;aspect-ratio:.82;padding:26px 22px;background:repeating-linear-gradient(0deg,#b7bdb1 0,#d7d9ce 1px,#a5ada0 3px);border:9px solid #414b38;border-left:14px solid #67462e;border-right:14px solid #67462e;box-shadow:0 12px 20px #0009}
body[data-tape=japan] .tape-brand{flex-direction:column;align-items:flex-start}.tape-brand small{line-height:1.5}body[data-tape=japan] .tape-brand small{max-width:100%;text-align:left}body[data-tape=japan] .reel-area{gap:6%;margin-top:30px}body[data-tape=japan] .tape-reel{width:47%;border:6px solid #dde0d3;background:repeating-conic-gradient(#c4c9bb 0deg 30deg,#2d3527 30deg 90deg,#bbc4ae 90deg 120deg)}body[data-tape=japan] .tower-rollers{display:flex;justify-content:space-between;align-items:center;margin:12px 14% 20px;font-size:6px;gap:12px;color:#35462a}body[data-tape=japan] .tower-rollers i{width:19px;height:19px;border:4px solid #aeb8a0;background:#323e26;border-radius:50%;box-shadow:1px 2px 2px #0007}body[data-tape=japan] .tower-rollers b{background:#505c43;color:#d7dccb;border:2px solid #879b6e;padding:12px 7px;text-align:center}body[data-tape=japan] .tower-meters{display:flex;gap:16px}body[data-tape=japan] .tower-meters span{flex:1;background:radial-gradient(ellipse at bottom,#f2d8a0,#bc9c61);border:4px solid #414c35;padding:7px;text-align:center;position:relative;font-size:7px;height:65px}body[data-tape=japan] .tower-meters i{position:absolute;left:50%;bottom:3px;height:39px;width:1px;transform-origin:bottom;background:#3d3523;transform:rotate(-35deg)}body[data-tape=japan].playing .tower-meters i{animation:tapevu 1.4s ease-in-out infinite alternate}body[data-tape=japan] .tape-counter{margin:15px 0}body[data-tape=japan] .tape-keys button{background:linear-gradient(#626c57,#35472a);color:#dce6ca}
@keyframes tapevu{to{transform:rotate(18deg)}}body[data-deck=vertical] .deck{aspect-ratio:1.3}body[data-deck=vertical] .deck .platter{width:50%;left:12%;top:17%}
@media(max-width:450px){body[data-tape=japan] .tape-face{width:100%;padding:18px 12px}.tower-meters{gap:9px!important}}@media(prefers-reduced-motion:reduce){body[data-tape=japan].playing .tower-meters i{animation:none}}

body[data-tape=japan].playing .tower-meters i{animation:none;transition:transform .08s linear}
/* Let the tall machine grow with its transport controls on small screens. */
body[data-source=reel][data-tape=japan] .tape-face{aspect-ratio:auto;min-height:570px}
@media(max-width:450px){body[data-source=reel][data-tape=japan] .tape-face{min-height:520px}}
/* Nordic system: low aluminium slabs, smoked glass and red readouts. */
body[data-preamp=nordic] .preamp{background:linear-gradient(#d4d8ce 0 28%,#152018 29% 100%);border:3px solid #85917e;border-left:5px solid #73543a;border-right:5px solid #73543a;color:#d5dcd0;border-radius:1px}body[data-preamp=nordic] .preamp .section-heading{color:#53614b}body[data-preamp=nordic] .preamp-face strong{color:#d0d6cb;letter-spacing:3px;font:14px system-ui}body[data-preamp=nordic] .preamp-display{border:0;background:#0b130f;color:#ef7562}body[data-preamp=nordic] .preamp-controls button{border:1px solid #53664b;border-radius:0;background:#142318;color:#e58979;box-shadow:none}
body[data-amp=nordic70] .amplifier,body[data-amp=nordic80] .amplifier{background:linear-gradient(#c0c7b9 0 24%,#101e16 25% 100%);border:4px solid #87967f;border-left:7px solid #755339;border-right:7px solid #755339;border-radius:1px;padding:20px}body[data-amp=nordic70] .amplifier .section-heading,body[data-amp=nordic80] .amplifier .section-heading{color:#3f5037}body[data-amp=nordic70] .amp-name,body[data-amp=nordic80] .amp-name{color:#294123}body[data-amp=nordic70] .amp-name strong,body[data-amp=nordic80] .amp-name strong{font:15px system-ui;letter-spacing:3px}body[data-amp=nordic70] .valves,body[data-amp=nordic80] .valves{display:none}body[data-amp=nordic70] .amplifier .meters>div,body[data-amp=nordic80] .amplifier .meters>div{background:#111d16;color:#e87160;border:1px solid #4a5c43;box-shadow:inset 0 0 20px #0005}body[data-amp=nordic70] .vu-needle,body[data-amp=nordic80] .vu-needle{background:#dd7566}body[data-amp=nordic70] .vu-gauge,body[data-amp=nordic80] .vu-gauge{height:42px;border-radius:0;border-color:#755144}body[data-amp=nordic80] .amp-knob i{width:72px;height:72px;background:radial-gradient(#e2e6db,#b9c3af 55%,#667c59 58%,#b7c4a7 65%);border:2px solid #6c825e}body[data-amp=nordic70] .amp-knob{display:none}body[data-amp=nordic70] .sound{grid-template-columns:repeat(3,1fr)}
body[data-source=cassette][data-tape=nordic] .tape-face{aspect-ratio:1.8;background:linear-gradient(#c3c8bc 0 24%,#122219 25% 100%);border:4px solid #83927c;border-left:8px solid #77573b;border-right:8px solid #77573b;color:#d5ddce;border-radius:1px}body[data-tape=nordic] .cassette-window{width:76%;background:linear-gradient(#1a2d2088,#0b1810dd);border:2px solid #718365;box-shadow:inset 0 0 25px #0009;margin-top:20px!important}body[data-tape=nordic] .tape-counter span{color:#e8806a;background:#101d14}body[data-tape=nordic] .tape-keys button{background:#132719;color:#e7937d;border:1px solid #556e4b;border-radius:0;box-shadow:none}
.music-centre{display:none}body[data-source=centre] #tape-unit .tape-face{display:none}body[data-source=centre] .music-centre{display:block;border:4px solid #87957d;background:linear-gradient(#cbd2c3,#9aab90);padding:20px;box-shadow:0 8px 16px #0008;border-radius:1px}.centre-name{font:14px system-ui;letter-spacing:3px;color:#374d2f;padding:0 0 18px}.centre-top{display:flex;gap:20px;justify-content:space-between;background:#16261a;padding:14px;box-shadow:inset 0 0 10px #0008}.centre-disc{width:45%;aspect-ratio:1;background:repeating-radial-gradient(#d1dacf 0 5px,#8aa598 6px,#bfd4ce 12px);border:8px solid #18251b;border-radius:50%;display:grid;place-items:center;animation:spin 3s linear infinite paused}.centre-disc i{width:20%;aspect-ratio:1;background:#193325;border:5px solid #d3ddce;border-radius:50%}.playing .centre-disc{animation-play-state:running}.centre-lid{width:48%;background:linear-gradient(145deg,#54694b55,#101c1288);border:2px solid #6a7f5e;padding:14px;display:flex;flex-direction:column;justify-content:center}.centre-lid>span{font-size:8px;letter-spacing:1px;color:#c2cbb5}.mini-cassette{display:flex;gap:20%;padding:15px 5%;margin-top:14px;border:6px solid #0c180e;background:#8d9b75}.mini-cassette i{width:35%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(#d7dfc3 0 30deg,#314d29 30deg 60deg);animation:spin 2s linear infinite paused}.playing .mini-cassette i{animation-play-state:running}.centre-display{display:flex;justify-content:space-between;background:#101d15;color:#df6f5f;font:10px monospace;padding:15px;letter-spacing:2px;margin-top:15px}.centre-buttons{display:flex;background:#102018;padding:7px;gap:4px}.centre-buttons button{flex:1;min-width:0;font-size:10px;padding:10px 3px;border:0;border-left:1px solid #43613c;color:#df8a77;background:#14271a;border-radius:0}
#speaker-cabinets{margin:10px 5% 30px;display:flex;align-items:center;justify-content:space-around;gap:25px}#speaker-cabinets[hidden]{display:none}#speaker-cabinets>p{font:17px Georgia;color:#a1b192}.speaker-cabinet{width:190px;height:250px;padding:10px;border:10px solid #735037;background:#233026;box-shadow:0 8px 15px #0008;display:flex;flex-direction:column;gap:12px}.speaker-cabinet i{flex:1;background:repeating-linear-gradient(0deg,#2c342b 0 1px,#182319 2px),repeating-linear-gradient(90deg,#3d4b39 0 1px,#151d12 2px)}.speaker-cabinet span{font:8px system-ui;letter-spacing:2px;color:#c0c6af}body[data-speakers=compact] .speaker-cabinet{width:115px;height:210px;border:5px solid #b7c1ad;background:#83937a;box-shadow:4px 6px #43553b,0 10px 18px #0007}body[data-speakers=compact] .speaker-cabinet span{color:#24351d}
@media(max-width:450px){.centre-top{gap:10px;padding:8px}.centre-lid{padding:6px}.centre-name{font-size:11px}.centre-buttons button{font-size:8px}.speaker-cabinet{width:100px;height:175px;padding:5px;border-width:7px}#speaker-cabinets{gap:12px}#speaker-cabinets>p{font-size:12px}body[data-speakers=compact] .speaker-cabinet{width:75px;height:150px}body[data-amp=nordic80] .amp-knob i{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.centre-disc,.mini-cassette i{animation:none}}
.jukebox-machine{display:none}body[data-source=jukebox] .music-centre,body[data-source=jukebox] .tape-face{display:none}body[data-source=jukebox] .jukebox-machine{display:block;position:relative;padding:24px 24px 20px;border:14px solid #8f6042;border-radius:160px 160px 12px 12px;background:linear-gradient(#693e29,#221e16);box-shadow:0 12px 22px #0009,inset 0 0 0 4px #d9ba80}.juke-arch{height:86px;border:10px solid #e5ba76;border-bottom:0;border-radius:150px 150px 0 0;margin:0 10px;box-shadow:0 0 13px #efa85c88,inset 0 0 12px #ffa45566;display:flex;align-items:center;justify-content:center;position:relative}.juke-arch b{font:28px Georgia;color:#e3cfa5;letter-spacing:4px}.juke-arch i{position:absolute;bottom:0;width:70%;height:1px;background:#bc9762}.jukebox-machine h2{text-align:center;font:22px Georgia;color:#eddbb7;margin:14px 0}.juke-marquee{background:#14221b;border:4px solid #beaa7c;padding:12px;text-align:center;margin-bottom:16px}.juke-marquee>span{display:block;font-size:8px;letter-spacing:3px;color:#b4bf9e}.juke-marquee strong{display:block;color:#edcf99;font:16px Georgia;margin-top:7px;overflow-wrap:anywhere}.juke-search-label{display:flex;align-items:center;gap:10px;font-size:10px;color:#d7c3a0}#juke-search{width:100%;background:#e3dcc9;color:#273726;border:1px solid #746347;padding:9px}#juke-cards{display:grid;grid-template-columns:1fr 1fr;gap:5px;max-height:270px;overflow:auto;background:#332519;border:5px solid #7e6646;margin:14px 0;padding:8px;color:#d6c6a5}.song-card{display:grid;grid-template-columns:28px 1fr;gap:3px 7px;text-align:left;border-radius:0;background:linear-gradient(#eee6cd,#d5c6a2);color:#263222;border:1px solid #968064;padding:9px 7px;min-width:0}.song-card b{grid-row:1/3;font:12px monospace;color:#ae4533;align-self:center}.song-card span{font-size:10px;overflow-wrap:anywhere;line-height:1.4}.song-card small{font-size:8px;color:#6d6a50}.song-card:hover{background:#f4dd9d}.juke-controls{display:flex;gap:6px;flex-wrap:wrap}.juke-controls button{flex:1;min-width:90px;font-size:10px;border-radius:3px;background:linear-gradient(#c7b58a,#786347);color:#192619}.juke-queue-heading{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#d6c49c;margin-top:20px}#juke-queue{list-style:none;padding:0;max-height:160px;overflow:auto}#juke-queue li{display:flex;align-items:center;gap:7px;border-bottom:1px solid #7c6646;padding:7px 0;color:#e6d8bb;font-size:10px}#juke-queue li span{flex:1;overflow-wrap:anywhere}#juke-queue button{padding:4px 7px;font-size:11px}#juke-announcement{font-size:10px;color:#cbbb9a;line-height:1.6}.juke-grille{height:60px;border:3px solid #c7aa6d;border-radius:50% 50% 5px 5px;background:repeating-linear-gradient(90deg,#d0b77f 0 2px,#241f14 3px 8px);margin-top:15px}
body[data-jukebox=diner] .jukebox-machine{border-color:#879588;background:linear-gradient(#813d32,#24261b);box-shadow:0 12px 22px #0009,inset 0 0 0 5px #d3e2d4}body[data-jukebox=diner] .juke-arch{border-left-color:#ee8769;border-right-color:#78ccd0;border-top-color:#eec46d;box-shadow:0 0 15px #e9785588,inset 0 0 12px #65c3c399}body[data-jukebox=console] .jukebox-machine{border-radius:8px;border-color:#634732;background:linear-gradient(#805d42,#33271c)}body[data-jukebox=console] .juke-arch{height:40px;border-radius:0;border-width:3px;box-shadow:none;background:#293724}body[data-jukebox=disco] .jukebox-machine{border-radius:12px;border-color:#626f6e;background:linear-gradient(#183032,#101a21);box-shadow:inset 0 0 0 3px #bf79c6,0 0 14px #7cc3d333}body[data-jukebox=disco] .juke-arch{height:55px;border-radius:0;border-color:#a579d0;box-shadow:0 0 12px #b86fde66}body[data-jukebox=disco] .juke-marquee{border-color:#8bb9b6}body[data-jukebox=digital] .jukebox-machine{border-radius:18px;border:7px solid #778b80;background:linear-gradient(#234337,#14291f)}body[data-jukebox=digital] .juke-arch{height:35px;border:0;box-shadow:none}body[data-jukebox=digital] .juke-grille{height:30px}body[data-jukebox=digital] .song-card{background:#203e30;color:#e1e9d8;border-color:#759980;border-radius:4px}body[data-jukebox=digital] .song-card small{color:#a7c5a9}
@media(max-width:450px){body[data-source=jukebox] .jukebox-machine{padding:18px 12px;border-width:9px;border-radius:100px 100px 9px 9px}.juke-arch{height:60px;border-width:7px}.song-card{padding:8px 5px;grid-template-columns:24px 1fr}.song-card span{font-size:9px}#juke-cards{padding:4px;border-width:3px}.juke-search-label{flex-wrap:wrap}.juke-controls button{min-width:85px;font-size:9px}body[data-jukebox=console] .jukebox-machine,body[data-jukebox=disco] .jukebox-machine{border-radius:9px}body[data-jukebox=digital] .jukebox-machine{border-radius:16px}}
.cassette-bays{display:contents}.cassette-bay-b,.cassette-loader{display:none}body[data-source=cassette] .cassette-loader{display:block}.cassette-bay-buttons{display:none}.cassette-track-selectors{display:flex;gap:12px}.cassette-track-selectors label{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;font-size:10px;color:#b5c5a5}.cassette-track-selectors select{width:100%;min-width:0;font-size:10px;padding:9px 6px;background:#1a2a18}.cassette-track-selectors .cassette-bay-b{display:none}#cassette-loaded{font-size:10px;color:#d5dec7;overflow-wrap:anywhere;line-height:1.5}.cassette-bay-buttons button{font-size:10px;padding:8px 16px}.cassette-bay-buttons [aria-pressed=true]{background:#c5b880;color:#1f2c18;border-color:#e5d4a0}
body[data-source=cassette][data-cassette-dual=true] .cassette-bays{display:flex;gap:14px;margin:24px 0 14px}body[data-source=cassette][data-cassette-dual=true] .cassette-window{display:block;width:50%;min-width:0;margin:0;padding:10px;border-width:5px}body[data-source=cassette][data-cassette-dual=true] .cassette-bay-buttons{display:flex;gap:8px;margin:12px 0}body[data-source=cassette][data-cassette-dual=true] .cassette-track-selectors .cassette-bay-b{display:flex}body[data-source=cassette][data-cassette-dual=true] .tape-face{aspect-ratio:auto;background:linear-gradient(#384735,#142013);border-color:#2b3c24}body[data-source=cassette][data-cassette-dual=true] .cassette-spools i{width:38px;height:38px;border-width:8px}body[data-source=cassette][data-cassette-dual=true] .cassette-label{font-size:7px;padding:5px 3px}body[data-cassette-active=A] #cassette-bay-b .cassette-spools i,body[data-cassette-active=B] #cassette-bay-a .cassette-spools i{animation-play-state:paused}body[data-cassette-active=A] #cassette-bay-a,body[data-cassette-active=B] #cassette-bay-b{box-shadow:inset 0 0 10px #0008,0 0 0 1px #d1b675}
body[data-tape=dual79] .tape-face{background:repeating-linear-gradient(0deg,#b6beac 0,#d5dacb 1px,#a5b195 3px)!important;border-color:#718662!important;color:#273a20!important}body[data-tape=dual79] .tape-brand,body[data-tape=dual79] .cassette-track-selectors label{color:#273a20}body[data-tape=dual79] .tape-keys button{background:linear-gradient(#e0e3d5,#9dae8b);color:#283b1e}body[data-tape=dual88] .tape-face{border-left:20px solid #283c21!important;border-right:20px solid #283c21!important;background:linear-gradient(#4b5942,#1c2c19)!important}body[data-tape=dual88] .cassette-label{background:#d5bb75}
body[data-source=cassette][data-tape=nordic76] .tape-face,body[data-source=cassette][data-tape=nordicglass] .tape-face{aspect-ratio:auto;background:linear-gradient(#c9d0c1 0 22%,#15251b 23% 100%);border:4px solid #869b7d;border-left:10px solid #725038;border-right:10px solid #725038;color:#d5dfca;border-radius:1px}body[data-tape=nordic76] .cassette-window{width:78%;border:2px solid #9ba98d;border-radius:1px;background:linear-gradient(#65785e66,#1b2d2088)}body[data-tape=nordicglass] .cassette-window{width:87%;padding:20px;border:2px solid #697e60;background:linear-gradient(150deg,#67877355,#08190fcc);box-shadow:inset 0 0 25px #0009}body[data-tape=nordic76] .tape-counter span,body[data-tape=nordicglass] .tape-counter span{background:#0d2014;color:#e37a64}body[data-tape=nordic76] .tape-keys button,body[data-tape=nordicglass] .tape-keys button{border-radius:0;background:#122a1b;color:#e28a75;border:1px solid #526f47;box-shadow:none}body[data-tape=nordicglass] .cassette-label{background:#132a1b;color:#ce7964}
@media(max-width:450px){body[data-source=cassette][data-cassette-dual=true] .cassette-bays{gap:7px}body[data-source=cassette][data-cassette-dual=true] .cassette-window{padding:6px;border-width:3px}body[data-source=cassette][data-cassette-dual=true] .cassette-spools i{width:28px;height:28px;border-width:6px}.cassette-track-selectors{gap:7px}.cassette-track-selectors select{font-size:9px}body[data-tape=dual88] .tape-face{border-left-width:9px!important;border-right-width:9px!important}}
body[data-tape=silver] .cassette-track-selectors label,body[data-tape=compact] .cassette-track-selectors label,body[data-tape=dual79] #cassette-loaded,body[data-tape=silver] #cassette-loaded,body[data-tape=compact] #cassette-loaded{color:#2a3c22}
body[data-source=cassette]:not([data-cassette-dual=true]) #cassette-bay-b{display:none}
body[data-source=cassette][data-tape^=nordic] .tape-brand{color:#30472a}body[data-source=cassette][data-tape^=nordic] .tape-brand strong{font:13px system-ui;letter-spacing:2px}body[data-source=cassette][data-tape^=nordic] .tape-brand small{font-size:7px}

/* CD separates: original era-inspired chassis, sharing the local audio engine. */
.cd-player{display:none}body[data-source=cd] .cd-player{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;padding:30px 26px 22px;background:linear-gradient(175deg,#343b39,#141817 70%);border:2px solid #656b64;border-radius:5px;box-shadow:0 14px 25px #0008,inset 0 2px #aaa4;color:#e0e2d6;overflow:hidden}body[data-source=cd] .tape-face,body[data-source=cd] .music-centre,body[data-source=cd] .jukebox-machine{display:none}.cd-brand{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;letter-spacing:2px;font-size:12px}.cd-brand span{font-size:9px;opacity:.65}.cd-mechanism{height:122px;position:relative;perspective:500px;align-self:center}.cd-tray{position:absolute;inset:15px 0 0;background:linear-gradient(#161a18,#2c302d);border:1px solid #686f66;border-bottom:6px solid #404640;transition:transform .65s ease;display:flex;align-items:center;justify-content:center;overflow:hidden}.cd-disc{width:96px;height:96px;border-radius:50%;background:conic-gradient(#dae0dc,#8aabab,#eee3ed,#9fbfb1,#dfdedd,#789caa,#dae0dc);box-shadow:inset 0 0 0 2px #ddd8;display:grid;place-items:center;position:relative}.cd-disc:after{content:'';position:absolute;width:15px;height:15px;border:5px solid #c4ceca;border-radius:50%;background:#242c27}.cd-disc span{font-size:6px;position:absolute;top:20px;width:80px;text-align:center;color:#263a35;overflow:hidden;white-space:nowrap}.cd-display{align-self:center;background:#071c13;border:4px solid #101412;padding:12px;color:#92dbad;font-family:monospace;box-shadow:inset 0 0 12px #000}.cd-display>span{font-size:9px;display:block}.cd-display strong{font-size:28px;font-weight:normal}.cd-display div{margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;max-width:100%}.cd-controls,.cd-load,.cd-help{grid-column:1/-1}.cd-controls{display:flex;gap:7px;flex-wrap:wrap}.cd-controls button{background:linear-gradient(#555e55,#30372f);border:1px solid #7a8273;border-radius:3px;padding:10px;color:#e3e4d8;font-size:11px;box-shadow:0 3px 0 #080b08}.cd-load{display:flex;gap:12px;align-items:center;font-size:11px}.cd-load select{flex:1;min-width:0;max-width:100%;padding:8px;background:#18251b;color:#e1dfc9;border:1px solid #79836a}.cd-help{margin:0;font-size:10px;opacity:.6}#cd-slots{display:none}.cd-lid{display:none}body[data-cd-open=true] .cd-tray{transform:translateY(24px) rotateX(14deg)}body.playing[data-source=cd] .cd-disc{animation:spin 2s linear infinite}body[data-cd=silver83] .cd-player{background:linear-gradient(#d2d6d4,#9ca4a2);color:#202b27}body[data-cd=silver83] .cd-mechanism,body[data-cd=nordic85] .cd-mechanism{height:180px}body[data-cd=silver83] .cd-tray,body[data-cd=nordic85] .cd-tray{inset:0;border-radius:4px;border:6px solid #737e78}body[data-cd=silver83] .cd-disc,body[data-cd=nordic85] .cd-disc{width:140px;height:140px}body[data-cd=silver83] .cd-lid,body[data-cd=nordic85] .cd-lid{display:block;position:absolute;inset:0;background:linear-gradient(145deg,#a2b6ba33,#10171877);border:2px solid #b5c1bb;z-index:2;transform-origin:top;transition:transform .65s}body[data-cd-open=true][data-cd=silver83] .cd-lid,body[data-cd-open=true][data-cd=nordic85] .cd-lid{transform:rotateX(75deg)}body[data-cd=silver83] .cd-tray,body[data-cd=nordic85] .cd-tray{transform:none}body[data-cd=nordic85] .cd-player{background:linear-gradient(165deg,#727c7b 0 20%,#141b1b 21% 85%,#9fa6a2 86%);border-radius:0}body[data-cd=nordic85] .cd-display{color:#ff6960;background:#180c0c}body[data-cd=champagne93] .cd-player{background:linear-gradient(#d4c197,#a79773);color:#28271e;border-color:#e0d0ab}body[data-cd=champagne93] .cd-display{color:#e9bf63;background:#251b0b}body[data-cd=champagne93] .cd-controls button{background:linear-gradient(#cebb92,#968768);color:#24251e}body[data-cd=studio95] .cd-player{border-left:14px solid #292c2b;border-right:14px solid #292c2b}body[data-cd=studio95] .cd-display{color:#8ccbe9;background:#081820}body[data-cd=glass96] .cd-player{grid-template-columns:1fr;background:linear-gradient(155deg,#b2b7b5 0 12%,#17201e 13% 88%,#b9bfbc 89%);border-radius:0}body[data-cd=glass96] .cd-mechanism{height:106px;background:repeating-radial-gradient(circle at 12% 50%,#c8d4d0 0 18px,#34443d 19px 23px,#b2c1bb 24px 36px,#1b2521 37px 58px);border:3px solid #95a69e}body[data-cd=glass96] .cd-tray{inset:0;background:#0c181577;border:1px solid #92a59b;transform-origin:top}body[data-cd=glass96] .cd-disc{width:80px;height:80px}body[data-cd-open=true][data-cd=glass96] .cd-tray{transform:rotateX(65deg)}body[data-cd=glass96] #cd-slots{display:flex;gap:12px}#cd-slots button{flex:1;background:#223a30;color:#dce3d6;padding:8px;border:1px solid #8a9e90}#cd-slots button[aria-pressed=true]{background:#b9c9b7;color:#172b1d}@media(max-width:600px){body[data-source=cd] .cd-player{padding:18px 14px;gap:12px;grid-template-columns:1fr}.cd-brand{flex-wrap:wrap}.cd-mechanism{max-width:100%}.cd-load{flex-wrap:wrap}.cd-load select{width:100%}}

.cd-magazine{display:none}body[data-cd=glass96] .cd-mechanism{background:#111917;height:106px}body[data-cd=glass96] .cd-magazine{position:absolute;inset:8px;display:flex;align-items:center;justify-content:space-around;gap:5px}.cd-magazine i{display:block;flex:1;max-width:82px;aspect-ratio:1;border-radius:50%;background:conic-gradient(#c7d1cf,#799ca1,#ddd4dc,#a6c3ae,#cad3cf);position:relative;box-shadow:0 2px 5px #0009}.cd-magazine i:after{content:'';position:absolute;inset:40%;border-radius:50%;background:#101c18;border:3px solid #b5c7c1}body[data-cd=glass96] .cd-tray{background:linear-gradient(160deg,#8bafab22,#03120c55)}body[data-cd=glass96] .cd-disc{display:none}body.playing[data-source=cd] .cd-disc{animation:cd-rotate 2s linear infinite}@keyframes cd-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){body.playing[data-source=cd] .cd-disc{animation:none}.cd-tray,.cd-lid{transition:none}}

/* Personal rooms and collection rituals */
body[data-room=lounge]{background:radial-gradient(ellipse at top,#65513a,#172219 65%)}body[data-room=studio]{background:linear-gradient(135deg,#1d3542,#10191f);--gold:#aacadd}body[data-room=night]{background:radial-gradient(ellipse at top,#342338,#0a1012 70%)}body[data-room=day]{background:linear-gradient(135deg,#909b87,#37483a)}body[data-room=night] .experience,body[data-room=night] .amplifier{box-shadow:0 0 35px #b8955e18}.experience{margin:24px auto;max-width:1500px;padding:24px;background:linear-gradient(140deg,#2c3729,#1a2319);border:1px solid #8e987c;border-radius:8px;color:#dedecb;box-shadow:0 10px 24px #0005}.experience-heading>span{font-size:10px;letter-spacing:2px;color:#c6b585}.experience-heading h2{font:25px Georgia;margin:12px 0 20px}.experience-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.experience button{background:#33432f;border:1px solid #798b69;color:#eee7cf;padding:10px 14px;border-radius:4px;cursor:pointer}.experience button[aria-pressed=true]{background:#c5b486;color:#1c2d1c}.experience [data-tool][hidden],#album-open[hidden],#album-flip[hidden]{display:none}.experience label{display:flex;gap:12px;align-items:center;margin:12px 0;flex-wrap:wrap}.experience input:not([type=checkbox]):not([type=range]),.experience select,.experience textarea{background:#111c12;color:#eee7cf;border:1px solid #798b69;border-radius:3px;padding:10px;max-width:100%;min-width:0}.experience textarea{width:100%;display:block}.experience input[type=range]{accent-color:#c5b486}.experience p{color:#bfc7ad;font-size:12px;line-height:1.6}.experience button:disabled{opacity:.4;cursor:default}.experience-backup{border-top:1px solid #58664e;margin-top:24px;padding-top:18px;display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:11px}#album-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:20px}#album-shelf .album-sleeve{text-align:left;padding:8px;background:#69583d;box-shadow:5px 5px 0 #111a11,8px 8px 12px #0008;transition:transform .2s}#album-shelf .album-sleeve:hover{transform:translateY(-5px)}.album-sleeve img,.sleeve-placeholder{width:100%;aspect-ratio:1;object-fit:cover;display:grid;place-items:center;background:radial-gradient(circle,#c3aa73 0 10%,#263626 11% 39%,#8c8766 40% 41%,#263626 42%);font-size:40px}.album-sleeve strong,.album-sleeve small{display:block;margin-top:8px;overflow-wrap:anywhere}.album-sleeve small{font-size:10px;color:#d7cbae}#album-open{margin-top:24px;padding:18px;background:#111d11;border:1px solid #7c8768}#album-tracks{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}#room-list>div,#session-list>div{display:flex;gap:8px;margin-top:12px}#session-queue{padding-left:24px}#session-queue li{margin:10px 0;padding:8px;background:#111c12;overflow-wrap:anywhere}#session-queue button{margin-left:8px;font-size:11px;padding:6px 8px}#memory-marks button{margin:7px}.tape-reel:after{content:'';width:72%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#453322 0 2px,#261e15 3px 4px);position:absolute;opacity:.4;pointer-events:none}.tape-reel{position:relative}.tape-reel:first-child:after{transform:scale(var(--tape-left,1))}.tape-reel:nth-child(2):after{transform:scale(var(--tape-right,.55))}.cassette-spools i:first-child{box-shadow:0 0 0 calc(5px * var(--tape-left,1)) #594933}.cassette-spools i:nth-child(2){box-shadow:0 0 0 calc(5px * var(--tape-right,.55)) #594933}@media(max-width:600px){.experience{padding:16px;margin:18px 8px}.experience-heading h2{font-size:21px}#album-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.experience-tabs button{flex:1;padding:9px;font-size:11px}.experience label input[type=range]{max-width:100%}}@media(prefers-reduced-motion:reduce){#album-shelf .album-sleeve{transition:none}}

.mixtape-sleeve{display:grid;grid-template-columns:70px 1fr;gap:14px;max-width:500px;padding:18px;border:8px solid #615a47;background:repeating-linear-gradient(#ddd5b6 0 23px,#b7b299 24px 25px);color:#293521;box-shadow:3px 5px 12px #0006}.mixtape-art{aspect-ratio:1;background:radial-gradient(circle,#35472e,#92916d)}.mixtape-art img{width:100%;height:100%;object-fit:cover}.mixtape-sleeve strong{font:italic 23px Georgia;overflow-wrap:anywhere}.mixtape-sleeve p{color:#48563d;white-space:pre-wrap}.mixtape-reels{grid-column:1/-1;text-align:center;font-size:38px;background:#3c4438;color:#c6c6a3;border:3px solid #91977e;border-radius:12px}

body[data-cd=glass96] .cd-mechanism:after{content:'';position:absolute;top:1px;bottom:1px;left:calc(var(--cd-position,0) * 16.666%);width:16.666%;border:3px solid #d4dbd1;border-bottom:5px solid #a7b7b0;box-shadow:0 0 8px #d1dfcd66;pointer-events:none;transition:left .7s ease}body[data-cd-open=true][data-cd=glass96] .cd-mechanism:after{opacity:.3}@media(prefers-reduced-motion:reduce){body[data-cd=glass96] .cd-mechanism:after{transition:none}}

.catalogue-favorites{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:10px 0 20px;font-size:11px}.catalogue-favorites button{font-size:11px}.catalogue-favorites input{accent-color:#ccb67f}.catalogue-favorites label{display:flex;align-items:center;gap:8px}body[data-deck=silver] .deck{box-shadow:inset 0 1px 2px #fff6,inset 0 -8px 16px #37433555,0 15px 25px #0006}body[data-amp=silver] .amplifier{background:repeating-linear-gradient(#bcc4bb 0 1px,#a9b2a8 2px 3px)}.vu-needle{will-change:transform}

.meters>div>output{display:block;text-align:center;margin-top:7px;font:9px monospace;color:#334332}.room-rack .meters output{display:none}.meters>div{position:relative}
