.section-panel[data-astro-cid-ecyvuypr]{scroll-margin-top:calc(var(--header-height) + var(--space-5))}.portfolio-grid[data-astro-cid-ecyvuypr]{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:stretch;display:grid}.portfolio-grid[data-astro-cid-ecyvuypr].featured{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}.portfolio-card[data-astro-cid-ecyvuypr]{gap:var(--space-4);flex-direction:column;padding:0;display:flex;overflow:hidden}.portfolio-card[data-astro-cid-ecyvuypr].highlighted{border-color:var(--border-strong)}.portfolio-card[data-astro-cid-ecyvuypr].highlighted:before{content:"";background:linear-gradient(90deg, transparent, var(--terminal-accent) 22%, var(--terminal-fg) 62%, transparent);opacity:.7;z-index:1;height:1px;position:absolute;inset:0 0 auto}.portfolio-card[data-astro-cid-ecyvuypr].archived{border-style:dashed;border-color:var(--border-color);opacity:.86;background-image:none}.portfolio-card[data-astro-cid-ecyvuypr].archived:hover{box-shadow:var(--shadow-card);transform:none}.portfolio-media[data-astro-cid-ecyvuypr]{border:none;border-radius:0;flex:none;max-height:260px}.portfolio-media[data-astro-cid-ecyvuypr] img[data-astro-cid-ecyvuypr]{object-fit:cover;width:100%;height:100%;max-height:260px}.portfolio-card-content[data-astro-cid-ecyvuypr]{gap:var(--space-4);padding:var(--space-5);flex-direction:column;flex:auto;display:flex}.portfolio-card[data-astro-cid-ecyvuypr]:has(.portfolio-media) .portfolio-card-content[data-astro-cid-ecyvuypr]{padding-top:var(--space-1)}.portfolio-title-group[data-astro-cid-ecyvuypr]{gap:var(--space-3);display:grid}.portfolio-meta[data-astro-cid-ecyvuypr]{gap:var(--space-2);flex-wrap:wrap;display:flex}.badge[data-astro-cid-ecyvuypr].accent{color:var(--terminal-fg);border-color:color-mix(in srgb, var(--terminal-fg) 34%, transparent);background-color:color-mix(in srgb, var(--terminal-fg) 10%, transparent)}.badge[data-astro-cid-ecyvuypr].archive{color:var(--text-muted);border-color:var(--border-color);background-color:var(--glass)}.portfolio-title-group[data-astro-cid-ecyvuypr] p[data-astro-cid-ecyvuypr]{color:var(--text-secondary)}.archive-note[data-astro-cid-ecyvuypr]{padding:var(--space-3) var(--space-4);border-left:2px solid var(--border-color);border-radius:0 var(--radius-md) var(--radius-md) 0;background-color:var(--glass);color:var(--text-secondary);margin:0;font-size:.94rem}.project-screenshot-strip[data-astro-cid-ecyvuypr]{gap:var(--space-3);padding-bottom:var(--space-2);scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;grid-auto-columns:108px;grid-auto-flow:column;display:grid;overflow-x:auto;mask-image:linear-gradient(90deg,#000 88%,#0000)}.project-screenshot-strip[data-astro-cid-ecyvuypr]::-webkit-scrollbar{height:6px}.project-screenshot-strip[data-astro-cid-ecyvuypr]::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:var(--radius-pill)}.project-screenshot[data-astro-cid-ecyvuypr]{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--surface-muted);scroll-snap-align:start;transition:transform .3s var(--ease-out), border-color .3s var(--ease-out);margin:0;display:grid}.project-screenshot[data-astro-cid-ecyvuypr]:hover{border-color:var(--border-strong);transform:translateY(-3px)}.project-screenshot[data-astro-cid-ecyvuypr] img[data-astro-cid-ecyvuypr]{aspect-ratio:9/16;object-fit:cover;object-position:top;border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--terminal-bg);width:100%}.project-screenshot[data-astro-cid-ecyvuypr] figcaption[data-astro-cid-ecyvuypr]{color:var(--text-muted);font-family:var(--font-mono);text-align:center;font-size:.74rem;line-height:1.3}.feature-list[data-astro-cid-ecyvuypr]{gap:var(--space-2);color:var(--text-secondary);padding:0;font-size:.96rem;list-style:none;display:grid}.feature-list[data-astro-cid-ecyvuypr] li[data-astro-cid-ecyvuypr]{padding-left:1.3rem;position:relative}.feature-list[data-astro-cid-ecyvuypr] li[data-astro-cid-ecyvuypr]:before{content:"";background-color:var(--terminal-accent);width:.5rem;height:1px;position:absolute;top:.62em;left:0}.portfolio-card-footer[data-astro-cid-ecyvuypr]{gap:var(--space-3);padding-top:var(--space-2);margin-top:auto;display:grid}.secondary-link-row[data-astro-cid-ecyvuypr]{gap:var(--space-2) var(--space-4);flex-wrap:wrap;font-size:.9rem;display:flex}.secondary-link-row[data-astro-cid-ecyvuypr] a[data-astro-cid-ecyvuypr]{min-height:44px;color:var(--text-muted);border-bottom:1px solid #0000;align-items:center;display:inline-flex}.secondary-link-row[data-astro-cid-ecyvuypr] a[data-astro-cid-ecyvuypr]:hover{color:var(--terminal-accent);border-bottom-color:currentColor;text-decoration:none}.portfolio-hero[data-astro-cid-epnv4ixt]{gap:var(--space-6);display:grid}.portfolio-hero-copy[data-astro-cid-epnv4ixt]{gap:var(--space-4);align-content:center;display:grid}.jump-nav[data-astro-cid-epnv4ixt]{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:linear-gradient(145deg, #59dcff0f, #6ef2b408), var(--terminal-bg);box-shadow:var(--inner-highlight);align-content:center;display:grid}.jump-link[data-astro-cid-epnv4ixt]{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);min-height:44px;color:var(--text-secondary);border:1px solid #0000;grid-template-columns:1fr auto auto;padding:.5rem .85rem;font-weight:500;display:grid}.jump-link[data-astro-cid-epnv4ixt]:hover{color:var(--text-primary);border-color:var(--border-soft);background-color:var(--glass);text-decoration:none}.jump-count[data-astro-cid-epnv4ixt]{color:var(--terminal-fg);font-size:.82rem}.jump-arrow[data-astro-cid-epnv4ixt]{color:var(--text-muted);transition:transform .24s var(--ease-out), color .24s var(--ease-out)}.jump-link[data-astro-cid-epnv4ixt]:hover .jump-arrow[data-astro-cid-epnv4ixt]{color:var(--terminal-accent);transform:translate(3px)}@media (width>=820px){.portfolio-hero[data-astro-cid-epnv4ixt]{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center}}
