.projects-section{position:relative}.projects-bento{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.project-card{background:var(--bg-glass);border:1px solid var(--glass-border);cursor:pointer;-webkit-backdrop-filter:blur(12px);will-change:transform, box-shadow, border-color;isolation:isolate;border-radius:18px;flex-direction:column;grid-column:span 1;transition:transform .3s,box-shadow .3s,border-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12,inset 0 -1px #00000014,0 4px 24px #0000001a}.project-card.project-card--featured{grid-column:span 2}.project-card:hover{border-color:var(--border-accent);box-shadow:0 1px 0 #ffffff1a inset, 0 -1px 0 #00000014 inset, 0 12px 40px #00000026, 0 0 0 1px var(--border-accent)}[data-theme=light] .project-card{box-shadow:inset 0 1px #ffffffe6,0 8px 24px #0000001a}[data-theme=light] .project-card:hover{border-color:var(--border-accent);box-shadow:inset 0 1px #ffffff14,0 12px 30px #00000026}.project-card__image{background-color:var(--bg-void);border-radius:0;flex-shrink:0;height:178px;position:relative;overflow:hidden}.project-card--featured .project-card__image{height:216px}.project-card__img{object-fit:cover;object-position:top left;filter:brightness(.95)saturate(.9);width:100%;height:100%;transition:filter .4s;display:block}.project-card:hover .project-card__img{filter:brightness(1.05)saturate(1.1)}.project-card__image-overlay{background:linear-gradient(to top, var(--bg-void) 0%, transparent 100%);pointer-events:none;opacity:.9;height:60%;transition:opacity .4s;position:absolute;bottom:0;left:0;right:0}.project-card:hover .project-card__image-overlay{opacity:1}[data-theme=light] .project-card__image-overlay{display:none}.project-card__body{flex-direction:column;flex:1;gap:9px;padding:18px 20px 20px;display:flex}.project-card__top{justify-content:space-between;align-items:flex-start;display:flex}.project-card__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-card__category{color:var(--cyan-bright);letter-spacing:.4px;font-family:Space Mono,monospace;font-size:.68rem}.project-card__featured-badge{background:var(--grad-primary);color:#fff;border-radius:20px;padding:2px 8px;font-family:Inter,sans-serif;font-size:.6rem;font-weight:600}.project-card__links{gap:7px;display:flex}.project-card__link-btn{background:var(--bg-glass);border:1px solid var(--glass-border);width:30px;height:30px;color:var(--text-secondary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:8px;justify-content:center;align-items:center;font-size:.88rem;transition:border-color .1s,color .2s,background .2s;display:flex}.project-card__link-btn:hover{border-color:var(--border-accent);color:var(--violet-bright);background:var(--violet-dim)}.project-card__title{color:var(--text-primary);font-family:Space Grotesk,sans-serif;font-size:1.05rem;font-weight:700;line-height:1.3}.project-card--featured .project-card__title{font-size:1.25rem}.project-card__desc{color:var(--text-muted);line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;font-size:.77rem;line-height:1.68;display:-webkit-box;overflow:hidden}.project-card--featured .project-card__desc{line-clamp:4;-webkit-line-clamp:4}.project-card__footer{border-top:1px solid var(--glass-border);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:11px;display:flex}.project-card__tech{flex-wrap:wrap;flex:1;gap:5px;min-width:0;display:flex}.project-card__tag{background:var(--cyan-dim);border:1px solid var(--border-cyan);color:var(--cyan-bright);white-space:nowrap;border-radius:20px;padding:3px 9px;font-family:Space Mono,monospace;font-size:.63rem}.project-card__tag--more{background:var(--violet-dim);border-color:var(--border-accent);color:var(--violet-bright)}.project-card__cta{color:var(--violet-bright);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;transition:gap .11s;display:flex}.project-card:hover .project-card__cta{gap:6px}@media (max-width:1100px){.projects-bento{grid-template-columns:repeat(2,1fr)}.project-card,.project-card--featured{grid-column:span 1}}@media (max-width:768px){.projects-bento{flex-direction:column;gap:14px;display:flex}.project-card,.project-card--featured{width:100%}.project-card__image{height:180px}.project-card--featured .project-card__image{height:200px}}@media (max-width:600px){.projects-bento{gap:12px}.project-card__image{height:160px}.project-card--featured .project-card__image{height:175px}.project-card__footer{flex-wrap:wrap;gap:8px}}@media (max-width:480px){.projects-bento{gap:10px}.project-card__body{padding:14px 16px 16px}.project-card__image{height:150px}.project-card--featured .project-card__image{height:165px}.project-card__title{font-size:.95rem}}@media (max-width:375px){.project-card__body{padding:12px 14px 14px}.project-card__image{height:135px}}@media (max-width:1023px){.project-card__tech{align-items:center;gap:6px}.project-card__tech .skill-chip{box-sizing:border-box;border-radius:6px;gap:4px;height:24px;padding:3px 8px;font-size:.65rem}.project-card__tech .skill-chip__icon{font-size:.75rem}.project-card__tag{box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;height:24px;padding:3px 8px;font-size:.65rem;display:inline-flex}.project-card__desc{flex:none;max-height:5.04em;margin-bottom:0}.project-card--featured .project-card__desc{max-height:6.72em}}@media (min-width:1024px){.project-card__tech{flex-wrap:nowrap;align-items:center;gap:6px;overflow:hidden}.project-card__tech .skill-chip{box-sizing:border-box;border-radius:8px;flex-shrink:1;gap:4px;min-width:0;height:28px;padding:4px 8px;font-size:.68rem}.project-card__tech .skill-chip__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-card__tech .skill-chip__icon{flex-shrink:0;font-size:.8rem}.project-card__tag{box-sizing:border-box;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;height:28px;padding:4px 10px;font-size:.68rem;display:inline-flex}.project-card__desc{flex:none;margin-bottom:auto}}
