.directory-card{border:1px solid var(--soft);background:var(--paper);min-width:0;transition:border-color var(--duration-fast);flex-direction:column;display:flex}.directory-card:hover{border-color:var(--ink)}.directory-card[hidden]{display:none}.directory-card-media{border-bottom:1px solid var(--soft);background:var(--white);margin:0;text-decoration:none;display:block;position:relative;overflow:hidden}.directory-card-media img{object-fit:cover;object-position:top;filter:saturate(.82);width:100%;height:clamp(15rem,18vw,18rem);transition:transform var(--duration-slow) var(--ease), filter var(--duration-base);display:block}.directory-card-media--full img{object-fit:contain;object-position:center}.directory-card-media-label{background:var(--paper);font-size:var(--type-caption);font-weight:var(--weight-medium);transition:transform var(--duration-base) var(--ease);padding:.65rem .85rem;position:absolute;bottom:0;right:0;transform:translateY(105%)}a.directory-card-media:is(:hover,:focus-visible) img{filter:saturate();transform:scale(1.025)}a.directory-card-media:is(:hover,:focus-visible) .directory-card-media-label{transform:translateY(0)}.directory-card-body{flex-direction:column;flex:1;min-height:19rem;padding:1.25rem;display:flex}.directory-card-meta{justify-content:space-between;gap:1rem;margin-bottom:clamp(1rem,2vw,1.5rem);display:flex}.directory-card-body h2{max-width:18ch;font-size:var(--type-title);font-weight:var(--weight-medium);letter-spacing:-.025em;text-wrap:balance;margin:0;line-height:1.05}.directory-card-body>p{max-width:48ch;color:var(--graphite);margin:1rem 0 0;font-size:clamp(.9rem,.25vw + .84rem,1.02rem)}.directory-card-body>.directory-card-credit{color:var(--ink);font-size:var(--type-ui);margin-top:.85rem}.directory-card-credit[hidden]{display:none}.directory-card .directory-card-tags{margin:1.25rem 0 1.5rem}.directory-card-actions{flex-wrap:wrap;gap:1rem 1.5rem;margin-top:auto;display:flex}@media (width<=1050px){.directory-card-media img{height:17rem}}@media (width<=640px){.directory-card-body{min-height:0}.directory-card-media img{height:15rem}.directory-card-actions{margin-top:1rem}}.filter-bar{z-index:20;top:var(--site-header-height);border-bottom:1px solid var(--ink);background:var(--paper);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,1.5vw,1.5rem);margin-bottom:clamp(2.5rem,5vw,4.5rem);padding-block:.55rem .35rem;display:grid;position:sticky}.filter-bar:before{background:var(--paper);content:"";pointer-events:none;height:1rem;position:absolute;bottom:100%;left:0;right:0}.filter-options{background:var(--paper);scrollbar-width:none;align-items:center;gap:clamp(1.25rem,2.25vw,2.5rem);display:flex;overflow:auto hidden}.filter-options::-webkit-scrollbar{display:none}.filter-options button{min-height:3.5rem;color:var(--graphite);cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease);background:0 0;border:0;align-items:center;gap:.45rem;padding:0;display:inline-flex;position:relative}.filter-options button:after{background:var(--ink);content:"";transform-origin:100%;height:2px;transition:transform var(--duration-base) var(--ease);position:absolute;bottom:calc(-.35rem - 1px);left:0;right:0;transform:scaleX(0)}.filter-options button:is(:hover,:focus-visible,[aria-pressed=true]){color:var(--ink)}.filter-options button:is(:hover,:focus-visible,[aria-pressed=true]):after{transform-origin:0;transform:scaleX(1)}.filter-options button span{font-size:var(--type-small);font-weight:var(--weight-semibold)}.filter-options button small,.filter-status{color:var(--graphite);font-family:var(--font-body);font-size:var(--type-ui)}.mobile-filter{display:none}.filter-status{background:var(--paper);white-space:nowrap;margin:0}@media (width<=640px){.filter-bar{border:1px solid var(--soft);gap:1rem;margin-inline:0;padding-block:0;position:relative;top:auto}.filter-bar:before{content:none}.filter-options{display:none}.mobile-filter{min-width:0;display:block;position:relative}.mobile-filter select{appearance:none;width:100%;min-height:52px;color:var(--ink);cursor:pointer;font-size:var(--type-ui);font-weight:var(--weight-semibold);background:0 0;border:0;border-radius:0;padding:0 2.75rem 0 1rem;display:block}.mobile-filter svg{pointer-events:none;position:absolute;top:50%;right:.9rem;transform:translateY(-50%)}.mobile-filter path{fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.5px}.filter-status{border-left:1px solid var(--soft);font-size:var(--type-caption);font-weight:var(--weight-medium);align-self:stretch;align-items:center;padding:0 1rem;display:flex}}
