/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-tracking:initial;--tw-duration:initial}}}.galaxy-hero:where(.astro-e2calspi){text-align:center;background:radial-gradient(ellipse at center, rgba(var(--color-accent), .08) 0%, transparent 70%);border:1px solid rgba(var(--color-border), .4);border-radius:1rem;margin-bottom:3rem;padding:4rem 1rem 3rem;position:relative;overflow:hidden}.stars:where(.astro-e2calspi){background-image:radial-gradient(1px 1px at 10% 20%, rgba(var(--color-accent), .6) 0%, transparent 100%), radial-gradient(1px 1px at 30% 60%, rgba(var(--color-accent), .4) 0%, transparent 100%), radial-gradient(1.5px 1.5px at 50% 15%, rgba(var(--color-accent), .5) 0%, transparent 100%), radial-gradient(1px 1px at 70% 40%, rgba(var(--color-accent), .6) 0%, transparent 100%), radial-gradient(1px 1px at 85% 75%, rgba(var(--color-accent), .3) 0%, transparent 100%), radial-gradient(2px 2px at 20% 80%, rgba(var(--color-accent), .4) 0%, transparent 100%), radial-gradient(1px 1px at 60% 85%, rgba(var(--color-accent), .5) 0%, transparent 100%), radial-gradient(1.5px 1.5px at 90% 10%, rgba(var(--color-accent), .6) 0%, transparent 100%), radial-gradient(1px 1px at 45% 50%, rgba(var(--color-accent), .3) 0%, transparent 100%), radial-gradient(1px 1px at 5% 45%, rgba(var(--color-accent), .5) 0%, transparent 100%);pointer-events:none;animation:4s ease-in-out infinite alternate twinkle;position:absolute;inset:0}@keyframes twinkle{0%{opacity:.6}to{opacity:1}}.galaxy-title:where(.astro-e2calspi){z-index:10;font-size:var(--text-3xl,1.875rem);line-height:var(--tw-leading,var(--text-3xl--line-height,calc(2.25 / 1.875)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);--tw-tracking:var(--tracking-tight,-.025em);letter-spacing:var(--tracking-tight,-.025em);position:relative}@media (width>=640px){.galaxy-title:where(.astro-e2calspi){font-size:var(--text-5xl,3rem);line-height:var(--tw-leading,var(--text-5xl--line-height,1))}}.galaxy-title:where(.astro-e2calspi){margin-bottom:1rem}.galaxy-subtitle:where(.astro-e2calspi){z-index:10;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75 / 1.125)));opacity:.75;max-width:36rem;margin:0 auto;position:relative}.section-header:where(.astro-e2calspi){margin-bottom:1.5rem}.section-title:where(.astro-e2calspi){margin-bottom:.4rem}.section-badge:where(.astro-e2calspi){align-items:center;gap:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:var(--spacing,.25rem);font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);border-radius:3.40282e38px;display:inline-flex}.section-badge:where(.astro-e2calspi).my{background-color:var(--color-skin-accent,rgb(var(--color-accent)));color:var(--color-skin-inverted,rgb(var(--color-fill)))}.section-badge:where(.astro-e2calspi).community{border:2px solid rgb(var(--color-accent));color:var(--color-skin-accent,rgb(var(--color-accent)))}.section-desc:where(.astro-e2calspi){font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:.6;margin-top:.5rem;padding-left:.25rem}.projects-grid:where(.astro-e2calspi){grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}@media (width>=640px){.projects-grid:where(.astro-e2calspi){grid-template-columns:repeat(3,1fr)}.project-card:where(.astro-e2calspi).featured{grid-column:span 2}}.project-card:where(.astro-e2calspi){border-radius:var(--radius-xl,.75rem);padding:calc(var(--spacing,.25rem) * 5);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.2s;border:1px solid rgba(var(--color-border), .5);background:rgba(var(--color-fill), .4);flex-direction:column;gap:.5rem;text-decoration:none;transition-duration:.2s;display:flex}.project-card:where(.astro-e2calspi):hover{border-color:rgb(var(--color-accent));background:rgba(var(--color-accent), .05);box-shadow:0 4px 24px rgba(var(--color-accent), .12);transform:translateY(-2px)}.project-card:where(.astro-e2calspi).featured{background:rgba(var(--color-accent), .04);border-color:rgba(var(--color-accent), .3)}.community-grid:where(.astro-e2calspi){grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}@media (width>=640px){.community-grid:where(.astro-e2calspi){grid-template-columns:repeat(4,1fr)}}.community-card:where(.astro-e2calspi){border-radius:var(--radius-xl,.75rem);padding:calc(var(--spacing,.25rem) * 5);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.2s;border:1px dashed rgba(var(--color-border), .5);background:rgba(var(--color-fill), .2);flex-direction:column;gap:.5rem;text-decoration:none;transition-duration:.2s;display:flex}.community-card:where(.astro-e2calspi):hover{border-style:solid;border-color:rgb(var(--color-accent));background:rgba(var(--color-accent), .05);box-shadow:0 4px 20px rgba(var(--color-accent), .1);transform:translateY(-2px)}.card-top:where(.astro-e2calspi){justify-content:space-between;align-items:center;display:flex}.card-emoji:where(.astro-e2calspi){font-size:1.75rem;line-height:1}.stars-badge:where(.astro-e2calspi){align-items:center;gap:var(--spacing,.25rem);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);background:rgba(var(--color-accent), .15);color:rgb(var(--color-accent));border-radius:3.40282e38px;display:flex}.stars-badge:where(.astro-e2calspi) svg:where(.astro-e2calspi){fill:rgb(var(--color-accent))}.card-name:where(.astro-e2calspi){font-size:var(--text-base,1rem);line-height:var(--tw-leading,var(--text-base--line-height,calc(1.5 / 1)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);margin:0}.card-desc:where(.astro-e2calspi){font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:.7;flex:1;margin:0;line-height:1.5}.card-tags:where(.astro-e2calspi){flex-wrap:wrap;gap:.375rem;margin-top:.25rem;display:flex}.tag:where(.astro-e2calspi){padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));background:rgba(var(--color-accent), .1);color:rgb(var(--color-accent));border-radius:.25rem;font-family:IBM Plex Mono,monospace}.community-tag:where(.astro-e2calspi){background:rgba(var(--color-text-base), .08);color:rgb(var(--color-text-base))}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
