.project-card:where(.astro-y2vllrex){border:1px solid var(--sl-color-gray-5);background:var(--sl-color-bg-nav);color:inherit;border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1.5rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex}.project-card:where(.astro-y2vllrex):hover{border-color:var(--sl-color-accent);box-shadow:0 2px 16px color-mix(in srgb, var(--sl-color-accent) 10%, transparent)}.card-header:where(.astro-y2vllrex) h3:where(.astro-y2vllrex){color:var(--sl-color-text-accent);margin:0;font-size:1.1rem;font-weight:600}.card-description:where(.astro-y2vllrex){color:var(--sl-color-gray-2);flex:1;margin:0;font-size:.95rem}.card-stats:where(.astro-y2vllrex){flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.stat:where(.astro-y2vllrex){color:var(--sl-color-gray-3);align-items:center;gap:.3rem;font-size:.8rem;display:inline-flex}.stat-value:where(.astro-y2vllrex){color:var(--sl-color-gray-2);font-weight:600}:where(.astro-lcdefpme),:where(.astro-lcdefpme):before,:where(.astro-lcdefpme):after{box-sizing:border-box}:root{--accent:#90d795;--accent-dark:#5fae70;--text:#1a1a2e;--text-muted:#64748b;--bg:#fff;--border:#e2e8f0;--bg-card:#f8fafc;--radius:.75rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--text:#f1f5f9;--text-muted:#94a3b8;--bg:#0f172a;--border:#1e293b;--bg-card:#1e293b}}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0}body.has-photo{--text:#fff;--text-muted:#ffffffbf;background-image:linear-gradient(180deg, #0f172ad1, #0f172aad), var(--hero-image);background-position:50%;background-size:cover;background-attachment:fixed}.hero-credit:where(.astro-lcdefpme){z-index:1;color:#ffffffd9;margin:0;font-size:.7rem;position:fixed;bottom:.5rem;right:.75rem}.hero-credit:where(.astro-lcdefpme) a:where(.astro-lcdefpme){color:inherit}.copyright-credit:where(.astro-lcdefpme){z-index:1;color:var(--text-muted);margin:0;font-size:.7rem;position:fixed;bottom:.5rem;left:.75rem}.copyright-credit:where(.astro-lcdefpme) a:where(.astro-lcdefpme){color:inherit}.page:where(.astro-lcdefpme){max-width:960px;margin:0 auto;padding:2rem 1rem 4rem}.site-header:where(.astro-lcdefpme){flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:1.5rem;display:flex}.logo:where(.astro-lcdefpme){width:auto;height:56px}h1:where(.astro-lcdefpme){color:var(--text);margin:0;font-size:2rem;font-weight:700}.intro:where(.astro-lcdefpme){margin-bottom:2rem}.intro:where(.astro-lcdefpme) p:where(.astro-lcdefpme){color:var(--text);margin:0 0 .5rem;font-size:1.05rem}.license-note:where(.astro-lcdefpme){color:var(--text-muted)!important;font-size:.9rem!important}.cards-grid:where(.astro-lcdefpme){grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:3rem;display:grid}.cards-grid:where(.astro-lcdefpme) .project-card{--sl-color-bg-nav:var(--bg-card);--sl-color-gray-5:var(--border);--sl-color-gray-4:var(--border);--sl-color-gray-2:var(--text-muted);--sl-color-text:var(--text);--sl-color-text-accent:var(--text);--sl-color-accent:var(--accent);--sl-color-accent-high:var(--accent-dark)}.blog-section:where(.astro-lcdefpme){margin-bottom:3rem}.blog-section:where(.astro-lcdefpme) h2:where(.astro-lcdefpme){color:var(--text);margin:0 0 .75rem;font-size:1.15rem;font-weight:700}.blog-strips:where(.astro-lcdefpme){flex-direction:column;gap:.5rem;display:flex}.blog-strip:where(.astro-lcdefpme){border:1px solid var(--border);background:var(--bg-card);color:inherit;border-radius:.4rem;padding:1rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:block}.blog-strip:where(.astro-lcdefpme):hover{border-color:var(--accent);box-shadow:0 2px 16px color-mix(in srgb, var(--accent) 10%, transparent)}.blog-strip-title:where(.astro-lcdefpme){color:var(--text);margin:0 0 .15rem;font-size:.95rem;font-weight:600}.blog-strip-meta:where(.astro-lcdefpme){color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.25rem;font-size:.7rem;display:flex}.blog-strip-tags:where(.astro-lcdefpme){gap:.3rem;display:flex}.blog-strip-tag:where(.astro-lcdefpme){border:1px solid var(--border);border-radius:9999px;padding:.05rem .45rem;font-size:.65rem;display:inline-block}.blog-strip-excerpt:where(.astro-lcdefpme){color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.4}.blog-see-all:where(.astro-lcdefpme){color:var(--accent);margin-top:.6rem;margin-left:calc(1px + 1rem);font-size:.85rem;text-decoration:none;display:inline-block}.blog-see-all:where(.astro-lcdefpme):hover{text-decoration:underline}body.has-photo .cards-grid:where(.astro-lcdefpme) .project-card,body.has-photo .blog-strip:where(.astro-lcdefpme){background:0 0;border-color:#0000;position:relative;box-shadow:0 0 .75px #141a1f33,.7px .8px 1.2px -.4px #141a1f1a,1.3px 1.5px 2.2px -.8px #141a1f1a,2.3px 2.6px 3.9px -1.2px #141a1f1a,3.9px 4.4px 6.6px -1.7px #141a1f1a,6.5px 7.2px 10.9px -2.1px #141a1f1a,8px 9px 14px -2.5px #141a1f33,0 4px 20px #67e47000}body.has-photo .cards-grid:where(.astro-lcdefpme) .project-card:hover,body.has-photo .blog-strip:where(.astro-lcdefpme):hover{border-color:var(--accent);box-shadow:0 0 .75px #141a1f4d,.7px .8px 1.2px -.4px #141a1f26,1.3px 1.5px 2.2px -.8px #141a1f26,2.3px 2.6px 3.9px -1.2px #141a1f26,3.9px 4.4px 6.6px -1.7px #141a1f26,6.5px 7.2px 10.9px -2.1px #141a1f26,8px 9px 14px -2.5px #141a1f4d,0 4px 20px #67e47026}body.has-photo .cards-grid:where(.astro-lcdefpme) .project-card:before,body.has-photo .blog-strip:where(.astro-lcdefpme):before{content:"";z-index:-2;pointer-events:none;border-radius:inherit;-webkit-backdrop-filter:blur(32px)brightness(.85)saturate(2.5);background-color:#05282e33;background-image:url(https://www.transparenttextures.com/patterns/egg-shell.png);background-repeat:repeat;background-size:100px;transition:backdrop-filter .3s;position:absolute;inset:0;overflow:hidden}body.has-photo .cards-grid:where(.astro-lcdefpme) .project-card:hover:before,body.has-photo .blog-strip:where(.astro-lcdefpme):hover:before{-webkit-backdrop-filter:blur(54px)brightness(1.05)saturate(2.5)}body.has-photo .cards-grid:where(.astro-lcdefpme) .project-card:after,body.has-photo .blog-strip:where(.astro-lcdefpme):after{content:"";z-index:-1;pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden;box-shadow:inset 2px 2px 1px -3px #e0e6ebcc,inset 4px 4px 2px -6px #e0e6eb4d,inset 1.5px 1.5px 1.5px -.75px #e0e6eb26,inset 1.5px 1.5px .25px #e0e6eb08,inset 0 0 .25px .5px #e0e6eb08}
