.project-card[data-astro-cid-mspuyifq]{border:1px solid var(--border);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s}.project-card[data-astro-cid-mspuyifq]:hover{border-color:var(--accent-dim)}.project-card--highlight[data-astro-cid-mspuyifq]{flex-direction:row}.project-card--highlight[data-astro-cid-mspuyifq] .card-visual[data-astro-cid-mspuyifq]{flex:0 0 42%;max-width:42%}.project-card--highlight[data-astro-cid-mspuyifq] .card-visual[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq],.project-card--highlight[data-astro-cid-mspuyifq] .card-placeholder[data-astro-cid-mspuyifq]{height:100%;aspect-ratio:unset}@media(max-width:780px){.project-card--highlight[data-astro-cid-mspuyifq]{flex-direction:column}.project-card--highlight[data-astro-cid-mspuyifq] .card-visual[data-astro-cid-mspuyifq]{flex:none;max-width:none}.project-card--highlight[data-astro-cid-mspuyifq] .card-visual[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq],.project-card--highlight[data-astro-cid-mspuyifq] .card-placeholder[data-astro-cid-mspuyifq]{height:auto;aspect-ratio:16/7}}.card-visual[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq]{width:100%;aspect-ratio:16/7;object-fit:cover;display:block;filter:brightness(.9);transition:filter .2s}.project-card[data-astro-cid-mspuyifq]:hover .card-visual[data-astro-cid-mspuyifq] img[data-astro-cid-mspuyifq]{filter:brightness(1)}.card-placeholder[data-astro-cid-mspuyifq]{width:100%;aspect-ratio:16/7;background:linear-gradient(135deg,#0a0a0a,color-mix(in srgb,var(--pa) 12%,#0d0d0d));border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.card-placeholder[data-astro-cid-mspuyifq]:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 38px,color-mix(in srgb,var(--pa) 5%,transparent) 38px,color-mix(in srgb,var(--pa) 5%,transparent) 39px)}.ph-name[data-astro-cid-mspuyifq]{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pa);opacity:.5;position:relative;z-index:1}.card-body[data-astro-cid-mspuyifq]{padding:1.4rem 1.5rem 1.5rem;display:flex;flex-direction:column;flex:1}.card-role[data-astro-cid-mspuyifq]{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem}.card-title[data-astro-cid-mspuyifq]{font-size:1.1rem;font-weight:500;margin:0 0 .35rem;letter-spacing:-.015em}.project-card--highlight[data-astro-cid-mspuyifq] .card-title[data-astro-cid-mspuyifq]{font-size:1.25rem}.card-title-text[data-astro-cid-mspuyifq]{color:var(--text)}.card-title-link[data-astro-cid-mspuyifq]{color:var(--text);text-decoration:none;transition:color .15s}.card-title-link[data-astro-cid-mspuyifq]:hover{color:var(--accent)}.card-tagline[data-astro-cid-mspuyifq]{font-size:.82rem;font-family:var(--font-mono);margin:0 0 .85rem;line-height:1.4}.card-desc[data-astro-cid-mspuyifq]{font-size:.86rem;color:var(--text-muted);line-height:1.6;margin:0 0 1rem;flex:1}.card-tags[data-astro-cid-mspuyifq]{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.card-links[data-astro-cid-mspuyifq]{display:flex;gap:1rem;align-items:center;margin-top:auto;flex-wrap:wrap}.link-view[data-astro-cid-mspuyifq]{font-family:var(--font-mono);font-size:.78rem;font-weight:500;color:var(--text);text-decoration:none;transition:color .15s}.link-view[data-astro-cid-mspuyifq]:hover{color:var(--accent)}.link-github[data-astro-cid-mspuyifq]{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);border:1px solid var(--border);padding:.3em .7em;border-radius:2px;transition:border-color .15s,color .15s;text-decoration:none}.link-github[data-astro-cid-mspuyifq]:hover{border-color:var(--accent-dim);color:var(--text)}.link-demo[data-astro-cid-mspuyifq]{font-family:var(--font-mono);font-size:.78rem;color:var(--accent);border:1px solid var(--accent-dim);padding:.3em .7em;border-radius:2px;transition:background .15s,color .15s;text-decoration:none}.link-demo[data-astro-cid-mspuyifq]:hover{background:var(--accent);color:var(--bg)}.page-header[data-astro-cid-hhx4eho5]{padding:6rem 0 3rem;border-bottom:1px solid var(--border);margin-bottom:3rem}.page-header[data-astro-cid-hhx4eho5] h1[data-astro-cid-hhx4eho5]{margin:1rem 0;font-size:clamp(3rem,8.5vw,7rem);font-weight:700;letter-spacing:-.01em;line-height:.95}.subtitle[data-astro-cid-hhx4eho5]{color:var(--text-muted);font-size:1rem;font-weight:300;margin:0 0 1.5rem;max-width:640px}.pypi-badge[data-astro-cid-hhx4eho5]{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.82rem;color:var(--text-muted);border:1px solid var(--border);padding:.5rem 1rem;border-radius:100px}.pypi-badge[data-astro-cid-hhx4eho5][data-state=loaded]{color:var(--accent-cyber);border-color:var(--accent-cyber-dim)}.pypi-badge[data-astro-cid-hhx4eho5][data-state=error]{color:var(--text-dim)}.pypi-dot[data-astro-cid-hhx4eho5]{width:7px;height:7px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.pypi-badge[data-astro-cid-hhx4eho5][data-state=loading] .pypi-dot[data-astro-cid-hhx4eho5]{background:var(--accent-dim);animation:pypi-pulse 1.4s ease-in-out infinite}.pypi-badge[data-astro-cid-hhx4eho5][data-state=loaded] .pypi-dot[data-astro-cid-hhx4eho5]{background:var(--accent-cyber)}@keyframes pypi-pulse{0%,to{opacity:.4}50%{opacity:1}}.launch[data-astro-cid-hhx4eho5]{margin-bottom:3rem}.launch-video[data-astro-cid-hhx4eho5]{width:100%;max-height:640px;border-radius:4px;border:1px solid var(--border);background:#000;display:block}.story[data-astro-cid-hhx4eho5]{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-bottom:4.5rem;padding-bottom:3rem;border-bottom:1px solid var(--border)}@media(max-width:780px){.story[data-astro-cid-hhx4eho5]{grid-template-columns:1fr;gap:2rem}}.story-label[data-astro-cid-hhx4eho5]{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.9rem}.story-block[data-astro-cid-hhx4eho5] p[data-astro-cid-hhx4eho5]{font-size:.9rem;color:var(--text-muted);line-height:1.7;margin:0 0 1rem}.story-block[data-astro-cid-hhx4eho5] p[data-astro-cid-hhx4eho5]:last-child{margin-bottom:0}.story-block[data-astro-cid-hhx4eho5] code[data-astro-cid-hhx4eho5]{font-family:var(--font-mono);font-size:.85em;background:var(--bg-elevated);border:1px solid var(--border);padding:.1em .4em;border-radius:3px;color:var(--text)}.story-block[data-astro-cid-hhx4eho5] strong[data-astro-cid-hhx4eho5]{color:var(--text);font-weight:500}.section-head[data-astro-cid-hhx4eho5]{margin-bottom:1.75rem}.section-label[data-astro-cid-hhx4eho5]{display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-cyber);border:1px solid var(--accent-cyber-dim);padding:.25em .7em;border-radius:2px;margin-bottom:.6rem}.section-desc[data-astro-cid-hhx4eho5]{font-size:.85rem;color:var(--text-muted);margin:0}.eco-grid[data-astro-cid-hhx4eho5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:1.5rem;padding-bottom:4rem}
