.lib{--pack:var(--accent);min-height:0;color:var(--ink);flex-direction:column;display:flex}.lib-drawer-shell{z-index:21;background:var(--surface);width:352px;box-shadow:var(--shadow-2);animation:slide-left .2s var(--ease);border-radius:16px;display:flex;position:absolute;top:70px;bottom:14px;right:12px;overflow:hidden}.lib-drawer-shell>.lib{flex:1}.lib-head{border-bottom:1px solid var(--line);background:radial-gradient(120% 80% at 100% 0%, var(--accent-soft), transparent 60%), var(--surface);padding:16px 12px 0 16px}.lib-title{align-items:flex-start;gap:10px;display:flex}.lib-title>div{flex:1;min-width:0}.lib-title h2{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:1.2rem}.lib-title p{color:var(--ink-3);margin:2px 0 0;font-size:.8rem}.lib-title-icon{color:#fff;background:linear-gradient(135deg,#2d5bff,#7c4dff 55%,#e8590c);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.lib-tabs{gap:4px;margin-top:14px;display:flex}.lib-tabs button{color:var(--ink-3);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 10px 11px;font-size:.86rem;font-weight:600;display:inline-flex;position:relative}.lib-tabs button[aria-selected=true]{color:var(--ink)}.lib-tabs button[aria-selected=true]:after{background:var(--accent);content:"";border-radius:2px;height:2.5px;position:absolute;bottom:-1px;left:8px;right:8px}.lib-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}.lib-count{min-width:20px;color:var(--ink-2);background:var(--bg-2);text-align:center;border-radius:999px;padding:1px 6px;font-size:.72rem;font-weight:650}.lib-body{overscroll-behavior:contain;flex:1;min-height:0;padding:14px 14px 20px;overflow:auto}.lib-note{color:var(--ink-3);margin:8px 2px 14px;font-size:.85rem}.lib-error{color:#b42318;background:#fef3f2;border-radius:10px;margin:10px 14px 0;padding:8px 10px;font-size:.85rem}.dark .lib-error{color:#fda29b;background:#3a1513}.lib-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.lib-search{z-index:1;color:var(--ink-3);background:var(--surface);align-items:center;gap:8px;margin:-14px -14px 12px;padding:12px 14px;display:flex;position:sticky;top:-14px}.lib-search input{border:1px solid var(--line-2);min-width:0;color:var(--ink);background:var(--surface-2);font:inherit;border-radius:10px;flex:1;padding:9px 12px;font-size:.88rem}.lib-search input:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}.lib-section{margin-bottom:16px}.lib-section-head{color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 8px;font-size:.78rem;font-weight:650;display:flex}.lib-section-head button{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:4px 2px;display:flex}.lib-section-head button svg{transition:rotate var(--dur-2,.2s) var(--ease);margin-left:auto}.lib-section-head button[aria-expanded=false] svg{rotate:-90deg}.lib-section-title{color:var(--ink)}.lib-dot{background:var(--accent);border-radius:50%;width:8px;height:8px}.lib-glyph{min-width:26px;height:26px;color:var(--pack);background:color-mix(in srgb, var(--pack) 14%, transparent);letter-spacing:0;text-transform:none;border-radius:8px;place-items:center;padding:0 5px;font-family:Times New Roman,Georgia,serif;font-size:.82rem;font-style:italic;font-weight:700;display:grid}.lib-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.lib-recent{scroll-snap-type:x proximity;padding-bottom:4px;display:flex;overflow-x:auto}.lib-recent li{scroll-snap-align:start;flex:0 0 132px}.lib-tile{border:1px solid var(--line);width:100%;height:100%;color:var(--ink);background:var(--surface);font:inherit;text-align:left;cursor:grab;transition:border-color var(--dur-1,.12s) var(--ease), box-shadow var(--dur-1,.12s) var(--ease), translate var(--dur-1,.12s) var(--ease);border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex}.lib-tile:hover:not(:disabled){border-color:color-mix(in srgb, var(--pack) 55%, var(--line));box-shadow:0 6px 18px -10px color-mix(in srgb, var(--pack) 60%, transparent);translate:0 -1px}.lib-tile:focus-visible{outline:2px solid var(--pack);outline-offset:1px}.lib-tile:active:not(:disabled){cursor:grabbing}.lib-tile:disabled{cursor:default;opacity:.7}.lib-thumb{background:linear-gradient(color-mix(in srgb, var(--pack) 6%, #fff), #fff);border-radius:8px;place-items:center;height:74px;display:grid;overflow:hidden}.lib-thumb img{object-fit:contain;max-width:100%;max-height:100%}.lib-thumb-wait{background:var(--line);border-radius:4px;width:40%;height:8px}.dark .lib-thumb{background:#f4f2ec}.lib-tile-title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.lib-empty{text-align:center;justify-items:center;margin-top:18px;padding:18px 8px;display:grid}.lib-empty h3{font-family:var(--display);margin:14px 0 6px;font-size:1.05rem}.lib-empty p{max-width:260px;color:var(--ink-3);margin:0 0 16px;font-size:.86rem}.lib-empty-art{width:150px;height:92px;position:relative}.lib-empty-art span{border:1px solid color-mix(in srgb, var(--pack) 40%, transparent);width:64px;height:78px;color:var(--pack);background:color-mix(in srgb, var(--pack) 10%, var(--surface));box-shadow:var(--shadow-1);border-radius:12px;place-items:center;font-family:Times New Roman,Georgia,serif;font-size:1.8rem;font-style:italic;font-weight:700;display:grid;position:absolute}.lib-empty-art span:first-child{left:0;rotate:-9deg}.lib-empty-art span:nth-child(2){z-index:1;font-style:normal;top:-6px;left:43px}.lib-empty-art span:nth-child(3){right:0;rotate:8deg}.lib-chips{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.lib-chip{border:1px solid var(--line-2);color:var(--ink-2);background:var(--surface);font:inherit;cursor:pointer;border-radius:999px;padding:5px 11px;font-size:.8rem;font-weight:600}.lib-chip[aria-pressed=true]{border-color:var(--ink);color:var(--surface);background:var(--ink)}.lib-packs{gap:12px;margin:0;padding:0;list-style:none;display:grid}.lib-pack{border:1px solid var(--line);background:var(--surface);transition:border-color var(--dur-2,.2s) var(--ease);border-radius:16px;overflow:hidden}.lib-pack.is-installed{border-color:color-mix(in srgb, var(--pack) 45%, var(--line))}.lib-cover{background:radial-gradient(90% 120% at 0% 100%, color-mix(in srgb, var(--pack) 34%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--pack) 16%, #fff), color-mix(in srgb, var(--pack) 4%, #fff));height:96px;position:relative;overflow:hidden}.dark .lib-cover{background:radial-gradient(90% 120% at 0% 100%, color-mix(in srgb, var(--pack) 40%, transparent), transparent 70%), linear-gradient(135deg, color-mix(in srgb, var(--pack) 22%, #1e1e1c), #1e1e1c)}.lib-cover-glyph{z-index:1;text-shadow:0 0 12px var(--surface), 0 0 4px var(--surface);color:var(--pack);letter-spacing:-.02em;font-family:Times New Roman,Georgia,serif;font-size:2.6rem;font-style:italic;font-weight:700;line-height:1;position:absolute;bottom:6px;left:14px}.lib-cover-previews{justify-content:flex-end;gap:8px;padding:4px 0 14px 10px;display:flex;position:absolute;top:10px;left:38%;right:-14px;overflow:hidden;rotate:-6deg}.lib-cover-previews img{object-fit:contain;background:#fff;border-radius:8px;flex:none;width:92px;height:64px;padding:4px;box-shadow:0 6px 16px -8px #00000059}.lib-pack-body{padding:12px 14px 14px}.lib-subject{color:var(--pack);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:700}.lib-pack h3{font-family:var(--display);margin:2px 0 4px;font-size:1.02rem}.lib-desc{color:var(--ink-2);margin:0;font-size:.82rem;line-height:1.45}.lib-meta{color:var(--ink-3);margin:8px 0 10px;font-size:.76rem;font-weight:600}.lib-actions{align-items:center;gap:10px;display:flex}.lib-installed{color:#12a150;align-items:center;gap:4px;font-size:.82rem;font-weight:650;display:inline-flex}.lib-install{isolation:isolate;position:relative;overflow:hidden}.lib-install:disabled:before{z-index:-1;width:var(--progress,0%);content:"";transition:width var(--dur-1,.12s) linear;background:#ffffff47;position:absolute;inset:0 auto 0 0}.lib-page-shell{max-width:1080px;margin:0 auto;padding:28px 20px 60px}.lib-page .lib-head{border-bottom:1px solid var(--line);background:0 0;padding:0}.lib-page .lib-title h2{font-size:clamp(1.6rem,3vw,2.2rem)}.lib-page .lib-title p{font-size:.95rem}.lib-page .lib-title-icon{border-radius:13px;width:44px;height:44px}.lib-page .lib-body{padding:18px 0 0;overflow:visible}.lib-page .lib-packs{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.lib-page .lib-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.lib-page .lib-search{max-width:420px;margin:0 0 14px;padding:0;position:static}@media (prefers-reduced-motion:no-preference){.lib-pack{animation:lib-rise var(--dur-3,.3s) var(--ease) both}.lib-pack:nth-child(2){animation-delay:30ms}.lib-pack:nth-child(3){animation-delay:60ms}.lib-pack:nth-child(n+4){animation-delay:90ms}.lib-section.is-new .lib-tile{animation:lib-pop var(--dur-3,.3s) var(--ease-spring,var(--ease)) both}.lib-pack.is-installed .lib-installed{animation:lib-pop var(--dur-3,.3s) var(--ease-spring,var(--ease))}.lib-cover-previews img{transition:translate var(--dur-3,.3s) var(--ease)}.lib-pack:hover .lib-cover-previews img:nth-child(2){translate:0 -4px}.lib-pack:hover .lib-cover-previews img:nth-child(3){translate:0 -8px}}@keyframes lib-rise{0%{opacity:0;translate:0 8px}}@keyframes lib-pop{0%{opacity:0;scale:.92}}@media (max-width:720px){.lib-drawer-shell{z-index:40;width:auto;height:min(72dvh,620px);animation:lib-sheet-up .22s var(--ease);border-radius:18px 18px 0 0;inset:auto 0 0}.lib-drawer-shell:before{background:var(--line-2);content:"";border-radius:2px;width:38px;height:4px;margin-left:-19px;position:absolute;top:6px;left:50%}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}@keyframes lib-sheet-up{0%{opacity:0;translate:0 40px}}@media (prefers-reduced-motion:reduce){.lib-drawer-shell{animation:none}}.lib-filter{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;display:flex}@media (max-height:500px) and (orientation:landscape){.lib-drawer-shell{z-index:40;border-radius:16px;width:min(420px,100vw - 16px);height:auto;inset:64px 8px 8px auto}}
