/* Fibre-field candidate: inherited brand colours, no video, bitmap or render loop. */
.cx-ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict}
.cx-ambient-art{position:absolute;inset:-4%;width:108%;height:108%}
.cx-fibre-blue{stop-color:var(--accent)}.cx-fibre-cyan{stop-color:var(--cyan)}
.cx-fibre-lines{stroke-width:.85;opacity:.5}
.cx-fibre-depth{stroke:var(--accent);stroke-width:16;opacity:.035}
.cx-fibre-signals{stroke:var(--cyan);stroke-width:1.7;opacity:.9}
.cx-fibre-signals path{stroke-dasharray:24 976;animation:cx-fibre-run var(--cx-run) linear infinite;animation-delay:var(--cx-start)}
.cx-fibre-drift{transform-origin:75% 50%;animation:cx-fibre-breathe 19s ease-in-out infinite alternate}
.cx-field-orbit{fill:none;stroke:var(--accent);stroke-width:.7;opacity:.3}
.cx-orbit-sweep{stroke:var(--cyan);stroke-width:1.4;transform-origin:0 0;animation:cx-orbit-turn 52s linear infinite}
.cx-orbit-sweep circle{fill:var(--cyan)}
.cx-ambient-light{position:absolute;border-radius:50%;transform:translate3d(0,0,0);background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 24%,transparent),transparent 68%)}
.cx-ambient-light-a{width:75vw;height:85vh;right:-16vw;top:-18vh;animation:cx-light-drift 23s ease-in-out infinite alternate}
.cx-ambient-light-b{width:85vw;height:70vh;left:-35vw;bottom:-42vh;background:radial-gradient(ellipse,color-mix(in srgb,var(--cyan) 18%,transparent),transparent 70%);animation:cx-light-drift 29s ease-in-out -10s infinite alternate-reverse}
html[data-cx-ambient] body::before{opacity:.3;background-image:radial-gradient(ellipse at 90% 20%,color-mix(in srgb,var(--cyan) 6%,transparent),transparent 65%)}
html[data-cx-ambient] .hero::after{display:none}
html[data-cx-ambient] .hero-art{transform:perspective(1400px) rotateX(var(--fx-rx,0deg)) rotateY(var(--fx-ry,0deg));border-radius:24px;box-shadow:0 28px 85px -34px color-mix(in srgb,var(--accent) 50%,transparent),0 0 0 8px color-mix(in srgb,var(--cyan) 3%,transparent)}
html[data-cx-ambient] .hero-copy{border-left:0;padding-left:0}
html[data-cx-ambient] .hero-copy::before{display:none}
html[data-cx-ambient] .hero-copy>.eyebrow{backdrop-filter:blur(8px)}
html[data-cx-ambient] .hero{padding-top:78px;padding-bottom:30px}
html[data-cx-ambient] .fx-enter{animation:none}
/* Only JS-registered offscreen elements receive this class. No JS = visible content. */
html[data-cx-ambient] .cx-reveal-wait{opacity:0;transform:translate3d(0,28px,0);transition:opacity .7s cubic-bezier(.2,.65,.3,1),transform .7s cubic-bezier(.2,.65,.3,1);transition-delay:var(--cx-reveal-delay,0ms)}
html[data-cx-ambient] .cx-reveal-in{opacity:1;transform:translate3d(0,0,0)}
html[data-cx-ambient] .cx-reveal-wait:focus-within{opacity:1;transform:none;transition:none}
.cx-ambient-preview{position:fixed;left:12px;bottom:12px;z-index:90;padding:8px 12px;background:var(--header);color:var(--muted);border:1px solid var(--line);border-radius:10px;font:10px/1.4 Arial,sans-serif;pointer-events:none}
@keyframes cx-fibre-run{to{stroke-dashoffset:-1000}}
@keyframes cx-fibre-breathe{from{transform:translate3d(0,-8px,0) rotate(-2deg) scale(1)}to{transform:translate3d(-22px,15px,0) rotate(2deg) scale(1.035)}}
@keyframes cx-light-drift{to{transform:translate3d(-5%,8%,0) scale(1.12)}}
@keyframes cx-orbit-turn{to{transform:rotate(360deg)}}
:is(.cx-motion-paused,.fx-suspended,.cx-motion-hidden) .cx-ambient *{animation-play-state:paused!important}
html[data-cx-ambient].cx-motion-paused .hero-art{transform:none}
html[data-cx-ambient].cx-motion-paused .cx-reveal-wait{opacity:1;transform:none;transition:none}
@media(max-width:760px){
 .cx-ambient-art{opacity:.7}.cx-fibre-lines{stroke-width:1.1}.cx-fibre-signals{display:none}.cx-ambient *{animation:none!important}
 html[data-cx-ambient] .hero{padding-top:34px}html[data-cx-ambient] .hero-art{transform:none;border-radius:20px}
 html[data-cx-ambient] .cx-reveal-wait{transform:translate3d(0,16px,0);transition-duration:.5s;transition-delay:0s}
 html[data-cx-ambient] .cx-reveal-in{transform:none}
 .cx-ambient-preview{max-width:140px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 .cx-ambient *{animation:none!important}.cx-fibre-signals{display:none}
 html[data-cx-ambient] .hero-art{transform:none}
 html[data-cx-ambient] .cx-reveal-wait{opacity:1;transform:none;transition:none}
}
