:root{–bg-primary:#0F0F0F;–bg-secondary:#1f2025;–bg-card:#18191e;–bg-card-hover:#1e2028;–accent:#1A66FF;–accent-dim:rgba(26,102,255,.15);–accent-glow:rgba(26,102,255,.35);–text-primary:#ffffff;–text-muted:rgba(255,255,255,.55);–text-dim:rgba(255,255,255,.35);–border:rgba(255,255,255,.08);–border-hover:rgba(26,102,255,.4);–font-body:’Montserrat’,sans-serif;–font-heading:’Alexandria’,sans-serif;–font-mono:’DM Mono’,monospace;–radius-sm:8px;–radius-md:14px;–radius-pill:9999px;–max-w:1160px;–section-pad:88px;–transition:0.3s cubic-bezier(.4,0,.2,1)}
.pe-wrap *,.pe-wrap *::before,.pe-wrap *::after{box-sizing:border-box;margin:0;padding:0}
.pe-wrap a{color:inherit;text-decoration:none}
.pe-wrap img{max-width:100%;display:block}
.pe-wrap .container{max-width:var(–max-w);margin:0 auto;padding:0 28px}
.pe-wrap .section{padding:var(–section-pad) 0}
.pe-wrap .btn{display:inline-block;padding:13px 30px;border-radius:var(–radius-pill);font-size:14px;font-weight:700;letter-spacing:.3px;transition:all var(–transition);cursor:pointer}
.pe-wrap .btn–primary{background:var(–accent);color:#fff}
.pe-wrap .btn–primary:hover{background:#1557e0;box-shadow:0 0 28px var(–accent-glow);transform:translateY(-2px)}
.pe-wrap .btn–ghost{background:transparent;color:var(–text-primary);border:1px solid var(–border)}
.pe-wrap .btn–ghost:hover{border-color:var(–accent);color:var(–accent);background:var(–accent-dim)}
.pe-wrap .hero{min-height:92vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:100px 0 72px;font-family:var(–font-body);color:var(–text-primary);background:var(–bg-primary)}
.pe-wrap .hero__grid{position:absolute;inset:0;background-image:linear-gradient(var(–border) 1px,transparent 1px),linear-gradient(90deg,var(–border) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 30%,transparent 100%);animation:peGridShift 20s linear infinite}
@keyframes peGridShift{0%{background-position:0 0,0 0}100%{background-position:64px 64px,64px 64px}}
.pe-wrap .hero__glow{position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(26,102,255,.18) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;animation:peGlowPulse 6s ease-in-out infinite}
@keyframes peGlowPulse{0%,100%{opacity:.8;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}
.pe-wrap .hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
.pe-wrap .hero__eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:22px;font-family:var(–font-mono);font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(–accent);padding:5px 14px;border:1px solid var(–accent-dim);border-radius:var(–radius-pill);background:var(–accent-dim)}
.pe-wrap .hero__eyebrow::before{content:”;width:6px;height:6px;border-radius:50%;background:var(–accent);animation:peBlink 2s ease-in-out infinite;flex-shrink:0}
@keyframes peBlink{0%,100%{opacity:1}50%{opacity:.3}}
.pe-wrap .hero__title{font-family:var(–font-heading);font-size:clamp(30px,4vw,52px);font-weight:700;line-height:1.15;margin-bottom:12px;letter-spacing:-.5px}
.pe-wrap .hero__title em{font-style:normal;color:var(–accent)}
.pe-wrap .hero__subtitle{font-size:clamp(15px,1.8vw,18px);color:var(–text-muted);line-height:1.7;margin-bottom:36px;max-width:540px}
.pe-wrap .hero__subtitle strong{color:var(–text-primary);font-weight:600}
.pe-wrap .hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.pe-wrap .hero__visual{display:flex;align-items:center;justify-content:center;position:relative}
.pe-wrap .hero__visual-wrap{position:relative;width:100%;max-width:500px}
.pe-wrap .waveform-container{background:#05080f;border:1px solid rgba(26,102,255,.5);border-radius:var(–radius-md);padding:20px 24px;position:relative;overflow:hidden;box-shadow:0 0 0 1px rgba(26,102,255,.08),0 0 32px rgba(26,102,255,.16),inset 0 0 60px rgba(0,0,0,.5)}
.pe-wrap .waveform-container::before{content:”;position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(26,102,255,.9),transparent)}
.pe-wrap .waveform-container::after{content:”;position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.07) 3px,rgba(0,0,0,.07) 4px)}
.pe-wrap .waveform-label{font-family:var(–font-mono);font-size:10px;color:rgba(26,102,255,.65);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px;display:flex;justify-content:space-between}
.pe-wrap .waveform-label span{color:rgba(26,102,255,.9)}
.pe-wrap .waveform-meta{display:flex;justify-content:space-between;margin-top:12px;font-family:var(–font-mono);font-size:10px;color:rgba(255,255,255,.28)}
.pe-wrap .waveform-meta .accent{color:rgba(26,102,255,.8)}
.pe-wrap .hero__badge{position:absolute;top:-14px;right:-14px;background:var(–bg-secondary);border:1px solid var(–border);border-radius:var(–radius-md);padding:12px 16px;font-size:12px;color:var(–text-muted);font-family:var(–font-mono);box-shadow:0 8px 24px rgba(0,0,0,.4);animation:peFloatBadge 4s ease-in-out infinite}
.pe-wrap .hero__badge strong{display:block;font-size:20px;color:var(–accent);font-weight:700}
@keyframes peFloatBadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.pe-wrap .stats-strip{background:var(–bg-secondary);border-top:1px solid var(–border);border-bottom:1px solid var(–border);padding:40px 0;font-family:var(–font-body)}
.pe-wrap .stats-strip__inner{display:flex;justify-content:space-around;flex-wrap:wrap;gap:32px}
.pe-wrap .stat{text-align:center}
.pe-wrap .stat__num{display:block;font-family:var(–font-heading);font-size:40px;font-weight:700;line-height:1;color:var(–accent);margin-bottom:6px}
.pe-wrap .stat__label{font-size:13px;color:var(–text-muted);font-weight:500}
.pe-wrap .stat__loading{display:inline-block;color:var(–text-dim);animation:peLoadPulse 1.2s ease-in-out infinite}
@keyframes peLoadPulse{0%,100%{opacity:.3}50%{opacity:1}}
.pe-wrap .section{padding:var(–section-pad) 0;font-family:var(–font-body);color:var(–text-primary)}
.pe-wrap .sec-header{margin-bottom:52px}
.pe-wrap .sec-header–center{text-align:center}
.pe-wrap .sec-header__label{display:inline-block;margin-bottom:12px;font-family:var(–font-mono);font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(–accent)}
.pe-wrap .sec-header__title{font-family:var(–font-heading);font-size:clamp(26px,3vw,38px);font-weight:700;line-height:1.2;margin-bottom:14px;color:var(–text-primary)}
.pe-wrap .sec-header__desc{color:var(–text-muted);max-width:600px;font-size:15px;line-height:1.75}
.pe-wrap .sec-header–center .sec-header__desc{margin:0 auto}
.pe-wrap .areas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.pe-wrap .area-card{background:var(–bg-card);border:1px solid var(–border);border-radius:var(–radius-md);padding:32px 28px;transition:border-color var(–transition),box-shadow var(–transition),transform var(–transition);position:relative;overflow:hidden}
.pe-wrap .area-card::before{content:”;position:absolute;top:0;left:0;right:0;height:2px;background:var(–accent);transform:scaleX(0);transform-origin:left;transition:transform var(–transition)}
.pe-wrap .area-card:hover{border-color:var(–border-hover);box-shadow:0 0 32px rgba(26,102,255,.1);transform:translateY(-4px)}
.pe-wrap .area-card:hover::before{transform:scaleX(1)}
.pe-wrap .area-card__dot{width:10px;height:10px;background:var(–accent);border-radius:50%;margin-bottom:20px;box-shadow:0 0 10px var(–accent-glow)}
.pe-wrap .area-card__title{font-family:var(–font-heading);font-size:17px;font-weight:600;margin-bottom:10px;color:var(–text-primary)}
.pe-wrap .area-card__desc{font-size:13.5px;color:var(–text-muted);line-height:1.65}
.pe-wrap .tagline-strip{background:var(–bg-secondary);border-top:1px solid var(–border);border-bottom:1px solid var(–border);padding:60px 0}
.pe-wrap .tagline-strip__inner{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
.pe-wrap .tagline-strip__bar{width:4px;height:80px;background:linear-gradient(to bottom,var(–accent),transparent);border-radius:2px;flex-shrink:0}
.pe-wrap .tagline-strip__quote{font-family:var(–font-heading);font-size:clamp(18px,2.2vw,24px);font-weight:400;line-height:1.55;color:var(–text-muted)}
.pe-wrap .tagline-strip__quote strong{color:var(–text-primary);font-weight:600}
.pe-wrap .pub-list{display:flex;flex-direction:column;gap:16px}
.pe-wrap .pub-card{background:var(–bg-card);border:1px solid var(–border);border-radius:var(–radius-md);padding:24px 28px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start;transition:border-color var(–transition),box-shadow var(–transition),transform var(–transition);position:relative}
.pe-wrap .pub-card::after{content:”;position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:var(–radius-md) 0 0 var(–radius-md);background:var(–accent);opacity:0;transition:opacity var(–transition)}
.pe-wrap .pub-card:hover{border-color:var(–border-hover);box-shadow:0 4px 24px rgba(26,102,255,.08);transform:translateX(4px)}
.pe-wrap .pub-card:hover::after{opacity:1}
.pe-wrap .pub-card__venue{display:inline-block;margin-bottom:8px;font-family:var(–font-mono);font-size:10px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(–accent)}
.pe-wrap .pub-card__title{font-family:var(–font-heading);font-size:15px;font-weight:600;line-height:1.4;margin-bottom:8px;color:var(–text-primary)}
.pe-wrap .pub-card__authors{font-size:12.5px;color:var(–text-muted);font-family:var(–font-mono)}
.pe-wrap .pub-badge{flex-shrink:0;align-self:start;padding:4px 12px;border-radius:var(–radius-pill);font-size:11px;font-weight:700;letter-spacing:.3px;white-space:nowrap}
.pe-wrap .pub-badge–journal{background:rgba(26,102,255,.2);color:#93b8ff;border:1px solid rgba(26,102,255,.3)}
.pe-wrap .pub-badge–conf{background:rgba(74,222,128,.1);color:#86efac;border:1px solid rgba(74,222,128,.25)}
.pe-wrap .view-all-wrap{text-align:center;margin-top:36px}
.pe-wrap .news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.pe-wrap .news-card{background:var(–bg-card);border:1px solid var(–border);border-radius:var(–radius-md);padding:28px;transition:border-color var(–transition),box-shadow var(–transition),transform var(–transition)}
.pe-wrap .news-card:hover{border-color:var(–border-hover);box-shadow:0 4px 24px rgba(26,102,255,.08);transform:translateY(-3px)}
.pe-wrap .news-card__tag{display:inline-block;margin-bottom:14px;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:var(–radius-pill);font-family:var(–font-mono)}
.pe-wrap .tag–recognition{background:rgba(251,191,36,.12);color:#fbbf24;border:1px solid rgba(251,191,36,.25)}
.pe-wrap .tag–update{background:rgba(74,222,128,.1);color:#86efac;border:1px solid rgba(74,222,128,.2)}
.pe-wrap .tag–news{background:var(–accent-dim);color:#93b8ff;border:1px solid rgba(26,102,255,.25)}
.pe-wrap .news-card__text{font-size:14px;color:var(–text-muted);line-height:1.7}
.pe-wrap .news-card__text strong{color:var(–text-primary)}
.pe-wrap .news-card__text a{color:var(–accent);border-bottom:1px solid transparent;transition:border-color var(–transition)}
.pe-wrap .news-card__text a:hover{border-bottom-color:var(–accent)}
.pe-wrap .cta-section{padding:var(–section-pad) 0;position:relative;overflow:hidden;font-family:var(–font-body);background:var(–bg-primary)}
.pe-wrap .cta-section::before{content:”;position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 50%,rgba(26,102,255,.12) 0%,transparent 70%)}
.pe-wrap .cta-box{position:relative;z-index:1;background:var(–bg-card);border:1px solid var(–border);border-radius:var(–radius-md);padding:60px 48px;text-align:center;overflow:hidden}
.pe-wrap .cta-box::before{content:”;position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(–accent),transparent)}
.pe-wrap .cta-box__title{font-family:var(–font-heading);font-size:clamp(24px,3vw,36px);font-weight:700;margin-bottom:14px;color:var(–text-primary)}
.pe-wrap .cta-box__sub{color:var(–text-muted);margin-bottom:36px;font-size:15px;max-width:520px;margin-left:auto;margin-right:auto;line-height:1.7}
.pe-wrap .cta-box__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.pe-wrap .anim-fadeUp{opacity:0;transform:translateY(30px);transition:opacity .65s ease,transform .65s ease}
.pe-wrap .anim-fadeUp.is-visible{opacity:1;transform:translateY(0)}
.pe-wrap .anim-slideLeft{opacity:0;transform:translateX(-30px);transition:opacity .6s ease,transform .6s ease}
.pe-wrap .anim-slideLeft.is-visible{opacity:1;transform:translateX(0)}
.pe-wrap .anim-slideRight{opacity:0;transform:translateX(30px);transition:opacity .6s ease,transform .6s ease}
.pe-wrap .anim-slideRight.is-visible{opacity:1;transform:translateX(0)}
.pe-wrap .anim-delay-1{transition-delay:.1s}
.pe-wrap .anim-delay-2{transition-delay:.2s}
.pe-wrap .anim-delay-3{transition-delay:.3s}
.pe-wrap .anim-delay-4{transition-delay:.4s}
@media(max-width:900px){.pe-wrap .hero__inner{grid-template-columns:1fr}.pe-wrap .hero__visual{display:none}.pe-wrap .tagline-strip__inner{grid-template-columns:1fr}.pe-wrap .tagline-strip__bar{display:none}}
@media(max-width:700px){.pe-wrap .pub-card{grid-template-columns:1fr}.pe-wrap .pub-badge{display:none}}
Signal · Image · Video · Edge · Ultrasound
Systems Algorithms and
Analytics for Imaging
and Beyond
Towards Cognitive Ultrasound — we work on making (ultra)sound affordable and intelligent, from algorithm design to deployment on edge devices.
117+Publications & Patents
—
Publications & Patents
—
Open Datasets
—
Software Contributions
Ultrasound Systems
Custom hardware, transducer designs, front-end electronics, 3D-printed acoustic masks, and flexible array configurations for next-gen imaging.
Simulations & Modeling
Acoustic lens design, wave propagation simulations using k-Wave, and tissue-mimicking phantoms for rigorous experimental validation.
Ultrasound Software
Advanced beamforming, image reconstruction, neural network-based methods, 3D reconstruction, and aberration correction algorithms.
Clinical Applications
Lung ultrasound analysis, needle tracking, musculoskeletal imaging, sonomyography sensing, and super-resolution vascular imaging.
We work in signal, image & video processing, analytics and deploying them on edge devices — particularly for (ultra)sound imaging.
IEEE Journal of Ocean Engineering · 2025Orthogonal Linear Array based Product Beamforming for Real Time Underwater 3D Acoustical Imaging
Mimisha M Menakath, Mahesh Raveendranatha Panicker, Hareesh G
Journal
IEEE Access, Vol. 13 · 2025FeatuReBeam: Efficient Beamforming for High Frame Ultrasound Imaging using Adaptive Feature Reuse with (m,k)-Guarantee
Abdul Rahoof, Vivek Chaturvedi, Mahesh Raveendranatha Panicker, Muhammad Shafique, Gang Quan
Journal
IEEE Sensors Letters, Vol. 9 Issue 7 · 2025Experimental Validation of Underwater Target Modeling using k-Wave Toolbox for Acoustical Imaging
Mimisha M Menakath, Mahesh Raveendranatha Panicker, Hareesh G, Midhila Madhusoodanan, Tessin K Jose
Journal
[Recognition]Harikrishnan Pisharody was selected as a Best Paper Award finalist at 2022 IEEE International Symposium on Biomedical Imaging (ISBI 2022).
Interested in Collaborating?
We welcome academic partnerships, industry collaborations, and research discussions in signal processing, biomedical imaging, and edge AI.
(function(){
‘use strict’;
var animEls=document.querySelectorAll(‘.pe-wrap .anim-fadeUp,.pe-wrap .anim-slideLeft,.pe-wrap .anim-slideRight’);
var scrollObs=new IntersectionObserver(function(entries){entries.forEach(function(e){if(e.isIntersecting){e.target.classList.add(‘is-visible’);scrollObs.unobserve(e.target);}});},{threshold:0.12});
animEls.forEach(function(el){scrollObs.observe(el);});
function revealHero(){document.querySelectorAll(‘.pe-wrap .hero .anim-fadeUp,.pe-wrap .hero .anim-slideRight’).forEach(function(el,i){setTimeout(function(){el.classList.add(‘is-visible’);},i*130);});}
if(document.readyState===’loading’){document.addEventListener(‘DOMContentLoaded’,revealHero);}else{revealHero();}
function countUp(el,target){var suffix=’+’,duration=1600,fps=60,frames=duration/(1000/fps),frame=0;var tick=function(){frame++;var p=1-Math.pow(1-frame/frames,3);el.textContent=Math.round(p*target)+suffix;if(frame<frames)requestAnimationFrame(tick);else el.textContent=target+suffix;};el.textContent='0+';requestAnimationFrame(tick);}
var API='https://pulseecho.in/wp-json/wp/v2/pages';
async function countElements(slug,selector){var res=await fetch(API+'?slug='+encodeURIComponent(slug)+'&_fields=content',{cache:'no-store'});if(!res.ok)throw new Error('HTTP '+res.status);var data=await res.json();if(!data.length)throw new Error('not found');var doc=(new DOMParser()).parseFromString(data[0].content.rendered,'text/html');return doc.querySelectorAll(selector).length;}
var STATS=[
{id:'stat-pubpat',fallback:117,resolve:async function(){var r=await Promise.all([countElements('publications','div.paper'),countElements('patents','li')]);return r[0]+r[1];}},
{id:'stat-datasets',fallback:2,resolve:function(){return countElements('datasets','article.pe-card');}},
{id:'stat-software',fallback:9,resolve:function(){return countElements('softwares','li');}}
];
(function initWave(){var canvas=document.getElementById('waveCanvas');if(!canvas)return;var dpr=window.devicePixelRatio||1,W=440,H=160;canvas.width=W*dpr;canvas.height=H*dpr;var ctx=canvas.getContext('2d');ctx.scale(dpr,dpr);var cy=H/2;function gs(x,cx,A,s,l){var u=x-cx;return A*Math.exp(-0.5*Math.pow(u/s,2))*Math.sin(2*Math.PI*u/l);}var TX={cx:105,A:46,sigma:30,lambda:34,color:'#4da6ff',glow:'#1A66FF'};var RX={cx:325,A:28,sigma:26,lambda:36,color:'#5fd4f7',glow:'#30b8e8',alpha:0.82};function drawGrid(){ctx.save();ctx.strokeStyle='rgba(26,102,255,0.18)';ctx.lineWidth=1;ctx.beginPath();ctx.moveTo(0,cy);ctx.lineTo(W,cy);ctx.stroke();ctx.setLineDash([3,6]);ctx.strokeStyle='rgba(255,255,255,0.05)';[cy-44,cy+44].forEach(function(y){ctx.beginPath();ctx.moveTo(0,y);ctx.lineTo(W,y);ctx.stroke();});[110,220,330].forEach(function(x){ctx.beginPath();ctx.moveTo(x,0);ctx.lineTo(x,H);ctx.stroke();});ctx.setLineDash([]);ctx.restore();}
function buildPts(p,fx,tx,prog){var dt=fx+(tx-fx)*Math.min(prog,1),pts=[];for(var x=fx;x<=dt;x+=0.75)pts.push([x,cy-gs(x,p.cx,p.A,p.sigma,p.lambda)]);return pts;}
function sp(pts){if(pts.length<2)return;ctx.beginPath();ctx.moveTo(pts[0][0],pts[0][1]);for(var i=1;i<pts.length;i++)ctx.lineTo(pts[i][0],pts[i][1]);ctx.stroke();}
function drawPulse(p,prog,fx,tx){if(prog<=0)return;var pts=buildPts(p,fx,tx,prog);ctx.save();ctx.globalAlpha=(p.alpha!=null?p.alpha:1)*0.55;ctx.shadowBlur=18;ctx.shadowColor=p.glow;ctx.strokeStyle=p.color;ctx.lineWidth=4;ctx.lineJoin='round';ctx.lineCap='round';sp(pts);ctx.restore();ctx.save();ctx.globalAlpha=p.alpha!=null?p.alpha:1;ctx.shadowBlur=6;ctx.shadowColor=p.glow;ctx.strokeStyle=p.color;ctx.lineWidth=1.6;ctx.lineJoin='round';ctx.lineCap='round';sp(pts);ctx.restore();}
function drawBase(prog){if(prog<=0)return;ctx.save();ctx.strokeStyle='rgba(26,102,255,0.28)';ctx.lineWidth=1;ctx.beginPath();ctx.moveTo(0,cy);ctx.lineTo(W*Math.min(prog*1.4,1),cy);ctx.stroke();ctx.restore();}
function drawLbls(){ctx.save();ctx.font="10px 'DM Mono',monospace";ctx.fillStyle='rgba(26,102,255,0.75)';ctx.fillText('Tx',8,14);ctx.fillText('Rx',228,14);ctx.fillStyle='rgba(255,255,255,0.2)';ctx.fillText('t u2192',6,H-5);ctx.restore();}
var startTs=null,DUR=2400;function ease(t){return t<0.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;}
function frame(ts){if(!startTs)startTs=ts;var raw=Math.min((ts-startTs)/DUR,1),p=ease(raw);ctx.clearRect(0,0,W,H);drawGrid();drawBase(p);drawPulse(TX,Math.max(0,Math.min(1,p/0.65)),0,W/2);drawPulse(RX,Math.max(0,Math.min(1,(p-0.35)/0.65)),W/2,W);drawLbls();if(raw<1)requestAnimationFrame(frame);}
var io=new IntersectionObserver(function(entries){if(entries[0].isIntersecting){requestAnimationFrame(frame);io.disconnect();}},{threshold:0.25});io.observe(canvas);})();
STATS.forEach(function(item){var el=document.getElementById(item.id);if(!el)return;var count=null,visible=false,done=false;function go(){if(done||count===null||!visible)return;done=true;countUp(el,count);}item.resolve().then(function(n){count=n;go();}).catch(function(){count=item.fallback;go();});var io=new IntersectionObserver(function(entries){if(entries[0].isIntersecting){visible=true;go();io.unobserve(el);}},{threshold:0.5});io.observe(el);});
})();