.infatix-portfolio-section{background:#f5f7fa;padding:6.5rem 0 7rem;position:relative;overflow:hidden}.infatix-portfolio-section:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 12% 10%,rgba(27,59,111,.04) 0,transparent 68%),radial-gradient(ellipse 55% 40% at 88% 88%,rgba(93,179,203,.05) 0,transparent 65%);pointer-events:none}.infatix-portfolio-wrap{max-width:1260px;margin:0 auto;padding:0 3rem;position:relative}.infatix-portfolio-hd{text-align:center;margin-bottom:3rem}.infatix-portfolio-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:Outfit,sans-serif;font-size:.7rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:#1B3B6F;margin-bottom:.95rem}.infatix-portfolio-eyebrow:after,.infatix-portfolio-eyebrow:before{content:"";display:block;width:28px;height:1px;background:#5db3cb}.infatix-portfolio-h2{font-family:Outfit,sans-serif;font-size:clamp(2rem,4vw,3rem);font-weight:600;color:#111;letter-spacing:-.04em;line-height:1.1;margin-bottom:.95rem}.infatix-portfolio-h2 em{font-style:italic;background:linear-gradient(135deg,#1B3B6F 20%,#5db3cb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.infatix-portfolio-lead{font-family:Outfit,sans-serif;font-size:.975rem;color:#666;max-width:520px;margin:0 auto;line-height:1.72}.infatix-portfolio-tabs-outer{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:2.5rem}.infatix-portfolio-tabs-outer::-webkit-scrollbar{display:none}.infatix-portfolio-tabs-row{display:flex;gap:.4rem;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin:0 auto;padding:2px}.ip-tab{display:inline-flex;align-items:center;gap:7px;padding:.5rem 1rem;border:1px solid #e2e2e6;border-radius:6px;background:white;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;white-space:nowrap;font-family:Outfit,sans-serif}.ip-tab:hover:not(.ip-tab-on){border-color:rgba(27,59,111,.25);background:rgba(27,59,111,.03)}.ip-tab.ip-tab-on{background:#1B3B6F;border-color:#1B3B6F}.ip-tab.ip-tab-on:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:0;background:#5db3cb;animation:ipBarFill 5s linear forwards}@keyframes ipBarFill{0%{width:0}to{width:100%}}.ip-tab-n{font-size:.65rem;font-weight:700;color:#bbb;transition:color .2s ease}.ip-tab-on .ip-tab-n{color:rgba(255,255,255,.4)}.ip-tab-lbl{font-size:.8rem;font-weight:500;color:#333;transition:color .2s ease}.ip-tab-on .ip-tab-lbl{color:white}.ip-tab-skeleton{pointer-events:none;background:#f0f0f0!important;border-color:#e2e2e6!important;min-width:100px}.ip-tab-lbl-skel,.ip-tab-n-skel{display:inline-block;border-radius:3px;background:linear-gradient(90deg,#e8e8e8 25%,#d8d8d8 50%,#e8e8e8 75%);background-size:200% 100%;animation:ipShim 1.4s ease infinite}.ip-tab-n-skel{width:18px;height:10px}.ip-tab-lbl-skel{width:65px;height:11px}.ip-item{display:none}.ip-item.ip-on{display:block}.ip-devices{position:relative;margin-bottom:2.25rem;height:500px}.ip-desktop{position:absolute;top:0;left:0;bottom:0;background:#181818;border-radius:10px;padding:9px;box-shadow:0 0 0 1px rgba(0,0,0,.18),0 8px 24px rgba(0,0,0,.12),0 28px 64px rgba(0,0,0,.14),0 60px 120px rgba(0,0,0,.1);transition:box-shadow .4s ease;z-index:2}.ip-desktop:hover{box-shadow:0 0 0 1px rgba(0,0,0,.18),0 12px 32px rgba(0,0,0,.15),0 36px 80px rgba(0,0,0,.17),0 70px 140px rgba(0,0,0,.12)}.ip-desktop:before{content:"";position:absolute;top:9px;left:9px;right:9px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);z-index:20;pointer-events:none;border-radius:2px}.ip-desktop-screen{width:100%;height:100%;border-radius:3px;overflow:hidden;background:#f0f0f0;position:relative}.ip-d-wrap{position:absolute;top:0;left:0;width:1440px;height:900px;transform-origin:top left}.ip-d-wrap iframe{width:100%;height:100%;border:none;display:block;pointer-events:none;background:white}.ip-phone{position:absolute;right:0;bottom:-28px;width:248px;z-index:10;filter:drop-shadow(0 24px 60px rgba(0,0,0,.32)) drop-shadow(0 6px 16px rgba(0,0,0,.2));transition:filter .35s ease,transform .35s ease}.ip-phone:hover{transform:translateY(-5px);filter:drop-shadow(0 32px 72px rgba(0,0,0,.36)) drop-shadow(0 8px 20px rgba(0,0,0,.24))}.ip-phone-shell{background:#111;border-radius:40px;padding:5px;position:relative;box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 0 3.5px #222,inset 0 0 0 1px rgba(255,255,255,.05)}.ip-phone-shell:before{left:-4.5px;top:110px;height:30px;border-radius:3px 0 0 3px;box-shadow:0 44px 0 #2a2a2a,0 80px 0 #2a2a2a}.ip-phone-shell:after,.ip-phone-shell:before{content:"";position:absolute;width:4.5px;background:#2a2a2a}.ip-phone-shell:after{right:-4.5px;top:136px;height:62px;border-radius:0 3px 3px 0}.ip-phone-inner{background:#000;border-radius:38px;overflow:hidden;height:472px;position:relative}.ip-di{position:absolute;top:13px;left:50%;transform:translateX(-50%);width:96px;height:32px;background:#000;border-radius:22px;z-index:25;box-shadow:0 0 0 2px rgba(255,255,255,.07)}.ip-phone-screen{position:absolute;inset:0;overflow:hidden;background:white}.ip-m-wrap{position:absolute;top:0;left:0;width:390px;height:844px;transform-origin:top left;border-radius:20px}.ip-m-wrap iframe{width:100%;height:100%;border:none;display:block;pointer-events:none;background:white}.ip-home{position:absolute;bottom:7px;left:0;right:0;display:flex;justify-content:center;z-index:20;pointer-events:none}.ip-pill{width:100px;height:4px;background:rgba(255,255,255,.4);border-radius:3px}.ip-frame-loader{position:absolute;inset:0;z-index:50;background:#f0f0f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;transition:opacity .5s ease;border-radius:3px}.ip-frame-loader.ip-done{opacity:0;pointer-events:none}.ip-loader-ring{width:36px;height:36px;border:3px solid rgba(27,59,111,.1);border-top-color:#5db3cb;border-radius:50%;animation:ipSpin .8s linear infinite}@keyframes ipSpin{to{transform:rotate(1turn)}}.ip-loader-txt{font-family:Outfit,sans-serif;font-size:.75rem;color:#999;font-weight:500;letter-spacing:.3px}.ip-loader-bars{display:flex;flex-direction:column;gap:7px;width:60%;max-width:140px}.ip-loader-bar{height:7px;background:linear-gradient(90deg,#e2e2e8,#d8d8e0,#e2e2e8);background-size:200% 100%;border-radius:4px;animation:ipShim 1.4s ease infinite}.ip-loader-bar:nth-child(2){width:75%;animation-delay:.15s}.ip-loader-bar:nth-child(3){width:55%;animation-delay:.3s}@keyframes ipShim{0%,to{background-position:100% 50%}50%{background-position:-100% 50%}}.ip-phone-screen .ip-frame-loader .ip-loader-ring{width:26px;height:26px;border-width:2.5px}.ip-phone-screen .ip-frame-loader .ip-loader-bars{display:none}.ip-info{display:flex;gap:2.5rem;align-items:flex-start;padding-top:1.75rem;margin-top:30px;border-top:1px solid #e6e6eb}.ip-info-left{flex:1 1;min-width:0}.ip-info-meta{display:flex;align-items:center;gap:8px;margin-bottom:.6rem}.ip-info-cat{font-family:Outfit,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#1B3B6F}.ip-info-dot{color:#ccc}.ip-info-yr{font-size:.68rem;color:#999}.ip-info-name,.ip-info-yr{font-family:Outfit,sans-serif}.ip-info-name{font-size:1.8rem;font-weight:600;color:#111;letter-spacing:-.035em;line-height:1.15;margin-bottom:.65rem}.ip-info-desc{font-family:Outfit,sans-serif;font-size:.875rem;color:#666;line-height:1.72;max-width:490px}.ip-info-right{width:252px;flex-shrink:0}.ip-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.25rem}.ip-tags span{font-family:Outfit,sans-serif;font-size:.72rem;font-weight:500;color:#1B3B6F;background:rgba(27,59,111,.07);padding:4px 10px;border-radius:20px;white-space:nowrap}.ip-actions{display:flex;flex-direction:column;gap:.55rem}.ip-btn-live{display:flex;align-items:center;justify-content:center;gap:7px;padding:.68rem 1.25rem;background:#111;color:white;border-radius:8px;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:500;text-decoration:none;position:relative;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.ip-btn-live:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#1B3B6F,#5db3cb);opacity:0;transition:opacity .3s ease}.ip-btn-live:hover:before{opacity:1}.ip-btn-live:hover{color:white;transform:translateY(-1px);box-shadow:0 8px 22px rgba(27,59,111,.28)}.ip-btn-live>*{position:relative;z-index:1}.ip-btn-case{display:flex;align-items:center;justify-content:center;padding:.68rem 1.25rem;border:1px solid #e0e0e6;border-radius:8px;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:500;color:#333;text-decoration:none;transition:all .22s ease}.ip-btn-case:hover{border-color:#1B3B6F;color:#1B3B6F;background:rgba(27,59,111,.04)}.ip-fnav{display:flex;align-items:center;justify-content:space-between;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e6e6eb}.ip-counter{display:flex;align-items:baseline;gap:4px}.ip-count-n{font-family:Outfit,sans-serif;font-size:2.3rem;font-weight:700;color:#111;letter-spacing:-2px;line-height:1}.ip-count-s,.ip-count-t{font-family:Outfit,sans-serif;font-size:1rem;color:#ccc}.ip-arrows{display:flex;gap:.5rem}.ip-arrow{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid #e0e0e6;border-radius:50%;background:white;cursor:pointer;transition:all .22s ease;color:#333}.ip-arrow:hover{background:#1B3B6F;border-color:#1B3B6F;color:white;transform:scale(1.07)}.ip-arrow:active{transform:scale(.95)}@keyframes ipPhoneIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ip-item.ip-on .ip-phone{animation:ipPhoneIn .5s ease .1s both}.ip-pagination-wrapper{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e6e6eb}.ip-pagination-info{font-family:Outfit,sans-serif;font-size:.82rem;color:#999}.ip-pagination-info strong{color:#111}.ip-pagination-controls{display:flex;align-items:center;gap:6px}.ip-pagination-btn{min-width:36px;height:36px;padding:0 10px;border-radius:6px;border:1px solid #e2e2e6;background:white;color:#333;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s ease}.ip-pagination-btn:hover:not(:disabled){border-color:rgba(27,59,111,.25);background:rgba(27,59,111,.03);color:#1B3B6F}.ip-pagination-btn.active{background:#1B3B6F;border-color:#1B3B6F;color:white}.ip-pagination-btn:disabled{opacity:.38;cursor:not-allowed}.ip-pagination-nav{display:inline-flex;align-items:center;gap:5px;padding:0 14px}.ip-pagination-ellipsis{font-family:Outfit,sans-serif;font-size:.82rem;color:#ccc;padding:0 2px}.ip-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:5rem 0;color:#bbb}.ip-empty p{font-family:Outfit,sans-serif;font-size:.9rem;margin:0}@media (max-width:960px){.ip-phone{display:none}.ip-desktop{right:0!important}.ip-devices{height:auto!important;padding-bottom:0!important}.ip-desktop{position:relative!important;top:auto!important;left:auto!important;bottom:auto!important;right:auto!important;width:100%!important}.ip-desktop-screen{height:440px!important}.ip-info{margin-top:0}}@media (max-width:768px){.infatix-portfolio-section{padding:5rem 0}.infatix-portfolio-wrap{padding:0 1.5rem}.infatix-portfolio-hd{text-align:left}.infatix-portfolio-lead{margin:0}.ip-desktop-screen{height:360px!important}.ip-info{flex-direction:column;gap:1.5rem}.ip-info-right{width:100%}.ip-actions{flex-direction:row}.ip-actions a{flex:1 1}}@media (max-width:540px){.ip-desktop-screen{height:280px!important}.ip-info-name{font-size:1.5rem}}@media (max-width:440px){.infatix-portfolio-wrap{padding:0 1rem}.ip-desktop-screen{height:230px!important}.ip-actions{flex-direction:column}}