github-contributions:where(.astro-nznuvqpk){display:block;margin-top:2rem;--contribution-0:hsl(var(--muted));--contribution-1:#9be9a8;--contribution-2:#40c463;--contribution-3:#30a14e;--contribution-4:#216e39;--cell:10px;--gap:3px}.dark github-contributions:where(.astro-nznuvqpk){--contribution-1:#0e4429;--contribution-2:#006d32;--contribution-3:#26a641;--contribution-4:#39d353}.contribution-heading:where(.astro-nznuvqpk){display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}h2:where(.astro-nznuvqpk){margin:0;font-size:1.5rem;font-weight:500}.demo-badge:where(.astro-nznuvqpk){font-size:.7rem;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));border-radius:999px;padding:.2rem .65rem}.contribution-heading:where(.astro-nznuvqpk) a:where(.astro-nznuvqpk){font-size:.75rem;color:hsl(var(--muted-foreground));text-decoration:none;white-space:nowrap}.contribution-panel:where(.astro-nznuvqpk){border:1px solid hsl(var(--border));border-radius:.75rem;padding:1.2rem;min-width:0}.contribution-summary:where(.astro-nznuvqpk){display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;font-size:.8rem;color:hsl(var(--muted-foreground))}p:where(.astro-nznuvqpk){margin:0}strong:where(.astro-nznuvqpk){font-size:1.6rem;color:hsl(var(--foreground));font-weight:500;margin-right:.3rem}.period:where(.astro-nznuvqpk){margin-left:.75rem}.calendar-scroll:where(.astro-nznuvqpk){overflow-x:auto;padding:4px 2px 10px;scrollbar-width:thin}.mobile-calendar-hint:where(.astro-nznuvqpk){display:none;font-size:.65rem;color:hsl(var(--muted-foreground));margin-bottom:.4rem}.calendar-layout:where(.astro-nznuvqpk){display:flex;gap:.5rem;min-width:max-content}.weekday-labels:where(.astro-nznuvqpk){display:flex;flex-direction:column;gap:calc(var(--cell) + 2 * var(--gap));padding-top:calc(20px + var(--cell) + var(--gap));font-size:9px;line-height:var(--cell);color:hsl(var(--muted-foreground))}.calendar-body:where(.astro-nznuvqpk){min-width:0}.month-labels:where(.astro-nznuvqpk){display:grid;grid-template-columns:repeat(var(--columns),var(--cell));gap:var(--gap);height:20px;font-size:10px;line-height:15px;color:hsl(var(--muted-foreground))}.month-labels:where(.astro-nznuvqpk) span:where(.astro-nznuvqpk){white-space:nowrap}.contribution-grid:where(.astro-nznuvqpk){display:grid;grid-template-rows:repeat(7,var(--cell));grid-auto-columns:var(--cell);grid-auto-flow:column;gap:var(--gap)}.contribution-grid:where(.astro-nznuvqpk) button:where(.astro-nznuvqpk),.legend:where(.astro-nznuvqpk) i:where(.astro-nznuvqpk){background:var(--contribution-0);border-radius:2px;box-shadow:inset 0 0 0 1px #7f7f7f1f}.contribution-grid:where(.astro-nznuvqpk) button:where(.astro-nznuvqpk){display:block;width:var(--cell);height:var(--cell);padding:0;border:0;cursor:pointer}:where(.astro-nznuvqpk)[data-level="1"]{background:var(--contribution-1)!important}:where(.astro-nznuvqpk)[data-level="2"]{background:var(--contribution-2)!important}:where(.astro-nznuvqpk)[data-level="3"]{background:var(--contribution-3)!important}:where(.astro-nznuvqpk)[data-level="4"]{background:var(--contribution-4)!important}.contribution-grid:where(.astro-nznuvqpk) button:where(.astro-nznuvqpk):hover,.contribution-grid:where(.astro-nznuvqpk) button:where(.astro-nznuvqpk):focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:1px}.calendar-footer:where(.astro-nznuvqpk),.contribution-source:where(.astro-nznuvqpk){display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:hsl(var(--muted-foreground));font-size:.7rem;line-height:1.8}.legend:where(.astro-nznuvqpk){display:flex;align-items:center;gap:3px;white-space:nowrap}.legend:where(.astro-nznuvqpk) i:where(.astro-nznuvqpk){width:10px;height:10px;display:inline-block}.contribution-source:where(.astro-nznuvqpk){margin-top:1rem;padding-top:.8rem;border-top:1px solid hsl(var(--border))}.refresh-contributions:where(.astro-nznuvqpk){flex-shrink:0;background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-radius:.5rem;padding:.45rem .65rem;font-size:.7rem;cursor:pointer}.refresh-contributions:where(.astro-nznuvqpk):hover{background:hsl(var(--muted))}.refresh-contributions:where(.astro-nznuvqpk):disabled{opacity:.5;cursor:wait}.contribution-status:where(.astro-nznuvqpk){font-size:.7rem;color:hsl(var(--muted-foreground));margin-top:.6rem}@media(max-width:639px){.contribution-panel:where(.astro-nznuvqpk){padding:.8rem}.calendar-footer:where(.astro-nznuvqpk){align-items:flex-start;flex-direction:column}.contribution-source:where(.astro-nznuvqpk){align-items:flex-start;flex-wrap:wrap}.mobile-calendar-hint:where(.astro-nznuvqpk){display:block}}.profile-intro:where(.astro-ksatznww){display:flex;align-items:center;gap:1rem;padding:1.25rem;border:1px solid hsl(var(--border));border-radius:.75rem}.profile-intro:where(.astro-ksatznww) img:where(.astro-ksatznww){width:64px;height:64px;border-radius:50%;flex-shrink:0}.profile-name:where(.astro-ksatznww){color:hsl(var(--foreground));font-weight:500;font-size:1.1rem;text-decoration:none}.profile-name:where(.astro-ksatznww) span:where(.astro-ksatznww){font-size:.8rem;font-weight:400;color:hsl(var(--muted-foreground));margin-left:.5rem}.profile-intro:where(.astro-ksatznww) p:where(.astro-ksatznww){font-size:.875rem;line-height:1.7;color:hsl(var(--muted-foreground));margin:.5rem 0 0}.directions:where(.astro-ksatznww){margin-top:2rem}h2:where(.astro-ksatznww){font-size:1.5rem;font-weight:500;margin:0 0 1rem}.direction-grid:where(.astro-ksatznww){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:.85rem}.direction-card:where(.astro-ksatznww){border:1px solid hsl(var(--border));border-radius:.75rem;padding:1.1rem;display:flex;flex-direction:column;gap:.75rem}.direction-eyebrow:where(.astro-ksatznww){display:flex;align-items:center;gap:.6rem;color:hsl(var(--muted-foreground));font-size:.65rem;margin:0}.direction-eyebrow:where(.astro-ksatznww) span:where(.astro-ksatznww){color:hsl(var(--primary));font-family:var(--font-mono);font-size:.75rem}h3:where(.astro-ksatznww){font-size:1.1rem;font-weight:500;margin:0}.direction-description:where(.astro-ksatznww){color:hsl(var(--muted-foreground));font-size:.8rem;line-height:1.8;flex:1;margin:0}ul:where(.astro-ksatznww){display:flex;flex-wrap:wrap;gap:.3rem;padding:0;margin:0;list-style:none}li:where(.astro-ksatznww){padding:.2rem .45rem;border-radius:.35rem;background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-size:.65rem}.github-source:where(.astro-ksatznww){border-top:1px solid hsl(var(--border));margin-top:2rem;padding-top:1rem}summary:where(.astro-ksatznww){cursor:pointer;color:hsl(var(--muted-foreground));font-size:.8rem}summary:where(.astro-ksatznww) span:where(.astro-ksatznww){font-size:.7rem;margin-left:.5rem}@media(max-width:639px){.profile-intro:where(.astro-ksatznww){padding:1rem;align-items:flex-start}.profile-intro:where(.astro-ksatznww) img:where(.astro-ksatznww){width:48px;height:48px}.profile-name:where(.astro-ksatznww) span:where(.astro-ksatznww){display:block;margin:.25rem 0 0}}.portfolio:where(.astro-soecmkh2){margin:2.5rem 0}.eyebrow:where(.astro-soecmkh2){font-size:.65rem;letter-spacing:.12em;color:hsl(var(--muted-foreground))}h2:where(.astro-soecmkh2){font-size:1.5rem;font-weight:500;margin:.6rem 0}.intro:where(.astro-soecmkh2),.result:where(.astro-soecmkh2){color:hsl(var(--muted-foreground));font-size:.85rem;line-height:1.8}.filters:where(.astro-soecmkh2){display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 .8rem}button:where(.astro-soecmkh2){display:flex;align-items:center;gap:.5rem;border:1px solid hsl(var(--border));border-radius:2rem;padding:.45rem .8rem;font-size:.8rem}button:where(.astro-soecmkh2) span:where(.astro-soecmkh2){font-size:.65rem;opacity:.7}button:where(.astro-soecmkh2)[aria-pressed=true]{background:hsl(var(--foreground));color:hsl(var(--background));border-color:hsl(var(--foreground))}button:where(.astro-soecmkh2):focus-visible,.project-link:where(.astro-soecmkh2):focus-visible{outline:2px solid hsl(var(--primary));outline-offset:4px}.result:where(.astro-soecmkh2){margin:0 0 1rem;font-size:.75rem}.project-grid:where(.astro-soecmkh2){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-card:where(.astro-soecmkh2){border:1px solid hsl(var(--border));border-radius:.8rem;overflow:hidden;transition:border-color .2s,transform .2s}.project-card:where(.astro-soecmkh2)[hidden]{display:none}.project-card:where(.astro-soecmkh2):hover{border-color:hsl(var(--muted-foreground));transform:translateY(-2px)}.project-link:where(.astro-soecmkh2){display:flex;height:100%;flex-direction:column;color:inherit;text-decoration:none}.cover:where(.astro-soecmkh2){aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:hsl(var(--muted));border-bottom:1px solid hsl(var(--border));overflow:hidden}.cover:where(.astro-soecmkh2) img:where(.astro-soecmkh2){width:100%;height:100%;object-fit:contain;background:#fff;padding:.6rem}.cover:where(.astro-soecmkh2) span:where(.astro-soecmkh2){font-size:1.2rem;color:hsl(var(--muted-foreground))}.card-body:where(.astro-soecmkh2){padding:1rem;display:flex;flex:1;flex-direction:column;gap:.7rem}.category:where(.astro-soecmkh2){color:hsl(var(--muted-foreground));font-size:.65rem;margin:0}h3:where(.astro-soecmkh2){font-size:1rem;font-weight:500;line-height:1.6;margin:0}.summary:where(.astro-soecmkh2){color:hsl(var(--muted-foreground));font-size:.8rem;line-height:1.8;margin:0;flex:1}.tags:where(.astro-soecmkh2){display:flex;flex-wrap:wrap;gap:.3rem;list-style:none;padding:0;margin:0}.tags:where(.astro-soecmkh2) li:where(.astro-soecmkh2){font-size:.6rem;background:hsl(var(--muted));border-radius:.3rem;padding:.2rem .4rem}.read:where(.astro-soecmkh2){font-size:.75rem;margin-top:.3rem;display:flex;justify-content:space-between}@media(max-width:540px){.project-grid:where(.astro-soecmkh2){grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.project-card:where(.astro-soecmkh2){transition:none}}
