.project-card[data-astro-cid-bpe6dwhu]{a{display:block;position:relative;overflow:clip;aspect-ratio:3 / 4;text-decoration:none;color:inherit;animation:project-card-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 30%;&:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:40%;pointer-events:none;opacity:0;will-change:opacity;z-index:1;transition:opacity .3s var(--ease-smooth, ease);background:linear-gradient(0deg,rgba(0,0,0,.7) 0%,transparent 100%)}}figure{position:absolute;inset:0;margin:0;isolation:isolate;&:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:light-dark(var(--accent-light),var(--accent-dark));animation:skeleton-pulse 2.5s ease-in-out infinite}img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.05);will-change:transform;transition:transform .3s ease,filter .3s ease}}&.loaded figure[data-astro-cid-bpe6dwhu]:after{animation:none;content:none}.info{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1rem;pointer-events:none;z-index:2;color:var(--foreground-dark);gap:.25rem;.title-mask{overflow:clip}.title{position:relative;transform:translateY(100%);will-change:transform;z-index:3;transition:transform .3s var(--ease-out, ease);font-weight:500;font-size:var(--text-2xl);text-align:center}.location{position:relative;opacity:0;will-change:opacity;z-index:3;transition:opacity .3s var(--ease-out, ease);font-size:var(--text-sm);color:var(--foreground-dim-dark);text-align:center}}&:hover,&:has(a:focus-visible){z-index:6;a:before{opacity:1}.info .title{transform:translateY(0)}.info .location{opacity:1}}&[hidden]{display:none}}@media(prefers-reduced-motion:reduce){.project-card[data-astro-cid-bpe6dwhu]{a:before{opacity:1;transition:none}figure img{transform:none;transition:none}.info .title{transform:none;transition:none}.info .location{opacity:1;transition:none}}}@media(max-width:767px){.project-card[data-astro-cid-bpe6dwhu] .info[data-astro-cid-bpe6dwhu]{padding:16px;gap:4px;.title{font-size:20px}.location{font-size:14px}}}.project-filters[data-astro-cid-4ojt74xd]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--gap)}.search-wrapper[data-astro-cid-4ojt74xd]{max-width:min(100%,400px);flex:1 0 auto}.sort-wrapper[data-astro-cid-4ojt74xd]{@media(max-width:467px){select>button selectedcontent{display:none}}}input[data-astro-cid-4ojt74xd][type=search]::-webkit-search-cancel-button{-webkit-appearance:none;width:.75rem;height:.75rem;cursor:pointer;background:light-dark(var(--foreground-light),var(--foreground-dark));mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") center / contain no-repeat;opacity:.65;transition:opacity .2s ease;&:hover{opacity:1}}input[data-astro-cid-4ojt74xd][type=search]{width:100%;height:2.5rem;padding-inline:.75rem;font-size:var(--text-base);line-height:var(--text-base);background:transparent;border:1px solid light-dark(var(--border-light),var(--border-dark));outline:none;transition:border-color .2s ease;&:focus{border-color:light-dark(var(--foreground-light),var(--foreground-dark))}&::placeholder{color:light-dark(var(--foreground-dim-light),var(--foreground-dim-dark))}}@media(max-width:467px){selectedcontent[data-astro-cid-4ojt74xd]{display:none}}@media(prefers-reduced-motion:reduce){input[data-astro-cid-4ojt74xd][type=search]{transition:none}}.projects-page{min-height:calc(100vh - var(--header-height))}.page-header{>*{animation:fade-in .75s var(--ease-out, ease) both calc(sibling-index()*.1s + .75s)}.intro{display:flex;flex-direction:column;gap:1rem;max-width:75ch}@media(max-width:467px){.filters-wrapper{margin-block-start:var(--gutter)}}}.projects-grid{margin-block-start:var(--gutter);display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--gap-xxs);>:not(.empty-state){--_si: sibling-index();animation:card-slide-in .75s var(--ease-out, ease) calc(var(--_si) * .1s) both}@media(max-width:467px){grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr))}}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding-block:6rem;color:var(--muted-foreground);font-size:var(--text-lg);animation:none;&[hidden]{display:none}}@media(min-width:768px){.projects-grid:has(.project-card:hover,.project-card a:focus-visible) .project-card:not(:hover):not(:has(a:focus-visible)){figure img{filter:grayscale(1)}}}.projects-grid:has(.project-card:hover,.project-card a:focus-visible) .project-card:not(:hover):not(:has(a:focus-visible)){figure img{transform:scale(1)}}::view-transition-group(*){animation-duration:.5s;animation-timing-function:var(--ease-smooth, ease)}::view-transition-old(*),::view-transition-new(*){animation-duration:.25s;mix-blend-mode:normal}@keyframes card-slide-in{0%{opacity:0;transform:translateY(50%)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){::view-transition-group(*){animation-duration:0}.page-header{h1,.filters-wrapper{animation:none}}.projects-grid>*{animation:none}.projects-grid:has(.project-card:hover,.project-card a:focus-visible) .project-card:not(:hover):not(:has(a:focus-visible)) figure img{transform:none;filter:none}}
