@import "https://fonts.googleapis.com/css2?family=Kalnia:wght@200;300;500;700&family=Geist:wght@300;400;500;600&family=Geist+Mono:wght@400;500&display=swap";
:root{--font-display:"Kalnia", Georgia, serif;--font-body:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, Menlo, Consolas, monospace;--c1:#f0c36d;--c2:#d4572a;--c3:#7a1f3f;--c4:#2b0c2e;--c5:#140612;--ink:#f3ecde;--ink-dim:#f3ecde9e;--ink-mute:#f3ecde57;--ink-whisper:#f3ecde24;--glass:#fff0dc0f;--glass-hi:#fff0dc24;--glass-lo:#fff0dc08;--line:#fff0dc24;--accent-hi:#ffd8a8;--accent-ink:#140612;--accent-shadow:#d4572a8c;--cover-shadow:#7a1f3f8c;--danger:#ff6a4d;--radius:22px;--radius-lg:28px}:root[data-theme=lagoon]{--c1:#8fd9ff;--c2:#3aa0c8;--c3:#2d4f8f;--c4:#121a44;--c5:#05060f;--ink:#e6f0ff;--ink-dim:#e6f0ff9e;--ink-mute:#e6f0ff57;--ink-whisper:#e6f0ff24;--glass:#c8e1ff0f;--glass-hi:#c8e1ff24;--glass-lo:#c8e1ff08;--line:#c8e1ff24;--accent-hi:#cfefff;--accent-ink:#031226;--accent-shadow:#3aa0c88c;--cover-shadow:#2864b48c}:root[data-theme=moss]{--c1:#d4e27a;--c2:#7ea85a;--c3:#34583a;--c4:#1a2a22;--c5:#090d0c;--ink:#eef0e0;--ink-dim:#eef0e09e;--ink-mute:#eef0e057;--ink-whisper:#eef0e024;--glass:#dcf0c80f;--glass-hi:#dcf0c824;--glass-lo:#dcf0c808;--line:#dcf0c824;--accent-hi:#e6f3a8;--accent-ink:#0b1a0e;--accent-shadow:#7ea85a8c;--cover-shadow:#466e3c8c}:root[data-theme=noir]{--c1:#f5ead2;--c2:#ff7a5c;--c3:#b32030;--c4:#3b0a10;--c5:#060305;--ink:#f8efe4;--ink-dim:#f8efe49e;--ink-mute:#f8efe457;--ink-whisper:#f8efe424;--glass:#fff0e60f;--glass-hi:#fff0e624;--glass-lo:#fff0e608;--line:#fff0e624;--accent-hi:#ffc9a8;--accent-ink:#140306;--accent-shadow:#ff7a5c8c;--cover-shadow:#b320308c}:root[data-theme=vapor]{--c1:#ffc9b4;--c2:#ff5fb0;--c3:#7a3fd6;--c4:#2a0d55;--c5:#07021a;--ink:#f0e6ff;--ink-dim:#f0e6ff9e;--ink-mute:#f0e6ff57;--ink-whisper:#f0e6ff24;--glass:#f0dcff0f;--glass-hi:#f0dcff24;--glass-lo:#f0dcff08;--line:#f0dcff24;--accent-hi:#ffd1f2;--accent-ink:#120528;--accent-shadow:#ff5fb08c;--cover-shadow:#7a3fd68c}:root[data-theme=rose]{--c1:#f0c36d;--c2:#d4572a;--c3:#7a1f3f;--c4:#2b0c2e;--c5:#140612;--ink:#f3ecde;--ink-dim:#f3ecde9e;--ink-mute:#f3ecde57;--ink-whisper:#f3ecde24;--glass:#fff0dc0f;--glass-hi:#fff0dc24;--glass-lo:#fff0dc08;--line:#fff0dc24;--accent-hi:#ffd8a8;--accent-ink:#140612;--accent-shadow:#d4572a8c;--cover-shadow:#7a1f3f8c}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--c5);min-height:100vh;color:var(--ink);font-family:var(--font-body), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;width:auto;height:auto;font-size:15px;font-weight:300;line-height:1.5;overflow-x:hidden}body{background:radial-gradient(1000px 700px at 15% 10%, var(--c1) 0%, transparent 55%), radial-gradient(900px 700px at 85% 20%, var(--c2) 0%, transparent 55%), radial-gradient(1200px 900px at 60% 110%, var(--c3) 0%, transparent 60%), radial-gradient(800px 600px at 10% 90%, var(--c4) 0%, transparent 60%), var(--c5);background-attachment:fixed;transition:background 1.2s;position:relative}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(600px 400px at var(--mx,40%) var(--my,30%), #ffdca02e, transparent 60%);filter:blur(40px);animation:14s ease-in-out infinite alternate synesthetic-float;position:fixed;inset:-10%}body:after{content:"";pointer-events:none;z-index:1;mix-blend-mode:overlay;opacity:.9;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence baseFrequency='0.85' numOctaves='2'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}@keyframes synesthetic-float{to{transform:translate(6%,-4%)scale(1.08)}}::selection{color:var(--c5);background:#ffe19659}a{color:inherit;text-decoration:none}a:hover{color:var(--ink)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea{font:inherit;color:inherit;background:0 0;border:none;outline:none}.art-backdrop{z-index:0;background-image:var(--album-image,none);filter:blur(80px)saturate(1.4)brightness(.55);opacity:.55;pointer-events:none;background-position:50%;background-size:cover;transition:opacity 1.2s,background-image;position:fixed;inset:-14%;transform:scale(1.15)}.app-shell{z-index:2;max-width:1340px;min-height:100vh;margin:0 auto;padding:24px 28px 64px;position:relative}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.brand{font-family:var(--font-display), serif;letter-spacing:.01em;align-items:center;gap:12px;font-size:22px;font-weight:200;display:flex}.brand b{font-weight:500}.brand em{font-style:italic;font-weight:500}.brand .orb{background:radial-gradient(circle at 30% 30%, var(--c1), var(--c2) 60%, var(--c3));width:14px;height:14px;box-shadow:0 0 24px var(--accent-shadow);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;padding:0;transition:transform .2s,box-shadow .2s;animation:3s ease-in-out infinite orb-pulse}.brand .orb:hover{box-shadow:0 0 30px var(--accent-shadow), 0 0 0 4px var(--glass-hi);transform:scale(1.25)}.brand .orb:active{transform:scale(.95)}.brand .orb:focus-visible{box-shadow:0 0 0 2px var(--ink), 0 0 24px var(--accent-shadow);outline:none}@keyframes orb-pulse{50%{filter:brightness(1.2);transform:scale(1.12)}}.top-right{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:8px;font-size:11px;display:flex}.chip{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(18px);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;display:inline-flex}.chip.live:before{content:"";background:#9be3a7;border-radius:50%;width:6px;height:6px;display:inline-block;box-shadow:0 0 10px #9be3a7}.chip.danger{color:var(--danger);border-color:#ff6a4d4d}.chip.danger:hover{color:#ffaa96;background:#ff6a4d1f}.chip.queued{color:#ffd089;background:#ffd08914;border-color:#ffd08959}.chip.queued:before{content:"";background:#ffd089;border-radius:50%;width:6px;height:6px;margin-right:2px;display:inline-block;box-shadow:0 0 8px #ffd089}.chip:hover{background:var(--glass-hi)}.stage{grid-template-columns:1.1fr 1fr;align-items:center;gap:48px;min-height:520px;margin-top:16px;display:grid;position:relative}.cover-stage{aspect-ratio:1;justify-content:center;align-items:center;max-height:560px;display:flex;position:relative}.cover{aspect-ratio:1;background:radial-gradient(120% 90% at 30% 20%, var(--c1) 0%, var(--c2) 38%, var(--c3) 72%, var(--c4) 100%);width:78%;box-shadow:0 40px 120px var(--cover-shadow), 0 0 0 1px #ffffff14, inset 0 0 120px #14061259;background-position:50%;background-size:cover;border-radius:28px;animation:9s ease-in-out infinite alternate cover-sway;position:relative;overflow:hidden;transform:rotate(-2deg)}@keyframes cover-sway{to{transform:rotate(2deg)translateY(-8px)}}.cover-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cover:before{content:"";mix-blend-mode:screen;pointer-events:none;background:conic-gradient(from 20deg at 70% 20%,#0000 0deg,#ffffff2e 40deg,#0000 80deg),radial-gradient(60% 40% at 70% 20%,#fff3,#0000 70%);position:absolute;inset:0}.cover-reflect{aspect-ratio:1;background-image:var(--album-image,radial-gradient(120% 90% at 30% 20%, var(--c1), var(--c2), var(--c3), var(--c4)));filter:blur(30px);opacity:.45;pointer-events:none;background-position:50%;background-size:cover;border-radius:28px;width:78%;position:absolute;bottom:-42%;transform:scaleY(-1)rotate(-2deg);-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.now-card{background:var(--glass);-webkit-backdrop-filter:blur(22px)saturate(1.4);border:1px solid var(--line);border-radius:16px;align-items:center;gap:14px;min-width:260px;padding:14px 18px;display:flex;position:absolute;bottom:4%;left:4%;box-shadow:0 20px 50px #00000059}.now-card .swatch{flex-shrink:0;gap:3px;display:flex}.now-card .swatch i{border-radius:3px;width:8px;height:34px;display:block}.now-card .swatch i:first-child{background:var(--c1)}.now-card .swatch i:nth-child(2){background:var(--c2)}.now-card .swatch i:nth-child(3){background:var(--c3)}.now-card .swatch i:nth-child(4){background:var(--c4)}.now-card .meta-t{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);font-size:10.5px}.now-card .meta-b{font-family:var(--font-display), serif;margin-top:2px;font-size:17px;font-style:italic;font-weight:300;line-height:1.2}.info{position:relative}.eyebrow{font-family:var(--font-mono), monospace;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:10px;font-size:11px;display:flex}.eyebrow:before{content:"";background:var(--ink-mute);width:28px;height:1px}.song-title{font-family:var(--font-display), serif;letter-spacing:-.035em;text-shadow:0 2px 30px #00000059;overflow-wrap:break-word;word-break:break-word;margin:14px 0 8px;padding-bottom:.08em;font-size:clamp(32px,5vw,80px);font-weight:200;line-height:1.05}.song-title em{color:var(--accent-hi);text-shadow:0 2px 30px #00000073;font-style:italic;font-weight:500}.byline{font-family:var(--font-display), serif;color:var(--ink-dim);font-size:22px;font-style:italic;font-weight:300}.byline b{color:var(--ink);border-bottom:1px solid var(--line);font-style:normal;font-weight:500}.player{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(1.3);flex-wrap:wrap;align-items:center;gap:18px;margin-top:30px;padding:18px;display:flex;box-shadow:0 20px 60px #00000052}.ctrls{gap:8px;display:flex}.ctrls button{width:44px;height:44px;color:var(--ink);background:var(--glass-hi);border:1px solid var(--line);border-radius:50%;place-items:center;transition:transform .2s,background .2s,filter .2s;display:grid}.ctrls button:hover:not(:disabled){background:#fff0dc38;transform:translateY(-1px)}.ctrls button:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.3)}.ctrls button svg path{fill:currentColor}.ctrls button svg path:first-child{fill:#0000}.ctrls .play{background:linear-gradient(135deg, var(--c1), var(--c2));width:58px;height:58px;color:var(--accent-ink);box-shadow:0 10px 30px var(--accent-shadow);border:none}.ctrls .play:hover:not(:disabled){filter:brightness(1.1)}.time{flex-direction:column;flex:1;gap:8px;min-width:200px;display:flex}.time .row{font-family:var(--font-mono), monospace;letter-spacing:.12em;color:var(--ink-dim);justify-content:space-between;font-size:11px;display:flex}.time .bar{background:#fff0dc24;border-radius:2px;height:3px;position:relative;overflow:hidden}.time .bar .fill{background:linear-gradient(90deg, var(--c1), var(--accent-hi), var(--c2));transition:width .8s;position:absolute;top:0;bottom:0;left:0;box-shadow:0 0 14px #ffc88cb3}.ts-chips{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.ts-chips button{font-family:var(--font-mono), monospace;letter-spacing:.08em;background:var(--glass-hi);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:11px;transition:background .15s,transform .15s}.ts-chips button:hover{background:#fff0dc47;transform:translateY(-1px)}.notes{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(1.3);margin-top:38px;padding:30px 32px 32px;position:relative;box-shadow:0 30px 80px #00000059}.notes .notes-label{font-family:var(--font-mono), monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);background:var(--c5);border:1px solid var(--line);border-radius:99px;padding:3px 10px;font-size:10.5px;position:absolute;top:-10px;left:22px}.notes-editor{font-family:var(--font-display), serif;color:var(--ink);outline:none;min-height:220px;font-size:19px;font-weight:300;line-height:1.55}.notes-editor:empty:before{content:attr(data-placeholder);color:var(--ink-mute);font-style:italic}.notes-editor em{color:var(--accent-hi);font-style:italic}.notes-editor b,.notes-editor strong{color:var(--ink);font-weight:500}.notes-hint{text-align:center;color:var(--ink-mute);font-family:var(--font-display), serif;margin-top:30px;padding:36px;font-size:22px;font-style:italic}.notes-hint small{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;margin-top:10px;font-size:11px;font-style:normal;display:block}.foot{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:36px;font-size:10.5px;display:flex}.foot a{border-bottom:1px solid var(--line);color:var(--ink-dim)}.foot a:hover{color:var(--ink)}.footer-btn{border:none;border-bottom:1px solid var(--line);color:var(--ink-dim);cursor:pointer;font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;background:0 0;padding:0;font-size:10.5px}.footer-btn:hover{color:var(--ink)}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;max-width:520px;max-height:80vh;padding:36px;position:relative;overflow-y:auto}.modal-box h2{font-family:var(--font-mono), monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin:0 0 24px;font-size:11px}.modal-box p{color:var(--ink);margin:0 0 16px;font-size:14px;line-height:1.7}.modal-box p:last-child{margin-bottom:0}.modal-box .modal-byline{font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:20px;font-size:11px}.modal-box .modal-byline a{color:var(--ink);border-bottom:1px solid var(--line)}.modal-box .modal-byline a:hover{color:var(--accent-hi);border-bottom-color:var(--accent-hi)}.modal-close{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:14px;position:absolute;top:16px;right:16px}.modal-close:hover{color:var(--ink)}.login-shell{z-index:2;grid-template-columns:1.2fr 1fr;align-items:center;gap:48px;max-width:1200px;min-height:100vh;margin:0 auto;padding:60px 32px;display:grid;position:relative}.login-hero{position:relative}.login-hero .kicker{font-family:var(--font-mono), monospace;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:20px;font-size:11px}.login-hero h1{font-family:var(--font-display), serif;letter-spacing:-.035em;overflow-wrap:break-word;word-break:break-word;margin-bottom:22px;padding-bottom:.08em;font-size:clamp(44px,6.5vw,96px);font-weight:200;line-height:1.05}.login-hero h1 em{background:linear-gradient(90deg, var(--c1), var(--accent-hi) 50%, var(--c2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.login-hero h1 .title-orb{background:radial-gradient(circle at 30% 30%, var(--c1), var(--c2) 60%, var(--c3));width:.3em;height:.3em;box-shadow:0 0 .4em var(--accent-shadow);vertical-align:-.02em;cursor:pointer;border:none;border-radius:50%;margin-left:.18em;padding:0;transition:transform .2s,box-shadow .2s;display:inline-block}.login-hero h1 .title-orb:hover{box-shadow:0 0 .5em var(--accent-shadow), 0 0 0 .05em var(--glass-hi);transform:scale(1.18)}.login-hero h1 .title-orb:active{transform:scale(.92)}.login-hero h1 .title-orb:focus-visible{box-shadow:0 0 0 .04em var(--ink), 0 0 .5em var(--accent-shadow);outline:none}.login-hero .lede{font-family:var(--font-display), serif;color:var(--ink-dim);max-width:480px;margin-bottom:36px;font-size:24px;font-style:italic;font-weight:300}.login-button{font-family:var(--font-mono), monospace;letter-spacing:.16em;text-transform:uppercase;background:linear-gradient(135deg, var(--c1), var(--c2));color:var(--accent-ink);box-shadow:0 20px 60px var(--accent-shadow);border:none;border-radius:999px;align-items:center;gap:12px;padding:16px 26px;font-size:13px;font-weight:500;transition:transform .2s,filter .2s,box-shadow .2s;display:inline-flex}.login-button:hover{filter:brightness(1.08);box-shadow:0 28px 70px var(--accent-shadow);transform:translateY(-2px)}.login-button .spotify-mark{background:var(--accent-ink);width:22px;height:22px;color:var(--c1);border-radius:50%;place-items:center;font-size:12px;display:grid}.login-panel{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(1.3);padding:30px 32px;box-shadow:0 30px 80px #00000059}.login-panel h2{font-family:var(--font-mono), monospace;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:16px;font-size:11px}.login-panel .perms{flex-direction:column;gap:14px;display:flex}.login-panel .perms .row{align-items:flex-start;gap:12px;display:flex}.login-panel .perms code{font-family:var(--font-mono), monospace;letter-spacing:.08em;background:var(--glass-hi);border:1px solid var(--line);color:var(--ink);border-radius:6px;flex-shrink:0;margin-top:2px;padding:3px 8px;font-size:10.5px}.login-panel .perms p{color:var(--ink-dim);font-size:14px;line-height:1.55}.login-panel .note{border-top:1px solid var(--line);color:var(--ink-mute);margin-top:22px;padding-top:18px;font-size:12.5px;line-height:1.55}.login-panel .note a{color:var(--ink-dim);border-bottom:1px solid var(--line)}.login-footer{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);justify-content:space-between;font-size:10.5px;display:flex;position:absolute;bottom:20px;left:32px;right:32px}.fade{opacity:0;animation:1.1s cubic-bezier(.2,.7,.2,1) forwards fade-rise;transform:translateY(18px)scale(.99)}.fade.d2{animation-delay:.12s}.fade.d3{animation-delay:.28s}.fade.d4{animation-delay:.44s}.fade.d5{animation-delay:.6s}@keyframes fade-rise{to{opacity:1;transform:none}}@media (max-width:960px){.stage{grid-template-columns:1fr;gap:28px;min-height:auto}.cover-stage{max-height:420px}.login-shell{grid-template-columns:1fr;gap:32px;min-height:auto;padding:40px 22px 80px}.login-footer{flex-wrap:wrap;gap:10px;margin-top:30px;position:static}}@media (max-width:600px){.app-shell{padding:18px 18px 48px}.topbar{flex-wrap:wrap;gap:10px}.notes{padding:24px 20px}.song-title{font-size:clamp(48px,12vw,72px)}.login-hero h1{font-size:clamp(48px,13vw,72px)}.player{padding:14px}}@media (prefers-reduced-motion:reduce){.fade{opacity:1;animation:none;transform:none}body:before,.cover{animation:none}.lib-card:hover{transform:none}.lib-drawer{animation:none}}.library-shell{max-width:1480px}.brand-sep{color:var(--ink-mute);margin:0 10px;font-weight:300}.brand-sub{font-family:var(--font-mono), monospace;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);align-self:center;font-size:11px}.lib-hero{flex-direction:column;gap:18px;margin-top:8px;margin-bottom:28px;display:flex}.lib-eyebrow{font-family:var(--font-mono), monospace;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:10px;font-size:11px;display:flex}.lib-eyebrow:before{content:"";background:var(--ink-mute);width:28px;height:1px}.lib-title{font-family:var(--font-display), serif;letter-spacing:-.035em;overflow-wrap:break-word;margin:0;padding-bottom:.08em;font-size:clamp(44px,7vw,92px);font-weight:200;line-height:1.02}.lib-title em{background:linear-gradient(90deg, var(--c1), var(--accent-hi) 50%, var(--c2));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:500}.lib-search-wrap{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(1.3);border-radius:999px;align-items:center;gap:12px;padding:0 22px;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 20px 60px #00000052}.lib-search-wrap:focus-within{border-color:var(--accent-hi);box-shadow:0 20px 60px #00000052, 0 0 0 3px var(--accent-shadow)}.lib-search-icon{color:var(--ink-dim);flex-shrink:0}.lib-search{font-family:var(--font-display), serif;color:var(--ink);background:0 0;border:none;outline:none;flex:1;padding:20px 0;font-size:22px;font-weight:300}.lib-search::placeholder{color:var(--ink-mute);font-style:italic}.lib-kbd{font-family:var(--font-mono), monospace;letter-spacing:.14em;background:var(--glass-hi);border:1px solid var(--line);color:var(--ink-dim);border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:10px}.lib-sorts{flex-wrap:wrap;gap:6px;display:flex}.lib-sort{font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--line);color:var(--ink-dim);background:0 0;border-radius:999px;padding:7px 14px;font-size:10.5px;transition:background .15s,color .15s,border-color .15s}.lib-sort:hover{background:var(--glass-hi);color:var(--ink)}.lib-sort.on{background:linear-gradient(135deg, var(--c1), var(--c2));color:var(--accent-ink);box-shadow:0 6px 20px var(--accent-shadow);border-color:#0000}.settings-box{border-color:var(--line);background:linear-gradient(#140612eb 0%,#05020af5 100%);max-width:560px}.settings-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:18px 0;display:flex}.settings-row:first-of-type{border-top:none}.settings-row-text{flex:1;min-width:0}.settings-row-title{font-family:var(--font-display), serif;color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:400}.settings-row-title.danger{color:var(--danger)}.settings-row-sub{color:var(--ink-dim);font-size:13px;line-height:1.5}.settings-box .lib-action{flex-shrink:0}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;margin-top:12px;display:grid}.lib-card{text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;gap:10px;width:100%;padding:0;transition:transform .25s cubic-bezier(.2,.7,.2,1);display:flex;position:relative}.lib-card:hover{transform:translateY(-4px)}.lib-card:focus-visible{outline:none}.lib-card:focus-visible .lib-card-art{box-shadow:0 30px 80px var(--cover-shadow), 0 0 0 2px var(--accent-hi)}.lib-card-art{aspect-ratio:1;background-color:var(--glass-hi);background-position:50%;background-size:cover;border-radius:18px;transition:box-shadow .25s;position:relative;overflow:hidden;box-shadow:0 20px 60px #0006,0 0 0 1px #ffffff0f,inset 0 0 80px #14061233}.lib-card:hover .lib-card-art{box-shadow:0 36px 100px var(--cover-shadow), 0 0 0 1px #ffffff1f}.lib-card-shade{pointer-events:none;background:linear-gradient(#05020a00 35%,#05020a73 65%,#05020ad9 100%);position:absolute;inset:0}.lib-card-meta{z-index:2;position:absolute;bottom:14px;left:14px;right:14px}.lib-card-title{font-family:var(--font-display), serif;color:var(--ink);text-shadow:0 2px 20px #0009;letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:19px;font-weight:400;line-height:1.2;display:-webkit-box;overflow:hidden}.lib-card-title em{color:var(--accent-hi);font-style:italic}.lib-card-artist{font-family:var(--font-mono), monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:5px;font-size:10.5px;display:-webkit-box;overflow:hidden}.lib-card-snip{font-family:var(--font-display), serif;color:var(--ink-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;padding:0 4px;font-size:14px;font-style:italic;font-weight:300;line-height:1.5;display:-webkit-box;overflow:hidden}.lib-card-date{font-family:var(--font-mono), monospace;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);padding:0 4px;font-size:10px}mark{background:linear-gradient(transparent 60%, var(--accent-shadow) 60%);color:var(--ink);border-radius:2px;padding:0 2px}.lib-empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:80px 32px;display:flex}.lib-empty-title{font-family:var(--font-display), serif;color:var(--ink);font-size:clamp(28px,4vw,44px);font-style:italic;font-weight:200}.lib-empty-sub{font-family:var(--font-display), serif;color:var(--ink-dim);max-width:440px;font-size:17px;font-style:italic;line-height:1.6}.lib-drawer-overlay{-webkit-backdrop-filter:blur(14px);z-index:999;background:#05020a99;justify-content:flex-end;animation:.25s forwards lib-fade-in;display:flex;position:fixed;inset:0}@keyframes lib-fade-in{0%{opacity:0}to{opacity:1}}.lib-drawer{border-left:1px solid var(--line);background:linear-gradient(#140612d9 0%,#05020aeb 100%);grid-template-rows:auto 1fr;width:min(820px,100%);height:100%;animation:.35s cubic-bezier(.2,.7,.2,1) forwards lib-slide-in;display:grid;position:relative;overflow-y:auto;box-shadow:-40px 0 100px #0009}@keyframes lib-slide-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}.lib-drawer-close{background:var(--glass);border:1px solid var(--line);width:38px;height:38px;color:var(--ink);z-index:2;-webkit-backdrop-filter:blur(14px);border-radius:50%;transition:background .15s;position:absolute;top:22px;right:22px}.lib-drawer-close:hover{background:var(--glass-hi)}.lib-drawer-cover{height:280px;position:relative;overflow:hidden}.lib-drawer-art{background-color:var(--glass-hi);background-position:50%;background-size:cover;position:absolute;inset:0}.lib-drawer-cover:after{content:"";background:linear-gradient(#0000 0%,#05020a66 60%,#05020a 100%);position:absolute;inset:0}.lib-drawer-body{z-index:1;margin-top:-60px;padding:0 42px 60px;position:relative}.lib-drawer-title{font-family:var(--font-display), serif;letter-spacing:-.03em;text-shadow:0 2px 30px #00000080;overflow-wrap:break-word;margin:12px 0 6px;font-size:clamp(32px,4.5vw,58px);font-weight:200;line-height:1.04}.lib-drawer-title em{color:var(--accent-hi);font-style:italic;font-weight:500}.lib-drawer-actions{flex-wrap:wrap;gap:10px;margin:26px 0 28px;display:flex}.lib-action{font-family:var(--font-mono), monospace;letter-spacing:.2em;text-transform:uppercase;background:var(--glass-hi);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:10px 18px;font-size:11px;transition:background .15s,transform .15s}.lib-action:hover{background:#fff0dc38;transform:translateY(-1px)}.lib-action.play{background:linear-gradient(135deg, var(--c1), var(--c2));color:var(--accent-ink);box-shadow:0 10px 30px var(--accent-shadow);border-color:#0000}.lib-action.play:hover{filter:brightness(1.1)}.lib-action.danger{color:var(--danger);border-color:#ff6a4d4d}.lib-action.danger:hover{color:#ffaa96;background:#ff6a4d1f}.lib-drawer-note{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);min-height:120px;padding:24px 26px}@media (max-width:820px){.lib-drawer{width:100%}.lib-drawer-body{padding:0 24px 48px}.lib-drawer-cover{height:220px}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.lib-search{padding:16px 0;font-size:18px}.lib-kbd{display:none}}
