:root{--surface:#fff;--surface-soft:#f5f8f9;--aqua:#e7f7f7;--teal:#00b9b5;--teal-dark:#006f6d;--accent-ink:#08162e;--ink:#08162e;--muted:#5f6b7b;--muted-strong:#4b586b;--line:#e8edf0;--danger:#b53939;--shadow-sheet:0 -10px 40px #091c2f24;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-pill:999px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--surface:#101a27;--surface-soft:#182433;--aqua:#133239;--teal:#2bd0c6;--teal-dark:#8af5eb;--accent-ink:#08162e;--ink:#f0f6fa;--muted:#b8c4ce;--muted-strong:#d3dde5;--line:#2b3949;--danger:#ff9292;--shadow-sheet:0 -10px 40px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--surface-soft)}body{background:var(--surface-soft);color:var(--ink);-webkit-font-smoothing:antialiased;font-kerning:normal;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;font-size:1rem;line-height:1.45}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible{outline:2px solid var(--teal-dark);outline-offset:3px}ul{margin:0;padding:0;list-style:none}h1,h2,p{margin:0}.app{background:var(--surface);width:min(100%,430px);min-height:100dvh;margin:0 auto;position:relative;overflow:clip}.app-content{min-height:100dvh;padding-bottom:calc(8rem + env(safe-area-inset-bottom))}.screen{min-height:100dvh}.route-view{min-height:100%}.route-view[data-route-motion=forward]{animation:.18s cubic-bezier(.22,1,.36,1) both route-forward-in}.route-view[data-route-motion=back]{animation:.18s cubic-bezier(.22,1,.36,1) both route-back-in}@keyframes route-forward-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0,0)}}@keyframes route-back-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0,0)}}.top-bar{z-index:20;align-items:center;gap:var(--space-2);min-height:4rem;padding:max(.5rem, env(safe-area-inset-top)) var(--space-4) 0;background:var(--surface);border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);grid-template-columns:2.75rem minmax(0,1fr) auto;display:grid;position:sticky;top:0}.top-bar-scrolled{box-shadow:0 1px 0 var(--line)}.top-title{text-align:center;letter-spacing:0;min-width:0;font-size:1.05rem;font-weight:600}.top-actions{justify-content:flex-end;align-items:center;gap:var(--space-1);min-width:2.75rem;display:flex}.icon-button,.player-control{border-radius:var(--radius-pill);width:2.75rem;height:2.75rem;color:var(--ink);background:0 0;justify-content:center;align-items:center;padding:0;transition:background-color .16s,color .16s;display:inline-flex}.icon-button:hover,.icon-button:active{background:var(--surface-soft)}.icon-button-spacer{width:2.75rem;height:2.75rem}.continue-button{align-items:center;gap:var(--space-1);min-height:2.75rem;color:var(--teal-dark);white-space:nowrap;background:0 0;padding:.4rem .6rem;font-size:.78rem;font-weight:600;display:inline-flex}.recommendation-panel{gap:var(--space-5);padding:2rem var(--space-5) 1.75rem;background:var(--aqua);grid-template-columns:minmax(0,1fr) 7.5rem;align-items:center;display:grid}.recommendation-copy{min-width:0}.section-kicker{margin-bottom:var(--space-2);color:var(--teal-dark);letter-spacing:.08em;font-size:.72rem;font-weight:700;display:block}.recommendation-copy h1{letter-spacing:0;font-size:2rem;font-weight:650;line-height:1.12}.recommendation-copy h2{margin-top:var(--space-4);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:1.05rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.recommendation-copy p{margin-top:var(--space-2);color:var(--muted-strong);font-size:.82rem}.artwork{object-fit:cover;background:var(--surface-soft);flex:none;display:block}.artwork-empty{color:var(--teal-dark);justify-content:center;align-items:center;display:inline-flex}.recommendation-art{aspect-ratio:1;border-radius:var(--radius-sm);width:7.5rem}.primary-button,.secondary-button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);min-height:2.75rem;padding:.65rem 1.15rem;font-weight:650;display:inline-flex}.primary-button{background:var(--teal);width:100%;color:var(--accent-ink);grid-column:1/-1}.primary-button:hover{background:var(--teal-dark)}.secondary-button{background:var(--surface-soft);color:var(--teal-dark)}.updates-section,.search-results,.album-content{padding:var(--space-8) var(--space-5) 0}.section-heading-row{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.section-heading-row h1,.section-heading-row h2{font-size:1.55rem;font-weight:620;line-height:1.2}.section-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.95rem}.episode-list{border-top:1px solid var(--line)}.episode-row{align-items:center;gap:var(--space-2);min-height:5.75rem;padding:var(--space-3) 0;border-bottom:1px solid var(--line);display:flex}.episode-main,.album-result,.queue-row-main{text-align:left;background:0 0;align-items:center;min-width:0;padding:0;display:flex}.episode-main{gap:var(--space-4);flex:1}.episode-main:active,.album-result:active,.queue-row-main:active{opacity:.68}.episode-art{border-radius:var(--radius-sm);width:4.25rem;height:4.25rem}.episode-copy,.album-result-copy,.queue-copy{flex-direction:column;flex:1;min-width:0;display:flex}.episode-title,.queue-copy strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1rem;line-height:1.35;display:-webkit-box;overflow:hidden}.episode-meta,.queue-copy span{margin-top:var(--space-2);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.78rem;line-height:1.25;display:flex}.meta-divider{color:var(--line)}.episode-progress-label,.episode-row.is-active .episode-title{color:var(--teal-dark)}.episode-action{flex:none;position:relative}.empty-state{color:var(--muted-strong);text-align:center;padding:3rem 1rem}.notice-bar{margin:var(--space-5);padding:var(--space-3) var(--space-4);color:var(--muted-strong);background:var(--surface-soft);border-radius:var(--radius-sm);font-size:.8rem}.notice-bar button{margin-left:var(--space-2);color:var(--teal-dark);background:0 0;font-weight:650}.search-field-wrap{align-items:center;gap:var(--space-2);min-width:0;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--surface-soft);color:var(--muted-strong);display:flex}.search-field-wrap input{width:100%;min-height:2.5rem;color:var(--ink);background:0 0;border:0;outline:0;padding:0}.search-results{padding-top:var(--space-6)}.album-results{border-top:1px solid var(--line)}.album-results li{border-bottom:1px solid var(--line)}.album-results-more button{width:100%;padding:var(--space-4) var(--space-3);color:var(--teal-dark);text-align:center;background:0 0;font-size:.85rem;font-weight:650}.album-result{gap:var(--space-4);width:100%;padding:var(--space-3) 0}.album-art{border-radius:var(--radius-sm);width:4.25rem;height:4.25rem}.album-result-copy{gap:var(--space-1)}.album-result-copy strong{font-size:1rem;font-weight:620}.album-result-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.album-result>svg{color:var(--muted);flex:none}.album-header-copy{text-align:center;min-width:0}.album-header-copy h1{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:620;overflow:hidden}.album-header-copy span{color:var(--muted);font-size:.75rem}.album-intro{align-items:center;gap:var(--space-4);padding-bottom:var(--space-6);display:flex}.album-hero-art{border-radius:var(--radius-sm);width:5.5rem;height:5.5rem}.album-intro h2{font-size:1.2rem;font-weight:620}.album-intro p{margin-top:var(--space-2);color:var(--muted-strong);font-size:.82rem}.inline-error{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) 0;color:var(--danger);flex-wrap:wrap;font-size:.85rem;display:flex}.inline-error span{flex:1;min-width:12rem}.inline-error button{align-items:center;gap:var(--space-1);color:var(--teal-dark);background:var(--surface-soft);border-radius:var(--radius-sm);padding:.45rem .6rem;font-size:.8rem;display:inline-flex}.album-episode-list{border-top:1px solid var(--line)}.load-more-button{width:100%;margin-top:var(--space-4);border-radius:var(--radius-sm)}.loading-state,.loading-more{color:var(--muted);text-align:center;padding:2rem 0}.mini-player{z-index:40;width:min(100%,430px);padding:var(--space-3) var(--space-4) max(var(--space-3), env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);position:fixed;bottom:0;left:50%;right:0;transform:translate(-50%)}.mini-player audio{display:none}.mini-main{align-items:center;gap:var(--space-3);min-width:0;display:flex}.mini-art{border-radius:var(--radius-sm);width:3rem;height:3rem}.mini-copy{flex-direction:column;flex:1;min-width:0;display:flex}.mini-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:620;overflow:hidden}.mini-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem;font-size:.75rem;overflow:hidden}.player-control{background:var(--surface-soft);flex:none}.player-control:hover{color:var(--teal-dark)}.queue-control{color:var(--ink)}.mini-progress-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.68rem;display:flex}.mini-progress-row input{min-width:0;height:2.75rem;accent-color:var(--teal);flex:1}.player-error{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-2);color:var(--danger);font-size:.76rem;display:flex}.player-error button{color:var(--teal-dark);background:0 0;font-weight:650}.queue-overlay{z-index:60;position:fixed;inset:0}.queue-backdrop{cursor:default;background:#06122061;width:100%;height:100%;animation:.15s ease-out both queue-backdrop-in;position:absolute;inset:0}.queue-sheet{width:min(100%,430px);max-height:min(78dvh,720px);padding:var(--space-3) var(--space-5) max(var(--space-4), env(safe-area-inset-bottom));background:var(--surface);box-shadow:var(--shadow-sheet);border-radius:1.25rem 1.25rem 0 0;flex-direction:column;animation:.22s cubic-bezier(.22,1,.36,1) both queue-sheet-in;display:flex;position:absolute;bottom:0;left:50%;right:0;transform:translate(-50%)}.queue-sheet.is-closing{animation:.17s cubic-bezier(.4,0,1,1) both queue-sheet-out}.queue-overlay.is-closing .queue-backdrop{animation:.14s ease-in both queue-backdrop-out}@keyframes queue-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes queue-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes queue-sheet-in{0%{opacity:0;transform:translate(-50%,100%)}to{opacity:1;transform:translate(-50%)}}@keyframes queue-sheet-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,100%)}}.sheet-handle{width:3.5rem;height:.3rem;margin:0 auto var(--space-4);border-radius:var(--radius-pill);background:var(--line)}.sheet-header{justify-content:space-between;align-items:center;display:flex}.sheet-header h2{font-size:1.55rem;font-weight:650}.queue-tabs{margin-top:var(--space-4);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.queue-tabs button{min-width:0;min-height:2.75rem;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:0 0;padding:.55rem .1rem .8rem;font-size:.92rem;position:relative;overflow:hidden}.queue-tabs button span{margin-left:.2rem;font-size:.75rem}.queue-tabs button.is-selected{color:var(--ink);font-weight:650}.queue-tabs button.is-selected:after{content:"";background:var(--teal);height:.18rem;position:absolute;bottom:-1px;left:0;right:0}.queue-scroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}.queue-list{border-top:0}.queue-row{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;border-bottom:1px solid var(--line);display:flex;position:relative}.queue-row.is-menu-open{padding-bottom:7.5rem}.queue-row-main{gap:var(--space-4);flex:1}.queue-art{border-radius:var(--radius-sm);width:4.25rem;height:4.25rem}.queue-copy strong{font-size:.95rem}.queue-copy span{margin-top:var(--space-1)}.queue-row.is-current .queue-copy strong{color:var(--teal-dark)}.queue-playing{color:var(--teal);align-items:center;display:inline-flex}.queue-actions{flex:none;position:relative}.later-add-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0 var(--space-2);color:var(--muted-strong);font-size:.82rem;display:flex}.later-add-row .secondary-button{min-height:2.5rem;padding:.45rem .85rem;font-size:.8rem}.later-notice{min-height:1.2rem;padding:0 var(--space-1);color:var(--teal-dark);font-size:.78rem}.later-picker{min-height:16rem}.later-picker-header{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0 var(--space-3);display:flex}.later-picker-header h3{text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1rem;font-weight:620;overflow:hidden}.later-picker-intro{padding:0 0 var(--space-3);color:var(--muted);font-size:.8rem}.later-picker-list{margin-top:var(--space-2)}.later-row{touch-action:pan-y;overflow:hidden}.later-row .queue-row-main{z-index:1;background:var(--surface);transition:transform .16s,opacity .16s;position:relative}.later-row.is-swiped .queue-row-main{transform:translate(-4.75rem)}.later-row.is-dragging .queue-row-main{opacity:.68}.later-swipe-action{pointer-events:none;background:var(--danger);color:#fff;width:4.75rem;font-size:.78rem;transition:transform .16s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.later-row.is-swiped .later-swipe-action{pointer-events:auto;transform:translate(0)}.later-actions{z-index:2;background:var(--surface);flex:none;position:relative}.later-row.is-swiped .later-actions{opacity:0;pointer-events:none}.episode-action-notice{z-index:3;width:max-content;padding:var(--space-1) var(--space-2);color:var(--teal-dark);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.72rem;position:absolute;top:2.75rem;right:0;box-shadow:0 4px 12px #0612201f}.row-action-menu{z-index:2;width:8rem;padding:var(--space-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);display:grid;position:absolute;top:2.75rem;right:0;box-shadow:0 4px 12px #0612201f}.row-action-menu button{align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2);text-align:left;background:0 0;font-size:.78rem;display:flex}.row-action-menu button:active{background:var(--surface-soft)}.queue-empty{place-items:center;gap:var(--space-2);color:var(--muted);text-align:center;padding:3.5rem 1rem;display:grid}.queue-empty svg{color:var(--teal)}.queue-empty p{color:var(--muted-strong);font-size:1rem}.queue-empty span{font-size:.8rem}.full-state{place-content:center;justify-items:center;gap:var(--space-3);min-height:70dvh;padding:var(--space-8);color:var(--muted-strong);text-align:center;display:grid}.full-state h1{color:var(--ink);font-size:1.35rem}.full-state p{max-width:28ch;font-size:.9rem}.full-state .primary-button{width:auto;margin-top:var(--space-2)}.loading-dot{border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;width:1.25rem;height:1.25rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=700px){body{padding:1.5rem 0}.app{border-radius:var(--radius-md);min-height:calc(100dvh - 3rem);box-shadow:0 8px 36px #091c2f14}.queue-sheet{border-radius:1.25rem;bottom:1.5rem}}@media (width<=359px){.continue-button{display:none}.recommendation-panel{gap:var(--space-4);padding-right:var(--space-4);padding-left:var(--space-4);grid-template-columns:1fr}.recommendation-art{justify-self:end;width:5.75rem}.updates-section,.search-results,.album-content,.queue-sheet{padding-right:var(--space-4);padding-left:var(--space-4)}.episode-art,.album-art,.queue-art{width:3.75rem;height:3.75rem}.episode-main,.album-result,.queue-row-main{gap:var(--space-3)}.recommendation-copy h1{font-size:1.75rem}.album-result-copy span{overflow-wrap:anywhere;white-space:normal}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
