/* Sea-glass listening room with an aged analog console and top-mounted selectors. */
.cassette-edition{background:#07151e!important;--red:#d5e1d4}.album-backdrop{position:fixed;inset:0;z-index:-2;overflow:hidden;background:#07151e}.backdrop-layer{position:absolute;inset:-20px;background-position:center;background-size:cover;filter:blur(2px) saturate(.94);opacity:0;transition:opacity .9s ease;transform:scale(1.04)}.backdrop-layer.visible{opacity:1}.album-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#06132045,#07192766 46%,#030f1e9c)}
.cassette-edition .publication{background:transparent;border:0;border-radius:0;box-shadow:none;margin:0 auto;width:min(100%,470px);min-height:100svh;overflow:visible}.cassette-edition .publication:before{display:none}.cassette-header{display:flex;justify-content:space-between;align-items:center;padding:14px 23px 0;color:#cad6d5;height:44px;font-size:16px;letter-spacing:1px}.cassette-header small{font:6px var(--mono);letter-spacing:1.4px;margin-left:10px;opacity:.6}.cassette-header button{font-size:14px;letter-spacing:.4px;min-height:32px;padding:0}.cassette-edition .room{padding:0 22px 0;display:block;height:auto;min-height:0}.cassette-edition .track-head{padding:16px 0 8px;gap:14px}.cassette-edition .track-head h1{font-size:40px;line-height:1.15;margin:5px 0 0;font-weight:400;max-width:none;letter-spacing:2px}.cassette-edition .track-head h1.long-title{font-size:29px;letter-spacing:1px}.cassette-edition .track-byline{font-size:7px}.cassette-edition .track-byline span{font-size:13px}.cassette-edition .running-label{font-size:7px;letter-spacing:1.8px}
.inline-deck{position:relative;max-width:330px;margin:0 auto 9px}.disc-stage{width:min(65vw,258px);height:min(65vw,258px);margin:5px auto 0;position:relative;isolation:isolate}.cassette-edition #platter{width:100%;height:100%;border:4px solid #142634;padding:8px;box-shadow:0 14px 22px #020b13b0,0 0 0 1px #d8e4da3b;background:repeating-conic-gradient(#8da8a5 0deg 1deg,#253c48 1deg 3deg);opacity:1;transition:filter .3s}.cassette-edition .vinyl{background:conic-gradient(from 25deg,#050e17 0deg,#3b536254 51deg,#07121c 84deg 157deg,#6b788645 180deg,#07121d 210deg 275deg,#344c5f 308deg,#070f19 360deg),repeating-radial-gradient(circle,#45606f 0 1px,#0a1923 1px 3px)}.cassette-edition .vinyl-label{width:38%;height:38%;border:3px solid #c1d3c64a}.cassette-edition .vinyl-label img{filter:brightness(.82) saturate(.8)}.cassette-edition .vinyl-label span{font-size:23px;text-align:center;line-height:1.4;max-width:80%}.cassette-edition .vinyl-label i{width:5px;height:5px;top:calc(50% - 2.5px);left:calc(50% - 2.5px)}.cassette-edition .tonearm{top:-4px;right:-14px;height:69%;width:6px;transform:rotate(21deg);opacity:.9}.cassette-edition .tonearm:before{content:'';position:absolute;width:19px;height:19px;border-radius:50%;background:radial-gradient(#bec9c7,#436170 45%,#182e3f 65%);top:-6px;left:-7px;box-shadow:0 3px 5px #0009}.cassette-edition .tonearm:after{background:#a8bebc;border-color:#d8dcca;box-shadow:0 3px 5px #0008}
.loading-ring{position:absolute;inset:-7px;width:calc(100% + 14px);height:calc(100% + 14px);pointer-events:none;transform:rotate(-90deg);opacity:0;transition:opacity .35s}.loading-ring circle{fill:none;stroke-width:2}.ring-track{stroke:#c8e3e426}#ringProgress{stroke:#d9efe6;stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round;filter:drop-shadow(0 0 4px #8de6db);transition:stroke-dashoffset .16s linear}.is-preparing .loading-ring{opacity:1}.is-preparing #platter{filter:brightness(.48)}.deck-loading{pointer-events:none;position:absolute;inset:22%;border-radius:50%;background:radial-gradient(#0a223bed,#0d233ace 65%,transparent);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#f2f4e6;text-shadow:0 2px 5px #001321}.deck-loading>span:first-child{font-size:16px;letter-spacing:2px}.deck-loading strong{font:32px/1.4 var(--mono);font-weight:400}.deck-loading strong span{font-size:14px;margin-left:3px}.deck-loading>span:last-child{font-size:12px;line-height:1.4;color:#c4d7d8;white-space:nowrap}.is-decoding .loading-ring{animation:processing-light 1.5s ease-in-out infinite}@keyframes processing-light{50%{opacity:.4}}
.disc-caption{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:9px;font-size:13px;color:#b8ced3;min-height:28px}.disc-caption>span{white-space:nowrap}.disc-caption button{display:flex;gap:7px;align-items:center;padding:4px 0 4px 9px;font-size:16px;min-width:64px}.disc-caption output{font:11px var(--mono);color:#dfe4d4}.speed-control{display:flex;align-items:center;gap:8px;font:11px var(--mono);color:#bdccd0;max-width:170px;margin:0 auto;height:18px}.cassette-edition #deckSpeed{flex:1;width:100%;height:16px;margin:0;accent-color:#c1d5d1}.cassette-edition #retryDeck{margin:3px auto 8px;font-size:14px;padding:5px 12px}.cassette-edition .reading-tabs{gap:21px;min-height:31px;margin-bottom:7px}.cassette-edition .reading-tabs button{font-size:17px;min-height:30px;padding-bottom:5px}.cassette-edition #artCaption{margin-left:auto;font-size:11px;color:#bbcdcf;max-width:150px;text-align:right;line-height:1.5}.cassette-edition #readingPanel{padding:0 18px;border-radius:18px;background:linear-gradient(135deg,#b5d6df24,#8db3c611);border-color:#e5efe02b}.cassette-edition .lyric-window,.cassette-edition .note{height:120px;min-height:0}.cassette-edition #lyrics{padding:30px 0 50px}.cassette-edition .lyric-line{font-size:22px;line-height:1.5;padding:6px 0;letter-spacing:.5px}.cassette-edition .note{font-size:16px}.cassette-edition .note h2{font-size:21px}
.cassette-keys{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;padding:6px 5px 9px;background:#112833;border:1px solid #102632;border-radius:5px;box-shadow:inset 0 3px 6px #00111ca6,0 1px 0 #a8bbb355;isolation:isolate}.cassette-key{position:relative;min-width:0;height:44px;padding:0;background:#122936;border-radius:3px;touch-action:manipulation}.key-cap{position:absolute;inset:0 0 4px;border-radius:3px;border:1px solid color-mix(in srgb,var(--key-color),white 35%);background:linear-gradient(160deg,#fff6,#fff0 38%,#0002),var(--key-color);box-shadow:0 6px 0 color-mix(in srgb,var(--key-color),#162b38 55%),0 8px 4px #000a,inset 0 2px 1px #ffffff63;transition:transform .22s cubic-bezier(.2,.9,.3,1.4),box-shadow .18s,filter .18s;pointer-events:none}.key-cap:after{content:'';position:absolute;left:20%;right:20%;bottom:9px;height:6px;border-top:1px solid #fff4;border-bottom:1px solid #0c263b27}.cassette-key[aria-pressed=true] .key-cap{transform:translateY(6px);box-shadow:0 1px 0 color-mix(in srgb,var(--key-color),#162b38 75%),inset 0 2px 5px #132b3633;filter:brightness(.87)}.cassette-key:active .key-cap{transform:translateY(7px)}.cassette-key:focus-visible{outline:2px solid #f1ebd7;outline-offset:3px;z-index:2}.cassette-edition .timeline{margin:10px 2px 6px;font-size:8px}.cassette-edition .timeline input{height:18px}.listening-footer{display:flex;justify-content:space-between;gap:15px;padding:15px 0 max(16px,env(safe-area-inset-bottom));font-size:12px;color:#c4d1d2}.listening-footer a{border-bottom:1px solid #b3c7cc44;padding-bottom:3px}@keyframes reel-spin{to{transform:rotate(360deg)}}
@media(min-width:700px){.cassette-edition .publication{width:470px;margin:24px auto;min-height:0;background:#0718242b;border:1px solid #d3e4df1f;border-radius:24px;box-shadow:0 25px 80px #00132244}.cassette-edition .room{padding:0 28px}.cassette-header{padding-left:29px;padding-right:29px}.cassette-edition .disc-stage{width:270px;height:270px}.cassette-edition .lyric-window,.cassette-edition .note{height:140px}.cassette-edition .cassette-key{height:49px}}
@media(max-width:359px){.cassette-edition .room{padding:0 16px}.cassette-header{padding-left:16px;padding-right:16px}.cassette-header small{display:none}.cassette-edition .track-head h1{font-size:35px}.cassette-edition .track-head h1.long-title{font-size:26px!important}.cassette-edition .track-byline span{font-size:11px}.cassette-edition .disc-stage{width:210px;height:210px}.cassette-edition #artCaption{max-width:105px;font-size:10px}.cassette-edition .lyric-line{font-size:21px}.cassette-keys{gap:3px;padding-left:3px;padding-right:3px}.cassette-key{height:43px}.disc-caption{font-size:12px}.cassette-edition .console-label{font-size:5px;letter-spacing:.6px}}
@media(prefers-reduced-motion:reduce){.backdrop-layer,.key-cap{transition:none}.tape-reel,.is-decoding .loading-ring{animation:none}}
@media(max-width:699px){
 .cassette-header{height:38px;padding-top:9px}.cassette-edition .track-head{padding:12px 0 6px}.cassette-edition .track-head .running-label{display:block;line-height:10px}.cassette-edition .track-head h1{font-size:36px;line-height:1.12;margin-top:4px}.cassette-edition .disc-stage{width:min(56vw,222px);height:min(56vw,222px)}.cassette-edition .inline-deck{margin-bottom:5px}.cassette-edition .lyric-window,.cassette-edition .note{height:105px}.cassette-edition .console-label{min-height:14px;margin-bottom:5px}.cassette-edition .cassette-keys{padding-top:4px;padding-bottom:7px}.cassette-edition .timeline{margin-top:8px;margin-bottom:4px}.listening-footer{padding-top:11px;padding-bottom:max(12px,env(safe-area-inset-bottom));font-size:11px}.cassette-edition #lyrics{padding-top:26px}
}

@media(min-width:360px) and (max-width:699px){.listening-footer{padding-top:8px}}

/* The original analog face, with nine latching selectors above its VU meters. */
.cassette-edition .analog-with-keys{margin:18px -6px 0;padding:15px 17px 19px}
.cassette-edition .analog-with-keys .console-label{margin:0 3px 9px;font-size:6px;letter-spacing:.7px}
.cassette-edition .analog-with-keys .console-label a{font-size:13px}
.cassette-edition .analog-with-keys .cassette-keys{margin-bottom:17px}
.cassette-edition .analog-with-keys .meter-row{gap:14px}
.cassette-edition .analog-with-keys .meter{height:67px}



.cassette-edition .analog-with-keys .timeline{margin:12px 2px 7px}
.cassette-edition .reading-content{margin-top:24px}
.cassette-edition .reading-content .lyric-window,.cassette-edition .reading-content .note{height:350px}
.cassette-edition #readingPanel{backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);background:linear-gradient(135deg,#102b407a,#122c3d66)}
.cassette-edition #lyrics{padding:24px 0 100px}
.cassette-edition button.lyric-line{display:block;width:100%;text-align:left;min-height:44px;color:#c1d3ddb5;transition:color .09s;text-shadow:0 1px 5px #00152599;touch-action:manipulation}
.cassette-edition button.lyric-line.active{color:#f5f6e8;text-shadow:0 0 15px #a6e2dc6b}
.cassette-edition button.lyric-line:focus-visible{outline:1px solid #d5ece3;outline-offset:-1px;border-radius:6px}
.cassette-edition .note{padding:20px 0;line-height:1.95}
.cassette-edition .cover{min-height:calc(100svh - 44px);padding-top:24px}
.cassette-edition.cover-view .publication{background:linear-gradient(180deg,#061d323b,#06172555 75%,#04111c88),url('assets/ocean.5f8359a23572.webp') center 36%/cover}
.cassette-edition.cover-view .album-backdrop{visibility:hidden}
.cassette-edition .cover .cover-title h1{font-size:92px}
@media(max-width:699px){.cassette-edition .reading-content .lyric-window,.cassette-edition .reading-content .note{height:262.5px}.cassette-edition .analog-with-keys{margin-top:14px}.cassette-edition .reading-content{margin-top:23px}}
@media(max-width:359px){.cassette-edition .analog-with-keys{padding-left:12px;padding-right:12px}.cassette-edition .analog-with-keys .meter-row{gap:9px}.cassette-edition .cover .cover-title h1{font-size:79px}}

/* Moulded piano keys: a rounded cap travels through a recessed top plate.
   The front collar stays fixed and occludes the lower body on the downstroke. */
.cassette-edition .analog-with-keys{margin-top:62px;border-top-left-radius:9px;border-top-right-radius:9px}
.console-top-plane{position:absolute;left:-1px;right:-1px;top:-26px;height:30px;z-index:-1;clip-path:polygon(3% 0,99% 0,100% 91%,100% 100%,0 100%,0 91%);background:linear-gradient(180deg,#718587 0,#415c65 8%,#344e59 73%,#7d94935c 92%,#1b3541 100%);box-shadow:inset 0 1px 0 #d6ded05c}
.console-top-plane:after{content:'';position:absolute;inset:2px 7%;background:repeating-linear-gradient(92deg,transparent 0 17px,#c6d1bf0d 18px,transparent 19px 89px);opacity:.7}
.cassette-edition .analog-with-keys .cassette-keys{position:absolute;top:-56px;left:17px;right:17px;z-index:3;height:60px;gap:1px;margin:0;padding:0 1px;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;isolation:isolate}
.cassette-edition .analog-with-keys .cassette-keys:before{content:'';position:absolute;left:-5px;right:-5px;bottom:7px;height:24px;border:1px solid #071d2794;border-radius:5px 5px 3px 3px;background:linear-gradient(#122933,#0a1c25 55%,#273f48);box-shadow:inset 0 2px 3px #001019,0 1px 0 #acc0b640;z-index:-1}
.cassette-edition .analog-with-keys .cassette-keys:after{content:'';position:absolute;bottom:2px;left:-6px;right:-6px;height:9px;border-radius:2px 2px 5px 5px;pointer-events:none;background:linear-gradient(#9bb0a94a,#47616a 20%,#354d58 73%,#152e3a);box-shadow:0 1px 1px #d3ddd02b,inset 0 -1px 0 #152c37;z-index:4}
.cassette-edition .analog-with-keys .cassette-key{--cap-color:color-mix(in srgb,var(--key-color),#86968e 14%);--cap-light:color-mix(in srgb,var(--cap-color),#e8ecdd 22%);--cap-mid:color-mix(in srgb,var(--cap-color),#405461 15%);--cap-dark:color-mix(in srgb,var(--cap-color),#162e3a 38%);position:relative;height:60px;border-radius:4px;background:none;isolation:isolate;-webkit-tap-highlight-color:transparent;touch-action:pan-y}
.cassette-edition .analog-with-keys .key-slot{position:absolute;left:0;right:0;bottom:8px;height:20px;border-radius:4px;background:linear-gradient(#05151e,#122d38 70%,#040f17);box-shadow:inset 1px 0 2px #000a,inset -1px 0 1px #97b2ad22,0 1px 0 #b8cac323;pointer-events:none}
.cassette-edition .analog-with-keys .key-slot:after{content:'';position:absolute;inset:2px 2px -1px;border-radius:4px;background:#0006;box-shadow:0 0 7px 2px #00121bcc;transition:opacity .14s;opacity:.58}
.cassette-edition .analog-with-keys .key-cap{position:absolute;inset:0 0 6px;height:auto;border:0;border-radius:0;box-shadow:none;background:none;filter:drop-shadow(1px 4px 2px #0007);transform:translateY(0);transform-origin:50% 75%;transition:transform .15s cubic-bezier(.18,.7,.3,1),filter .15s;clip-path:inset(-4px -6px 1px -6px)}
.cassette-edition .analog-with-keys .key-cap:before,.cassette-edition .analog-with-keys .key-cap:after{display:none}
.cassette-edition .analog-with-keys .key-cap svg{display:block;width:100%;height:100%;overflow:visible}
.cassette-edition .analog-with-keys .cassette-key[aria-pressed=true] .key-cap{transform:translateY(10px);filter:drop-shadow(0 1px .7px #0008) brightness(.95);box-shadow:none;transition-duration:.085s}
.cassette-edition .analog-with-keys .cassette-key.is-pressing .key-cap{transform:translateY(13px) rotateX(-3deg);filter:drop-shadow(0 1px .5px #0009) brightness(.94);box-shadow:none;transition-duration:.065s}
.cassette-edition .analog-with-keys .cassette-key[aria-pressed=true] .key-slot:after,.cassette-edition .analog-with-keys .cassette-key.is-pressing .key-slot:after{opacity:1}
.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:selector-return .24s both}
@keyframes selector-return{0%,18%{transform:translateY(10px);filter:drop-shadow(0 1px .7px #0008)}72%{transform:translateY(-.6px)}100%{transform:translateY(0);filter:drop-shadow(1px 4px 2px #0007)}}
.cassette-edition .analog-with-keys .cassette-key:focus-visible{outline:1px solid #e0eadb;outline-offset:1px;border-radius:4px}
@media(max-width:359px){.cassette-edition .analog-with-keys .cassette-keys{left:12px;right:12px;gap:1px}.cassette-edition .analog-with-keys{margin-top:60px}}
@media(prefers-reduced-motion:reduce){.cassette-edition .analog-with-keys .key-cap,.cassette-edition .analog-with-keys .key-slot:after{transition:none}.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:none}}

/* One primary action, with smaller transport controls and a quiet utility row. */
.cassette-edition .analog-with-keys .transport{grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;gap:13px;padding:5px 7px 14px;border-radius:7px}
.cassette-edition .analog-with-keys .hardware-key{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.cassette-edition .analog-with-keys .hardware-key svg{fill:currentColor;stroke:none;flex-shrink:0}
.cassette-edition .analog-with-keys .skip-key{height:48px;gap:4px;border-radius:4px;color:#e1e9df;border-color:#718c91;background:linear-gradient(145deg,#647f87,#46626e 82%,#3b5662);box-shadow:0 7px 0 #233d49,0 8px 3px #001521a6,inset 0 1px 1px #b9cebd66}
.cassette-edition .analog-with-keys .skip-key svg{width:25px;height:25px}
.cassette-edition .analog-with-keys .skip-key span{font:13px/1 var(--serif);letter-spacing:0;white-space:nowrap}
.cassette-edition .analog-with-keys .play-key{height:70px;flex-direction:row;gap:12px;padding:0 10px;border-radius:7px;border-color:#d1d8c4;color:#203e46;background:radial-gradient(ellipse at 28% 0,#f3f1db66,transparent 68%),linear-gradient(165deg,#e5e7d2,#c9d5c5 72%,#b8c7ba);box-shadow:0 10px 0 #738e88,0 12px 4px #00131da6,inset 0 2px 1px #ffffecb3,inset 1px 0 1px #faf9dc77,inset -1px -2px 2px #516f6c33}
.cassette-edition .analog-with-keys .play-key svg{width:38px;height:38px}
.cassette-edition .analog-with-keys .play-key span{font:30px/1 var(--serif);letter-spacing:2px}
.cassette-edition .analog-with-keys .play-key.is-down,.cassette-edition .analog-with-keys .play-key:active{transform:translateY(8px);color:#203e46;box-shadow:0 1px 0 #617d78,0 2px 2px #00131d88,inset 0 1px 3px #42645e44}
.cassette-edition .analog-with-keys .skip-key:active{transform:translateY(6px);box-shadow:0 1px 0 #213b47,inset 0 1px 3px #132a3666}
.cassette-edition .analog-with-keys .hardware-key:focus-visible{outline:2px solid #eef1df;outline-offset:4px}
.cassette-edition .console-utility{display:flex;justify-content:flex-end;margin:5px 1px -10px;position:relative;z-index:1}
.cassette-edition .analog-with-keys .loop-control{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 3px;color:#c2d2d3;background:none;border:0;box-shadow:none;transform:none;font:14px/1 var(--serif)}
.cassette-edition .loop-control svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cassette-edition .loop-control i{width:5px;height:5px;border-radius:50%;background:#132d38;box-shadow:0 1px 0 #90a49d44}
.cassette-edition .analog-with-keys .loop-control[aria-pressed=true]{color:#e5ead2}
.cassette-edition .loop-control[aria-pressed=true] i{background:#c9ddac;box-shadow:0 0 5px #c9ddac66}
@media(max-width:359px){.cassette-edition .analog-with-keys .transport{grid-template-columns:48px minmax(0,1fr) 48px;gap:9px;padding-left:5px;padding-right:5px}.cassette-edition .analog-with-keys .play-key{gap:7px;height:66px}.cassette-edition .analog-with-keys .play-key span{font-size:27px;letter-spacing:1px}.cassette-edition .analog-with-keys .play-key svg{width:35px;height:35px}}
/* Short phones keep the main play button in the initial viewport. */
@media(max-width:699px) and (max-height:740px){.cassette-edition .disc-stage{width:min(56vw,190px,25svh);height:min(56vw,190px,25svh)}}
@media(prefers-reduced-motion:reduce){.cassette-edition .analog-with-keys .hardware-key{transition:none}}

/* The key face descends into its fixed recess; the material colours stay unchanged. */
.cassette-edition .analog-with-keys .play-key:active{transform:translateY(10px);box-shadow:0 0 0 #617d78,inset 0 2px 4px #42645e55}

/* Reference finish: worn blue enamel, dark cast bezels, amber paper and glass. */
.cassette-edition .analog-with-keys{background:radial-gradient(ellipse at 28% 12%,#65879232,transparent 58%),radial-gradient(ellipse at 95% 95%,#081c3277,transparent 47%),linear-gradient(112deg,#294956,#213e50 45%,#183347);border-color:#0b1b28;box-shadow:inset 0 2px 0 #a2b2a567,inset 2px 0 1px #92a6a147,inset -2px 0 1px #061b29aa,inset 0 -5px 0 #0b1e2b,0 2px 0 #75878850,0 14px 28px #0008}
.cassette-edition .analog-with-keys:before{inset:2px;background:url('assets/console-rack-finish.77984bf54925.svg') center/100% 100%;opacity:.84;border-radius:8px}
.cassette-edition .analog-with-keys:after{border-radius:9px;background:linear-gradient(176deg,#e5dfbd0b,transparent 10% 90%,#07101e25);box-shadow:inset 1px 0 0 #adbaa060,inset -1px 0 0 #071723,inset 0 -1px 0 #a1ac9344}
.cassette-edition .analog-with-keys .console-top-plane{background:linear-gradient(180deg,#8c9c91 0,#3d5965 7%,#253f4f 75%,#8a9c935c 93%,#172e3c);box-shadow:inset 0 1px 0 #d7d9bd66}
.cassette-edition .analog-with-keys .meter-pair{gap:7px;padding:6px;border:1px solid #07141d;border-radius:6px;background:linear-gradient(135deg,#242c2c,#0a1118 60%,#151c20);box-shadow:0 1px 0 #91a09770,0 3px 5px #03111ccc,inset 1px 1px 1px #636c5870,inset -1px -1px 1px #000b}
.cassette-edition .analog-with-keys .meter{height:70px;border:1px solid #564827;border-radius:4px;background:radial-gradient(ellipse at 50% 100%,#f0e0a7,#dcc88f 60%,#af9159);box-shadow:inset 0 4px 9px #40291580,inset 0 -1px 4px #f6dfa577;color:#53462e;isolation:isolate}
.cassette-edition .analog-with-keys .meter:after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:3px;background:linear-gradient(116deg,transparent 0 16%,#fff8de23 17%,#fff8de0a 35%,transparent 36% 73%,#fff6d914 74%,transparent 85%);box-shadow:inset 0 1px 0 #fff2c96b,inset 1px 0 1px #fff6d533}
.cassette-edition .analog-with-keys .meter-arc{border-color:#695534;border-top-width:1px}
.cassette-edition .analog-with-keys .meter-arc:after{background:repeating-linear-gradient(90deg,#665431 0 1px,transparent 1px 9px)}
.cassette-edition .analog-with-keys .meter>span{font-size:6px;opacity:.9}
.cassette-edition .analog-with-keys .meter em{color:#a5432c}
.cassette-edition .analog-with-keys .meter b{color:#655435}
.cassette-edition .analog-with-keys .needle{background:#4b3b29;box-shadow:1px 0 1px #20130044}
.cassette-edition .analog-with-keys .screw{width:7px;height:7px;background:linear-gradient(132deg,#bfc7b5,#69858b 41%,#152836 44% 54%,#acb7a8 58%,#405c67 82%);box-shadow:0 0 0 1px #0c202ab3,0 1px 2px #0009,inset 0 1px 1px #e5e5c840}
.cassette-edition .analog-with-keys .console-label i{width:6px;height:6px;background:radial-gradient(circle at 36% 30%,#ccad70,#7c5c32);box-shadow:0 0 0 2px #112731,0 0 0 3px #9b94704d}
.cassette-edition.playing .analog-with-keys .console-label i{background:radial-gradient(circle at 38% 32%,#fff2c9,#e8ba68 58%,#9e6535);box-shadow:0 0 0 2px #112731,0 0 0 3px #b1a07470,0 0 8px #dfaa5266}

/* Record lacquer, aged nickel arm, and stationary raking light. */
.cassette-edition #platter{position:relative;border:3px solid #1a252a;padding:8px;background:repeating-conic-gradient(from 8deg,#a2aaa3 0deg .45deg,#3a4649 .5deg 1.5deg,#687571 1.6deg 2deg);box-shadow:0 13px 17px #02090dbf,0 3px 0 #090e12,inset 0 0 0 2px #b6beb04d,0 0 0 1px #cdd3bc39}
.cassette-edition .vinyl{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle,transparent 0 39%,#070b0c 39.5% 40.7%,transparent 41% 68%,#070b0c 69% 71%,#353e3c 71.3%,#080d0f 72%),repeating-radial-gradient(circle,#080e11 0px .55px,#3f4d4c .7px,#111c21 1px,#080e12 1.75px);box-shadow:inset 0 0 0 2px #080c0e,inset 0 0 0 3px #80908747,inset 0 0 8px 5px #000;}
.cassette-edition .vinyl:before{content:'';position:absolute;inset:0;border-radius:50%;background:url('assets/vinyl-patina.6d641ce40907.svg') center/100% 100%;pointer-events:none;z-index:2}
.cassette-edition .vinyl:after{content:'';position:absolute;inset:0;border-radius:50%;pointer-events:none;background:conic-gradient(from 28deg,transparent 0deg 15deg,#bac4b60d 26deg,transparent 49deg 172deg,#ced3bd0c 184deg,transparent 209deg);z-index:1}
.cassette-edition #platter:after{content:'';position:absolute;inset:8px;border-radius:50%;pointer-events:none;background:conic-gradient(from -36deg,transparent 0deg,#dce2c231 23deg,#c9d9d349 29deg,transparent 49deg 178deg,#aabcb921 198deg,transparent 219deg 360deg);-webkit-mask:radial-gradient(circle,transparent 0 29%,#000 31%);mask:radial-gradient(circle,transparent 0 29%,#000 31%);z-index:3}
.cassette-edition .vinyl-label{z-index:3;border:2px solid #b6baa066;box-shadow:0 0 0 3px #03090ba6,inset 0 0 12px #35291955}
.cassette-edition .vinyl-label:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:50%;background:url('assets/console-rack-finish.77984bf54925.svg') center/240px;opacity:.28;box-shadow:inset 0 0 8px #bdb09144;z-index:1}
.cassette-edition .vinyl-label span{z-index:2}
.cassette-edition .vinyl-label i{z-index:4;width:7px;height:7px;left:calc(50% - 3.5px);top:calc(50% - 3.5px);background:radial-gradient(circle at 32% 25%,#e6e6d0,#8b9188 38%,#283237 65%,#080c0e 70%);border:1px solid #8e9b9255;box-shadow:1px 2px 2px #000b}
.cassette-edition .tonearm{width:7px;opacity:1;z-index:5;background:repeating-linear-gradient(0deg,transparent 0 3px,#13191b15 3px 3.6px),linear-gradient(90deg,#263233,#818c81 20%,#e1dfbd 35%,#a6b3aa 48%,#566b6b 67%,#14292e 90%);border:1px solid #718478;box-shadow:2px 3px 2px #000a,5px 6px 5px #00111c55}
.cassette-edition .tonearm:before{width:29px;height:29px;left:-12px;top:-13px;background:repeating-conic-gradient(#546362 0deg 3deg,#172429 3deg 6deg);border:1px solid #9aa18d;box-shadow:inset 0 0 0 3px #1b282a,0 3px 0 #101a1e,2px 5px 6px #000a}
.cassette-edition .tonearm .arm-pivot{position:absolute;top:-7px;left:-6px;width:17px;height:17px;border-radius:50%;background:linear-gradient(135deg,#bec0a8,#657772 40%,#263c3e 65%,#b8beaa);box-shadow:inset 0 0 0 2px #283e3c,0 1px 2px #000a}
.cassette-edition .arm-pivot:after{content:'';position:absolute;inset:6px 3px;border-radius:50%;background:linear-gradient(#0e1c1e 40%,#c0c5b5 65%);transform:rotate(25deg)}
.cassette-edition .arm-counterweight{position:absolute;left:-6px;top:-28px;width:18px;height:13px;border-radius:3px;background:repeating-linear-gradient(0deg,#333f3c 0 1px,#8f9785 1px 2px,#3c4e4c 2px 3px);border:1px solid #869084;box-shadow:1px 3px 3px #0009}
.cassette-edition .tonearm:after{bottom:-10px;left:-5px;width:16px;height:27px;border-radius:3px 3px 5px 5px;transform:rotate(-7deg);background:repeating-linear-gradient(0deg,transparent 0 5px,#03090d55 5px 6px),linear-gradient(90deg,#172a2d,#687a72 17%,#415550 40%,#213539 80%);border:1px solid #8e9b805e;box-shadow:inset 1px 1px 0 #d4d7b255,inset -2px -2px 0 #09181a,2px 3px 3px #000b}
.cassette-edition .arm-cartridge{position:absolute;bottom:-17px;left:1px;width:5px;height:12px;background:linear-gradient(90deg,#7f572e,#ceb279 45%,#503b28);border-radius:0 0 2px 2px;box-shadow:1px 2px 2px #0008}
.cassette-edition .analog-with-keys .needle{background:linear-gradient(90deg,#161b1a,#847351 45%,#302d23);box-shadow:1px 1px 1px #26170066}

/* Generated photographic material layers. Specular light never rotates. */
.cassette-edition #platter{padding:10px;border:1px solid #bfc6c4;background:conic-gradient(from -35deg,#697777,#f2f2e9 25deg,#7c8787 65deg,#c6cecc 115deg,#5d686e 175deg,#d7d9d5 218deg,#fafaf0 232deg,#889493 285deg,#d2d6d2 330deg,#697777);box-shadow:0 5px 0 #6c7779,0 7px 0 #26343b,0 15px 20px #0009,inset 0 0 0 2px #e3e7df80}
.cassette-edition .vinyl{background:#101315 url('assets/vinyl-matte-v10.139aab527489.webp') center/100% 100%;box-shadow:0 1px 3px #000c,inset 0 0 0 1px #141d20}
.cassette-edition .vinyl:before{opacity:.7}
.cassette-edition .vinyl:after{display:none}
.cassette-edition #platter:after{inset:10px;background:conic-gradient(from -36deg,transparent 0deg,#e2e9ea12 5deg,#eaf0f25e 22deg,#ffffff7a 29deg,#b8cbd52e 41deg,transparent 62deg 170deg,#d8e3e926 189deg,#edf3ee59 205deg,#b6c9d824 218deg,transparent 242deg 360deg);-webkit-mask:radial-gradient(circle,transparent 0 24%,#000 26%);mask:radial-gradient(circle,transparent 0 24%,#000 26%);transform:none}
.cassette-edition .vinyl-label{width:34%;height:34%;border:1px solid #e0e2d882;box-shadow:0 0 0 1px #070b0e}
.cassette-edition .tonearm{top:-18%;right:-12%;width:22%;height:94%;border:0;border-radius:0;background:url('assets/tonearm-blue-v10.30b804e2db69.webp') center/100% 100% no-repeat;box-shadow:none;transform-origin:28% 20%;transform:rotate(21deg);filter:drop-shadow(2px 4px 2px #00101888)}
.cassette-edition .tonearm:before,.cassette-edition .tonearm:after,.cassette-edition .tonearm>i{display:none}
.cassette-edition .analog-with-keys{background:none;border:0;border-radius:0;box-shadow:none;padding-left:24px;padding-right:24px;color:#243942;isolation:isolate}
.cassette-edition .analog-with-keys:before{content:'';position:absolute;inset:-9px -3px -9px;background:none center/100% 100% no-repeat;opacity:1;border-radius:0;z-index:-1;pointer-events:none}
.cassette-edition .analog-with-keys:after,.cassette-edition .analog-with-keys>.screw{display:none}
.cassette-edition .analog-with-keys .console-top-plane{background:linear-gradient(#b0b8b4,#e0e2d9 10%,#828d8d 80%,#ccd4cb);box-shadow:inset 0 1px #f7f5e9,0 1px 2px #24364088}
.cassette-edition .analog-with-keys .console-label{color:#263840;text-shadow:0 1px #e2e6da55}
.cassette-edition .analog-with-keys .console-label a{color:#203f4e}
.cassette-edition .analog-with-keys .timeline{color:#243c49}
.cassette-edition .analog-with-keys .loop-control{color:#29444d}
.cassette-edition .analog-with-keys .loop-control[aria-pressed=true]{color:#123a51}
.cassette-edition .analog-with-keys .console-utility{margin-bottom:-7px}
@media(max-width:359px){.cassette-edition .analog-with-keys{padding-left:21px;padding-right:21px}}

/* v11 — one navy enamel instrument, warm recessed meters. */
.cassette-edition #platter{padding:7px;border:3px solid #172b37;background:repeating-conic-gradient(#687f82 0deg .5deg,#243a46 .5deg 2deg);box-shadow:0 4px 0 #10222c,0 12px 22px #0009,inset 0 0 0 1px #76908d55}
.cassette-edition #platter:after{inset:7px}
.cassette-edition .analog-with-keys:before{background-image:url('assets/console-navy-v11.c91c2c9dad93.webp')}
.cassette-edition .analog-with-keys .console-top-plane{background:linear-gradient(#556d74,#2d4757 15%,#132c40 80%,#69818a);box-shadow:inset 0 1px #9aaea444,0 1px 2px #06131d}
.cassette-edition .analog-with-keys .console-label,.cassette-edition .analog-with-keys .console-label a,.cassette-edition .analog-with-keys .timeline,.cassette-edition .analog-with-keys .loop-control{color:#c0d2d2;text-shadow:none}
.cassette-edition .analog-with-keys .loop-control[aria-pressed=true]{color:#f0e6bc}
.cassette-edition .analog-with-keys .key-cap:after{content:'';position:absolute;inset:8% 4% 16%;background:url('assets/console-rack-finish.77984bf54925.svg') center/160px;opacity:.45;mix-blend-mode:soft-light;pointer-events:none;border-radius:4px}
.cassette-edition .analog-with-keys .hardware-key{position:relative;overflow:hidden;background-image:url('assets/console-rack-finish.77984bf54925.svg'),linear-gradient(150deg,#4c6c77,#2d4b5b);background-size:160px,100%;color:#dce6da;border-color:#77908b88;box-shadow:0 7px 0 #102c3b,0 9px 5px #00131fcc,inset 1px 1px 1px #becabc60,inset -2px -2px 2px #0d283a66}
.cassette-edition .analog-with-keys .play-key{background-image:url('assets/console-rack-finish.77984bf54925.svg'),linear-gradient(150deg,#d4d9c6,#adbdb2);background-size:190px,100%;color:#1a3d48;border-color:#d3dfce;box-shadow:0 10px 0 #60766e,0 12px 5px #061723aa,inset 1px 2px 1px #f1f1d7b3,inset -2px -2px 2px #68837770}
.cassette-edition .analog-with-keys .play-key.is-down{transform:translateY(8px);box-shadow:0 2px 0 #526a65,inset 0 2px 4px #38554c66}
.cassette-edition .analog-with-keys .play-key:active{transform:translateY(10px);box-shadow:inset 0 2px 5px #38554c77}
.cassette-edition .analog-with-keys .skip-key:active{transform:translateY(6px);box-shadow:0 1px 0 #102c3b,inset 0 2px 4px #061d2c}
.meter-power{display:flex;align-items:center;gap:8px;margin:-4px 0 4px;padding:0 5px;min-height:28px;color:#bfcdc7;font:8px var(--mono);letter-spacing:1.4px;background:none;border:0;cursor:pointer}
#powerLight{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#9d815c,#3b3229 70%);box-shadow:0 0 0 2px #070f16,0 0 0 3px #6c777466;transition:background .2s,box-shadow .2s}
.playing #powerLight{background:radial-gradient(circle at 35% 25%,#fff9d4,#ecba61 48%,#be742d);box-shadow:0 0 0 2px #17212a,0 0 0 3px #c6b58855,0 0 9px #fac16a99}
.power-toggle{display:block;width:21px;height:10px;border:1px solid #7b8c8555;background:#061722;border-radius:8px;box-shadow:inset 0 2px 3px #0009}
.power-toggle:after{content:'';display:block;width:8px;height:8px;border-radius:50%;background:linear-gradient(#a3b0a5,#506b70);transition:transform .15s}
.playing .power-toggle:after{transform:translateX(11px)}
.cassette-edition .analog-with-keys .meter-pair{background:none;border:0;padding:0;box-shadow:none;gap:7px}
.cassette-edition .analog-with-keys .meter{height:76px;border:0;background:url('assets/vu-v11.68d58c3cb500.webp') center/100% 100%;border-radius:8px;box-shadow:0 2px 4px #0009;filter:brightness(.49) saturate(.55);transition:filter .35s,box-shadow .35s}
.cassette-edition.playing .analog-with-keys .meter{filter:brightness(1.04) saturate(1.15);box-shadow:0 2px 4px #000b,0 0 11px #dcaa4020}
.cassette-edition .analog-with-keys .meter>span,.cassette-edition .analog-with-keys .meter>b,.cassette-edition .analog-with-keys .meter-arc{display:none}
.cassette-edition .analog-with-keys .meter:after{background:linear-gradient(115deg,transparent,#ffffff0a 30%,transparent 45%);box-shadow:none}
.cassette-edition .analog-with-keys .needle{bottom:13%;height:60%;width:1px;left:50%;background:#231b15;box-shadow:1px 0 1px #392b1844;z-index:2}
.cassette-edition .console-utility{justify-content:space-between;align-items:center}
.mode-toggle{min-height:44px;padding:5px 0;color:#c6d6d4;font:15px var(--serif);background:none;border:0;cursor:pointer}
.mode-toggle[aria-expanded=true]{color:#ead39d}
.effects-panel{margin:24px 0 10px;padding:20px 18px;border:1px solid #80969244;border-radius:10px;background:linear-gradient(145deg,#173243f5,#0a1e30f5);box-shadow:inset 0 1px #bbcab622,0 6px 15px #0004;color:#d5dfd7}
.effects-panel[hidden]{display:none}
.effects-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.effects-heading>div>span{font:9px var(--mono);letter-spacing:2px;color:#8eaab6}.effects-heading h2{font:24px var(--serif);margin:8px 0}.effects-panel>p{font:15px/1.6 var(--serif);color:#a2bbc5;margin:8px 0 22px}.effects-heading button{flex-shrink:0;border:1px solid #8ca39b66;border-radius:5px;padding:10px;color:#d7dfca;background:#314f5a;font:15px var(--serif)}
.effects-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.effects-grid fieldset{min-width:0;border:1px solid #738c8750;border-radius:7px;padding:12px;background:#07192755}.effects-grid legend{font:18px var(--serif);color:#d9dec9}.effects-grid legend label{display:flex;align-items:center;gap:9px;min-height:32px}.effects-grid input[type=checkbox]{width:18px;height:18px;accent-color:#a5c0b3}.fx-control{display:grid;grid-template-columns:1fr auto;gap:7px;font:15px var(--serif);margin:10px 0}.fx-control output{font:11px var(--mono);color:#9bb9bf}.fx-control input{grid-column:1/-1;width:100%;height:28px;accent-color:#a4bbab}
@media(max-width:450px){.effects-grid{grid-template-columns:1fr}.effects-heading h2{font-size:21px}}
@media(max-width:699px) and (max-height:740px){.cassette-edition .disc-stage{width:min(50vw,160px,22svh);height:min(50vw,160px,22svh)}.cassette-edition .analog-with-keys .meter{height:65px}}
@media(prefers-reduced-motion:reduce){.power-toggle:after,.cassette-edition .analog-with-keys .meter{transition:none}}
.effect-presets{display:flex;gap:12px;align-items:center;margin:0 0 20px;flex-wrap:wrap}.effect-presets button{min-height:44px;border:1px solid #8e9d8666;border-radius:5px;padding:9px 16px;background:linear-gradient(#40575e,#203e50);box-shadow:0 3px 0 #061723;color:#d9dec9;font:18px var(--serif)}.effect-presets button[aria-pressed=true]{background:linear-gradient(#c1b689,#7e8065);color:#152e3c;box-shadow:inset 0 2px 3px #202f3255;transform:translateY(2px)}.effect-presets span{font:14px/1.5 var(--serif);color:#a6bec3}

/* v13: use the lyric panel's sea-glass blue; hardware detail is only a quiet surface. */
.cassette-edition{--listening-glass:linear-gradient(135deg,#102b407a,#122c3d66)}
.cassette-edition #readingPanel,.cassette-edition .analog-with-keys{background:var(--listening-glass);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border:1px solid #e5efe02b;border-radius:18px;box-shadow:inset 0 1px 0 #e5f4f111}
.cassette-edition .analog-with-keys:before{inset:2px;border-radius:16px;background-image:url('assets/console-navy-v11.c91c2c9dad93.webp');background-size:118% 118%;opacity:.095;mix-blend-mode:luminosity;z-index:-1}
.cassette-edition .analog-with-keys .console-top-plane{background:linear-gradient(#465f6a,#294657 35%,#193647);box-shadow:inset 0 1px #b1c7c033}
.cassette-edition .analog-with-keys .hardware-key{background-image:url('assets/console-rack-finish.77984bf54925.svg'),linear-gradient(150deg,#45616c,#2b4858);border-color:#98afa144;box-shadow:0 7px 0 #172e3b,0 8px 4px #00132066,inset 0 1px 0 #c8d4c437}
.cassette-edition .analog-with-keys .play-key{background-image:url('assets/console-rack-finish.77984bf54925.svg'),linear-gradient(150deg,#b4c5ba,#8fa99f);color:#173b47;border-color:#ccd8c762;box-shadow:0 10px 0 #536e69,0 11px 4px #00132055,inset 0 1px 0 #f1f1d760}
.cassette-edition .analog-with-keys .play-key.is-down{box-shadow:0 2px 0 #536e69,inset 0 2px 4px #38554c55}
.cassette-edition .analog-with-keys .play-key:active{box-shadow:inset 0 2px 5px #38554c66}
.cassette-edition .key-cap svg{filter:saturate(.86) brightness(.94)}
.effects-panel{background:var(--listening-glass);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border-color:#e5efe02b;box-shadow:inset 0 1px #e5f4f111}
/* v14: quiet graphite rim, generated matching transport caps. */
.cassette-edition #platter{background: url('assets/console-rack-finish.77984bf54925.svg') center/200px,linear-gradient(135deg,#40535a,#1b2d37 45%,#283e47 80%,#52676b);border:2px solid #1c303c;box-shadow:inset 0 1px 1px #a4b4aa70,inset 0 -2px 2px #06131c,0 4px 0 #11232d,0 12px 22px #0008}
.cassette-edition .analog-with-keys .hardware-key{background:transparent none center/100% 100% no-repeat;border:0;box-shadow:0 5px 3px #06162070;border-radius:8px;color:#e1e8dc;overflow:visible}
.cassette-edition .analog-with-keys .play-key{background-image:none;color:#143443;box-shadow:0 8px 3px #06162080;border-radius:10px}
.cassette-edition .analog-with-keys .hardware-key svg{position:relative;top:-3px;filter:drop-shadow(0 1px 0 #f1f1d433)}
.cassette-edition .analog-with-keys .play-key.is-down{transform:translateY(8px);box-shadow:0 1px 2px #06162088}
.cassette-edition .analog-with-keys .play-key:active{transform:translateY(10px);box-shadow:none}
.cassette-edition .analog-with-keys .skip-key:active{transform:translateY(6px);box-shadow:none}
.single-effect{display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:15px 12px;border:1px solid #819b9730;border-radius:8px;background:#09213333}.effect-name{font:20px var(--serif);color:#c8d9d5}.single-effect output{align-self:center;font:12px var(--mono);color:#91aab3}.single-effect small{grid-column:1/-1;font:14px var(--serif);color:#9bb4bf}.single-effect input{grid-column:1/-1;width:100%;height:32px;margin:4px 0 0;accent-color:#a9c2b4}.single-effect.effect-active{border-color:#b3c8b570;background:#799b9e14}.single-effect.effect-active output{color:#e6d6aa}.single-effects{gap:10px}
/* v15 — softly inflated sea-glass jelly caps, shared across all controls. */
.cassette-edition .analog-with-keys .hardware-key{background-image:none;background-color:transparent;border:0;border-radius:16px;box-shadow:0 5px 7px #00152277;transition:transform .22s cubic-bezier(.2,.8,.3,1.25),filter .2s,box-shadow .2s;color:#173c4b;transform-origin:50% 100%}
.cassette-edition .analog-with-keys .play-key{background-image:none;border-radius:25px;box-shadow:0 8px 9px #00152288;color:#123541}
.cassette-edition .analog-with-keys .hardware-key svg{top:-1px;filter:drop-shadow(0 1px 0 #f1ffff55)}
.cassette-edition .analog-with-keys .play-key.is-down{transform:translateY(6px) scaleY(.91);box-shadow:0 2px 4px #00152288;filter:brightness(.94)}
.cassette-edition .analog-with-keys .play-key:active{transform:translateY(8px) scale(1.02,.84);box-shadow:0 1px 2px #00152277}
.cassette-edition .analog-with-keys .skip-key:active{transform:translateY(5px) scale(1.04,.88);box-shadow:0 1px 2px #00152277}
.cassette-edition .analog-with-keys .cassette-keys{gap:3px}
.cassette-edition .analog-with-keys .key-cap{inset:4px 0 9px;border-radius:11px;background: none center/100% 100%,var(--key-color);background-blend-mode:luminosity;border:0;box-shadow:0 5px 4px #00151c88,inset 0 1px 0 #ffffff60;clip-path:none;filter:none;transform-origin:50% 100%;transition:transform .22s cubic-bezier(.18,.9,.25,1.4),box-shadow .2s,filter .2s}
.cassette-edition .analog-with-keys .key-cap svg,.cassette-edition .analog-with-keys .key-cap:before,.cassette-edition .analog-with-keys .key-cap:after{display:none}
.cassette-edition .analog-with-keys .cassette-key[aria-pressed=true] .key-cap{transform:translateY(8px) scaleY(.88);filter:brightness(.88) saturate(1.1);box-shadow:0 1px 3px #00101999,inset 0 1px 2px #ffffff44}
.cassette-edition .analog-with-keys .cassette-key.is-pressing .key-cap{transform:translateY(11px) scale(1.03,.78);filter:brightness(.92);box-shadow:0 1px 2px #00101999}
.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:jelly-release .32s both}
.cassette-edition .analog-with-keys .cassette-keys:before{background:linear-gradient(#16394766,#0a263377);border-color:#a9c9c126;border-radius:9px;box-shadow:inset 0 2px 3px #00101966}
.cassette-edition .analog-with-keys .cassette-keys:after{background:linear-gradient(#99c0bb35,#375b6655);border-radius:5px;height:6px;box-shadow:inset 0 1px #cde4d92a}
@keyframes jelly-release{0%{transform:translateY(8px) scaleY(.88)}55%{transform:translateY(-1px) scale(.98,1.04)}100%{transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.cassette-edition .analog-with-keys .hardware-key,.cassette-edition .analog-with-keys .key-cap{transition:none}.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:none}}
/* v16 — restrained liquid glass: transparent body, thin specular rim. */
.cassette-edition .analog-with-keys .hardware-key{background:linear-gradient(145deg,#e4f4ee25,#b3d3d50b 45%,#accdd11b);border:1px solid #d5eeec60;border-radius:14px;box-shadow:inset 0 1px 0 #f5fffb91,inset 1px 0 0 #eafff22e,inset 0 -1px 0 #abc9ce4a,0 5px 8px #00121e45;backdrop-filter:blur(9px) saturate(1.25);-webkit-backdrop-filter:blur(9px) saturate(1.25);color:#e6f0e8;transition:transform .16s ease-out,box-shadow .16s,background .16s;overflow:hidden}
.cassette-edition .analog-with-keys .hardware-key:before{content:'';position:absolute;inset:1px;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,#ffffff12,transparent 28% 72%,#d7eff416);box-shadow:inset 0 1px 1px #fff4}
.cassette-edition .analog-with-keys .hardware-key svg{z-index:1;top:0;filter:drop-shadow(0 1px 2px #001d3566)}
.cassette-edition .analog-with-keys .play-key{background:linear-gradient(145deg,#d5eee84a,#92b7c024 48%,#adc8c633);border-color:#dcefe78a;border-radius:17px;color:#edf5e9;box-shadow:inset 0 1px 0 #f5fffcbb,inset 0 -1px 0 #a1c7c97a,0 7px 9px #00121f55}
.cassette-edition .analog-with-keys .play-key.is-down{transform:translateY(5px);filter:none;box-shadow:inset 0 2px 4px #08233750,inset 0 1px 0 #e2f5ec55,0 1px 3px #00152255}
.cassette-edition .analog-with-keys .play-key:active{transform:translateY(7px);box-shadow:inset 0 2px 5px #08233766}
.cassette-edition .analog-with-keys .skip-key:active{transform:translateY(4px);box-shadow:inset 0 2px 4px #08233766}
.cassette-edition .analog-with-keys .key-cap{inset:5px 0 9px;background:linear-gradient(145deg,#ffffff38,transparent 40%,#d8f2f014),color-mix(in srgb,var(--key-color) 42%,transparent);background-blend-mode:normal;border:1px solid color-mix(in srgb,var(--key-color) 65%,#edf8ef);border-radius:8px;backdrop-filter:blur(7px) saturate(1.15);-webkit-backdrop-filter:blur(7px) saturate(1.15);box-shadow:inset 0 1px 0 #fff9,inset 1px 0 0 #ffffff28,inset 0 -2px 2px #15364733,0 5px 4px #00172250;filter:none;transition:transform .17s ease-out,box-shadow .17s,background .17s}
.cassette-edition .analog-with-keys .cassette-key[aria-pressed=true] .key-cap{transform:translateY(8px);filter:none;background:linear-gradient(145deg,#fff2,transparent 48%),color-mix(in srgb,var(--key-color) 30%,transparent);box-shadow:inset 0 2px 3px #0b243850,0 1px 2px #00131c55}
.cassette-edition .analog-with-keys .cassette-key.is-pressing .key-cap{transform:translateY(10px);filter:none;box-shadow:inset 0 2px 3px #0b243866}
.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:none}
@media(prefers-reduced-motion:reduce){.cassette-edition .analog-with-keys .hardware-key,.cassette-edition .analog-with-keys .key-cap{transition:none}}
/* v17: visible glass depth, fixed socket and tactile travel. */
.cassette-edition .analog-with-keys .hardware-key{overflow:visible;box-shadow:inset 0 1px 0 #f5fffbad,inset 1px 0 1px #defff346,inset -1px 0 1px #a6d4dc33,0 1px 0 #88aeb1,0 6px 0 #244553,0 7px 0 #abc8c64a,0 10px 8px #00111e80;transform:translateY(-3px)}
.cassette-edition .analog-with-keys .play-key{box-shadow:inset 0 2px 1px #f5fffbad,inset 1px 0 1px #defff34a,0 1px 0 #a5c7c4,0 9px 0 #3e626d,0 10px 0 #9cbfbd55,0 13px 9px #00111e88}
.cassette-edition .analog-with-keys .hardware-key:before{background:radial-gradient(circle at var(--touch-x,28%) var(--touch-y,18%),#effffb38,transparent 58%),linear-gradient(115deg,#ffffff16,transparent 35% 70%,#d7eff416);transition:opacity .15s}
.cassette-edition .analog-with-keys .play-key.is-down{transform:translateY(5px);box-shadow:inset 0 2px 5px #08233766,inset 0 1px 0 #d4eeec66,0 1px 0 #547b80,0 3px 3px #00142288}
.cassette-edition .analog-with-keys .play-key:active{transform:translateY(7px);box-shadow:inset 0 3px 6px #08233777,0 1px 1px #00142288}
.cassette-edition .analog-with-keys .skip-key:active{transform:translateY(3px);box-shadow:inset 0 2px 4px #08233766,0 1px 0 #42616d,0 2px 2px #00142288}
.cassette-edition .analog-with-keys .key-cap{inset:2px 1px 13px;border-radius:7px;background:radial-gradient(ellipse at var(--touch-x,23%) var(--touch-y,15%),#fff5,transparent 58%),linear-gradient(150deg,#fff2,transparent 50%,#8cc4cf18),color-mix(in srgb,var(--key-color) 42%,transparent);box-shadow:inset 0 2px 1px #fff9,inset -1px 0 1px #ffffff45,1px 1px 0 color-mix(in srgb,var(--key-color),#b9d8d5 50%),2px 7px 0 color-mix(in srgb,var(--key-color) 42%,#173b4c),2px 8px 0 #9cbfb44a,3px 11px 6px #00101980;transform:perspective(220px) rotateY(-7deg) translateY(-1px);transform-origin:50% 85%}
.cassette-edition .analog-with-keys .cassette-key[aria-pressed=true] .key-cap{transform:perspective(220px) rotateY(-7deg) translateY(8px);box-shadow:inset 0 2px 4px #0b243850,1px 1px 0 #a3c9c166,1px 2px 2px #00131c77;background:linear-gradient(145deg,#fff2,transparent 48%),color-mix(in srgb,var(--key-color) 37%,transparent)}
.cassette-edition .analog-with-keys .cassette-key.is-pressing .key-cap{transform:perspective(220px) rotateY(-7deg) translateY(11px);box-shadow:inset 0 3px 4px #0b243866,0 1px 2px #00131c88}
.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:glass-key-return .22s ease-out both}
.glass-ripple{position:absolute;left:var(--touch-x,50%);top:var(--touch-y,50%);width:10px;height:10px;margin:-5px;border:1px solid #e0fff2aa;border-radius:50%;pointer-events:none;z-index:5;animation:glass-ripple .5s ease-out both}
@keyframes glass-ripple{from{transform:scale(.4);opacity:.7}to{transform:scale(4);opacity:0}}
@keyframes glass-key-return{from{transform:perspective(220px) rotateY(-7deg) translateY(8px)}to{transform:perspective(220px) rotateY(-7deg) translateY(-1px)}}
@media(hover:hover){.cassette-edition .analog-with-keys .hardware-key:hover{filter:brightness(1.1)}.cassette-edition .analog-with-keys .cassette-key:hover .key-cap{filter:brightness(1.1)}}
@media(prefers-reduced-motion:reduce){.glass-ripple{display:none}.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:none}}
/* v18: cassette-style three-quarter keycaps; lower transport stays unchanged. */
.cassette-edition .analog-with-keys .cassette-key{--cap-color:color-mix(in srgb,var(--key-color),#729ba6 9%);--cap-light:color-mix(in srgb,var(--key-color),#f0faf3 36%);--cap-mid:color-mix(in srgb,var(--key-color),#345f70 24%);--cap-dark:color-mix(in srgb,var(--key-color),#0d2b40 58%)}
.cassette-edition .analog-with-keys .key-cap{inset:0 0 6px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;filter:drop-shadow(2px 5px 2px #00131c88);transform:translateY(-1px);clip-path:inset(-4px -5px 1px -5px);transition:transform .17s cubic-bezier(.2,.75,.25,1),filter .17s}
.cassette-edition .analog-with-keys .key-cap svg{display:block;width:100%;height:100%;filter:none;overflow:visible}
.cassette-edition .analog-with-keys .cassette-key[aria-pressed=true] .key-cap{transform:translateY(9px);background:none;box-shadow:none;filter:drop-shadow(0 1px 1px #00131ca0) brightness(.94)}
.cassette-edition .analog-with-keys .cassette-key.is-pressing .key-cap{transform:translateY(12px);background:none;box-shadow:none;filter:drop-shadow(0 1px 1px #00131c99) brightness(.91)}
.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:cassette-glass-return .23s ease-out both}
.cassette-edition .analog-with-keys .cassette-keys{gap:1px}
.cassette-edition .analog-with-keys .cassette-keys:after{height:9px;bottom:2px;background:linear-gradient(#a8c9c32d,#375865 24%,#223e4e);box-shadow:inset 0 1px #d8ece12e;z-index:4}
@keyframes cassette-glass-return{0%{transform:translateY(9px)}70%{transform:translateY(-2px)}100%{transform:translateY(-1px)}}
@media(hover:hover){.cassette-edition .analog-with-keys .cassette-key:hover .key-cap{filter:drop-shadow(2px 5px 2px #00131c88) brightness(1.05)}}
@media(prefers-reduced-motion:reduce){.cassette-edition .analog-with-keys .key-cap{transition:none}.cassette-edition .analog-with-keys .cassette-key.releasing .key-cap{animation:none}}

/* v20 — the album sleeve is the only entrance. */
.cassette-edition.cover-view .cassette-header{display:none}
.cassette-edition.cover-view .publication{width:100%;max-width:none;background:#071e2b}
.cassette-edition .cover{height:100svh;min-height:580px;padding:0;display:block;overflow:hidden;background:#071e2b}
.cassette-edition .cover .entrance-art{position:absolute;inset:0;width:100%;height:calc(100% - 112px);object-fit:cover;object-position:center;border:0;mask-image:linear-gradient(#000 85%,transparent 100%);-webkit-mask-image:linear-gradient(#000 85%,transparent 100%)}
.cassette-edition .entrance-button{position:absolute;bottom:calc(68px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:16px;min-width:150px;min-height:58px;padding:8px 26px;border:1px solid #d7f0f06b;border-radius:18px;background:linear-gradient(145deg,#b2d4df33,#31526955);color:#eff7f5;font:30px var(--serif);letter-spacing:5px;box-shadow:inset 0 1px 1px #ffffff70,inset 0 -3px 4px #021e3566,0 5px 0 #092232,0 10px 24px #0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .15s,box-shadow .15s}
.cassette-edition .entrance-button svg{width:17px;height:17px;fill:currentColor;opacity:.8}
.cassette-edition .entrance-button:active{transform:translate(-50%,4px);box-shadow:inset 0 1px 2px #fff5,0 1px 0 #092232,0 3px 9px #0005}
.cassette-edition .entrance-button:focus-visible{outline:2px solid #edf5e5;outline-offset:6px}
.entrance-links{position:absolute;bottom:calc(13px + env(safe-area-inset-bottom));left:22px;right:22px;display:flex;justify-content:space-between;gap:20px;color:#c4d6dc;font:15px var(--serif)}
.entrance-links a{min-height:44px;display:flex;align-items:center;text-decoration:none}
@media(min-aspect-ratio:1/1){.cassette-edition .cover .entrance-art{object-fit:contain}}
@media(prefers-reduced-motion:reduce){.cassette-edition .entrance-button{transition:none}}

/* v21 — per-song sound studies, with explicit local saving. */
.preset-studio{margin:20px 0 22px}.preset-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.preset-heading h3{font:22px/1.4 var(--serif);margin:0}.preset-heading>span{font-size:13px;white-space:nowrap;color:#a9d0ce}
#presetAnalysis{font-size:16px;line-height:1.8;color:#b7cbd5;margin:10px 0 14px}#presetReady{font-size:14px;color:#ecd9ae}
.preset-list{display:grid;gap:9px}.preset-card{display:grid;grid-template-columns:minmax(0,1fr) 68px;border:1px solid #bedde52b;border-radius:13px;background:#07223255;overflow:hidden}
.preset-apply{text-align:left;padding:12px 13px;display:grid;gap:5px;min-width:0}.preset-apply strong{font:20px/1.3 var(--serif);color:#e2eeeb}.preset-apply span{font:14px/1.65 var(--serif);color:#aabfca}.preset-apply small{font:11px var(--mono);color:#b6d8d5}.preset-apply[aria-pressed=true]{background:linear-gradient(125deg,#b4ddd925,#789db017);box-shadow:inset 3px 0 #a6d7d2}.preset-apply:disabled{opacity:.45;cursor:wait}
.preset-keep{align-self:stretch;border-left:1px solid #bedde51c;font:13px var(--serif);color:#a5bac7;min-height:44px}.preset-keep[aria-pressed=true]{color:#cbe6d3;background:#cbe6d30d}
.preset-adjust{padding:18px 0 3px}.preset-speed-label{display:flex;justify-content:space-between;font-size:18px}.preset-speed-label output{font:13px var(--mono);color:#c3dedb}.preset-adjust input{width:100%;height:38px;accent-color:#a4cfca}.preset-adjust small,.preset-save-panel>small{color:#8da9b8;font-size:13px;line-height:1.7}
.preset-save-panel{margin-top:20px;padding-top:20px;border-top:1px solid #c3dfe229;display:grid;gap:9px}.preset-save-panel>label{font-size:16px}.preset-save-panel input[type=text],#presetName{width:100%;min-width:0;min-height:46px;padding:9px 12px;border:1px solid #b3d2d544;border-radius:10px;color:#e7eeeb;background:#071c2c77;font:20px var(--serif)}
#presetEditState{font-size:13px;color:#c3d6bb}.preset-actions{display:flex;gap:8px;flex-wrap:wrap}.preset-actions button{padding:10px 14px;min-height:46px;font-size:16px;border:1px solid #b3d2d54a;border-radius:10px;background:#b9d6dd0a}.preset-actions #presetSave{background:#b2d9d329;color:#e4f2ec}.preset-actions button:disabled,#presetName:disabled{opacity:.4;cursor:default}
#presetStatus{font-size:14px;line-height:1.7;color:#d2e2df;min-height:24px;margin:0}.preset-storage-note{font-size:13px!important;line-height:1.8;color:#96afbc!important;margin:0!important}.preset-transfer{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.preset-transfer button,.preset-import-label{padding:10px 0;font-size:15px;color:#bbd5dd;min-height:44px}.preset-import-label{cursor:pointer;position:relative;display:flex;align-items:center}.preset-import-label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.preset-import-label:focus-within{outline:1px solid #c8e8e1;outline-offset:2px}.preset-studio button:focus-visible,.preset-actions button:focus-visible{outline:2px solid #c8e8e1;outline-offset:-3px}

/* v22 — genre, tempo, and listening intent stay readable on a phone. */
#presetTempoNote{font:13px/1.6 var(--mono);color:#c1dcd5;margin:9px 0}.preset-scope{font:14px/1.7 var(--serif)!important;color:#9bb4c1!important}
.preset-apply .preset-genre{font:11px/1.5 var(--mono);letter-spacing:.02em;color:#b6d8d5}.preset-apply small{font-size:12px;line-height:1.7}.preset-apply{padding:14px}.preset-heading h3{font-size:21px}.preset-details{margin-top:14px;border-left:2px solid #a6d7d24f;padding:1px 14px;background:#0a263a66;border-radius:0 10px 10px 0}.preset-details p{font:15px/1.8 var(--serif);color:#c5d5dc;margin:12px 0}.preset-details #presetTiming{font:12px/1.8 var(--mono);color:#c3dcd3}.preset-details details{padding:0 0 14px;font-size:13px;line-height:1.7;color:#aabfca}.preset-details summary{cursor:pointer;padding:7px 0}.preset-details a{color:#c2dbd9;text-underline-offset:3px;overflow-wrap:anywhere}.preset-details ul{padding-left:18px}.preset-details li{margin-bottom:7px}#presetLiveTempo{font:13px/1.8 var(--mono);color:#c3dedb;margin:2px 0 8px}.preset-scope,.preset-details{overflow-wrap:anywhere}@media(max-width:420px){.preset-heading{align-items:flex-start}.preset-heading h3{font-size:20px}.preset-heading>span{font-size:12px}.preset-card{grid-template-columns:minmax(0,1fr) 59px}.preset-apply{padding:12px}.preset-apply strong{font-size:21px}}

/* v23 — two editable versions; no shortlist controls. */
.preset-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.preset-card{display:block}.preset-apply{width:100%;height:100%;gap:6px}.preset-apply strong{overflow-wrap:anywhere}.preset-apply small{line-height:1.5}.preset-heading h3{font-size:22px}.single-effect .effect-name{font-family:var(--mono);font-size:16px;line-height:1.4;overflow-wrap:anywhere}.single-effect small{line-height:1.6}.single-effect{min-width:0}.preset-details p:empty{display:none}@media(max-width:420px){.preset-list{gap:8px}.preset-apply{padding:14px 12px}.preset-apply .preset-genre{font-size:12px}.preset-heading h3{font-size:21px}.single-effect .effect-name{font-size:14px}}

/* v26 — one latched sound key, directly beneath the main play control. */
.cassette-edition .slow-preset-row{display:grid;grid-template-columns:54px minmax(0,1fr) 54px;gap:13px;padding:7px 7px 11px;position:relative;z-index:2}
.cassette-edition .analog-with-keys .slow-preset-key{grid-column:2;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;width:100%;height:46px;padding:0 12px;border-radius:11px;background:linear-gradient(160deg,#aed9d326,#38667525 52%,#87b9c318);border:1px solid #cdebe159;color:#d6e9e1;box-shadow:inset 0 1px 1px #eafff599,inset -1px -1px 1px #87c0c248,0 1px 0 #6a9598,0 6px 0 #244553,0 8px 7px #00111e80;transform:translateY(-3px);font:13px/1 var(--mono);letter-spacing:.025em;transition:transform .16s,box-shadow .16s,color .16s}
.cassette-edition .analog-with-keys .slow-preset-key{flex-direction:row}
.cassette-edition .analog-with-keys .slow-preset-key .slow-preset-name{font:inherit;letter-spacing:inherit;display:inline}
.slow-preset-key .slow-preset-name,.slow-preset-key .slow-preset-light{position:relative;z-index:1}
.slow-preset-light{flex:none;width:6px;height:6px;border-radius:50%;background:#0b2633;border:1px solid #b4d5ca40;box-shadow:inset 0 1px 2px #0008,0 1px 0 #e2f2d924}
.cassette-edition .analog-with-keys .slow-preset-key[aria-pressed=true]{transform:translateY(2px);color:#edf6e6;background:linear-gradient(160deg,#aed9d33b,#3b697336);box-shadow:inset 0 2px 3px #08263766,inset 0 1px 0 #e2f5ec44,0 1px 0 #547b80,0 3px 3px #00142280}
.slow-preset-key[aria-pressed=true] .slow-preset-light{background:#c6e4ba;border-color:#e6f4cc80;box-shadow:0 0 5px #c6e4ba77,inset 0 1px #f0ffe4}
.cassette-edition .analog-with-keys .slow-preset-key:active{transform:translateY(4px);box-shadow:inset 0 3px 5px #08263777,0 1px 1px #00142288}
.cassette-edition .analog-with-keys .slow-preset-key:disabled{opacity:.48;cursor:wait;filter:saturate(.6)}
.cassette-edition .analog-with-keys .slow-preset-key:disabled:active{transform:translateY(-3px)}
@media(max-width:359px){.cassette-edition .slow-preset-row{grid-template-columns:48px minmax(0,1fr) 48px;gap:9px;padding-left:5px;padding-right:5px}.cassette-edition .analog-with-keys .slow-preset-key{gap:7px;font-size:12px;padding:0 6px}}
@media(prefers-reduced-motion:reduce){.cassette-edition .analog-with-keys .slow-preset-key{transition:none}}
