.net-banner{z-index:1200;padding:calc(.4rem + env(safe-area-inset-top,0px)) .75rem .4rem;color:#fff;text-align:left;justify-content:center;align-items:center;gap:.4rem;font-size:.75rem;line-height:1.3;animation:.22s ease-out net-banner-in;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 6px #00000029}.net-banner--offline{background:linear-gradient(90deg,#8f1410,#b8251d)}.net-banner--offline .net-banner__svg{animation:1.4s ease-in-out infinite net-wifi-pulse}.net-banner--offline .net-banner__slash{transform-origin:50%;animation:.35s ease-out both net-slash-draw}.net-banner--online{background:linear-gradient(90deg,#1a5c3a,#2a7a4d)}.net-banner--online .net-banner__arc,.net-banner--online .net-banner__dot{opacity:0;animation:.45s ease-out forwards net-arc-in}.net-banner--online .net-banner__arc--3{animation-delay:80ms}.net-banner--online .net-banner__arc--2{animation-delay:.2s}.net-banner--online .net-banner__arc--1{animation-delay:.32s}.net-banner--online .net-banner__dot{animation-name:net-dot-in;animation-delay:0s}.net-banner--online .net-banner__svg{animation:1.6s ease-in-out .6s infinite net-wifi-glow}.net-banner__icon{flex:none;width:1rem;height:1rem;display:inline-flex}.net-banner__svg{width:100%;height:100%;display:block;overflow:visible}.net-banner__txt{max-width:24rem;margin:0;font-weight:500}@keyframes net-banner-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes net-wifi-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.92)}}@keyframes net-slash-draw{0%{stroke-dasharray:24;stroke-dashoffset:24px;opacity:0}to{stroke-dasharray:24;stroke-dashoffset:0;opacity:1}}@keyframes net-arc-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes net-dot-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes net-wifi-glow{0%,to{opacity:1;filter:drop-shadow(0 0 #0000)}50%{opacity:.85;filter:drop-shadow(0 0 3px #ffffffa6)}}@media (prefers-reduced-motion:reduce){.net-banner,.net-banner__svg,.net-banner__arc,.net-banner__dot,.net-banner__slash{opacity:1;filter:none;transform:none;animation:none!important}}
