/* =========================================================================
   ATLAS LIBRARY — STYLESHEET
   Loaded after atlas-styles.css. Uses the same :root tokens declared
   there (colour, type, spacing) — no new tokens are introduced, and
   atlas-styles.css itself is never edited to add Library features.
   ========================================================================= */

/* ---------- library hero (lighter than the main Atlas hero — this is a
   sub-page, not a new front door) ---------- */
.library-hero{
  padding:64px 32px 56px;
  border-bottom:1px solid var(--line);
}
.library-hero-inner{
  max-width:var(--container); margin:0 auto;
}
.library-hero .section-title{margin-bottom:14px;}
.library-subtitle{
  font-family:var(--display); font-size:19px; color:var(--pine);
  font-weight:500; max-width:640px; margin:0 0 16px;
}
.library-intro{font-size:16px; color:var(--ink-soft); max-width:640px; margin:0;}

/* ---------- collections index (jump list) ---------- */
.collections-index{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top:32px;
}
.collections-index a{
  font-family:var(--mono); font-size:12px; letter-spacing:0.04em;
  border:1px solid var(--line); border-radius:var(--radius);
  padding:9px 14px; color:var(--ink-soft);
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.collections-index a:hover{border-color:var(--pine); color:var(--pine);}

/* ---------- featured strip ---------- */
.section-featured{background:var(--paper-dim);}
.section-featured.is-empty{display:none;}

/* ---------- collection blocks ---------- */
.collection-block{padding:72px 0;}
.collection-block:nth-child(even){background:var(--paper-dim);}
.collection-head{
  display:flex; align-items:baseline; gap:16px; margin-bottom:8px;
}
.collection-coord{font-family:var(--mono); font-size:12px; color:var(--clay);}
.collection-title{font-family:var(--display); font-size:clamp(24px,3vw,32px); margin:0;}
.collection-purpose{font-size:15px; color:var(--ink-soft); max-width:600px; margin:10px 0 36px;}

.resource-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.resource-card{
  padding:22px; border:1px solid var(--line); background:var(--paper);
  display:flex; flex-direction:column; gap:10px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.resource-card:hover{transform:translateY(-3px); box-shadow:0 12px 26px -18px rgba(32,38,28,0.35); border-color:var(--sage);}
.resource-meta-row{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.resource-badge{
  font-family:var(--mono); font-size:10px; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--clay); border:1px solid var(--line); border-radius:var(--radius);
  padding:3px 8px;
}
.resource-badge.level{color:var(--slate);}
.resource-badge.status-forthcoming{color:var(--sage);}
.resource-title{font-family:var(--display); font-size:17px; margin:0;}
.resource-desc{font-size:13.5px; color:var(--ink-soft); margin:0;}
.resource-footer{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:auto; padding-top:8px; font-size:11px; color:var(--sage);
}
.resource-link-out{color:var(--pine); font-size:12px;}
.resource-link-out:hover{text-decoration:underline;}

/* ---------- resource card: details list ---------- */
.resource-details{margin:2px 0 0; display:flex; flex-direction:column; gap:4px;}
.resource-details div{display:flex; gap:6px; font-size:11px;}
.resource-details dt{color:var(--sage); margin:0; flex:0 0 auto;}
.resource-details dt::after{content:":";}
.resource-details dd{color:var(--ink-soft); margin:0;}

/* ---------- resource card: documentary photo gallery ---------- */
.resource-gallery{
  display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:4px;
}
.resource-gallery figure{margin:0;}
.resource-gallery img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border:1px solid var(--line); border-radius:var(--radius);
  display:block;
}
.resource-gallery figcaption{
  font-size:10.5px; color:var(--sage); margin-top:5px; line-height:1.3;
}

/* ---------- resource card: related resources ---------- */
.resource-related{
  margin-top:10px; padding-top:10px; border-top:1px solid var(--line);
  font-size:11px; display:flex; flex-wrap:wrap; gap:6px 10px; align-items:baseline;
}
.resource-related-label{color:var(--sage);}
.resource-related a{color:var(--pine);}
.resource-related a:hover{text-decoration:underline;}

/* ---------- empty state ---------- */
.collection-empty{
  border:1px dashed var(--line); border-radius:var(--radius);
  padding:28px; max-width:640px;
  font-size:14px; color:var(--ink-soft); background:transparent;
}
.collection-empty .mono{color:var(--clay); font-size:11px; display:block; margin-bottom:8px;}

/* ---------- back-to-atlas footer note ---------- */
.library-return{padding:56px 0 0;}
.library-return a{color:var(--pine); border-bottom:1px solid var(--line);}
.library-return a:hover{border-color:var(--pine);}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .resource-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  .resource-grid{grid-template-columns:1fr;}
  .collection-block{padding:52px 0;}
  .library-hero{padding:48px 22px 40px;}
  .collection-head{flex-wrap:wrap;}
}
