/* Connected motion and service experience */
html.intro-pending .brand-intro{background:radial-gradient(circle at 50% 45%,#fff 0,#f2f7ff 55%,#e4efff 100%)}
.intro-stage{z-index:2;width:min(1020px,92vw);min-height:300px;justify-content:center}
.intro-stage .eyebrow{margin-bottom:28px;color:#2253cb;animation:intro-label .8s .2s both}
.intro-object{position:relative;z-index:2;width:min(860px,86vw);perspective:1200px;filter:drop-shadow(0 30px 30px #1d4ba221)}
.intro-object:after{content:"";position:absolute;left:11%;right:11%;bottom:-13px;height:1px;background:linear-gradient(90deg,transparent,#4675dc,transparent);animation:intro-line 1.5s .6s both}
.intro-lockup{display:block;width:100%;animation:intro-logo-arrive 1.65s cubic-bezier(.16,.82,.19,1) both;transform-origin:50% 50%}
.intro-halo{position:absolute;left:50%;top:50%;width:min(720px,72vw);aspect-ratio:1;border:1px solid #7fa7ee65;border-radius:50%;box-shadow:0 0 0 60px #2857df05,0 0 0 140px #2857df04;transform:translate(-50%,-50%) rotateX(66deg);animation:intro-halo-rise 2s ease-out both}
.intro-stage p{margin-top:28px;color:#526b93;font-size:13px;letter-spacing:.08em;animation:intro-caption .6s 1.2s both}
.intro-plane{bottom:-68%;opacity:.8}
.intro-skip{z-index:3;min-height:44px;border-color:#b8cbec;background:#ffffffdf}
.intro-progress{height:3px;animation:intro-timer 3s linear forwards}
@keyframes intro-logo-arrive{0%{opacity:0;transform:translate3d(0,48px,-260px) rotateX(-35deg) rotateY(-14deg) scale(.78)}58%{opacity:1;transform:translate3d(0,-8px,24px) rotateX(7deg) rotateY(3deg) scale(1.025)}100%{opacity:1;transform:translate3d(0,0,0) rotateX(0) rotateY(0) scale(1)}}
@keyframes intro-halo-rise{from{opacity:0;transform:translate(-50%,-50%) rotateX(75deg) scale(.45)}to{opacity:1;transform:translate(-50%,-50%) rotateX(66deg) scale(1)}}
@keyframes intro-label{from{opacity:0;letter-spacing:.4em}to{opacity:1;letter-spacing:.16em}}
@keyframes intro-line{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
.shell{width:min(calc(100% - 64px),var(--max));margin-inline:auto}
.hero{scroll-margin-top:86px}
.interior-hero,.directory,.service-story,.service-scope,.service-example,.questions,.related-services,.interior-cta{scroll-margin-top:84px}
.reveal-motion{opacity:1}
.reveal-motion.is-visible{animation:reveal-rise .6s ease var(--reveal-delay,0ms) both}
@keyframes reveal-rise{from{transform:translateY(20px)}to{transform:translateY(0)}}
.directory-row.reveal-motion:hover,.solution-card.reveal-motion:hover,.related-grid a.reveal-motion:hover{transform:translateY(-5px)}
.about-art{isolation:isolate;background:radial-gradient(circle at 55% 48%,#ecf4ff 0,#d6e7ff 55%,#bfd8ff 100%)}
.about-art:before,.about-art:after{display:none}
.about-mark{z-index:3;width:50%;height:auto;box-shadow:none;transform:rotate(-8deg);filter:drop-shadow(18px 24px 14px #305ab72d);animation:mark-breathe 7s ease-in-out infinite}
.about-orbit{position:absolute;width:70%;aspect-ratio:1;border:1px solid #2857df40;border-radius:50%;transform:rotate(-22deg) scaleY(.57)}
.about-orbit-one{width:95%;animation:orbit-turn 18s linear infinite}
.about-orbit-two{width:70%;border-style:dashed;border-color:#2857df70;animation:orbit-turn 12s linear reverse infinite}
.about-satellite{position:absolute;z-index:4;background:#fff;color:#123168;border:1px solid #9abaf1;box-shadow:7px 8px 0 #2b5cc42b;padding:12px 15px;font-size:10px;font-weight:900;letter-spacing:.14em}
.about-art .about-satellite{bottom:auto;left:auto;color:#123168;font-size:10px}
.about-satellite-one{top:16%;left:9%;animation:satellite-float 5s ease-in-out infinite}
.about-satellite-two{top:21%;right:7%;animation:satellite-float 6s 1s ease-in-out infinite}
.about-satellite-three{right:12%;bottom:18%;animation:satellite-float 5.5s 1.8s ease-in-out infinite}
.about-art .about-satellite-one{left:9%}.about-art .about-satellite-three{bottom:18%}
.about-art .about-caption{left:26px;bottom:25px;color:#1e4bb7}
@keyframes mark-breathe{50%{transform:translateY(-12px) rotate(-4deg)}}
@keyframes orbit-turn{to{transform:rotate(338deg) scaleY(.57)}}
@keyframes satellite-float{50%{transform:translateY(-8px)}}
.services-hero{background:radial-gradient(circle at 75% 44%,#dbe9ff,#f5f9ff 59%,#fff)}
.services-hero .interior-grid{grid-template-columns:.95fr 1.05fr;gap:5%}
.service-network{position:relative;min-height:490px;border:1px solid #a7c1f3;background:linear-gradient(145deg,#e8f1ff,#c8dcff);overflow:hidden;box-shadow:18px 18px 0 #85a9ed42;isolation:isolate}
.service-network:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#2959ce16 1px,transparent 1px),linear-gradient(90deg,#2959ce16 1px,transparent 1px);background-size:35px 35px;mask-image:radial-gradient(circle,#000,transparent 75%)}
.network-label,.network-foot{position:absolute;z-index:5;color:#194cba;font-size:10px;font-weight:900;letter-spacing:.18em}
.network-label{top:25px;left:27px}.network-foot{left:27px;bottom:24px}
.network-ring{position:absolute;left:50%;top:50%;width:390px;height:390px;border:1px solid #2e61d153;border-radius:50%;transform:translate(-50%,-50%) rotateX(55deg)}
.network-ring-two{width:275px;height:275px;border-color:#2e61d186}
.network-core{position:absolute;z-index:3;left:50%;top:50%;width:232px;min-height:222px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,#285ce0,#101f42);color:#fff;box-shadow:16px 18px 0 #4c78d66e,24px 28px 32px #204ba446;transform:translate(-50%,-50%) rotate(-5deg);animation:engine-float 6s ease-in-out infinite}
.network-core span,.network-core small{font-size:9px;font-weight:900;letter-spacing:.14em;color:#b5d1ff}.network-core strong{font:700 48px/.9 'Space Grotesk',sans-serif;letter-spacing:-.07em;margin:22px 0}.network-core i{font-size:.45em;color:#9dc4ff;font-style:normal}
.network-node{position:absolute;z-index:4;width:175px;padding:15px 17px;background:#fff;border:1px solid #a6bfea;box-shadow:8px 10px 0 #789ce850}
.network-node small{display:block;color:#2857df;font-size:9px;font-weight:900;letter-spacing:.13em}
.network-node strong{display:block;margin:10px 0 4px;font:700 17px 'Space Grotesk',sans-serif;letter-spacing:-.04em}
.network-node span{color:#6a7c95;font-size:10px}
.network-input{left:5%;top:16%;transform:rotate(-4deg)}
.network-output{right:4%;bottom:15%;transform:rotate(4deg)}
.network-line{position:absolute;z-index:1;width:28%;height:10px;background:linear-gradient(90deg,#9abaff,#2860da);border-radius:30px;overflow:hidden}
.network-line:after{content:"";display:block;width:35%;height:100%;background:#fff8;animation:rail-flow 2.4s ease-in-out infinite}
.network-line-one{left:22%;top:36%;transform:rotate(26deg)}
.network-line-two{right:17%;bottom:32%;transform:rotate(26deg)}
.network-line-two:after{animation-delay:1s}
.directory{background:#fff}
.directory-intro{margin-bottom:30px}
.filter-row{gap:10px;margin:0 0 25px}
.filter-row button{display:flex;align-items:center;justify-content:space-between;gap:28px;min-width:160px;min-height:52px;padding:11px 18px;border-radius:0;border-color:#b8cdf0;background:#fff;color:#16315e;transition:background .2s,transform .2s,box-shadow .2s}
.filter-row button span{color:#2b5cdb}
.filter-row button[aria-pressed=true],.filter-row button:hover{background:#2857df;color:#fff;box-shadow:6px 6px 0 #2857df38;transform:translateY(-3px)}
.filter-row button[aria-pressed=true] span,.filter-row button:hover span{color:#fff}
.directory-status{display:flex;align-items:center;gap:12px;padding:13px 17px;margin-bottom:18px;border:1px solid #c9d8f3;background:#e4eeff;color:#143266;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.directory-status [data-filter-count]{margin-left:auto;color:#2857df;font-weight:900}
.status-pulse{width:8px;height:8px;background:#2857df;border-radius:50%;box-shadow:0 0 0 5px #2857df20;animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 10px #2857df08}}
.directory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:0}
.directory-row{position:relative;grid-template-columns:40px minmax(0,1fr) 32px;gap:15px;min-height:235px;align-items:start;padding:25px;border:1px solid #cbd9f1;background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.directory-row:nth-child(4n+1),.directory-row:nth-child(4n+4){background:#edf4ff}
.directory-row:before{content:"";position:absolute;right:-36px;top:-36px;width:170px;height:170px;border:1px solid #c4d5f5;border-radius:50%;transition:transform .3s}
.directory-row:hover{padding-left:25px;transform:translateY(-5px);box-shadow:10px 12px 0 #2857df1a;border-color:#7da4eb}
.directory-row:hover{background:#e4eeff}
.directory-row:hover:before{transform:scale(1.35)}
.directory-row[hidden]{display:none!important}
.directory-num{color:#2857df;font-size:13px}
.directory-copy{align-self:end}
.directory-row small{font-size:10px}
.directory-row h3{max-width:460px;font-size:clamp(25px,2.5vw,36px);line-height:1.05;margin:14px 0}
.directory-row p{max-width:460px;font-size:13px;line-height:1.5}
.directory-arrow{z-index:1;width:30px;height:30px;display:grid;place-items:center;border:1px solid #a5bdea;border-radius:50%;font-size:16px;transition:background .25s,color .25s,transform .25s}
.directory-row:hover .directory-arrow{background:#2857df;color:#fff;transform:rotate(45deg)}
.detail-flow{position:relative;min-height:450px;background:linear-gradient(145deg,#0e1e41,#193a83);color:#fff;border:1px solid #375da8;box-shadow:18px 18px 0 #9fbaf0;overflow:hidden;isolation:isolate}
.service-scope{background:#eaf2ff}
.questions{background:#fff}
.related-services{background:#edf4ff}
.interior-cta{background:#2857df;color:#fff}
.interior-cta .eyebrow{color:#c1d7ff}
.interior-cta h2 em{color:#d6e6ff}
.interior-cta .button-dark{background:#fff;color:#16356f}
.interior-cta .button-dark:hover{background:#eaf2ff}
.detail-flow:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#9cbeff18 1px,transparent 1px),linear-gradient(90deg,#9cbeff18 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(circle,#000,transparent 80%)}
.detail-flow-label,.detail-flow-foot{position:absolute;z-index:4;left:28px;color:#a8c8ff;font-size:10px;font-weight:900;letter-spacing:.15em}
.detail-flow-label{top:27px}.detail-flow-foot{bottom:27px}
.detail-flow-track{position:absolute;left:10%;right:10%;top:49%;height:3px;background:linear-gradient(90deg,#6c94e4,#f6faff,#5d88e7)}
.detail-flow-track span{display:block;width:18%;height:100%;background:#fff;box-shadow:0 0 16px #fff;animation:track-run 3s ease-in-out infinite}
@keyframes track-run{to{transform:translateX(455%)}}
.detail-flow-engine{position:absolute;z-index:3;left:50%;top:50%;width:250px;min-height:215px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:linear-gradient(145deg,#4b81f1,#2354c4);border:1px solid #95b6ff;box-shadow:12px 15px 0 #0e2b6b;transform:translate(-50%,-50%) rotate(-5deg);animation:detail-float 6s ease-in-out infinite}
@keyframes detail-float{50%{transform:translate(-50%,-54%) rotate(-2deg)}}
.detail-flow-engine small{font-size:9px;letter-spacing:.14em;font-weight:900;color:#cfdeff}
.detail-flow-engine strong{font:700 27px/1.05 'Space Grotesk',sans-serif;letter-spacing:-.05em;margin:18px 0;text-transform:capitalize}
.detail-flow-engine span{font-size:11px;color:#d7e5ff}
.detail-flow-node{position:absolute;z-index:4;top:17%;padding:11px 13px;border:1px solid #7298df;background:#152e61;box-shadow:7px 8px 0 #091b41}
.detail-flow-node small{display:block;color:#a7c7ff;font-size:9px;font-weight:900;letter-spacing:.1em}
.detail-flow-node strong{display:block;margin-top:7px;font-size:12px;letter-spacing:.08em}
.detail-flow-start{left:8%}.detail-flow-end{right:7%;top:auto;bottom:16%}
.service-example .example-intro{max-width:450px;margin-top:24px;font-size:15px;color:#c3d6f5}
.example-switch{border:1px solid #6185c9;background:#1c3d7d;padding:16px;box-shadow:15px 15px 0 #3d65ab55}
.example-switch-head{display:flex;justify-content:space-between;padding:4px 4px 18px;color:#b8d0fb;font-size:10px;font-weight:900;letter-spacing:.13em}
.example-switch-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.example-switch-tabs button{padding:15px 12px;border:1px solid #6185c9;background:#142f65;color:#c7d8f4;text-align:left;font-size:12px;font-weight:800}
.example-switch-tabs button[aria-selected=true],.example-switch-tabs button:hover{background:#fff;color:#123674;border-color:#fff}
.example-switch-panel{min-height:240px;padding:24px;background:#fff;color:#112852}
.example-switch-panel[hidden]{display:none}
.example-switch-panel .eyebrow{color:#2857df}
.service-example .example-switch-panel p{color:#304e78;font-size:17px;line-height:1.55;margin:18px 0 0}
.example-switch>small{display:block;margin:16px 5px 3px}
@media(max-width:820px){
  .menu-button{width:44px;height:44px}
  .shell{width:min(calc(100% - 40px),var(--max))}
  .services-hero .interior-grid{grid-template-columns:1fr}
  .service-network{min-height:450px;max-width:650px}
  .directory-list{grid-template-columns:1fr}
}
@media(max-width:580px){
  .hero{scroll-margin-top:72px}
  .enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px}
  .solution-grid{grid-template-columns:minmax(0,1fr)}
  .solution-card{min-width:0}
  .solution-graphic{gap:7px}
  .solution-graphic span{padding:6px 5px;font-size:8px}
  .solution-graphic strong{width:70px;height:70px;flex:0 0 70px;font-size:32px}
  .solution-graphic i{width:12px;flex:0 0 12px}
  .intro-stage{min-height:260px;width:100%;padding-inline:16px}
  .intro-stage .eyebrow{font-size:9px;margin-bottom:28px;letter-spacing:.12em}
  .intro-object{width:94vw;filter:drop-shadow(0 15px 16px #1d4ba224)}
  .intro-stage p{max-width:290px;font-size:11px;line-height:1.5;margin-top:27px}
  .intro-halo{width:90vw}
  .intro-skip{top:18px;right:18px}
  .shell{width:min(calc(100% - 32px),var(--max))}
  .about-art{min-height:350px}
  .about-mark{width:62%}
  .about-satellite{font-size:8px;padding:8px}
  .about-art .about-satellite{font-size:8px}
  .about-satellite-one{top:12%;left:5%}
  .about-art .about-satellite-one{left:5%}
  .about-satellite-two{right:4%;top:24%}
  .about-satellite-three{bottom:19%;right:7%}
  .about-art .about-caption{font-size:7px}
  .service-network{min-height:390px;box-shadow:8px 8px 0 #85a9ed42}
  .network-core{width:175px;min-height:180px}
  .network-core strong{font-size:38px;margin:16px 0}
  .network-node{width:135px;padding:10px}
  .network-node strong{font-size:13px}
  .network-node span{font-size:8px}
  .network-input{left:3%;top:17%}
  .network-output{right:3%;bottom:15%}
  .network-foot,.network-label{font-size:8px}
  .filter-row{display:grid;grid-template-columns:1fr 1fr}
  .filter-row button{min-width:0;gap:5px;padding:10px;min-height:48px;font-size:10px}
  .directory-status{font-size:9px;letter-spacing:0}
  .directory-row{min-height:210px;grid-template-columns:27px minmax(0,1fr) 25px;padding:18px}
  .directory-row:hover{padding-left:18px}
  .directory-row h3{font-size:25px}
  .detail-flow{min-height:390px;box-shadow:8px 8px 0 #9fbaf0}
  .detail-flow-engine{width:190px;min-height:180px}
  .detail-flow-engine strong{font-size:21px}
  .detail-flow-node{padding:7px}
  .detail-flow-node small{font-size:7px}
  .detail-flow-node strong{font-size:9px}
  .detail-flow-label,.detail-flow-foot{font-size:8px}
  .example-switch{padding:8px;box-shadow:8px 8px 0 #3d65ab55}
  .example-switch-panel{padding:18px;min-height:270px}
  .service-example .example-switch-panel p{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
  .intro-halo,.intro-stage .eyebrow,.intro-object:after{animation:none!important}
  .reveal-motion{opacity:1;transform:none;transition:none}
  .about-mark,.about-orbit,.about-satellite,.network-core,.network-line:after,.detail-flow-track span,.detail-flow-engine,.status-pulse{animation:none!important}
  .directory-row,.directory-row:before,.directory-arrow,.filter-row button{transition:none}
}
