:root{--paper:#f0e5cf;--ink:#252b3e;--muted:#696557;--red:#9d5b53;--line:#c7baa1}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei",sans-serif}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 4vw;border-bottom:1px solid var(--line);font-size:13px}a{color:inherit}button,input{font:inherit}button,a,input{outline-offset:5px}button{cursor:pointer;min-height:44px;background:transparent;color:inherit;border:1px solid var(--line);padding:9px 16px}button:hover{border-color:var(--ink)}main{max-width:1240px;margin:auto;padding:52px 4vw 24px}.eyebrow{font-size:11px;letter-spacing:.2em;color:var(--red)}h1{font-family:"Songti SC",SimSun,serif;font-size:clamp(32px,4vw,56px);font-weight:500;margin:16px 0}.lede{color:var(--muted);line-height:1.7}nav{display:flex;align-items:center;gap:10px;margin:34px 0 20px;border-bottom:1px solid var(--line);padding-bottom:16px}nav button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.search{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.search input{width:220px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px;color:var(--ink)}#status{font-size:13px;color:var(--muted)}#records{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:24px 0 60px}.record{min-width:0}.sleeve{position:relative;aspect-ratio:1;background:var(--cover);overflow:hidden;box-shadow:5px 7px 0 #cbbfa9;isolation:isolate}.disc{width:72%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#242938 0 3px,#393c46 4px 5px);position:absolute;top:12%;left:35%;box-shadow:-5px 4px 9px #0003}.disc:after{content:"";position:absolute;inset:36%;border-radius:50%;background:var(--paper);border:12px solid var(--cover)}.sleeve:after{content:"";position:absolute;inset:0 34% 0 0;background:var(--cover);box-shadow:4px 0 8px #0002;z-index:1}.sleeve-label{position:absolute;z-index:2;left:16px;top:18px;color:var(--paper);font-family:SimSun,serif;font-size:24px;max-width:75px;line-height:1.4}.beats{position:absolute;z-index:2;display:flex;align-items:end;gap:3px;bottom:18px;left:16px;right:16px;height:24px}.beats i{flex:1;background:#f0e5cfaa;min-width:1px}.record h2{font-size:19px;margin:22px 0 9px}.record p{font-size:12px;color:var(--muted);line-height:1.8;margin:6px 0}.actions{display:flex;gap:8px;align-items:center;margin-top:16px}.play{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:13px}.save{padding:7px 12px}.save[aria-pressed=true]{background:#dbc1ab}.record details{border-top:1px solid var(--line);margin-top:14px;padding-top:10px;font-size:12px}.record summary{cursor:pointer;min-height:30px}.record dl{display:grid;grid-template-columns:1fr auto;gap:9px}.record dt,.record dd{margin:0}.record audio{width:100%;height:35px;margin-top:10px}.pending .sleeve{background:#d0c8b9}.pending-label{position:absolute;inset:20px;font-family:SimSun,serif;font-size:25px;line-height:1.6}.wish{border-top:1px solid var(--line);padding-top:28px;display:grid;grid-template-columns:1fr 1.5fr;gap:40px}.wish h2{font-family:SimSun,serif;font-size:25px}.wish p,footer{font-size:12px;color:var(--muted);line-height:1.8}.wish form{display:flex;align-items:end;gap:12px}.wish label{flex:1;min-width:0;font-size:12px}.wish input{width:100%;margin-top:10px;padding:12px 0;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink)}footer{margin-top:38px}button:disabled{cursor:default;opacity:.5}@media(max-width:850px){#records{grid-template-columns:repeat(2,minmax(0,1fr))}.wish{grid-template-columns:1fr;gap:12px}header span{display:none}}@media(max-width:480px){main{padding-top:30px}nav{flex-wrap:wrap}.search{width:100%;margin-left:0}.search input{flex:1;width:auto}#records{gap:18px}.sleeve-label{font-size:21px;left:12px}.record h2{font-size:17px}.actions{flex-wrap:wrap}.wish form{flex-direction:column;align-items:stretch}.wish label{width:100%}}

.import-button{position:relative;display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--line);padding:9px 16px;cursor:pointer;margin-left:auto}.import-button:focus-within{outline:2px solid var(--ink);outline-offset:4px}.import-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}header{flex-wrap:wrap}@media(max-width:480px){header{gap:8px}.import-button{padding:9px;font-size:12px}header button{padding:9px;font-size:12px}}

.pending .sleeve:after,.unavailable .sleeve:after{display:none}
.pending-label{z-index:2}
.unavailable .sleeve{background:#dfd5c3;border:1px dashed var(--line)}
#catalog-retry[hidden]{display:none}
#catalog-retry{font-size:12px;margin-top:4px}
