/* FLCT motion layer. Everything here is decoration: the page reads the same without it. */
.fx-progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#00CFEA,#7af3ff 60%,#ff6b61);z-index:60;box-shadow:0 0 12px rgba(0,207,234,.7)}
.fx-net{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.85}
.phero .pnav,.phero .phero-copy{position:relative;z-index:3}
.fx-shine{background:linear-gradient(100deg,#00CFEA 0%,#00CFEA 35%,#c9fbff 50%,#00CFEA 65%,#00CFEA 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:fx-shine 5s ease-in-out infinite}
@keyframes fx-shine{0%,20%{background-position:100% 0}60%,100%{background-position:0 0}}
.fx-type::after{content:"";display:inline-block;width:.6em;height:1.05em;margin-left:4px;vertical-align:-.15em;background:#ff8078;animation:fx-blink 1s steps(1) infinite}
@keyframes fx-blink{50%{opacity:0}}
.fx-reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.fx-reveal.fx-in{opacity:1;transform:none}
.card{position:relative;overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(0,207,234,.16),transparent 45%)}
.card:hover{transform:translateY(-4px);border-color:#1f6f7c!important;box-shadow:0 18px 40px -18px rgba(0,207,234,.45)}
.card:hover::before{opacity:1}
.card h3::before{content:"";display:block;width:30px;height:3px;margin-bottom:14px;border-radius:2px;background:linear-gradient(90deg,#00CFEA,transparent);transition:width .35s ease}
.card:hover h3::before{width:64px}
a.lift{position:relative;overflow:hidden;isolation:isolate}
a.lift::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:fx-sweep 4.5s ease-in-out infinite;z-index:-1;pointer-events:none}
@keyframes fx-sweep{0%,70%{left:-60%}100%{left:130%}}
.fx-stats{max-width:1280px;margin:0 auto;padding:56px 32px 0;box-sizing:border-box;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:20px}
.fx-stat{padding:26px 28px;border-radius:16px;background:linear-gradient(160deg,#0f1a21,#0b0f14);border:1px solid #1d3540;position:relative;overflow:hidden}
.fx-stat::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(0,207,234,.22),transparent 70%)}
.fx-stat b{display:block;font-stretch:125%;font-weight:800;font-size:clamp(40px,4vw,56px);line-height:1;color:#fff;letter-spacing:-.02em}
.fx-stat b span{color:#00CFEA}
.fx-stat small{display:block;margin-top:10px;font-size:17px;color:#b6c0cd}
@media (prefers-reduced-motion: reduce){
 .fx-reveal{opacity:1;transform:none;transition:none}
 .fx-shine,a.lift::after,.fx-type::after{animation:none}
 .fx-net{display:none}
}
