.card[data-astro-cid-mspuyifq]{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-card);transition:transform var(--dur-med) var(--ease-out),border-color var(--dur-med) var(--ease-out)}.card[data-astro-cid-mspuyifq]:hover{transform:translateY(-4px);border-color:#a855f766}.card-media[data-astro-cid-mspuyifq]{aspect-ratio:16 / 9;overflow:hidden;border-bottom:1px solid var(--glass-border)}.card-media[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq]{width:100%;height:100%;object-fit:cover}.card-body[data-astro-cid-mspuyifq]{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);flex:1}.card-head[data-astro-cid-mspuyifq]{display:flex;flex-direction:column;gap:var(--s-2)}.card-title-row[data-astro-cid-mspuyifq]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.card-head[data-astro-cid-mspuyifq] h3[data-astro-cid-mspuyifq]{font-size:var(--fs-h3)}.card-head[data-astro-cid-mspuyifq] time[data-astro-cid-mspuyifq]{font-size:var(--fs-small);color:var(--c-text-muted);white-space:nowrap}.card-tags[data-astro-cid-mspuyifq]{display:flex;flex-wrap:wrap;gap:var(--s-2)}.tag[data-astro-cid-mspuyifq]{font-size:var(--fs-small);line-height:1;padding:.3em .6em;border-radius:var(--r-pill, 999px);border:1px solid transparent;font-weight:600}.tag-accent[data-astro-cid-mspuyifq]{color:var(--c-violet);border-color:#9333ea73;background:#9333ea1f}.tag-progress[data-astro-cid-mspuyifq]{color:var(--c-text-muted);border-color:var(--glass-border);background:#ffffff0d;display:inline-flex;align-items:center;gap:.45em}.tag-progress[data-astro-cid-mspuyifq]:before{content:"";width:.5em;height:.5em;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e80;animation:pulse 2s var(--ease-out, ease-out) infinite}@keyframes pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 .4em #22c55e00}to{box-shadow:0 0 #22c55e00}}@media(prefers-reduced-motion:reduce){.tag-progress[data-astro-cid-mspuyifq]:before{animation:none}}.card-desc[data-astro-cid-mspuyifq]{color:var(--c-text-muted);font-size:var(--fs-small);line-height:1.6}.card-stack[data-astro-cid-mspuyifq]{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0;padding:0}.card-links[data-astro-cid-mspuyifq]{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:auto;padding-top:var(--s-2)}.xp[data-astro-cid-p7b4wqop]{padding:var(--s-5);border-radius:var(--r-card)}.xp-head[data-astro-cid-p7b4wqop]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);flex-wrap:wrap}.xp-headline[data-astro-cid-p7b4wqop]{display:flex;align-items:center;gap:var(--s-4);min-width:0}.xp-logo[data-astro-cid-p7b4wqop]{flex-shrink:0;width:auto;height:2.9rem;max-width:92px;object-fit:contain;background:#fff;padding:5px;border-radius:8px;border:1px solid var(--glass-border)}.xp-role[data-astro-cid-p7b4wqop]{font-size:var(--fs-h3)}.xp-org[data-astro-cid-p7b4wqop]{color:var(--c-text-muted);font-size:var(--fs-small);margin-top:.15rem}.xp-meta[data-astro-cid-p7b4wqop]{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;text-align:right}.xp-dates[data-astro-cid-p7b4wqop]{color:var(--c-text-muted);font-size:var(--fs-small);white-space:nowrap}.xp-link[data-astro-cid-p7b4wqop]{color:var(--c-cyan);font-size:var(--fs-small);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out)}.xp-link[data-astro-cid-p7b4wqop]:hover{color:var(--c-violet)}.xp-bullets[data-astro-cid-p7b4wqop]{margin:var(--s-3) 0 0;padding-left:1.1rem;display:grid;gap:.35rem;color:var(--c-text-muted);font-size:var(--fs-small);line-height:1.55}.xp-bullets[data-astro-cid-p7b4wqop] li[data-astro-cid-p7b4wqop]::marker{color:var(--c-cyan)}.page[data-astro-cid-ruvg6z4q]{padding-top:calc(var(--nav-h) + var(--s-6));padding-bottom:var(--s-8)}.page-head[data-astro-cid-ruvg6z4q]{max-width:var(--content-max);margin-inline:auto;padding:var(--s-6) var(--s-5) var(--s-2)}.page-head[data-astro-cid-ruvg6z4q] h1[data-astro-cid-ruvg6z4q]{font-size:var(--fs-display);margin:.3rem 0 .6rem;text-shadow:var(--text-glow)}.section-title[data-astro-cid-ruvg6z4q]{position:relative;font-size:var(--fs-h2);margin-bottom:var(--s-5);padding-left:.9rem;text-shadow:var(--text-glow)}.section-title[data-astro-cid-ruvg6z4q]:before{content:"";position:absolute;left:0;top:.14em;bottom:.14em;width:5px;border-radius:var(--r-pill);background:var(--glass-fill);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:inset 1px 1px 1.5px #ffffffe6,inset -1px -1px 1.5px #7884b84d}.stack[data-astro-cid-ruvg6z4q]{display:grid;gap:var(--s-4)}.grid[data-astro-cid-ruvg6z4q]{display:grid;gap:var(--s-5)}.grid-projects[data-astro-cid-ruvg6z4q]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.list[data-astro-cid-ruvg6z4q]{display:grid;gap:var(--s-3);list-style:none;margin:0;padding:0}.row[data-astro-cid-ruvg6z4q]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-radius:var(--r-card)}.row-title[data-astro-cid-ruvg6z4q]{font-weight:500}.row-sub[data-astro-cid-ruvg6z4q]{font-size:var(--fs-small);color:var(--c-text-muted)}.row-meta[data-astro-cid-ruvg6z4q]{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;font-size:var(--fs-small);color:var(--c-text-muted);white-space:nowrap}.row-meta[data-astro-cid-ruvg6z4q] a[data-astro-cid-ruvg6z4q]{color:var(--c-cyan)}.row-status[data-astro-cid-ruvg6z4q]{font-style:italic;color:var(--c-violet)}.badge[data-astro-cid-ruvg6z4q]{display:inline-block;margin-left:.4rem;padding:.05rem .5rem;font-size:.7rem;font-weight:600;border-radius:var(--r-pill);background:var(--grad-accent);color:#fff;vertical-align:middle}.panel[data-astro-cid-ruvg6z4q]{padding:var(--s-5);border-radius:var(--r-card);display:grid;gap:var(--s-5)}.skill-group[data-astro-cid-ruvg6z4q]{display:grid;gap:var(--s-3)}.skill-cat[data-astro-cid-ruvg6z4q]{font-family:var(--font-body);font-size:var(--fs-small);letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-muted)}.chips[data-astro-cid-ruvg6z4q]{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0;padding:0}
