:root{
  color-scheme:dark;
  --bg:#02060a;
  --panel:rgba(7,15,23,.86);
  --panel-strong:rgba(4,10,16,.96);
  --line:rgba(173,220,247,.14);
  --line-strong:rgba(150,220,255,.42);
  --text:#f5fbff;
  --muted:#91a4b4;
  --ice:#dff5ff;
  --blue:#75cfff;
  --glow:rgba(82,184,241,.32);
  --radius:30px;
  --shadow:0 32px 100px rgba(0,0,0,.56);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
body{overflow-x:hidden;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
body::before{content:"";position:fixed;inset:0;z-index:-3;background:linear-gradient(180deg,rgba(2,6,10,.18),rgba(2,6,10,.9) 68%,#02060a),url("andrik-cosmic-eye-official-website.webp") center 20%/cover no-repeat;filter:saturate(.78) brightness(.52)}
body::after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 20% 10%,rgba(68,174,232,.18),transparent 32rem),radial-gradient(circle at 80% 72%,rgba(77,139,180,.12),transparent 34rem),linear-gradient(90deg,rgba(2,6,10,.78),transparent 28% 72%,rgba(2,6,10,.78))}
button,a{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}svg{display:block}
.app{width:min(1180px,calc(100% - 34px));margin:0 auto;padding:16px 0 56px}

.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;min-height:64px;margin-bottom:14px}
.brand{display:inline-flex;align-items:center;gap:13px;width:max-content}
.brand img{width:46px;height:46px;border-radius:50%;box-shadow:0 0 26px rgba(89,188,241,.34)}
.brand-copy strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.06rem;letter-spacing:.19em}
.brand-copy span{display:block;margin-top:3px;color:var(--muted);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}
.page-label{justify-self:center;text-align:center}.page-label span{display:block;color:#bfe9ff;font-size:.62rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase}.page-label h1{margin:3px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.45rem,3vw,2.05rem);letter-spacing:.07em}
.top-actions{justify-self:end;display:flex;align-items:center;gap:8px}
.icon-link,.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:rgba(6,13,20,.7);backdrop-filter:blur(14px);cursor:pointer;transition:transform .24s ease,border-color .24s ease,background .24s ease}
.icon-link:hover,.icon-button:hover{transform:translateY(-2px);border-color:var(--line-strong);background:rgba(14,29,42,.9)}
.icon-link svg,.icon-button svg{width:19px;height:19px;fill:currentColor}

.player-shell{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(430px,1.08fr);min-height:620px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(10,21,31,.9),rgba(3,8,13,.96));box-shadow:var(--shadow);backdrop-filter:blur(24px)}
.visual-side{position:relative;min-height:620px;overflow:hidden;background:#03080d}
.visual-bg{position:absolute;inset:-30px;width:calc(100% + 60px);height:calc(100% + 60px);object-fit:cover;filter:blur(32px) brightness(.38) saturate(1.15);transform:scale(1.06);opacity:.82;transition:opacity .4s ease}
.visual-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,7,11,.12),rgba(2,7,11,.34) 45%,rgba(2,7,11,.9)),linear-gradient(90deg,transparent 58%,rgba(2,7,11,.48))}
.media-frame{position:relative;z-index:2;display:grid;place-items:center;width:100%;padding-top:42px}
.cover-wrap,.youtube-stage{width:min(78%,430px);border-radius:26px;overflow:hidden;border:1px solid rgba(210,242,255,.22);background:#071018;box-shadow:0 30px 80px rgba(0,0,0,.66),0 0 42px rgba(84,186,239,.16);transition:opacity .35s ease,transform .45s ease,visibility .35s ease}
.cover-wrap{aspect-ratio:1/1}.cover-wrap::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.045),inset 0 -60px 90px rgba(0,0,0,.2);pointer-events:none}.cover-wrap{position:relative}
.cover-art{width:100%;height:100%;object-fit:cover;transition:opacity .32s ease,transform .52s ease}.cover-art.changing{opacity:.2;transform:scale(.985)}
.youtube-stage{position:absolute;top:42px;left:50%;transform:translateX(-50%);aspect-ratio:16/9;opacity:0;visibility:hidden;pointer-events:none;background:center/cover no-repeat #020508}
.youtube-stage::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.youtube-stage iframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0}
.video-mode .cover-wrap{opacity:0;visibility:hidden;transform:scale(.965)}
.video-mode .youtube-stage{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%)}
.playing .cover-wrap,.playing .youtube-stage{box-shadow:0 34px 90px rgba(0,0,0,.7),0 0 54px rgba(84,186,239,.26)}

.nowplaying-mini{position:relative;z-index:2;width:min(78%,430px);margin:18px auto 0;padding-bottom:94px}
.nowplaying-mini span{display:block;color:#bdeaff;font-size:.62rem;font-weight:850;letter-spacing:.2em;text-transform:uppercase}
.nowplaying-badge{display:inline-flex!important;width:max-content;margin:0 0 6px!important;padding:5px 8px;border:1px solid rgba(182,226,248,.18);border-radius:999px;background:rgba(4,11,17,.56);color:#bce8ff!important;font-size:.53rem!important;letter-spacing:.15em!important}
.nowplaying-mini strong{display:block;margin-top:6px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.28rem,3vw,2.1rem);line-height:1.02;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nowplaying-mini small{display:block;margin-top:7px;color:#b2bec8;font-size:.79rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.visualizer{--eq-a:#4eaee1;--eq-b:#dcf5ff;--eq-shadow:rgba(94,198,249,.42);position:absolute;z-index:4;left:8%;right:8%;bottom:18px;height:68px;display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(2px,.55vw,5px);opacity:.94;transition:filter .45s ease,transform .45s ease}
.bar{flex:1;max-width:9px;min-width:3px;height:12%;border-radius:999px 999px 2px 2px;background:linear-gradient(to top,var(--eq-a),var(--eq-b));transform-origin:bottom;opacity:.58;filter:drop-shadow(0 0 6px var(--eq-shadow));transition:height 105ms linear,opacity 105ms linear,background .7s ease,border-radius .7s ease,transform .7s ease,clip-path .7s ease}
.viz-theme-1{--eq-a:#4eaee1;--eq-b:#e4f8ff;--eq-shadow:rgba(94,198,249,.48)}
.viz-theme-2{--eq-a:#6f5cff;--eq-b:#e3dcff;--eq-shadow:rgba(143,112,255,.52)}.viz-theme-2 .bar{border-radius:999px}
.viz-theme-3{--eq-a:#9a6b19;--eq-b:#ffe7a8;--eq-shadow:rgba(255,199,83,.44)}.viz-theme-3 .bar{border-radius:2px;clip-path:polygon(50% 0,100% 14%,100% 100%,0 100%,0 14%)}
.viz-theme-4{--eq-a:#891c2b;--eq-b:#ffadb9;--eq-shadow:rgba(255,83,112,.5)}.viz-theme-4 .bar{max-width:5px;border-radius:1px}
.viz-theme-5{--eq-a:#14715e;--eq-b:#9fffe0;--eq-shadow:rgba(67,255,198,.38)}.viz-theme-5 .bar{border-radius:999px;transform:scaleX(.72)}
.viz-theme-6{--eq-a:#246699;--eq-b:#bcecff;--eq-shadow:rgba(103,211,255,.42)}.viz-theme-6 .bar:nth-child(odd){transform:scaleY(.78)}
.viz-theme-7{--eq-a:#6047a8;--eq-b:#ffb9f0;--eq-shadow:rgba(255,117,222,.42)}.viz-theme-7 .bar{border-radius:3px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.viz-theme-8{--eq-a:#5d6670;--eq-b:#ffffff;--eq-shadow:rgba(255,255,255,.38)}.viz-theme-8 .bar{border-radius:0;transform:skewX(-7deg)}
.viz-theme-9{--eq-a:#006e91;--eq-b:#58f4ff;--eq-shadow:rgba(44,232,255,.5)}.viz-theme-9 .bar{border-radius:50% 50% 4px 4px}
.viz-theme-10{--eq-a:#183d73;--eq-b:#9fc5ff;--eq-shadow:rgba(95,154,255,.45)}.viz-theme-10 .bar:nth-child(3n){transform:scaleX(1.3)}

.control-side{display:flex;flex-direction:column;justify-content:center;padding:44px clamp(28px,5vw,62px)}
.status-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}
.status-chip{display:inline-flex;align-items:center;gap:9px;color:#b8c8d4;font-size:.74rem;font-weight:760;letter-spacing:.05em}.status-dot{width:8px;height:8px;border-radius:50%;background:#63717c}.playing .status-dot{background:#7fd4ff;box-shadow:0 0 16px #70cfff}.playlist-position{color:#91a5b4;font-size:.73rem;font-weight:750;letter-spacing:.08em}
.player-eyeline{display:block;color:#bde9ff;font-size:.64rem;font-weight:850;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-title{margin:9px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,5vw,4.5rem);line-height:.94;letter-spacing:-.025em;text-wrap:balance;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.video-mode .track-title{font-size:clamp(1.9rem,4.2vw,3.25rem)}
.track-author{margin:11px 0 0;color:#a9bac7;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress-area{margin-top:34px}.progress{width:100%;height:4px;appearance:none;border-radius:999px;background:linear-gradient(to right,#a7ddf8 0 var(--value,0%),rgba(185,219,238,.15) var(--value,0%) 100%);cursor:pointer}.progress::-webkit-slider-thumb{appearance:none;width:15px;height:15px;border-radius:50%;background:#e8f9ff;box-shadow:0 0 0 5px rgba(113,202,247,.13),0 0 18px rgba(112,203,250,.4)}.progress::-moz-range-thumb{width:15px;height:15px;border:0;border-radius:50%;background:#e8f9ff;box-shadow:0 0 0 5px rgba(113,202,247,.13),0 0 18px rgba(112,203,250,.4)}
.time-row{display:flex;justify-content:space-between;margin-top:9px;color:#7f93a2;font-size:.7rem;font-variant-numeric:tabular-nums}
.transport{display:grid;grid-template-columns:48px 56px 84px 56px 48px;align-items:center;justify-content:center;gap:10px;margin-top:28px}.ctrl{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:rgba(12,24,35,.78);cursor:pointer;transition:transform .18s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.ctrl:hover{border-color:var(--line-strong);background:rgba(22,44,62,.85)}.ctrl:active{transform:scale(.94)}.ctrl svg{width:20px;height:20px;fill:currentColor}.ctrl.secondary{width:42px;height:42px}.ctrl.primary{width:78px;height:78px;border:0;background:linear-gradient(145deg,#f0fbff,#7ccff7);color:#041119;box-shadow:0 0 0 8px rgba(111,201,245,.07),0 0 38px rgba(87,188,239,.3)}.ctrl.primary svg{width:29px;height:29px}.ctrl.active{border-color:rgba(142,219,255,.66);background:rgba(72,153,197,.2);color:#dff7ff;box-shadow:0 0 24px rgba(79,181,234,.16)}.ctrl.favorite-on{color:#ffabc4;border-color:rgba(255,154,188,.5);background:rgba(105,24,52,.24)}.ctrl[disabled]{opacity:.28;cursor:not-allowed;filter:grayscale(.7)}
.collection-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.collection-meta strong{display:block;font-size:.84rem}.collection-meta span{display:block;margin-top:4px;color:#8195a4;font-size:.72rem}.open-youtube{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:rgba(12,25,36,.72);font-size:.75rem;font-weight:800;transition:border-color .2s ease,transform .2s ease}.open-youtube:hover{border-color:var(--line-strong);transform:translateY(-2px)}.open-youtube svg{width:17px;height:17px;fill:currentColor}.error{display:none!important}.scroll-cue{display:flex;appearance:none;width:100%;border-right:0;border-bottom:0;border-left:0;background:transparent;cursor:pointer;align-items:center;justify-content:center;gap:9px;margin-top:28px;min-height:54px;border-top:1px solid var(--line);padding-top:20px;color:#bdeaff;font-size:.72rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase;transition:color .2s ease,transform .2s ease}.scroll-cue:hover{color:#e8f8ff;transform:translateY(2px)}.scroll-cue svg{width:18px;height:18px;fill:currentColor;animation:scrollCueBounce 1.7s ease-in-out infinite}@keyframes scrollCueBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

.library{margin-top:30px}.library-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:14px}.eyeline{display:block;color:#bce8ff;font-size:.66rem;font-weight:850;letter-spacing:.22em;text-transform:uppercase}.library-head h2{margin:6px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.65rem,4vw,2.8rem);line-height:1}.library-head p{max-width:500px;margin:0;color:var(--muted);text-align:right;font-size:.84rem}
.collection-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.collection-card{position:relative;min-height:190px;overflow:hidden;border:1px solid var(--line);border-radius:22px;padding:16px;text-align:left;background:var(--panel);box-shadow:0 15px 44px rgba(0,0,0,.27);cursor:pointer;isolation:isolate;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.collection-card::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--cover);background-position:center;background-size:cover;filter:saturate(.84) brightness(.54);transform:scale(1.03);transition:transform .7s ease,filter .35s ease}.collection-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,rgba(2,7,11,.97) 7%,rgba(2,7,11,.7) 53%,rgba(2,7,11,.2)),linear-gradient(180deg,transparent 35%,rgba(2,7,11,.78))}.collection-card:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 25px 60px rgba(0,0,0,.42),0 0 35px rgba(72,175,230,.1)}.collection-card.active{border-color:rgba(153,224,255,.72);box-shadow:0 26px 68px rgba(0,0,0,.52),0 0 34px rgba(94,196,246,.22),inset 0 0 0 1px rgba(203,240,255,.08)}.collection-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.collection-number{color:#bdeaff;font-size:.62rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.collection-play{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(220,244,255,.2);border-radius:50%;background:rgba(7,17,25,.66)}.collection-play svg{width:13px;height:13px;fill:currentColor}.collection-card.active .collection-play{background:linear-gradient(145deg,#eaf9ff,#78cdf8);color:#041018;border-color:transparent}.collection-copy{position:absolute;left:16px;right:16px;bottom:15px}.collection-copy small{display:block;margin-bottom:5px;color:#b7c6d2;font-size:.62rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.collection-copy strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.18rem,2vw,1.75rem);line-height:.96;text-shadow:0 5px 20px #000}.collection-copy span{display:block;margin-top:7px;color:#aab7c2;font-size:.7rem}.collection-card[data-collection="prosnis"]::after{background:linear-gradient(110deg,rgba(8,5,5,.95) 7%,rgba(18,10,8,.68) 53%,rgba(14,8,5,.18)),linear-gradient(180deg,transparent 35%,rgba(8,5,4,.82))}.keyboard-hint{margin:12px 0 0;color:#718797;text-align:right;font-size:.68rem;letter-spacing:.03em}.keyboard-hint span{color:#b9dff3;font-weight:850}
.collection-card:focus-visible,.ctrl:focus-visible,.open-youtube:focus-visible,.icon-button:focus-visible,.icon-link:focus-visible{outline:2px solid rgba(173,228,255,.86);outline-offset:3px}

@media(max-width:1050px){.collection-grid{grid-template-columns:repeat(3,1fr)}.player-shell{grid-template-columns:minmax(330px,.9fr) minmax(390px,1.1fr)}}
@media(max-width:760px){
  .app{width:min(100% - 14px,1180px);padding:6px 0 34px}
  .topbar{grid-template-columns:1fr auto;min-height:58px;margin-bottom:6px;gap:10px}.page-label{display:none}.brand img{width:40px;height:40px}.brand-copy strong{font-size:.94rem}.brand-copy span{display:none}.top-actions{gap:5px}.icon-link,.icon-button{width:38px;height:38px}
  .player-shell{height:calc(100svh - 70px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;max-height:none;grid-template-columns:1fr;grid-template-rows:minmax(0,43%) minmax(0,57%);border-radius:23px}
  .visual-side{min-height:0;height:auto}.visual-bg{filter:blur(25px) brightness(.33) saturate(1.08)}.visual-shade{background:linear-gradient(180deg,rgba(2,7,11,.08),rgba(2,7,11,.32) 54%,rgba(2,7,11,.88))}
  .media-frame{height:100%;padding:12px 14px 44px}.cover-wrap,.youtube-stage{width:auto;height:min(100%,330px);max-width:92%;border-radius:20px}.cover-wrap{aspect-ratio:1/1}.youtube-stage{top:12px;left:50%;transform:translateX(-50%);aspect-ratio:16/9;height:auto;width:min(92%,560px);max-height:calc(100% - 48px)}.video-mode .youtube-stage{transform:translateX(-50%)}
  .nowplaying-mini{display:none}.visualizer{left:8%;right:8%;bottom:8px;height:36px;gap:2px}.bar{max-width:7px;min-width:2px}
  .control-side{min-height:0;justify-content:flex-start;padding:13px 16px 12px}.status-row{margin-bottom:10px}.status-chip{font-size:.66rem}.playlist-position{font-size:.65rem}.player-eyeline{font-size:.57rem;letter-spacing:.15em}.track-title{margin-top:5px;font-size:clamp(1.65rem,8.5vw,2.45rem);line-height:.94;-webkit-line-clamp:2}.video-mode .track-title{font-size:clamp(1.45rem,7vw,2.05rem)}.track-author{margin-top:5px;font-size:.76rem}
  .progress-area{margin-top:13px}.time-row{margin-top:6px;font-size:.64rem}.transport{grid-template-columns:40px 45px 68px 45px 40px;gap:5px;margin-top:12px}.ctrl{width:43px;height:43px}.ctrl.secondary{width:38px;height:38px}.ctrl.primary{width:64px;height:64px;box-shadow:0 0 0 6px rgba(111,201,245,.07),0 0 30px rgba(87,188,239,.26)}.ctrl.primary svg{width:25px;height:25px}.collection-actions{margin-top:12px;padding-top:10px;gap:8px}.collection-meta{min-width:0}.collection-meta strong{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-meta span{font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.open-youtube{min-height:36px;padding:0 12px;font-size:.67rem;white-space:nowrap}.scroll-cue{margin-top:22px;min-height:48px;padding-top:16px;font-size:.62rem}
  .library{margin-top:26px;padding-bottom:10px}.library-head{display:block;padding:0 4px}.library-head p{margin-top:9px;text-align:left;font-size:.78rem}.collection-grid{display:flex;overflow-x:auto;gap:10px;padding:0 4px 8px;scroll-snap-type:x mandatory;scrollbar-width:none}.collection-grid::-webkit-scrollbar{display:none}.collection-card{flex:0 0 82%;min-height:184px;scroll-snap-align:start;border-radius:20px}.keyboard-hint{display:none}
}
@media(max-width:390px){.app{width:min(100% - 10px,1180px)}.brand-copy strong{font-size:.88rem}.top-actions{gap:3px}.icon-link,.icon-button{width:36px;height:36px}.player-shell{height:calc(100svh - 66px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;grid-template-rows:minmax(0,41%) minmax(0,59%)}.control-side{padding-inline:12px}.transport{grid-template-columns:36px 42px 62px 42px 36px;gap:3px}.ctrl{width:40px;height:40px}.ctrl.secondary{width:35px;height:35px}.ctrl.primary{width:60px;height:60px}.collection-meta{display:none}.open-youtube{width:100%;justify-content:center}.collection-actions{display:block}.collection-card{flex-basis:88%}}
@media(max-height:700px) and (max-width:760px){.player-shell{min-height:0;grid-template-rows:minmax(0,38%) minmax(0,62%)}.media-frame{padding-top:8px}.visualizer{height:28px}.control-side{padding-top:9px}.track-title{font-size:1.5rem}.progress-area{margin-top:9px}.transport{margin-top:8px}.collection-actions{margin-top:8px;padding-top:8px}.ctrl.primary{width:58px;height:58px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.bar{transition:none!important}}

.error{display:none}.error.show{display:block}

/* v50.28 — persistent floating player, embedded homepage and screen wake lock */
.site-view{position:fixed;inset:0;z-index:20;background:#02060a;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
.site-view.active{opacity:1;visibility:visible;pointer-events:auto;background:#02060a}
.site-view iframe{display:block;width:100%;height:100%;border:0;background:#02060a}
.status-tools{display:inline-flex;align-items:center;gap:10px}
.wake-lock-btn,.mini-expand,.mini-close{display:grid;place-items:center;border:1px solid var(--line);background:rgba(5,13,20,.76);color:#b8d5e6;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}
.wake-lock-btn{width:34px;height:34px;border-radius:50%}
.wake-lock-btn svg{width:16px;height:16px;fill:currentColor}
.wake-lock-btn:hover,.mini-expand:hover,.mini-close:hover{transform:translateY(-1px);border-color:var(--line-strong);color:#effaff}
.wake-lock-btn.active{color:#e9fbff;border-color:rgba(125,215,255,.62);background:rgba(37,112,151,.34);box-shadow:0 0 18px rgba(91,198,250,.28)}
.wake-lock-btn.unsupported{opacity:.42;cursor:not-allowed}
.mini-expand{display:none;position:absolute;z-index:6;top:10px;right:10px;width:34px;height:34px;border-radius:50%}
.mini-expand svg{width:16px;height:16px;fill:currentColor}
.mini-close{display:none;position:absolute;z-index:6;top:10px;right:10px;width:34px;height:34px;border-radius:50%}
.mini-close svg{width:16px;height:16px;fill:currentColor}

body.site-mode{overflow:hidden;padding:0}
body.site-mode .app{width:0;height:0;margin:0;padding:0}
body.site-mode .topbar,body.site-mode .library{display:none}
body.site-mode .player-shell{position:fixed;z-index:40;right:18px;bottom:max(18px,env(safe-area-inset-bottom));width:min(440px,calc(100vw - 36px));height:136px;min-height:136px;grid-template-columns:118px minmax(0,1fr);overflow:hidden;border-radius:22px;background:linear-gradient(145deg,rgba(8,18,27,.97),rgba(2,7,11,.985));box-shadow:0 22px 72px rgba(0,0,0,.68),0 0 34px rgba(77,180,232,.16);backdrop-filter:blur(24px);animation:miniPlayerIn .35s cubic-bezier(.2,.8,.2,1) both}
@keyframes miniPlayerIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
body.site-mode .visual-side{min-height:0;height:136px}
body.site-mode .visual-bg{inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);filter:blur(18px) brightness(.42) saturate(1.08)}
body.site-mode .visual-shade{background:linear-gradient(90deg,rgba(2,7,11,.1),rgba(2,7,11,.62))}
body.site-mode .media-frame{height:100%;padding:10px;display:grid;place-items:center}
body.site-mode .cover-wrap,body.site-mode .youtube-stage{width:98px;height:98px;max-width:none;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.55),0 0 22px rgba(84,186,239,.12)}
body.site-mode .youtube-stage{top:19px;left:50%;transform:translateX(-50%);aspect-ratio:1/1}
body.site-mode .video-mode .youtube-stage{transform:translateX(-50%)}
body.site-mode .nowplaying-mini,body.site-mode .visualizer{display:none}
body.site-mode .control-side{position:relative;min-width:0;padding:14px 86px 12px 16px;justify-content:center}
body.site-mode .mini-expand,body.site-mode .mini-close{display:grid}
body.site-mode .status-row{position:absolute;z-index:7;top:10px;right:86px;margin:0}
body.site-mode .status-chip,body.site-mode .playlist-position{display:none}
body.site-mode .status-tools{gap:7px}
body.site-mode .wake-lock-btn{width:29px;height:29px}
body.site-mode .wake-lock-btn svg{width:14px;height:14px}
body.site-mode .player-eyeline{display:none}
body.site-mode .track-title,body.site-mode .video-mode .track-title{margin:0;padding-right:2px;font-size:1.18rem;line-height:1.05;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
body.site-mode .track-author{display:none}
body.site-mode .progress-area{margin-top:12px}
body.site-mode .progress{height:3px}
body.site-mode .progress::-webkit-slider-thumb{width:10px;height:10px;box-shadow:0 0 0 3px rgba(113,202,247,.12)}
body.site-mode .progress::-moz-range-thumb{width:10px;height:10px;box-shadow:0 0 0 3px rgba(113,202,247,.12)}
body.site-mode .time-row{display:none}
body.site-mode .transport{grid-template-columns:34px 44px 34px;gap:8px;justify-content:start;margin-top:8px}
body.site-mode .transport .secondary{display:none}
body.site-mode .ctrl{width:34px;height:34px}
body.site-mode .ctrl.primary{width:44px;height:44px;box-shadow:0 0 0 4px rgba(111,201,245,.06),0 0 18px rgba(87,188,239,.2)}
body.site-mode .ctrl svg{width:15px;height:15px}
body.site-mode .ctrl.primary svg{width:19px;height:19px}
body.site-mode .collection-actions,body.site-mode .scroll-cue,body.site-mode .error{display:none!important}

body.site-mode.player-dismissed .player-shell{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(18px) scale(.97)}
body.site-mode.player-dismissed .site-view{opacity:1;visibility:visible;pointer-events:auto}

@media(max-width:760px){
  body.site-mode .player-shell{right:6px;bottom:max(6px,env(safe-area-inset-bottom));width:calc(100vw - 12px);height:104px;min-height:104px;grid-template-rows:none;grid-template-columns:86px minmax(0,1fr);border-radius:18px}
  body.site-mode .visual-side{height:104px;min-height:0}
  body.site-mode .media-frame{height:104px;padding:10px 7px}
  body.site-mode .cover-wrap,body.site-mode .youtube-stage{width:72px;height:72px;border-radius:13px}
  body.site-mode .youtube-stage{top:16px}
  body.site-mode .control-side{height:104px;padding:9px 42px 8px 10px}
  body.site-mode .mini-expand{top:7px;right:42px;width:31px;height:31px}
  body.site-mode .mini-expand svg{width:14px;height:14px}
  body.site-mode .mini-close{top:7px;right:7px;width:31px;height:31px}
  body.site-mode .mini-close svg{width:14px;height:14px}
  body.site-mode .status-row{position:absolute;z-index:7;top:7px;right:77px;margin:0}
  body.site-mode .status-chip,body.site-mode .playlist-position{display:none}
  body.site-mode .status-tools{display:flex}
  body.site-mode .wake-lock-btn{width:31px;height:31px}
  body.site-mode .track-title,body.site-mode .video-mode .track-title{padding-right:2px;font-size:1rem;line-height:1.08;max-width:100%}
  body.site-mode .track-author{display:none}
  body.site-mode .progress-area{margin-top:7px;max-width:calc(100% - 2px)}
  body.site-mode .transport{grid-template-columns:31px 40px 31px;gap:6px;margin-top:6px}
  body.site-mode .ctrl{width:31px;height:31px}
  body.site-mode .ctrl.primary{width:40px;height:40px}
}

/* v50.32 — stable mini-player for video/Shorts collections.
   The live YouTube iframe stays mounted for uninterrupted playback, but the
   mini-player always displays clean cover art instead of YouTube's embedded UI. */
body.site-mode .video-mode .cover-wrap,
body.site-mode .cover-wrap{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  pointer-events:none!important;
}
body.site-mode .youtube-stage,
body.site-mode .video-mode .youtube-stage{
  position:fixed!important;
  left:-9999px!important;
  top:-9999px!important;
  width:200px!important;
  height:200px!important;
  min-width:200px!important;
  min-height:200px!important;
  opacity:.001!important;
  visibility:visible!important;
  pointer-events:none!important;
  transform:none!important;
  border:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body.site-mode .youtube-stage iframe{
  width:200px!important;
  height:200px!important;
}
body.site-mode .visual-side{isolation:isolate}
body.site-mode .cover-wrap{position:relative!important;z-index:3!important}


/* v50.33 — shell loading and fully hidden dismissed mini-player */
.site-view{background:#02060a}
.site-view iframe{opacity:0;transition:opacity .22s ease}
.site-view.ready iframe{opacity:1}
body.site-mode.player-dismissed .player-shell{display:none!important;animation:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}


.site-view::after{
  content:"";
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  width:28px;
  height:28px;
  margin:-14px 0 0 -14px;
  border:2px solid rgba(156,220,249,.18);
  border-top-color:rgba(196,238,255,.88);
  border-radius:50%;
  opacity:0;
  pointer-events:none;
  animation:andrikShellSpin .8s linear infinite;
  transition:opacity .18s ease;
}
.site-view.active:not(.ready)::after{opacity:1}
.site-view.ready::after{opacity:0}
@keyframes andrikShellSpin{to{transform:rotate(360deg)}}


/* v50.47 — instant Back: home appears immediately, player collapses to mini */
.site-view{
  transition:none!important;
  opacity:1!important;
  visibility:hidden!important;
  background:#02060a!important;
}
.site-view.active{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.site-view iframe{
  opacity:1!important;
  visibility:visible!important;
  transition:none!important;
  background:#02060a!important;
}
.site-view::after{display:none!important}
body.site-mode::before,body.site-mode::after{opacity:0!important}
body.site-mode .player-shell{animation:miniPlayerInFast .18s cubic-bezier(.2,.8,.2,1) both!important}
@keyframes miniPlayerInFast{from{opacity:.4;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}


/* v50.51 — standalone player always opens in full size */
body.standalone-player{overflow:auto!important}
body.standalone-player .site-view{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body.standalone-player .app{width:min(1180px,calc(100% - 34px))!important;height:auto!important;margin:0 auto!important;padding:16px 0 56px!important}
body.standalone-player .topbar{display:flex!important}
body.standalone-player .library{display:block!important}
body.standalone-player .player-shell{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:720px!important;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)!important;grid-template-rows:none!important;border-radius:32px!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;animation:none!important}
body.standalone-player .mini-expand,body.standalone-player .mini-close{display:none!important}
@media(max-width:860px){
  body.standalone-player .app{width:min(100% - 14px,1180px)!important;padding:6px 0 34px!important}
  body.standalone-player .player-shell{height:calc(100svh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;min-height:650px!important;grid-template-columns:1fr!important;grid-template-rows:minmax(0,44%) minmax(0,56%)!important}
}


/* v50.52 — explicit full-to-mini control and tap-art expand */
.player-minimize-btn{display:grid!important}
body.site-mode .player-minimize-btn,body.standalone-player .player-minimize-btn{display:none!important}
body.site-mode .cover-wrap{cursor:pointer!important;touch-action:manipulation}
body.site-mode .cover-wrap::after{content:"";position:absolute;inset:0;z-index:9;border-radius:inherit}


/* v50.53 — deterministic full-player restoration */
body:not(.site-mode) .site-view{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body:not(.site-mode) .app{width:min(1500px,calc(100% - 36px))!important;height:auto!important;margin:0 auto!important;padding:20px 0 70px!important}
body:not(.site-mode) .player-shell{opacity:1!important;visibility:visible!important;pointer-events:auto!important}


/* v51.7 — final multilingual player polish */
html.i18n-pending body{opacity:0}
body{transition:opacity .18s ease}
.player-language-picker{position:relative}
.player-language-menu{
  position:absolute;top:calc(100% + 10px);right:0;z-index:1000;
  width:190px;padding:8px;border:1px solid var(--line);border-radius:16px;
  background:rgba(3,10,16,.98);box-shadow:0 18px 50px rgba(0,0,0,.55);
  backdrop-filter:blur(18px)
}
.player-language-menu[hidden]{display:none!important}
.player-language-menu button{
  width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;
  border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;
  font:inherit;cursor:pointer
}
.player-language-menu button:hover,.player-language-menu button:focus-visible{background:rgba(151,218,255,.12);outline:none}
.player-language-menu button.active{background:rgba(151,218,255,.16);color:#dff6ff}
.player-language-menu button span{width:22px;text-align:center}
@media(max-width:480px){.player-language-menu{position:fixed;top:76px;right:12px}}

/* v51.21 — live playback continues while the site is visible and the player is collapsed */
body.site-mode.background-playing.player-dismissed .player-shell{display:none!important}
body.site-mode.background-playing.player-dismissed + *{--andrik-audio-live:1}


/* v51.21 — collection list accordion */
.library[hidden]{display:none!important}
.library{scroll-margin-top:92px}
.scroll-cue[aria-expanded="true"] svg{transform:rotate(180deg);animation:none}
.scroll-cue[aria-expanded="true"]:hover{transform:translateY(-2px)}


/* v51.25 — centered mini-player transport, playlist shuffle, collapse keeps playback */
body.site-mode .transport{
  grid-template-columns:34px 44px 34px 34px!important;
  gap:8px!important;
  justify-content:center!important;
  width:100%!important;
  margin:8px auto 0!important;
}
body.site-mode #favoriteBtn{display:none!important}
body.site-mode #shuffleBtn:not([hidden]){display:grid!important}
body.site-mode #shuffleBtn[hidden],
body.site-mode #shuffleBtn.is-unavailable{display:none!important}
body.site-mode #shuffleBtn.active{
  color:#eefaff!important;
  border-color:rgba(117,208,255,.68)!important;
  background:rgba(40,125,170,.38)!important;
  box-shadow:0 0 18px rgba(87,188,239,.24)!important;
}
@media(max-width:760px){
  body.site-mode .transport{
    grid-template-columns:31px 40px 31px 31px!important;
    gap:6px!important;
    justify-content:center!important;
    margin-top:6px!important;
  }
}


/* v51.33 — stable one-window vertical collection carousel on mobile.
   One card is visible at a time; the user swipes up/down inside the window.
   No scripted auto-scroll is used, which avoids Android scroll locks. */
@media(max-width:760px){
  .library{
    margin-top:24px!important;
    padding:0 2px 18px!important;
  }
  .library-head{
    display:block!important;
    margin-bottom:12px!important;
    padding:0 4px!important;
  }
  .library-head p{
    margin-top:9px!important;
    text-align:left!important;
  }
  .collection-grid{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    width:100%!important;
    height:196px!important;
    max-height:196px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding:0 4px!important;
    border-radius:21px!important;
    scroll-snap-type:y mandatory!important;
    scroll-behavior:smooth!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scrollbar-width:none!important;
  }
  .collection-grid::-webkit-scrollbar{
    width:0!important;
    height:0!important;
    display:none!important;
  }
  .collection-card{
    display:flex!important;
    flex:0 0 196px!important;
    flex-direction:column!important;
    width:100%!important;
    min-width:0!important;
    min-height:196px!important;
    height:196px!important;
    margin:0!important;
    padding:16px!important;
    border-radius:19px!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
    contain:paint!important;
  }
  .collection-top{
    position:relative!important;
    z-index:2!important;
    flex:0 0 auto!important;
    min-width:0!important;
  }
  .collection-number{
    max-width:calc(100% - 52px)!important;
    line-height:1.28!important;
    overflow-wrap:anywhere!important;
  }
  .collection-copy{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    z-index:2!important;
    display:block!important;
    min-width:0!important;
    margin-top:auto!important;
    padding-top:20px!important;
  }
  .collection-copy small{
    margin-bottom:6px!important;
    font-size:.63rem!important;
    line-height:1.25!important;
    letter-spacing:.072em!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .collection-copy strong{
    font-size:clamp(1.28rem,6vw,1.74rem)!important;
    line-height:1.04!important;
    overflow-wrap:anywhere!important;
  }
  .collection-copy span{
    margin-top:7px!important;
    font-size:.72rem!important;
    line-height:1.35!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .keyboard-hint{display:none!important}
}

@media(max-width:390px){
  .collection-grid{
    height:188px!important;
    max-height:188px!important;
  }
  .collection-card{
    flex-basis:188px!important;
    min-height:188px!important;
    height:188px!important;
    padding:15px!important;
  }
  .collection-copy{
    padding-top:18px!important;
  }
}


/* v51.34 — persistent player UX, visible album breathing and favourite in mini player */
@keyframes andrikPlayerCoverBreathV5134{
  0%{transform:scale(1);filter:brightness(1) saturate(1)}
  100%{transform:scale(1.055);filter:brightness(1.075) saturate(1.06)}
}
@keyframes andrikPlayerBackgroundBreathV5134{
  0%{transform:scale(1.06);opacity:.78}
  100%{transform:scale(1.105);opacity:.9}
}
body:not(.site-mode) .cover-wrap{
  transform-origin:center center;
  animation:andrikPlayerCoverBreathV5134 6.4s cubic-bezier(.45,0,.55,1) infinite alternate;
  will-change:transform,filter;
}
body:not(.site-mode) .visual-bg{
  animation:andrikPlayerBackgroundBreathV5134 8.4s cubic-bezier(.45,0,.55,1) infinite alternate;
  transform-origin:center center;
  will-change:transform,opacity;
}
body.site-mode .transport{
  display:flex!important;
  grid-template-columns:none!important;
  justify-content:flex-end!important;
  align-items:center!important;
  width:100%!important;
  gap:7px!important;
  margin:8px 0 0 auto!important;
}
body.site-mode #favoriteBtn{
  display:grid!important;
  flex:0 0 auto!important;
  margin-right:auto!important;
}
body.site-mode .transport .ctrl{
  flex:0 0 auto!important;
}
@media(max-width:760px){
  body.site-mode .transport{
    gap:5px!important;
    margin-top:6px!important;
  }
  body.site-mode #favoriteBtn{
    width:31px!important;
    height:31px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  body:not(.site-mode) .cover-wrap,
  body:not(.site-mode) .visual-bg{animation:none!important}
}


/* v51.37 — clearly visible breathing for static artwork in the full player. */
@keyframes andrikPlayerArtworkBreathV5136{
  0%{transform:scale(1);filter:brightness(.98) saturate(1)}
  50%{filter:brightness(1.045) saturate(1.035)}
  100%{transform:scale(1.085);filter:brightness(1.095) saturate(1.075)}
}
@keyframes andrikPlayerGlowBreathV5136{
  0%{box-shadow:0 30px 80px rgba(0,0,0,.66),0 0 30px rgba(84,186,239,.11)}
  100%{box-shadow:0 34px 92px rgba(0,0,0,.72),0 0 58px rgba(84,186,239,.30)}
}
body:not(.site-mode):not(.video-mode) .cover-wrap{
  animation:andrikPlayerGlowBreathV5136 5.6s ease-in-out infinite alternate!important;
}
body:not(.site-mode):not(.video-mode) .cover-art{
  transform-origin:center center!important;
  animation:andrikPlayerArtworkBreathV5136 5.6s cubic-bezier(.45,0,.55,1) infinite alternate!important;
  will-change:transform,filter!important;
}
body:not(.site-mode):not(.video-mode) .cover-art.changing{
  opacity:.24!important;
}


/* v51.37 — reliable gesture-driven vertical carousel and tighter mobile page. */
@media(max-width:760px){
  body:not(.site-mode) .app{
    padding-bottom:14px!important;
  }
  .library{
    padding-bottom:2px!important;
  }
  .collection-grid{
    position:relative!important;
    height:236px!important;
    max-height:236px!important;
    overflow-x:hidden!important;
    overflow-y:hidden!important;
    scroll-snap-type:none!important;
    scroll-behavior:auto!important;
    overscroll-behavior:contain!important;
    touch-action:none!important;
    user-select:none!important;
    -webkit-user-select:none!important;
    cursor:grab!important;
  }
  .collection-grid.is-dragging{
    cursor:grabbing!important;
  }
  .collection-card{
    flex:0 0 236px!important;
    min-height:236px!important;
    height:236px!important;
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
    padding:18px!important;
  }
  .collection-copy{
    padding-top:24px!important;
  }
}
@media(max-width:390px){
  .collection-grid{
    height:224px!important;
    max-height:224px!important;
  }
  .collection-card{
    flex-basis:224px!important;
    min-height:224px!important;
    height:224px!important;
    padding:16px!important;
  }
  .collection-copy{
    padding-top:21px!important;
  }
}


/* v51.38 — vertical carousel with subtle neighbour-card peeks. */
@media(max-width:760px){
  .collection-grid{
    height:278px!important;
    max-height:278px!important;
    gap:12px!important;
    padding:0 8px!important;
    overflow-x:hidden!important;
    overflow-y:hidden!important;
    touch-action:none!important;
    border-radius:24px!important;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%)!important;
    mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 93%,transparent 100%)!important;
  }
  .collection-card{
    flex:0 0 224px!important;
    width:calc(100% - 12px)!important;
    min-height:224px!important;
    height:224px!important;
    margin-inline:auto!important;
    border-radius:19px!important;
    opacity:.44!important;
    filter:brightness(.72) saturate(.78)!important;
    transform:scale(.955)!important;
    transform-origin:center center!important;
    transition:transform .28s ease,opacity .28s ease,filter .28s ease,border-color .28s ease,box-shadow .28s ease!important;
  }
  .collection-card.carousel-current{
    opacity:1!important;
    filter:none!important;
    transform:scale(1)!important;
  }
}
@media(max-width:390px){
  .collection-grid{
    height:264px!important;
    max-height:264px!important;
    gap:10px!important;
    padding-inline:7px!important;
  }
  .collection-card{
    flex-basis:214px!important;
    min-height:214px!important;
    height:214px!important;
    width:calc(100% - 10px)!important;
    padding:15px!important;
  }
}


.collection-arrow{display:none}

/* v51.39 — smoother carousel, clearer neighbour peeks and direction arrows. */
@media(max-width:760px){
  .collection-carousel-shell{
    position:relative!important;
    width:100%!important;
    height:288px!important;
    max-height:288px!important;
    overflow:hidden!important;
    border-radius:24px!important;
  }
  .collection-grid{
    height:288px!important;
    max-height:288px!important;
    gap:10px!important;
    padding:0 8px!important;
    border-radius:24px!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
    will-change:scroll-position!important;
    contain:layout paint!important;
  }
  .collection-card{
    flex:0 0 224px!important;
    min-height:224px!important;
    height:224px!important;
    opacity:.56!important;
    filter:none!important;
    transform:scale(.97)!important;
    transition:transform .18s cubic-bezier(.2,.7,.2,1),opacity .18s ease,border-color .18s ease!important;
    will-change:transform,opacity!important;
    contain:layout paint style!important;
    box-shadow:0 12px 28px rgba(0,0,0,.28)!important;
  }
  .collection-card.carousel-current{
    opacity:1!important;
    transform:scale(1)!important;
    box-shadow:0 18px 42px rgba(0,0,0,.42),0 0 24px rgba(94,196,246,.13)!important;
  }
  .collection-arrow{
    position:absolute!important;
    z-index:8!important;
    left:50%!important;
    width:34px!important;
    height:34px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    border:1px solid rgba(187,231,253,.34)!important;
    border-radius:50%!important;
    background:rgba(3,11,17,.78)!important;
    color:#dff6ff!important;
    box-shadow:0 8px 22px rgba(0,0,0,.38),0 0 16px rgba(86,189,240,.12)!important;
    backdrop-filter:blur(7px)!important;
    -webkit-backdrop-filter:blur(7px)!important;
    transform:translateX(-50%)!important;
    transition:opacity .16s ease,transform .16s ease,border-color .16s ease!important;
  }
  .collection-arrow svg{width:19px!important;height:19px!important;fill:currentColor!important}
  .collection-arrow-up{top:3px!important}
  .collection-arrow-down{bottom:3px!important}
  .collection-arrow:active{transform:translateX(-50%) scale(.92)!important}
  .collection-arrow[disabled]{opacity:0!important;pointer-events:none!important}
}
@media(max-width:390px){
  .collection-carousel-shell,
  .collection-grid{
    height:278px!important;
    max-height:278px!important;
  }
  .collection-card{
    flex-basis:214px!important;
    min-height:214px!important;
    height:214px!important;
  }
}


/* v51.40 — on-demand synced lyrics panel. */
.media-frame{position:relative}
.lyrics-panel{position:absolute;inset:0;z-index:7;display:none;flex-direction:column;justify-content:flex-start;padding:16px;border-radius:28px;background:linear-gradient(180deg,rgba(2,9,14,.88),rgba(3,9,14,.96));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(170,228,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.lyrics-panel.is-open{display:flex}
.lyrics-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.lyrics-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(170,228,255,.16);background:rgba(5,15,22,.84);font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#dff6ff}
.lyrics-meta{margin:4px 0 12px;color:#a8bcc9;font-size:.88rem;line-height:1.45}
.lyrics-scroll{overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(141,203,235,.24) transparent}
.lyrics-scroll::-webkit-scrollbar{width:6px}.lyrics-scroll::-webkit-scrollbar-thumb{background:rgba(141,203,235,.26);border-radius:999px}
.lyrics-lines{display:grid;gap:9px}
.lyrics-line{padding:8px 10px;border-radius:14px;color:#93aab9;line-height:1.58;font-size:.98rem;transition:background .22s ease,color .22s ease,transform .22s ease,opacity .22s ease;opacity:.78}
.lyrics-line.active{background:rgba(109,207,255,.12);color:#eefbff;transform:translateX(4px);opacity:1}
.lyrics-line.past{color:#b9cfdb;opacity:.94}
.lyrics-empty{padding:14px 14px;border-radius:16px;border:1px dashed rgba(139,201,235,.18);background:rgba(4,11,16,.56);color:#9fb3c0;line-height:1.6}
.lyrics-toggle{margin-top:10px;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px 16px;border-radius:18px;border:1px solid rgba(170,228,255,.14);background:rgba(5,13,19,.82);color:#e8f8ff;font-weight:700;cursor:pointer;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,opacity .22s ease}
.lyrics-toggle:hover{border-color:rgba(191,237,255,.5);transform:translateY(-1px)}
.lyrics-toggle svg{width:18px;height:18px;fill:currentColor}
.lyrics-toggle.has-lyrics{border-color:rgba(148,221,255,.48);box-shadow:0 0 0 1px rgba(148,221,255,.12),0 0 24px rgba(96,198,246,.14)}
.lyrics-toggle.is-active{background:linear-gradient(145deg,rgba(11,28,39,.96),rgba(5,13,19,.98));border-color:rgba(201,243,255,.54)}
.lyrics-toggle[hidden]{display:none!important}
.lyrics-close{width:36px;height:36px;border-radius:50%;border:1px solid rgba(170,228,255,.16);background:rgba(5,15,22,.84);display:grid;place-items:center;color:#dff6ff;cursor:pointer}
.lyrics-close svg{width:18px;height:18px;fill:currentColor}
@media(max-width:760px){.lyrics-panel{padding:14px;border-radius:24px}.lyrics-line{font-size:.95rem}.lyrics-toggle{padding:12px 14px}}

/* v51.42 — active carousel card and long video-title polish. */
@media(max-width:760px){
  .collection-card{opacity:.42!important;transform:scale(.925)!important;filter:brightness(.74) saturate(.82)!important;border-color:rgba(134,177,199,.18)!important;transition:transform .16s cubic-bezier(.2,.75,.2,1),opacity .16s ease,filter .16s ease,border-color .16s ease,box-shadow .16s ease!important}
  .collection-card.carousel-current{opacity:1!important;transform:scale(1.025)!important;filter:brightness(1.15) saturate(1.08)!important;border-color:rgba(245,205,116,.92)!important;box-shadow:0 22px 48px rgba(0,0,0,.52),0 0 0 1px rgba(255,228,158,.14),0 0 34px rgba(238,184,76,.24)!important;z-index:3!important}
  .collection-card.carousel-current .collection-number,.collection-card.carousel-current .collection-copy small{color:#ffe2a0!important}
  .collection-card.carousel-current .collection-play{background:linear-gradient(145deg,#fff5cf,#e5aa3d)!important;color:#171006!important;border-color:transparent!important;box-shadow:0 0 24px rgba(239,186,77,.32)!important}
  .video-mode .track-title{font-size:clamp(1.2rem,5.7vw,1.7rem)!important;line-height:1.02!important;letter-spacing:-.018em!important;-webkit-line-clamp:3!important;overflow-wrap:anywhere!important;word-break:normal!important}
  .video-mode .player-eyeline{font-size:.51rem!important;letter-spacing:.13em!important}
}
@media(max-width:390px){.video-mode .track-title{font-size:clamp(1.12rem,5.5vw,1.52rem)!important}}


/* v51.43 — lyrics live inside the artwork frame; T button sits on the cover. */
.cover-wrap{isolation:isolate}
.cover-wrap>.lyrics-panel{position:absolute!important;inset:0!important;z-index:14!important;width:100%!important;height:100%!important;min-height:0!important;border:0!important;border-radius:inherit!important;padding:14px!important;background:linear-gradient(180deg,rgba(1,7,11,.93),rgba(3,9,14,.985))!important;overflow:hidden!important;box-shadow:inset 0 0 0 1px rgba(169,226,255,.16)!important}
.cover-wrap>.lyrics-panel.is-open{display:flex!important}
.cover-wrap>.lyrics-panel .lyrics-scroll{flex:1 1 auto!important;min-height:0!important;overscroll-behavior:contain!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch!important}
.cover-wrap>.lyrics-panel .lyrics-lines{padding-bottom:42px}
.lyrics-cover-button{position:absolute!important;z-index:18!important;top:12px!important;right:12px!important;width:44px!important;height:44px!important;min-width:44px!important;margin:0!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:linear-gradient(145deg,rgba(9,26,38,.96),rgba(3,10,16,.98))!important;border:1px solid rgba(178,231,255,.48)!important;color:#eafaff!important;font-family:Georgia,"Times New Roman",serif!important;font-size:1.15rem!important;font-weight:800!important;line-height:1!important;box-shadow:0 10px 28px rgba(0,0,0,.48),0 0 22px rgba(91,198,249,.19)!important;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease!important}
.lyrics-cover-button:hover,.lyrics-cover-button:focus-visible{transform:translateY(-1px) scale(1.04)!important;border-color:rgba(225,249,255,.86)!important;box-shadow:0 12px 32px rgba(0,0,0,.54),0 0 30px rgba(113,211,255,.3)!important;outline:none!important}
.lyrics-cover-button.has-lyrics{animation:andrikLyricsReadyPulse 2.6s ease-in-out infinite alternate!important}
.lyrics-cover-button.is-active{background:linear-gradient(145deg,#dff7ff,#76cfff)!important;color:#061017!important;border-color:transparent!important;animation:none!important}
.lyrics-cover-button[hidden]{display:none!important}
.video-mode .lyrics-cover-button,.site-mode .lyrics-cover-button,.site-mode .lyrics-panel{display:none!important}
@keyframes andrikLyricsReadyPulse{0%{box-shadow:0 10px 28px rgba(0,0,0,.48),0 0 13px rgba(91,198,249,.12)}100%{box-shadow:0 12px 32px rgba(0,0,0,.54),0 0 32px rgba(91,198,249,.36)}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:760px){.lyrics-cover-button{top:9px!important;right:9px!important;width:40px!important;height:40px!important;min-width:40px!important;font-size:1.05rem!important}.cover-wrap>.lyrics-panel{padding:11px!important}.lyrics-badge{padding:6px 9px!important;font-size:.66rem!important}.lyrics-meta{font-size:.75rem!important;margin:2px 0 8px!important}.lyrics-line{font-size:.88rem!important;line-height:1.48!important;padding:7px 8px!important}}


/* v51.45 — compact video mini-player controls and title. */
body.site-mode .video-mode .track-title{
  font-size:.92rem!important;
  line-height:1.03!important;
  letter-spacing:-.012em!important;
  padding-right:0!important;
  max-width:100%!important;
}
body.site-mode .video-mode .transport{
  justify-content:flex-start!important;
  margin-left:-5px!important;
  margin-right:0!important;
}
body.site-mode .video-mode #favoriteBtn{
  margin-right:1px!important;
}
@media(max-width:760px){
  body.site-mode .video-mode .track-title{font-size:.82rem!important;line-height:1.04!important}
  body.site-mode .video-mode .transport{margin-left:-7px!important;gap:4px!important}
}


/* v51.49 — unified centered mini-player transport for audio and video. */
body.site-mode .transport,
body.site-mode .video-mode .transport{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  gap:8px!important;
  margin:8px auto 0!important;
  padding:0!important;
}
body.site-mode .transport .ctrl,
body.site-mode .video-mode .transport .ctrl{
  flex:0 0 auto!important;
}
body.site-mode #favoriteBtn,
body.site-mode .video-mode #favoriteBtn{
  display:grid!important;
  margin:0!important;
}
body.site-mode #shuffleBtn:not([hidden]):not(.is-unavailable),
body.site-mode .video-mode #shuffleBtn:not([hidden]):not(.is-unavailable){
  display:grid!important;
}
body.site-mode #shuffleBtn[hidden],
body.site-mode #shuffleBtn.is-unavailable,
body.site-mode .video-mode #shuffleBtn[hidden],
body.site-mode .video-mode #shuffleBtn.is-unavailable{
  display:none!important;
}
body.site-mode .video-mode .transport{
  margin-left:auto!important;
  margin-right:auto!important;
}
body.site-mode .video-mode #favoriteBtn{
  margin-right:0!important;
}
@media(max-width:760px){
  body.site-mode .transport,
  body.site-mode .video-mode .transport{
    gap:6px!important;
    margin-top:6px!important;
  }
}


/* v51.60 — always-visible synced lyrics button */
.lyrics-toggle:disabled{opacity:.48;cursor:not-allowed;transform:none!important}
.lyrics-toggle.is-loading svg{animation:andrikLyricsSpin 1.15s linear infinite}
.lyrics-toggle.is-unavailable{border-style:dashed;color:#aebfc9}
.lyrics-copyright{margin:-4px 0 10px;padding:8px 10px;border-radius:12px;background:rgba(3,10,15,.5);color:#7f96a5;font-size:.68rem;line-height:1.42;white-space:pre-line}
.lyrics-line{width:100%;text-align:left;border:0;font:inherit;cursor:pointer}
.lyrics-line:focus-visible{outline:1px solid rgba(174,229,255,.72);outline-offset:1px}
@keyframes andrikLyricsSpin{to{transform:rotate(360deg)}}


/* v51.60 — ANDRIK Lyrics Engine: full-height cinematic lyrics sheet. */
.lyrics-panel{inset:0!important;padding:18px!important;border-radius:28px!important;background:linear-gradient(180deg,rgba(4,12,18,.84),rgba(2,7,11,.985) 30%,rgba(2,6,10,.995))!important;transform:translateY(18px) scale(.985);opacity:0;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .25s ease;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 28px 80px rgba(0,0,0,.58)!important}
.lyrics-panel.is-open{display:flex!important;transform:translateY(0) scale(1);opacity:1}
.lyrics-panel-head{position:sticky;top:0;z-index:2;margin:-2px -2px 8px;padding:2px 2px 10px;background:linear-gradient(180deg,rgba(3,10,15,.98),rgba(3,10,15,.72),transparent)}
.lyrics-title-block{display:grid;gap:4px;min-width:0}.lyrics-title-block>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2fbff;font-family:Georgia,"Times New Roman",serif;font-size:1.2rem}.lyrics-badge{width:max-content;padding:5px 9px;font-size:.62rem;color:#a8d9ef;background:rgba(59,126,159,.12)}
.lyrics-meta{margin:0 0 12px;padding:0 2px;color:#7f9aaa;font-size:.76rem}.lyrics-scroll{flex:1 1 auto;min-height:0;padding:18px 4px 28vh 2px;scroll-behavior:smooth;overscroll-behavior:contain}.lyrics-lines{gap:4px}.lyrics-line{padding:10px 10px;color:#718896;font-size:clamp(1rem,2.4vw,1.32rem);font-weight:720;line-height:1.42;opacity:.48;transform-origin:left center}.lyrics-line.past{color:#8aa0ad;opacity:.52}.lyrics-line.active{padding-top:15px;padding-bottom:15px;background:linear-gradient(90deg,rgba(117,209,249,.16),rgba(117,209,249,.03),transparent);color:#f5fcff;opacity:1;transform:translateX(7px) scale(1.035);text-shadow:0 0 22px rgba(132,218,255,.28)}.lyrics-line:hover{color:#e9f8ff;opacity:.9}.lyrics-empty{margin-top:18px;padding:22px;border-radius:20px;text-align:center;background:rgba(6,16,23,.72);line-height:1.7}.lyrics-toggle{min-height:52px;font-size:.94rem;background:linear-gradient(145deg,rgba(11,29,40,.96),rgba(5,13,19,.98));border-color:rgba(156,224,255,.31)}.lyrics-toggle.has-lyrics::after{content:"●";font-size:.55rem;color:#83dcff;text-shadow:0 0 12px #83dcff}.lyrics-close{flex:0 0 auto}
@media(max-width:760px){.lyrics-panel{position:fixed!important;left:10px!important;right:10px!important;top:auto!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;height:min(76vh,720px)!important;border-radius:28px!important;padding:16px 14px!important;z-index:120!important}.lyrics-panel::before{content:"";display:block;width:42px;height:4px;margin:-6px auto 10px;border-radius:999px;background:rgba(205,232,245,.28)}.lyrics-title-block>strong{font-size:1.1rem}.lyrics-scroll{padding-bottom:22vh}.lyrics-line{font-size:1.08rem;padding:10px 9px}.lyrics-line.active{transform:translateX(4px) scale(1.025)}body:has(.lyrics-panel.is-open){overflow:hidden}}
/* v51.60 lyrics rows use the panel background, never browser button fill. */
.lyrics-line{background:transparent!important}
.lyrics-line.active{background:linear-gradient(90deg,rgba(117,209,249,.16),rgba(117,209,249,.03),transparent)!important}

/* v51.67 — lyrics + exact-track discussion actions. */
.track-community-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.track-community-actions .lyrics-toggle{margin-top:0;min-width:0}
.track-comments-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 14px;border-radius:18px;border:1px solid rgba(170,228,255,.22);background:linear-gradient(145deg,rgba(12,24,34,.96),rgba(5,13,19,.98));color:#dceef7;font-size:.94rem;font-weight:760;text-decoration:none;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,color .22s ease}
.track-comments-btn:hover,.track-comments-btn:focus-visible{border-color:rgba(191,237,255,.54);box-shadow:0 0 24px rgba(96,198,246,.11);transform:translateY(-1px);color:#f4fbff;outline:none}
.track-comments-btn svg{width:19px;height:19px;fill:currentColor}
body.site-mode .track-community-actions{display:none!important}
@media(max-width:420px){.track-community-actions{gap:7px}.track-comments-btn,.track-community-actions .lyrics-toggle{font-size:.82rem;padding-inline:9px;gap:7px}}

/* v51.79 — restore track titles in the full mobile player.
   The control column gained extra action rows in v51.67. On short Android
   viewports Flexbox could shrink the title and author almost to zero height. */
body:not(.site-mode) .player-eyeline,
body:not(.site-mode) .track-title,
body:not(.site-mode) .track-author{
  flex:0 0 auto!important;
  opacity:1!important;
  visibility:visible!important;
}
body:not(.site-mode) .track-title{
  display:block!important;
  color:var(--text)!important;
  -webkit-text-fill-color:var(--text)!important;
  min-height:1.08em!important;
  max-height:2.24em!important;
  line-height:1.08!important;
  white-space:normal!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  text-wrap:wrap!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:initial!important;
  text-shadow:0 5px 24px rgba(0,0,0,.48);
}
body:not(.site-mode) .video-mode .track-title{
  max-height:3.25em!important;
}
body:not(.site-mode) .track-author{
  color:#a9bac7!important;
  -webkit-text-fill-color:#a9bac7!important;
  min-height:1.2em!important;
  line-height:1.2!important;
}
@media(max-width:760px){
  body:not(.site-mode) .player-shell{
    height:auto!important;
    min-height:calc(100svh - 70px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    grid-template-rows:clamp(285px,43svh,430px) auto!important;
  }
  body:not(.site-mode) .control-side{
    overflow:visible!important;
  }
  body:not(.site-mode) .track-title{
    margin-top:6px!important;
    font-size:clamp(1.48rem,7.4vw,2.25rem)!important;
    min-height:1.12em!important;
    max-height:2.3em!important;
  }
  body:not(.site-mode) .video-mode .track-title{
    font-size:clamp(1.24rem,5.8vw,1.78rem)!important;
    max-height:3.35em!important;
  }
  body:not(.site-mode) .track-author{
    margin-top:5px!important;
  }
  body:not(.site-mode) .scroll-cue{
    margin-top:15px!important;
  }
}
@media(max-width:390px){
  body:not(.site-mode) .player-shell{
    min-height:calc(100svh - 66px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    grid-template-rows:clamp(265px,40svh,390px) auto!important;
  }
}


/* v51.79 — separate official lyrics / YouTube auto-caption window */
.lyrics-source-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 10px;padding:4px;border:1px solid rgba(160,222,250,.16);border-radius:15px;background:rgba(2,9,14,.72)}
.lyrics-source-tab{min-width:0;border:0;border-radius:11px;padding:9px 8px;background:transparent;color:#7f97a5;font:inherit;font-size:.75rem;font-weight:800;line-height:1.2;cursor:pointer;transition:.2s ease}
.lyrics-source-tab.active{background:linear-gradient(145deg,rgba(112,203,244,.22),rgba(12,33,45,.9));color:#f3fbff;box-shadow:inset 0 0 0 1px rgba(166,229,255,.22),0 7px 18px rgba(0,0,0,.18)}
.lyrics-source-tab.has-data::after{content:"  •";color:#79dcff}
.lyrics-source-tab.is-loading{opacity:.68}
@media(max-width:420px){.lyrics-source-tab{font-size:.68rem;padding:8px 5px}.lyrics-panel{height:min(79vh,740px)!important}}

/* v52.03 — hard stop for equalizer while lyrics/captions are open */
#visualizer[hidden],
.player-shell.has-open-lyrics #visualizer,
.player-shell:has(.lyrics-panel.is-open) #visualizer,
body:has(.lyrics-panel.is-open) #visualizer{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
}
.lyrics-panel.is-open{z-index:999!important}
.lyrics-panel.is-open .lyrics-source-tabs,
.lyrics-panel.is-open .lyrics-meta,
.lyrics-panel.is-open .lyrics-scroll{position:relative;z-index:3}

/* v54.27 STABLE — automatic karaoke word highlighting */
.lyrics-word{display:inline;transition:color .12s ease,text-shadow .12s ease,opacity .12s ease}
.lyrics-word+.lyrics-word::before{content:" ";white-space:pre}
.lyrics-line.active .lyrics-word{color:#a9c3d0;opacity:.76}
.lyrics-line.active .lyrics-word.is-past{color:#f4fbff;opacity:1}
.lyrics-line.active .lyrics-word.is-active{color:#ffe06a;opacity:1;text-shadow:0 0 9px rgba(255,210,56,.68),0 0 22px rgba(255,183,26,.34)}
.lyrics-line.past .lyrics-word{color:inherit;opacity:inherit}
