/* ---- Generative book cover ---- */
.ab-cover{position:relative;display:flex;flex-direction:column;aspect-ratio:2/3;overflow:hidden;border-radius:var(--radius-cover);background:var(--graphite-0);color:var(--graphite-950);box-shadow:inset 0 0 0 1px var(--border-default);font-size:2px}
.ab-cover--ink{background:var(--graphite-950);color:#fff;box-shadow:none}
.ab-cover--category{color:#fff;box-shadow:none}
.ab-cover__inner{position:relative;display:flex;flex-direction:column;height:100%;padding:7.5em;gap:0;overflow:hidden}
.ab-cover__top{display:flex;align-items:flex-start;justify-content:space-between;gap:4em}
.ab-cover__pid{font-family:var(--font-mono);font-size:3.4em;letter-spacing:.1em;opacity:.7}
.ab-cover__mark{width:6.5em;height:6.5em;flex:none;opacity:.9}
.ab-cover__grid{margin:6em 0 auto;display:grid;grid-template-columns:repeat(8,1fr);gap:1.6em}
.ab-cover__cell{aspect-ratio:1;border-radius:.6em}
.ab-cover__title{font-size:8.2em;line-height:1.06;letter-spacing:-.03em;font-weight:var(--weight-semibold);text-wrap:balance;margin-bottom:2.4em;color:inherit}
.ab-cover__sub{font-size:3.7em;line-height:1.34;opacity:.66;margin-bottom:4em;max-width:92%}
.ab-cover__rule{height:1px;background:currentColor;opacity:.22;margin-bottom:3.4em}
.ab-cover__foot{display:flex;align-items:center;justify-content:space-between;gap:3em;font-family:var(--font-mono);font-size:3em;letter-spacing:.08em;text-transform:uppercase;opacity:.72}
.ab-cover__cat{display:flex;align-items:center;gap:2em}
.ab-cover__catdot{width:2.4em;height:2.4em;border-radius:.4em;flex:none}
.ab-cover__agent{display:flex;align-items:center;gap:1.4em}

/* ---- Book card ---- */
.ab-bookcard{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);text-decoration:none;color:inherit;transition:var(--transition-control)}
.ab-bookcard:hover{border-color:var(--border-strong)}
.ab-bookcard__cover{width:100%}
.ab-bookcard__body{display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.ab-bookcard__cat{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary)}
.ab-bookcard__catdot{width:6px;height:6px;border-radius:1px;flex:none}
.ab-bookcard__title{font-size:var(--fs-h4);font-weight:var(--weight-semibold);letter-spacing:var(--ls-h4);line-height:1.3;color:var(--text-primary)}
.ab-bookcard__sub{font-size:var(--fs-body-sm);color:var(--text-secondary);line-height:1.5}
.ab-bookcard__badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:var(--space-2)}
.ab-bookcard__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary)}
.ab-bookcard--row{flex-direction:row;align-items:stretch;gap:var(--space-5)}
.ab-bookcard--row .ab-bookcard__cover{width:104px;flex:none}
.ab-bookcard--compact{padding:var(--space-3);gap:var(--space-3)}

/* ---- Agent card ---- */
.ab-agentcard{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);text-decoration:none;color:inherit;transition:var(--transition-control)}
.ab-agentcard:hover{border-color:var(--petrol-300)}
.ab-agentcard__head{display:flex;align-items:flex-start;gap:var(--space-3)}
.ab-agentcard__avatar{width:40px;height:40px;flex:none;border-radius:var(--radius-small);background:var(--surface-agent-subtle);border:1px solid var(--petrol-200);display:flex;align-items:center;justify-content:center;color:var(--petrol-600)}
.ab-agentcard__kicker{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--petrol-700)}
.ab-agentcard__name{font-size:var(--fs-h4);font-weight:var(--weight-semibold);letter-spacing:var(--ls-h4);color:var(--text-primary)}
.ab-agentcard__desc{font-size:var(--fs-body-sm);color:var(--text-secondary);line-height:1.55}
.ab-agentcard__base{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);color:var(--text-tertiary);text-transform:uppercase}

/* ---- Category / author / resource ---- */
.ab-catcard{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);text-decoration:none;color:inherit;transition:var(--transition-control);position:relative;overflow:hidden}
.ab-catcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cat,var(--interactive-primary))}
.ab-catcard:hover{border-color:var(--border-strong);background:var(--surface-hover)}
.ab-catcard__name{font-size:var(--fs-h4);font-weight:var(--weight-semibold);letter-spacing:var(--ls-h4)}
.ab-catcard__desc{font-size:var(--fs-body-sm);color:var(--text-secondary);line-height:1.5}
.ab-catcard__count{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary);margin-top:var(--space-2)}

.ab-authorcard{display:flex;gap:var(--space-4);padding:var(--space-5);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card)}
.ab-authorcard__photo{width:56px;height:56px;flex:none;border-radius:var(--radius-small);background:var(--surface-sunken);object-fit:cover;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-body-sm);color:var(--text-tertiary);border:1px solid var(--border-subtle)}
.ab-authorcard__name{font-size:var(--fs-body);font-weight:var(--weight-semibold)}
.ab-authorcard__role{font-size:var(--fs-body-sm);color:var(--text-secondary)}
.ab-authorcard__meta{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary);margin-top:6px}

.ab-resource{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-card);transition:var(--transition-control)}
.ab-resource:hover{border-color:var(--border-strong)}
.ab-resource__icon{width:36px;height:36px;flex:none;border-radius:var(--radius-small);background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}
.ab-resource__title{font-size:var(--fs-body-sm);font-weight:var(--weight-medium)}
.ab-resource__meta{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);text-transform:uppercase;color:var(--text-tertiary)}
