/* Library page */
.library-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); }
.library-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.library-media { background: #111; aspect-ratio: 16 / 9; }
.library-media video { display: block; width: 100%; height: 100%; object-fit: contain; background: #111; }
.library-media.is-x { background: transparent; aspect-ratio: auto; padding: 0 0.75rem; }
.library-media.is-x .twitter-tweet { margin: 0.75rem auto !important; }
.library-media.is-link { display: grid; place-items: center; }
.library-body { padding: 1rem 1.15rem 1.15rem; }
.library-title { font-size: 1.1rem; margin: 0 0 0.35rem; letter-spacing: -0.01em; }
.library-meta { margin: 0 0 0.4rem; font-size: 0.85rem; color: var(--muted); }
.library-meta a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.library-notes { margin: 0; color: var(--muted); font-size: 0.95rem; }
.library-status { text-align: center; color: var(--muted); }

/* Password gate (same look as /bap) */
.library-gate { min-height: 60vh; display: grid; place-items: center; padding: 3rem 0 4rem; }
.library-gate[hidden], #library-app[hidden] { display: none; }
.gate-card { width: min(100%, 28rem); background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 2rem 1.75rem; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.04); text-align: center; }
.gate-card h1 { max-width: none; font-size: clamp(1.75rem, 4vw, 2.25rem); margin-bottom: 0.75rem; }
.gate-lede { font-size: 1rem; margin-bottom: 1.5rem; }
.gate-form { display: grid; gap: 0.85rem; text-align: left; margin-bottom: 1rem; }
.gate-form label { display: grid; gap: 0.3rem; font-size: 0.9rem; color: var(--muted); }
.gate-form input { width: 100%; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); color: var(--text); padding: 0.7rem 0.85rem; font: inherit; }
.gate-form .btn { width: 100%; margin-top: 0.25rem; }
.gate-error { color: #b42318; font-size: 0.85rem; margin: 0; }
.gate-error[hidden] { display: none; }
