.header-actions{display:flex;align-items:center;gap:14px}
.library-open{border:1px solid rgba(233,224,202,.42);border-radius:24px;padding:10px 18px;color:#f8f2df;background:rgba(20,27,39,.36);font:inherit;cursor:pointer;white-space:nowrap}
.library-open:hover{background:rgba(241,227,187,.17)}
.library-view[hidden]{display:none!important}
.library-view{--cream:#f8f0dc;position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:106px minmax(0,1fr) 112px;overflow:hidden;color:var(--cream);font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:radial-gradient(ellipse 80% 36% at 50% 106%,rgba(198,135,189,.9),transparent 75%),radial-gradient(ellipse at 82% 78%,rgba(111,67,129,.58),transparent 48%),linear-gradient(180deg,#1b1724 0%,#201727 37%,#3d2442 100%)}
.library-view::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:radial-gradient(circle at 14% 28%,#f8e5dc 0 1px,transparent 2px),radial-gradient(circle at 76% 72%,#e2c5ec 0 1px,transparent 2px),radial-gradient(circle at 28% 83%,#d4b1d7 0 1px,transparent 2px);background-size:270px 250px,410px 340px,520px 320px}
.library-header,.library-content,.library-footer{position:relative;z-index:2}
.library-header{display:flex;align-items:center;justify-content:space-between;padding:0 3.1%;gap:20px}
.library-brand{display:flex;align-items:center;gap:20px}.library-emblem{display:grid;place-items:center;width:51px;height:51px;border-radius:50%;color:#25202b;background:#f5ead2;font-size:30px;box-shadow:inset 0 0 0 4px rgba(98,72,80,.18)}
.library-brand strong{display:block;letter-spacing:.025em;font-size:clamp(18px,1.35vw,27px);font-weight:700}.library-brand strong span{color:#b2a8ac;padding:0 5px}.library-brand small{display:block;margin-top:5px;font:9px Georgia,serif;letter-spacing:.2em;color:#bdb2bc}
.library-header-side{display:flex;align-items:center;gap:27px}.library-edition{border:1px solid #716778;border-radius:24px;padding:8px 17px;background:#211d29;font-size:14px;color:#ddd4ce}.library-close{width:51px;height:51px;border:4px solid #a29a96;border-radius:50%;color:#363b49;background:#f1ecdf;font-size:36px;line-height:38px;cursor:pointer;box-shadow:0 1px 7px #100c18}.library-close:hover,.library-close:focus-visible{border-color:#f2d998}
.library-content{display:grid;grid-template-columns:minmax(0, 2.25fr) minmax(300px,.98fr);min-height:0;gap:3.4%;padding:0 3.1%}
.library-collection{display:flex;flex-direction:column;min-height:0;min-width:0}.library-list-head{height:65px;flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.library-list-head h1{margin:5px 0 0;font-size:18px;font-weight:600;letter-spacing:.08em;color:#e8dfd2}.library-list-head h1 i{font-style:normal;color:#d5c295;font-size:13px}.library-eyebrow{font:10px Georgia,serif;letter-spacing:.19em;color:#b8aab8}.library-count{font-size:13px;color:#c6b7c4;white-space:nowrap;align-self:center}
.library-groups{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#c7bfb8 rgba(255,255,255,.08);scrollbar-width:thin;padding:0 12px 28px 0}.library-groups::-webkit-scrollbar{width:6px}.library-groups::-webkit-scrollbar-thumb{background:#c2b8b0;border-radius:10px}
.album-group{margin-bottom:17px;background:rgba(20,14,28,.26);border-radius:4px}.album-title{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 19px;background:var(--album-color,#292543);border-radius:4px 4px 0 0;font-size:clamp(16px,1.3vw,23px);font-weight:700;letter-spacing:.025em;box-shadow:inset 0 0 50px rgba(0,0,0,.1)}.album-title span:last-child{font:14px Georgia,serif;color:rgba(238,226,217,.24);letter-spacing:.15em}
.album-songs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:17px 8px;padding:25px 18px 22px}.song-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;border:0;background:none;color:#e8ddd5;font:inherit;cursor:pointer;padding:0}.song-cover{position:relative;display:grid;place-items:center;width:min(100%,104px);aspect-ratio:1;border:4px solid #f6e9ce;border-radius:50%;background:linear-gradient(145deg,#6b7186,#332a40);overflow:hidden;box-shadow:0 2px 4px rgba(5,3,10,.5)}.song-cover img{width:100%;height:100%;object-fit:cover}.song-placeholder{font:30px Georgia,serif;color:#e3d6c6;opacity:.8}.song-tile:hover .song-cover,.song-tile:focus-visible .song-cover,.song-tile[aria-pressed="true"] .song-cover{border-color:#ffd676;box-shadow:0 0 0 3px #d36f72,0 0 20px #f1b86b70;transform:scale(1.055)}.song-tile:focus-visible{outline:none}.song-tile[aria-pressed="true"]::before{content:"";position:absolute;z-index:2;top:-17px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:10px solid #fff5df;filter:drop-shadow(0 1px 4px #fff)}.song-name{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;text-align:center;color:#d1c4cc}.song-tile[aria-pressed="true"] .song-name{color:#fff5da}.song-status-dot{position:absolute;top:4px;right:calc(50% - min(50%,52px) + 3px);width:11px;height:11px;border-radius:50%;background:#8d7f91;border:2px solid #e5d9c9}.song-status-dot.ready{background:#e8c77b}.library-loading{padding:35px 20px;color:#d1c4cc}
.library-detail{min-width:0;overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:#a99aa4 transparent}.detail-cover{position:relative;min-height:210px;aspect-ratio:1.55;overflow:hidden;background:linear-gradient(135deg,#4f495b,#29263b);border-radius:3px;box-shadow:0 6px 20px #120b1a55}.detail-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(17,14,25,.15) 55%,rgba(16,12,20,.87))}.detail-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.detail-cover .detail-placeholder{position:absolute;inset:0;display:grid;place-items:center;font:90px Georgia,serif;color:#f4dec055}.detail-name{position:absolute;left:20px;bottom:18px;right:18px;z-index:1;text-shadow:0 2px 5px #0b0710}.detail-name h2{font-size:clamp(21px,1.9vw,33px);margin:0 0 4px}.detail-name small{font:12px Georgia,serif;letter-spacing:.07em;color:#f3e6d8}.detail-kicker{display:flex;justify-content:space-between;gap:10px;margin:19px 0 12px;color:#e4d6d2;font-size:13px}.detail-kicker strong{font-size:15px;letter-spacing:.06em}.detail-kicker span{color:#c3b3bd}
.difficulty-row{display:grid;grid-template-columns:49px 1fr;gap:12px;align-items:center;min-height:68px;border-bottom:1px solid #ffffff10}.difficulty-icon{display:grid;place-items:center;height:48px;border:2px solid #aa9ca04a;border-radius:4px;color:#c2b8bf;background:#291f33;font:27px Georgia,serif}.difficulty-head{display:flex;align-items:center;gap:8px;font-size:14px;color:#d0c1ca}.difficulty-head strong{font-size:15px;color:#eee2d8}.difficulty-status{padding:3px 10px;border-radius:20px;background:#746d76;color:#eee8e3;font-size:11px}.difficulty-row.playable .difficulty-status{background:#a17c51;color:#fff4d8}.difficulty-stars{display:block;color:#ffc65d;font-size:20px;letter-spacing:2px;line-height:1.25;text-shadow:0 2px #984f3b}.difficulty-stars .dim{color:#8a737b;text-shadow:none;font-size:11px;vertical-align:3px}.detail-summary{margin:16px 0;color:#d4c4c9;font-size:12px;line-height:1.7}.detail-summary b{color:#f0ddbb;font-weight:600}.library-empty{padding:55px 20px;text-align:center;color:#f3e4d4;font-size:20px}.library-empty small{font-size:13px;color:#b7a9b7}
.library-footer{display:flex;align-items:center;gap:25px;padding:0 3.1%;background:linear-gradient(0deg,rgba(243,194,201,.16),transparent)}.library-search{display:flex;align-items:center;gap:10px;width:min(350px,32%);border-bottom:1px solid #eee3d07a;color:#f7ecd9}.library-search span{font-size:31px;line-height:1}.library-search input{width:100%;min-width:0;background:transparent;border:0;outline:0;padding:11px 0;color:#fff4e8;font:15px "Microsoft YaHei",sans-serif}.library-search input::placeholder{color:#dfccd1}.library-search kbd{color:#c9b5c6;font:13px Georgia,serif}.library-footer-note{flex:1;text-align:center;font-size:13px;color:#ead3d9;letter-spacing:.1em}.library-start{display:flex;align-items:center;justify-content:space-between;gap:25px;min-width:min(300px,30%);height:56px;padding:4px 14px 4px 6px;border:3px solid #dbc497;border-radius:50px;color:#3a3d4b;background:linear-gradient(180deg,#fffdf3,#f3ead6);font:700 23px "Microsoft YaHei",sans-serif;cursor:pointer;box-shadow:0 2px 5px #100b18a0}.library-start:hover:not(:disabled){background:#fff;border-color:#f2d47c}.library-start:disabled{opacity:.55;cursor:not-allowed}.start-disc{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#e9c75f;background:#30323a;font-size:17px}.start-spark{color:#d7c29d;font-size:16px}
.library-waves{position:absolute;z-index:1;bottom:20px;left:-3%;right:-3%;height:100px;pointer-events:none;opacity:.4;overflow:hidden}.library-waves i{position:absolute;width:120%;height:110px;left:-10%;border-top:1px solid #f5d5eb;border-radius:50%;transform:rotate(-3deg)}.library-waves i:nth-child(2){top:10px;transform:rotate(2deg)}.library-waves i:nth-child(3){top:20px;transform:rotate(-1deg)}
.library-brand strong b{font:inherit}.library-favorite{flex:none;display:grid;place-items:center;width:49px;height:49px;border:3px solid #dbc497;border-radius:50%;color:#aaa6a9;background:#f7f0e3;font-size:26px;cursor:pointer}.library-favorite[aria-pressed="true"]{color:#f4b84b;text-shadow:0 1px #b37a35}.library-favorite:hover:not(:disabled){border-color:#f5d885}.library-favorite:disabled{opacity:.5;cursor:not-allowed}.song-favorite-mark{position:absolute;z-index:2;bottom:24px;right:calc(50% - min(50%,52px));display:grid;place-items:center;width:21px;height:21px;border:2px solid #eacb87;border-radius:50%;color:#f3c45a;background:#40333c;font-size:11px}
.library-audio-preview{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0 20px}.library-audio-toggle{padding:7px 15px;border:1px solid #d8c493;border-radius:18px;color:#f6ead0;background:#4f4157;font:inherit;font-size:12px;cursor:pointer}.library-audio-toggle:hover{background:#6d596b}.library-audio-preview a{color:#e8d6b9;font-size:12px;text-decoration:none}.library-audio-preview a:hover{text-decoration:underline}.library-audio-mount{width:100%}.library-audio-mount[hidden]{display:none}.library-audio-mount iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#17121e}
.detail-cover-credit{position:absolute;z-index:2;top:10px;right:10px;padding:3px 8px;border-radius:12px;color:#eee5d9;background:#252333ad;font-size:10px}
.detail-cover::before{content:"";position:absolute;inset:-20%;background-image:var(--cover-image);background-position:center;background-size:cover;filter:blur(18px) brightness(.58)}.detail-cover img{object-fit:contain}
@media(max-height:800px) and (min-width:651px){.library-view{grid-template-rows:88px minmax(0,1fr) 95px}.library-list-head{height:56px}.detail-cover{min-height:150px;aspect-ratio:1.9}.detail-kicker{margin:10px 0 5px}.difficulty-row{min-height:49px;grid-template-columns:40px 1fr}.difficulty-icon{height:38px;font-size:23px}.difficulty-stars{font-size:16px}.detail-summary{margin:8px 0;line-height:1.4}.album-songs{padding-top:21px;padding-bottom:18px}}
@media(max-width:1050px){.library-view{grid-template-rows:82px minmax(0,1fr) 84px}.library-content{grid-template-columns:minmax(0,1.75fr) minmax(270px,1fr);gap:20px}.album-songs{grid-template-columns:repeat(5,minmax(0,1fr));padding:20px 12px}.song-cover{max-width:86px}.album-title{font-size:16px}.library-footer-note{display:none}.library-search{flex:1;max-width:350px}.library-start{min-width:220px;font-size:19px}.difficulty-row{min-height:60px}.difficulty-icon{height:42px}.detail-cover{min-height:180px}}
@media(max-width:650px){.library-view{grid-template-rows:70px minmax(0,1fr) 74px}.library-header{padding:0 5%}.library-brand{gap:9px}.library-emblem,.library-close{width:42px;height:42px}.library-brand strong{font-size:16px}.library-brand small,.library-edition{display:none}.library-content{display:flex;flex-direction:column;padding:0 5%;gap:8px;overflow:auto}.library-collection{flex:none;height:44%}.library-list-head{height:43px}.library-list-head h1{font-size:14px}.library-eyebrow,.library-count{display:none}.album-songs{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 5px}.song-cover{max-width:70px;border-width:3px}.song-name{font-size:10px}.library-detail{overflow:visible;display:grid;grid-template-columns:40% 1fr;gap:0 12px}.detail-cover{grid-row:1 / span 6;min-height:120px;aspect-ratio:1}.detail-name{left:9px;bottom:8px}.detail-name h2{font-size:16px}.detail-name small{display:none}.detail-kicker{margin:0 0 5px}.difficulty-row{min-height:42px;grid-template-columns:32px 1fr;gap:7px}.difficulty-icon{height:30px;font-size:18px}.difficulty-head,.difficulty-head strong{font-size:11px}.difficulty-stars{font-size:14px}.difficulty-status{font-size:10px;padding:2px 6px}.detail-summary{grid-column:1 / -1;margin:7px 0;font-size:11px}.library-footer{padding:0 5%;gap:12px}.library-search{width:auto}.library-start{min-width:145px;height:45px;font-size:16px}.start-disc{width:31px;height:31px}.library-footer .start-spark{display:none}.header-actions{gap:4px}.library-open{padding:8px}}
