.hero:has(.gfil-motion){background:#071423;isolation:isolate}.hero:has(.gfil-motion) .hero-image{opacity:.15;filter:saturate(.5)}.hero:has(.gfil-motion) .hero-shade{background:linear-gradient(90deg,#071423 12%,#071423e8 43%,#07142370),linear-gradient(0deg,#071423,transparent 50%)}.hero:has(.gfil-motion) .hero-content{z-index:2;max-width:63%;padding-right:0;pointer-events:none}.hero:has(.gfil-motion) .hero-content a{pointer-events:auto}.gfil-motion{position:absolute;top:30px;bottom:70px;right:2%;width:49%;display:flex;flex-direction:column;justify-content:center;z-index:1;--map-x:0deg;--map-y:0deg}.motion-eyebrow{font-family:'DM Sans',Arial,sans-serif;font-size:9px;letter-spacing:2.8px;color:#7195b8;text-align:center;display:flex;align-items:center;justify-content:center;gap:10px}.motion-eyebrow>span{width:5px;height:5px;border-radius:50%;background:#7bdff0;box-shadow:0 0 12px #4acfff80}.motion-stage{perspective:1000px;min-height:0;position:relative}.motion-stage:before{content:'';position:absolute;inset:15%;background:radial-gradient(ellipse,#2f91d510,transparent 65%);border-radius:50%}.connection-map{width:100%;height:auto;max-height:620px;display:block;transform:rotateX(var(--map-x)) rotateY(var(--map-y));transition:transform .5s ease-out;overflow:visible;font-family:'DM Sans',Arial,sans-serif}.map-scanner{transform-origin:360px 320px;animation:map-scan 35s linear infinite}.map-link-flow{animation:map-flow 7s linear infinite;animation-delay:var(--node-delay);opacity:.32}.map-node{animation:map-appear 1.3s both;animation-delay:var(--node-delay)}.core-outline{transform-origin:360px 320px;animation:core-breathe 5s ease-in-out infinite}.motion-caption{display:flex;align-items:center;justify-content:center;gap:25px;color:#6e94b9;font-size:8px;letter-spacing:1.8px}.motion-toggle{display:flex;align-items:center;gap:6px;font-family:inherit;font-size:10px;letter-spacing:0;background:#11263d;color:#a1bedb;border:1px solid #335275;border-radius:20px;padding:6px 10px;min-height:32px}.motion-toggle svg{width:12px;height:12px}.motion-toggle:hover{background:#1b3654;color:white}.hero:has(.gfil-motion) .hero-bottom{z-index:2}.hero:has(.gfil-motion) .hero-content>.eyebrow,.hero:has(.gfil-motion) h1,.hero:has(.gfil-motion) .hero-copy,.hero:has(.gfil-motion) .hero-actions{animation:hero-arrive 1s both}.hero:has(.gfil-motion) h1{animation-delay:.12s}.hero:has(.gfil-motion) .hero-copy{animation-delay:.24s}.hero:has(.gfil-motion) .hero-actions{animation-delay:.36s}.motion-paused .map-scanner,.motion-paused .map-link-flow,.motion-paused .core-outline{animation-play-state:paused}@keyframes map-scan{to{transform:rotate(360deg)}}@keyframes map-flow{to{stroke-dashoffset:-168}}@keyframes core-breathe{50%{opacity:.35;transform:scale(1.05)}}@keyframes map-appear{from{opacity:0}to{opacity:1}}@keyframes hero-arrive{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@media(min-width:1600px){.gfil-motion{right:max(3%,calc((100vw - 1500px)/2));width:47%;max-width:740px}}
@media(max-width:1100px){.hero:has(.gfil-motion) h1{font-size:60px}.gfil-motion{width:49%;right:0}.hero:has(.gfil-motion) .hero-content{max-width:58%}.hero:has(.gfil-motion) .hero-copy{max-width:420px;font-size:17px}.hero:has(.gfil-motion) .hero-actions{gap:20px;flex-wrap:wrap}.motion-caption{gap:12px;letter-spacing:1px}}
@media(max-width:900px){.hero:has(.gfil-motion){height:auto;max-height:none;min-height:0}.hero:has(.gfil-motion) .hero-content{max-width:100%;padding:60px 6% 20px}.hero:has(.gfil-motion) .hero-copy{max-width:550px}.hero:has(.gfil-motion) .hero-note{margin-top:30px}.gfil-motion{position:relative;top:auto;bottom:auto;right:auto;width:92%;max-width:620px;margin:15px auto 90px}.connection-map{max-height:530px}.motion-caption{font-size:8px}.hero:has(.gfil-motion) .hero-bottom{font-size:8px}.motion-eyebrow{font-size:8px}}
@media(max-width:760px){.hero:has(.gfil-motion) h1{font-size:clamp(42px,11vw,60px)}.gfil-motion{width:100%;margin-top:22px;margin-bottom:85px}.hero:has(.gfil-motion) .hero-copy{font-size:16px}.motion-toggle{min-height:36px}.motion-caption{gap:20px}.hero:has(.gfil-motion) .hero-bottom span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){.gfil-motion *,.hero:has(.gfil-motion) .hero-content>*{animation:none!important;transition:none!important}.map-packet{display:none}.connection-map{transform:none!important}.motion-toggle{display:none}}
.map-service-link,.map-core{cursor:pointer;outline:none}.map-card{transition:fill .2s,stroke .2s,filter .2s}.map-service-link:hover .map-card,.map-service-link:focus-visible .map-card{fill:#183c5f;stroke:#82dbff;filter:drop-shadow(0 0 6px #52bcff40)}.map-service-link:hover text,.map-service-link:focus-visible text{fill:#fff}.map-core:hover>path:first-child,.map-core:focus-visible>path:first-child{stroke:#a3e9ff;fill:#102b49;stroke-width:2}.map-hit-area{pointer-events:all}
/* Give the full service map more space in the homepage hero. */
@media(min-width:1001px){.hero:has(.gfil-motion){min-height:760px}.gfil-motion{width:59%;right:-1%;top:10px;bottom:65px;max-width:none}.connection-map{max-height:none}.hero:has(.gfil-motion) .hero-content{max-width:45%;padding-top:90px;padding-left:5%;padding-right:0}.hero:has(.gfil-motion) h1{font-size:clamp(48px,4.5vw,76px);letter-spacing:-2.6px}.hero:has(.gfil-motion) .hero-copy{font-size:17px;max-width:420px}.hero:has(.gfil-motion) .hero-actions{gap:22px;flex-wrap:wrap}.hero:has(.gfil-motion) .hero-note{max-width:370px}}
@media(min-width:1600px){.gfil-motion{width:56%;right:0;max-width:900px}.hero:has(.gfil-motion){min-height:840px;max-height:950px}.hero:has(.gfil-motion) .hero-content{padding-left:max(5%,calc((100vw - 1440px)/2))}}
@media(min-width:901px) and (max-width:1000px){.hero:has(.gfil-motion){height:auto;max-height:none;min-height:0}.hero:has(.gfil-motion) .hero-content{max-width:100%;padding:60px 6% 20px}.gfil-motion{position:relative;top:auto;bottom:auto;right:auto;width:96%;max-width:720px;margin:15px auto 90px}.connection-map{max-height:none}}
@media(max-width:900px){.gfil-motion{width:100%;max-width:720px}.connection-map{max-height:none}}
@media(min-width:1001px) and (max-width:1599px){.gfil-motion{width:57%;right:1%}}
