.resource-gallery{margin:1.4rem 0 2rem;padding:1.35rem clamp(1rem,2.5vw,2rem);border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.resource-gallery .section-head{align-items:end;margin-bottom:.35rem}
.resource-gallery h2{margin:.1rem 0;color:var(--ink);font-family:var(--sans);font-size:clamp(1.35rem,2vw,1.9rem);font-weight:500}
.resource-gallery .eyebrow{margin:0;color:var(--teal);font-size:.7rem;font-weight:750;letter-spacing:0}
.gallery-intro{margin:.35rem 0 1rem;color:var(--muted-2);font-size:.88rem}
.resource-match-count{color:var(--muted-2);font-size:.82rem;font-variant-numeric:tabular-nums}
.resource-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.55rem}
.resource-gallery-card{display:flex;min-width:0;min-height:76px;align-items:center;gap:.75rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.resource-gallery-card:hover,.resource-gallery-card:focus-visible{border-color:var(--teal);box-shadow:0 3px 12px var(--shadow);outline:2px solid rgba(11,87,208,.25);outline-offset:1px}
.resource-gallery-card:hover{transform:translateY(-1px)}
.resource-gallery-card.selected{border-color:var(--teal);background:var(--hover);box-shadow:inset 3px 0 var(--teal)}
.resource-gallery-art{display:grid;width:54px;height:56px;flex:0 0 54px;place-items:center;border-radius:8px;background:var(--row)}
.resource-gallery-art img{display:block;width:48px;height:50px;object-fit:contain}
.resource-gallery-copy{display:grid;min-width:0;gap:.18rem}
.resource-gallery-copy strong{overflow-wrap:anywhere;font-size:.87rem;line-height:1.2}
.resource-gallery-copy small{color:var(--muted);font-size:.72rem;line-height:1.25}
.resource-gallery-copy .representative-note{color:var(--plum)}
.resource-outer-silhouette,.resource-selected-silhouette{cursor:pointer}
.resource-outer-silhouette image,.resource-selected-silhouette image{object-fit:contain;pointer-events:all}
.drawer-silhouette-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin:.65rem 0 1rem;padding:.6rem;border-radius:10px;background:var(--row);max-width:340px}
.drawer-silhouette-wrap .drawer-silhouette{width:76px;height:72px;flex:0 0 76px;object-fit:contain}
.drawer-silhouette-wrap figcaption{color:var(--muted-2);font-size:.76rem;line-height:1.4}
.resource-table-thumb{display:inline-block;width:30px;height:32px;margin-right:.4rem;vertical-align:middle;object-fit:contain}
.catalogue-fold{margin:1.2rem 0 2rem;padding:1rem 1.25rem;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.catalogue-fold>.section-head{align-items:center}
.catalogue-fold h2{margin:0;color:var(--ink);font-family:var(--sans);font-size:1.4rem;font-weight:500}
.catalogue-fold .toolbar{display:flex;align-items:center;gap:.75rem}
@media(max-width:650px){.resource-gallery{padding:1rem .75rem}.resource-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.resource-gallery-card{gap:.45rem;padding:.45rem;min-height:72px}.resource-gallery-art{width:42px;height:48px;flex-basis:42px}.resource-gallery-art img{width:40px;height:44px}.resource-gallery-copy strong{font-size:.77rem}.resource-gallery-copy small{font-size:.66rem}.catalogue-fold>.section-head{align-items:flex-start;flex-direction:column}.catalogue-fold .toolbar{flex-wrap:wrap}}
.resource-gallery-card[data-clade-tone="Plants"]{--card-tone:var(--clade-plants-text)}
.resource-gallery-card[data-clade-tone="Vertebrates"]{--card-tone:var(--clade-vertebrates-text)}
.resource-gallery-card[data-clade-tone="Other animals"]{--card-tone:var(--clade-animals-text)}
.resource-gallery-card[data-clade-tone]{border-color:color-mix(in srgb,var(--card-tone) 30%,var(--line))}
.resource-gallery-card[data-clade-tone]:hover,.resource-gallery-card[data-clade-tone]:focus-visible{border-color:var(--card-tone);outline-color:color-mix(in srgb,var(--card-tone) 30%,transparent)}
.resource-gallery-card[data-clade-tone].selected{border-color:var(--card-tone);box-shadow:inset 3px 0 var(--card-tone)}
