.projects-hero{min-height:45vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding-top:70px}.projects-hero-animate>*{opacity:0;animation:fadeUp .7s ease forwards}.projects-hero-animate>*:nth-child(1){animation-delay:.1s}.projects-hero-animate>*:nth-child(2){animation-delay:.25s}.projects-hero-animate>*:nth-child(3){animation-delay:.38s}.projects-hero-animate>*:nth-child(4){animation-delay:.5s}.hero-breadcrumb{position:absolute;top:86px;left:50%;transform:translate(-50%);width:100%;max-width:1280px;padding:0 40px;display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted, #4A5A78);font-family:var(--font-body)}.hero-breadcrumb a{color:var(--text-muted, #4A5A78);text-decoration:none;transition:color .25s ease}.hero-breadcrumb a:hover{color:var(--accent)}.hero-breadcrumb-sep{opacity:.4}.hero-breadcrumb-current{color:var(--accent);font-weight:500}.hero-eyebrow{font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px}.hero-eyebrow:before,.hero-eyebrow:after{content:"";display:none}.hero-stat-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px}.hero-stat-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:999px;background:#0d1525d9;border:1px solid rgba(255,255,255,.3);font-family:var(--font-body);font-size:.78rem;font-weight:500;color:#e2e8f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-stat-pill-num{color:var(--accent);font-weight:700;font-family:var(--font-display)}.projects-section{padding:80px 0 100px;background:var(--navy-950, #080D16)}.projects-count{font-family:var(--font-body);font-size:.83rem;color:#4a5a78;margin-top:6px}.projects-count span{color:var(--accent);font-weight:700;font-family:var(--font-display)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem}@media(max-width:1023px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.projects-grid{grid-template-columns:1fr}}.project-card{background:var(--navy-800, #111927);border:1px solid rgba(255,255,255,.06);border-radius:1rem;overflow:hidden;display:flex;flex-direction:column;height:100%;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;cursor:pointer;position:relative}.project-card:hover{transform:translateY(-6px);border-color:#ffffff4d;box-shadow:0 8px 32px #ffffff1f}.card-image-wrap{width:100%;height:220px;overflow:hidden;position:relative;flex-shrink:0}.card-image-wrap img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transition:transform .5s ease;display:block}.project-card:hover .card-image-wrap img{transform:scale(1.04)}.card-img-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.card-img-fallback-letter{font-family:var(--font-display, "Syne", sans-serif);font-size:4rem;font-weight:800;color:#f8faff1f;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;line-height:1}.card-badge-number{position:absolute;top:10px;left:12px;background:#080d16c2;color:#4a5a78;font-family:var(--font-display);font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;letter-spacing:.05em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2}.card-badge-featured{position:absolute;top:10px;right:12px;background:#ffffff26;color:var(--accent);font-family:var(--font-body);font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;display:flex;align-items:center;gap:4px}.card-content{padding:1.25rem 1.4rem;display:flex;flex-direction:column;gap:.55rem;flex:1}.card-title{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:#f0f4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.card-description{font-family:var(--font-body);font-size:.8rem;line-height:1.55;color:#8a9bbe;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-client{font-family:var(--font-body);font-size:.75rem;color:#4a5a78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-tech-row{display:flex;gap:6px;flex-wrap:nowrap;overflow:hidden;align-items:center}.card-tech-badge{display:inline-flex;align-items:center;gap:4px;background:#0d1525;border:1px solid rgba(255,255,255,.06);border-radius:999px;padding:3px 9px;font-family:var(--font-body);font-size:.68rem;color:#8a9bbe;white-space:nowrap;flex-shrink:0}.card-tech-badge img{width:14px;height:14px;-o-object-fit:contain;object-fit:contain;flex-shrink:0}.card-tech-badge img.icon-invert{filter:invert(1) brightness(.85)}.card-footer{margin-top:auto;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:8px}.card-footer.no-demo{justify-content:flex-start}.card-footer.has-demo{justify-content:space-between}.btn-view-details{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--accent);font-family:var(--font-body);font-size:.8rem;font-weight:500;cursor:pointer;transition:background .2s ease,box-shadow .2s ease;text-decoration:none;line-height:1}.btn-view-details:hover{background:#ffffff14;box-shadow:0 0 10px #ffffff26}.btn-live-demo{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:999px;border:none;background:#fff;color:#000;font-family:var(--font-body);font-size:.8rem;font-weight:700;cursor:pointer;transition:opacity .2s ease,box-shadow .2s ease;text-decoration:none;line-height:1}.btn-live-demo:hover{opacity:.9;box-shadow:0 0 14px #ffffff59}.project-card.reveal{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease,border-color .3s ease,box-shadow .3s ease}.project-card.reveal.visible{opacity:1;transform:translateY(0)}.project-card.reveal.visible:hover{transform:translateY(-6px)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-card{background:var(--navy-800, #111927);border:1px solid rgba(255,255,255,.05);border-radius:1rem;overflow:hidden;display:flex;flex-direction:column}.skeleton-image{width:100%;height:220px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff17,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;flex-shrink:0}.skeleton-body{padding:1.25rem 1.4rem;display:flex;flex-direction:column;gap:.65rem;flex:1}.skeleton-line{height:14px;border-radius:6px;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff17,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.skeleton-line.title{height:18px;width:70%}.skeleton-line.full{width:100%}.skeleton-line.wide{width:88%}.skeleton-line.med{width:60%}.skeleton-line.short{width:40%}.skeleton-line.footer{height:30px;width:55%;margin-top:4px;border-radius:999px}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:72px 24px;text-align:center}.empty-state-icon{font-size:3rem;line-height:1;margin-bottom:8px}.empty-state-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:#f0f4ff}.empty-state-sub{font-family:var(--font-body);font-size:.88rem;color:#4a5a78}.modal-overlay{position:fixed;inset:0;z-index:9000;background:#000000e0;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.modal-overlay.active{opacity:1;visibility:visible}.modal-panel{background:var(--navy-800, #111927);border:1px solid rgba(255,255,255,.3);border-radius:1.5rem;max-width:720px;width:100%;max-height:90vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--accent) var(--navy-900);padding:0;transform:translateY(40px);transition:transform .4s ease-out;position:relative}.modal-overlay.active .modal-panel{transform:translateY(0)}.modal-overlay.closing .modal-panel{transform:translateY(40px);transition:transform .3s ease-in}.modal-overlay.closing{opacity:0;transition:opacity .3s ease}.modal-panel::-webkit-scrollbar{width:5px}.modal-panel::-webkit-scrollbar-track{background:var(--navy-900)}.modal-panel::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}.modal-hero-img{width:100%;height:280px;overflow:hidden;border-radius:1.5rem 1.5rem 0 0;position:relative;flex-shrink:0}.modal-hero-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;display:block}.modal-hero-img .modal-img-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.modal-hero-img .modal-img-fallback-letter{font-family:var(--font-display);font-size:5rem;font-weight:800;color:#f8faff1a;-webkit-user-select:none;-moz-user-select:none;user-select:none}.modal-close-btn{position:absolute;top:14px;right:14px;z-index:10;width:36px;height:36px;border-radius:50%;background:#080d16bf;border:1px solid rgba(255,255,255,.12);color:#f0f4ff;font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);line-height:1}.modal-close-btn:hover{background:#1e2d40eb}.modal-body{padding:1.75rem 2rem;display:flex;flex-direction:column;gap:0}.modal-section-label{font-family:var(--font-body);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.5rem}.modal-divider{height:1px;background:#ffffff0f;margin:1.25rem 0}.modal-tech-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1rem}.modal-tech-badge{display:inline-flex;align-items:center;gap:4px;background:#0d1525;border:1px solid rgba(255,255,255,.07);border-radius:999px;padding:4px 10px;font-family:var(--font-body);font-size:.72rem;color:#8a9bbe}.modal-tech-badge img{width:14px;height:14px;-o-object-fit:contain;object-fit:contain}.modal-tech-badge img.icon-invert{filter:invert(1) brightness(.85)}.modal-featured-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;background:#ffffff1f;color:var(--accent);font-family:var(--font-body);font-size:.75rem;font-weight:600;margin-bottom:.75rem;width:-moz-fit-content;width:fit-content}.modal-title{font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:#f0f4ff;margin-bottom:.75rem;line-height:1.2}.modal-meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:.25rem}.modal-meta-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;background:#0d1525;border:1px solid rgba(255,255,255,.06);font-family:var(--font-body);font-size:.75rem;color:#4a5a78}.modal-text{font-family:var(--font-body);font-size:.9rem;line-height:1.7;color:#8a9bbe}.modal-feature-list{display:flex;flex-direction:column;list-style:none;padding:0;margin:0}.modal-feature-item{display:flex;align-items:flex-start;gap:10px;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.modal-feature-item:last-child{border-bottom:none}.modal-feature-arrow{color:var(--accent);font-weight:700;flex-shrink:0;margin-top:1px;font-size:.9rem}.modal-feature-text{font-family:var(--font-body);font-size:.875rem;color:#8a9bbe;line-height:1.5}.btn-live-demo-modal{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:.875rem;border-radius:999px;border:none;background:#fff;color:#000;font-family:var(--font-body);font-size:.95rem;font-weight:700;cursor:pointer;text-decoration:none;transition:opacity .2s ease,box-shadow .2s ease;margin-top:.25rem}.btn-live-demo-modal:hover{opacity:.9;box-shadow:0 0 20px #fff6}.modal-footer{padding:0 2rem 1.75rem;display:flex;justify-content:center}.btn-modal-close{display:inline-flex;align-items:center;padding:8px 32px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--accent);font-family:var(--font-body);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s ease,box-shadow .2s ease}.btn-modal-close:hover{background:#ffffff14;box-shadow:0 0 12px #ffffff26}@media(max-width:767px){.projects-section{padding:56px 0 72px}.projects-hero{min-height:55vh}.hero-breadcrumb{padding:0 24px}.modal-panel{max-width:100%;max-height:100vh;border-radius:0;margin:0}.modal-overlay{padding:0;align-items:flex-end}.modal-overlay .modal-panel{border-radius:1.25rem 1.25rem 0 0;max-height:92vh}.modal-hero-img{height:200px;border-radius:1.25rem 1.25rem 0 0}.modal-body{padding:1.25rem}.modal-footer{padding:0 1.25rem 1.5rem}.modal-title{font-size:1.3rem}.hero-stat-pills{gap:8px}.hero-stat-pill{font-size:.72rem;padding:5px 12px}}@media(max-width:480px){.hero-breadcrumb{top:80px}.projects-section{padding:44px 0 60px}}
