.project-card[data-v-249d3764]{z-index:0;display:block;position:relative}.project-card[data-v-249d3764]:before{box-shadow:inset 0 0 0 2px var(--color-neutral-300);z-index:3}.project-card[data-v-249d3764]:after,.project-card[data-v-249d3764]:before{content:"";aspect-ratio:12/9;corner-shape:superellipse(1.4);opacity:0;pointer-events:none;border-radius:1.5rem;width:100%;transition:opacity .6s;position:absolute;top:0;left:0}.project-card[data-v-249d3764]:after{z-index:-1;box-shadow:12px 12px 24px #00000080}.project-card[data-v-249d3764]:hover:after,.project-card[data-v-249d3764]:hover:before{opacity:1;transition-duration:75ms}.project-thumb[data-v-249d3764]{aspect-ratio:12/9;corner-shape:superellipse(1.4);z-index:1;border-radius:1.5rem;position:relative;overflow:hidden}.project-thumb-img[data-v-249d3764]{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.project-card:hover .project-thumb-img[data-v-249d3764]{transform:scale(1.05)}.project-info[data-v-249d3764]{z-index:2;flex-direction:column;align-items:flex-start;padding:.6rem .25rem 0;display:flex;position:relative}@media (width>=768px){.project-info[data-v-249d3764]{corner-shape:superellipse(1.4);opacity:0;background:linear-gradient(#0000,#0000002e 22%,#0009 55%,#000000e6);border-radius:0 0 1.5rem 1.5rem;justify-content:flex-end;align-items:center;gap:.8rem;padding:0 1.25rem 1.6rem;transition:opacity .5s cubic-bezier(.3,0,.5,1);position:absolute;inset:50% 0 0}.project-card:hover .project-info[data-v-249d3764]{opacity:1}.project-info--compact .project-title[data-v-249d3764]{font-size:clamp(1.31rem,2.81vw,1.75rem)}}.project-text[data-v-249d3764]{flex-direction:column;align-items:flex-start;gap:.2rem;display:flex}.project-title[data-v-249d3764]{font-family:var(--font-sans);color:var(--ui-text);text-align:left;font-size:clamp(1.25rem,5vw,1.75rem);font-style:normal;font-weight:900;line-height:1.3}@media (width>=768px){.project-text[data-v-249d3764]{opacity:0;align-items:center;transition:opacity .5s cubic-bezier(.3,0,.5,1),transform .5s cubic-bezier(.3,0,.5,1);transform:translateY(20px)}.project-card:hover .project-text[data-v-249d3764]{opacity:1;transform:translateY(0)}.project-title[data-v-249d3764]{font-family:var(--font-sans);color:#fff;text-align:center;text-shadow:0 1px 6px #00000080;font-size:clamp(1.1rem,3.75vw,2.1rem);font-style:normal}}.project-tags[data-v-249d3764]{display:none}@media (width>=768px){.project-tags[data-v-249d3764]{opacity:0;flex-wrap:wrap;justify-content:center;gap:.35rem;transition:opacity .5s cubic-bezier(.3,0,.5,1),transform .5s cubic-bezier(.3,0,.5,1);display:flex;transform:translateY(20px)}.project-card:hover .project-tags[data-v-249d3764]{opacity:1;transform:translateY(0)}}.project-tag[data-v-249d3764]{letter-spacing:.06em;color:var(--color-mauve-900);background:#ffffffe6;border-radius:9999px;padding:.18rem .58rem;font-size:.65rem;font-weight:700}.project-rule[data-v-249d3764]{display:none}.project-description[data-v-249d3764]{color:var(--ui-text-muted);text-align:left;font-size:.875rem;font-weight:400;line-height:1.3}@media (width>=768px){.project-description[data-v-249d3764]{display:none}}@media (width>=768px) and (prefers-reduced-motion:reduce){.project-card[data-v-249d3764]:after,.project-card[data-v-249d3764]:before,.project-info[data-v-249d3764],.project-tags[data-v-249d3764],.project-text[data-v-249d3764],.project-thumb-img[data-v-249d3764]{transition:none}.project-info[data-v-249d3764],.project-tags[data-v-249d3764],.project-text[data-v-249d3764]{opacity:1;transform:none}.project-card:hover .project-thumb-img[data-v-249d3764]{transform:none}}.project-grid[data-v-9b29c770]{grid-template-columns:1fr;gap:1.5rem;display:grid}.page-title[data-v-9b29c770]{margin-bottom:2rem;font-size:1.875rem;font-weight:700}@media (width>=640px){.project-grid[data-v-9b29c770]{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.project-grid[data-v-9b29c770]{grid-template-columns:repeat(6,1fr)}.project-card[data-v-9b29c770]:nth-child(-n+4){grid-column:span 3}.project-card[data-v-9b29c770]:nth-child(n+5){grid-column:span 2}}.button-container[data-v-9b29c770]{flex-direction:row;justify-content:start;margin:2rem 0 6rem auto;display:flex}
