/* Punic Systems: scroll + motion layer (shared by all pages) */
html{scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{animation:fxPage .7s ease both}
@keyframes fxPage{from{opacity:0}to{opacity:1}}

/* scroll progress bar */
.scroll-progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:3000;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#6E29F6,#01F6F7);box-shadow:0 0 12px rgba(1,246,247,.6);pointer-events:none}

/* nav: hide on scroll down, show on scroll up */
#mainNav,.site-head{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s}
#mainNav.nav-hidden,.site-head.nav-hidden{transform:translateY(-110%)}
#mainNav.scrolled{box-shadow:0 12px 40px -20px rgba(0,0,0,.8)}

/* reveal for pages without AOS */
.fx-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0ms)}
.fx-reveal.fx-in{opacity:1;transform:none}
.fx-img{overflow:hidden}
.fx-img img{transform:scale(1.12);transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.fx-img.fx-in img{transform:scale(1)}

/* spotlight that follows the cursor on cards */
.fx-spot{background-image:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(110,41,246,.20),transparent 45%)}
.fx-spot:hover{border-color:rgba(1,246,247,.45)}

/* magnetic buttons */
.fx-mag{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}

/* marquee pauses on hover */
.logo-marquee:hover .logo-track{animation-play-state:paused}

/* animated gradient on key words */
.grad-text{background-size:200% 100%;animation:fxShift 7s ease-in-out infinite alternate}
@keyframes fxShift{from{background-position:0 0}to{background-position:100% 0}}

/* heading accent line draws in */
.section-title{position:relative}

/* floating badge */
@keyframes fxFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}
.pecb-badge{display:block;height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}
.hero-pecb-wrap{position:absolute;right:-6px;bottom:-96px;width:104px;z-index:3;animation:fxFloat 6s ease-in-out infinite}
@media(max-width:991px){.hero-pecb-wrap{position:static;margin:26px auto 0;animation:none;width:96px}}
