html{
  scroll-behavior:smooth;
}

.ui-reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s ease, transform .55s cubic-bezier(.22,1,.36,1);
}
.ui-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

.ui-lift{
  transition:transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s ease;
}
.ui-lift:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 32px rgba(10,47,107,.16);
}

.ui-glow-btn{
  position:relative;
  overflow:hidden;
}
.ui-glow-btn::after{
  content:"";
  position:absolute;
  top:-50%;
  left:-60%;
  width:38%;
  height:200%;
  background:rgba(255,255,255,.28);
  transform:skewX(-20deg);
  transition:left .5s ease;
  pointer-events:none;
}
.ui-glow-btn:hover::after{
  left:130%;
}

.ui-to-top{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:1040;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(10,47,107,.18);
  border-radius:50%;
  background:rgba(255,255,255,.88);
  color:#0A2F6B;
  box-shadow:0 8px 22px rgba(10,47,107,.18);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .2s ease, visibility .2s ease, transform .2s ease, background .2s ease;
}
.ui-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.ui-to-top:hover{
  background:#FFC93C;
  color:#0A2F6B;
}

@media (max-width:575.98px){
  .ui-to-top{right:14px; bottom:14px; width:38px; height:38px;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .ui-reveal{opacity:1; transform:none; transition:none;}
  .ui-lift,.ui-glow-btn::after,.ui-to-top{transition:none;}
}
