/* Benvenuto dopo il login */
html.gw-lock{overflow:hidden}
.gw{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;color:#fff;cursor:pointer;
  background:radial-gradient(120% 90% at 50% 0%,#2b8cff 0%,#1375d2 38%,#0b2f66 100%);
  transform:translateY(100%);transition:transform .6s cubic-bezier(.22,.8,.2,1)}
.gw:before,.gw:after{content:"";position:absolute;left:-10%;width:120%;height:90px;background:#2b8cff}
.gw:before{top:-89px;border-radius:50% 50% 0 0/100% 100% 0 0}
.gw:after{bottom:-89px;border-radius:0 0 50% 50%/0 0 100% 100%;background:#0b2f66}
.gw.gw-in{transform:translateY(0)}
.gw.gw-in.gw-leave{transform:translateY(-100%);transition:transform .7s cubic-bezier(.65,0,.35,1)}
.gw-body{text-align:center;padding:0 24px;max-width:90vw}
.gw-body>*{opacity:0;transform:translateY(14px)}
.gw-in .gw-body>*{animation:gw-rise .55s cubic-bezier(.22,.8,.2,1) forwards}
.gw-in .gw-mark{animation-delay:.25s}
.gw-in .gw-hello{animation-delay:.4s}
.gw-in .gw-name{animation-delay:.52s}
.gw-in .gw-sub{animation-delay:.75s}
@keyframes gw-rise{to{opacity:1;transform:none}}
.gw-mark{position:relative;display:grid;place-items:center;width:96px;height:96px;margin:0 auto 22px}
.gw-mark img{position:relative;border-radius:18px;box-shadow:0 10px 30px #00000040}
.gw-ring{position:absolute;inset:0;border-radius:50%;border:2px solid #ffffff80;opacity:0}
.gw-in .gw-ring{animation:gw-ping 1.6s ease-out .5s 1}
.gw-in .gw-ring-2{animation-delay:.8s}
@keyframes gw-ping{0%{opacity:.8;transform:scale(.7)}100%{opacity:0;transform:scale(1.8)}}
.gw p{margin:0}
.gw-hello{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#d6e8ff;font-weight:600}
.gw-name{margin-top:6px!important;font-size:clamp(34px,8vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1.1;overflow-wrap:anywhere}
.gw-sub{margin-top:14px!important;font-size:14px;color:#c4dcfb}
.gw-reduce{transform:none;opacity:0;transition:opacity .3s}
.gw-reduce:before,.gw-reduce:after{display:none}
.gw-reduce.gw-in{opacity:1}
.gw-reduce.gw-in.gw-leave{transform:none;opacity:0;transition:opacity .3s}
.gw-reduce .gw-body>*{opacity:1;transform:none;animation:none!important}
.gw-reduce .gw-ring{display:none}

/* Uscita: riquadro minimale al centro */
.gb{position:fixed;left:50%;top:50%;z-index:3000;width:168px;padding:26px 16px 22px;border-radius:28px;text-align:center;color:#fff;pointer-events:none;
  background:rgba(34,36,40,.78);-webkit-backdrop-filter:blur(24px) saturate(160%);backdrop-filter:blur(24px) saturate(160%);box-shadow:0 18px 50px #0000003d;
  opacity:0;transform:translate(-50%,-50%) scale(.88);transition:opacity .22s ease,transform .3s cubic-bezier(.22,.8,.2,1)}
.gb.gb-in{opacity:1;transform:translate(-50%,-50%) scale(1)}
.gb.gb-out{opacity:0;transform:translate(-50%,-50%) scale(.94);transition:opacity .3s ease,transform .3s ease}
.gb-check{display:block;width:60px;height:60px;margin:0 auto 12px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.gb-circle{stroke-dasharray:145;stroke-dashoffset:145;opacity:.9}
.gb-tick{stroke-dasharray:36;stroke-dashoffset:36}
.gb-in .gb-circle{animation:gb-draw .55s ease-out .1s forwards}
.gb-in .gb-tick{animation:gb-draw .35s ease-out .5s forwards}
@keyframes gb-draw{to{stroke-dashoffset:0}}
.gb p{margin:0;font-size:15px;font-weight:600;letter-spacing:.01em}
@media (prefers-color-scheme:dark){.gb{background:rgba(60,62,68,.8)}}
@media (prefers-reduced-motion:reduce){.gb,.gb.gb-out{transition:opacity .2s;transform:translate(-50%,-50%)}.gb-circle,.gb-tick{stroke-dashoffset:0;animation:none!important}}
