.portfolioItem[data-astro-cid-epnv4ixt]{gap:var(--space-md);contain:layout style paint;flex-flow:column;align-items:stretch;display:flex;position:relative;overflow:hidden;&:before{content:"";opacity:0;transition:opacity var(--motion-duration-fast) var(--motion-ease-standard);pointer-events:none;z-index:1;background:linear-gradient(#0a66c200 0%,#0a66c21a 100%);position:absolute;inset:0}&:hover{box-shadow:0 8px 16px -4px var(--color-shadow);&:before{opacity:1}& .portfolioImage{will-change:transform;transform:scale(1.02)}}}.portfolioImage[data-astro-cid-epnv4ixt]{object-fit:contain;width:100%;height:auto;transition:transform var(--motion-duration-fast) var(--motion-ease-standard);border-radius:var(--radius-lg);corner-shape:squircle}.portfolioContent[data-astro-cid-epnv4ixt]{gap:calc(var(--space-lg) + var(--space-xs));flex-direction:column;flex:1;min-height:0;display:flex}.contentSection[data-astro-cid-epnv4ixt]{flex-direction:column;display:flex}.roleBadge[data-astro-cid-epnv4ixt]{align-items:center;gap:var(--space-2xs);width:fit-content;margin-bottom:var(--space-sm);padding:var(--space-3xs) .625rem;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-radius:99px;font-weight:600;display:inline-flex}.roleSolo[data-astro-cid-epnv4ixt]{color:var(--color-accent-strong);background:var(--color-surface-accent);border:1px solid color-mix(in srgb, var(--color-accent) 35%, transparent)}.roleSolo[data-astro-cid-epnv4ixt]:before{content:"";background:var(--color-accent);border-radius:50%;width:6px;height:6px}.roleTeam[data-astro-cid-epnv4ixt]{color:var(--color-text-soft);background:var(--color-background-soft);border:1px solid var(--color-border)}.portfolioHeader[data-astro-cid-epnv4ixt]{align-items:center;gap:var(--space-lg);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.cardTitleLink[data-astro-cid-epnv4ixt]{color:inherit;transition:color var(--motion-duration-fast) var(--motion-ease-standard);text-decoration:none;&:hover{color:var(--color-accent)}}.portfolioSummary[data-astro-cid-epnv4ixt]{font-size:var(--font-size-base);color:var(--color-text-soft);margin:0 0 var(--space-sm);line-height:1.6}.portfolioDetails[data-astro-cid-epnv4ixt]{margin-top:var(--space-sm);& summary{cursor:pointer;color:var(--color-accent);font-size:var(--font-size-sm);user-select:none;font-weight:500;list-style:none;&::-webkit-details-marker{display:none}&:before{content:"▸ ";transition:transform var(--motion-duration-fast) var(--motion-ease-standard);display:inline-block}&:hover{color:var(--color-accent-strong)}}&[open]>summary[data-astro-cid-epnv4ixt]:before{content:"▾ "}& .detailsBody{font-size:var(--font-size-sm);color:var(--color-text-soft);padding-top:var(--space-sm);border-top:1px solid var(--color-border);margin-top:var(--space-sm);line-height:1.6}}.portfolioTags[data-astro-cid-epnv4ixt]{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tag[data-astro-cid-epnv4ixt]{padding:var(--space-xs) .625rem;font-size:var(--font-size-xs);background:var(--color-background-soft);color:var(--color-text-soft);border-radius:var(--radius-sm);border:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.025em;font-weight:500;display:inline-block}.portfolioMetrics[data-astro-cid-epnv4ixt]{gap:var(--space-xl);padding:var(--space-lg);background:var(--color-background-soft);border-radius:var(--radius-md);border:1px solid var(--color-border);display:flex}.projectMetric[data-astro-cid-epnv4ixt]{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.portfolioActions[data-astro-cid-epnv4ixt]{align-items:center;gap:var(--space-lg);flex-wrap:wrap;margin-top:1rem;display:flex}.portfolioLinkPrimary[data-astro-cid-epnv4ixt]{color:var(--color-accent-strong);font-weight:600;font-size:var(--font-size-sm);padding:var(--radius-md) var(--space-md);background:var(--color-background-soft);border:1px solid var(--color-accent);border-radius:var(--radius-sm);white-space:nowrap;transition:background-color var(--motion-duration-fast) var(--motion-ease-standard), color var(--motion-duration-fast) var(--motion-ease-standard);text-decoration:none;&:hover{color:#fff;background:var(--color-accent)}}
