/* Motion layer, 3D atmosphere and GetNinjas profile */
body{overflow-x:hidden}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none}
.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#255ce6,#82a8ff);transform:scaleX(0);transform-origin:left center}
.hero-visual{transform-style:preserve-3d;will-change:transform,background-position}
.hardware-visual{background:radial-gradient(circle at 52% 43%,#214d9f 0,#102b59 27%,#07162f 60%,#050d1e 100%);border:1px solid #789dff33;box-shadow:0 30px 80px #0b1a3830}
#tech-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:1;pointer-events:none}
.hero-visual:after{z-index:1;background:linear-gradient(180deg,#0310273d,transparent 38%,#020817b5),radial-gradient(circle at center,transparent 30%,#03091a80 100%);pointer-events:none}
.hero-visual>*:not(canvas){position:relative;z-index:2}
.hardware-scene{position:absolute!important;inset:79px 40px 120px!important;z-index:1!important;perspective:700px;pointer-events:none;filter:drop-shadow(0 24px 35px #0008)}
.hardware-scene:after{content:'';position:absolute;left:5%;right:5%;top:13%;height:2px;background:linear-gradient(90deg,transparent,#a9c2ff 45%,#fff 50%,#a9c2ff 55%,transparent);box-shadow:0 0 20px 4px #3f7fff;opacity:0;animation:boardScan 3.6s ease-in-out infinite}
.processor{position:absolute;left:50%;top:48%;width:128px;height:128px;transform:translate(-50%,-50%) rotateX(57deg) rotateZ(45deg);border:2px solid #78a1ff;border-radius:14px;background:linear-gradient(145deg,#204e99,#071426 62%);box-shadow:0 0 0 10px #102d5cb3,0 0 0 12px #6591ef7a,inset 0 0 28px #3877ff75,0 0 55px #2969ff7a;animation:chipFloat 3.8s ease-in-out infinite}
.processor:before,.processor:after{content:'';position:absolute;inset:-24px;border:10px dotted #76a3ff;opacity:.72}.processor:after{inset:14px;border:1px solid #9abaff;border-radius:8px;box-shadow:inset 0 0 18px #3777ff9c}
.processor-core{position:absolute;inset:31px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(145deg,#3d7cff,#153b7e);color:#fff;font:800 34px/1 Manrope,sans-serif;transform:rotateZ(-45deg);box-shadow:0 0 28px #5c91ff;z-index:2;animation:corePulse 1.9s ease-in-out infinite}
.processor i{position:absolute;width:7px;height:7px;border-radius:50%;background:#b8ceff;box-shadow:0 0 15px #87acff;z-index:3}.processor i:nth-of-type(1){left:9px;top:9px}.processor i:nth-of-type(2){right:9px;top:9px}.processor i:nth-of-type(3){right:9px;bottom:9px}.processor i:nth-of-type(4){left:9px;bottom:9px}
.orbit{position:absolute;left:50%;top:48%;border:1px solid #7fa6ff80;border-radius:50%;transform:translate(-50%,-50%) rotateX(66deg);box-shadow:0 0 24px #3575ff33}.orbit-one{width:270px;height:140px;animation:orbitSpin 8s linear infinite}.orbit-two{width:335px;height:185px;border-style:dashed;opacity:.55;animation:orbitSpinReverse 12s linear infinite}
.circuit{position:absolute;top:48%;width:31%;height:2px;background:linear-gradient(90deg,transparent,#75a0ff 35%,#c5d7ff);background-size:200% 100%;box-shadow:0 0 11px #4e85ff;animation:circuitFlow 1.8s linear infinite}.circuit:before,.circuit:after{content:'';position:absolute;width:8px;height:8px;top:-3px;border-radius:50%;background:#a8c2ff;box-shadow:0 0 15px #6b9cff;animation:nodeBlink 1.4s ease-in-out infinite}.circuit-left{left:2%}.circuit-right{right:2%;transform:scaleX(-1)}.circuit:before{left:16%}.circuit:after{right:0;animation-delay:.7s}
.data-pulse{position:absolute;top:calc(48% - 3px);width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 18px 5px #5e93ff;opacity:0}.pulse-one{left:6%;animation:dataLeft 3.2s ease-in-out infinite}.pulse-two{right:6%;animation:dataRight 3.2s ease-in-out 1.35s infinite}
@keyframes chipFloat{0%,100%{transform:translate(-50%,-47%) rotateX(57deg) rotateZ(40deg) translateZ(0)}50%{transform:translate(-50%,-58%) rotateX(63deg) rotateZ(50deg) translateZ(24px)}}
@keyframes orbitSpin{to{transform:translate(-50%,-50%) rotateX(66deg) rotateZ(360deg)}}@keyframes orbitSpinReverse{to{transform:translate(-50%,-50%) rotateX(66deg) rotateZ(-360deg)}}
@keyframes dataLeft{0%{opacity:0;transform:translateX(0)}15%,80%{opacity:1}100%{opacity:0;transform:translateX(190px)}}@keyframes dataRight{0%{opacity:0;transform:translateX(0)}15%,80%{opacity:1}100%{opacity:0;transform:translateX(-190px)}}
@keyframes corePulse{0%,100%{filter:brightness(.9);box-shadow:0 0 18px #5c91ff}50%{filter:brightness(1.35);box-shadow:0 0 42px 8px #6b9cff}}@keyframes circuitFlow{to{background-position:-200% 0}}@keyframes nodeBlink{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1.35)}}@keyframes boardScan{0%,15%{top:13%;opacity:0}25%{opacity:.75}75%{opacity:.35}85%,100%{top:82%;opacity:0}}
.hardware-hud{position:absolute!important;left:29px;right:29px;top:50%;display:flex;justify-content:space-between;gap:10px;color:#b9ccff;font-size:8px;letter-spacing:1.45px;opacity:.78}
.hardware-hud span{display:flex;align-items:center;gap:7px}.hardware-hud span:before{content:'';width:5px;height:5px;border-radius:50%;background:#6f9cff;box-shadow:0 0 12px #77a0ff}
.hardware-visual .experience-badge{background:#07152ed9;color:#fff;border:1px solid #8aaaff6b;box-shadow:0 20px 60px #020817b8,0 0 35px #255ce62e;backdrop-filter:blur(12px)}
.hardware-visual .experience-badge div{color:#b8c9e9;border-color:#7894c35c}.hardware-visual .experience-badge b{color:#fff}.hardware-visual .experience-badge strong span{color:#8db0ff}
.scroll-cue{position:absolute!important;right:25px;bottom:27px;display:flex;align-items:center;gap:9px;font-size:8px;font-weight:650;letter-spacing:1.4px;color:#dbe6ff}
.scroll-cue span{width:22px;height:1px;background:#dbe6ff;transform-origin:left center;animation:scrollPulse 1.8s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{transform:scaleX(.35);opacity:.45}50%{transform:scaleX(1);opacity:1}}
.reviews-section{position:relative;overflow:hidden;background:var(--navy);color:#fff;padding-block:96px}
.reviews-glow{position:absolute;width:600px;height:600px;right:-190px;top:-280px;border-radius:50%;background:radial-gradient(circle,#255ce655 0,transparent 67%);pointer-events:none}
.reviews-section>.container{position:relative;z-index:1}.reviews-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}
.reviews-copy .eyebrow{color:#a9bfff}
.reviews-copy h2{font-size:clamp(34px,3.4vw,48px);line-height:1.22}
.reviews-copy em{color:#a9bfff}
.rating-summary{display:grid;grid-template-columns:auto auto;gap:4px 13px;align-items:center;padding:17px 20px;border:1px solid #ffffff29;border-radius:10px;background:#ffffff0a;transition:border-color .2s,transform .2s}.rating-summary:hover{border-color:#8aaaff;transform:translateY(-3px)}
.rating-score{font:650 35px/1 Manrope,sans-serif;letter-spacing:-1.7px}.rating-stars{color:#ffd66b;font-size:14px;letter-spacing:2px}.rating-summary>span:last-child{grid-column:1/-1;color:#b6c4df;font-size:11px}
.testimonials-grid{display:grid;grid-template-columns:1.1fr .85fr .72fr;gap:18px;align-items:stretch}.testimonial-card,.profile-card{border:1px solid #ffffff26;border-radius:12px;background:linear-gradient(145deg,#ffffff14,#ffffff07);box-shadow:0 25px 70px #03081545;backdrop-filter:blur(12px)}
.testimonial-card{padding:31px;display:flex;flex-direction:column;min-height:330px}.quote-mark{font:500 56px/1 Georgia,serif;color:#82a8ff;height:43px}.testimonial-card blockquote{margin:13px 0 32px;font:500 19px/1.65 Manrope,sans-serif;letter-spacing:-.25px}.testimonial-author{margin-top:auto;display:grid;gap:5px;padding-top:18px;border-top:1px solid #ffffff1f}.testimonial-author strong{font:600 14px Manrope,sans-serif}.testimonial-author span{font-size:11px;color:#aebedf}
.profile-card{padding:28px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s,border-color .25s;background:linear-gradient(155deg,#255ce640,#ffffff08)}.profile-card:hover{transform:translateY(-6px);border-color:#8aaaff}.profile-card>div{display:flex;align-items:center;gap:13px}.profile-label{font-size:9px;letter-spacing:1.4px;color:#b9c8e4}.profile-card>strong{font:550 22px/1.5 Manrope,sans-serif;letter-spacing:-.5px;margin-block:28px}.profile-link{font-size:13px;font-weight:650;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff25;padding-top:17px}.profile-link b{font-size:20px;color:#a9bfff}
.platform-mark{width:47px;height:47px;border-radius:10px;display:grid;place-items:center;background:#255ce6;color:#fff;font:800 15px Manrope,sans-serif;letter-spacing:-.6px}
.review-source{margin:20px 0 0;color:#91a3c5;font-size:11px}
.motion-ready .service,.motion-ready .audience-grid article,.motion-ready .steps article,.motion-ready .article-card{will-change:transform,opacity}
@media(max-width:1000px){.testimonials-grid{grid-template-columns:1fr 1fr}.profile-card{grid-column:1/-1;min-height:230px}.profile-card>strong{max-width:500px}.hardware-hud{display:none}.hardware-scene{inset:76px 22px 120px!important}.processor{width:110px;height:110px}.processor-core{inset:27px;font-size:29px}.orbit-one{width:230px}.orbit-two{width:280px}}
@media(max-width:850px){.reviews-heading{align-items:start}.testimonial-card{padding:25px}.testimonial-card blockquote{font-size:17px}}
@media(max-width:640px){.scroll-progress{height:2px}.scroll-cue{display:none}.reviews-section{padding-block:60px}.reviews-heading{display:grid;gap:25px}.rating-summary{justify-self:start}.testimonials-grid{grid-template-columns:1fr}.profile-card{grid-column:auto}.testimonial-card{min-height:0}.testimonial-card blockquote{font-size:18px}.hardware-visual{min-height:430px!important}.hardware-visual .experience-badge{max-width:265px}.hardware-hud{display:none}}
@media(prefers-reduced-motion:reduce){.scroll-progress,.scroll-cue,#tech-canvas{display:none}.hero-visual{transform:none!important;background-position:60% center!important}.testimonial-card,.profile-card{transform:none!important}.processor{animation-duration:6s}.processor-core{animation-duration:3.2s}.orbit-one{animation-duration:13s}.orbit-two{animation-duration:18s}.data-pulse{animation-duration:4.8s}.circuit{animation-duration:3s}.hardware-scene:after{animation-duration:5.5s}}
