:root{font-family:Manrope Variable,sans-serif;font-size:max(16px,100%);line-height:1.5;--type-body: 1rem;--type-lead: 1.125rem;--type-section: 1.5rem;--type-title: 2rem;--type-artist: 2.5rem;--type-feature: 3rem;color:#edf5f6;background:#0d2333;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:dark;--vinyl: #0d2333;--sleeve: #153342;--raised: #204352;--inset: #102b3b;--cue: #79d5d0;--cue-wash: #79d5d010;--text: #edf5f6;--secondary: #b3cbd2;--muted: #91acb5;--quiet: #79959f;--line: #ffffff0d;--edge: #ffffff14;--focus: #79d5d070;--panda-ink: #003d32;--denim: #3b91bf;--turquoise: #23b8ca;--seafoam: #82cabe;--grass: #49ae55;--citron: #bfd76a;--warning: #efbc83;--radius: 8px;--surface-shadow: 0 0 0 1px #e6eaed12, 0 2px 8px #e6eaed12, 0 10px 24px #06131b38;--ease-out: cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}body{margin:0;background-color:var(--vinyl);background-image:linear-gradient(#0d233333,#0d233333),url(/assets/navy-knit-XecpxUcl.webp);background-repeat:repeat;background-size:auto,320px 320px}#root{height:var(--visible-height, 100dvh);display:flex;flex-direction:column;overflow:clip}.startup-message{max-width:640px;margin:auto;padding:32px;background:var(--vinyl);color:var(--text);font-size:var(--type-body)}small{font-size:var(--type-body)}button,input{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;border:0;background:none}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,main:focus-visible{outline:2px solid var(--cue);outline-offset:4px}button:active:not(:disabled){transform:scale(.98)}a{color:inherit;text-underline-offset:4px}input{min-width:0}input::placeholder{color:var(--quiet)}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin-top:0}strong,h3{font-weight:600}button,a{transition:opacity .16s,transform .16s var(--ease-out)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:16px;padding:12px;background:var(--cue);color:var(--vinyl);z-index:50}.skip-link:focus{top:12px}*{scrollbar-width:thin;scrollbar-color:#3c5d68 transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{border-radius:8px;background:#3c5d68}.topbar{min-height:80px;height:auto;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:10px 32px;border-bottom:1px solid var(--edge);position:relative;z-index:20}.topbar:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--denim);opacity:.4}.brand-ribbon{height:32px;flex-shrink:0;overflow:hidden;pointer-events:none}.brand-ribbon svg{display:block;width:100%;height:100%}.brand{flex-shrink:0;display:flex;align-items:center;gap:12px;text-decoration:none;min-width:224px}.brand-icon{width:54px;height:54px;flex-shrink:0;background:var(--seafoam);color:var(--panda-ink);border-radius:var(--radius);display:grid;place-items:center;overflow:hidden}.brand-icon img{width:100%;height:100%;object-fit:contain}.brand-copy{min-width:0;height:54px;padding-block:2px;display:flex;flex-direction:column;justify-content:space-between}.brand-attribution{font-size:12px;color:var(--secondary);line-height:1}.brand-wordmark{text-decoration:none;line-height:1;white-space:nowrap;display:flex;align-items:baseline;gap:7px}.brand-wordmark strong{font-size:var(--type-title);font-weight:700;letter-spacing:-.9px}.brand-signature{display:block;width:224px;height:38px;object-fit:cover;object-position:center;align-self:center}.search{min-width:0;max-width:480px;flex:1;display:flex;align-items:center;gap:12px;padding:6px 8px 6px 16px;background:#fff;border:1px solid #fff;border-radius:8px;box-shadow:0 2px 8px #0003;position:relative;color-scheme:light}.search>svg{color:#526675}.search>input{width:100%;border:0;background:transparent;color:#102b3b;caret-color:#102b3b;height:40px;outline:0;font-size:var(--type-lead)}.search>input::placeholder{color:#526675;opacity:1}.search>button{width:40px;height:40px;display:grid;place-items:center;background:#16494b;color:#fff;border-radius:6px;flex-shrink:0}.search>button:disabled{opacity:1;background:#dce7e9;color:#334f5c}.search:focus-within{border-color:var(--cue);box-shadow:0 0 0 3px #79d5d066,var(--surface-shadow)}.search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;padding:12px;background:var(--raised);border:1px solid var(--edge);border-radius:var(--radius);max-height:400px;overflow:auto;z-index:25;animation:pop-in .18s var(--ease-out);transform-origin:top}.search-results .section-label{justify-content:space-between;margin-bottom:8px}.search-results p{font-size:var(--type-body);line-height:1.7;padding:8px;margin:0}.search-result{display:flex;width:100%;justify-content:space-between;align-items:center;padding:14px 8px;text-align:left;border-top:1px solid var(--line);font-size:var(--type-body);border-radius:6px}.search-result:hover{background:var(--cue-wash);color:var(--cue)}.side-b-entry{flex-shrink:0;min-height:54px;display:flex;align-items:center;gap:10px;padding:7px 11px;border:1px solid var(--citron);border-radius:9px;background:#102e3d;color:var(--text);text-decoration:none;box-shadow:0 2px 8px #0003}.side-b-entry:hover{background:#193b48;transform:translateY(-1px)}.side-b-entry-mark{width:37px;height:37px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:var(--citron);color:var(--vinyl);font-size:1.2rem;font-weight:900;line-height:1}.side-b-entry>span:nth-child(2){display:grid;gap:1px;white-space:nowrap}.side-b-entry strong{color:var(--citron);font-size:1.16rem;line-height:1.15;font-weight:800}.side-b-entry small{color:var(--secondary);font-size:.82rem;line-height:1.2}.side-b-entry>svg{color:var(--citron)}.saved-button{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:var(--type-body);border:1px solid var(--edge);border-radius:var(--radius)}.saved-button:hover{background:var(--raised)}.saved-count{margin-left:4px;min-width:26px;padding:3px;border-radius:6px;background:var(--raised);color:var(--muted);font-size:var(--type-body);text-align:center;font-variant-numeric:tabular-nums}.app-frame{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 28px}.explorer-toolbar{min-height:58px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:24px}.demo-label{font-size:var(--type-body);color:var(--muted);text-decoration:none}.panel-navigation{display:flex;align-items:center;gap:8px}.panel-navigation button{display:flex;align-items:center;gap:7px;padding:9px 12px;font-size:var(--type-body);color:var(--secondary);border-radius:6px}.panel-navigation button:hover,.panel-navigation button[aria-current]{color:var(--cue);background:var(--cue-wash)}.panel-navigation button[aria-current]{background:#79d5d025;box-shadow:inset 0 -2px var(--cue)}.panel-navigation>svg{color:var(--quiet)}.trail{min-height:40px;min-width:0;flex:1;display:flex;align-items:center;gap:8px;font-size:var(--type-body);overflow:hidden}.trail-label{color:var(--secondary);white-space:nowrap}.trail>div{display:flex;align-items:center;gap:8px;overflow-x:auto;min-width:0}.trail>div>span{display:flex;align-items:center;gap:8px}.trail button{font-size:var(--type-body);padding:7px 0;color:var(--secondary);white-space:nowrap}.trail button:hover,.trail button[aria-current]{color:var(--cue)}.trail svg{color:var(--quiet)}.reset-trail{margin-left:auto;width:32px;flex-shrink:0}.workspace{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(390px,1.2fr) minmax(340px,1fr);gap:14px;flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;margin:-6px;padding:6px 6px 10px;scroll-padding-inline:6px;isolation:isolate}.workspace>section,.workspace>aside{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;border:1px solid var(--edge);border-radius:12px;background:var(--sleeve);scroll-snap-align:start;scrollbar-gutter:stable}.workspace>section,.workspace>aside,.search,.search-results,.saved-dialog,.measurement-dialog{box-shadow:var(--surface-shadow)}.workspace>section:focus-within,.workspace>aside:focus-within{border-color:#79d5d030}.workspace[data-active-panel=artist-discovery] #artist-discovery,.workspace[data-active-panel=song-results] #song-results,.workspace[data-active-panel=music-player] #music-player{border-color:var(--cue);box-shadow:inset 0 2px var(--cue),var(--surface-shadow)}.workspace>:focus{outline:none}.discovery-panel,.songs-panel,.listening-panel{padding:22px}.panel-step{display:flex;align-items:center;gap:10px;font-size:var(--type-body);color:var(--muted);margin-bottom:18px;min-height:24px}.panel-step>span{color:var(--seafoam);font-variant-numeric:tabular-nums}.songs-panel .panel-step>span{color:var(--cue)}.listening-panel .panel-step>span{color:var(--citron)}.panel-step>svg{margin-left:auto;color:var(--quiet)}.panel-title{padding:0 6px}.artist-title-row{display:flex;align-items:center;gap:16px;margin:12px 0 20px}.artist-title-row h1{min-width:0;margin:0;overflow-wrap:anywhere}.latest-album-cover{width:clamp(72px,6.7vw,96px);aspect-ratio:1;flex-shrink:0;display:grid;place-items:center;overflow:hidden;border-radius:6px;background:var(--inset);color:var(--muted)}.latest-album-cover img{display:block;width:100%;height:100%;object-fit:cover}@media(max-width:380px){.artist-title-row{gap:12px}.latest-album-cover{width:64px}}.small-label,.section-label{font-size:var(--type-body);color:var(--muted)}.section-label{display:flex;align-items:center;gap:8px}h1{font-size:var(--type-feature);line-height:1.1;font-weight:600;letter-spacing:-1.5px;margin:10px 0 16px}h1 button{padding:0;font:inherit;text-align:left}h1 button:hover{color:var(--cue)}.panel-title>p{font-size:var(--type-body);line-height:1.6;color:var(--muted);margin-bottom:16px}.filter{display:flex;align-items:center;gap:10px;background:var(--inset);border:1px solid var(--line);border-radius:6px;color:var(--quiet);padding:10px 12px;margin-bottom:14px}.filter input{border:0;background:none;width:100%;outline:0;font-size:var(--type-body)}.filter:focus-within{border-color:var(--focus)}.filter:not(.track-filter){background:#fff;border-color:#fff;color:#102b3b;color-scheme:light}.filter:not(.track-filter) input::placeholder{color:#526675;opacity:1}.filter:not(.track-filter):focus-within{border-color:var(--cue);box-shadow:0 0 0 3px #79d5d066}.artist-list{display:grid;gap:4px;animation:section-slide .28s var(--ease-out)}.list-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px 4px 4px}.list-pagination>span{color:var(--quiet);font-size:var(--type-body)}.list-pagination .secondary-button{font-size:var(--type-body);padding:10px 12px}.artist-row{display:flex;align-items:center;padding:3px 2px;border-radius:var(--radius);min-width:0}.artist-row:hover{background:var(--raised)}.artist-row.selected{background:var(--cue-wash)}.artist-select{display:flex;align-items:center;gap:12px;text-align:left;flex:1;min-width:0;padding:9px 4px}.artist-mark{width:44px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex-shrink:0;color:var(--quiet)}.artist-mark>span{font-size:var(--type-body);line-height:1.25;color:var(--muted)}.artist-select strong{display:block;font-size:var(--type-lead);line-height:1.4;overflow-wrap:anywhere}.artist-select small{display:block;font-size:var(--type-body);color:var(--muted);margin-top:4px;line-height:1.4}.selected .artist-mark,.selected .artist-select strong{color:var(--cue)}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--quiet);border-radius:6px}.icon-button:hover{background:var(--raised);color:var(--cue)}.explore-artist{width:32px}.artist-row:hover .explore-artist{color:var(--cue)}.rabbit-hole{display:flex;align-items:center;gap:12px;width:100%;padding:16px;background:var(--cue-wash);border:1px solid #79d5d01c;border-radius:var(--radius);color:var(--cue);text-align:left;font-size:var(--type-body)}.rabbit-hole>span{flex:1}.rabbit-hole small{display:block;color:var(--muted);font-size:var(--type-body);margin-top:5px}.rabbit-hole:hover{border-color:var(--focus)}.artist-heading{padding:0 2px 18px;border-bottom:1px solid var(--edge);animation:section-slide .28s var(--ease-out)}.artist-heading h2{font-size:var(--type-artist);font-weight:600;letter-spacing:-1.9px;line-height:1.1;margin:12px 0 14px;overflow-wrap:anywhere}.artist-tags{display:flex;flex-wrap:wrap;gap:9px}.artist-tags span{color:var(--secondary);font-size:var(--type-body)}.artist-tags span+span:before{content:"/";color:var(--quiet);padding-right:9px}.artist-tags button{color:var(--cue);padding:5px 0;text-decoration:underline;text-decoration-color:var(--focus);text-underline-offset:4px}.artist-tags button:hover,.artist-tags button[aria-pressed=true]{color:var(--text);text-decoration-color:currentColor}.tag-back{display:flex;align-items:center;gap:8px;padding:8px 6px;margin-bottom:18px;color:var(--cue);font-size:var(--type-body);text-align:left}.artist-about h3{margin:0;color:var(--secondary);font-size:var(--type-body);font-weight:600}.artist-bio{font-size:var(--type-body);line-height:1.58;color:var(--secondary);margin:8px 0 4px;overflow-wrap:anywhere;text-wrap:pretty}.explore-button{display:flex;align-items:center;gap:8px;font-size:var(--type-body);color:var(--cue);margin-top:8px;padding:6px 0}.explore-button:disabled{color:var(--quiet);opacity:1}.tracks-heading{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px;gap:12px}.artist-commerce{margin-top:20px}.commerce-heading{font-size:var(--type-body);margin-bottom:10px}.commerce-links{display:grid;grid-template-columns:repeat(5,minmax(max-content,1fr));gap:6px;overflow-x:auto;padding-bottom:4px}.commerce-links a{display:flex;gap:6px;align-items:center;justify-content:center;min-height:44px;padding:8px;text-decoration:none;background:var(--inset);border:1px solid var(--edge);border-radius:6px;color:var(--text)}.commerce-links a>svg{flex-shrink:0;color:var(--cue)}@media(max-width:600px){.commerce-links{grid-template-columns:repeat(5,minmax(max-content,1fr))}.commerce-links a{flex-direction:column;gap:4px}}.commerce-links a:hover{background:var(--raised);border-color:var(--focus);color:var(--cue)}.commerce-links a>span{font-size:var(--type-body);white-space:nowrap}.artist-commerce>p{font-size:14px;color:var(--quiet);line-height:1.6;margin:0 0 10px}.playback-help{display:grid;gap:8px;font-size:var(--type-body);color:var(--muted);margin-bottom:20px}.playback-help .text-button{text-align:left}.playback-help-links{display:flex;align-items:center;gap:6px;white-space:nowrap}.playback-help-links>button,.playback-help-links>a{min-height:44px}.playback-help a{display:inline-flex;gap:4px;align-items:center;color:var(--secondary)}.tracks-heading h3{font-size:var(--type-section);margin:0}.tracks-heading>span{font-size:var(--type-body);color:var(--quiet)}.track-filter{background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:5px}.track-list{animation:section-slide .3s var(--ease-out)}.track-row{display:flex;align-items:center;min-height:52px;gap:5px;border-radius:6px;border-bottom:1px solid var(--line)}.track-row:hover{background:var(--raised)}.track-row.active{color:var(--cue);background:var(--cue-wash);border-color:transparent}.track-select{display:flex;align-items:center;gap:10px;padding:14px 4px;flex:1;min-width:0;text-align:left;font-size:var(--type-lead)}.track-number{display:flex;align-items:center;justify-content:center;width:27px;flex-shrink:0;font-size:var(--type-body);color:var(--quiet);font-variant-numeric:tabular-nums}.track-number>svg{display:none}.track-row.active .track-number>svg{display:block;color:var(--cue)}.track-row:hover .track-number>span{display:none}.track-row:hover .track-number>svg{display:block;color:var(--cue)}.track-name{flex:1;overflow-wrap:anywhere;line-height:1.5}.listener-count{font-size:var(--type-body);color:var(--muted);white-space:nowrap}.track-row .icon-button{margin-right:4px}.is-saved{color:var(--cue)}.data-note{color:var(--quiet);font-size:14px;line-height:1.7;margin:20px 0 0}.data-note a{display:inline-flex;align-items:center;gap:4px}.listening-panel .panel-step{margin-bottom:18px;position:relative;padding-right:44px}.listening-panel .panel-step>svg{margin-left:0}.player-panda{position:absolute;right:0;top:50%;transform:translateY(-50%);width:34px;height:34px;object-fit:contain;filter:brightness(0) invert(1);opacity:.85;pointer-events:none;-webkit-user-select:none;user-select:none}.player-art{width:100%;aspect-ratio:1;position:relative;border-radius:var(--radius);background:var(--inset);overflow:hidden;display:flex;align-items:center;justify-content:center}.player-art:has(.youtube-player){aspect-ratio:auto}.youtube-player{width:100%}.youtube-frame{width:100%;aspect-ratio:1;min-height:200px}.youtube-status{background:var(--inset);color:var(--secondary);padding:12px;font-size:var(--type-body);line-height:1.6}.youtube-status p{margin:0}.youtube-status.failed{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:24px}.youtube-status a{color:var(--cue)}.player-art iframe{width:100%;height:100%;min-height:200px;border:0}.video-preview{position:relative;width:100%;height:100%;padding:0;display:flex;align-items:center;justify-content:center}.video-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .18s}.video-preview:hover img{opacity:1}.play-circle{position:relative;display:grid;place-items:center;width:64px;height:64px;background:var(--citron);color:var(--panda-ink);border-radius:50%;padding-left:3px;transition:transform .18s var(--ease-out)}.video-preview:hover .play-circle{transform:scale(1.08)}.video-label{position:absolute;bottom:16px;font-size:var(--type-body);background:#0b1a23e8;color:var(--text);padding:7px 10px;border-radius:6px}.player-placeholder{display:flex;flex-direction:column;align-items:center;gap:24px;color:var(--quiet);font-size:var(--type-body)}.now-playing{margin:0 0 16px;animation:section-slide .28s var(--ease-out)}.player-track-row{display:flex;align-items:center;gap:4px;margin-top:8px}.now-playing .player-track-details{font-size:var(--type-body);line-height:1.5;color:var(--text);margin:0;min-width:0;overflow-wrap:anywhere}.track-bookmark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border-radius:6px;color:var(--secondary)}.track-bookmark:hover,.track-bookmark[aria-pressed=true]{color:var(--cue);background:var(--cue-wash)}.embed-note{font-size:var(--type-body);line-height:1.8;color:var(--quiet);margin:24px 0 0}.embed-note a{color:var(--muted)}.player-message{font-size:var(--type-body);line-height:1.8;color:var(--secondary);margin-bottom:22px}.player-message p{margin-bottom:5px}.text-button{font-size:var(--type-body);text-decoration:underline;padding:0;color:var(--cue)}.video-results{margin:20px 0 22px}.video-results>p{font-size:var(--type-body);color:var(--muted)}.video-results button{display:flex;gap:8px;padding:12px 8px;width:100%;text-align:left;border:1px solid transparent;border-radius:6px;font-size:var(--type-body);line-height:1.5}.video-results button>svg{margin-top:2px}.video-results button small{display:block;color:var(--muted);margin-top:4px;font-size:var(--type-body)}.video-results button:hover,.video-results .chosen-video{background:var(--cue-wash);border-color:var(--focus)}.player-empty{padding:24px 0;color:var(--muted)}.player-empty h3{font-size:var(--type-title);margin:20px 0 12px;line-height:1.25;text-wrap:balance}.player-empty p{font-size:var(--type-body)}.session-bar{min-height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:24px}.session-note{font-size:var(--type-body);color:var(--quiet)}.source-link{min-height:44px;margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-size:var(--type-body)}.storage-warning{font-size:var(--type-body);color:var(--warning);line-height:1.6}.loading{display:grid;gap:20px;padding:25px 6px}.skeleton{height:46px;background:var(--raised);border-radius:6px;animation:pulse 1.4s ease-in-out infinite}.empty,.error-state p{font-size:var(--type-body);line-height:1.7;color:var(--muted)}.empty{padding:16px 8px}.error-state{padding:20px 6px}.secondary-button{display:flex;align-items:center;gap:8px;padding:12px;background:var(--raised);border-radius:6px;color:var(--cue);font-size:var(--type-body)}.spin{animation:spin 1s linear infinite}.saved-dialog{padding:0;border:1px solid var(--edge);border-radius:12px 0 0 12px;width:min(440px,calc(100vw - 24px));height:100dvh;max-height:100dvh;margin:0 0 0 auto;color:var(--text);background:var(--sleeve)}.saved-dialog[open]{animation:drawer-slide .28s var(--ease-out)}.saved-dialog::backdrop{background:#061119bb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-content{padding:28px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{font-weight:600;font-size:var(--type-title);letter-spacing:-.8px;margin:0}.muted{font-size:var(--type-body);color:var(--muted);margin-top:14px;line-height:1.7}.saved-empty{display:flex;flex-direction:column;align-items:center;padding:35px 0;color:var(--muted);text-align:center}.saved-empty p{margin:20px 0 10px}.saved-empty small{font-size:var(--type-body)}.saved-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--edge);padding:14px 0}.saved-row>.saved-play{display:flex;align-items:center;gap:14px;text-align:left;flex:1;min-width:0}.saved-row strong{font-size:var(--type-body);overflow-wrap:anywhere}.saved-row small{display:block;color:var(--muted);margin-top:5px;font-size:var(--type-body)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}@keyframes section-slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes drawer-slide{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:none}}@media(min-width:1550px){.app-frame{padding:0 40px}.topbar{padding:16px 40px}.workspace{grid-template-columns:minmax(320px,1fr) minmax(430px,1.25fr) minmax(380px,1.1fr);gap:20px}.discovery-panel,.songs-panel,.listening-panel{padding:28px}.artist-select{padding-top:12px;padding-bottom:12px}}@media(max-width:800px){.topbar{padding:16px 20px;gap:20px}.side-b-entry{padding:7px;gap:7px}.side-b-entry small,.side-b-entry>svg{display:none}.brand{min-width:0}.saved-button>span:not(.saved-count){display:none}.saved-button{gap:4px;padding:10px 8px}.app-frame{padding:0 20px}.explorer-toolbar{gap:16px}.panel-navigation{gap:0}.panel-navigation button{padding:9px}.session-note{display:none}}@media(max-width:760px),(max-width:960px)and (max-height:500px){.brand-ribbon{height:28px}[data-short-viewport] .brand-ribbon{display:none}.topbar{height:auto;min-height:72px;padding:calc(10px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));gap:8px}.topbar{flex-wrap:wrap}.brand{min-width:0;min-height:47px;flex:1}.brand-icon{width:47px;height:47px}.brand-copy{height:47px}.brand-wordmark strong{font-size:1.5rem}.brand-signature{width:180px;height:32px}.search{order:3;flex-basis:100%;max-width:none;gap:4px;padding:2px 2px 2px 10px;position:static}.side-b-entry{order:4;width:100%;min-height:44px;justify-content:center}.side-b-entry-mark{width:28px;height:28px;font-size:1rem}.side-b-entry strong{font-size:1.08rem}.side-b-entry small{display:inline;font-size:.84rem}.search>input{font-size:var(--type-body);min-height:44px}.search>svg{display:none}.search>button{width:44px;height:44px;flex-shrink:0}.search-results{top:calc(100% + 4px);left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));max-height:max(100px,calc(var(--visible-height, 100dvh) - 100px - env(safe-area-inset-top)));overscroll-behavior:contain}.search-result{min-height:48px}.saved-button{border:0;padding:8px 0;min-width:44px;min-height:44px}.saved-count{min-width:24px;font-size:var(--type-body);margin-left:2px}.app-frame{padding:0 max(12px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(12px,env(safe-area-inset-left))}.explorer-toolbar{min-height:64px;align-items:stretch;justify-content:center;flex-direction:column;gap:4px;padding:10px 0 4px}.panel-navigation{order:-1}.panel-navigation{justify-content:space-between;gap:4px}.panel-navigation button{flex:1;justify-content:center;min-height:48px;padding:10px 6px;font-size:var(--type-body)}.trail{min-height:44px;gap:10px;margin:0 0 8px}.trail-label{font-size:var(--type-body)}.trail button{font-size:var(--type-body);min-height:44px;padding:8px 4px}.reset-trail{min-width:44px}.workspace{grid-template-columns:repeat(3,100%);gap:12px;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}.workspace::-webkit-scrollbar{display:none}.workspace>section,.workspace>aside{scrollbar-gutter:auto;scroll-snap-stop:always}.discovery-panel,.songs-panel,.listening-panel{padding:18px 16px}.panel-step{display:none}.listening-panel .panel-step{display:flex;margin-bottom:16px}.artist-heading h2{font-size:var(--type-artist)}.artist-select strong,.track-select{font-size:var(--type-lead)}.artist-select small{font-size:var(--type-body)}.filter{min-height:48px}.filter input{font-size:var(--type-body)}.icon-button,.explore-artist{width:48px;height:48px}.artist-tags button,.explore-button,.tag-back,.text-button,.playback-help a{min-height:44px;display:inline-flex;align-items:center}.artist-tags{gap:4px}.artist-tags span{font-size:var(--type-body)}.video-results button{min-height:48px;font-size:var(--type-body)}.video-results button small{font-size:var(--type-body)}.player-art,.youtube-frame{aspect-ratio:16 / 9;min-height:200px}.queue-controls>div+div{gap:16px}.listener-count{display:none}.session-bar{min-height:52px;gap:12px}.saved-dialog{width:100%;max-width:none;height:var(--visible-height, 100dvh);border-radius:0}.dialog-content{padding:calc(22px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.saved-row>.saved-play{min-height:48px}[data-short-viewport] .trail,[data-short-viewport] .session-bar{display:none}[data-short-viewport] .explorer-toolbar{min-height:52px;padding-top:2px}[data-short-viewport] .brand-copy{display:none}[data-short-viewport] .brand{flex:0}[data-short-viewport] .search{order:0;flex-basis:0}[data-short-viewport] .side-b-entry{order:0;width:auto;min-height:44px}[data-short-viewport] .side-b-entry small{display:none}[data-short-viewport] .topbar{flex-wrap:nowrap;min-height:58px;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:4px}}@media(max-width:380px){.brand{gap:8px}.brand-wordmark strong{font-size:1.25rem}.brand-signature{width:144px;height:27px}.playback-help-links{margin-inline:-8px;gap:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.queue-controls{padding:15px 0;margin-bottom:18px;border-bottom:1px solid var(--edge)}.queue-controls>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.queue-controls strong{font-size:var(--type-body);font-weight:600}.queue-controls span,.queue-controls p{font-size:var(--type-body);color:var(--muted)}.queue-controls>div+div{justify-content:flex-start;margin-top:10px}.queue-controls p{margin:10px 0 0}.measurement-settings{background:none;border:0;color:var(--muted, #aebfc5);font:inherit;font-size:var(--type-body);padding:8px;min-height:44px;text-decoration:underline;cursor:pointer}.measurement-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:24px;border:1px solid #3c535f;border-radius:12px;background:#102631;color:#edf5f5}.measurement-dialog::backdrop{background:#030d12bf}.measurement-dialog h2{margin:0 0 16px;font-size:var(--type-section);font-weight:600}.measurement-dialog p{font-size:var(--type-body);line-height:1.6;color:#c5d4d9}.measurement-dialog a{color:#a3dcce;text-decoration:underline}.measurement-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.measurement-actions button{min-height:48px;flex:1 1 180px;justify-content:center}@media(max-width:600px){.measurement-settings{font-size:var(--type-body);padding:4px}.measurement-dialog{padding:20px}}.saved-selection{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:24px;font-size:var(--type-body)}.saved-selection button{min-height:44px;color:var(--cue);text-decoration:underline}.saved-check{display:flex;align-items:center;justify-content:center;flex:0 0 32px;min-height:44px;cursor:pointer}.saved-check input{width:20px;height:20px;accent-color:var(--cue)}.playlist-export{margin-top:28px;border-top:1px solid var(--edge);padding-top:24px}.playlist-export h3{margin:0;font-size:var(--type-section);font-weight:600}.playlist-export p{font-size:var(--type-body);line-height:1.6;color:var(--muted)}.playlist-export label{display:block;margin:16px 0 8px;font-size:var(--type-body)}.playlist-export input,.playlist-export select{display:block;width:100%;min-height:44px;padding:10px;color:var(--text);background:var(--inset);border:1px solid var(--edge);border-radius:6px;font:inherit;font-size:var(--type-body)}.playlist-export input:focus-visible,.playlist-export select:focus-visible{outline:2px solid var(--cue);outline-offset:2px}.export-actions{display:flex;flex-direction:column;gap:10px}.export-actions a{text-decoration:none;min-height:44px}.export-actions svg{flex-shrink:0}.export-count{margin:16px 0 12px}@media(max-width:400px){.saved-dialog .dialog-content{padding:20px 16px}}#root:has(.initial-page){overflow:auto}.initial-page{width:min(900px,100%);margin:24px auto;padding:28px;background:var(--vinyl);border-radius:12px}.initial-page h1{margin-top:24px}.initial-page li{margin:10px 0}.initial-page a{color:var(--cue)}.artist-select,.explore-artist{text-decoration:none}.artist-tags a{color:var(--cue);padding:5px 0;text-underline-offset:4px;display:inline-flex;min-height:44px;align-items:center}.trail a{font-size:var(--type-body);padding:7px 0;color:var(--secondary);white-space:nowrap;text-decoration:none}.trail a:hover,.trail a[aria-current]{color:var(--cue)}.artist-heading-name{display:flex;align-items:center;gap:10px}.artist-heading-name h2{flex:1}.artist-page-link{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--edge);border-radius:50%;color:var(--cue)}.artist-page-link:hover{background:#ffffff14;border-color:var(--cue)}.artist-photo{margin:8px 0 20px}.artist-photo>img{width:100%;height:auto;display:block;border-radius:8px}.artist-photo figcaption{margin-top:8px;font-size:14px;line-height:1.5;color:var(--muted)}.artist-photo a,.artist-news a{text-decoration-thickness:1px;text-underline-offset:3px}.artist-news{padding:24px 2px;border-bottom:1px solid var(--edge)}.artist-news h3{font-size:24px;margin:8px 0 12px}.artist-news h4{font-size:18px;line-height:1.4;margin:8px 0}.artist-news h4 a{color:var(--paper)}.artist-news svg{flex-shrink:0;margin-left:6px;vertical-align:middle}.artist-news p{font-size:16px;line-height:1.6;color:var(--muted);margin:8px 0 18px}.artist-news article+article{border-top:1px solid var(--edge);padding-top:18px}.news-source{font-size:16px;line-height:1.5;color:var(--muted)}.news-search{color:var(--cue);font-size:16px;line-height:1.5;display:inline-block;padding:8px 0}.lastfm-link{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.brand-attribution .lastfm-link{text-decoration:none}.brand-attribution .lastfm-link:hover{text-decoration:underline}.lastfm-brand-icon{display:block;width:20px;height:20px;object-fit:contain;flex-shrink:0}.brand-attribution .lastfm-brand-icon{width:16px;height:16px}.artist-workspace .artist-overview{padding:22px}.artist-overview h1{font-size:clamp(2.125rem,3.2vw,2.625rem);line-height:1.12;letter-spacing:-.045em;margin:0 0 18px;overflow-wrap:anywhere;text-wrap:balance}.artist-overview .artist-photo{margin:0 0 20px}.artist-overview .artist-photo img{aspect-ratio:4 / 3;object-fit:cover}.artist-overview .artist-about h2{font-size:1.25rem;margin:0 0 10px;font-weight:600}.artist-catalog .tracks-heading h2{font-size:var(--type-section);margin:0;font-weight:600}.artist-overview .artist-bio{margin-bottom:8px}.artist-overview .artist-tags{margin:0 0 20px}.artist-overview .artist-news{margin-top:0;padding:0 2px;border-bottom:0}.artist-overview .artist-news h3{margin-top:0}.artist-overview .artist-news .section-label{display:none}.artist-related{margin-top:16px;border-top:1px solid var(--edge);padding-top:16px}.artist-related summary{cursor:pointer;color:var(--secondary);padding:8px 0}.artist-related nav{display:grid;margin-top:8px}.artist-related a{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:8px 0;gap:12px;text-decoration:none;border-top:1px solid var(--line)}.artist-related a:hover{color:var(--cue)}.artist-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.artist-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;background:var(--inset);border:1px solid var(--edge);border-radius:var(--radius)}.artist-actions button:hover,.artist-actions button[aria-pressed=true]{color:var(--cue);border-color:var(--cue)}.artist-actions button[aria-pressed=true]{background:var(--cue-wash)}.shop-selection{animation:section-slide .18s var(--ease-out)}.shop-category-icon{color:var(--cue);margin:8px 0 20px}.shop-selection h2{font-size:var(--type-title);margin:0 0 8px}.shop-artist-name{font-size:var(--type-lead);color:var(--secondary);margin-bottom:24px}.shop-description{color:var(--secondary)}.shop-disclosure{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 12px}.shop-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:16px;text-align:left}@media(max-width:760px){.artist-workspace .artist-overview{padding:18px 16px}.artist-overview .panel-step{display:flex}.artist-overview h1{font-size:2.125rem}.artist-actions{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){.shop-selection{animation:none}}.artist-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.artist-actions button{padding-inline:8px;gap:6px}@media(max-width:420px){.artist-actions button{flex-direction:column;gap:4px}}.shop-search{display:flex;align-items:center;gap:8px;background:#fff;color:var(--vinyl);padding:4px 4px 4px 12px;border-radius:var(--radius);margin:20px 0;box-shadow:var(--surface-shadow);color-scheme:light}.shop-search input{flex:1;width:100%;border:0;background:transparent;color:var(--vinyl);min-height:44px}.shop-search input::placeholder{color:#526675;opacity:1}.shop-search button{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;background:var(--inset);color:var(--text);border-radius:6px}.shop-search:focus-within{outline:2px solid var(--cue);outline-offset:3px}.shop-results-source{color:var(--secondary);margin-bottom:12px}.shop-results-message{color:var(--muted);margin:16px 0}.shop-item{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--edge);padding:16px 0}.shop-item>img{flex-shrink:0;width:80px;height:80px;object-fit:contain;border-radius:6px;background:var(--inset)}.shop-item>div{min-width:0}.shop-item h3{font-size:var(--type-body);margin:0 0 8px;overflow-wrap:anywhere}.shop-item h3 a{text-decoration:none}.shop-item h3 a:hover{text-decoration:underline}.shop-item h3 svg{margin-left:4px;color:var(--muted)}.shop-item-meta,.shop-item-provider{color:var(--muted);font-size:var(--type-body)}.shop-item-meta,.shop-item-price{margin-bottom:8px}.shop-item-price{color:var(--text);font-weight:600}.shop-browse{display:inline-flex;align-items:center;gap:4px;margin-top:16px;color:var(--cue)}.shop-search-hint{margin-top:20px;color:var(--muted)}.shop-search-hint+.shop-search{margin-top:8px}.shop-search button:disabled{opacity:.45;cursor:wait}:root{--ribbon-blue: #389ed0;--ribbon-blue-light: #7acfe6}.panel-navigation button[aria-current]{color:var(--ribbon-blue-light);background:#389ed01a;box-shadow:inset 0 -2px var(--ribbon-blue)}.panel-navigation button:hover{color:var(--ribbon-blue-light)}.workspace[data-active-panel=artist-discovery] #artist-discovery,.workspace[data-active-panel=song-results] #song-results,.workspace[data-active-panel=music-player] #music-player{border-color:var(--ribbon-blue);box-shadow:inset 0 2px var(--ribbon-blue),var(--surface-shadow)}.search>button:not(:disabled),.shop-search button:not(:disabled){background:var(--panda-ink);color:#f4faf8}.artist-row.selected,.track-row.active{background:#1c3e3c;box-shadow:inset 3px 0 var(--grass)}.track-row.active,.selected .artist-select strong{color:#f4faf8}.artist-actions button[aria-pressed=true]{background:#1c3e3c;border-color:#82cabe80;color:#f4faf8}.is-saved,.saved-button>svg{color:var(--citron)}.saved-count{background:var(--panda-ink);color:var(--citron)}.artist-tags a,.artist-tags button{color:var(--ribbon-blue-light);text-decoration-color:var(--ribbon-blue)}.songs-panel .panel-step>span{color:var(--ribbon-blue-light)}.artist-news h3{border-left:3px solid var(--citron);padding-left:10px}.artist-news h4 a:hover,.artist-related a:hover{color:var(--ribbon-blue-light)}.commerce-links a:first-child svg,.artist-actions button:nth-child(2) svg{color:var(--citron)}.shop-category-icon{color:var(--citron)}.trust-links{display:flex;gap:14px;flex-wrap:wrap}.trust-links a{color:var(--muted);font-size:1rem;text-underline-offset:3px}.news-provenance{font-size:1rem;line-height:1.5}@media(max-width:600px){.session-bar{flex-wrap:wrap;gap:8px}.trust-links{gap:12px}}.discovery-modes{display:flex;gap:4px;padding:4px;margin:16px 0;border:1px solid var(--edge);border-radius:var(--radius);background:var(--inset)}.discovery-modes button{flex:1;min-height:44px;padding:8px;border-radius:5px;font-size:1rem;color:var(--secondary)}.discovery-modes button[aria-pressed=true]{color:var(--vinyl);background:var(--citron);font-weight:700}.discovery-modes button:hover:not([aria-pressed=true]){background:var(--raised);color:var(--text)}.radar-explainer,.radar-status{font-size:1rem;color:var(--secondary);margin-bottom:16px}.radar-method{margin:-8px 0 16px;color:var(--secondary);font-size:1rem}.radar-method summary{cursor:pointer;color:var(--cue);min-height:44px;padding-block:10px}.radar-method p{margin-top:8px}.scrobbling-help-link{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;color:var(--muted);font:inherit;font-size:1rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.scrobbling-help-link img{flex-shrink:0}.scrobbling-dialog ol{padding-left:24px;color:#c5d4d9;font-size:var(--type-body);line-height:1.6}.scrobbling-dialog li+li{margin-top:8px}.page-navigation-status{position:fixed;top:6rem;left:50%;transform:translate(-50%);z-index:100;max-width:calc(100vw - 2rem);padding:.65rem 1rem;border:1px solid #86cfcb;border-radius:.65rem;background:#0d2333;color:#fff;font-size:1rem;box-shadow:0 3px 18px #0006}header.topbar{position:sticky;top:0;z-index:40;background:#0d2333;background-image:linear-gradient(#0d233399,#0d233399),url(/brand/navy-knit.webp);background-size:auto,320px}
