/* Resources: the cover sets the pace; the library stays quick to use. */
.resources-page { --resource-ease: cubic-bezier(.16, 1, .3, 1); }
.resources-page a:focus-visible, .resources-page button:focus-visible { outline: 2px solid #087b64; outline-offset: 5px; }
.resources-page .dark-section a:focus-visible { outline-color: var(--teal); }
.resources-page #biblioteca { scroll-margin-top: calc(var(--header-h) + 1rem); }
.resources-page .catalog-head { margin-bottom: 2.5rem; }
.resources-page .catalog-head h2 { margin: 0; font-size: .8rem; }
.catalog-toolbar { position: sticky; top: var(--header-h); z-index: 12; background: rgba(245,245,242,.97); backdrop-filter: blur(16px); }
.resources-page .resource-filters { position: relative; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); gap: clamp(1rem, 3.5vw, 4rem); }
.resources-page .resource-filters button { position: relative; flex: 0 0 auto; min-width: 0; min-height: 4.5rem; padding: 1.3rem .1rem; color: #626862; font-size: .875rem; letter-spacing: .055em; transition: color .2s ease; }
.resources-page .resource-filters button span { font-size: .75rem; color: #767d76; font-variant-numeric: tabular-nums; }
.resources-page .resource-filters button:hover { color: #050505; }
.resources-page .resource-filters button.is-active { color: #050505; border-color: #087b64; }
.resources-page .resource-filters button.is-active span { color: #087b64; }
.resource-filter-indicator { display: none; position: absolute; bottom: -1px; left: 0; height: 3px; background: #087b64; pointer-events: none; transform-origin: left; }
.resource-filters.has-indicator button.is-active { border-bottom-color: transparent; }
.resource-filters.has-indicator .resource-filter-indicator { display: block; width: var(--indicator-width); transform: translateX(var(--indicator-x)); transition: transform .4s var(--resource-ease), width .4s var(--resource-ease); }
.resource-results-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.resources-page .resource-card-grid { border-top: 0; }
.resources-page .resource-card { position: relative; }
.resources-page .resource-card::after { content: ""; position: absolute; left: 1.5rem; top: 0; right: 1.5rem; height: 2px; background: #087b64; transform: scaleX(0); transform-origin: left; transition: transform .45s var(--resource-ease); pointer-events: none; }
.resources-page .resource-card:focus-within::after { transform: scaleX(1); }
.resources-page .electric-card::after { background: var(--teal); }
.resources-page .resource-card > button, .resources-page .resource-card-link { font-size: .875rem; transition: color .25s ease, border-color .25s ease; }
.resources-page .resource-card-head { font-size: .75rem; line-height: 1.4; }
.resources-page .resource-card-body > p:first-child { font-size: .75rem; }
.resources-page .resource-meta span, .resources-page .cover-top, .resources-page .cover-bottom { font-size: .75rem; }
.resources-page .resource-actions > * { font-size: .875rem; }
.resources-page .resource-cover-featured { transform-origin: center center; }
.resources-page .featured-resource { overflow: clip; }
.resources-page.resources-motion .resource-cover-featured { transform: perspective(1200px) translateY(var(--cover-y, 0px)) rotateY(var(--cover-yaw, 0deg)) rotate(var(--cover-rotation, -2.3deg)) scale(var(--cover-scale, 1)); }
.resources-page.resources-motion .resource-cover-featured::after { content: ""; position: absolute; z-index: 2; inset: -30%; pointer-events: none; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.09) 48%, transparent 61%); transform: translateX(var(--cover-light, -40%)); }

@media (hover: hover) and (pointer: fine) {
  .resources-page .resource-card:hover::after { transform: scaleX(1); }
  .resources-page .resource-card > button:hover, .resources-page .resource-card-link:hover { color: #087b64; border-color: #087b64; }
  .resources-page .electric-card > button:hover, .resources-page .electric-card > .resource-card-link:hover { color: var(--teal); border-color: var(--teal); }
}
@media (prefers-reduced-motion: no-preference) {
  .resources-page .resource-hero-grid h1 { animation: resource-title-in 1s var(--resource-ease) both; }
  .resources-page .resource-hero-copy { animation: resource-copy-in 1s .16s var(--resource-ease) both; }
  @keyframes resource-title-in { from { opacity: .25; transform: translateY(35px); } to { opacity: 1; transform: none; } }
  @keyframes resource-copy-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 700px) {
  .resources-page .catalog-head { align-items: start; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }
  .resources-page .catalog-head > p:last-child { text-align: left; font-size: 1rem; }
  .resources-page .resource-filters { display: grid; grid-template-columns: .65fr 1fr 1.45fr; gap: .65rem; overflow: visible; }
  .resources-page .resource-filters button { min-width: 0; min-height: 4.5rem; padding: .8rem .1rem; font-size: .875rem; line-height: 1.3; letter-spacing: .01em; white-space: normal; }
  .resources-page .resource-filters button span { display: block; margin: .25rem 0 0; }
  .resources-page.resources-motion .resource-cover-featured { transform: rotate(-1.5deg); }
  .resources-page.resources-motion .resource-cover-featured::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .resources-page *, .resources-page *::before, .resources-page *::after { animation: none !important; transition: none !important; }
  .resources-page.resources-motion .resource-cover-featured { transform: rotate(-2.3deg); }
  .resources-page.resources-motion .resource-cover-featured::after { display: none; }
}
@media print {
  .catalog-toolbar { position: static; }
  .resources-page .resource-cover-featured { transform: none !important; }
}
