/* Review-only motion layer. All colour values come from the approved themes. */
html[data-cx-effects="lab"]{overflow-x:clip}
.fx-network{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;contain:strict}
.fx-net-routes{stroke:var(--accent);stroke-width:1;opacity:.24}
.fx-net-orbits{stroke:var(--cyan);stroke-width:1;opacity:.15}
.fx-net-signals{stroke:color-mix(in srgb,var(--accent) 35%,var(--cyan));stroke-width:1.7;opacity:.8}
.fx-flow{stroke-dasharray:10 990;animation:fx-vector-flow var(--flow-time,24s) linear infinite;animation-delay:var(--flow-delay,0s)}
.fx-net-nodes{stroke:var(--accent);stroke-width:1;opacity:.55}
.fx-net-core{fill:var(--cyan);stroke:none}
.fx-net-halo{opacity:.24}
@keyframes fx-vector-flow{to{stroke-dashoffset:-1000}}
.cx-motion-paused .fx-flow,.fx-suspended .fx-flow{animation-play-state:paused}
@media(prefers-reduced-motion:reduce),(max-width:760px){.fx-flow{animation:none;opacity:0}}
html[data-cx-effects="lab"] .cx-atmosphere{display:none}
html[data-cx-effects="lab"] body::before{background-image:radial-gradient(ellipse at 90% 20%,color-mix(in srgb,var(--cyan) 10%,transparent),transparent 68%)}
html[data-cx-effects="lab"] .hero::after{animation:none;opacity:.5}
html[data-cx-effects="lab"] .hero-art{border:1px solid color-mix(in srgb,var(--cyan) 60%,var(--line));border-radius:12px 48px 12px 48px}
html[data-cx-effects="lab"] .hero-copy{padding:24px 0 24px 24px;border-left:1px solid color-mix(in srgb,var(--cyan) 50%,transparent)}
html[data-cx-effects="lab"] .hero-copy::before{content:'';position:absolute;left:-3px;top:24px;width:5px;height:42px;background:var(--cyan);border-radius:2px}
@media(max-width:760px){html[data-cx-effects="lab"] .hero-copy{padding:16px 0 16px 16px}html[data-cx-effects="lab"] .hero-art{border-radius:12px 32px 12px 32px}.fx-network{opacity:.65}}
[data-cx-effects="lab"] .btn::after{content:'';position:absolute;inset:-60% -35%;pointer-events:none;background:linear-gradient(115deg,transparent 40%,#fff4 50%,transparent 60%);transform:translateX(-80%);opacity:0}
@media(hover:hover) and (pointer:fine){html[data-cx-effects="lab"]:not(.cx-motion-paused) .btn:hover::after{animation:cx-lab-sheen .7s ease-out}}
@keyframes cx-lab-sheen{0%{transform:translateX(-80%);opacity:0}25%{opacity:1}100%{transform:translateX(80%);opacity:0}}
html[data-cx-effects="lab"] .hero{isolation:isolate}
[data-cx-effects="lab"] .hero::after{content:'';position:absolute;inset:5% -4% 5% 36%;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--cyan) 15%,transparent),transparent 65%);animation:cx-lab-aura 14s ease-in-out infinite alternate}
[data-cx-effects="lab"] .hero-art{position:relative;transition:transform .45s ease-out,box-shadow .45s;transform:perspective(1400px) rotateX(var(--fx-rx,0deg)) rotateY(var(--fx-ry,0deg)) rotate(1deg);box-shadow:0 28px 80px -32px color-mix(in srgb,var(--accent) 40%,transparent),0 0 0 1px color-mix(in srgb,var(--cyan) 26%,transparent)}
[data-cx-effects="lab"] .hero-art::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 25%,color-mix(in srgb,var(--cyan) 16%,transparent) 47%,transparent 64%);opacity:.65;z-index:2}
[data-cx-effects="lab"] .fx-surface{position:relative;transition:border-color .3s,box-shadow .3s,translate .3s}
[data-cx-effects="lab"] .fx-surface::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(340px circle at var(--fx-x,50%) var(--fx-y,50%),color-mix(in srgb,var(--cyan) 11%,transparent),transparent 70%);opacity:0;transition:opacity .35s;z-index:1}
[data-cx-effects="lab"] .fx-surface:hover::after{opacity:1}
[data-cx-effects="lab"] .fx-surface:focus-within{outline:1px solid var(--cyan);outline-offset:4px}
[data-cx-effects="lab"] .btn:focus-visible,[data-cx-effects="lab"] .main-nav a:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}
[data-cx-effects="lab"] .site-header{box-shadow:0 14px 45px -18px color-mix(in srgb,var(--accent) 35%,transparent),inset 0 1px color-mix(in srgb,var(--cyan) 22%,transparent)}
[data-cx-effects="lab"] .hero h1 em{background:linear-gradient(100deg,var(--accent),var(--cyan));background-clip:text;-webkit-background-clip:text;color:transparent}
[data-cx-effects="lab"] .fx-enter{animation:cx-lab-enter .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--fx-delay,0ms)}
[data-cx-effects="lab"] .fx-note{position:fixed;bottom:12px;left:12px;z-index:90;background:var(--header);color:var(--cyan);border:1px solid var(--cyan);border-radius:10px;padding:9px 12px;font:11px/1.4 Arial,sans-serif;pointer-events:none}
@media(hover:hover) and (pointer:fine){[data-cx-effects="lab"] .fx-surface:hover{translate:0 -4px;border-color:color-mix(in srgb,var(--cyan) 55%,var(--line));box-shadow:0 20px 45px -24px color-mix(in srgb,var(--accent) 42%,transparent)}}
@keyframes cx-lab-aura{from{transform:translate(-3%,2%) scale(.95);opacity:.5}to{transform:translate(3%,-3%) scale(1.07);opacity:.9}}
@keyframes cx-lab-enter{from{opacity:.4;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
html[data-cx-effects="lab"].cx-motion-paused .hero-art{transform:rotate(1deg)}
html[data-cx-effects="lab"].cx-motion-paused :is(.hero h1 em,.fx-enter){animation:none}
html[data-cx-effects="lab"].cx-motion-paused .fx-surface{translate:none}
html[data-cx-effects="lab"].cx-motion-paused .fx-surface::after{opacity:0}
@media(max-width:760px){[data-cx-effects="lab"] .hero::after{filter:none;animation:none;inset:10% 0}[data-cx-effects="lab"] .hero-art{transform:none}[data-cx-effects="lab"] .fx-note{font-size:9px;max-width:165px}}
@media(prefers-reduced-motion:reduce){html[data-cx-effects="lab"] :is(.hero h1 em,.fx-enter){animation:none}html[data-cx-effects="lab"] .hero-art{transform:none}html[data-cx-effects="lab"] .fx-surface{translate:none;transition:none}html[data-cx-effects="lab"] .fx-surface::after{display:none}}

html[data-cx-effects="lab"].cx-motion-paused .hero::after{animation:none}
html[data-cx-effects="lab"].fx-suspended .hero::after,html[data-cx-effects="lab"].fx-suspended .hero h1 em{animation-play-state:paused}
html[data-cx-effects="lab"] .hero.fx-outside::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){html[data-cx-effects="lab"] .hero::after{animation:none}}
@media(prefers-reduced-motion:reduce){html[data-cx-effects="lab"] .btn:hover::after{animation:none}}

/* Composition is static; only a small decorative aura and user interactions move. */
[data-cx-effects="lab"] .hero{padding-top:54px;gap:32px 54px;grid-template-columns:1.05fr 1fr}
[data-cx-effects="lab"] .hero h1{font-size:clamp(46px,5.15vw,80px);line-height:1.04;letter-spacing:-.06em;margin:26px 0;max-width:650px;text-wrap:balance}
[data-cx-effects="lab"] .hero-copy>p{font-size:17px;line-height:1.7;max-width:490px}
[data-cx-effects="lab"] .hero-copy>.eyebrow{border-radius:99px;padding:10px 15px;background:color-mix(in srgb,var(--white) 55%,transparent)}
[data-cx-effects="lab"] .hero-art{min-height:470px;border-radius:32px 8px 32px 8px}
[data-cx-effects="lab"] .hero-art .hero-image{min-height:335px}
[data-cx-effects="lab"] .hero-art .art-top{letter-spacing:.06em;border-bottom:1px solid color-mix(in srgb,var(--cyan) 26%,transparent)}
[data-cx-effects="lab"] .hero-art .art-caption{border-left:3px solid var(--cyan);padding-left:18px}
[data-cx-effects="lab"] .hero-bottom{margin-top:10px;border-top:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));padding:24px 0 0}
[data-cx-effects="lab"] .hero-bottom>div>span{border-radius:9px;background:transparent;border:0;border-left:1px solid var(--line);padding:8px 20px}
[data-cx-effects="lab"] .hero-bottom small{color:var(--accent);font-variant-numeric:tabular-nums}
[data-cx-effects="lab"] .services-panel{border-radius:22px 8px 22px 22px;border-top:2px solid var(--cyan)}
[data-cx-effects="lab"] .services-menu-item{border:1px solid transparent;border-bottom-color:color-mix(in srgb,var(--cyan) 12%,transparent);border-radius:10px}
[data-cx-effects="lab"] .services-menu-item>.line-icon{color:var(--cyan);background:color-mix(in srgb,var(--cyan) 8%,transparent)}
[data-cx-effects="lab"] :is(.service-card,.technical-solution-card,.team-card,.feature-card){border-radius:24px 8px 24px 8px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));box-shadow:0 12px 36px -28px color-mix(in srgb,var(--accent) 55%,transparent)}
[data-cx-effects="lab"] .service-card .card-top>.line-icon,[data-cx-effects="lab"] .technical-solution-card .card-top>.line-icon{box-sizing:content-box;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--accent) 9%,transparent);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line))}
[data-cx-effects="lab"] .section-heading{padding-top:22px;border-top:1px solid var(--line)}
[data-cx-effects="lab"] :is(.page-heading,.company-hero-copy){position:relative;padding-left:30px;border-left:2px solid color-mix(in srgb,var(--cyan) 65%,var(--line))}
[data-cx-effects="lab"] .company-hero-photo{border-radius:28px 8px 28px 8px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));box-shadow:12px 12px 0 -2px color-mix(in srgb,var(--cyan) 9%,transparent)}
[data-cx-effects="lab"] .company-hero-photo img{border-radius:0}
[data-cx-effects="lab"] .team-card-body{border-top:2px solid color-mix(in srgb,var(--cyan) 48%,var(--line))}
@media(max-width:1100px){[data-cx-effects="lab"] .hero{gap:28px;grid-template-columns:1fr 1fr}[data-cx-effects="lab"] .hero h1{font-size:clamp(44px,5.5vw,65px)}}
@media(max-width:760px){[data-cx-effects="lab"] .hero{padding-top:34px;grid-template-columns:1fr;gap:28px}[data-cx-effects="lab"] .hero h1{font-size:clamp(39px,10.5vw,58px);max-width:540px;margin:24px 0}[data-cx-effects="lab"] .hero-copy>p{font-size:16px}[data-cx-effects="lab"] .hero-art{min-height:380px;border-radius:24px 8px 24px 8px}[data-cx-effects="lab"] .hero-art .hero-image{min-height:270px}[data-cx-effects="lab"] .hero-bottom>div>span{padding:5px 9px}[data-cx-effects="lab"] :is(.page-heading,.company-hero-copy){padding-left:16px}}
