.stack-page{padding-top:clamp(96px,12vh,144px);padding-bottom:var(--space-9)}.stack-head{margin-bottom:var(--space-9);max-width:60ch}.stack-head .eyebrow{font-family:var(--font-body);font-size:var(--text-2xs);letter-spacing:var(--tracking-cover);text-transform:uppercase;color:var(--page-fg-soft);margin:0 0 var(--space-3)}.stack-head h1{font-family:var(--font-body);font-weight:var(--weight-bold);font-size:clamp(36px,5vw,64px);line-height:var(--leading-display);letter-spacing:var(--tracking-tight);color:var(--page-fg);margin:0 0 var(--space-4)}.stack-head .lede{font-size:clamp(var(--text-base),1.4vw,var(--text-md));line-height:var(--leading-normal);color:var(--page-fg-soft);margin:0}.stack-section{margin-bottom:var(--space-11)}.stack-section>h2{font-family:var(--font-body);font-weight:var(--weight-bold);font-size:clamp(24px,2.6vw,32px);letter-spacing:var(--tracking-snug);margin:0 0 var(--space-6);padding-bottom:var(--space-3);border-bottom:1px solid var(--page-line)}.stack-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(var(--space-3),1.6vw,var(--space-4))}.stack-card{display:block}.stack-card-link{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-4);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--page-card) 60%,transparent);border:1px solid color-mix(in srgb,var(--page-line) 80%,transparent);text-decoration:none;color:inherit;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.stack-card-link:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--page-accent) 40%,var(--page-line));box-shadow:0 12px 24px -16px color-mix(in srgb,var(--page-accent) 28%,transparent)}.stack-card[data-kind=software] .stack-card-img{flex:0 0 80px;width:80px;height:80px;border-radius:var(--radius-lg);overflow:hidden;background:color-mix(in srgb,var(--page-card) 90%,transparent);display:flex;align-items:center;justify-content:center}.stack-card[data-kind=software] .stack-card-img img{width:56px;height:56px;object-fit:contain}.stack-card-body{min-width:0;flex:1 1 auto}.stack-card-body h3{margin:0;font-family:var(--font-body);font-weight:var(--weight-semibold);font-size:var(--text-base);line-height:1.2;letter-spacing:var(--tracking-nudge);color:var(--page-fg)}.stack-card-body .role{margin:var(--space-1) 0 var(--space-1-5);font-size:var(--text-xs);line-height:1.35;color:var(--page-fg-soft)}.stack-card-meta{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-family:var(--font-body);font-size:var(--text-2xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--page-fg-soft)}.stack-card-meta .pill{display:inline-block;padding:2px var(--space-2);border-radius:var(--radius-full);border:1px solid color-mix(in srgb,var(--page-line) 90%,transparent)}.stack-card-meta .pill-current{color:var(--page-accent);border-color:color-mix(in srgb,var(--page-accent) 40%,transparent)}.stack-card-meta .pill-past{opacity:.65}.stack-card.is-past .stack-card-img{filter:saturate(.6)}.stack-grid--hardware{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(var(--space-4),2vw,var(--space-6))}.stack-card[data-kind=hardware] .stack-card-link{flex-direction:column;align-items:stretch;gap:var(--space-4);padding:var(--space-4)}.stack-card[data-kind=hardware] .stack-card-img{flex:0 0 auto;width:100%;aspect-ratio:1 / 1;height:auto;border-radius:var(--radius-lg);overflow:hidden;background:color-mix(in srgb,var(--page-card) 80%,transparent);display:grid;place-items:center;padding:0}.stack-card[data-kind=hardware] .stack-card-img img{width:100%;height:100%;object-fit:cover}.stack-card[data-kind=hardware] .stack-card-body{width:100%}.stack-card .rating{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-1) 0 var(--space-2);color:var(--page-accent)}.stack-card .rating-bar{position:relative;display:block;width:56px;height:2px;background:color-mix(in srgb,var(--page-line) 80%,transparent);border-radius:var(--radius-hairline);overflow:hidden}.stack-card .rating-fill{position:absolute;inset:0 auto 0 0;height:100%;background:currentColor;opacity:.75;transition:width .32s ease}
