/* Animus Library and Friends and Supporters. Uses the site's colour variables from styles.css. */
.lib{ --lib-panel:var(--bg-card, #0d1526); --lib-ink:var(--text-main, #d0dff5); --lib-soft:var(--text-dim, #6a85b0); --lib-gold:var(--gold, #c9a84c); --lib-teal:var(--lcars-teal, #2a9d8f); --lib-line:var(--border, #1e3060); line-height:1.65; }
.lib a{ color:var(--lib-gold); }
.lib h1{ font-family:'Orbitron', monospace; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lib-gold); margin:.2rem 0 .8rem; font-size:clamp(20px, 3.4vw, 30px); }
.lib h2, .lib h3{ font-family:'Orbitron', monospace; letter-spacing:.08em; }
.lib-eyebrow{ font-family:'Share Tech Mono', monospace; text-transform:uppercase; letter-spacing:.2em; font-size:12px; color:var(--lib-soft); margin:0; }
.lib-head{ margin-bottom:8px; }
.lib-head p{ max-width:680px; color:var(--lib-ink); opacity:.9; }
.lib-btn{ display:inline-block; background:var(--lib-gold); color:#050810 !important; padding:10px 18px; border-radius:4px; font-family:'Orbitron', monospace; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; border:0; cursor:pointer; }
.lib-btn:hover{ filter:brightness(1.1); }
.lib-pills{ display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.lib-pill{ padding:7px 14px; border-radius:20px; background:var(--bg-card2, #111c33); border:1px solid var(--lib-line); color:var(--lib-soft) !important; text-decoration:none; font-family:'Share Tech Mono', monospace; font-size:13px; letter-spacing:.08em; }
.lib-pill:hover{ color:var(--lib-gold) !important; border-color:var(--lib-gold); }
.lib-pill.on{ color:#050810 !important; background:var(--lib-gold); border-color:var(--lib-gold); }
.lib-pages{ justify-content:center; }
.lib-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:16px; }
.lib-card{ background:var(--lib-panel); border:1px solid var(--lib-line); border-radius:8px; overflow:hidden; color:var(--lib-ink) !important; text-decoration:none; display:flex; flex-direction:column; transition:border-color .2s; }
.lib-card:hover{ border-color:var(--lib-gold); }
.lib-card-img{ aspect-ratio:4/3; background:#091522; }
.lib-card-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.lib-card-body{ padding:12px 16px 16px; }
.lib-card-body h2{ font-size:15px; margin:4px 0 6px; color:var(--lib-ink); }
.lib-card-body p{ margin:0; color:var(--lib-soft); font-size:14px; }
.lib-tag{ font-family:'Share Tech Mono', monospace; font-size:11px !important; text-transform:uppercase; letter-spacing:.15em; color:var(--lib-gold) !important; }
.lib-detail{ display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:28px; align-items:start; margin-top:16px; }
.lib-detail p{ margin:0 0 1em; }
.lib-viewer{ width:100%; border:1px solid var(--lib-line); border-radius:8px; overflow:hidden; background:var(--lib-panel); min-height:200px; }
.lib-viewer canvas{ display:block; width:100% !important; }
.lib-photo{ width:100%; border-radius:8px; border:1px solid var(--lib-line); }
.lib-note{ color:var(--lib-soft); font-size:13px; }
.lib-side{ background:var(--lib-panel); border:1px solid var(--lib-line); border-radius:8px; padding:18px; }
.lib-side dl{ margin:16px 0 0; }
.lib-side dt{ font-family:'Share Tech Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:.15em; color:var(--lib-soft); }
.lib-side dd{ margin:0 0 10px; }
.lib-empty{ color:var(--lib-soft); }
.lib-flash{ background:rgba(42,157,143,.15); border:1px solid var(--lib-teal); padding:10px 14px; border-radius:4px; margin:12px 0; }
.lib-err{ background:rgba(204,68,68,.15); border-color:var(--lcars-red, #cc4444); }
.lib-table{ width:100%; border-collapse:collapse; margin-top:12px; }
.lib-table th{ font-family:'Share Tech Mono', monospace; font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--lib-soft); }
.lib-table th, .lib-table td{ text-align:left; padding:8px; border-bottom:1px solid var(--lib-line); vertical-align:top; }
.lib-table button, .lib-admin button:not(.lib-btn){ background:transparent; color:var(--lcars-red, #cc4444); border:1px solid var(--lcars-red, #cc4444); border-radius:3px; padding:3px 10px; cursor:pointer; font:inherit; font-size:12px; }
.lib-form{ display:grid; grid-template-columns:minmax(0, 1fr); gap:12px; max-width:640px; margin-top:12px; }
.lib-form label{ display:grid; grid-template-columns:minmax(0, 1fr); gap:4px; font-family:'Share Tech Mono', monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--lib-soft); min-width:0; }
.lib-form input, .lib-form select, .lib-form textarea{ box-sizing:border-box; max-width:100%; padding:9px 10px; border-radius:4px; border:1px solid var(--lib-line); background:var(--bg-card2, #111c33); color:var(--lib-ink); font-family:'Exo 2', sans-serif; font-size:15px; text-transform:none; letter-spacing:0; }
.lib-form input:focus, .lib-form select:focus, .lib-form textarea:focus{ outline:none; border-color:var(--lib-gold); }
.lib-form fieldset{ border:1px solid var(--lib-line); border-radius:6px; padding:12px; display:grid; gap:10px; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); }
.lib-form legend{ font-family:'Share Tech Mono', monospace; color:var(--lib-gold); padding:0 6px; letter-spacing:.15em; text-transform:uppercase; font-size:12px; }
.lib-form small{ color:var(--lib-soft); margin-top:-8px; font-size:13px; }
.lib-admin p{ margin:8px 0; }
@media (max-width:760px){ .lib-detail{ grid-template-columns:1fr; } .lib-table{ font-size:13px; } .lib-table th:nth-child(n+5), .lib-table td:nth-child(n+5):not(:last-child){ display:none; } }
