:root,[data-theme=light]{--bg: #ffffff;--bg-secondary: #f2f2f7;--bg-tertiary: #ffffff;--bg-grouped: #f2f2f7;--bg-grouped-secondary: #ffffff;--label: #000000;--label-secondary: rgba(60, 60, 67, .6);--label-tertiary: rgba(60, 60, 67, .3);--label-quaternary: rgba(60, 60, 67, .18);--separator: rgba(60, 60, 67, .29);--separator-opaque: #c6c6c8;--fill: rgba(120, 120, 128, .2);--fill-secondary: rgba(120, 120, 128, .16);--fill-tertiary: rgba(118, 118, 128, .12);--fill-quaternary: rgba(116, 116, 128, .08);--gray: #8e8e93;--gray-2: #aeaeb2;--gray-3: #c7c7cc;--gray-4: #d1d1d6;--gray-5: #e5e5ea;--gray-6: #f2f2f7;--key: #fa2d48;--key-pressed: #d91e37;--on-key: #ffffff;--red: #ff3b30;--blue: #007aff;--green: #34c759;--orange: #ff9500;--segment-thumb: #ffffff;--glass-fill: rgba(255, 255, 255, .62);--glass-edge: rgba(255, 255, 255, .85);--player-bg: #3a2a2e;--player-scrim: rgba(0, 0, 0, .32);--player-ink: #ffffff;--player-ink-muted: rgba(255, 255, 255, .62);--player-ink-faint: rgba(255, 255, 255, .32);--player-track: rgba(255, 255, 255, .22);--shadow-artwork: 0 4px 14px rgba(0, 0, 0, .16);--shadow-artwork-playing: 0 22px 48px rgba(0, 0, 0, .45);--shadow-glass: 0 8px 30px rgba(0, 0, 0, .12);--shadow-segment: 0 3px 8px rgba(0, 0, 0, .12), 0 3px 1px rgba(0, 0, 0, .04);color-scheme:light}[data-theme=dark]{--bg: #000000;--bg-secondary: #1c1c1e;--bg-tertiary: #2c2c2e;--bg-grouped: #000000;--bg-grouped-secondary: #1c1c1e;--label: #ffffff;--label-secondary: rgba(235, 235, 245, .6);--label-tertiary: rgba(235, 235, 245, .3);--label-quaternary: rgba(235, 235, 245, .16);--separator: rgba(84, 84, 88, .6);--separator-opaque: #38383a;--fill: rgba(120, 120, 128, .36);--fill-secondary: rgba(120, 120, 128, .32);--fill-tertiary: rgba(118, 118, 128, .24);--fill-quaternary: rgba(118, 118, 128, .18);--gray: #8e8e93;--gray-2: #636366;--gray-3: #48484a;--gray-4: #3a3a3c;--gray-5: #2c2c2e;--gray-6: #1c1c1e;--key: #fa586a;--key-pressed: #fb7a88;--on-key: #ffffff;--red: #ff453a;--blue: #0a84ff;--green: #30d158;--orange: #ff9f0a;--segment-thumb: #636366;--glass-fill: rgba(36, 36, 38, .62);--glass-edge: rgba(255, 255, 255, .14);--player-bg: #3a2a2e;--player-scrim: rgba(0, 0, 0, .32);--player-ink: #ffffff;--player-ink-muted: rgba(255, 255, 255, .62);--player-ink-faint: rgba(255, 255, 255, .32);--player-track: rgba(255, 255, 255, .22);--shadow-artwork: 0 4px 14px rgba(0, 0, 0, .5);--shadow-artwork-playing: 0 22px 48px rgba(0, 0, 0, .45);--shadow-glass: 0 8px 30px rgba(0, 0, 0, .55);--shadow-segment: 0 3px 8px rgba(0, 0, 0, .12), 0 3px 1px rgba(0, 0, 0, .04);color-scheme:dark}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-11: 44px;--radius-artwork-xs: 4px;--radius-artwork: 8px;--radius-artwork-lg: 12px;--radius-control: 10px;--radius-segment: 9px;--radius-card: 16px;--radius-pill: 999px;--material-blur: 30px;--size-art-row: 48px;--size-art-tile: 160px;--size-art-player: 320px;--size-row: 60px;--size-control: 44px;--size-scrubber: 7px;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, "Helvetica Neue", Helvetica, Arial, sans-serif}.large-title{font-family:var(--font-display);font-size:34px;line-height:41px;font-weight:400;letter-spacing:.37px}.title-1{font-family:var(--font-display);font-size:28px;line-height:34px;font-weight:400;letter-spacing:.36px}.title-2{font-family:var(--font-display);font-size:22px;line-height:28px;font-weight:400;letter-spacing:.35px}.title-3{font-family:var(--font-display);font-size:20px;line-height:25px;font-weight:400;letter-spacing:.38px}.headline{font-family:var(--font-sans);font-size:17px;line-height:22px;font-weight:600;letter-spacing:-.41px}.body{font-family:var(--font-sans);font-size:17px;line-height:22px;font-weight:400;letter-spacing:-.41px}.callout{font-family:var(--font-sans);font-size:16px;line-height:21px;font-weight:400;letter-spacing:-.32px}.subheadline{font-family:var(--font-sans);font-size:15px;line-height:20px;font-weight:400;letter-spacing:-.24px}.footnote{font-family:var(--font-sans);font-size:13px;line-height:18px;font-weight:400;letter-spacing:-.08px}.caption-1{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0px}.caption-2{font-family:var(--font-sans);font-size:11px;line-height:13px;font-weight:400;letter-spacing:.07px}.page-title{font-family:var(--font-display);font-size:34px;line-height:41px;font-weight:700;letter-spacing:.37px}.shelf-title{font-family:var(--font-display);font-size:22px;line-height:28px;font-weight:700;letter-spacing:.35px}.tile-text{font-family:var(--font-sans);font-size:13px;line-height:18px;font-weight:400;letter-spacing:-.08px}.row-title{font-family:var(--font-sans);font-size:16px;line-height:21px;font-weight:400;letter-spacing:-.32px}.row-subtitle{font-family:var(--font-sans);font-size:13px;line-height:18px;font-weight:400;letter-spacing:-.08px}.np-title{font-family:var(--font-display);font-size:20px;line-height:25px;font-weight:600;letter-spacing:.38px}.np-artist{font-family:var(--font-display);font-size:20px;line-height:25px;font-weight:400;letter-spacing:.38px}.lyrics-line{font-family:var(--font-display);font-size:30px;line-height:36px;font-weight:700;letter-spacing:.2px}.time-label{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:600;letter-spacing:0px}.tab-label{font-family:var(--font-sans);font-size:10px;line-height:12px;font-weight:500;letter-spacing:.1px}.badge-label{font-family:var(--font-sans);font-size:10px;line-height:12px;font-weight:600;letter-spacing:.1px}@property --c1{syntax: "<color>"; inherits: true; initial-value: #3a2a2e;}@property --c2{syntax: "<color>"; inherits: true; initial-value: #2a1f3d;}@property --c3{syntax: "<color>"; inherits: true; initial-value: #1f2a3d;}@property --c4{syntax: "<color>"; inherits: true; initial-value: #3d2c2a;}html{-webkit-text-size-adjust:100%;overscroll-behavior-y:none;background:var(--bg)}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--label);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:29}h1,h2,h3,p{margin:0}a{color:inherit}button{font:inherit;color:inherit;-webkit-touch-callout:none}img{max-width:100%}:focus-visible{outline:2px solid var(--key);outline-offset:2px}.muted{color:var(--label-secondary)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.icon{display:block;flex:none}.glass{background:var(--glass-fill);-webkit-backdrop-filter:blur(var(--material-blur)) saturate(180%);backdrop-filter:blur(var(--material-blur)) saturate(180%);box-shadow:inset 0 0 0 1px var(--glass-edge),var(--shadow-glass)}.app{--side: 0px}.app--desktop{--side: 260px}.content{margin-left:var(--side)}.page{--gutter: max(20px, env(safe-area-inset-left, 0px));max-width:1280px;margin:0 auto;box-sizing:border-box;padding:calc(env(safe-area-inset-top,0px) + 52px) max(20px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 172px) var(--gutter)}.app--desktop .page{--gutter: 40px;padding:52px 40px 120px}.page-head{padding:var(--space-1) 0 var(--space-2)}.page-head--hidden{padding:0;height:1px}.topbar{position:fixed;top:0;left:var(--side);right:0;z-index:30;box-sizing:border-box;height:calc(52px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) max(8px,env(safe-area-inset-right,0px)) 0 max(8px,env(safe-area-inset-left,0px));display:grid;grid-template-columns:1fr auto 1fr;align-items:center;pointer-events:none;transition:background-color .2s,box-shadow .2s}.topbar>*{pointer-events:auto}.topbar.is-compact{background:var(--glass-fill);-webkit-backdrop-filter:blur(var(--material-blur)) saturate(180%);backdrop-filter:blur(var(--material-blur)) saturate(180%);box-shadow:0 .5px 0 var(--separator)}.topbar-title{opacity:0;transition:opacity .2s;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.topbar.is-compact .topbar-title{opacity:1}.topbar-side{display:flex;align-items:center;min-width:0}.topbar-actions{justify-content:flex-end}.topbar-back{display:inline-flex;align-items:center;gap:2px;padding:var(--space-2) var(--space-1);border:0;background:none;color:var(--key);cursor:pointer}.dock{position:fixed;left:var(--side);right:0;bottom:0;z-index:40;display:grid;justify-items:center;gap:10px;pointer-events:none;padding:0 max(12px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 10px) max(12px,env(safe-area-inset-left,0px))}.dock:before{content:"";position:absolute;inset:-28px 0 0;background:linear-gradient(to bottom,transparent,var(--bg) 75%);z-index:-1}.dock>*{pointer-events:auto;width:100%;max-width:520px;box-sizing:border-box}.app--desktop .dock>*{max-width:600px}.app--desktop .dock{padding-bottom:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--size-control);padding:0 var(--space-5);border:0;border-radius:var(--radius-control);cursor:pointer;text-decoration:none;transition:background-color .15s,transform .15s}.btn:active{transform:scale(.97)}.btn--tinted{background:var(--fill-tertiary);color:var(--key)}.btn--tinted:hover{background:var(--fill-secondary)}.btn--filled{background:var(--key);color:var(--on-key)}.btn--filled:hover{background:var(--key-pressed)}.btn--plain{background:none;color:var(--key);padding:0 var(--space-2)}.btn--block{flex:1 1 0}.btn--danger,.btn--danger:hover{background:var(--red)}.danger-text{color:var(--red)}.btn:disabled{color:var(--label-tertiary);background:var(--fill-quaternary);cursor:default;transform:none}.btn--plain:disabled{background:none}.iconbtn{display:inline-grid;place-items:center;width:var(--space-11);height:var(--space-11);padding:0;border:0;border-radius:var(--radius-pill);background:none;color:var(--label);cursor:pointer;flex:none}.iconbtn:hover{background:var(--fill-quaternary)}.iconbtn:disabled{color:var(--label-tertiary);cursor:default;background:none}.key-icon{color:var(--key)}.link-ink{border:0;background:none;padding:0;color:inherit;text-decoration:underline;cursor:pointer}.badge-e{display:inline-grid;place-items:center;width:13px;height:13px;border-radius:2px;background:var(--label-secondary);color:var(--bg);font-size:9px;font-weight:700;line-height:1;flex:none}.badge{display:inline-flex;align-items:center;height:18px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--fill-tertiary);color:var(--label-secondary);white-space:nowrap}.art{position:relative;flex:none;overflow:hidden;width:100%;aspect-ratio:1;max-width:100%;background:var(--gray-5)}.art img{display:block;width:100%;height:100%;object-fit:cover}.art--xs{border-radius:var(--radius-artwork-xs)}.art--md{border-radius:var(--radius-artwork)}.art--lg{border-radius:var(--radius-artwork-lg)}.art--round{border-radius:50%}.art--shadow{box-shadow:var(--shadow-artwork)}.art--video{aspect-ratio:16 / 9}.art:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 .5px var(--separator);pointer-events:none}.art-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--gray)}.shelf{margin-top:var(--space-8)}.shelf-head{display:flex;align-items:center;margin:0 0 var(--space-3)}.shelf-head a{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--label);text-decoration:none}.shelf-chev{color:var(--label-secondary)}.shelf-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.shelf-head-row .shelf-head{margin:0}.shelf-row,.track-grid{display:flex;gap:var(--space-3);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--gutter);margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) var(--space-2);scrollbar-width:none;overscroll-behavior-x:contain}.shelf-row::-webkit-scrollbar,.track-grid::-webkit-scrollbar{display:none}.shelf-row>*{scroll-snap-align:start}.tile{display:grid;align-content:start;width:var(--size-art-tile);flex:none;padding:0;border:0;background:none;color:var(--label);text-align:left;text-decoration:none;cursor:pointer}.app--desktop .tile{width:180px}.tile--video,.tile--wide{width:260px}.app--desktop .tile--video,.app--desktop .tile--wide{width:300px}.tile .art{margin-bottom:var(--space-2);transition:transform .2s}.tile:hover .art{transform:scale(.98)}.tile-title{display:flex;align-items:center;gap:var(--space-1);min-width:0}.tile-sub{color:var(--label-secondary)}.tile-center{justify-content:center;text-align:center}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-6) var(--space-3)}.tile-grid .tile{width:auto}.track-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-auto-columns:min(86%,380px);gap:0 var(--space-5)}.list{display:grid}.row{position:relative;display:flex;align-items:center;min-height:var(--size-row)}.row:after{content:"";position:absolute;left:calc(var(--size-art-row) + var(--space-3));right:0;bottom:0;height:.5px;background:var(--separator)}.row--indexed:after{left:44px}.row-main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);min-height:var(--size-row);padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.row-main:active{opacity:.6}.row-art{position:relative;flex:none;width:var(--size-art-row)}.row-art-veil{position:absolute;inset:0;display:grid;place-items:center;border-radius:var(--radius-artwork-xs);background:var(--player-scrim);color:var(--player-ink)}.row-index{width:32px;text-align:center;color:var(--label-secondary);font-variant-numeric:tabular-nums;flex:none}.row.is-current .row-index,.row.is-current .row-name{color:var(--key)}.row-text{display:grid;min-width:0;flex:1}.row-name{display:flex;align-items:center;gap:var(--space-1);min-width:0}.row-sub{color:var(--label-secondary)}.row-duration{color:var(--label-secondary);font-variant-numeric:tabular-nums;flex:none}.row-more{margin-right:-10px}.row--compact{min-height:58px}.list-foot{padding-top:var(--space-3)}.bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.bars i{display:block;width:3px;border-radius:1px;background:currentColor;transform-origin:bottom;animation:bar .9s ease-in-out infinite alternate}.bars i:nth-child(1){height:60%;animation-delay:-.2s}.bars i:nth-child(2){height:100%;animation-delay:-.5s}.bars i:nth-child(3){height:40%;animation-delay:-.1s}.bars i:nth-child(4){height:80%;animation-delay:-.7s}.bars.is-paused i{animation-play-state:paused}@keyframes bar{0%{transform:scaleY(.3)}to{transform:scaleY(1)}}.seg{position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);height:32px;padding:2px;border-radius:var(--radius-segment);background:var(--fill-tertiary);width:100%;max-width:360px;box-sizing:border-box}.seg-thumb{position:absolute;top:2px;bottom:2px;left:2px;width:calc((100% - 4px) / var(--n));transform:translate(calc(100% * var(--i)));border-radius:7px;background:var(--segment-thumb);box-shadow:var(--shadow-segment);transition:transform .25s cubic-bezier(.3,.7,.2,1)}.seg-btn{position:relative;border:0;background:none;color:var(--label);cursor:pointer;border-radius:7px;padding:0 var(--space-2);white-space:nowrap}.seg-btn.is-on{font-weight:600}.search{display:flex;align-items:center;gap:6px;height:36px;padding:0 var(--space-2);border-radius:var(--radius-control);background:var(--fill-tertiary);color:var(--label-secondary);width:100%;box-sizing:border-box;margin:0}.search input{flex:1;min-width:0;height:100%;border:0;background:none;color:var(--label);outline:none;-webkit-appearance:none;appearance:none;padding:0}.search input::placeholder{color:var(--label-secondary)}.search input::-webkit-search-cancel-button{display:none}.search-clear{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:var(--label-tertiary);color:var(--bg);cursor:pointer;flex:none}.input{height:44px;padding:0 var(--space-3);border:0;border-radius:var(--radius-control);background:var(--fill-tertiary);color:var(--label);box-sizing:border-box;outline:none}.input:focus-visible{outline:2px solid var(--key)}.toggle{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:52px;cursor:pointer}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle-track{position:relative;width:51px;height:31px;border-radius:var(--radius-pill);background:var(--fill);transition:background-color .2s;flex:none}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:var(--on-key);box-shadow:0 3px 8px #00000026;transition:transform .2s}.toggle input:checked+.toggle-track{background:var(--green)}.toggle input:checked+.toggle-track:after{transform:translate(20px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--key);outline-offset:2px}.state{display:grid;justify-items:center;gap:var(--space-3);padding:48px var(--space-4);text-align:center;color:var(--label-secondary)}.state p{max-width:38ch}.state--empty .title-3{color:var(--label)}.spinner{width:24px;height:24px;border-radius:50%;border:2.5px solid var(--fill);border-top-color:var(--label-secondary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:var(--gray-5);animation:pulse 1.4s ease-in-out infinite}.skeleton-title{width:180px;height:24px;border-radius:6px;margin-bottom:var(--space-3)}.skeleton-art{aspect-ratio:1;border-radius:var(--radius-artwork)}.skeleton-line{height:12px;border-radius:4px;margin-top:var(--space-2)}.skeleton-line.short{width:60%}@keyframes pulse{50%{opacity:.5}}.hero{display:grid;justify-items:center;gap:var(--space-4);text-align:center;padding-top:var(--space-2)}.hero-art{width:min(70vw,280px)}.hero-text{display:grid;justify-items:center;gap:var(--space-1);width:100%}.hero-title{text-wrap:balance}.hero-artist{color:var(--key);text-decoration:none}.hero-desc{margin-top:var(--space-4);max-width:70ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hero+.list,.hero-desc+.list{margin-top:var(--space-6)}.play-buttons{display:flex;gap:var(--space-3);width:100%;max-width:400px;margin-top:var(--space-3)}.play-buttons--page{margin:var(--space-2) 0 var(--space-4)}@media (min-width: 768px){.hero{grid-template-columns:260px 1fr;justify-items:start;align-items:end;text-align:left;gap:var(--space-8)}.hero-art{width:260px}.hero-text{justify-items:start}}.page--hero{padding-top:0}.artist-hero{position:relative;height:min(64vw,440px);margin:0 calc(-1*max(20px,env(safe-area-inset-right,0px))) 0 calc(-1 * var(--gutter));overflow:hidden;background:var(--bg-secondary)}.app--desktop .artist-hero{margin:0 -40px}.artist-banner{display:block;width:100%;height:100%;object-fit:cover}.artist-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 45%,var(--player-scrim) 75%,var(--player-scrim));pointer-events:none}.artist-hero-row{position:absolute;left:var(--gutter);right:var(--gutter);bottom:var(--space-4);z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.artist-name{color:var(--player-ink);text-wrap:balance;text-shadow:0 1px 12px rgba(0,0,0,.35)}.artist-play{display:grid;place-items:center;width:52px;height:52px;padding:0 0 0 3px;border:0;border-radius:50%;background:var(--key);color:var(--on-key);cursor:pointer;flex:none;box-shadow:var(--shadow-artwork)}.artist-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.about{max-width:70ch;color:var(--label-secondary);white-space:pre-line}.mood-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3)}.mood{display:flex;align-items:flex-end;aspect-ratio:16 / 10;padding:var(--space-3);border-radius:var(--radius-control);color:var(--player-ink);text-decoration:none;box-sizing:border-box;transition:transform .15s}.mood:active{transform:scale(.97)}.station-art{position:relative;display:block;margin-bottom:var(--space-2)}.station .art{margin:0}.station-badge{position:absolute;left:var(--space-2);bottom:var(--space-2);display:inline-flex;align-items:center;gap:4px;padding:3px var(--space-2);border-radius:var(--radius-pill);background:var(--player-scrim);color:var(--player-ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.radio-hero,.top-hit{display:flex;align-items:center;gap:var(--space-4);width:100%;max-width:640px;padding:var(--space-3);border:0;border-radius:var(--radius-card);background:var(--bg-secondary);color:var(--label);text-align:left;cursor:pointer;box-sizing:border-box}.radio-hero-text,.top-hit-text{flex:1;display:grid;gap:var(--space-1);min-width:0}.radio-hero-play{color:var(--key)}.search-sticky{position:sticky;top:calc(env(safe-area-inset-top,0px) + 52px);z-index:5;padding:var(--space-2) 0;background:var(--bg)}.search-scope{margin:var(--space-3) 0 0}.suggest{display:grid;margin-top:var(--space-2)}.suggest-row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:6px 0;border:0;border-bottom:.5px solid var(--separator);background:none;color:var(--label);text-align:left;cursor:pointer}.suggest-text{display:grid;min-width:0}.lib-rows{display:grid}.lib-row{display:flex;align-items:center;gap:var(--space-4);min-height:52px;border-bottom:.5px solid var(--separator);color:var(--label);text-decoration:none}.lib-icon{color:var(--key)}.lib-label{flex:1}.lib-chev{color:var(--label-tertiary)}.settings-card{padding:var(--space-1) var(--space-4);border-radius:12px;background:var(--bg-secondary)}.settings-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);min-height:52px;padding:var(--space-2) 0;border-bottom:.5px solid var(--separator)}.settings-row .seg{max-width:260px}.settings-action{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:var(--space-2) 0;border:0;border-bottom:.5px solid var(--separator);background:none;color:var(--key);text-align:left;cursor:pointer}.settings-action:last-of-type{border-bottom:0}.settings-action:disabled{opacity:.5;cursor:default}.settings-action:focus-visible{outline:2px solid var(--key);outline-offset:2px;border-radius:6px}@media (hover: hover){.settings-action:not(:disabled):hover{opacity:.75}}.settings-note{margin-top:var(--space-3);max-width:70ch}.picker-new{display:flex;gap:var(--space-2)}.picker-new .input{flex:1;min-width:0}.picker-new--page{margin:var(--space-2) 0 var(--space-4);max-width:520px}.edit-box{display:grid;gap:var(--space-3);justify-items:start;margin-bottom:var(--space-4);padding:var(--space-4);border-radius:12px;background:var(--bg-secondary)}.edit-box .picker-new{margin:0;width:100%}.confirm{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.pl-row{display:flex;align-items:center;gap:var(--space-3);min-height:72px;border-bottom:.5px solid var(--separator);color:var(--label);text-decoration:none}.pl-text{flex:1;display:grid;min-width:0}.pl-text .row-subtitle{color:var(--label-secondary)}.offline{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 14px;border-radius:var(--radius-pill);color:var(--label)}.mini{position:relative;display:flex;align-items:center;gap:2px;height:56px;padding:0 6px 0 10px;border-radius:var(--radius-pill);overflow:hidden}.mini-open{flex:1;display:flex;align-items:center;gap:10px;min-width:0;height:100%;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.mini-text{display:grid;min-width:0}.mini-btn{width:42px;height:42px}.mini-progress{position:absolute;left:22px;right:22px;bottom:4px;height:2px;border-radius:var(--radius-pill);background:var(--fill);overflow:hidden}.mini-progress span{display:block;height:100%;background:var(--key);transform-origin:left;transition:transform .25s linear}.tabbar{display:flex;align-items:center;gap:var(--space-3)}.tabs{flex:1;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;height:62px;padding:0 var(--space-1);border-radius:var(--radius-pill)}.tab{display:grid;justify-items:center;gap:2px;padding:6px 0;border-radius:var(--radius-pill);color:var(--label);text-decoration:none}.tab.is-on{color:var(--key);background:var(--fill-quaternary)}.tab-search{display:grid;place-items:center;width:62px;height:62px;border-radius:var(--radius-pill);color:var(--label);flex:none}.tab-search.is-on{color:var(--key)}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:35;width:260px;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-4) var(--space-4);overflow-y:auto;background:var(--bg-secondary);border-right:.5px solid var(--separator)}.side-brand{display:flex;align-items:center;gap:10px;padding:0 var(--space-2) var(--space-3)}.side-name{font-weight:700}.side-nav{display:grid;gap:2px}.side-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 10px;border-radius:10px;color:var(--label);text-decoration:none;min-width:0}.side-link .icon{color:var(--key)}.side-link:hover{background:var(--fill-quaternary)}.side-link.is-on{background:var(--fill-tertiary)}.side-section{padding:var(--space-3) 10px var(--space-1);color:var(--label-secondary)}.side-settings{margin-top:auto;padding:10px;color:var(--label-secondary);text-decoration:none}.sheet-layer{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;background:#0006}.sheet{width:100%;max-width:520px;max-height:86dvh;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) var(--space-4) calc(env(safe-area-inset-bottom,0px) + var(--space-4));border-radius:var(--radius-card) var(--radius-card) 0 0;background:var(--bg-secondary);color:var(--label);box-shadow:var(--shadow-glass)}@media (min-width: 640px){.sheet{margin-bottom:var(--space-6);border-radius:var(--radius-card)}}.sheet-grabber{align-self:center;width:36px;height:5px;border-radius:var(--radius-pill);background:var(--label-tertiary)}.sheet-head{display:flex;align-items:center;gap:var(--space-3)}.sheet-head-text{display:grid;min-width:0}.sheet-title{padding:0 var(--space-1)}.sheet-group{display:grid;border-radius:12px;background:var(--bg-tertiary);overflow:hidden}.sheet-scroll{overflow-y:auto;max-height:42dvh}.sheet-note{padding:var(--space-3) var(--space-4)}.sheet-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-height:48px;padding:0 var(--space-4);border:0;border-bottom:.5px solid var(--separator);background:none;color:var(--label);text-align:left;cursor:pointer}.sheet-action:last-child{border-bottom:0}.sheet-action:hover{background:var(--fill-quaternary)}.sheet-action.is-danger{color:var(--red)}.toast-zone{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 150px);z-index:90;display:flex;justify-content:center;padding:0 var(--space-4);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--space-3);max-width:480px;padding:10px var(--space-4);border-radius:var(--radius-pill);color:var(--label)}.toast-action{flex:none;border:0;background:none;color:var(--key);cursor:pointer;padding:0}.fluid{position:absolute;inset:0;overflow:hidden;background:var(--c1);transition:--c1 1.2s,--c2 1.2s,--c3 1.2s,--c4 1.2s}.blob{position:absolute;width:95vmax;height:95vmax;border-radius:50%;opacity:.95;will-change:transform}.b1{top:-38vmax;left:-34vmax;background:radial-gradient(closest-side,var(--c1),transparent);animation:drift1 28s ease-in-out infinite alternate}.b2{top:-30vmax;right:-40vmax;background:radial-gradient(closest-side,var(--c2),transparent);animation:drift2 34s ease-in-out infinite alternate}.b3{bottom:-42vmax;left:-26vmax;background:radial-gradient(closest-side,var(--c3),transparent);animation:drift3 31s ease-in-out infinite alternate}.b4{bottom:-36vmax;right:-34vmax;background:radial-gradient(closest-side,var(--c4),transparent);animation:drift4 37s ease-in-out infinite alternate}.fluid-scrim{position:absolute;inset:0;background:var(--player-scrim)}@keyframes drift1{to{transform:translate(22vmax,18vmax) rotate(40deg) scale(1.15)}}@keyframes drift2{to{transform:translate(-26vmax,24vmax) rotate(-30deg) scale(.9)}}@keyframes drift3{to{transform:translate(28vmax,-20vmax) rotate(25deg) scale(1.1)}}@keyframes drift4{to{transform:translate(-20vmax,-26vmax) rotate(-45deg) scale(1.2)}}.fp{position:fixed;inset:0;z-index:50;overflow:hidden;color:var(--player-ink);background:var(--player-bg)}.fp.is-hidden{visibility:hidden}.fp.is-closing{pointer-events:none}.fp-inner{position:relative;height:100%;box-sizing:border-box;max-width:1180px;margin:0 auto;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) max(24px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + var(--space-4)) max(24px,env(safe-area-inset-left,0px))}.fp-grab{display:flex;justify-content:center;padding:10px 0 var(--space-4);touch-action:none;cursor:grab}.fp-grabber{width:44px;height:5px;padding:0;border:0;border-radius:var(--radius-pill);background:var(--player-track);cursor:pointer}.fp-body{flex:1;min-height:0;display:flex;gap:56px}.fp-main{flex:1;min-height:0;width:100%;max-width:440px;margin:0 auto;display:grid;grid-template-areas:"art" "tap" "meta" "panel" "controls";grid-template-rows:minmax(0,1fr) auto auto auto auto;row-gap:var(--space-5)}.fp-art-wrap{grid-area:art;container-type:size;display:grid;place-items:center;min-height:0;touch-action:none}.fp-art{position:relative;width:min(100cqw,100cqh);aspect-ratio:1;border-radius:var(--radius-artwork-lg);transition:transform .45s cubic-bezier(.3,1.3,.5,1),box-shadow .45s}.fp-art.is-video{width:min(100cqw,100cqh * 16 / 9);aspect-ratio:16 / 9}.fp-art.is-playing{box-shadow:var(--shadow-artwork-playing)}.fp-art.is-paused{transform:scale(.78)}.fp-art .art{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;background:var(--player-track)}.fp-art .art:after{box-shadow:none}.fp-art .art-empty{color:var(--player-ink-muted)}.fp-video{position:absolute;inset:0;overflow:hidden;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .5s}.fp-video.is-on{opacity:1}.fp-video iframe{position:absolute;top:0;left:50%;width:177.78%;height:100%;border:0;transform:translate(-50%)}.fp-art.is-video .fp-video iframe{left:0;width:100%;transform:none}.fp-art.needs-tap .fp-video{pointer-events:auto;opacity:1}.fp-tap{grid-area:tap;text-align:center;color:var(--player-ink)}.fp-meta{grid-area:meta;display:flex;align-items:center;gap:10px;min-width:0}.fp-meta-text{flex:1;min-width:0;display:grid}.fp-title{display:flex;align-items:center;gap:6px;min-width:0}.fp-title .badge-e{background:var(--player-ink-muted);color:var(--player-bg)}.fp-artist{max-width:100%;padding:0;border:0;background:none;color:var(--player-ink-muted);text-align:left;cursor:pointer}.fp-artist:disabled{cursor:default}.fp-round{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:var(--player-track);color:var(--player-ink);cursor:pointer;flex:none}.fp-controls{grid-area:controls;display:grid;gap:var(--space-4)}.fp-scrub{display:grid;gap:4px}.fp-times{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--player-ink-muted);font-variant-numeric:tabular-nums}.fp-times>:last-child{text-align:right}.fp-badge{padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--player-track);color:var(--player-ink)}.fp-transport{display:flex;align-items:center;justify-content:space-between}.fp-btn{display:grid;place-items:center;min-width:var(--space-11);min-height:var(--space-11);padding:0;border:0;border-radius:var(--radius-pill);background:none;color:var(--player-ink);cursor:pointer;transition:transform .12s}.fp-btn:active{transform:scale(.88)}.fp-btn:disabled{color:var(--player-ink-faint)}.fp-play{width:76px;height:76px}.fp-mode,.fp-tool{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:var(--radius-pill);background:none;color:var(--player-ink-muted);cursor:pointer;text-decoration:none;transition:background-color .15s,color .15s}.fp-tool{width:var(--space-11);height:var(--space-11)}.fp-mode.is-on,.fp-tool.is-on{color:var(--player-ink);background:var(--player-track)}.fp :focus-visible{outline-color:var(--player-ink)}.fp-volume{display:flex;align-items:center;gap:var(--space-3);color:var(--player-ink-muted)}.fp-vol-icon{display:grid;place-items:center;padding:0;border:0;background:none;color:inherit;cursor:pointer}.fp-tools{display:flex;justify-content:space-evenly}.scrub{position:relative;flex:1;height:22px;display:flex;align-items:center;cursor:pointer;touch-action:none}.scrub-track{position:relative;width:100%;height:var(--size-scrubber);border-radius:var(--radius-pill);background:var(--player-track);overflow:hidden;transition:height .15s}.scrub:hover .scrub-track,.scrub.is-dragging .scrub-track{height:calc(var(--size-scrubber) * 2)}.scrub--thin .scrub-track{height:6px}.scrub--thin:hover .scrub-track,.scrub--thin.is-dragging .scrub-track{height:10px}.scrub-fill{position:absolute;inset:0;background:var(--player-ink-muted);transform-origin:left}.scrub:hover .scrub-fill,.scrub.is-dragging .scrub-fill{background:var(--player-ink)}.fp--panel:not(.fp--wide) .fp-main{grid-template-areas:"art meta" "tap tap" "panel panel" "controls controls";grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;column-gap:var(--space-3);row-gap:var(--space-3);max-width:520px}.fp--panel:not(.fp--wide) .fp-art-wrap{container-type:normal;width:64px;height:64px}.fp--panel:not(.fp--wide) .fp-art{width:64px;transform:none;box-shadow:none;border-radius:var(--radius-artwork-xs)}.fp--panel:not(.fp--wide) .fp-art.is-video{width:64px;aspect-ratio:1}.fp--panel:not(.fp--wide) .fp-volume{display:none}.fp--panel:not(.fp--wide) .fp-title{font-size:17px;line-height:22px}.fp--panel:not(.fp--wide) .fp-artist{font-size:15px;line-height:20px}.fp-panel{grid-area:panel;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(transparent,#000 20px,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(transparent,#000 20px,#000 calc(100% - 40px),transparent)}.fp--wide .fp-body{align-items:stretch}.fp--wide .fp-main{flex:0 1 440px;padding-bottom:var(--space-4)}.fp--wide.fp--panel .fp-main{margin:0}.fp-side{flex:1;min-width:0;overflow-y:auto;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(transparent,#000 40px,#000 calc(100% - 60px),transparent);mask-image:linear-gradient(transparent,#000 40px,#000 calc(100% - 60px),transparent)}.lyrics{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding:30vh 0 40vh}.fp-panel .lyrics{padding:20px 0 45%}.lyric{margin:0;padding:2px 0;border:0;background:none;text-align:left;color:var(--player-ink-faint);cursor:pointer;transform-origin:left center;transition:color .35s,filter .35s,transform .35s}.fp-panel .lyric{font-size:26px;line-height:32px}.lyric.is-now{color:var(--player-ink);transform:scale(1.02)}.lyric.is-next{filter:blur(1.2px)}.lyric.is-past{opacity:.8}.lyric:hover{color:var(--player-ink-muted);filter:none}.lyrics-plain{white-space:pre-wrap;font-family:var(--font-display);font-size:20px;line-height:30px;font-weight:600;color:var(--player-ink)}.lyrics-note{padding:var(--space-6) 0;color:var(--player-ink-muted)}.lyrics-source{color:var(--player-ink-muted)}.queue{padding:var(--space-2) 0 var(--space-8)}.queue-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0}.queue-head-text{min-width:0}.queue-source{color:var(--player-ink-muted)}.queue-modes{display:flex;gap:var(--space-1)}.queue-list{list-style:none;margin:0;padding:0}.queue-empty{padding:var(--space-4) 0;color:var(--player-ink-muted)}.qrow{position:relative;display:flex;align-items:center;gap:var(--space-2);min-height:56px;border-radius:10px;background:transparent}.qrow--current{margin-bottom:var(--space-2);padding:var(--space-2);gap:var(--space-3);background:var(--player-track)}.qrow-main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);padding:6px 0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.qrow-text{display:grid;min-width:0}.qrow .row-subtitle{color:var(--player-ink-muted)}.qrow-btn,.qrow-grip{display:grid;place-items:center;width:40px;height:44px;padding:0;border:0;background:none;color:var(--player-ink-muted);cursor:pointer;flex:none}.qrow-grip{touch-action:none;cursor:grab}.qrow-grip:active{cursor:grabbing}.qrow--page{border-bottom:.5px solid var(--separator);border-radius:0;background:var(--bg)}.qrow--page .row-subtitle,.qrow--page .qrow-grip{color:var(--label-secondary)}.queue-list--page{margin-top:var(--space-2)}@media (prefers-reduced-motion: reduce){.blob,.bars i,.skeleton,.spinner{animation:none}.fp-art,.seg-thumb,.lyric,.btn,.tile .art,.mini-progress span{transition:none}.lyric.is-next{filter:none}}
