[hidden]{display:none!important}
:root{--paper:#f4f3ed;--ink:#171916;--muted:#696d65;--line:rgba(23,25,22,.2);--wash:#e9e8e0;--acid:#dfe87a;--orange:#e7583e;--forest:#56644e;--display:Futura,"Futura PT",Jost,"Avenir Next",sans-serif;--mono:"IBM Plex Mono",monospace;--joint-forward:0 1.35rem 0 1.35rem;--joint-reverse:1.35rem 0 1.35rem 0}

/* A compact editorial index: brand-adjacent, but purpose-built for scanning. */
.hero{min-height:clamp(24rem,40vh,31rem);grid-template-columns:minmax(0,1fr) minmax(16rem,.36fr);align-items:center;padding:clamp(3rem,6vw,5.5rem) 0 clamp(2.8rem,5vw,4.5rem)}
.hero h1{max-width:11ch;font-size:clamp(3.4rem,6.65vw,7.15rem);line-height:.87}
.hero__aside{align-self:end;padding-bottom:.2rem}
.hero__aside>p{max-width:31rem}
.orbit{right:20%;top:9%;opacity:.72;pointer-events:none}
.library{padding-top:0}

/* One sticky instrument replaces the previous stacked search/filter bars. */
.filter-dock{position:sticky;z-index:30;top:0;display:grid;grid-template-columns:minmax(17rem,1.35fr) minmax(31rem,2.2fr) auto;align-items:stretch;margin-inline:0;border:1px solid var(--ink);border-radius:var(--joint-forward);overflow:hidden;background:var(--paper)}
.filter-dock.is-scrolled{background:color-mix(in srgb,var(--paper) 96%,var(--acid))}
.filter-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;min-width:0;padding:.65rem clamp(.8rem,1.6vw,1.35rem);border-right:1px solid var(--line)}
.filter-search label,.filter-controls label>span{color:var(--muted);font:400 .47rem var(--mono);letter-spacing:.08em;white-space:nowrap}
.filter-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--ink);font:600 clamp(.76rem,1vw,.92rem) var(--display);outline:none}
.filter-search input::placeholder{color:color-mix(in srgb,var(--muted) 66%,transparent)}
.filter-search:focus-within{background:color-mix(in srgb,var(--acid) 18%,var(--paper))}
.filter-search button,.filter-actions button{border:0;background:transparent;color:var(--muted);font:500 .5rem var(--mono);cursor:pointer;white-space:nowrap}
.filter-search button:hover,.filter-actions button:hover{color:var(--orange)}
.filter-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}
.filter-controls label{display:grid;gap:.18rem;align-content:center;min-width:0;padding:.58rem clamp(.55rem,1.15vw,1.05rem);border-right:1px solid var(--line)}
.filter-controls select{width:100%;min-width:0;border:0;background:transparent;color:var(--ink);font:600 .64rem var(--display);text-overflow:ellipsis;outline:none;cursor:pointer}
.filter-actions{display:flex;align-items:center;gap:.8rem;padding-inline:clamp(.7rem,1.2vw,1.1rem)}
.filter-actions b{color:var(--orange);font:500 .5rem var(--mono);white-space:nowrap}
#back-to-top{display:grid;width:1.75rem;aspect-ratio:1;place-items:center;border:1px solid var(--line);border-radius:50%;opacity:.35;transition:opacity 180ms ease,border-color 180ms ease,color 180ms ease}
.filter-dock.is-scrolled #back-to-top{border-color:var(--ink);color:var(--orange);opacity:1}

.catalog-layout{display:block;padding-top:clamp(2.8rem,5vw,4.8rem)}
.results{width:100%}
.results-head{scroll-margin-top:5rem}
.results-head{padding-bottom:1.15rem;border-bottom:1px solid var(--ink)}
.cards{display:grid;grid-template-columns:repeat(var(--column-count,4),minmax(0,1fr));gap:.72rem;align-items:start;padding-top:.72rem;border:0;overflow:visible}
.card-column{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:.72rem}
.resource-card{width:100%;height:auto;min-height:0;overflow:hidden;align-self:stretch;border:1px solid var(--line);border-radius:var(--joint-forward);background:var(--paper);transition:border-color 180ms ease,background-color 180ms ease}
.card-column:nth-child(even) .resource-card:nth-child(3n),.card-column:nth-child(odd) .resource-card:nth-child(4n){border-radius:var(--joint-reverse)}
.resource-card:hover,.resource-card:focus-within{z-index:auto;border-color:var(--ink);background:color-mix(in srgb,var(--acid) 16%,var(--paper));outline:0}
.resource-card__link{display:flex;min-height:0}
.resource-card h3{margin:clamp(1.7rem,2.8vw,3rem) 0 .85rem}
.resource-card p{-webkit-line-clamp:3}
.resource-card--short p{-webkit-line-clamp:2}
.resource-card--medium p{-webkit-line-clamp:4}
.resource-card--long p{-webkit-line-clamp:6}
.resource-card__meta{margin-top:clamp(1.7rem,2.8vw,3rem);padding-top:0}
.resource-card--signal{border-color:color-mix(in srgb,var(--forest) 62%,var(--line));background:color-mix(in srgb,var(--acid) 52%,var(--paper))}
.resource-card--enter{opacity:0;transform:translate3d(0,16px,0);animation:card-arrive 520ms cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--enter-delay,0ms);will-change:transform,opacity}
@keyframes card-arrive{to{opacity:1;transform:translate3d(0,0,0)}}
.stream-loader{display:flex;min-height:7rem;align-items:center;justify-content:center;gap:.8rem;border-bottom:1px solid var(--ink);color:var(--muted);font:400 .54rem var(--mono);letter-spacing:.04em;overflow-anchor:none}
.stream-loader i{width:.48rem;aspect-ratio:1;border-radius:50%;background:var(--orange);animation:stream-pulse 1.3s ease-in-out infinite}
.stream-loader--complete i{background:var(--forest);animation:none}
@keyframes stream-pulse{50%{transform:scale(.45);opacity:.35}}

@media(max-width:1180px){.filter-dock{grid-template-columns:minmax(14rem,1fr) minmax(26rem,2fr) auto}.filter-actions b{display:none}.cards{--column-count:3}}
@media(max-width:840px){
  .hero{grid-template-columns:1fr;min-height:auto;padding:3.5rem 0 3rem}
  .hero h1{font-size:clamp(3rem,11vw,5rem)}
  .hero__aside{max-width:34rem;padding-top:2.2rem}
  .orbit{right:-5%;top:5%;opacity:.28}
  .filter-dock{grid-template-columns:minmax(0,1fr) auto}
  .filter-search{border-right:0}
  .filter-controls{grid-column:1/-1;grid-row:2;border-top:1px solid var(--line)}
  .filter-controls label{padding:.55rem .7rem}
  .filter-actions{grid-column:2;grid-row:1;padding-left:0}
  .filter-actions b{display:block}
  .cards{--column-count:2}
}
@media(max-width:520px){
  :root{--page:min(calc(100% - 2rem),96rem)}
  .topbar nav a:not(:last-child){display:none}
  .hero{padding:2.75rem 0 2.5rem}
  .hero h1{max-width:9ch;font-size:clamp(2.85rem,13vw,4rem);line-height:.9}
  .hero__aside{padding-top:1.8rem}
  .hero dl{margin-top:1.5rem}
  .orbit{display:none}
  .filter-dock{margin-inline:0;border-radius:0 1rem 0 1rem}
  .filter-search{padding:.72rem 1rem}
  .filter-search label{display:none}
  .filter-search input{font-size:.82rem}
  .filter-actions{gap:.55rem;padding-right:1rem}
  .filter-actions b{font-size:.46rem}
  .filter-actions #reset-filters{display:none}
  .filter-controls label{padding:.55rem .45rem}
  .filter-controls label>span{font-size:.42rem}
  .filter-controls select{font-size:.56rem}
  .catalog-layout{padding-top:2.6rem}
  .cards{--column-count:1}
  .stream-loader{min-height:5.5rem;padding-inline:1rem;text-align:center}
}
@media(prefers-reduced-motion:reduce){.resource-card--enter{opacity:1;transform:none;animation:none}}
