:root{--ink:#141414;--paper:#dcdcdc;--card:#f1f1f1;--accent:#d7ff3f;--charcoal:#1a1a1a;--rule:#aaa;--shadow:#141414;--font-display:"Archivo Black", "Bebas Neue", Impact, sans-serif;--font-logo:"Bebas Neue", "Archivo Black", sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--paper);color:var(--charcoal);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;margin:0}button{font-family:var(--font-mono);cursor:pointer}input,select,textarea{font-family:var(--font-mono)}::selection{background:var(--accent);color:var(--ink)}.app-shell{max-width:1080px;margin:0 auto;padding:28px 20px 80px}.drawer-label{border-bottom:4px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:28px;padding-bottom:16px;display:flex}.drawer-label h1{font-family:var(--font-logo);letter-spacing:.02em;color:var(--ink);margin:0;font-size:clamp(2.2rem,6vw,3.4rem);font-weight:400;line-height:.9}.drawer-label .subtitle{text-transform:uppercase;letter-spacing:.14em;color:var(--ink);opacity:.65;font-size:.72rem}.header-actions{align-items:center;gap:10px;display:flex}.btn{border:2px solid var(--ink);color:var(--ink);text-transform:uppercase;letter-spacing:.08em;background:0 0;border-radius:0;padding:9px 16px;font-size:.78rem;transition:transform .12s,background .12s,color .12s}.btn:hover{background:var(--ink);color:var(--accent)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:var(--accent)}.btn-primary:hover{background:var(--accent);color:var(--ink);border-color:var(--ink)}.btn-quiet{border-color:var(--rule);color:var(--charcoal);opacity:.75}.btn:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.search-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:26px;display:flex}.search-input{border:2px solid var(--ink);background:var(--card);min-width:220px;color:var(--charcoal);border-radius:0;flex:1;padding:12px 14px;font-size:.95rem}.filter-chip{border:1px solid var(--rule);background:var(--card);text-transform:uppercase;letter-spacing:.06em;color:var(--charcoal);opacity:.7;border-radius:20px;padding:7px 12px;font-size:.72rem}.filter-chip.active{border-color:var(--ink);background:var(--accent);opacity:1;font-weight:600}.result-count{opacity:.6;letter-spacing:.02em;margin-bottom:18px;font-size:.75rem}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;display:grid}.card{background:var(--card);border:2px solid var(--ink);box-shadow:5px 5px 0 var(--shadow);cursor:pointer;border-radius:0;flex-direction:column;gap:8px;min-height:240px;padding:16px 16px 14px;transition:transform .1s,box-shadow .1s;display:flex;position:relative;overflow:hidden}.card:hover{box-shadow:7px 7px 0 var(--shadow);transform:translate(-2px,-2px)}.card:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.card-authors{opacity:.65;margin:0;font-size:.75rem}.card-cover{object-fit:cover;object-position:center top;border:2px solid var(--ink);background:var(--paper);width:100%;height:150px}.card-cover-placeholder{border:2px dashed var(--rule);width:100%;height:150px;font-family:var(--font-mono);color:var(--rule);text-align:center;justify-content:center;align-items:center;padding:8px;font-size:.8rem;font-style:italic;display:flex}.card-title{font-family:var(--font-display);color:var(--ink);margin:4px 0 0;font-size:1rem;font-weight:400;line-height:1.25}.card-meta{color:var(--charcoal);opacity:.75;font-size:.72rem;line-height:1.5}.card-meta strong{opacity:.55;text-transform:uppercase;letter-spacing:.04em;margin-right:4px;font-size:.62rem;font-weight:500}.card-footer{justify-content:flex-end;gap:8px;margin-top:auto;display:flex}.card-footer button{text-transform:uppercase;letter-spacing:.05em;color:var(--charcoal);opacity:.55;background:0 0;border:none;padding:2px;font-size:.68rem}.card-footer button:hover{opacity:1;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-decoration-thickness:3px}.stamp{background:var(--accent);color:var(--ink);border:2px solid var(--ink);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;pointer-events:none;padding:3px 8px;font-size:.62rem;font-weight:600;position:absolute;top:14px;right:14px}.empty-state{border:2px dashed var(--rule);text-align:center;color:var(--charcoal);opacity:.7;border-radius:0;padding:50px 20px}.empty-state .big{font-family:var(--font-display);color:var(--ink);opacity:1;margin-bottom:8px;font-size:1.3rem;display:block}.modal-backdrop{z-index:20;background:#1414148c;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border:3px solid var(--ink);width:100%;max-width:520px;box-shadow:8px 8px 0 var(--shadow);border-radius:0;padding:26px 26px 22px}.modal h2{font-family:var(--font-display);color:var(--ink);margin:0 0 4px;font-size:1.4rem}.modal .hint{opacity:.65;margin-bottom:18px;font-size:.75rem}.field-row{gap:10px;margin-bottom:14px;display:flex}.field{flex-direction:column;flex:1;gap:5px;margin-bottom:14px;display:flex}.field label{text-transform:uppercase;letter-spacing:.06em;opacity:.65;font-size:.68rem}.field input,.field select,.field textarea{border:2px solid var(--rule);color:var(--charcoal);background:#fff;border-radius:0;padding:10px 11px;font-size:.9rem}.field textarea{resize:vertical;min-height:60px}.detail-modal{max-width:480px}.detail-cover{object-fit:contain;border:2px solid var(--ink);background:var(--paper);width:100%;max-height:340px;margin-bottom:16px}.detail-cover-placeholder{height:200px;margin-bottom:16px}.detail-meta{grid-template-columns:repeat(2,1fr);gap:10px 16px;margin-bottom:14px;font-size:.8rem;display:grid}.detail-meta strong{opacity:.55;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;font-size:.62rem;font-weight:500;display:block}.detail-notes{border-top:2px solid var(--rule);padding-top:14px;font-size:.85rem}.detail-notes strong{opacity:.55;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:.62rem;font-weight:500;display:block}.detail-notes p{white-space:pre-wrap;margin:0}.isbn-row{gap:8px;display:flex}.isbn-row input{flex:1}.form-footer{border-top:2px solid var(--rule);justify-content:flex-end;gap:10px;margin-top:8px;padding-top:16px;display:flex}.error-text{color:#b3261e;margin:6px 0 0;font-size:.78rem}.status-text{opacity:.65;margin:6px 0 0;font-size:.75rem}.gate-shell{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.gate-card{background:var(--card);border:3px solid var(--ink);width:100%;max-width:380px;box-shadow:8px 8px 0 var(--shadow);text-align:center;border-radius:0;padding:36px 32px}.gate-card h1{font-family:var(--font-logo);color:var(--ink);letter-spacing:.02em;margin:0 0 6px;font-size:2.2rem}.gate-card p{opacity:.7;margin:0 0 20px;font-size:.8rem}.gate-card input{border:2px solid var(--rule);text-align:center;border-radius:0;width:100%;margin-bottom:14px;padding:11px 12px;font-size:.95rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
