.mobile-card:where(.astro-3NO3QA3F){border:1px solid rgba(255,255,255,.06);border-radius:10px;background:rgba(255,255,255,.02);padding:1.5rem;transition:all .25s ease;display:flex;flex-direction:column;align-items:center;height:100%}.mobile-card:where(.astro-3NO3QA3F):hover{border-color:#ffffff1f;background:rgba(255,255,255,.03);transform:translateY(-2px)}.phone-frame:where(.astro-3NO3QA3F){background:#18181b;border-radius:20px;padding:.75rem .5rem;width:160px;margin-bottom:1.25rem;border:1px solid rgba(255,255,255,.06)}.phone-notch:where(.astro-3NO3QA3F){width:40px;height:3px;background:#27272a;border-radius:2px;margin:0 auto .5rem}.phone-screen:where(.astro-3NO3QA3F){border-radius:12px;overflow:hidden;height:220px;background:#09090b}.screen-img:where(.astro-3NO3QA3F){width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:.85;transition:all .3s ease}.mobile-card:where(.astro-3NO3QA3F):hover .screen-img:where(.astro-3NO3QA3F){opacity:1;transform:scale(1.03)}.card-body:where(.astro-3NO3QA3F){text-align:center;display:flex;flex-direction:column;flex:1;width:100%}.card-meta:where(.astro-3NO3QA3F){display:flex;justify-content:center;gap:.625rem;margin-bottom:.5rem}.card-category:where(.astro-3NO3QA3F){font-size:.7rem;font-weight:500;color:#6366f1;text-transform:uppercase;letter-spacing:.05em}.card-year:where(.astro-3NO3QA3F){font-size:.7rem;color:#52525b;font-weight:500}.card-name:where(.astro-3NO3QA3F){font-size:1rem;font-weight:600;color:#e4e4e7;margin-bottom:.375rem;letter-spacing:-.01em}.card-desc:where(.astro-3NO3QA3F){font-size:.825rem;line-height:1.5;color:#71717a;margin:0 0 1rem;flex:1}.card-actions:where(.astro-3NO3QA3F){display:flex;gap:.5rem;justify-content:center;margin-top:auto}.action-link:where(.astro-3NO3QA3F){display:inline-flex;align-items:center;gap:.375rem;padding:.4rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:#a1a1aa;font-size:.75rem;font-weight:500;text-decoration:none;transition:all .2s ease}.action-link:where(.astro-3NO3QA3F):hover{color:#fafafa;border-color:#fff3;background:rgba(255,255,255,.04)}.action-link:where(.astro-3NO3QA3F) svg:where(.astro-3NO3QA3F){width:14px;height:14px;stroke-width:2}.action-primary:where(.astro-3NO3QA3F){background:rgba(99,102,241,.1);border-color:#6366f133;color:#818cf8}.action-primary:where(.astro-3NO3QA3F):hover{background:rgba(99,102,241,.2);border-color:#6366f14d;color:#a5b4fc}.project-card:where(.astro-TKM2RSZC){border:1px solid rgba(255,255,255,.06);border-radius:10px;background:rgba(255,255,255,.02);overflow:hidden;transition:all .25s ease;display:flex;flex-direction:column;height:100%}.project-card:where(.astro-TKM2RSZC):hover{border-color:#ffffff1f;background:rgba(255,255,255,.03);transform:translateY(-2px)}.card-image:where(.astro-TKM2RSZC){height:180px;overflow:hidden;background:#18181b}.project-img:where(.astro-TKM2RSZC){width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:.8;transition:all .3s ease}.project-card:where(.astro-TKM2RSZC):hover .project-img:where(.astro-TKM2RSZC){opacity:1;transform:scale(1.03)}.card-body:where(.astro-TKM2RSZC){padding:1.25rem;display:flex;flex-direction:column;flex:1}.card-meta:where(.astro-TKM2RSZC){display:flex;align-items:center;gap:.625rem;margin-bottom:.625rem}.card-category:where(.astro-TKM2RSZC){font-size:.7rem;font-weight:500;color:#6366f1;text-transform:uppercase;letter-spacing:.05em}.card-year:where(.astro-TKM2RSZC){font-size:.7rem;color:#52525b;font-weight:500}.card-name:where(.astro-TKM2RSZC){font-size:1.1rem;font-weight:600;color:#e4e4e7;margin-bottom:.5rem;letter-spacing:-.01em;transition:color .2s ease}.project-card:where(.astro-TKM2RSZC):hover .card-name:where(.astro-TKM2RSZC){color:#fafafa}.card-desc:where(.astro-TKM2RSZC){font-size:.85rem;line-height:1.6;color:#71717a;margin:0 0 1.25rem;flex:1}.card-actions:where(.astro-TKM2RSZC){display:flex;gap:.5rem;margin-top:auto}.action-link:where(.astro-TKM2RSZC){display:inline-flex;align-items:center;gap:.375rem;padding:.4rem .75rem;border:1px solid rgba(255,255,255,.08);border-radius:6px;color:#a1a1aa;font-size:.75rem;font-weight:500;text-decoration:none;transition:all .2s ease}.action-link:where(.astro-TKM2RSZC):hover{color:#fafafa;border-color:#fff3;background:rgba(255,255,255,.04)}.action-link:where(.astro-TKM2RSZC) svg:where(.astro-TKM2RSZC){width:14px;height:14px;stroke-width:2}.action-primary:where(.astro-TKM2RSZC){background:rgba(99,102,241,.1);border-color:#6366f133;color:#818cf8}.action-primary:where(.astro-TKM2RSZC):hover{background:rgba(99,102,241,.2);border-color:#6366f14d;color:#a5b4fc}.projects-hero:where(.astro-AID3SR62){padding:6rem 0 4rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.06);animation:fadeInUp .6s ease both}@media (min-width: 768px){.projects-hero:where(.astro-AID3SR62){padding:8rem 0 5rem}}.hero-eyebrow:where(.astro-AID3SR62){font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:#6366f1;margin-bottom:1rem}.hero-title:where(.astro-AID3SR62){font-size:2.75rem;font-weight:700;letter-spacing:-.04em;margin-bottom:1rem;color:#fafafa}@media (min-width: 768px){.hero-title:where(.astro-AID3SR62){font-size:4rem}}.wavy-accent:where(.astro-AID3SR62){width:120px;height:12px;display:block;margin:0 auto 1.25rem;opacity:.8}.hero-desc:where(.astro-AID3SR62){font-size:1.05rem;color:#71717a;line-height:1.6;max-width:480px;margin:0 auto}.projects-section:where(.astro-AID3SR62){padding:3rem 0;border-top:1px solid rgba(255,255,255,.06)}.section-header:where(.astro-AID3SR62){margin-bottom:2rem}.section-label:where(.astro-AID3SR62){font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#71717a}.web-grid:where(.astro-AID3SR62){display:grid;gap:1.25rem}@media (min-width: 768px){.web-grid:where(.astro-AID3SR62){grid-template-columns:repeat(2,1fr)}}.mobile-grid:where(.astro-AID3SR62){display:grid;gap:1.25rem}@media (min-width: 640px){.mobile-grid:where(.astro-AID3SR62){grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.mobile-grid:where(.astro-AID3SR62){grid-template-columns:repeat(3,1fr)}}.projects-cta:where(.astro-AID3SR62){text-align:center;padding:4rem 0;border-top:1px solid rgba(255,255,255,.06)}.cta-text:where(.astro-AID3SR62){font-size:.9rem;color:#52525b;margin-bottom:1.25rem}.cta-btn:where(.astro-AID3SR62){display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#a1a1aa;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s ease}.cta-btn:where(.astro-AID3SR62):hover{color:#fafafa;border-color:#ffffff40;background:rgba(255,255,255,.04)}.cta-btn:where(.astro-AID3SR62) svg:where(.astro-AID3SR62){width:16px;height:16px;stroke-width:2}
