/* CFR hero: animated orbital system, isolated from the rest of the layout. */
.hero .visual{isolation:isolate;transform-style:preserve-3d}
.hero .visual::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,#34e5ed22 0%,#2d92ff0d 32%,transparent 68%);filter:blur(16px);animation:cfr-aura 5s ease-in-out infinite alternate;pointer-events:none}
.hero .globe{z-index:2;animation:cfr-globe-float 7s ease-in-out infinite,cfr-globe-glow 5s ease-in-out infinite alternate;will-change:transform,box-shadow}
.hero .globe::before{animation:cfr-globe-surface 22s linear infinite;will-change:transform;transform-origin:center}
.hero .globe::after{animation:cfr-globe-meridian 15s ease-in-out infinite alternate}
.hero .orbit{z-index:3;animation:cfr-orbit-one 16s linear infinite;will-change:transform;pointer-events:none}
.hero .orbit.two{animation:cfr-orbit-two 20s linear infinite reverse}
.hero .orbit::before{content:"";position:absolute;top:50%;left:-4px;width:9px;height:9px;border-radius:50%;background:#7ffefa;box-shadow:0 0 0 5px #54eaf321,0 0 20px 5px #2eece7;transform:translateY(-50%)}
.hero .orbit.two::before{width:7px;height:7px;background:#74aaff;box-shadow:0 0 0 5px #4994ff24,0 0 18px 5px #438fff}
.hero .node{z-index:5;animation:cfr-node 2.8s ease-in-out infinite alternate;pointer-events:none}
.hero .node.two{animation-delay:-1.4s}
.hero .floatcard{z-index:6;will-change:transform;transition:border-color .3s ease,box-shadow .3s ease}
.hero .floatcard.a{animation:cfr-card-a 5.2s ease-in-out infinite}
.hero .floatcard.b{animation:cfr-card-b 6.1s ease-in-out infinite}
.hero .floatcard .pulse{animation:cfr-dot-pulse 1.7s ease-in-out infinite}
.hero .floatcard.b .pulse{animation-delay:-.8s}
@keyframes cfr-aura{from{opacity:.52;transform:scale(.9)}to{opacity:1;transform:scale(1.13)}}
@keyframes cfr-globe-float{0%,100%{transform:translate3d(0,8px,0) rotate(-2deg)}50%{transform:translate3d(0,-22px,18px) rotate(3deg)}}
@keyframes cfr-globe-glow{from{box-shadow:0 0 0 1px #4ddff43d,inset -35px -25px 70px #000b,0 0 75px #008ee533}to{box-shadow:0 0 0 2px #63f5f983,inset -26px -20px 65px #000a,0 0 115px #00c8e566}}
@keyframes cfr-globe-surface{to{transform:rotate(360deg)}}
@keyframes cfr-globe-meridian{from{transform:rotate(-34deg) scaleX(.46)}to{transform:rotate(146deg) scaleX(.64)}}
@keyframes cfr-orbit-one{from{transform:rotate(-25deg)}to{transform:rotate(335deg)}}
@keyframes cfr-orbit-two{from{transform:rotate(58deg)}to{transform:rotate(418deg)}}
@keyframes cfr-node{from{transform:scale(.8);opacity:.55;box-shadow:0 0 10px var(--cyan)}to{transform:scale(1.45);opacity:1;box-shadow:0 0 26px 7px #46e6df8c}}
@keyframes cfr-card-a{0%,100%{transform:translate3d(0,0,0) rotate(-1deg)}50%{transform:translate3d(12px,-22px,0) rotate(1deg)}}
@keyframes cfr-card-b{0%,100%{transform:translate3d(0,0,0) rotate(1deg)}50%{transform:translate3d(-14px,17px,0) rotate(-1deg)}}
@keyframes cfr-dot-pulse{0%,100%{opacity:.5;box-shadow:0 0 5px var(--cyan)}50%{opacity:1;box-shadow:0 0 18px 5px var(--cyan)}}
@media(max-width:640px){.hero .floatcard.a{animation-name:cfr-card-a-mobile}.hero .floatcard.b{animation-name:cfr-card-b-mobile}@keyframes cfr-card-a-mobile{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes cfr-card-b-mobile{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}}
@media(prefers-reduced-motion:reduce){.hero .visual::before,.hero .globe,.hero .globe::before,.hero .globe::after,.hero .orbit,.hero .node,.hero .floatcard,.hero .floatcard .pulse{animation:none!important;will-change:auto}}
html[data-reduce-motion="on"] .hero .visual::before,html[data-reduce-motion="on"] .hero .globe,html[data-reduce-motion="on"] .hero .globe::before,html[data-reduce-motion="on"] .hero .globe::after,html[data-reduce-motion="on"] .hero .orbit,html[data-reduce-motion="on"] .hero .node,html[data-reduce-motion="on"] .hero .floatcard,html[data-reduce-motion="on"] .hero .floatcard .pulse{animation:none!important;will-change:auto}
