.tabbar[data-v-d14b4e51]{z-index:150;background:var(--color-surface-glass);-webkit-backdrop-filter:saturate(180%)blur(20px);border-top:.5px solid var(--color-separator);max-width:480px;padding:var(--space-2) var(--space-2) calc(var(--safe) + var(--space-2));transition:transform .3s var(--spring), padding .3s var(--spring), opacity .3s var(--spring);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar.shrunk[data-v-d14b4e51]{opacity:.55;padding-bottom:calc(var(--safe) + var(--space-1));transform:translateY(24px)}.tab-item[data-v-d14b4e51]{padding:var(--space-1) 0;cursor:pointer;color:var(--color-text-tertiary);transition:color .2s var(--spring), transform .15s var(--spring);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;font-family:inherit;display:flex}.tab-item[data-v-d14b4e51]:active{transform:scale(.9)}.tab-item.active[data-v-d14b4e51]{color:var(--color-primary)}.tab-icon[data-v-d14b4e51]{filter:grayscale();opacity:.75;transition:filter .2s, opacity .2s, transform .2s var(--spring);font-size:20px}.tab-item.active .tab-icon[data-v-d14b4e51]{filter:grayscale(0);opacity:1;transform:translateY(-1px)}.tab-label[data-v-d14b4e51]{letter-spacing:-.01em;font-size:10px;font-weight:600}@media (width>=768px){.tabbar[data-v-d14b4e51]{max-width:720px;bottom:var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--color-separator);box-shadow:var(--shadow-modal);padding:var(--space-2) var(--space-3)}.tabbar.shrunk[data-v-d14b4e51]{opacity:0;transform:translateY(120%)}.tab-icon[data-v-d14b4e51]{font-size:22px}.tab-label[data-v-d14b4e51]{font-size:11px}}.app-shell{min-height:100dvh}.style-switcher{top:var(--space-4);right:var(--space-5);z-index:10;gap:var(--space-2);display:flex;position:absolute}.style-dot{color:#ffffffb3;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:34px;height:34px;transition:all .2s var(--spring);background:#0000004d;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex}.style-dot.on{background:#ffffff40;border-color:#fff;transform:scale(1.1)}.style-dot:active{transform:scale(.85)}.like-burst{pointer-events:none;animation:burst .7s var(--spring);text-shadow:0 4px 20px #ff4d4f99;justify-content:center;align-items:center;font-size:64px;display:flex;position:absolute;inset:0}@keyframes burst{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1.6)}}.spectrum-mode{text-align:center;margin-bottom:var(--space-4)}.spectrum-title{color:#fff;font-size:var(--text-2xl);font-weight:800}.spectrum-sub{color:#ffffff8c;font-size:var(--text-sm);margin-top:var(--space-1)}.spectrum-canvas{width:100%;height:160px;margin-top:var(--space-4)}.spectrum-note{color:#fff6;font-size:var(--text-xs);margin-top:var(--space-2)}.lyric-mode{text-align:center;margin:var(--space-7) 0 var(--space-6)}.lyric-big{color:#fff;letter-spacing:-.01em;padding:0 var(--space-4);justify-content:center;align-items:center;min-height:84px;font-size:30px;font-weight:800;line-height:1.4;display:flex}.lyric-big.ph{color:#ffffff40;font-size:44px}.lyric-mode-sub{color:#ffffff80;font-size:var(--text-sm);margin-top:var(--space-3)}.behavior-row{justify-content:center;align-items:center;gap:var(--space-5);margin-bottom:var(--space-4);display:flex}.behavior-btn{cursor:pointer;color:#fff9;transition:transform .15s var(--spring);padding:var(--space-1);background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;font-family:inherit;display:flex}.behavior-btn:active{transform:scale(.85)}.behavior-icon{filter:grayscale()opacity(.75);transition:filter .2s, transform .2s var(--spring);font-size:20px}.behavior-label{font-size:9px}.behavior-btn.on{color:#fff}.behavior-btn.on .behavior-icon{filter:none;transform:scale(1.2)}.behavior-btn.like.on .behavior-icon,.behavior-btn.fav.on .behavior-icon{animation:bpop .35s var(--spring)}.behavior-btn.dis.on .behavior-icon{animation:.4s shake}@keyframes bpop{0%{transform:scale(.5)}60%{transform:scale(1.4)}to{transform:scale(1.2)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.mode-btn{font-size:var(--text-lg);color:#ffffffb3;cursor:pointer;padding:var(--space-1);transition:transform .15s var(--spring);background:0 0;border:none}.mode-btn:active{transform:scale(.85)}.mode-btn:hover{color:#fff}.player-content{transition:opacity .5s}.player-content.faded{opacity:0;pointer-events:none}.add-sheet-mask{z-index:260;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.add-sheet{background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:480px;padding:var(--space-5) calc(var(--safe) + var(--space-5));animation:sheetUp .3s var(--spring)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.add-sheet-title{font-size:var(--text-lg);text-align:center;margin-bottom:var(--space-3);font-weight:700}.add-pl-item{padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);justify-content:space-between;align-items:center;display:flex}.add-pl-item:hover{background:var(--color-bg-primary)}.add-pl-count{font-size:var(--text-xs);color:var(--color-text-tertiary);font-family:SF Mono,Menlo,monospace}.add-sheet-cancel{width:100%;color:var(--color-text-secondary);padding:var(--space-3);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;font-family:inherit}.mini-heart-tag{margin-left:4px;font-size:10px}:root{--color-bg-primary:#f9fafb;--color-surface:#fff;--color-primary:#4931c4;--color-primary-hover:#5b42d7;--color-primary-press:#3a24a8;--color-success:#30a661;--color-danger:#ce2727;--color-text-primary:#21262c;--color-text-secondary:#6c757f;--color-text-tertiary:#9199a1;--color-surface-glass:#ffffffb8;--color-separator:#9199a126;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:9999px;--shadow-cover:0 4px 12px #0000001f, 0 20px 40px #00000014;--shadow-card:0 1px 3px #0000000f, 0 8px 24px #0000000d;--shadow-modal:0 4px 16px #0000001a, 0 24px 60px #0000001f;--spring:cubic-bezier(.25,.1,.25,1);--fast:.15s;--normal:.3s;--slow:.5s;--tabbar-h:56px;--safe:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--color-bg-primary:#111417;--color-surface:#1c2126;--color-primary:#6249df;--color-primary-hover:#7963e9;--color-primary-press:#482dd2;--color-text-primary:#f2f2f2;--color-text-secondary:#9fa6ad;--color-text-tertiary:#75808a;--color-surface-glass:#1c2126b8;--color-separator:#ffffff1f}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg-primary);color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,sans-serif;font-size:var(--text-base);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh;line-height:1.5;overflow-x:hidden}#app{max-width:480px;min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + 86px + var(--safe));margin:0 auto;position:relative}@media (width>=768px){:root{--tabbar-h:80px}#app{max-width:1100px;padding-bottom:calc(var(--tabbar-h) + 90px + var(--safe))}.card{margin:var(--space-2) var(--space-4)}.song-list-wide{gap:0 var(--space-4);grid-template-columns:1fr 1fr;display:grid}.player-mini{border-radius:var(--radius-pill);max-width:720px;padding:var(--space-2) var(--space-5);margin:0 auto}.player-full{max-width:1100px;margin:0 auto}.player-content{max-width:460px}.scene-grid,.pl-grid{grid-template-columns:repeat(4,1fr)}.guess-row{flex-wrap:wrap}.guess-card{width:140px}.guess-cover{width:140px;height:140px}.daily-list{columns:2;column-gap:var(--space-4)}.daily-list>*{break-inside:avoid}}::-webkit-scrollbar{width:0}.card{background:var(--color-surface-glass);-webkit-backdrop-filter:saturate(180%)blur(20px);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:var(--space-2) var(--space-4);padding:var(--space-4);transition:transform var(--fast) var(--spring)}header{z-index:50;background:var(--color-surface-glass);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:.5px solid var(--color-separator);padding:var(--space-3) var(--space-5);align-items:center;gap:var(--space-3);display:flex;position:sticky;top:0}header h1{font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700}.back-btn{font-size:var(--text-xl);cursor:pointer;color:var(--color-primary);padding:var(--space-1);transition:transform var(--fast) var(--spring);background:0 0;border:none}.back-btn:active{transform:scale(.85)}.search-wrap{z-index:40;padding:var(--space-2) var(--space-4) var(--space-3);background:linear-gradient(180deg, var(--color-bg-primary) 60%, transparent);position:sticky;top:48px}.search-box{position:relative}.search-box svg{width:18px;height:18px;color:var(--color-text-tertiary);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input{width:100%;padding:var(--space-3) var(--space-4) var(--space-3) 42px;border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text-primary);transition:box-shadow var(--fast) var(--spring), background var(--fast);background:#9199a11f;border:none;outline:none;font-family:inherit}.search-input:focus{background:var(--color-surface);box-shadow:0 0 0 3px #4931c41f}.search-input::placeholder{color:var(--color-text-tertiary)}.song-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin:0 calc(-1 * var(--space-4));cursor:pointer;transition:background var(--fast);border-radius:var(--radius-md);display:flex}.song-row:hover{background:#00000005}.song-row:active{background:#0000000a}.song-row+.song-row{border-top:.5px solid var(--color-separator)}.song-cover,.song-cover-placeholder{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;width:50px;height:50px;box-shadow:0 2px 8px #0000001f}.song-cover-placeholder{font-size:var(--text-xl);color:#fff;background:linear-gradient(135deg,#705cd6,#d1478c);justify-content:center;align-items:center;display:flex}.song-info{flex:1;min-width:0}.song-name{font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.song-meta{font-size:var(--text-xs);color:var(--color-text-secondary);align-items:center;gap:var(--space-2);margin-top:2px;display:flex}.song-tag{border-radius:var(--radius-pill);background:var(--color-separator);color:var(--color-text-secondary);padding:1px 6px;font-size:10px}.song-dur{font-size:var(--text-xs);color:var(--color-text-secondary);font-family:SF Mono,Menlo,monospace}.section-title{font-size:var(--text-xl);letter-spacing:-.01em;margin-bottom:var(--space-3);font-weight:700}.pl-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.pl-item{border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;transition:transform var(--fast) var(--spring);flex-direction:column;justify-content:flex-end;min-height:90px;display:flex}.pl-item:first-child{background:linear-gradient(135deg,#da3e3e,#ed765e)}.pl-item:nth-child(2){background:linear-gradient(135deg,#4d4dcb,#926ce0)}.pl-item:nth-child(3){background:linear-gradient(135deg,#f49d25,#f5ca47)}.pl-item:nth-child(4){background:linear-gradient(135deg,#34b268,#47d1a3)}.pl-item:active{transform:scale(.96)}.pl-emoji{font-size:var(--text-3xl);margin-bottom:var(--space-2)}.pl-name{font-size:var(--text-base);color:#fff;font-weight:700}.pl-desc{font-size:var(--text-xs);color:#ffffffb3;margin-top:2px}.empty{text-align:center;padding:var(--space-7) var(--space-5)}.empty-illus{margin-bottom:var(--space-4);font-size:64px;animation:2s infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-title{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:600}.empty-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-5)}.empty-cta{background:var(--color-primary);color:#fff;padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);font-size:var(--text-base);cursor:pointer;transition:transform var(--fast) var(--spring), background var(--fast);border:none;font-family:inherit;font-weight:600}.empty-cta:hover{background:var(--color-primary-hover)}.empty-cta:active{background:var(--color-primary-press);transform:scale(.94)}.result-info{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-3);font-weight:500}.result-count{color:var(--color-primary);font-weight:600}.player-mini{bottom:calc(var(--tabbar-h) + 8px + var(--safe));background:var(--color-surface-glass);-webkit-backdrop-filter:saturate(180%)blur(20px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-top:.5px solid var(--color-separator);z-index:160;max-width:480px;padding:var(--space-2) var(--space-4);cursor:pointer;align-items:center;gap:var(--space-3);margin:0 auto;display:flex;position:fixed;left:0;right:0;box-shadow:0 -4px 20px #0000000f}.player-mini-cover,.player-mini-cover-ph{object-fit:cover;border-radius:50%;flex-shrink:0;width:46px;height:46px;box-shadow:0 2px 8px #00000026}.player-mini-cover-ph{font-size:var(--text-xl);color:#fff;background:linear-gradient(135deg,#705cd6,#d1478c);justify-content:center;align-items:center;display:flex}.player-mini-info{flex:1;min-width:0}.player-mini-name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-mini-artist{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.player-mini-btn{background:var(--color-text-primary);width:38px;height:38px;color:var(--color-surface);font-size:var(--text-base);cursor:pointer;transition:transform var(--fast) var(--spring);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.player-mini-btn:active{transform:scale(.85)}.player-mini-progress{background:var(--color-primary);height:2px;transition:width .3s linear;position:absolute;top:0;left:0}.player-full{z-index:200;padding:var(--space-6) var(--space-5) calc(var(--safe) + var(--space-6));flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.player-bg{filter:blur(80px)brightness(.25);transition:background 3s;position:absolute;inset:0;transform:scale(1.15)}.player-content{z-index:1;width:100%;max-width:380px;position:relative}.player-close{top:var(--space-4);left:var(--space-5);color:#ffffffb3;font-size:var(--text-2xl);cursor:pointer;z-index:10;padding:var(--space-2);transition:transform var(--fast) var(--spring);background:0 0;border:none;position:absolute}.player-close:active{transform:scale(.85)}.player-cover-wrap{margin-bottom:var(--space-6);perspective:600px;justify-content:center;display:flex;position:relative}.player-cover-large{object-fit:cover;width:240px;height:240px;box-shadow:var(--shadow-cover);will-change:transform;background:#111;border:2px solid #ffffff2e;border-radius:50%;outline:6px solid #0000001f;padding:10px}.player-cover-ph{color:#ffffff4d;width:240px;height:240px;box-shadow:var(--shadow-cover);background:linear-gradient(135deg,#3d29a3,#a32966,#2952a3);border-radius:50%;justify-content:center;align-items:center;font-size:72px;display:flex}.player-name-full{font-size:var(--text-2xl);color:#fff;text-align:center;font-weight:700}.player-artist-full{font-size:var(--text-base);color:#ffffff80;text-align:center;margin-top:var(--space-1)}.progress-section{margin:var(--space-5) 0}.progress-bar-wrap{cursor:pointer;align-items:center;height:8px;display:flex;position:relative}.progress-track{background:#ffffff40;border-radius:2px;width:100%;height:1.5px;position:relative}.progress-fill{background:var(--color-primary);height:3px;transform:translateY(-50%) scaleX(var(--progress,0));transform-origin:0;will-change:transform;border-radius:2px;position:absolute;top:50%;left:0}.progress-thumb{width:14px;height:14px;transform:translate(-50%, -50%) translateX(calc(var(--progress,0) * 100%));opacity:0;transition:opacity var(--fast);background:#fff;border-radius:50%;position:absolute;top:50%;left:0;box-shadow:0 2px 6px #0000004d}.progress-bar-wrap:hover .progress-thumb,.progress-bar-wrap.touching .progress-thumb{opacity:1}.progress-times{font-size:var(--text-xs);color:#fff6;margin-top:var(--space-1);justify-content:space-between;font-family:SF Mono,Menlo,monospace;display:flex}.controls{justify-content:center;align-items:center;gap:var(--space-6);margin-bottom:var(--space-5);display:flex}.ctrl-btn{color:#ffffffb3;font-size:var(--text-xl);cursor:pointer;transition:transform var(--fast) var(--spring), color var(--fast);padding:var(--space-1);background:0 0;border:none}.ctrl-btn:hover{color:#fff}.ctrl-btn:active{transform:scale(.85)}.ctrl-play{color:#000;width:64px;height:64px;font-size:var(--text-xl);cursor:pointer;transition:transform var(--fast) var(--spring), box-shadow var(--fast);background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 20px #0000004d}.ctrl-play:active{transform:scale(.85)}.ctrl-play.pressed{transform:scale(1.15)}.volume-wrap{align-items:center;gap:var(--space-2);justify-content:center;display:flex}.volume-icon{color:#fff6;font-size:var(--text-sm)}.volume-slider{cursor:pointer;appearance:none;background:#ffffff26;border-radius:2px;width:100px;height:3px}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:12px;height:12px}.visualizer-wrap{height:48px;margin-top:var(--space-2);justify-content:center;align-items:center;display:flex}.visualizer-canvas{width:100%;height:100%}.lyrics-panel{max-height:130px;margin-top:var(--space-3);text-align:center;scrollbar-width:none;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 20% 80%,#0000);mask-image:linear-gradient(#0000,#000 20% 80%,#0000)}.lyrics-panel::-webkit-scrollbar{display:none}.lyric-line{font-size:var(--text-sm);color:#ffffff4d;transition:all .3s var(--spring);padding:4px 0}.lyric-line.active{color:#fff;font-size:var(--text-lg);font-weight:600}.skeleton{background:linear-gradient(90deg, var(--color-separator) 25%, #ffffff80 50%, var(--color-separator) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.history-wrap{gap:var(--space-2);padding:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.history-tag{border-radius:var(--radius-pill);background:var(--color-separator);color:var(--color-text-primary);font-size:var(--text-xs);cursor:pointer;transition:transform var(--fast) var(--spring);padding:6px 14px}.history-tag:active{transform:scale(.92)}.onboard-overlay{z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--space-5);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.onboard-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-6);text-align:center;max-width:320px;box-shadow:var(--shadow-modal)}.onboard-emoji{margin-bottom:var(--space-4);font-size:56px}.onboard-title{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:700}.onboard-desc{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-5)}.hot-keywords{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;justify-content:center;display:flex}.toast{color:#fff;padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);font-size:var(--text-sm);z-index:400;animation:toastIn .3s var(--spring);text-align:center;background:#000c;max-width:80%;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.page-enter-active,.page-leave-active{transition:opacity .25s var(--spring), transform .25s var(--spring)}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-10px)}.player-enter-active,.player-leave-active{transition:all .4s var(--spring)}.player-enter-from,.player-leave-to{opacity:0;transform:translateY(100%)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:fadeUp .35s var(--spring)}
