.project-card:where(.astro-mspuyifq){--tw-bg-opacity:1;background-color:rgba(var(--color-card),var(--tw-bg-opacity));border-width:1px;border-color:#0000;border-radius:.75rem;flex-direction:column;height:100%;padding:1rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:flex;position:relative}html[data-theme=light] .project-card:where(.astro-mspuyifq){--tw-bg-opacity:.55}html[data-theme=dark] .project-card:where(.astro-mspuyifq){--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-shadow-color:#0003;--tw-shadow:var(--tw-shadow-colored)}.project-card:where(.astro-mspuyifq):hover{--tw-translate-y:-.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skew(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));--tw-border-opacity:1;border-color:rgba(var(--color-accent),var(--tw-border-opacity));--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}html[data-theme=dark] .project-card:where(.astro-mspuyifq):hover{--tw-shadow-color:#0000004d;--tw-shadow:var(--tw-shadow-colored)}.project-top:where(.astro-mspuyifq){align-items:center;gap:.75rem;display:flex}.project-icon:where(.astro-mspuyifq){--tw-bg-opacity:1;background-color:rgba(var(--color-fill),var(--tw-bg-opacity));-o-object-fit:cover;object-fit:cover;border-radius:.75rem;flex-shrink:0;width:2.75rem;height:2.75rem;transition-property:transform;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.project-card:where(.astro-mspuyifq):hover .project-icon:where(.astro-mspuyifq){--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skew(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.project-heading:where(.astro-mspuyifq){-moz-column-gap:.5rem;flex-wrap:wrap;flex:1;align-items:center;gap:.25rem .5rem;min-width:0;display:flex}.project-title:where(.astro-mspuyifq){--tw-text-opacity:1;color:rgba(var(--color-text-base),var(--tw-text-opacity));min-width:0;text-decoration-line:none}.project-title:where(.astro-mspuyifq) h2:where(.astro-mspuyifq),.project-title:where(.astro-mspuyifq).static{margin:0;font-size:1rem;font-weight:600;line-height:1.5rem}.project-card:where(.astro-mspuyifq):hover .project-title:where(.astro-mspuyifq){--tw-text-opacity:1;color:rgba(var(--color-accent),var(--tw-text-opacity))}.stretched-link:where(.astro-mspuyifq):after{content:"";border-radius:inherit;position:absolute;inset:0}#main-content .project-desc:where(.astro-mspuyifq){-webkit-line-clamp:3;--tw-text-opacity:1;color:rgba(var(--color-text-base),var(--tw-text-opacity));opacity:.8;-webkit-box-orient:vertical;flex:1;margin-top:.75rem;margin-bottom:0;font-size:.75rem;font-style:normal;line-height:1.5;display:-webkit-box;overflow:hidden}.project-tags:where(.astro-mspuyifq){flex-wrap:wrap;gap:.375rem;margin-top:.75rem;padding:0;list-style-type:none;display:flex}.project-tags:where(.astro-mspuyifq) li:where(.astro-mspuyifq){border-width:1px;border-color:rgba(var(--color-text-base),var(--tw-border-opacity));--tw-border-opacity:.15;opacity:.7;border-radius:9999px;padding:.125rem .5rem;font-size:10px}html[data-theme=dark] .project-tags:where(.astro-mspuyifq) li:where(.astro-mspuyifq){border-color:rgb(255 255 255/var(--tw-border-opacity));--tw-border-opacity:.15;background-color:rgb(255 255 255/var(--tw-bg-opacity));--tw-bg-opacity:.05}.projects-list:where(.astro-aid3sr62){grid-template-columns:repeat(1,minmax(0,1fr));gap:1.25rem;margin-top:1.5rem;margin-bottom:4rem;padding:0;list-style-type:none;display:grid}@media (min-width:640px){.projects-list:where(.astro-aid3sr62){grid-template-columns:repeat(2,minmax(0,1fr))}}