/* FX:Scape public-site design system. Loaded after legacy page styles. */
:root{--fx-bg:#0B0D10;--fx-surface:#14181D;--fx-surface-2:#1D232A;--fx-text:#F5F7FA;--fx-text-secondary:#D8DEE6;--fx-text-muted:#A5B0BD;--fx-blue:#2DA8FF;--fx-cyan:#57E3FF;--fx-amber:#FFB347;--fx-violet:#7A6CFF;--fx-border:#34404D;--bg:var(--fx-bg);--surface:var(--fx-surface);--elev:var(--fx-surface-2);--text:var(--fx-text);--muted:var(--fx-text-muted);--line:var(--fx-border);--accent:var(--fx-cyan);--accent-2:var(--fx-blue);--maxw:1400px;--gutter:clamp(20px,4.5vw,72px);--radius:14px;--radius-lg:18px;--section-pad:clamp(72px,9vw,140px);--font-sans:Inter,system-ui,Arial,sans-serif;--font-display:'Space Grotesk',system-ui,Arial,sans-serif}
html{font-size:16px!important;scroll-padding-top:110px}body{height:auto;background:var(--fx-bg);color:var(--fx-text);font-size:1rem;line-height:1.65}*{box-sizing:border-box}img{max-width:100%}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.045em;text-wrap:balance}h2{font-size:clamp(2rem,4.2vw,4rem);line-height:1.08;font-weight:550}h3{letter-spacing:-.025em}.container{width:min(100%,var(--maxw));padding-inline:var(--gutter)}.muted{font-size:1rem;color:var(--fx-text-muted)}.subhead{font-size:clamp(1.125rem,1.6vw,1.45rem);line-height:1.65;color:var(--fx-text-secondary)}.eyebrow{font-size:.69rem;letter-spacing:.17em;line-height:1.7;color:var(--fx-text-muted);margin-bottom:26px}.accent{color:var(--fx-cyan)}a{ text-underline-offset:5px}a:hover{color:var(--fx-cyan)}:focus-visible{outline:3px solid var(--fx-cyan);outline-offset:5px}.skip-link:focus{position:fixed;top:8px;left:8px;z-index:1000}.fx-header{position:sticky;top:0;z-index:100;background:rgba(11,13,16,.94);border-bottom:1px solid #ffffff14;backdrop-filter:blur(12px)}.nav{height:88px;gap:28px}.brand-logo-img{width:156px;height:auto;filter:none}.nav .nav-links{display:flex!important;gap:30px;margin-left:auto}.nav-links a{font-size:.85rem;opacity:1;min-height:44px;display:inline-flex;align-items:center}.nav-links a[aria-current]{color:var(--fx-cyan);text-decoration:underline}.btn{border-radius:8px;min-height:48px;padding:13px 22px;font-size:.85rem;font-weight:650;gap:28px;line-height:1.4;max-width:100%;width:auto;position:relative;overflow:hidden}.btn.primary{background:var(--fx-blue);color:var(--fx-bg);border:1px solid var(--fx-blue);box-shadow:none}.btn.primary:hover{background:var(--fx-cyan);border-color:var(--fx-cyan);color:var(--fx-bg)}.btn.ghost{background:transparent;border-color:#73808e;color:var(--fx-text)}.btn:after{content:'';position:absolute;inset:-20% auto -20% -60%;width:35%;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:skewX(-20deg);pointer-events:none}.btn:hover:after{left:130%;transition:left .35s}.text-link{display:inline-flex;align-items:center;gap:18px;min-height:48px;font-size:.9rem;border-bottom:1px solid #ffffff50;color:var(--fx-text)}#menuBtn{background:none;color:var(--fx-text);border:1px solid #73808e;border-radius:8px;padding:10px 16px;min-height:44px;font:inherit}#menuBtn[hidden],#mobileNav[hidden]{display:none!important}#mobileNav{padding:12px var(--gutter) 24px;border-top:1px solid var(--fx-border)}#mobileNav a{display:block;padding:12px 0;color:var(--fx-text)}
section{padding:var(--section-pad) 0}.section-head{margin-bottom:48px}.section-head h2{font-size:clamp(2rem,4.2vw,4rem)}.editorial-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.editorial-head p{max-width:330px;font-size:1rem;margin:0}.hero-cta{align-items:center;gap:28px;margin-top:32px}.fx-hero{position:relative;isolation:isolate;overflow:hidden;padding:90px 0 0;min-height:710px;border-bottom:1px solid #ffffff18}.hero-content{position:relative;z-index:2}.fx-hero h1{font-size:clamp(4rem,8.7vw,8rem);font-weight:550;letter-spacing:-.065em;line-height:.98;margin:32px 0}.fx-hero h1 span{color:var(--fx-cyan)}.hero-description{font-size:1.125rem;max-width:490px;color:var(--fx-text-secondary);line-height:1.7}.cue-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--fx-cyan);margin-right:12px;vertical-align:middle;box-shadow:0 0 14px #57e3ff88}.hero-baseline{display:flex;justify-content:space-between;gap:30px;padding:28px 0;margin-top:85px;border-top:1px solid #ffffff24;color:var(--fx-text-muted);font-size:.75rem}.hero-baseline a{color:var(--fx-text-secondary)}.light-stage{position:absolute;inset:0;z-index:0;overflow:hidden;background:radial-gradient(ellipse at 82% 48%,#10476644,transparent 48%)}.beam{position:absolute;right:12%;top:-25%;height:135%;width:32%;transform-origin:top;transform:rotate(27deg);background:linear-gradient(90deg,transparent,#57e3ff08 20%,#57e3ff25 65%,#92edff50 96%,transparent);clip-path:polygon(45% 0,52% 0,100% 100%,0 100%)}.beam-two{right:-18%;transform:rotate(40deg);opacity:.55;background:linear-gradient(90deg,transparent,#2da8ff20,#7a6cff55,transparent)}.stage-ring{position:absolute;right:7%;bottom:10%;width:38%;aspect-ratio:1;transform:rotateX(66deg) rotateZ(-18deg);border:1px solid #57e3ff66;border-radius:50%;box-shadow:0 0 70px #2da8ff14,inset 0 0 60px #2da8ff14}.stage-ring:after{content:'';position:absolute;inset:14%;border:1px solid #57e3ff22;border-radius:50%}.stage-floor{position:absolute;bottom:0;right:0;width:55%;height:40%;background:repeating-linear-gradient(0deg,transparent 0 58px,#57e3ff0b 59px 60px);transform:perspective(350px) rotateX(45deg)}
.fx-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.fx-service{background:linear-gradient(160deg,#192129,#101419 65%);border:1px solid var(--fx-border);border-radius:14px;padding:28px;overflow:hidden;transition:transform .2s,border-color .2s;color:var(--fx-text)}.fx-service:hover,.fx-service:focus-visible{transform:translateY(-3px);border-color:var(--fx-cyan);color:var(--fx-text)}.fx-service h3{font-size:1.85rem;font-weight:550;line-height:1.12;margin:24px 0 20px}.fx-service h3 span{color:var(--fx-text-muted)}.fx-service p{font-size:.88rem;color:var(--fx-text-muted);margin:0}.card-label{display:flex;justify-content:space-between;font-size:.65rem;letter-spacing:.12em;color:var(--fx-cyan);border-top:1px solid #ffffff18;padding-top:20px}.card-label span{font-size:1rem}.service-art{height:120px;position:relative;margin-bottom:26px;display:flex;justify-content:center;align-items:center;gap:14px}.service-art i{display:block;width:65px;height:65px;border:1px solid #57e3ff55;background:linear-gradient(145deg,#57e3ff13,transparent)}.art-lead i{height:48px;transform:skewY(-20deg)}.art-lead i:nth-child(2){transform:skewY(-20deg) translateY(-15px)}.art-sys i{width:28px;height:28px;border-radius:50%;box-shadow:0 0 20px #57e3ff12}.art-sys:before{content:'';position:absolute;top:50%;left:16%;right:16%;border-top:1px solid #57e3ff55}.art-sys i:nth-child(2){width:64px;height:64px;background:#141e27;z-index:1}.art-fx i{position:absolute;transform:rotate(30deg);border-color:#ffb34766;width:66px;height:66px}.art-fx i:nth-child(2){transform:rotate(60deg)}.art-fx i:nth-child(3){width:100px;height:100px;border-radius:50%;border-color:#ffb34722}.fx-difference{background:var(--fx-surface);border-block:1px solid #ffffff10}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,8vw,140px)}.outcomes>div{border-top:1px solid var(--fx-border);padding:24px 0 8px;position:relative;padding-left:45px}.outcomes>div>span{position:absolute;left:0;top:27px;font-size:.7rem;color:var(--fx-cyan)}.outcomes h3{font-size:1.1rem;font-weight:550;margin-bottom:8px}.outcomes p{color:var(--fx-text-muted);font-size:.95rem}.fx-process{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0;margin:65px 0 0;gap:0}.fx-process li{border-top:1px solid #57e3ff66;padding:28px 20px 0 0;position:relative}.fx-process li:before{content:'';position:absolute;width:7px;height:7px;top:-4px;left:0;background:var(--fx-cyan);border-radius:50%}.fx-process span{font-size:.72rem;color:var(--fx-cyan)}.fx-process h3{font-size:1rem;letter-spacing:-.02em;margin:18px 0 12px}.fx-process p{font-size:.85rem;color:var(--fx-text-muted)}.fx-interlude{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 100%,#2da8ff35,transparent 60%),#101820;padding:110px 0}.fx-interlude .container{position:relative}.fx-interlude p{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.12;letter-spacing:-.045em;font-weight:500}.fx-interlude em{font-style:normal;color:var(--fx-cyan)}.interlude-lines{position:absolute;inset:-60% -10%;transform:rotate(-27deg);background:repeating-linear-gradient(90deg,transparent 0 100px,#57e3ff0c 101px,#57e3ff22 102px,transparent 104px)}.about-preview{align-items:center}.fx-closing{background:radial-gradient(ellipse at 70% 100%,#2da8ff23,transparent 60%),var(--fx-surface);text-align:center;border-top:1px solid var(--fx-border)}.fx-closing h2{font-size:clamp(2.8rem,6vw,5.8rem)}.fx-closing p{color:var(--fx-text-muted);margin:24px 0 32px}.fx-footer{padding:65px 0 40px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-grid img{width:150px;height:auto;margin-bottom:22px}.footer-grid p{font-size:.9rem}.footer-grid small{font-size:.7rem}.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-grid a{font-size:.82rem;min-height:32px}.footer-grid nav a{padding:5px 0}.footer-grid nav a:hover{color:var(--fx-cyan)}
/* Existing inner-page content inherits the same system without rewriting policy copy. */
.fx-page:not(.fx-index) .hero{padding:clamp(70px,9vw,130px) 0 70px;background:radial-gradient(ellipse at 85% 0,#2da8ff18,transparent 65%);border-bottom:1px solid #ffffff18}.fx-page:not(.fx-index) .headline{font-size:clamp(2.7rem,5.5vw,5.4rem);font-weight:550;line-height:1.06;max-width:1100px}.headline .accent{background:none;color:var(--fx-cyan)}.narrow{max-width:1000px;margin-inline:auto}.center{text-align:center}.cap-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.cap{padding:30px;background:linear-gradient(145deg,var(--fx-surface-2),var(--fx-surface));border-color:var(--fx-border)}.cap h3{font-size:1.4rem}.cap .cap-tag{color:var(--fx-cyan);font-family:var(--font-sans);letter-spacing:.12em;font-size:.7rem}.cap:hover{transform:translateY(-3px);box-shadow:none}.cards{gap:22px}.card{background:var(--fx-surface);box-shadow:none}.card:hover{transform:translateY(-3px);box-shadow:none}.card-body{padding:26px}.process{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.step{padding:68px 22px 26px;background:var(--fx-surface)}.step:before{left:22px;right:auto;top:20px;background:none;color:var(--fx-cyan);border:1px solid var(--fx-border);font-size:.8rem}.step h3{font-size:1rem}.statement{background:radial-gradient(ellipse at 85% 50%,#2da8ff10,transparent 70%),var(--fx-surface);padding:70px 0}.hero-card{background:var(--fx-surface);border:1px solid var(--fx-border);box-shadow:none}.hero-card .icon{font-size:1.5rem}.quote{font-size:clamp(1.8rem,3.5vw,3rem);font-weight:500}.contact{gap:50px}.contact form{background:var(--fx-surface);border:1px solid var(--fx-border);padding:clamp(20px,3vw,40px);border-radius:16px}input,textarea{min-width:0;max-width:100%;background:var(--fx-bg);font-size:1rem}input{min-height:48px}label{color:var(--fx-text-secondary)}.fx-about .narrow{max-width:1000px!important}.fx-about blockquote{border-left:2px solid var(--fx-blue);padding-left:24px;margin-left:0;margin-right:0}.fx-legal .headline{max-width:1000px}.fx-legal .narrow{max-width:1000px}.fx-legal main a:not(.btn),.fx-legal section p a,.fx-legal section li a{color:var(--fx-cyan);text-decoration:underline}.fx-legal section h3{margin-top:36px;font-size:1.3rem}.fx-legal section p,.fx-legal section li{line-height:1.8}.fx-legal main.legal>section:not(.hero){padding:40px 0}.fx-legal main.legal>section .container{max-width:1080px}.fx-legal address{overflow-wrap:anywhere}.fx-page .spacer-m{height:20px}.fx-page .spacer-l{height:32px}.fx-page .spacer-s{height:12px}#cookieBanner{position:fixed;inset:auto 0 0;background:#14181df5;z-index:110;border-top:1px solid var(--fx-border);padding:16px 0}#cookieBanner[hidden]{display:none}.cookie-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.cookie-inner p{font-size:.85rem;margin:0}.cookie-inner a{text-decoration:underline}.cookie-inner .btn{flex-shrink:0}.fx-splash{position:fixed;inset:0;z-index:200;background:#0b0d10;display:grid;place-items:center;pointer-events:none;animation:splash-out 1.6s both}.fx-splash img{width:min(65vw,620px);height:auto;animation:logo-in 1s both}@keyframes splash-out{0%,55%{opacity:1}100%{opacity:0;visibility:hidden}}@keyframes logo-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:901px){#menuBtn{display:none!important}#mobileNav{display:none!important}}
@media(max-width:1000px){.process{grid-template-columns:1fr 1fr}.fx-process{grid-template-columns:1fr}.fx-process li{padding:0 0 28px 30px;border-top:0;border-left:1px solid #57e3ff66}.fx-process li:before{left:-4px;top:5px}.fx-process h3{margin-top:5px}.fx-process p{max-width:50ch}.fx-hero{min-height:auto}.beam-one{right:-5%}.fx-service{padding:22px}.service-art{gap:7px}.service-art i{width:40px}.editorial-head p{max-width:280px}}
@media(max-width:900px){.nav{height:auto;min-height:76px;flex-wrap:wrap;padding-block:15px;gap:16px}.nav .nav-links{display:flex!important;order:4;width:100%;justify-content:space-between;gap:12px}.js-nav .nav .nav-links{display:none!important}.header-cta{margin-left:auto}.brand-logo-img{width:132px}.fx-service-grid,.cap-grid{grid-template-columns:1fr}.fx-service{display:block;padding:28px}.service-art{height:100px}.fx-service h3 br{display:none}.fx-service h3{font-size:1.8rem}.split{gap:40px}.editorial-head{align-items:flex-start;flex-direction:column;gap:24px}.editorial-head p{max-width:520px}.fx-hero h1{font-size:clamp(4rem,10vw,6rem)}.hero-description{max-width:420px}.light-stage{opacity:.6}.fx-page:not(.fx-index) .hero .grid{grid-template-columns:1fr}.contact{grid-template-columns:1fr}.cards .card{grid-column:span 6}}
@media(max-width:600px){.header-cta{display:none}.nav{justify-content:space-between}.nav .nav-links a{font-size:.8rem}.fx-hero{padding-top:65px}.fx-hero h1{font-size:clamp(3.6rem,14vw,5rem)}.fx-hero .eyebrow{font-size:.6rem;letter-spacing:.1em}.hero-baseline{margin-top:60px;flex-direction:column;gap:10px}.hero-description{font-size:1rem}.hero-cta{gap:18px}.hero-cta .btn{padding:13px 16px;gap:12px}.light-stage{opacity:.35}.beam-one{right:-35%;width:90%}.stage-ring{width:90%;right:-45%}.split{grid-template-columns:1fr}.fx-service h3 br{display:block}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-grid>div{grid-column:1/-1}.footer-grid nav a{min-height:44px}.fx-interlude{padding:80px 0}.fx-page:not(.fx-index) .headline{font-size:clamp(2.25rem,10vw,3.4rem)}.process{grid-template-columns:1fr}.cards .card{grid-column:span 12}.fx-about .subhead[style*="display:flex"]{flex-wrap:wrap!important;text-align:left!important;justify-content:flex-start!important}.cookie-inner{align-items:flex-start;gap:12px}.cookie-inner .btn{padding:12px;font-size:.75rem}.fx-legal .hero{padding-bottom:40px}.fx-page .hero-card{grid-template-columns:1fr}.fx-page .contact form{padding:18px}}
.fx-header .nav .nav-links{display:flex!important}
.fx-legal section.container{max-width:1040px;padding:48px var(--gutter)!important}
.fx-legal section.container h2{font-size:clamp(1.8rem,3vw,2.8rem)}
.statement>.container{padding-inline:var(--gutter)!important}
@media(min-width:901px){.fx-about .cap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-process-page .cards .card{grid-column:span 6}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.light-stage{animation:atmosphere 12s ease-in-out infinite alternate}@keyframes atmosphere{from{transform:translateY(0)}to{transform:translateY(12px)}}}
@media(max-width:900px){.js-nav .fx-header .nav .nav-links{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.fx-splash{display:none}.btn:hover,.cap:hover,.card:hover,.fx-service:hover{transform:none}}
/* Cinematic cues: visible by default, decorative motion only. */
.fx-interlude .interlude-lines{translate:var(--cue-offset,0px) 0}
.fx-interlude:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 40%,#57e3ff18 50%,transparent 60%);translate:var(--cue-offset,0px) 0}
.fx-process{position:relative}.fx-process:before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--fx-cyan);transform:scaleX(var(--cue-progress,1));transform-origin:left;box-shadow:0 0 18px #57e3ff88}
.fx-about .hero{position:relative;isolation:isolate;overflow:hidden;min-height:680px;display:grid;align-items:center}
.fx-about .hero:before{content:'';position:absolute;inset:-15%;z-index:-1;background:conic-gradient(from 180deg at 78% 0%,transparent 0deg,#57e3ff18 18deg,transparent 32deg,#7a6cff13 50deg,transparent 65deg);translate:0 var(--cue-offset,0px)}
.fx-about .hero:after{content:'';position:absolute;right:-12%;top:8%;width:50%;aspect-ratio:1;border:1px solid #57e3ff26;border-radius:50%;box-shadow:0 0 0 65px #57e3ff04,0 0 0 130px #57e3ff03;z-index:-1;translate:0 var(--cue-offset,0px)}
.fx-about .hero .headline{font-size:clamp(3rem,6vw,6rem);max-width:1050px;margin-inline:auto}
.fx-about blockquote{padding-block:20px;background:linear-gradient(90deg,#2da8ff0d,transparent)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.art-fx i{animation:fx-orbit 22s linear infinite}.art-fx i:nth-child(2){animation-direction:reverse}.art-sys i{animation:fx-signal 4s ease-in-out infinite}.art-sys i:nth-child(2){animation-delay:1s}.art-sys i:nth-child(3){animation-delay:2s}@keyframes fx-orbit{to{rotate:360deg}}@keyframes fx-signal{50%{border-color:#57e3ff;box-shadow:0 0 24px #57e3ff22}}}
@media(max-width:1000px){.fx-process:before{display:none}.fx-about .hero{min-height:0}}
/* V3: mechanical assembly and stronger, controlled ambient cues. */
.fx-about div:has(>strong):has(.headline .accent){padding:32px!important;text-align:center}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead{display:grid!important;grid-template-columns:1fr;gap:12px!important;text-align:center!important;justify-items:center!important;margin:28px auto 0!important;max-width:650px!important}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead>span{top:0!important;position:static!important;text-align:center!important}
.fx-about div:has(>strong):has(.headline .accent) .headline{line-height:1.15!important;width:100%;text-align:center}
.fx-name-panel .headline .accent{display:inline-block;background:linear-gradient(105deg,var(--fx-cyan) 25%,#f5f7fa 43%,var(--fx-cyan) 60%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:brand-sheen 6s ease-in-out infinite;animation-play-state:paused}
.fx-name-panel.fx-inview .headline .accent{animation-play-state:running}.fx-name-panel p:nth-of-type(2) .accent{animation-delay:1.2s}
@keyframes brand-sheen{0%,30%{background-position:100% 0}65%,100%{background-position:0 0}}
.fx-motion-toggle{justify-self:start;background:transparent;border:1px solid var(--fx-border);border-radius:6px;padding:10px 14px;min-height:44px;color:var(--fx-text-muted);font:inherit;font-size:.75rem;cursor:pointer}
.fx-assembled:after{pointer-events:none}
@media(prefers-reduced-motion:no-preference){
.service-art i{border-color:#57e3ff99;background:linear-gradient(145deg,#57e3ff24,transparent)}
.art-lead i{animation:lead-align 5.5s ease-in-out infinite;animation-delay:0s}.art-lead i:nth-child(2){animation-delay:.35s}.art-lead i:nth-child(3){animation-delay:.7s}
@keyframes lead-align{0%,15%,100%{translate:0 0;opacity:.65}45%,65%{translate:0 -12px;opacity:1;box-shadow:0 0 18px #57e3ff22}}
.art-sys i{animation:system-pulse 3.6s ease-in-out infinite}.art-sys i:nth-child(2){animation-delay:.4s}.art-sys i:nth-child(3){animation-delay:.8s}
@keyframes system-pulse{0%,100%{scale:1;opacity:.6}45%{scale:1.16;opacity:1;border-color:var(--fx-cyan);box-shadow:0 0 24px #57e3ff44}}
.art-sys:after{content:'';position:absolute;top:calc(50% - 2px);left:16%;width:5px;height:5px;border-radius:50%;background:var(--fx-cyan);box-shadow:0 0 12px var(--fx-cyan);animation:signal-travel 3.6s ease-in-out infinite}
@keyframes signal-travel{0%,10%{translate:0 0;opacity:0}20%{opacity:1}80%{translate:170px 0;opacity:1}100%{translate:170px 0;opacity:0}}
.art-fx i{animation:fx-orbit 12s linear infinite;border-color:#ffb347b0}.art-fx i:nth-child(2){animation-direction:reverse}.art-fx i:nth-child(3){animation:system-pulse 4.8s ease-in-out infinite;border-color:#ffb34770}
.service-art i,.art-sys:after{animation-play-state:paused}.fx-inview .service-art i,.fx-inview .art-sys:after{animation-play-state:running}
.fx-assembled .card-label{animation:line-build 1.1s ease-out both}@keyframes line-build{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.fx-hero .beam-one{animation:beam-sweep 10s ease-in-out infinite alternate}.fx-hero .beam-two{animation:beam-sweep 13s ease-in-out infinite alternate-reverse}@keyframes beam-sweep{from{rotate:-2deg;opacity:.55}to{rotate:3deg;opacity:1}}
}
.fx-motion-paused *, .fx-motion-paused *:before, .fx-motion-paused *:after{animation:none!important;transition:none!important}
.fx-motion-paused .fx-name-panel .headline .accent{background:none;color:var(--fx-cyan)}
@media(prefers-reduced-motion:reduce){.fx-name-panel .headline .accent{background:none;color:var(--fx-cyan)}}
@media(max-width:600px){.fx-about div:has(>strong):has(.headline .accent){padding:24px 16px!important}.fx-about div:has(>strong):has(.headline .accent)>p.subhead{font-size:1.05rem!important}}
/* V4: original brand blue, readable type, and aligned brand definitions. */
:root{--fx-blue:#4BA3F5;--fx-cyan:#4BA3F5;--accent:#4BA3F5;--accent-2:#4BA3F5}
.nav-links a,.btn{font-size:.95rem}.fx-service p,.fx-process p,.card-body p{font-size:1rem}.footer-grid a{font-size:.9rem}.footer-grid small{font-size:.8rem}.hero-baseline{font-size:.85rem}.eyebrow,.card-label,.cap .cap-tag{font-size:.75rem}
.fx-page:not(.fx-index) .headline{font-size:clamp(2.5rem,4.8vw,4.7rem)}
.fx-about .hero .headline{font-size:clamp(2.7rem,5.2vw,5rem)}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead{grid-template-columns:110px minmax(0,1fr);gap:20px!important;align-items:center!important;text-align:left!important;max-width:740px!important}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead>span{text-align:left!important}
.fx-about div:has(>strong):has(.headline .accent) .headline{text-align:right!important;font-size:2.5rem!important}
.fx-name-panel .headline .accent{color:#4BA3F5;background:none;animation:none}
.fx-name-panel.fx-assembled .headline .accent{animation:name-arrival 1.3s ease-out both}
.fx-name-panel.fx-assembled p:nth-of-type(2) .accent{animation-delay:.18s}
@keyframes name-arrival{0%{text-shadow:0 0 0 #4ba3f500}40%{text-shadow:0 0 25px #4ba3f5aa,0 0 5px #4ba3f566;color:#b6dcff}100%{text-shadow:0 0 0 #4ba3f500;color:#4BA3F5}}
.fx-services .hero,.fx-process-page .hero,.fx-contact .hero{position:relative;isolation:isolate;overflow:hidden}
.fx-services .hero:before,.fx-process-page .hero:before,.fx-contact .hero:before{content:'';position:absolute;inset:-10%;z-index:-1;pointer-events:none;background:conic-gradient(from 170deg at 85% 0%,transparent 0deg,#4ba3f520 18deg,transparent 35deg,#7a6cff12 48deg,transparent 65deg);translate:0 var(--cue-offset,0px)}
@media(prefers-reduced-motion:no-preference){.fx-services .hero.fx-inview:before,.fx-process-page .hero.fx-inview:before,.fx-contact .hero.fx-inview:before{animation:inner-light 18s ease-in-out infinite alternate}@keyframes inner-light{from{rotate:-2deg;opacity:.55}to{rotate:2deg;opacity:1}}.stage-ring{animation:ring-orbit 26s ease-in-out infinite alternate}.stage-ring:after{animation:ring-counter 22s ease-in-out infinite alternate}@keyframes ring-orbit{from{transform:rotateX(66deg) rotateZ(-22deg)}to{transform:rotateX(59deg) rotateZ(12deg)}}@keyframes ring-counter{from{transform:rotateY(-12deg) rotateZ(16deg)}to{transform:rotateY(20deg) rotateZ(-18deg)}}}
@media(max-width:600px){.fx-about div:has(>strong):has(.headline .accent)>p.subhead{grid-template-columns:76px minmax(0,1fr);gap:12px!important}.fx-about div:has(>strong):has(.headline .accent) .headline .accent{font-size:1.8rem!important}.fx-about div:has(>strong):has(.headline .accent)>p.subhead{font-size:1rem!important}}
@media(prefers-reduced-motion:reduce){.fx-name-panel.fx-assembled .headline .accent{animation:none;color:#4BA3F5}}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead{justify-items:stretch!important}
/* V5: page-specific theatre and engineering motifs, kept behind reading surfaces. */
.fx-scene-host{position:relative;isolation:isolate;overflow:hidden}
.fx-scene{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;opacity:.38}
.fx-scene svg{position:absolute;right:-8%;top:5%;width:min(70%,1000px);height:90%;fill:none;stroke:#4ba3f5;stroke-width:1;vector-effect:non-scaling-stroke}
.scene-services svg{opacity:.6}.signal-route{stroke-dasharray:20 10;stroke-width:1.5}.signal-nodes{fill:#4ba3f510}
.scene-process-page svg{opacity:.55}.index-wheel{transform-origin:510px 230px}.scene-about .framed-light{fill:#4ba3f510;stroke:#4ba3f533;transform-origin:500px 0}
.scene-contact{opacity:.2}.scene-contact svg{right:-12%}
.fx-scene *{animation-play-state:paused!important}
@media(prefers-reduced-motion:no-preference){.signal-route{animation:signal-route 12s linear infinite}.signal-nodes{animation:scene-breathe 8s ease-in-out infinite alternate}.index-wheel{animation:index-turn 28s ease-in-out infinite alternate}.linear-drive{animation:drive-stroke 9s ease-in-out infinite alternate}.framed-light{animation:frame-pan 16s ease-in-out infinite alternate}.quiet-rings{transform-origin:520px 230px;animation:quiet-breathe 14s ease-in-out infinite alternate}.fx-inview .fx-scene *{animation-play-state:running!important}@keyframes signal-route{to{stroke-dashoffset:-180}}@keyframes scene-breathe{from{opacity:.4}to{opacity:1}}@keyframes index-turn{from{rotate:-12deg}to{rotate:45deg}}@keyframes drive-stroke{0%,15%{translate:0 0}85%,100%{translate:150px 0}}@keyframes frame-pan{from{rotate:-5deg;opacity:.4}to{rotate:5deg;opacity:1}}@keyframes quiet-breathe{from{scale:.95;opacity:.4}to{scale:1.04;opacity:.85}}}
.fx-contact .hero:focus-within .fx-scene *, .fx-contact .hero:focus-within:before{animation-play-state:paused!important}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead{align-items:first baseline!important}
.fx-name-panel.fx-assembled .headline .accent{background:linear-gradient(110deg,#4ba3f5 30%,#dcefff 46%,#4ba3f5 62%);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:brand-live 8s ease-in-out infinite;animation-play-state:paused}
.fx-name-panel.fx-assembled.fx-inview .headline .accent{animation-play-state:running}.fx-name-panel.fx-assembled p:nth-of-type(2) .accent{animation-delay:1.1s}
@keyframes brand-live{0%,25%{background-position:100% 0;text-shadow:0 0 0 #4ba3f500}40%{text-shadow:0 0 18px #4ba3f560}55%,100%{background-position:0 0;text-shadow:0 0 0 #4ba3f500}}
@media(max-width:600px){.fx-scene svg{width:110%;right:-40%;opacity:.35}}
@media(prefers-reduced-motion:reduce){.fx-scene *{animation:none!important}.fx-name-panel.fx-assembled .headline .accent{animation:none;background:none;color:#4BA3F5;text-shadow:none}}
/* V6: controlled travel, indexing, registration and a luminous brand signature. */
.fx-name-panel .headline{position:relative;isolation:isolate}
.fx-name-panel .headline:before{content:'';position:absolute;inset:-20px -28px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#e8f4ff66 0%,#4ba3f54d 26%,#4ba3f512 48%,transparent 70%);opacity:0;scale:.85;animation:brand-halo 6.5s ease-in-out infinite;animation-play-state:paused}
.fx-name-panel.fx-assembled .headline .accent{background:linear-gradient(105deg,#4ba3f5 22%,#87c6ff 35%,#ffffff 46%,#c9e8ff 53%,#4ba3f5 67%);background-size:320% 100%;animation:brand-signature 6.5s ease-in-out infinite;animation-play-state:paused}
.fx-name-panel.fx-inview .headline:before,.fx-name-panel.fx-inview.fx-assembled .headline .accent{animation-play-state:running}
.fx-name-panel p:nth-of-type(2) .headline:before,.fx-name-panel.fx-assembled p:nth-of-type(2) .accent{animation-delay:1.05s}
@keyframes brand-signature{0%,12%{background-position:100% 0;text-shadow:0 0 3px #4ba3f533}30%{text-shadow:0 0 10px #e8f4ff88,0 0 26px #4ba3f599}48%,100%{background-position:0 0;text-shadow:0 0 3px #4ba3f533}}
@keyframes brand-halo{0%,12%,64%,100%{opacity:0;scale:.85}30%,38%{opacity:.85;scale:1.12}}
.fx-service,.cap,.step,.card{position:relative}
.fx-service:after,.cap:after,.step:after,.card:after{content:'';position:absolute;pointer-events:none;top:12px;right:12px;width:16px;height:16px;border-top:1px solid #4ba3f5aa;border-right:1px solid #4ba3f5aa;opacity:0}
.fx-assembled.fx-service:after,.fx-assembled.cap:after,.fx-assembled.step:after,.fx-assembled.card:after{animation:register-lock 1.4s ease-out both}
@keyframes register-lock{0%,45%{opacity:0;translate:8px -8px}75%{opacity:1;translate:0 0}100%{opacity:.45;translate:0 0}}
/* Indexed movement rests between actions, like mechanisms arriving at their stops. */
@media(prefers-reduced-motion:no-preference){
.art-lead i{animation:lead-drive 6s infinite}.art-lead i:nth-child(2){animation-delay:.4s}.art-lead i:nth-child(3){animation-delay:.8s}
@keyframes lead-drive{0%,18%,100%{translate:0 0;opacity:.65}38%,64%{translate:0 -14px;opacity:1;box-shadow:0 0 20px #4ba3f522}39%,63%{translate:0 -13px}}
.index-wheel{animation:wheel-index 18s infinite}@keyframes wheel-index{0%,12%{rotate:0deg}26%,40%{rotate:30deg}54%,68%{rotate:60deg}84%,100%{rotate:90deg}}
.linear-drive{animation:piston-cycle 10s infinite}@keyframes piston-cycle{0%,18%{translate:0 0}40%{translate:152px 0}44%,65%{translate:150px 0}90%,100%{translate:0 0}}
.art-fx i:nth-child(1){animation:effect-index 16s infinite}.art-fx i:nth-child(2){animation:effect-index 16s infinite reverse}@keyframes effect-index{0%,12%{rotate:0deg}32%,46%{rotate:45deg}66%,80%{rotate:90deg}100%{rotate:135deg}}
}
@media(prefers-reduced-motion:reduce){.fx-name-panel .headline:before{animation:none;opacity:0}.fx-name-panel.fx-assembled .headline .accent{animation:none;background:none;color:#4BA3F5;text-shadow:none}.fx-assembled:after{animation:none}}
.fx-service:not(.fx-inview) .service-art i,.fx-service:not(.fx-inview) .art-sys:after{animation-play-state:paused!important}
.fx-name-panel.fx-assembled .headline .accent{-webkit-background-clip:text;background-clip:text;color:transparent}
@media(prefers-reduced-motion:reduce){.fx-name-panel.fx-assembled .headline .accent{color:#4BA3F5}}
/* V7: compact shell and clean brand definitions. */
.fx-footer{padding:30px 0 24px}.footer-grid{grid-template-columns:minmax(280px,1fr) auto;gap:12px 36px;align-items:start}.footer-grid>div{grid-row:1/3}.footer-grid img{width:140px;margin-bottom:12px}.footer-grid p{margin-bottom:12px}.footer-grid nav{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 22px}.footer-grid nav a{min-height:36px;padding:7px 0}.footer-grid nav[aria-label="Policies"]{grid-column:2}.fx-page section[aria-labelledby="cta-heading"]{padding-block:64px}
.fx-header .nav .nav-links{gap:24px}
.fx-about div:has(>strong):has(.headline .accent)>p.subhead{align-items:center!important}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr}.footer-grid>div{grid-row:auto}.footer-grid nav,.footer-grid nav[aria-label="Policies"]{grid-column:1;justify-content:flex-start}.footer-grid nav a{min-height:44px}.fx-header .nav .nav-links{gap:12px}}
@media(max-width:600px){.fx-about div:has(>strong):has(.headline .accent)>p.subhead{grid-template-columns:1fr;gap:10px!important;text-align:center!important}.fx-about div:has(>strong):has(.headline .accent)>p.subhead>span,.fx-about div:has(>strong):has(.headline .accent) .headline{text-align:center!important}.fx-footer{padding:26px 0 20px}.footer-grid{gap:8px}.fx-page section[aria-labelledby="cta-heading"]{padding-block:48px}}
/* V8: responsive surfaces, stronger registration and continuous theatrical light. */
.fx-responsive-surface{background-image:radial-gradient(ellipse at var(--pointer-x,50%) var(--pointer-y,50%),#4ba3f510,transparent 65%),linear-gradient(145deg,var(--fx-surface-2),var(--fx-surface));transition:border-color .25s,box-shadow .3s}
.fx-responsive-surface:hover,.fx-responsive-surface:focus-within{border-color:#4ba3f5a0;box-shadow:inset 0 0 30px #4ba3f50c,0 8px 25px #0003}
.fx-responsive-surface .service-art{translate:var(--art-x,0) var(--art-y,0);transition:translate .3s ease-out}
.fx-responsive-surface:hover .card-label span,.fx-responsive-surface:focus-within .card-label span{display:inline-block;translate:2px -2px;transition:translate .25s}
.fx-responsive-surface:hover:after,.fx-responsive-surface:focus-within:after{border-color:#dcefff}
.fx-assembled.fx-service:after,.fx-assembled.cap:after,.fx-assembled.step:after,.fx-assembled.card:after{width:26px;height:26px;animation:register-construct 1.7s both}
@keyframes register-construct{0%,18%{opacity:0;translate:12px -4px;scale:.7}45%{opacity:.9;translate:0 -4px;scale:1}70%{opacity:1;translate:0 0}100%{opacity:.5;translate:0 0}}
.scene-about{opacity:.65}.scene-about .framed-light{fill:#4ba3f51b;stroke:#7cc5ff55}
@media(prefers-reduced-motion:no-preference){
.scene-about .framed-light{animation:about-light-cycle 14s linear infinite}.scene-about .framed-light path:nth-child(2){transform-origin:570px 10px;animation:about-counter 17s ease-in-out infinite alternate}.scene-about>svg>ellipse{transform-origin:470px 390px;animation:stage-focus 12s ease-in-out infinite alternate}
@keyframes about-light-cycle{0%,100%{transform:rotate(-4deg);opacity:.65}25%{transform:rotate(0deg);opacity:.9}50%{transform:rotate(5deg);opacity:.75}75%{transform:rotate(1deg);opacity:1}}
@keyframes about-counter{from{rotate:-5deg}to{rotate:6deg}}
@keyframes stage-focus{from{scale:.87 1;opacity:.45}to{scale:1.08 1.12;opacity:.9}}
.fx-name-panel:hover .headline:before{opacity:.6;animation-duration:4.5s}.fx-name-panel:hover .headline .accent{animation-duration:4.5s}
}
/* No movement or illumination changes behind an active contact field. */
.fx-contact .hero:focus-within:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.fx-responsive-surface .service-art{translate:none;transition:none}.fx-responsive-surface{background-image:none}.fx-assembled:after{animation:none!important}.fx-responsive-surface:hover .card-label span{translate:none}}
