.cert-grid:where(.astro-wcg6dn3j){grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1rem;display:grid}.cert-card:where(.astro-wcg6dn3j){border:1px solid var(--sl-color-gray-5);background:linear-gradient(160deg, var(--cert-bg), transparent 65%), var(--sl-color-bg-nav);color:inherit;border-radius:.75rem;flex-direction:column;align-items:flex-start;gap:.65rem;padding:1.25rem;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.cert-card:where(.astro-wcg6dn3j):hover{border-color:var(--cert-color);box-shadow:0 8px 20px -8px var(--cert-color);transform:translateY(-4px)}.cert-icon:where(.astro-wcg6dn3j){background:var(--cert-bg);width:2.75rem;height:2.75rem;color:var(--cert-color);border-radius:.6rem;justify-content:center;align-items:center;display:inline-flex}.cert-icon:where(.astro-wcg6dn3j) svg{width:1.6rem;height:1.6rem}.cert-title:where(.astro-wcg6dn3j){color:var(--sl-color-white);font-size:.95rem;font-weight:600;line-height:1.3}.cert-issuer:where(.astro-wcg6dn3j){color:var(--sl-color-gray-3);font-size:.8rem}.skills-grid:where(.astro-2zwc476k){grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:1rem;display:grid}.skills-card:where(.astro-2zwc476k){border:1px solid var(--sl-color-gray-5);background:var(--sl-color-bg-nav);border-radius:.75rem;padding:1.25rem}.skills-card-header:where(.astro-2zwc476k){color:var(--sl-color-accent-high,var(--sl-color-text-accent));align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.skills-card-header:where(.astro-2zwc476k) h3:where(.astro-2zwc476k){color:var(--sl-color-white);margin:0;font-size:1rem}.skills-card-icon:where(.astro-2zwc476k){flex-shrink:0;width:1.4rem;height:1.4rem;display:inline-flex}.skills-card-icon:where(.astro-2zwc476k) svg{width:100%;height:100%}.skills-tools:where(.astro-2zwc476k){flex-wrap:wrap;gap:.6rem;display:flex}.skill-badge:where(.astro-2zwc476k){background:var(--tool-bg,var(--sl-color-gray-6));width:3rem;height:3rem;color:var(--tool-color,var(--sl-color-gray-2));border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:inline-flex;position:relative}.skill-badge:where(.astro-2zwc476k).mono{background:var(--sl-color-gray-6);color:var(--sl-color-white)}.skill-badge:where(.astro-2zwc476k):hover{box-shadow:0 6px 16px -6px var(--tool-color,var(--sl-color-gray-4));transform:translateY(-3px)scale(1.05)}.skill-icon:where(.astro-2zwc476k){width:1.5rem;height:1.5rem;display:inline-flex}.skill-icon:where(.astro-2zwc476k) svg{fill:currentColor;width:100%;height:100%}.skill-name:where(.astro-2zwc476k){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-form:where(.astro-vekgkm42){border:1px solid var(--sl-color-gray-5);background:var(--sl-color-bg-nav);border-radius:.75rem;gap:1rem;max-width:40rem;margin:1rem auto 0;padding:1.5rem;display:grid}.contact-honey:where(.astro-vekgkm42){opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.contact-target-frame:where(.astro-vekgkm42){opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:absolute}.contact-row:where(.astro-vekgkm42){gap:.35rem;display:grid}.contact-row:where(.astro-vekgkm42) label:where(.astro-vekgkm42){color:var(--sl-color-white);font-size:.875rem;font-weight:600}.contact-row:where(.astro-vekgkm42) input:where(.astro-vekgkm42),.contact-row:where(.astro-vekgkm42) textarea:where(.astro-vekgkm42){border:1px solid var(--sl-color-gray-5);background:var(--sl-color-bg);width:100%;color:var(--sl-color-white);font:inherit;border-radius:.5rem;padding:.6rem .75rem}.contact-row:where(.astro-vekgkm42) input:where(.astro-vekgkm42):focus,.contact-row:where(.astro-vekgkm42) textarea:where(.astro-vekgkm42):focus{outline:2px solid var(--sl-color-text-accent);outline-offset:1px}.contact-submit:where(.astro-vekgkm42){background:var(--sl-color-text-accent);color:var(--sl-color-accent-low,#fff);cursor:pointer;border:none;border-radius:999px;justify-self:start;padding:.65rem 1.5rem;font-weight:600;transition:opacity .2s}.contact-submit:where(.astro-vekgkm42):hover{opacity:.9}.contact-submit:where(.astro-vekgkm42):disabled{opacity:.6;cursor:not-allowed}.contact-status:where(.astro-vekgkm42){min-height:1.2em;margin:0;font-size:.9rem}.contact-status:where(.astro-vekgkm42)[data-kind=success]{color:#22c55e}.contact-status:where(.astro-vekgkm42)[data-kind=error]{color:#ef4444}.contact-status:where(.astro-vekgkm42)[data-kind=pending]{color:var(--sl-color-gray-3)}.contact-fallback:where(.astro-vekgkm42){color:var(--sl-color-gray-3);margin:0;font-size:.8rem}
