.library { padding-top: 56px; padding-bottom: 80px; }
.library h1 { margin: 8px 0 0; font-family: var(--display, "Bricolage Grotesque", sans-serif); font-size: clamp(32px, 5vw, 48px); line-height: 1.05; letter-spacing: -0.02em; }
.library .lede { max-width: 56ch; color: var(--muted); font-size: 18px; margin: 14px 0 0; }
.lib-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 28px; }
.lib-tools .pills { padding-top: 0; justify-content: flex-start; }
.lib-tabs[hidden], .lib-search[hidden] { display: none; }
.pill { font: inherit; font-size: 14px; background: transparent; color: var(--ink); cursor: pointer; }
.lib-search { margin-left: auto; min-height: 40px; width: min(100%, 260px); padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; }
.lib-search:focus-visible { outline: 2px solid var(--select); outline-offset: 2px; }
#lib-status { margin-top: 28px; }
.lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; margin-top: 28px; }
.lib-card { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); overflow: hidden; transition: border-color .2s ease, transform .2s ease; }
.lib-card:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.lib-thumb { position: relative; aspect-ratio: 1; background: var(--paper); border-bottom: 1px solid var(--line); }
.lib-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.lib-thumb.checker { background-color: var(--paper); background-image: linear-gradient(45deg, var(--line) 25%, transparent 25%, transparent 75%, var(--line) 75%), linear-gradient(45deg, var(--line) 25%, transparent 25%, transparent 75%, var(--line) 75%); background-size: 20px 20px; background-position: 0 0, 10px 10px; }
.lib-badge { position: absolute; top: 10px; left: 10px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--surface); border: 1px solid var(--line-strong); color: var(--ink); }
.lib-badge.plus { background: var(--select); border-color: var(--select); color: var(--select-ink); }
.lib-vars { position: absolute; top: 10px; right: 10px; display: flex; gap: 3px; padding: 5px 7px; border-radius: 999px; background: color-mix(in srgb, var(--surface) 80%, transparent); border: 1px solid var(--line-strong); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.lib-vars i { width: 10px; height: 10px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.35); }
.lib-body { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px 16px; }
.lib-sub { font-size: 13px; }
.lib-use { margin-top: 8px; font-size: 13px; font-weight: 500; }
@media (prefers-reduced-motion: reduce) { .lib-card { transition: none; } .lib-card:hover { transform: none; } }
