.JGCjrW_card{border:1px solid var(--border-color);cursor:pointer;background:#0d1929;border-radius:16px;width:100%;height:320px;text-decoration:none;transition:border-color .3s,transform .3s;display:block;position:relative;overflow:hidden}.JGCjrW_card:hover{border-color:var(--project-color-hover);transform:translateY(-4px)}.JGCjrW_image{background-position:50%;background-size:cover;background-image:var(--project-media);transition:clip-path .65s cubic-bezier(.77,0,.18,1);position:absolute;inset:0}.JGCjrW_imageOverlay{background:var(--image-overlay);position:absolute;inset:0}.JGCjrW_card.JGCjrW_even .JGCjrW_image{clip-path:polygon(0 0,48% 0,60% 100%,0 100%)}.JGCjrW_card.JGCjrW_even:hover .JGCjrW_image{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.JGCjrW_card.JGCjrW_odd .JGCjrW_image{clip-path:polygon(40% 0,100% 0,100% 100%,52% 100%)}.JGCjrW_card.JGCjrW_odd:hover .JGCjrW_image{clip-path:polygon(0 0,0 0,0 100%,0 100%)}.JGCjrW_text{flex-direction:column;justify-content:center;padding:2rem;transition:opacity .25s;display:flex;position:absolute;inset:0}.JGCjrW_card.JGCjrW_even .JGCjrW_text{padding-left:52%}.JGCjrW_card.JGCjrW_odd .JGCjrW_text{padding-right:52%}.JGCjrW_card:hover .JGCjrW_text{opacity:0}.JGCjrW_subtitle{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--project-color);margin-bottom:6px;font-size:10px}.JGCjrW_title{color:var(--text-primary);margin-bottom:10px;font-size:clamp(16px,2.5vw,20px);font-weight:600;line-height:1.2}.JGCjrW_description{color:var(--text-secondary);margin-bottom:14px;font-size:12px;line-height:1.75}.JGCjrW_techList{flex-wrap:wrap;gap:5px;display:flex}.JGCjrW_techTag{font-family:var(--font-mono);color:var(--project-color);background:var(--tag-bg);border-radius:3px;padding:2px 8px;font-size:9px}.JGCjrW_hoverOverlay{opacity:0;background:linear-gradient(#0000 40%,#0d0f14ee 100%);flex-direction:column;justify-content:flex-end;padding:2rem;transition:opacity .4s;display:flex;position:absolute;inset:0}.JGCjrW_card:hover .JGCjrW_hoverOverlay{opacity:1}.JGCjrW_hoverTitle{color:#fff;margin-bottom:4px;font-size:clamp(18px,3vw,24px);font-weight:700}.JGCjrW_hoverCta{font-family:var(--font-mono);color:var(--project-color);font-size:11px}.JGCjrW_accentBar{opacity:.25;background:var(--project-color);height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.JGCjrW_card:hover .JGCjrW_accentBar{opacity:1}@media (max-width:640px){.JGCjrW_card{height:auto;min-height:280px}.JGCjrW_card.JGCjrW_even .JGCjrW_text,.JGCjrW_card.JGCjrW_odd .JGCjrW_text{padding:55% 1.5rem 1.5rem}}
._4ccqhG_main{max-width:var(--container-max);padding:var(--section-padding) var(--container-padding);margin:0 auto}._4ccqhG_backLink{font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:2.5rem;font-size:12px;text-decoration:none;display:inline-flex}._4ccqhG_pageHeader{margin-bottom:3rem}._4ccqhG_sectionNum{font-family:var(--font-mono);color:var(--color-teal);margin-bottom:8px;font-size:13px}._4ccqhG_pageTitle{color:var(--text-primary);margin-bottom:.75rem;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:500}._4ccqhG_pageSubtitle{color:var(--text-secondary);max-width:480px;font-size:15px;line-height:1.7}._4ccqhG_grid{gap:1.25rem;display:grid}
