/* ---------- managed loading spinner (WebMaster: Spinner manager). Values come from --ns-* variables ---------- */
:root{--ns-s:60px;--ns-th:5px;--ns-c1:var(--orange,#FF5702);--ns-c2:rgba(255,255,255,.25);--ns-d:600ms;--ns-dir:normal;--ns-e:linear;--ns-ov:rgba(10,10,10,.55);--ns-blur:3px;--ns-lc:#fff;--ns-ls:15px;--ns-glow:0px;--ns-bbg:transparent;--ns-br:16px;--ns-bp:0px}
.navspin{position:fixed;inset:0;z-index:1000;display:none;place-items:center;background:var(--ns-ov);-webkit-backdrop-filter:blur(var(--ns-blur));backdrop-filter:blur(var(--ns-blur));overscroll-behavior:contain;touch-action:none}
.navspin.on{display:grid}
.navspin[data-pos=top]{align-items:start;padding-top:12vh}
.navspin[data-pos=bottom]{align-items:end;padding-bottom:12vh}
.ns-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:var(--ns-bp);background:var(--ns-bbg);border-radius:var(--ns-br)}
.ns-box.lb-above{flex-direction:column-reverse}.ns-box.lb-right{flex-direction:row}.ns-box.lb-left{flex-direction:row-reverse}
.ns-lb{font:600 var(--ns-ls)/1.3 system-ui,sans-serif;color:var(--ns-lc);font-style:normal;text-align:center;letter-spacing:.02em}
.nsp{position:relative;display:block;flex:none;width:min(var(--ns-s),22vw);height:min(var(--ns-s),22vw);color:var(--ns-c1);filter:drop-shadow(0 0 var(--ns-glow) var(--ns-c1))}
.nsp i{position:absolute;display:block}
.nsp-ring i{inset:0;border-radius:50%;border:var(--ns-th) solid var(--ns-c2);border-top-color:var(--ns-c1);animation:nspin var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-dual i{inset:0;border-radius:50%;border:var(--ns-th) solid transparent;border-top-color:var(--ns-c1);border-bottom-color:var(--ns-c2);animation:nspin var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-orbit i:first-child{inset:0;border-radius:50%;border:var(--ns-th) solid var(--ns-c2)}
.nsp-orbit i:last-child{inset:0;animation:nspin var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-orbit i:last-child::after{content:"";position:absolute;top:calc(var(--ns-th)*-.5);left:50%;width:calc(var(--ns-th)*2.4);height:calc(var(--ns-th)*2.4);margin-left:calc(var(--ns-th)*-1.2);border-radius:50%;background:var(--ns-c1)}
.nsp-dots,.nsp-bars{display:flex;align-items:center;justify-content:space-between}
.nsp-dots i{position:static;width:24%;height:24%;border-radius:50%;background:var(--ns-c1);animation:ndot var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-bars i{position:static;width:13%;height:100%;border-radius:3px;background:var(--ns-c1);animation:nbar var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-dots i:nth-child(2),.nsp-bars i:nth-child(2){animation-delay:calc(var(--ns-d)*.12)}
.nsp-dots i:nth-child(3),.nsp-bars i:nth-child(3){animation-delay:calc(var(--ns-d)*.24)}
.nsp-bars i:nth-child(4){animation-delay:calc(var(--ns-d)*.36)}.nsp-bars i:nth-child(5){animation-delay:calc(var(--ns-d)*.48)}
.nsp-pulse i{inset:0;border-radius:50%;background:var(--ns-c1);animation:npulse var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-ripple i{inset:0;border-radius:50%;border:var(--ns-th) solid var(--ns-c1);animation:nrip var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-ripple i:nth-child(2){animation-delay:calc(var(--ns-d)*.5)}
.nsp-square i{inset:16%;background:var(--ns-c1);border-radius:3px;animation:nflip var(--ns-d) var(--ns-e) infinite var(--ns-dir)}
.nsp-segments i{inset:0;transform:rotate(calc(30deg*var(--n)))}
.nsp-segments i::after{content:"";position:absolute;left:50%;top:0;width:calc(var(--ns-th)*.7);height:28%;margin-left:calc(var(--ns-th)*-.35);border-radius:99px;background:var(--ns-c1);opacity:.15;animation:nseg var(--ns-d) linear infinite var(--ns-dir);animation-delay:calc(var(--ns-d)/12*var(--n)*-1)}
@keyframes nspin{to{transform:rotate(360deg)}}
@keyframes ndot{0%,80%,100%{transform:scale(.4);opacity:.5}40%{transform:scale(1);opacity:1}}
@keyframes nbar{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes npulse{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes nrip{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes nflip{0%{transform:perspective(120px) rotateX(0) rotateY(0)}50%{transform:perspective(120px) rotateX(-180deg) rotateY(0)}100%{transform:perspective(120px) rotateX(-180deg) rotateY(-180deg)}}
@keyframes nseg{0%{opacity:1}100%{opacity:.15}}
@media(prefers-reduced-motion:reduce){.nsp i,.nsp i::after{animation-duration:calc(var(--ns-d)*2.5)!important}}
@media print{.navspin{display:none!important}}
