
#g .gbase{animation:gBreathe 12s ease-in-out infinite}
@keyframes gBreathe{0%,100%{filter:drop-shadow(0 0 calc(4px*var(--fx,1)) var(--acc))}50%{filter:drop-shadow(0 0 calc(14px*var(--fx,1)) var(--acc))}}
#g .gfx{pointer-events:none}
#g .gfx path{fill:none;stroke-linecap:round}
#g .gfx-halo{stroke:var(--acc);stroke-width:16;opacity:.16;animation:gHalo 14s ease-in-out infinite}
@keyframes gHalo{0%,100%{opacity:.09;stroke-width:12}50%{opacity:.24;stroke-width:21}}
#g .gfx-str{stroke:#fff}
#g .gfx-str.s1{stroke-width:1.5;opacity:.5}
#g .gfx-str.s2{stroke-width:1.3;opacity:.7;stroke-dasharray:220 280;animation:gFlow 50s linear infinite}
#g .gfx-str.s3{stroke-width:1;opacity:.85;stroke-dasharray:90 410;animation:gFlow 34s linear infinite}
@keyframes gFlow{to{stroke-dashoffset:-500}}
#g .gfx-flow{stroke:#fff;stroke-width:3.2;stroke-dasharray:120 880;filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px var(--acc)) drop-shadow(0 0 22px var(--acc));animation:gFlow2 26s linear infinite}
#g .gfx-flow.b{stroke-width:2;stroke-dasharray:40 960;animation-delay:-13s;opacity:.85}
@keyframes gFlow2{to{stroke-dashoffset:-1000}}
#g .gfx-brs{filter:drop-shadow(0 0 3px var(--gc2))}
#g .gfx-br{stroke:#fff;stroke-width:.9;stroke-dasharray:100 100;stroke-dashoffset:100;opacity:0;animation:gGrow 20s ease-in-out infinite}
#g .gfx-br.tw{stroke-width:.6}
@keyframes gGrow{0%{stroke-dashoffset:100;opacity:0}15%{opacity:.8}50%{stroke-dashoffset:0;opacity:.65}85%{stroke-dashoffset:0;opacity:0}100%{stroke-dashoffset:0;opacity:0}}
#g .gfx-b2{stroke:#fff;fill:none;stroke-linecap:round}
#g .gfx-b2.far{filter:blur(1.4px)}
#g .gfx-tip{fill:#fff}
#g .gfx-sp{fill:#fff;opacity:0;animation:gTw 14s ease-in-out infinite;filter:drop-shadow(0 0 3px var(--acc))}
@keyframes gTw{0%,100%{opacity:0}50%{opacity:.9}}
#g .gfx-orb{fill:#fff;filter:drop-shadow(0 0 6px var(--gc2)) drop-shadow(0 0 14px var(--gc2))}
#g .gfx-far{stroke:#fff;stroke-width:3;opacity:.2}
#g .gfx-far.f1{animation:gFloat 38s ease-in-out infinite}
#g .gfx-far.f2{stroke:var(--gc2);opacity:.28;animation:gFloat 52s ease-in-out infinite reverse}
@keyframes gFloat{0%,100%{transform:translate(0,-9px)}50%{transform:translate(0,9px)}}
#g .gfx-str.s4{stroke-width:.8;opacity:.95;stroke-dasharray:50 450;animation:gFlow 30s linear infinite}
#g .gfx-br.far{stroke-width:2.2;filter:blur(1.4px);animation-name:gGrowF}
@keyframes gGrowF{0%{stroke-dashoffset:100;opacity:0}20%{opacity:.4}50%{stroke-dashoffset:0;opacity:.3}85%{stroke-dashoffset:0;opacity:0}100%{stroke-dashoffset:0;opacity:0}}
@media (prefers-reduced-motion:reduce){#g .gfx{display:none}#g .gbase{animation:none}}
