.languages[data-astro-cid-klrt5dbh]{align-items:center;display:inline-flex}button[data-astro-cid-klrt5dbh]{min-width:44px;min-height:44px;color:var(--color-focus);letter-spacing:.04em;place-items:center;font-size:12px;font-weight:500;transition:color .16s;display:grid;position:relative}button[data-astro-cid-klrt5dbh]:after{content:"";opacity:0;background:currentColor;width:20px;height:1px;transition:opacity .16s;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}button[data-astro-cid-klrt5dbh][aria-pressed=true]{color:var(--color-text)}button[data-astro-cid-klrt5dbh][aria-pressed=true]:after{opacity:1}button[data-astro-cid-klrt5dbh]:focus-visible{outline:1px solid var(--color-focus);outline-offset:-2px}@media (hover:hover){button[data-astro-cid-klrt5dbh]:hover{color:var(--color-text)}}@media (prefers-reduced-motion:reduce){button[data-astro-cid-klrt5dbh],button[data-astro-cid-klrt5dbh]:after{transition:none}}:root{--edge:24px;--rail:160px;--rail-gap:32px;--card-gap:40px}.desktop-rail{display:none}.catalogue-layout{min-height:100svh}.mobile-header{z-index:1;padding:0 var(--edge);background:var(--color-background);position:sticky;top:0}.mobile-header-row{justify-content:space-between;align-items:center;min-height:64px;display:flex}.mobile-header-row,#mobile-menu{max-width:1152px;margin-inline:auto}.mobile-header-row a,.menu-toggle{align-items:center;min-height:44px;display:flex}#mobile-menu{padding-bottom:16px}#mobile-menu nav{flex-direction:column;display:flex}#mobile-menu a{align-items:center;min-height:44px;display:flex}.catalogue{width:calc(100% - 2 * var(--edge));max-width:1152px;margin-inline:auto;container-type:inline-size}.filters{display:flex}.filters button{align-items:center;gap:8px;max-width:100%;min-height:44px;display:flex}.filters button[aria-pressed=true]{font-weight:700}.filter-clear{text-align:center;flex-shrink:0;width:12px}.mobile-filters{flex-wrap:wrap;column-gap:16px;margin-bottom:16px}.project-grid{gap:var(--card-gap);grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}.project-card{min-width:0}.project-card a{display:block}.project-preview{aspect-ratio:4/3}.project-caption{flex-direction:column;gap:4px;padding-top:8px;display:flex}.mobile-footer{margin:40px var(--edge) 24px}@media (width>=640px){.project-grid{gap:var(--card-gap);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.project-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project-card{grid-column:span var(--span)}.project-preview{height:calc((100cqw - 3 * var(--card-gap)) * 3 / 8);aspect-ratio:auto}}@media (width>=1280px){:root{--edge:48px;--rail:144px;--rail-gap:48px}.catalogue-layout{grid-template-columns:var(--rail) minmax(0, 1fr) var(--rail);gap:var(--rail-gap);max-width:1696px;padding-inline:var(--edge);margin-inline:auto;display:grid}.mobile-header,.mobile-filters,.mobile-footer{display:none}.desktop-rail{height:100svh;padding-block:var(--edge);flex-direction:column;justify-content:space-between;align-self:start;display:flex;position:sticky;top:0}.right-rail{align-items:flex-end}.brand{align-items:center;min-height:44px;display:flex}.left-rail .filters{flex-direction:column;align-items:flex-start;margin-top:40px}.left-rail>a{align-items:center;min-height:44px;display:flex}.catalogue{width:auto;min-width:0;max-width:none;margin:var(--edge) 0}}@media (hover:hover) and (pointer:fine){.project-card a{position:relative}.project-caption{visibility:hidden;opacity:0;background:var(--color-overlay);color:var(--color-on-overlay);text-align:center;justify-content:center;align-items:center;padding:24px;transition:opacity .28s,visibility .28s;position:absolute;inset:0}.project-caption span{transition:transform .28s;transform:translateY(8px)}.project-card a:hover .project-caption,.project-card a:focus-visible .project-caption{visibility:visible;opacity:1}.project-card a:hover .project-caption span,.project-card a:focus-visible .project-caption span{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.project-caption,.project-caption span{transition:none}.project-caption span{transform:none}}@media (width<=399px){:root{--edge:16px}.mobile-filters{column-gap:12px}}
