.github-activity:where(.astro-ihpkvlmb){margin-top:2.8rem}.activity-heading:where(.astro-ihpkvlmb){display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.activity-heading:where(.astro-ihpkvlmb) p:where(.astro-ihpkvlmb){margin:0;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));font-size:.9rem}.activity-heading:where(.astro-ihpkvlmb) a:where(.astro-ihpkvlmb),.activity-fallback:where(.astro-ihpkvlmb) a:where(.astro-ihpkvlmb){color:hsl(var(--foreground) / var(--un-text-opacity, 1));font-size:.88rem;text-decoration:none}.activity-heading:where(.astro-ihpkvlmb) a:where(.astro-ihpkvlmb):hover,.activity-fallback:where(.astro-ihpkvlmb) a:where(.astro-ihpkvlmb):hover{color:hsl(var(--primary) / var(--un-text-opacity, 1))}.activity-scroll:where(.astro-ihpkvlmb){overflow-x:auto;padding-bottom:.35rem}.activity-calendar:where(.astro-ihpkvlmb){--cell-size: 11px;--cell-gap: 4px;width:max-content;max-width:100%}.month-row:where(.astro-ihpkvlmb){display:grid;grid-template-columns:repeat(var(--weeks),var(--cell-size));column-gap:var(--cell-gap);height:1.15rem;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));font-size:.72rem;line-height:1}.activity-grid:where(.astro-ihpkvlmb){display:grid;grid-template-columns:repeat(var(--weeks),var(--cell-size));grid-template-rows:repeat(7,var(--cell-size));gap:var(--cell-gap)}.activity-day:where(.astro-ihpkvlmb),.activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb){display:block;border-radius:2px;background:#ebedf0}.activity-day:where(.astro-ihpkvlmb){width:var(--cell-size);height:var(--cell-size)}.activity-day:where(.astro-ihpkvlmb)[data-level="1"],.activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="1"]{background:#9be9a8}.activity-day:where(.astro-ihpkvlmb)[data-level="2"],.activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="2"]{background:#40c463}.activity-day:where(.astro-ihpkvlmb)[data-level="3"],.activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="3"]{background:#30a14e}.activity-day:where(.astro-ihpkvlmb)[data-level="4"],.activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="4"]{background:#216e39}.activity-meta:where(.astro-ihpkvlmb){display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.75rem;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));font-size:.82rem}.activity-legend:where(.astro-ihpkvlmb){display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb){width:.68rem;height:.68rem}.activity-fallback:where(.astro-ihpkvlmb){margin:0;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));line-height:1.7}.dark .activity-day:where(.astro-ihpkvlmb),.dark .activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb){background:#161b22}.dark .activity-day:where(.astro-ihpkvlmb)[data-level="1"],.dark .activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="1"]{background:#0e4429}.dark .activity-day:where(.astro-ihpkvlmb)[data-level="2"],.dark .activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="2"]{background:#006d32}.dark .activity-day:where(.astro-ihpkvlmb)[data-level="3"],.dark .activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="3"]{background:#26a641}.dark .activity-day:where(.astro-ihpkvlmb)[data-level="4"],.dark .activity-legend:where(.astro-ihpkvlmb) i:where(.astro-ihpkvlmb)[data-level="4"]{background:#39d353}@media(max-width:640px){.activity-meta:where(.astro-ihpkvlmb){align-items:flex-start;flex-direction:column}}.project-card:where(.astro-nksa6tgp){min-height:9rem;min-width:0;border:1px solid hsl(var(--border) / var(--un-border-opacity, 1));border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent-color) 7%,transparent),transparent),hsl(var(--background) / .82);padding:1rem;transition:border-color .16s ease,transform .16s ease,background-color .16s ease}.project-card:where(.astro-nksa6tgp):hover{border-color:color-mix(in srgb,var(--accent-color) 45%,hsl(var(--border)));transform:translateY(-2px)}.accent-blue:where(.astro-nksa6tgp){--accent-color: #3495d5}.accent-green:where(.astro-nksa6tgp){--accent-color: #19a579}.accent-amber:where(.astro-nksa6tgp){--accent-color: #d8902f}.accent-violet:where(.astro-nksa6tgp){--accent-color: #8b6be8}.accent-slate:where(.astro-nksa6tgp){--accent-color: #7d8b9a}.project-title-link:where(.astro-nksa6tgp){display:flex;align-items:center;justify-content:space-between;gap:1rem;color:hsl(var(--foreground) / var(--un-text-opacity, 1));font-weight:520;text-decoration:none}.project-title-link:where(.astro-nksa6tgp) .title-icon{flex:0 0 auto;width:1.2rem;height:1.2rem;color:var(--accent-color)}.project-card:where(.astro-nksa6tgp)>p:where(.astro-nksa6tgp){min-height:3.2rem;margin:.75rem 0 1.25rem;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));line-height:1.65}.project-links:where(.astro-nksa6tgp){display:flex;flex-wrap:wrap;gap:.65rem}.project-link:where(.astro-nksa6tgp){display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:50%;background:hsl(var(--muted) / var(--un-bg-opacity, 1));color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));text-decoration:none;transition:background-color .16s ease,color .16s ease,transform .16s ease}.project-link:where(.astro-nksa6tgp):hover{background:color-mix(in srgb,var(--accent-color) 20%,hsl(var(--muted)));color:hsl(var(--foreground) / var(--un-text-opacity, 1));transform:translateY(-1px)}.project-link:where(.astro-nksa6tgp) svg{width:1.05rem;height:1.05rem}.projects-page:where(.astro-2hwget37){padding:3.5rem 0 5rem}.projects-shell:where(.astro-2hwget37){display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:3rem;min-width:0}.projects-intro:where(.astro-2hwget37),.projects-content:where(.astro-2hwget37){width:100%;min-width:0;max-width:50rem}.back-link:where(.astro-2hwget37){display:inline-flex;align-items:center;gap:.45rem;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));font-size:.95rem;text-decoration:none;transition:color .16s ease,transform .16s ease}.back-link:where(.astro-2hwget37):hover{color:hsl(var(--foreground) / var(--un-text-opacity, 1));transform:translate(-2px)}.projects-intro:where(.astro-2hwget37) h1:where(.astro-2hwget37){margin:1.2rem 0;color:hsl(var(--foreground) / var(--un-text-opacity, 1));font-size:2.5rem;font-weight:500;line-height:1.1;letter-spacing:0}.about-pill:where(.astro-2hwget37){display:inline-flex;align-items:center;gap:.7rem;width:fit-content;border:1px solid hsl(var(--border) / var(--un-border-opacity, 1));border-radius:999px;background:hsl(var(--background) / .78);padding:.42rem 1rem;color:hsl(var(--foreground) / var(--un-text-opacity, 1));text-decoration:none;transition:border-color .16s ease,transform .16s ease,background-color .16s ease}.about-pill:where(.astro-2hwget37):hover{border-color:hsl(var(--primary) / .35);background:hsl(var(--muted) / var(--un-bg-opacity, 1));transform:translateY(-1px)}.about-pill:where(.astro-2hwget37) span:where(.astro-2hwget37){width:.55rem;height:.55rem;border-radius:50%;background:#19a579}.intro-copy:where(.astro-2hwget37){color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));line-height:1.8}.intro-copy:where(.astro-2hwget37){margin:1.6rem 0 0}.projects-toc:where(.astro-2hwget37){position:sticky;top:6.5rem;align-self:start}.toc-panel:where(.astro-2hwget37){border-left:1px solid hsl(var(--border) / var(--un-border-opacity, 1));padding-left:.85rem}.toc-panel:where(.astro-2hwget37) p:where(.astro-2hwget37){margin:0 0 .65rem;color:hsl(var(--foreground) / var(--un-text-opacity, 1));font-size:.78rem;letter-spacing:.08em}.toc-panel:where(.astro-2hwget37) a:where(.astro-2hwget37){display:block;border-radius:8px;padding:.18rem .65rem;color:hsl(var(--muted-foreground) / var(--un-text-opacity, 1));text-decoration:none;transition:background-color .16s ease,color .16s ease,transform .16s ease}.toc-panel:where(.astro-2hwget37) a:where(.astro-2hwget37):hover{background:hsl(var(--muted) / var(--un-bg-opacity, 1));color:hsl(var(--foreground) / var(--un-text-opacity, 1));transform:translate(2px)}.projects-content:where(.astro-2hwget37){grid-column:1;margin-top:4.4rem}.project-section:where(.astro-2hwget37)+.project-section:where(.astro-2hwget37){margin-top:3.4rem}.project-section:where(.astro-2hwget37) h2:where(.astro-2hwget37){margin:0 0 1.2rem;color:hsl(var(--foreground) / var(--un-text-opacity, 1));font-size:1.65rem;font-weight:520;letter-spacing:0}.project-grid:where(.astro-2hwget37){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:900px){.projects-shell:where(.astro-2hwget37){grid-template-columns:1fr;gap:2rem}.projects-toc:where(.astro-2hwget37){position:static;grid-row:2}.toc-panel:where(.astro-2hwget37){display:flex;flex-wrap:wrap;gap:.45rem;border-left:0;padding-left:0}.toc-panel:where(.astro-2hwget37) p:where(.astro-2hwget37){width:100%}.toc-panel:where(.astro-2hwget37) a:where(.astro-2hwget37){border:1px solid hsl(var(--border) / var(--un-border-opacity, 1))}.projects-content:where(.astro-2hwget37){margin-top:1rem}}@media(max-width:640px){.projects-page:where(.astro-2hwget37){padding:2rem 0 3.5rem}.projects-intro:where(.astro-2hwget37) h1:where(.astro-2hwget37){font-size:2rem}.project-grid:where(.astro-2hwget37){grid-template-columns:1fr}}
