.showcase{margin-bottom:3.5rem}.showcase-lede{text-align:center;color:var(--text-muted);max-width:560px;margin:0 auto 2rem;font-size:1rem;line-height:1.6}.showcase-lede strong{color:var(--color-primary-dark);font-weight:600}.showcase-grid{grid-template-columns:repeat(2,1fr);gap:2rem;display:grid}.showcase-card{--accent:var(--color-primary);background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--text-strong) 8%, transparent);border-radius:0;flex-direction:column;scroll-margin-top:6rem;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s,border-color .3s;display:flex;overflow:hidden}.showcase-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.showcase-gallery{background:var(--bg-dark);border-bottom:1px solid var(--border-hairline);display:grid}.showcase-gallery.has-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.showcase-capture{min-width:0;margin:0}.showcase-capture a{display:block}.showcase-capture img{width:100%;height:auto;display:block}.showcase-gallery.is-contained{padding-top:1.5rem}.showcase-gallery.is-contained img{width:auto;max-width:100%;max-height:400px;margin-inline:auto}.showcase-gallery.has-pair img{aspect-ratio:2360/1664;-o-object-fit:contain;object-fit:contain}.showcase-capture figcaption{color:var(--text-muted);padding:.75rem 1rem;font-size:.75rem;line-height:1.5}.showcase-note{color:var(--text-muted);margin:-.25rem 0 1.25rem;font-size:.85rem;line-height:1.6}.showcase-release{color:var(--text-secondary);font-family:var(--font-mono);font-size:.75rem}.showcase-preview{border-bottom:1px solid color-mix(in srgb, var(--text-strong) 6%, transparent);background:#0a0e1a;line-height:0;display:block;position:relative;overflow:hidden}.product-preview-svg{aspect-ratio:1200/620;width:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);display:block}.showcase-card:hover .product-preview-svg{transform:scale(1.03)}.showcase-live{backdrop-filter:blur(6px);color:#fff;letter-spacing:.04em;background:#0206178c;border:1px solid #ffffff26;border-radius:0;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex;position:absolute;top:1rem;right:1rem}.showcase-live-dot{background:var(--color-secondary-light);border-radius:50%;width:8px;height:8px;animation:2s infinite showcasePulse}@keyframes showcasePulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-secondary-light) 60%, transparent)}70%{box-shadow:0 0 0 8px color-mix(in srgb, var(--color-secondary-light) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-secondary-light) 0%, transparent)}}.showcase-body{flex-direction:column;flex:1;padding:1.75rem;display:flex}.showcase-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.showcase-category{letter-spacing:.02em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:0;padding:.3rem .7rem;font-size:.75rem;font-weight:700;display:inline-block}.showcase-name{color:var(--text-strong);letter-spacing:-.01em;margin-bottom:.25rem;font-size:1.6rem;font-weight:800}.showcase-tagline{color:var(--accent);margin-bottom:.85rem;font-size:1rem;font-weight:600}.showcase-audience{color:var(--text-muted);margin:0 0 1rem;font-size:.85rem;line-height:1.5}.showcase-capture a:focus{outline:2px solid var(--color-primary);outline-offset:-3px}.showcase-visit:focus{outline:2px solid var(--color-primary);outline-offset:4px}.showcase-desc{color:var(--text-secondary);margin-bottom:1.25rem;font-size:.95rem;line-height:1.65}.showcase-tech{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.showcase-chip{color:var(--text-secondary);background:var(--bg-chip);border:1px solid color-mix(in srgb, var(--text-strong) 6%, transparent);border-radius:0;padding:.3rem .7rem;font-size:.75rem;font-weight:600}.showcase-actions{margin-top:auto}.showcase-visit{color:#fff;background:var(--accent);border-radius:0;align-items:center;gap:.5rem;padding:.7rem 1.4rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,filter .2s;display:inline-flex}.showcase-visit:hover{filter:brightness(1.05)}.showcase-visit svg{transition:transform .2s}.showcase-visit:hover svg{transform:translate(2px,-2px)}.showcase-card.is-featured{grid-column:1/-1}.showcase-card.is-featured .showcase-body{padding:2rem 2.25rem 2.25rem}.showcase-card.is-featured .showcase-live{inset:auto auto 1rem 1rem}.showcase-actions{flex-wrap:wrap;gap:.75rem;display:flex}.showcase-visit.is-secondary{color:var(--text-strong);border:1px solid var(--border-glass-strong);background:0 0}.showcase-visit.is-secondary:hover{border-color:var(--text-strong);filter:none}.showcase-card .showcase-category,.showcase-card .showcase-tagline{color:color-mix(in srgb, var(--accent) 55%, #fff)}.showcase-card .showcase-category{background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.showcase-card .showcase-visit:not(.is-secondary){color:var(--text-on-primary);background:var(--color-primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 60%, transparent), 0 8px 24px -10px var(--accent)}.showcase-card .showcase-visit:not(.is-secondary):hover{background:var(--color-primary-light);filter:none}.showcase-divider{letter-spacing:.1em;text-transform:uppercase;max-width:1400px;color:var(--text-muted);align-items:center;gap:1rem;margin:0 auto 2.5rem;font-size:.8rem;font-weight:700;display:flex}.showcase-divider:before,.showcase-divider:after{content:"";background:color-mix(in srgb, var(--text-strong) 10%, transparent);flex:1;height:1px}@media (width<=900px){.showcase-grid{grid-template-columns:1fr}.showcase-card.is-featured .showcase-body{padding:1.35rem}}@media (width<=768px){.showcase-gallery.has-pair{grid-template-columns:1fr}.showcase-lede{font-size:.95rem}.showcase-body{padding:1.35rem}.showcase-name{font-size:1.35rem}}.projects-page{max-width:1040px;padding:4.5rem 5.5rem 5.5rem}.projects-grid{flex-direction:column;display:flex}.project-card{border-bottom:1px solid var(--border-hairline);grid-template-columns:172px minmax(0,1fr);gap:2.5rem;padding:2rem 0;display:grid;position:relative}.project-logo{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.project-logo .project-company{margin-top:.25rem}.project-logo-img{box-sizing:border-box;-o-object-fit:contain;object-fit:contain;background:var(--color-primary);opacity:1;border-radius:8px;width:auto;max-width:min(100%,148px);height:48px;padding:8px 12px;display:block}.project-card:hover .project-logo-img{opacity:1}.projects-tabs{gap:.5rem;margin:0 0 2.5rem;display:flex}.projects-tab{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border-glass);transition:color var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.projects-tab:hover{color:var(--text-strong);border-color:var(--border-glass-strong)}.projects-tab.is-active{color:var(--text-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.projects-tab-count{font-family:var(--font-mono);letter-spacing:0;opacity:.7}.project-content{min-width:0}.project-company,.project-role{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem}.project-role{text-transform:none;letter-spacing:.02em;color:var(--text-faint)}.project-title{letter-spacing:-.015em;color:var(--text-strong);background-image:linear-gradient(var(--text-strong), var(--text-strong));transition:background-size var(--transition-base);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;margin:0;font-size:1.375rem;font-weight:600;display:inline}.project-card:hover .project-title{background-size:100% 1px}.project-subtitle{color:var(--text-secondary);margin:.375rem 0 0;font-size:.9375rem}.project-description{color:var(--text-secondary);max-width:66ch;margin:.875rem 0 0;font-size:.9375rem;line-height:1.6}.project-tech{flex-wrap:wrap;gap:0 .5rem;margin-top:.875rem;display:flex}.tech-tag{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem;line-height:1.8}.tech-tag+.tech-tag:before{content:"· ";color:var(--text-faint)}.project-highlights{margin-top:1.125rem}.project-highlights h4{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .5rem;font-size:.75rem;font-weight:400}.project-highlights ul{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.project-highlights li{max-width:66ch;color:var(--text-secondary);padding-left:1rem;font-size:.9375rem;line-height:1.55;position:relative}.project-highlights li:before{content:"";background:var(--text-faint);width:4px;height:1px;position:absolute;top:.6em;left:0}.project-link{color:var(--text-strong);border-bottom:1px solid var(--border-glass-strong);transition:border-color var(--transition-fast);align-items:center;gap:.375rem;margin-top:1.125rem;padding-bottom:1px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.project-link:hover{border-bottom-color:var(--text-strong)}.project-link.is-note{color:var(--text-muted);font-weight:400;font-family:var(--font-mono);border-bottom:0;font-size:.75rem}.project-link svg{width:14px;height:14px}.project-glow{display:none}.projects-note{border-top:1px solid var(--border-glass);gap:1rem;margin-top:2.5rem;padding-top:2rem;display:flex}.note-icon{color:var(--text-faint);flex-shrink:0}.note-icon svg{width:20px;height:20px}.note-content h4{color:var(--text-strong);margin:0 0 .375rem;font-size:.9375rem;font-weight:600}.note-content p{color:var(--text-secondary);max-width:66ch;margin:0;font-size:.9375rem;line-height:1.6}.github-cta{margin-top:2.5rem}.github-btn{color:var(--bg-dark);background:var(--text-strong);transition:background var(--transition-fast);align-items:center;gap:.5rem;padding:.8125rem 1.5rem;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-flex}.github-btn:hover{background:var(--color-primary-light)}.github-btn svg{width:18px;height:18px}@media (width<=1024px){.projects-page{padding:3.5rem 2.5rem 4rem}.project-card{grid-template-columns:120px minmax(0,1fr);gap:1.75rem}}@media (width<=768px){.projects-page{padding:2rem 1.25rem 3rem}.project-card{grid-template-columns:1fr;gap:.875rem;padding:1.75rem 0}.project-logo{flex-flow:wrap;align-items:center;gap:.25rem .625rem}.project-logo .project-company{margin-top:0}.project-logo-img{opacity:1;width:auto;max-width:128px;height:36px;padding:6px 10px}.project-title{font-size:1.25rem}}.projects-tab{border-radius:999px}
